From 89aa4f8806bf53bfa8851ae6051e7f6f40fcbfbc Mon Sep 17 00:00:00 2001 From: Thomas Steur <thomas.steur@gmail.com> Date: Fri, 16 Oct 2015 09:54:43 +0000 Subject: [PATCH] fix more ui tests --- .../reporting-menu/reportingmenu-model.js | 15 ++++++++++-- .../reportingmenu.controller.js | 22 +++++++++++++++--- .../reportingmenu.directive.html | 4 ++-- .../siteselector/siteselector.directive.js | 1 - .../widget-loader/widgetloader.directive.js | 23 ++++++++++--------- plugins/CoreHome/javascripts/corehome.js | 2 ++ plugins/CoreHome/javascripts/top_controls.js | 1 - .../dashboard/dashboard.directive.js | 5 ++-- .../Dashboard/javascripts/dashboardObject.js | 4 ++-- plugins/Goals/Menu.php | 3 --- 10 files changed, 53 insertions(+), 27 deletions(-) diff --git a/plugins/CoreHome/angularjs/reporting-menu/reportingmenu-model.js b/plugins/CoreHome/angularjs/reporting-menu/reportingmenu-model.js index 1ac9e223f3..7b999aab08 100644 --- a/plugins/CoreHome/angularjs/reporting-menu/reportingmenu-model.js +++ b/plugins/CoreHome/angularjs/reporting-menu/reportingmenu-model.js @@ -30,6 +30,7 @@ { var foundCategory = null; var foundSubcategory = null; + var foundSubSubcategory = null; angular.forEach(model.menu, function (category) { if (category.id !== categoryId) { @@ -40,10 +41,20 @@ foundCategory = category; foundSubcategory = subcategory; } + + if (subcategory.isGroup) { + angular.forEach(subcategory.subcategories, function (subcat) { + if (subcat.id === subcategoryId) { + foundCategory = category; + foundSubcategory = subcategory; + foundSubSubcategory = subcat; + } + }); + } }); }); - return {category: foundCategory, subcategory: foundSubcategory}; + return {category: foundCategory, subcategory: foundSubcategory, subsubcategory: foundSubSubcategory}; } function buildMenuFromPages(pages) @@ -77,7 +88,7 @@ if (page.category.id === categoryId) { var subcategory = page.subcategory; - if (subcategory.id === activeSubcategory) { + if (subcategory.id === activeSubcategory && categoryId === activeCategory) { subcategory.active = true; } diff --git a/plugins/CoreHome/angularjs/reporting-menu/reportingmenu.controller.js b/plugins/CoreHome/angularjs/reporting-menu/reportingmenu.controller.js index 57d202b250..719058da29 100644 --- a/plugins/CoreHome/angularjs/reporting-menu/reportingmenu.controller.js +++ b/plugins/CoreHome/angularjs/reporting-menu/reportingmenu.controller.js @@ -12,6 +12,13 @@ function ReportingMenuController($scope, piwik, $location, $timeout, menuModel, $rootScope) { function markAllCategoriesAsInactive() + { + angular.forEach(menuModel.menu, function (cat) { + cat.active = false; + }); + } + + function markAllCategoriesAndChildrenInactive() { angular.forEach(menuModel.menu, function (cat) { cat.active = false; @@ -40,15 +47,19 @@ $scope.menuModel = menuModel; // highlight the currently hovered subcategory (and category) - function enterSubcategory(category, subcategory) { + function enterSubcategory(category, subcategory, subsubcategory) { if (!category || !subcategory) { return; } - markAllCategoriesAsInactive(); + markAllCategoriesAndChildrenInactive(); category.active = true; subcategory.active = true; + + if (subsubcategory) { + subsubcategory.active = true; + } }; var idSite = getUrlParam('idSite'); @@ -70,6 +81,11 @@ return url; } + $scope.loadCategory = function (category) { + markAllCategoriesAsInactive(); + category.active = true; + }; + $scope.loadSubcategory = function (category, subcategory) { if (subcategory && subcategory.active) { // this menu item is already active, a location change success would not be triggered, @@ -95,7 +111,7 @@ } var found = menuModel.findSubcategory(category, subcategory); - enterSubcategory(found.category, found.subcategory); + enterSubcategory(found.category, found.subcategory, found.subsubcategory); }); } diff --git a/plugins/CoreHome/angularjs/reporting-menu/reportingmenu.directive.html b/plugins/CoreHome/angularjs/reporting-menu/reportingmenu.directive.html index c31a66a602..8cf6a9a67b 100644 --- a/plugins/CoreHome/angularjs/reporting-menu/reportingmenu.directive.html +++ b/plugins/CoreHome/angularjs/reporting-menu/reportingmenu.directive.html @@ -3,8 +3,8 @@ class="menuTab" ng-class="{'active': category.active}"> <a class="item" - ng-href="#?{{ makeUrl(category,category.subcategories[0]) }}" - ng-click="loadSubcategory(category, category.subcategories[0])"> + href="" + ng-click="loadCategory(category)"> <span class="menu-icon {{ category.icon ? category.icon : 'icon-arrow-right' }}"></span>{{ category.name }} <span class="hidden"> {{ 'CoreHome_Menu'|translate }} diff --git a/plugins/CoreHome/angularjs/siteselector/siteselector.directive.js b/plugins/CoreHome/angularjs/siteselector/siteselector.directive.js index ba5c492cb8..40996d2b57 100644 --- a/plugins/CoreHome/angularjs/siteselector/siteselector.directive.js +++ b/plugins/CoreHome/angularjs/siteselector/siteselector.directive.js @@ -63,7 +63,6 @@ return function (scope, element, attrs, ngModel) { scope.selectedSite = {id: attrs.siteid, name: attrs.sitename}; - scope.model.loadInitialSites(); if (ngModel) { ngModel.$setViewValue(scope.selectedSite); diff --git a/plugins/CoreHome/angularjs/widget-loader/widgetloader.directive.js b/plugins/CoreHome/angularjs/widget-loader/widgetloader.directive.js index 4e1859e789..b1d49579fc 100644 --- a/plugins/CoreHome/angularjs/widget-loader/widgetloader.directive.js +++ b/plugins/CoreHome/angularjs/widget-loader/widgetloader.directive.js @@ -19,9 +19,9 @@ (function () { angular.module('piwikApp').directive('piwikWidgetLoader', piwikWidgetLoader); - piwikWidgetLoader.$inject = ['piwik', 'piwikUrl', '$http', '$compile', '$q']; + piwikWidgetLoader.$inject = ['piwik', 'piwikUrl', '$http', '$compile', '$q', '$location']; - function piwikWidgetLoader(piwik, piwikUrl, $http, $compile, $q){ + function piwikWidgetLoader(piwik, piwikUrl, $http, $compile, $q, $location){ return { restrict: 'A', transclude: true, @@ -60,17 +60,18 @@ var url = $.param(parameters); - var idSite = piwikUrl.getSearchParam('idSite'); - var period = piwikUrl.getSearchParam('period'); - var date = piwikUrl.getSearchParam('date'); - var segment = piwikUrl.getSearchParam('segment'); + var $urlParams = $location.search(); + $urlParams = angular.copy($urlParams); + delete $urlParams['category']; + delete $urlParams['subcategory']; - url += '&idSite=' + idSite + '&period=' + period; - url += '&date=' + date + '&random=' + parseInt(Math.random() * 10000); + angular.forEach($urlParams, function (value, key) { + if (!(key in parameters)) { + url += '&' + key + '=' + piwikUrl.getSearchParam(key); + } + }); - if (segment) { - url += '&segment=' + segment; - } + url += '&random=' + parseInt(Math.random() * 10000); return '?' + url; } diff --git a/plugins/CoreHome/javascripts/corehome.js b/plugins/CoreHome/javascripts/corehome.js index f2a7468d6a..7b14515538 100755 --- a/plugins/CoreHome/javascripts/corehome.js +++ b/plugins/CoreHome/javascripts/corehome.js @@ -15,6 +15,8 @@ var headerMessageParent = $('#header_message').parent(); + initTopControls(); + // when 'check for updates...' link is clicked, force a check & display the result headerMessageParent.on('click', '#updateCheckLinkContainer', function (e) { e.preventDefault(); diff --git a/plugins/CoreHome/javascripts/top_controls.js b/plugins/CoreHome/javascripts/top_controls.js index 38b069d6c5..c94bcc128b 100644 --- a/plugins/CoreHome/javascripts/top_controls.js +++ b/plugins/CoreHome/javascripts/top_controls.js @@ -62,6 +62,5 @@ function initTopControls() { header.css('right', (Math.abs(overlap) + 18) * -1); } } - } } \ No newline at end of file diff --git a/plugins/Dashboard/angularjs/dashboard/dashboard.directive.js b/plugins/Dashboard/angularjs/dashboard/dashboard.directive.js index b9db49f4b3..9af79047f7 100644 --- a/plugins/Dashboard/angularjs/dashboard/dashboard.directive.js +++ b/plugins/Dashboard/angularjs/dashboard/dashboard.directive.js @@ -20,10 +20,11 @@ $('.dashboardSettings').show(); initTopControls(); - // Embed dashboard + // Embed dashboard / exported as widget if (!$('#topBars').length) { $('.dashboardSettings').after($('#Dashboard')); - $('#Dashboard_embeddedIndex_' + dashboardId).addClass('sfHover'); + $('#Dashboard ul li').removeClass('active'); + $('#Dashboard_embeddedIndex_' + dashboardId).addClass('active'); } widgetsHelper.getAvailableWidgets(); diff --git a/plugins/Dashboard/javascripts/dashboardObject.js b/plugins/Dashboard/javascripts/dashboardObject.js index beb590c4f6..457fc67f7a 100644 --- a/plugins/Dashboard/javascripts/dashboardObject.js +++ b/plugins/Dashboard/javascripts/dashboardObject.js @@ -536,11 +536,11 @@ var idDashboard = $(this).attr('data-idDashboard'); - $('#Dashboard ul li').removeClass('sfHover'); + $('#Dashboard ul li').removeClass('active'); methods.loadDashboard.apply(_self, [idDashboard]); - $(this).closest('li').addClass('sfHover'); + $(this).closest('li').addClass('active'); }); }; diff --git a/plugins/Goals/Menu.php b/plugins/Goals/Menu.php index 503c7e0430..258a0677e2 100644 --- a/plugins/Goals/Menu.php +++ b/plugins/Goals/Menu.php @@ -9,11 +9,9 @@ namespace Piwik\Plugins\Goals; use Piwik\Common; -use Piwik\Menu\Group; use Piwik\Menu\MenuUser; use Piwik\Piwik; use Piwik\Plugins\UsersManager\UserPreferences; -use Piwik\Translate; class Menu extends \Piwik\Plugin\Menu { @@ -25,7 +23,6 @@ class Menu extends \Piwik\Plugin\Menu if (Piwik::isUserHasAdminAccess($idSite)) { $menu->addManageItem('Goals_Goals', $this->urlForAction('manage', array('idSite' => $idSite)), 1); } - } private function getIdSite($default = null) -- GitLab