From 4915b0cb9ef71e9efadea26ada7a3a936f48cccc Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 9 Mar 2011 18:01:41 -0800 Subject: [PATCH] Update Autocomplete plugin for reusable notice forms in 1.0.x. It's fun! Now pulls the fetch API URL from a dedicated with a data attribute ('data-url', should pass HTML 5 validators for our future overlords) --- plugins/Autocomplete/Autocomplete.js | 21 ++++++++++++++++++--- plugins/Autocomplete/AutocompletePlugin.php | 2 ++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/plugins/Autocomplete/Autocomplete.js b/plugins/Autocomplete/Autocomplete.js index c3f022702a..2b031cc313 100644 --- a/plugins/Autocomplete/Autocomplete.js +++ b/plugins/Autocomplete/Autocomplete.js @@ -1,4 +1,15 @@ -$(document).ready(function(){ +(function(SN, $) { + +var origInit = SN.Init.NoticeFormSetup; +SN.Init.NoticeFormSetup = function(form) { + origInit(form); + + // Only attach to traditional-style forms + var textarea = form.find('.notice_data-text:first'); + if (textarea.length == 0) { + return; + } + function fullName(row) { if (typeof row.fullname == "string" && row.fullname != '') { return row.nickname + ' (' + row.fullname + ')'; @@ -6,7 +17,9 @@ $(document).ready(function(){ return row.nickname; } } - $('#notice_data-text').autocomplete($('address .url')[0].href+'main/autocomplete/suggest', { + + var apiUrl = $('#autocomplete-api').attr('data-url'); + textarea.autocomplete(apiUrl, { multiple: true, multipleSeparator: " ", minChars: 1, @@ -35,4 +48,6 @@ $(document).ready(function(){ } } }); -}); +}; + +})(SN, jQuery); diff --git a/plugins/Autocomplete/AutocompletePlugin.php b/plugins/Autocomplete/AutocompletePlugin.php index ca495f79f4..1479ead602 100644 --- a/plugins/Autocomplete/AutocompletePlugin.php +++ b/plugins/Autocomplete/AutocompletePlugin.php @@ -51,6 +51,8 @@ class AutocompletePlugin extends Plugin function onEndShowScripts($action){ if (common_logged_in()) { + $action->element('span', array('id' => 'autocomplete-api', + 'data-url' => common_local_url('autocomplete'))); $action->script($this->path('jquery-autocomplete/jquery.autocomplete.pack.js')); $action->script($this->path('Autocomplete.js')); } -- 2.39.2