From 057fb9752c7e15a7a3e35aa85ecb809c5e8b20df Mon Sep 17 00:00:00 2001 From: Dimitris Grammatikogiannis Date: Mon, 24 Oct 2016 05:53:42 +0300 Subject: [PATCH 1/2] extensions --- dev/Gruntfile.js | 14 +++ .../js/extensionupdatecheck.js | 113 +++++++++++------- .../js/extensionupdatecheck.min.js | 1 + .../js/jupdatecheck.js | 111 ++++++++++------- .../js/jupdatecheck.min.js | 1 + .../extensionupdate/extensionupdate.php | 31 +++-- .../quickicon/joomlaupdate/joomlaupdate.php | 38 +++--- 7 files changed, 184 insertions(+), 125 deletions(-) create mode 100644 media/plg_quickicon_extensionupdate/js/extensionupdatecheck.min.js create mode 100644 media/plg_quickicon_joomlaupdate/js/jupdatecheck.min.js diff --git a/dev/Gruntfile.js b/dev/Gruntfile.js index b9f2dae23399b..819d3f737ca68 100644 --- a/dev/Gruntfile.js +++ b/dev/Gruntfile.js @@ -44,6 +44,8 @@ module.exports = function(grunt) { cmmod : '../media/vendor/codemirror/mode', cmthem : '../media/vendor/codemirror/theme', polyfills : '../media/vendor/polyfills/js', + jupdate : '../media/plg_quickicon_joomlaupdate/js', + extupdate : '../media/plg_quickicon_extensionupdate/js', }, // Let's clean up the system @@ -228,6 +230,18 @@ module.exports = function(grunt) { expand: true, ext: '.min.js' }, + { + src: ['<%= folder.jupdate %>/*.js','!<%= folder.jupdate %>/*.min.js'], + dest: '', + expand: true, + ext: '.min.js' + }, + { + src: ['<%= folder.extupdate %>/*.js','!<%= folder.extupdate %>/*.min.js'], + dest: '', + expand: true, + ext: '.min.js' + }, { src: '<%= folder.polyfills %>/polyfill.classlist.js', dest: '<%= folder.polyfills %>/polyfill.classlist.min.js', diff --git a/media/plg_quickicon_extensionupdate/js/extensionupdatecheck.js b/media/plg_quickicon_extensionupdate/js/extensionupdatecheck.js index 47bec7fffb957..487b042fcc135 100644 --- a/media/plg_quickicon_extensionupdate/js/extensionupdatecheck.js +++ b/media/plg_quickicon_extensionupdate/js/extensionupdatecheck.js @@ -1,46 +1,77 @@ /** - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. - * @license GNU General Public License version 2 or later; see LICENSE.txt + * @package Joomla.JavaScript + * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @license GNU General Public License version 2 or later; see LICENSE.txt */ -jQuery(document).ready(function() { - var ajax_structure = { - success: function(data, textStatus, jqXHR) { - var link = jQuery('#plg_quickicon_extensionupdate').find('span.j-links-link'); - - try { - var updateInfoList = jQuery.parseJSON(data); - } catch (e) { - // An error occurred - link.html(plg_quickicon_extensionupdate_text.ERROR); - } - - if (updateInfoList instanceof Array) { - if (updateInfoList.length == 0) { - // No updates - link.html(plg_quickicon_extensionupdate_text.UPTODATE); - } else { - var updateString = plg_quickicon_extensionupdate_text.UPDATEFOUND_MESSAGE.replace("%s", updateInfoList.length); - jQuery('#system-message-container').prepend( - '
' - + updateString - + ' ' - + '
' - ); - var updateString = plg_quickicon_extensionupdate_text.UPDATEFOUND.replace("%s", updateInfoList.length); - link.html(updateString); +/** + * Ajax call to get the update status of the installed extensions + */ +(function() { + "use strict"; + + var checkForExtensionsUpdates = function() { + + if (Joomla.getOptions('js-extensions-update')) { + + var options = Joomla.getOptions('js-extensions-update'); + Joomla.request( + { + url: options.ajaxUrl + '&eid=0&skip=700', + method: 'GET', + data: '', + perform: true, + onSuccess: function(response, xhr) + { + var link = document.getElementById('plg_quickicon_extensionupdate').querySelector('span.j-links-link'); + + var updateInfoList = JSON.parse(response); + + if (updateInfoList instanceof Array) { + if (updateInfoList.length === 0) { + /** No updates **/ + link.innerHTML = Joomla.JText._('PLG_QUICKICON_EXTENSIONUPDATE_UPTODATE'); + console.log('no update'); + console.log(Joomla.JText._('PLG_QUICKICON_EXTENSIONUPDATE_UPTODATE')); + } else { +// Testing replace #30 if (updateInfoList.length === 1) { +// And uncomment next line +// updateInfoList = ['r', '3'] + + var messages = { + "message": [ + Joomla.JText._('PLG_QUICKICON_EXTENSIONUPDATE_UPDATEFOUND_MESSAGE').replace("%s", updateInfoList.length) + + '' + ], "error": ["info"] + }; + + /** Render the message **/ + Joomla.renderMessages(messages); + + /** Scroll to page top **/ + window.scrollTo(0, 0); + + link.innerHTML = Joomla.JText._('PLG_QUICKICON_EXTENSIONUPDATE_UPDATEFOUND').replace("%s", updateInfoList.length); + } + } else { + /** An error occurred **/ + link.innerHTML = Joomla.JText._('PLG_QUICKICON_EXTENSIONUPDATE_ERROR'); + } + + }, + onError: function(xhr) + { + /** An error occurred **/ + document.getElementById('plg_quickicon_extensionupdate').querySelector('span.j-links-link').innerHTML = Joomla.JText._('PLG_QUICKICON_EXTENSIONUPDATE_ERROR'); + } } - } else { - // An error occurred - link.html(plg_quickicon_extensionupdate_text.ERROR); - } - }, - error: function(jqXHR, textStatus, errorThrown) { - // An error occurred - jQuery('#plg_quickicon_extensionupdate').find('span.j-links-link').html(plg_quickicon_extensionupdate_text.ERROR); - }, - url: plg_quickicon_extensionupdate_ajax_url + '&eid=0&skip=700' + ); + } }; - ajax_object = new jQuery.ajax(ajax_structure); -}); + + /** Add a listener on content loaded to initiate the check **/ + document.addEventListener('DOMContentLoaded', function() { + checkForExtensionsUpdates(); + }); +})(); diff --git a/media/plg_quickicon_extensionupdate/js/extensionupdatecheck.min.js b/media/plg_quickicon_extensionupdate/js/extensionupdatecheck.min.js new file mode 100644 index 0000000000000..861f285813107 --- /dev/null +++ b/media/plg_quickicon_extensionupdate/js/extensionupdatecheck.min.js @@ -0,0 +1 @@ +!function(){"use strict";var a=function(){if(Joomla.getOptions("js-extensions-update")){var a=Joomla.getOptions("js-extensions-update");Joomla.request({url:a.ajaxUrl+"&eid=0&skip=700",method:"GET",data:"",perform:!0,onSuccess:function(b,c){var d=document.getElementById("plg_quickicon_extensionupdate").querySelector("span.j-links-link"),e=JSON.parse(b);if(e instanceof Array)if(0===e.length)d.innerHTML=Joomla.JText._("PLG_QUICKICON_EXTENSIONUPDATE_UPTODATE"),console.log("no update"),console.log(Joomla.JText._("PLG_QUICKICON_EXTENSIONUPDATE_UPTODATE"));else{var f={message:[Joomla.JText._("PLG_QUICKICON_EXTENSIONUPDATE_UPDATEFOUND_MESSAGE").replace("%s",e.length)+'"],error:["info"]};Joomla.renderMessages(f),window.scrollTo(0,0),d.innerHTML=Joomla.JText._("PLG_QUICKICON_EXTENSIONUPDATE_UPDATEFOUND").replace("%s",e.length)}else d.innerHTML=Joomla.JText._("PLG_QUICKICON_EXTENSIONUPDATE_ERROR")},onError:function(a){document.getElementById("plg_quickicon_extensionupdate").querySelector("span.j-links-link").innerHTML=Joomla.JText._("PLG_QUICKICON_EXTENSIONUPDATE_ERROR")}})}};document.addEventListener("DOMContentLoaded",function(){a()})}(); \ No newline at end of file diff --git a/media/plg_quickicon_joomlaupdate/js/jupdatecheck.js b/media/plg_quickicon_joomlaupdate/js/jupdatecheck.js index 8626873df041c..582873190da9b 100644 --- a/media/plg_quickicon_joomlaupdate/js/jupdatecheck.js +++ b/media/plg_quickicon_joomlaupdate/js/jupdatecheck.js @@ -2,52 +2,73 @@ * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ +/** + * Ajax call to get the update status of Joomla + */ +(function() { + "use strict"; + + var checkForJoomlaUpdates = function() { + if (Joomla.getOptions('js-joomla-update')) { + var options = Joomla.getOptions('js-joomla-update'); + + Joomla.request( + { + url: options.ajaxUrl + '&eid=700&cache_timeout=3600', + method: 'GET', + data: '', + perform: true, + onSuccess: function(response, xhr) + { + var link = document.getElementById('plg_quickicon_joomlaupdate').querySelector('span.j-links-link'); + + var updateInfoList = JSON.parse(response); + + if (updateInfoList instanceof Array) { + if (updateInfoList.length === 0) { + /** No updates **/ + link.innerHTML = Joomla.JText._('PLG_QUICKICON_JOOMLAUPDATE_UPTODATE'); + } else { + var updateInfo = updateInfoList.shift(); -var plg_quickicon_jupdatecheck_ajax_structure = {}; - -jQuery(document).ready(function() { - plg_quickicon_jupdatecheck_ajax_structure = { - success: function(data, textStatus, jqXHR) { - var link = jQuery('#plg_quickicon_joomlaupdate').find('span.j-links-link'); - - try { - var updateInfoList = jQuery.parseJSON(data); - } catch (e) { - // An error occurred - link.html(plg_quickicon_joomlaupdate_text.ERROR); - } - - if (updateInfoList instanceof Array) { - if (updateInfoList.length < 1) { - // No updates - link.replaceWith(plg_quickicon_joomlaupdate_text.UPTODATE); - } else { - var updateInfo = updateInfoList.shift(); - if (updateInfo.version != plg_quickicon_jupdatecheck_jversion) { - var updateString = plg_quickicon_joomlaupdate_text.UPDATEFOUND.replace("%s", updateInfo.version + ""); - jQuery('#plg_quickicon_joomlaupdate').find('.j-links-link').html(updateString); - var updateString = plg_quickicon_joomlaupdate_text.UPDATEFOUND_MESSAGE.replace("%s", updateInfo.version + ""); - jQuery('#system-message-container').prepend( - '
' - + updateString - + ' ' - + '
' - ); - } else { - link.html(plg_quickicon_joomlaupdate_text.UPTODATE); + if (updateInfo.version != options.version) { + var messages = { + "message": [ + Joomla.JText._('PLG_QUICKICON_JOOMLAUPDATE_UPDATEFOUND_MESSAGE').replace("%s", updateInfoList.length) + + '' + ], "error": ["info"] + }; + + /** Render the message **/ + Joomla.renderMessages(messages); + + /** Scroll to page top **/ + window.scrollTo(0, 0); + + link.innerHTML = Joomla.JText._('PLG_QUICKICON_JOOMLAUPDATE_UPDATEFOUND').replace("%s", updateInfoList.length); + } else { + link.innerHTML = Joomla.JText._('PLG_QUICKICON_JOOMLAUPDATE_UPTODATE'); + } + } + } else { + /** An error occurred **/ + link.innerHTML = Joomla.JText._('PLG_QUICKICON_JOOMLAUPDATE_ERROR'); + } + + }, + onError: function(xhr) + { + /** An error occurred **/ + document.getElementById('plg_quickicon_joomlaupdate').querySelector('span.j-links-link').innerHTML = Joomla.JText._('PLG_QUICKICON_JOOMLAUPDATE_ERROR'); } } - } else { - // An error occurred - link.html(plg_quickicon_joomlaupdate_text.ERROR); - } - }, - error: function(jqXHR, textStatus, errorThrown) { - // An error occurred - jQuery('#plg_quickicon_joomlaupdate').find('span.j-links-link').html(plg_quickicon_joomlaupdate_text.ERROR); - }, - url: plg_quickicon_joomlaupdate_ajax_url + '&eid=700&cache_timeout=3600' + ); + } }; - setTimeout("ajax_object = new jQuery.ajax(plg_quickicon_jupdatecheck_ajax_structure);", 2000); -}); + + /** Add a listener on content loaded to initiate the check **/ + document.addEventListener('DOMContentLoaded', function() { + setTimeout(checkForJoomlaUpdates, 2000) + }); +})(); diff --git a/media/plg_quickicon_joomlaupdate/js/jupdatecheck.min.js b/media/plg_quickicon_joomlaupdate/js/jupdatecheck.min.js new file mode 100644 index 0000000000000..33e6dd6646fb7 --- /dev/null +++ b/media/plg_quickicon_joomlaupdate/js/jupdatecheck.min.js @@ -0,0 +1 @@ +!function(){"use strict";var a=function(){if(Joomla.getOptions("js-joomla-update")){var a=Joomla.getOptions("js-joomla-update");Joomla.request({url:a.ajaxUrl+"&eid=700&cache_timeout=3600",method:"GET",data:"",perform:!0,onSuccess:function(b,c){var d=document.getElementById("plg_quickicon_joomlaupdate").querySelector("span.j-links-link"),e=JSON.parse(b);if(e instanceof Array)if(0===e.length)d.innerHTML=Joomla.JText._("PLG_QUICKICON_JOOMLAUPDATE_UPTODATE");else{var f=e.shift();if(f.version!=a.version){var g={message:[Joomla.JText._("PLG_QUICKICON_JOOMLAUPDATE_UPDATEFOUND_MESSAGE").replace("%s",e.length)+'"],error:["info"]};Joomla.renderMessages(g),window.scrollTo(0,0),d.innerHTML=Joomla.JText._("PLG_QUICKICON_JOOMLAUPDATE_UPDATEFOUND").replace("%s",e.length)}else d.innerHTML=Joomla.JText._("PLG_QUICKICON_JOOMLAUPDATE_UPTODATE")}else d.innerHTML=Joomla.JText._("PLG_QUICKICON_JOOMLAUPDATE_ERROR")},onError:function(a){document.getElementById("plg_quickicon_joomlaupdate").querySelector("span.j-links-link").innerHTML=Joomla.JText._("PLG_QUICKICON_JOOMLAUPDATE_ERROR")}})}};document.addEventListener("DOMContentLoaded",function(){setTimeout(a,2e3)})}(); \ No newline at end of file diff --git a/plugins/quickicon/extensionupdate/extensionupdate.php b/plugins/quickicon/extensionupdate/extensionupdate.php index e77dd664d68de..f679fc2fd88ae 100644 --- a/plugins/quickicon/extensionupdate/extensionupdate.php +++ b/plugins/quickicon/extensionupdate/extensionupdate.php @@ -42,23 +42,22 @@ public function onGetIcons($context) return; } - JHtml::_('jquery.framework'); + $token = JSession::getFormToken() . '=1'; + $options = array( + 'url' => JUri::base() . 'index.php?option=com_installer&view=update&task=update.find&' . $token, + 'ajaxUrl' => JUri::base() . 'index.php?option=com_installer&view=update&task=update.ajax&' . $token, + ); + + JText::script('PLG_QUICKICON_EXTENSIONUPDATE_UPTODATE', true); + JText::script('PLG_QUICKICON_EXTENSIONUPDATE_UPDATEFOUND', true); + JText::script('PLG_QUICKICON_EXTENSIONUPDATE_UPDATEFOUND_MESSAGE', true); + JText::script('PLG_QUICKICON_EXTENSIONUPDATE_UPDATEFOUND_BUTTON', true); + JText::script('PLG_QUICKICON_EXTENSIONUPDATE_ERROR', true); + + JHtml::_('behavior.core'); + JHtml::_('script', 'plg_quickicon_extensionupdate/extensionupdatecheck.min.js', false, true); - $token = JSession::getFormToken() . '=' . 1; - $url = JUri::base() . 'index.php?option=com_installer&view=update&task=update.find&' . $token; - $ajax_url = JUri::base() . 'index.php?option=com_installer&view=update&task=update.ajax&' . $token; - $script = array(); - $script[] = 'var plg_quickicon_extensionupdate_url = \'' . $url . '\';'; - $script[] = 'var plg_quickicon_extensionupdate_ajax_url = \'' . $ajax_url . '\';'; - $script[] = 'var plg_quickicon_extensionupdate_text = {' - . '"UPTODATE" : "' . JText::_('PLG_QUICKICON_EXTENSIONUPDATE_UPTODATE', true) . '",' - . '"UPDATEFOUND": "' . JText::_('PLG_QUICKICON_EXTENSIONUPDATE_UPDATEFOUND', true) . '",' - . '"UPDATEFOUND_MESSAGE": "' . JText::_('PLG_QUICKICON_EXTENSIONUPDATE_UPDATEFOUND_MESSAGE', true) . '",' - . '"UPDATEFOUND_BUTTON": "' . JText::_('PLG_QUICKICON_EXTENSIONUPDATE_UPDATEFOUND_BUTTON', true) . '",' - . '"ERROR": "' . JText::_('PLG_QUICKICON_EXTENSIONUPDATE_ERROR', true) . '",' - . '};'; - JFactory::getDocument()->addScriptDeclaration(implode("\n", $script)); - JHtml::_('script', 'plg_quickicon_extensionupdate/extensionupdatecheck.js', false, true); + JFactory::getDocument()->addScriptOptions('js-extensions-update', $options); return array( array( diff --git a/plugins/quickicon/joomlaupdate/joomlaupdate.php b/plugins/quickicon/joomlaupdate/joomlaupdate.php index f9bfe9f6a8725..200282a049d15 100644 --- a/plugins/quickicon/joomlaupdate/joomlaupdate.php +++ b/plugins/quickicon/joomlaupdate/joomlaupdate.php @@ -43,31 +43,23 @@ public function onGetIcons($context) return; } - JHtml::_('jquery.framework'); + JText::script('PLG_QUICKICON_JOOMLAUPDATE_ERROR', true); + JText::script('PLG_QUICKICON_JOOMLAUPDATE_UPDATEFOUND_BUTTON', true); + JText::script('PLG_QUICKICON_JOOMLAUPDATE_UPDATEFOUND_MESSAGE', true); + JText::script('PLG_QUICKICON_JOOMLAUPDATE_UPDATEFOUND', true); + JText::script('PLG_QUICKICON_JOOMLAUPDATE_UPTODATE', true); - $cur_template = JFactory::getApplication()->getTemplate(); + JFactory::getDocument()->addScriptOptions( + 'js-joomla-update', + [ + 'url' => JUri::base() . 'index.php?option=com_joomlaupdate', + 'ajaxUrl' => JUri::base() . 'index.php?option=com_installer&view=update&task=update.ajax&' . JSession::getFormToken() . '=1', + 'version' => JVERSION, + ] + ); - $token = JSession::getFormToken() . '=' . 1; - $url = JUri::base() . 'index.php?option=com_joomlaupdate'; - $ajax_url = JUri::base() . 'index.php?option=com_installer&view=update&task=update.ajax&' . $token; - $script = array(); - $script[] = 'var plg_quickicon_joomlaupdate_url = \'' . $url . '\';'; - $script[] = 'var plg_quickicon_joomlaupdate_ajax_url = \'' . $ajax_url . '\';'; - $script[] = 'var plg_quickicon_jupdatecheck_jversion = \'' . JVERSION . '\''; - $script[] = 'var plg_quickicon_joomlaupdate_text = {' - . '"UPTODATE" : "' . JText::_('PLG_QUICKICON_JOOMLAUPDATE_UPTODATE', true) . '",' - . '"UPDATEFOUND": "' . JText::_('PLG_QUICKICON_JOOMLAUPDATE_UPDATEFOUND', true) . '",' - . '"UPDATEFOUND_MESSAGE": "' . JText::_('PLG_QUICKICON_JOOMLAUPDATE_UPDATEFOUND_MESSAGE', true) . '",' - . '"UPDATEFOUND_BUTTON": "' . JText::_('PLG_QUICKICON_JOOMLAUPDATE_UPDATEFOUND_BUTTON', true) . '",' - . '"ERROR": "' . JText::_('PLG_QUICKICON_JOOMLAUPDATE_ERROR', true) . '",' - . '};'; - $script[] = 'var plg_quickicon_joomlaupdate_img = {' - . '"UPTODATE" : "' . JUri::base(true) . '/templates/' . $cur_template . '/images/header/icon-48-jupdate-uptodate.png",' - . '"UPDATEFOUND": "' . JUri::base(true) . '/templates/' . $cur_template . '/images/header/icon-48-jupdate-updatefound.png",' - . '"ERROR": "' . JUri::base(true) . '/templates/' . $cur_template . '/images/header/icon-48-deny.png",' - . '};'; - JFactory::getDocument()->addScriptDeclaration(implode("\n", $script)); - JHtml::_('script', 'plg_quickicon_joomlaupdate/jupdatecheck.js', false, true); + JHtml::_('behavior.core'); + JHtml::_('script', 'plg_quickicon_joomlaupdate/jupdatecheck.min.js', false, true); return array( array( From f506458053940cf0005fa3617cc747d2dedfcd7b Mon Sep 17 00:00:00 2001 From: Dimitris Grammatikogiannis Date: Mon, 24 Oct 2016 14:20:35 +0300 Subject: [PATCH 2/2] comments, console.log() --- .../js/extensionupdatecheck.js | 6 ------ .../js/extensionupdatecheck.min.js | 2 +- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/media/plg_quickicon_extensionupdate/js/extensionupdatecheck.js b/media/plg_quickicon_extensionupdate/js/extensionupdatecheck.js index 487b042fcc135..7f0842b40d64b 100644 --- a/media/plg_quickicon_extensionupdate/js/extensionupdatecheck.js +++ b/media/plg_quickicon_extensionupdate/js/extensionupdatecheck.js @@ -31,13 +31,7 @@ if (updateInfoList.length === 0) { /** No updates **/ link.innerHTML = Joomla.JText._('PLG_QUICKICON_EXTENSIONUPDATE_UPTODATE'); - console.log('no update'); - console.log(Joomla.JText._('PLG_QUICKICON_EXTENSIONUPDATE_UPTODATE')); } else { -// Testing replace #30 if (updateInfoList.length === 1) { -// And uncomment next line -// updateInfoList = ['r', '3'] - var messages = { "message": [ Joomla.JText._('PLG_QUICKICON_EXTENSIONUPDATE_UPDATEFOUND_MESSAGE').replace("%s", updateInfoList.length) diff --git a/media/plg_quickicon_extensionupdate/js/extensionupdatecheck.min.js b/media/plg_quickicon_extensionupdate/js/extensionupdatecheck.min.js index 861f285813107..4de41207e445a 100644 --- a/media/plg_quickicon_extensionupdate/js/extensionupdatecheck.min.js +++ b/media/plg_quickicon_extensionupdate/js/extensionupdatecheck.min.js @@ -1 +1 @@ -!function(){"use strict";var a=function(){if(Joomla.getOptions("js-extensions-update")){var a=Joomla.getOptions("js-extensions-update");Joomla.request({url:a.ajaxUrl+"&eid=0&skip=700",method:"GET",data:"",perform:!0,onSuccess:function(b,c){var d=document.getElementById("plg_quickicon_extensionupdate").querySelector("span.j-links-link"),e=JSON.parse(b);if(e instanceof Array)if(0===e.length)d.innerHTML=Joomla.JText._("PLG_QUICKICON_EXTENSIONUPDATE_UPTODATE"),console.log("no update"),console.log(Joomla.JText._("PLG_QUICKICON_EXTENSIONUPDATE_UPTODATE"));else{var f={message:[Joomla.JText._("PLG_QUICKICON_EXTENSIONUPDATE_UPDATEFOUND_MESSAGE").replace("%s",e.length)+'"],error:["info"]};Joomla.renderMessages(f),window.scrollTo(0,0),d.innerHTML=Joomla.JText._("PLG_QUICKICON_EXTENSIONUPDATE_UPDATEFOUND").replace("%s",e.length)}else d.innerHTML=Joomla.JText._("PLG_QUICKICON_EXTENSIONUPDATE_ERROR")},onError:function(a){document.getElementById("plg_quickicon_extensionupdate").querySelector("span.j-links-link").innerHTML=Joomla.JText._("PLG_QUICKICON_EXTENSIONUPDATE_ERROR")}})}};document.addEventListener("DOMContentLoaded",function(){a()})}(); \ No newline at end of file +!function(){"use strict";var a=function(){if(Joomla.getOptions("js-extensions-update")){var a=Joomla.getOptions("js-extensions-update");Joomla.request({url:a.ajaxUrl+"&eid=0&skip=700",method:"GET",data:"",perform:!0,onSuccess:function(b,c){var d=document.getElementById("plg_quickicon_extensionupdate").querySelector("span.j-links-link"),e=JSON.parse(b);if(e instanceof Array)if(0===e.length)d.innerHTML=Joomla.JText._("PLG_QUICKICON_EXTENSIONUPDATE_UPTODATE");else{var f={message:[Joomla.JText._("PLG_QUICKICON_EXTENSIONUPDATE_UPDATEFOUND_MESSAGE").replace("%s",e.length)+'"],error:["info"]};Joomla.renderMessages(f),window.scrollTo(0,0),d.innerHTML=Joomla.JText._("PLG_QUICKICON_EXTENSIONUPDATE_UPDATEFOUND").replace("%s",e.length)}else d.innerHTML=Joomla.JText._("PLG_QUICKICON_EXTENSIONUPDATE_ERROR")},onError:function(a){document.getElementById("plg_quickicon_extensionupdate").querySelector("span.j-links-link").innerHTML=Joomla.JText._("PLG_QUICKICON_EXTENSIONUPDATE_ERROR")}})}};document.addEventListener("DOMContentLoaded",function(){a()})}(); \ No newline at end of file