diff --git a/media/overrider/js/overrider.js b/media/overrider/js/overrider.js index 740fb8d090111..e32bb94d320be 100644 --- a/media/overrider/js/overrider.js +++ b/media/overrider/js/overrider.js @@ -23,34 +23,37 @@ Joomla.overrider = { * * @since 2.5 */ -Joomla.overrider.refreshCache = function() { - var req = new Request.JSON({ - method : 'post', - url : 'index.php?option=com_languages&task=strings.refresh&format=json', - onRequest: function() { - this.states.refreshing = true; - document.id('refresh-status').reveal(); - }.bind(this), - onSuccess: function(r) { - if (r.error && r.message) { - alert(r.message); - } - if (r.messages) { - Joomla.renderMessages(r.messages); - } - document.id('refresh-status').dissolve(); - this.states.refreshing = false; - }.bind(this), - onFailure: function(xhr) { - alert(Joomla.JText._('COM_LANGUAGES_VIEW_OVERRIDE_REQUEST_ERROR')); - document.id('refresh-status').dissolve(); - }.bind(this), - onError : function(text, error) { - alert(error + "\n\n" + text); - document.id('refresh-status').dissolve(); - }.bind(this) +Joomla.overrider.refreshCache = function() +{ + var $ = jQuery.noConflict(), self = this; + this.states.refreshing = true; + + $('#refresh-status').slideDown().css('display', 'block'); + + $.ajax( + { + type: "POST", + url: 'index.php?option=com_languages&task=strings.refresh&format=json', + dataType: 'json' + }).done(function (r) + { + if (r.error && r.message) + { + alert(r.message); + } + + if (r.messages) + { + Joomla.renderMessages(r.messages); + } + + $('#refresh-status').slideUp().hide(); + self.states.refreshing = false; + }).fail(function (xhr) + { + alert(Joomla.JText._('COM_LANGUAGES_VIEW_OVERRIDE_REQUEST_ERROR')); + $('#refresh-status').slideUp().hide(); }); - req.post(); }; /** @@ -62,75 +65,93 @@ Joomla.overrider.refreshCache = function() { * * @since 2.5 */ -Joomla.overrider.searchStrings = function(more) { +Joomla.overrider.searchStrings = function(more) +{ + var $ = jQuery.noConflict(), self = this; + // Prevent searching if the cache is refreshed at the moment - if (this.states.refreshing) { + if (this.states.refreshing) + { return; } // Only update the used searchstring and searchtype if the search button // was used to start the search (that will be the case if 'more' is null) - if (!more) { - this.states.searchstring = document.id('jform_searchstring').value; - this.states.searchtype = document.id('jform_searchtype') !== null ? document.id('jform_searchtype').value : 'value'; + if (!more) + { + this.states.searchstring = $('#jform_searchstring').val(); + this.states.searchtype = $('#jform_searchtype') !== null ? $('#jform_searchtype').val() : 'value'; } - if (!this.states.searchstring) { - document.id('jform_searchstring').addClass('invalid'); + if (!this.states.searchstring) + { + $('#jform_searchstring').addClass('invalid'); return; } - var req = new Request.JSON({ - method : 'post', - url : 'index.php?option=com_languages&task=strings.search&format=json', - onRequest: function() { - if (more) { - // If 'more' is greater than 0 we have already displayed some results for - // the current searchstring, so display the spinner at the more link - document.id('more-results').addClass('overrider-spinner'); - } else { - // Otherwise it is a new searchstring and we have to remove all previous results first - document.id('more-results').set('style', 'display:none;'); - var children = $$('#results-container div.language-results'); - children.destroy(); - document.id('results-container').addClass('overrider-spinner').reveal(); - } - }.bind(this), - onSuccess: function(r) { - if (r.error && r.message) { - alert(r.message); + + if (more) + { + // If 'more' is greater than 0 we have already displayed some results for + // the current searchstring, so display the spinner at the more link + $('#more-results').addClass('overrider-spinner'); + } + else + { + // Otherwise it is a new searchstring and we have to remove all previous results first + $('#more-results').hide(); + var $children = $('#results-container div.language-results'); + $children.remove(); + $('#results-container').addClass('overrider-spinner').slideDown().css('display', 'block'); + } + + $.ajax( + { + type: "POST", + url: 'index.php?option=com_languages&task=strings.search&format=json', + data: 'searchstring=' + self.states.searchstring + '&searchtype=' + self.states.searchtype + '&more=' + more, + dataType: 'json' + }).done(function (r) + { + if (r.error && r.message) + { + alert(r.message); + } + + if (r.messages) + { + Joomla.renderMessages(r.messages); + } + + if (r.data) + { + if (r.data.results) + { + self.insertResults(r.data.results); } - if (r.messages) { - Joomla.renderMessages(r.messages); + + if (r.data.more) + { + // If there are more results than the sent ones + // display the more link + self.states.more = r.data.more; + $('#more-results').slideDown().css('display', 'block'); } - if (r.data) { - if (r.data.results) { - this.insertResults(r.data.results); - } - if (r.data.more) { - // If there are more results than the sent ones, display the more link - this.states.more = r.data.more; - document.id('more-results').reveal(); - } else { - document.id('more-results').set('style', 'display:none;'); - } + else + { + $('#more-results').hide(); } - document.id('results-container').removeClass('overrider-spinner'); - document.id('more-results').removeClass('overrider-spinner'); - }.bind(this), - onFailure: function(xhr) { - alert(Joomla.JText._('COM_LANGUAGES_VIEW_OVERRIDE_REQUEST_ERROR')); - document.id('results-container').removeClass('overrider-spinner'); - document.id('more-results').removeClass('overrider-spinner'); - }.bind(this), - onError : function(text, error) { - alert(error + "\n\n" + text); - document.id('results-container').removeClass('overrider-spinner'); - document.id('more-results').removeClass('overrider-spinner'); - }.bind(this) + } + + $('#results-container').removeClass('overrider-spinner'); + $('#more-results').removeClass('overrider-spinner'); + }).fail(function (xhr) + { + alert(Joomla.JText._('COM_LANGUAGES_VIEW_OVERRIDE_REQUEST_ERROR')); + $('#results-container').removeClass('overrider-spinner'); + $('#more-results').removeClass('overrider-spinner'); }); - req.post('searchstring=' + this.states.searchstring + '&searchtype=' + this.states.searchtype + '&more=' + more); }; /** @@ -142,50 +163,58 @@ Joomla.overrider.searchStrings = function(more) { * * @since 2.5 */ -Joomla.overrider.insertResults = function(results) { +Joomla.overrider.insertResults = function(results) +{ + var $ = jQuery.noConflict(); + // For creating an individual ID for each result we use a counter this.states.counter = this.states.counter + 1; // Create a container into which all the results will be inserted - var results_div = new Element('div', { - id : 'language-results' + this.states.counter, - 'class': 'language-results', - style : 'display:none;' + var $results_div = $('