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/angularjs/reporting-menu/reportingmenu.controller.js')
-rw-r--r--plugins/CoreHome/angularjs/reporting-menu/reportingmenu.controller.js248
1 files changed, 0 insertions, 248 deletions
diff --git a/plugins/CoreHome/angularjs/reporting-menu/reportingmenu.controller.js b/plugins/CoreHome/angularjs/reporting-menu/reportingmenu.controller.js
deleted file mode 100644
index 6da7b0898a..0000000000
--- a/plugins/CoreHome/angularjs/reporting-menu/reportingmenu.controller.js
+++ /dev/null
@@ -1,248 +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').controller('ReportingMenuController', ReportingMenuController);
-
- ReportingMenuController.$inject = ['$scope', 'piwik', '$location', '$timeout', 'reportingMenuModel', '$rootScope', 'piwikUrl'];
-
- function ReportingMenuController($scope, piwik, $location, $timeout, menuModel, $rootScope, piwikUrl) {
-
- $scope.helpShownCategory = null;
-
- var idSite = piwikUrl.getSearchParam('idSite');
- var period = piwikUrl.getSearchParam('period');
- var date = piwikUrl.getSearchParam('date');
- var segment = piwikUrl.getSearchParam('segment');
-
- var comparePeriods = piwikUrl.getSearchParam('comparePeriods');
- var compareDates = piwikUrl.getSearchParam('compareDates');
- var compareSegments = piwikUrl.getSearchParam('compareSegments');
-
- var showSubcategoryHelpOnLoad = null;
-
- var initialLoad = true;
-
- $scope.currentCategory = piwikUrl.getSearchParam('category');
- $scope.currentSubcategory = piwikUrl.getSearchParam('subcategory');
-
- function markAllCategoriesAsInactive()
- {
- angular.forEach(menuModel.menu, function (cat) {
- cat.active = false;
- });
- }
-
- function markAllCategoriesAndChildrenInactive()
- {
- angular.forEach(menuModel.menu, function (cat) {
- cat.active = false;
- angular.forEach(cat.subcategories, function (subcat) {
- subcat.active = false;
-
- if (subcat.isGroup && subcat.subcategories) {
- angular.forEach(subcat.subcategories, function (sub) {
- sub.active = false;
- });
-
- }
- });
- });
- }
-
- $scope.menuModel = menuModel;
-
- // highlight the currently hovered subcategory (and category)
- function enterSubcategory(category, subcategory, subsubcategory) {
- if (!category || !subcategory) {
- return;
- }
-
- markAllCategoriesAndChildrenInactive();
-
- category.active = true;
- subcategory.active = true;
-
- if (subsubcategory) {
- subcategory.name = subsubcategory.name;
- subsubcategory.active = true;
- }
- }
-
- $scope.showHelp = function (category, subcategory, $event) {
- if (( $scope.currentCategory !== category.id
- || $scope.currentSubcategory !== subcategory.id )
- && $event
- ) {
- showSubcategoryHelpOnLoad = { category: category, subcategory: subcategory };
- window.location.href = '#?' + $scope.makeUrl(category, subcategory);
- return;
- }
-
- var UI = require('piwik/UI');
- var notification = new UI.Notification();
-
- if (subcategory === $scope.helpShownCategory) {
- notification.remove('reportingmenu-help');
- $scope.helpShownCategory = null;
- return;
- }
-
- var prefix = '<strong>' + _pk_translate('CoreHome_ReportingCategoryHelpPrefix', [category.name, subcategory.name]) + '</strong><br/>';
-
- var options = { context: 'info', id: 'reportingmenu-help', type: 'transient', noclear: true };
- options['class'] = 'help-notification';
-
- notification.show(prefix + subcategory.help, options);
- $scope.helpShownCategory = subcategory;
-
- // move help notification so it is always the first one shown
- $('[notification-id=reportingmenu-help]').prependTo($('#notificationContainer'));
- };
-
- $scope.isNotificationShown = function () {
- return !! $('#reportingmenu-help').length;
- };
-
- $scope.makeUrl = function (category, subcategory) {
- var params = {
- idSite: idSite,
- period: period,
- date: decodeURIComponent(date),
- segment: decodeURIComponent(segment),
- category: category.id,
- subcategory: subcategory.id,
- };
-
- if (compareDates) {
- params.compareDates = compareDates;
- }
-
- if (comparePeriods) {
- params.comparePeriods = comparePeriods;
- }
-
- if (compareSegments) {
- params.compareSegments = compareSegments;
- }
-
- return $.param(params)
- // some browsers treat URLs w/ date=a,b differently from date=a%2Cb, causing multiple
- // entries to show up in the browser history. this has a compounding effect w/ angular.js,
- // which when the back button is pressed to effectively abort the back navigation.
- .replace(/%2C/g, ',');
- };
-
- $scope.loadCategory = function (category) {
- var UI = require('piwik/UI');
- UI.Notification.prototype.remove('reportingmenu-help');
-
- if (category.active) {
- category.active = false;
- } else {
- markAllCategoriesAsInactive();
- category.active = true;
- }
-
- if (category.active && category.subcategories && category.subcategories.length === 1) {
- $scope.helpShownCategory = null;
-
- var subcategory = category.subcategories[0];
-
- if (subcategory.active) {
- // we need to manually trigger change as URL would not change and therefore page would not be
- // reloaded
- $scope.loadSubcategory(category, subcategory);
- } else {
- var url = $scope.makeUrl(category, subcategory);
- $location.search(url);
- }
- }
- };
-
- $scope.loadSubcategory = function (category, subcategory) {
- var UI = require('piwik/UI');
- UI.Notification.prototype.remove('reportingmenu-help');
-
- if (subcategory && subcategory.active) {
- $scope.helpShownCategory = null;
-
- // this menu item is already active, a location change success would not be triggered,
- // instead trigger an event
- $rootScope.$emit('loadPage', category.id, subcategory.id);
- }
- };
-
- menuModel.fetchMenuItems().then(function (menu) {
- if (!$location.search().subcategory) {
- // load first, initial page if no subcategory is present
- enterSubcategory(menu[0], menu[0].subcategories[0]);
- $location.search($scope.makeUrl(menu[0], menu[0].subcategories[0]));
- }
- });
-
- $rootScope.$on('updateReportingMenu', function () {
- menuModel.reloadMenuItems().then(function (menu) {
- var $search = $location.search();
- var category = $search.category;
- var subcategory = $search.subcategory;
- // we need to make sure to select same categories again
- if (category && subcategory) {
- var found = menuModel.findSubcategory(category, subcategory);
- if (found) {
- enterSubcategory(found.category, found.subcategory, found.subsubcategory);
- }
- }
- });
- if ('object' === typeof widgetsHelper && widgetsHelper.availableWidgets) {
- // lets also update widgetslist so will be easier to update list of available widgets in dashboard selector
- // immediately
- delete widgetsHelper.availableWidgets;
- widgetsHelper.getAvailableWidgets();
- }
- });
-
- $rootScope.$on('$locationChangeSuccess', function () {
- var $search = $location.search();
- var category = $search.category;
- var subcategory = $search.subcategory;
-
- period = piwikUrl.getSearchParam('period');
- date = piwikUrl.getSearchParam('date');
- segment = piwikUrl.getSearchParam('segment');
-
- comparePeriods = piwikUrl.getSearchParam('comparePeriods');
- compareDates = piwikUrl.getSearchParam('compareDates');
- compareSegments = piwikUrl.getSearchParam('compareSegments');
-
- if (!category || !subcategory) {
- return;
- }
-
- var found = menuModel.findSubcategory(category, subcategory);
- enterSubcategory(found.category, found.subcategory, found.subsubcategory);
- });
-
- $rootScope.$on('piwikPageChange', function (event) {
- if (!initialLoad) {
- globalAjaxQueue.abort();
- }
-
- $scope.helpShownCategory = null;
- $scope.currentCategory = piwikUrl.getSearchParam('category');
- $scope.currentSubcategory = piwikUrl.getSearchParam('subcategory');
-
- if (showSubcategoryHelpOnLoad) {
- $scope.showHelp(showSubcategoryHelpOnLoad.category, showSubcategoryHelpOnLoad.subcategory);
- showSubcategoryHelpOnLoad = null;
- }
-
- $('#loadingError').hide();
-
- initialLoad = false;
- });
- }
-})();