diff options
Diffstat (limited to 'plugins/CoreHome/angularjs/siteselector/siteselector-model.service.js')
-rw-r--r-- | plugins/CoreHome/angularjs/siteselector/siteselector-model.service.js | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/plugins/CoreHome/angularjs/siteselector/siteselector-model.service.js b/plugins/CoreHome/angularjs/siteselector/siteselector-model.service.js deleted file mode 100644 index 19cc732af5..0000000000 --- a/plugins/CoreHome/angularjs/siteselector/siteselector-model.service.js +++ /dev/null @@ -1,137 +0,0 @@ -/*! - * Matomo - free/libre analytics platform - * - * @link https://matomo.org - * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later - */ -(function () { - angular.module('piwikApp').factory('siteSelectorModel', siteSelectorModel); - - siteSelectorModel.$inject = ['piwikApi', '$filter', 'piwik', '$q']; - - function siteSelectorModel(piwikApi, $filter, piwik, $q) { - - var initialSites = null; - var limitPromise = null; - - var model = { - sites : [], - hasMultipleWebsites : false, - isLoading : false, - firstSiteName : '', - onlySitesWithAdminAccess: false, - updateWebsitesList: updateWebsitesList, - searchSite: searchSite, - loadSite: loadSite, - loadInitialSites: loadInitialSites, - hasMultipleSites: hasMultipleSites - }; - - return model; - - function updateWebsitesList(sites) { - - if (!sites || !sites.length) { - model.sites = []; - return []; - } - - angular.forEach(sites, function (site) { - if (site.group) site.name = '[' + site.group + '] ' + site.name; - }); - - model.sites = sortSites(sites); - - if (!model.firstSiteName) { - model.firstSiteName = model.sites[0].name; - } - - model.hasMultipleWebsites = model.hasMultipleWebsites || sites.length > 1; - - return model.sites; - } - - function searchSite(term) { - - if (!term) { - loadInitialSites(); - return; - } - - if (model.isLoading) { - if (model.currentRequest) { - model.currentRequest.abort(); - } else if (limitPromise) { - limitPromise.abort(); - limitPromise = null; - } - } - - model.isLoading = true; - - if (!limitPromise) { - limitPromise = piwikApi.fetch({method: 'SitesManager.getNumWebsitesToDisplayPerPage'}); - } - - return limitPromise.then(function (response) { - var limit = response.value; - - var methodToCall = 'SitesManager.getPatternMatchSites'; - if (model.onlySitesWithAdminAccess) { - methodToCall = 'SitesManager.getSitesWithAdminAccess'; - } - - model.currentRequest = piwikApi.fetch({ - method: methodToCall, - limit: limit, - pattern: term - }); - - return model.currentRequest; - }).then(function (response) { - if (angular.isDefined(response)) { - return updateWebsitesList(response); - } - }).finally(function () { - model.isLoading = false; - model.currentRequest = null; - }); - } - - function loadSite(idsite) { - if (idsite == 'all') { - document.location.href = piwikHelper.getCurrentQueryStringWithParametersModified(piwikHelper.getQueryStringFromParameters({ - module: 'MultiSites', - action: 'index', - date: piwik.currentDateString, - period: piwik.period - })); - } else { - piwik.broadcast.propagateNewPage('segment=&idSite=' + idsite, false); - } - } - - function sortSites(websites) - { - return $filter('orderBy')(websites, '+name'); - } - - function loadInitialSites() { - if (initialSites) { - model.sites = initialSites; - var deferred = $q.defer(); - deferred.resolve(); - return deferred.promise; - } - - return searchSite('%').then(function () { - initialSites = model.sites; - model.isInitialized = true - }); - } - - function hasMultipleSites() { - return initialSites && initialSites.length > 1; - } - } -})();
\ No newline at end of file |