Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/CoreHome/templates/autocomplete.js')
-rw-r--r--plugins/CoreHome/templates/autocomplete.js463
1 files changed, 222 insertions, 241 deletions
diff --git a/plugins/CoreHome/templates/autocomplete.js b/plugins/CoreHome/templates/autocomplete.js
index b9ca092420..37af24e72c 100644
--- a/plugins/CoreHome/templates/autocomplete.js
+++ b/plugins/CoreHome/templates/autocomplete.js
@@ -5,248 +5,229 @@
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
-function switchSite(id, name, showAjaxLoading, idCanBeAll)
-{
- if (id == 'all'
- && !idCanBeAll)
- {
- broadcast.propagateNewPage('module=MultiSites&action=index');
- }
- else
- {
- $('.sites_autocomplete input').val(id);
- $('.custom_select_main_link').text(name);
- $('.custom_select_main_link').addClass('custom_select_loading');
- broadcast.propagateNewPage('idSite='+id, showAjaxLoading);
- }
+function switchSite(id, name, showAjaxLoading, idCanBeAll) {
+ if (id == 'all'
+ && !idCanBeAll) {
+ broadcast.propagateNewPage('module=MultiSites&action=index');
+ }
+ else {
+ $('.sites_autocomplete input').val(id);
+ $('.custom_select_main_link').text(name);
+ $('.custom_select_main_link').addClass('custom_select_loading');
+ broadcast.propagateNewPage('idSite=' + id, showAjaxLoading);
+ }
return false;
}
-$(function() {
-
- var reset = function(selector)
- {
- $('.websiteSearch', selector).val('');
- $('.custom_select_ul_list', selector).show();
- $(".siteSelect.ui-autocomplete,.reset", selector).hide();
- };
-
- // sets up every un-inited site selector widget
- piwik.initSiteSelectors = function()
- {
- $('.sites_autocomplete').each(function() {
- var selector = $(this);
-
- if (selector.attr('data-inited') == 1)
- {
- return;
- }
-
- selector.attr('data-inited', 1);
-
- var websiteSearch = $('.websiteSearch', selector);
-
- // when the search input is clicked, clear the input
- websiteSearch.click(function() {
- $(this).val('');
- });
-
- // when a key is released over the search input when empty, reset the selector
- //
- websiteSearch.keyup(function(e) {
- if (e.keyCode == 27)
- {
- $('.custom_select_block', selector).removeClass('custom_select_block_show');
- return false;
- }
-
- if (!$(this).val())
- {
- reset(selector);
- }
- });
-
- // setup the autocompleter
- websiteSearch.autocomplete({
- minLength: 1,
- source: '?module=SitesManager&action=getSitesForAutocompleter',
- appendTo: $('.custom_select_container', selector),
- select: function(event, ui) {
- if (ui.item.id > 0)
- {
- // set attributes of selected site display (what shows in the box)
- $('.custom_select_main_link', selector)
- .attr('siteid', ui.item.id)
- .text(ui.item.name);
-
- // hide the dropdown
- $('.custom_select_block', selector).removeClass('custom_select_block_show');
-
- // fire the site selected event
- selector.trigger('piwik:siteSelected', ui.item);
- }
- else
- {
- reset(selector);
- }
-
- return false;
- },
- focus: function(event, ui) {
- $('.websiteSearch', selector).val(ui.item.name);
- return false;
- },
- search: function(event, ui) {
- $('.reset', selector).show();
- $('.custom_select_main_link', selector).addClass('custom_select_loading');
- },
- open: function(event, ui) {
- var widthSitesSelection = +$('.custom_select_ul_list', selector).width();
-
- $('.custom_select_main_link', selector).removeClass('custom_select_loading');
-
- var maxSitenameWidth = $('.max_sitename_width', selector);
- if (widthSitesSelection > maxSitenameWidth.val())
- {
- maxSitenameWidth.val(widthSitesSelection);
- }
- else
- {
- maxSitenameWidth = +maxSitenameWidth.val(); // convert to int
- }
-
- $('.custom_select_ul_list', selector).hide();
-
- // customize jquery-ui's autocomplete positioning
- var cssToRemove = {float: 'none', position: 'static'};
- $('.siteSelect.ui-autocomplete', selector)
- .show().width(widthSitesSelection).css(cssToRemove)
- .find('li,a').each(function() {
- $(this).css(cssToRemove);
- });
-
- $('.custom_select_block_show', selector).width(widthSitesSelection);
- }
- }).data("autocomplete")._renderItem = function (ul, item) {
- $(ul).addClass('siteSelect');
-
- var idSiteParam = 'idSite=' + item.id,
- hash = broadcast.isHashExists() ? broadcast.getHashFromUrl().replace(/idSite=[0-9]+/, idSiteParam) : "",
- linkUrl = piwikHelper.getCurrentQueryStringWithParametersModified(idSiteParam) + hash,
- link = $("<a></a>").html(item.label).attr('href', linkUrl),
- listItem = $('<li></li>');
-
- listItem.data("item.autocomplete", item)
- .append(link)
- .appendTo(ul);
-
- link.click(function(e) {
- // in ie8, the event would bubble up and cause an error
- e.stopPropagation();
- return true;
- });
-
- return listItem;
- };
-
- // when the reset button is clicked, reset the site selector
- $('.reset', selector).click(reset);
-
- // when mouse button is released on body, check if it is not over the site selector, and if not
- // close it
- $('body').on('mouseup', function(e) {
- var closestSelector = $(e.target).closest('.sites_autocomplete');
- if (closestSelector != selector)
- {
- reset(selector);
- $('.custom_select_block', selector).removeClass('custom_select_block_show');
- }
- });
-
- // set event handling code for non-jquery-autocomplete parts of widget
- if ($('li', selector).length > 1)
- {
- // event handler for when site selector is clicked. shows dropdown w/ first X sites
- $(".custom_select_main_link", selector).click(function() {
- $(".custom_select_block", selector).addClass("custom_select_block_show");
- $('.custom_select_ul_list', selector).show();
- $('.websiteSearch', selector).val('').focus();
- return false;
- });
-
- $('.custom_select_block', selector).on('mouseenter', function() {
- $('.custom_select_ul_list li a', selector).each(function(){
- var hash = broadcast.getHashFromUrl();
- hash = hash ? hash.replace(/idSite=[0-9]+/, 'idSite='+$(this).attr('siteid')) : "";
-
- var queryString = piwikHelper.getCurrentQueryStringWithParametersModified(
- 'idSite=' + $(this).attr('siteid'));
- $(this).attr('href', queryString + hash);
- });
- });
-
- // change selection. fire's site selector's on select event and modifies the attributes
- // of the selected link
- $('.custom_select_ul_list li a', selector).each(function() {
- $(this).click(function (e) {
- var idsite = $(this).attr('siteid'),
- name = $(this).text();
-
- $(".custom_select_main_link", selector)
- .attr('siteid', idsite)
- .text(name);
-
- selector.trigger('piwik:siteSelected', {id: idsite, name: name});
-
- // close the dropdown
- $(".custom_select_block", selector).removeClass("custom_select_block_show");
-
- e.preventDefault();
- });
- });
-
- var inlinePaddingWidth = 22, staticPaddingWidth = 34;
- if ($(".custom_select_block ul", selector)[0])
- {
- var widthSitesSelection = Math.max(
- $(".custom_select_block ul", selector).width()+inlinePaddingWidth,
- $(".custom_select_main_link", selector).width()+staticPaddingWidth
- );
- $(".custom_select_block", selector).css('width', widthSitesSelection);
- }
- }
- else
- {
- $('.custom_select_main_link', selector).addClass('noselect');
- }
-
- // handle multi-sites link click (triggers site selected event w/ id=all)
- $('.custom_select_all', selector).click(function () {
- $(".custom_select_block", selector).toggleClass("custom_select_block_show");
-
- selector.trigger('piwik:siteSelected', {id: 'all', name: $('.custom_select_all>a', selector).text()});
- });
-
- // handle submit button click
- $('.but', selector).on('click', function(e) {
- if (websiteSearch.val() != '')
- {
- websiteSearch.autocomplete('search', websiteSearch.val() + '%%%');
- }
- return false;
- });
-
- // if the data-switch-site-on-select attribute is set to 1 on the selector, set
- // a default handler for piwik:siteSelected that switches the current site
- if (selector.attr('data-switch-site-on-select') == 1)
- {
- selector.bind('piwik:siteSelected', function (e, site) {
- if (piwik.idSite !== site.id)
- {
- switchSite(site.id, site.name);
- }
- });
- }
- });
- };
+$(function () {
+
+ var reset = function (selector) {
+ $('.websiteSearch', selector).val('');
+ $('.custom_select_ul_list', selector).show();
+ $(".siteSelect.ui-autocomplete,.reset", selector).hide();
+ };
+
+ // sets up every un-inited site selector widget
+ piwik.initSiteSelectors = function () {
+ $('.sites_autocomplete').each(function () {
+ var selector = $(this);
+
+ if (selector.attr('data-inited') == 1) {
+ return;
+ }
+
+ selector.attr('data-inited', 1);
+
+ var websiteSearch = $('.websiteSearch', selector);
+
+ // when the search input is clicked, clear the input
+ websiteSearch.click(function () {
+ $(this).val('');
+ });
+
+ // when a key is released over the search input when empty, reset the selector
+ //
+ websiteSearch.keyup(function (e) {
+ if (e.keyCode == 27) {
+ $('.custom_select_block', selector).removeClass('custom_select_block_show');
+ return false;
+ }
+
+ if (!$(this).val()) {
+ reset(selector);
+ }
+ });
+
+ // setup the autocompleter
+ websiteSearch.autocomplete({
+ minLength: 1,
+ source: '?module=SitesManager&action=getSitesForAutocompleter',
+ appendTo: $('.custom_select_container', selector),
+ select: function (event, ui) {
+ if (ui.item.id > 0) {
+ // set attributes of selected site display (what shows in the box)
+ $('.custom_select_main_link', selector)
+ .attr('siteid', ui.item.id)
+ .text(ui.item.name);
+
+ // hide the dropdown
+ $('.custom_select_block', selector).removeClass('custom_select_block_show');
+
+ // fire the site selected event
+ selector.trigger('piwik:siteSelected', ui.item);
+ }
+ else {
+ reset(selector);
+ }
+
+ return false;
+ },
+ focus: function (event, ui) {
+ $('.websiteSearch', selector).val(ui.item.name);
+ return false;
+ },
+ search: function (event, ui) {
+ $('.reset', selector).show();
+ $('.custom_select_main_link', selector).addClass('custom_select_loading');
+ },
+ open: function (event, ui) {
+ var widthSitesSelection = +$('.custom_select_ul_list', selector).width();
+
+ $('.custom_select_main_link', selector).removeClass('custom_select_loading');
+
+ var maxSitenameWidth = $('.max_sitename_width', selector);
+ if (widthSitesSelection > maxSitenameWidth.val()) {
+ maxSitenameWidth.val(widthSitesSelection);
+ }
+ else {
+ maxSitenameWidth = +maxSitenameWidth.val(); // convert to int
+ }
+
+ $('.custom_select_ul_list', selector).hide();
+
+ // customize jquery-ui's autocomplete positioning
+ var cssToRemove = {float: 'none', position: 'static'};
+ $('.siteSelect.ui-autocomplete', selector)
+ .show().width(widthSitesSelection).css(cssToRemove)
+ .find('li,a').each(function () {
+ $(this).css(cssToRemove);
+ });
+
+ $('.custom_select_block_show', selector).width(widthSitesSelection);
+ }
+ }).data("autocomplete")._renderItem = function (ul, item) {
+ $(ul).addClass('siteSelect');
+
+ var idSiteParam = 'idSite=' + item.id,
+ hash = broadcast.isHashExists() ? broadcast.getHashFromUrl().replace(/idSite=[0-9]+/, idSiteParam) : "",
+ linkUrl = piwikHelper.getCurrentQueryStringWithParametersModified(idSiteParam) + hash,
+ link = $("<a></a>").html(item.label).attr('href', linkUrl),
+ listItem = $('<li></li>');
+
+ listItem.data("item.autocomplete", item)
+ .append(link)
+ .appendTo(ul);
+
+ link.click(function (e) {
+ // in ie8, the event would bubble up and cause an error
+ e.stopPropagation();
+ return true;
+ });
+
+ return listItem;
+ };
+
+ // when the reset button is clicked, reset the site selector
+ $('.reset', selector).click(reset);
+
+ // when mouse button is released on body, check if it is not over the site selector, and if not
+ // close it
+ $('body').on('mouseup', function (e) {
+ var closestSelector = $(e.target).closest('.sites_autocomplete');
+ if (closestSelector != selector) {
+ reset(selector);
+ $('.custom_select_block', selector).removeClass('custom_select_block_show');
+ }
+ });
+
+ // set event handling code for non-jquery-autocomplete parts of widget
+ if ($('li', selector).length > 1) {
+ // event handler for when site selector is clicked. shows dropdown w/ first X sites
+ $(".custom_select_main_link", selector).click(function () {
+ $(".custom_select_block", selector).addClass("custom_select_block_show");
+ $('.custom_select_ul_list', selector).show();
+ $('.websiteSearch', selector).val('').focus();
+ return false;
+ });
+
+ $('.custom_select_block', selector).on('mouseenter', function () {
+ $('.custom_select_ul_list li a', selector).each(function () {
+ var hash = broadcast.getHashFromUrl();
+ hash = hash ? hash.replace(/idSite=[0-9]+/, 'idSite=' + $(this).attr('siteid')) : "";
+
+ var queryString = piwikHelper.getCurrentQueryStringWithParametersModified(
+ 'idSite=' + $(this).attr('siteid'));
+ $(this).attr('href', queryString + hash);
+ });
+ });
+
+ // change selection. fire's site selector's on select event and modifies the attributes
+ // of the selected link
+ $('.custom_select_ul_list li a', selector).each(function () {
+ $(this).click(function (e) {
+ var idsite = $(this).attr('siteid'),
+ name = $(this).text();
+
+ $(".custom_select_main_link", selector)
+ .attr('siteid', idsite)
+ .text(name);
+
+ selector.trigger('piwik:siteSelected', {id: idsite, name: name});
+
+ // close the dropdown
+ $(".custom_select_block", selector).removeClass("custom_select_block_show");
+
+ e.preventDefault();
+ });
+ });
+
+ var inlinePaddingWidth = 22, staticPaddingWidth = 34;
+ if ($(".custom_select_block ul", selector)[0]) {
+ var widthSitesSelection = Math.max(
+ $(".custom_select_block ul", selector).width() + inlinePaddingWidth,
+ $(".custom_select_main_link", selector).width() + staticPaddingWidth
+ );
+ $(".custom_select_block", selector).css('width', widthSitesSelection);
+ }
+ }
+ else {
+ $('.custom_select_main_link', selector).addClass('noselect');
+ }
+
+ // handle multi-sites link click (triggers site selected event w/ id=all)
+ $('.custom_select_all', selector).click(function () {
+ $(".custom_select_block", selector).toggleClass("custom_select_block_show");
+
+ selector.trigger('piwik:siteSelected', {id: 'all', name: $('.custom_select_all>a', selector).text()});
+ });
+
+ // handle submit button click
+ $('.but', selector).on('click', function (e) {
+ if (websiteSearch.val() != '') {
+ websiteSearch.autocomplete('search', websiteSearch.val() + '%%%');
+ }
+ return false;
+ });
+
+ // if the data-switch-site-on-select attribute is set to 1 on the selector, set
+ // a default handler for piwik:siteSelected that switches the current site
+ if (selector.attr('data-switch-site-on-select') == 1) {
+ selector.bind('piwik:siteSelected', function (e, site) {
+ if (piwik.idSite !== site.id) {
+ switchSite(site.id, site.name);
+ }
+ });
+ }
+ });
+ };
});