diff options
32 files changed, 307 insertions, 143 deletions
diff --git a/core/Menu/MenuAdmin.php b/core/Menu/MenuAdmin.php index 0b41bb33c5..899b417849 100644 --- a/core/Menu/MenuAdmin.php +++ b/core/Menu/MenuAdmin.php @@ -49,11 +49,6 @@ class MenuAdmin extends MenuAbstract self::getInstance()->add('General_Settings', $adminMenuName, $url, $displayedForCurrentUser, $order); } - public function add($adminMenuName, $url, $displayedForCurrentUser = true, $order = 20) - { - parent::add('General_Settings', $adminMenuName, $url, $displayedForCurrentUser, $order); - } - /** * Triggers the Menu.MenuAdmin.addItems hook and returns the admin menu. * diff --git a/core/Menu/MenuUser.php b/core/Menu/MenuUser.php index dd27fa4aef..f492916794 100755 --- a/core/Menu/MenuUser.php +++ b/core/Menu/MenuUser.php @@ -31,7 +31,7 @@ use Piwik\Piwik; * * @method static \Piwik\Menu\MenuUser getInstance() */ -class MenuUser extends MenuTop +class MenuUser extends MenuAbstract { /** diff --git a/core/Plugin/Controller.php b/core/Plugin/Controller.php index e767b1de4b..9fd08fd2d0 100644 --- a/core/Plugin/Controller.php +++ b/core/Plugin/Controller.php @@ -19,6 +19,7 @@ use Piwik\DataTable\Filter\CalculateEvolutionFilter; use Piwik\Date; use Piwik\FrontController; use Piwik\Menu\MenuTop; +use Piwik\Menu\MenuUser; use Piwik\NoAccessException; use Piwik\Notification\Manager as NotificationManager; use Piwik\Period\Month; @@ -563,7 +564,8 @@ abstract class Controller $this->setBasicVariablesView($view); - $view->topMenu = MenuTop::getInstance()->getMenu(); + $view->topMenu = MenuTop::getInstance()->getMenu(); + $view->userMenu = MenuUser::getInstance()->getMenu(); $notifications = $view->notifications; if (empty($notifications)) { diff --git a/core/Plugin/ControllerAdmin.php b/core/Plugin/ControllerAdmin.php index 4f8f885ef9..b3799c2ac6 100644 --- a/core/Plugin/ControllerAdmin.php +++ b/core/Plugin/ControllerAdmin.php @@ -12,6 +12,7 @@ use Piwik\Config as PiwikConfig; use Piwik\Config; use Piwik\Menu\MenuAdmin; use Piwik\Menu\MenuTop; +use Piwik\Menu\MenuUser; use Piwik\Notification; use Piwik\Notification\Manager as NotificationManager; use Piwik\Piwik; @@ -160,7 +161,8 @@ abstract class ControllerAdmin extends Controller self::notifyWhenTrackingStatisticsDisabled(); self::notifyIfEAcceleratorIsUsed(); - $view->topMenu = MenuTop::getInstance()->getMenu(); + $view->topMenu = MenuTop::getInstance()->getMenu(); + $view->userMenu = MenuUser::getInstance()->getMenu(); $view->currentAdminMenuName = MenuAdmin::getInstance()->getCurrentAdminMenuName(); $view->isDataPurgeSettingsEnabled = self::isDataPurgeSettingsEnabled(); diff --git a/plugins/API/Menu.php b/plugins/API/Menu.php index 61c2932b54..f383dbb9f5 100644 --- a/plugins/API/Menu.php +++ b/plugins/API/Menu.php @@ -9,24 +9,26 @@ namespace Piwik\Plugins\API; use Piwik\Menu\MenuTop; +use Piwik\Menu\MenuUser; use Piwik\Piwik; -/** - */ class Menu extends \Piwik\Plugin\Menu { public function configureTopMenu(MenuTop $menu) { + $this->addTopMenuMobileApp($menu); + } + + public function configureUserMenu(MenuUser $menu) + { $apiUrlParams = array('module' => 'API', 'action' => 'listAllAPI', 'segment' => false); $tooltip = Piwik::translate('API_TopLinkTooltip'); - $menu->add('General_API', null, $apiUrlParams, true, 7, $tooltip); - - $this->addTopMenuMobileApp($menu); + $menu->add('CorePluginsAdmin_MenuPlatform', 'General_API', $apiUrlParams, true, 6, $tooltip); } - protected function addTopMenuMobileApp(MenuTop $menu) + private function addTopMenuMobileApp(MenuTop $menu) { if (empty($_SERVER['HTTP_USER_AGENT'])) { return; diff --git a/plugins/Actions/Menu.php b/plugins/Actions/Menu.php index 10cd70f812..3c3030462a 100644 --- a/plugins/Actions/Menu.php +++ b/plugins/Actions/Menu.php @@ -8,16 +8,8 @@ */ namespace Piwik\Plugins\Actions; -use Exception; -use Piwik\Common; -use Piwik\Db; -use Piwik\Menu\MenuAbstract; use Piwik\Menu\MenuReporting; -use Piwik\Piwik; -use Piwik\Site; -/** - */ class Menu extends \Piwik\Plugin\Menu { public function configureReportingMenu(MenuReporting $menu) diff --git a/plugins/CoreAdminHome/Controller.php b/plugins/CoreAdminHome/Controller.php index 41fb7aab2d..98f7e8c55e 100644 --- a/plugins/CoreAdminHome/Controller.php +++ b/plugins/CoreAdminHome/Controller.php @@ -15,6 +15,7 @@ use Piwik\Common; use Piwik\Config; use Piwik\DataTable\Renderer\Json; use Piwik\Menu\MenuTop; +use Piwik\Menu\MenuUser; use Piwik\Nonce; use Piwik\Piwik; use Piwik\Plugins\CorePluginsAdmin\UpdateCommunication; @@ -202,7 +203,8 @@ class Controller extends \Piwik\Plugin\ControllerAdmin { $view = new View('@CoreAdminHome/trackingCodeGenerator'); $this->setBasicVariablesView($view); - $view->topMenu = MenuTop::getInstance()->getMenu(); + $view->topMenu = MenuTop::getInstance()->getMenu(); + $view->userMenu = MenuUser::getInstance()->getMenu(); $viewableIdSites = APISitesManager::getInstance()->getSitesIdWithAtLeastViewAccess(); diff --git a/plugins/CoreHome/CoreHome.php b/plugins/CoreHome/CoreHome.php index bdf580a8b6..b3580407f8 100644 --- a/plugins/CoreHome/CoreHome.php +++ b/plugins/CoreHome/CoreHome.php @@ -56,6 +56,7 @@ class CoreHome extends \Piwik\Plugin $stylesheets[] = "plugins/CoreHome/stylesheets/notification.less"; $stylesheets[] = "plugins/CoreHome/stylesheets/zen-mode.less"; $stylesheets[] = "plugins/CoreHome/angularjs/enrichedheadline/enrichedheadline.less"; + $stylesheets[] = "plugins/CoreHome/angularjs/menudropdown/menudropdown.less"; } public function getJsFiles(&$jsFiles) @@ -125,6 +126,8 @@ class CoreHome extends \Piwik\Plugin $jsFiles[] = "plugins/CoreHome/angularjs/siteselector/siteselector-controller.js"; $jsFiles[] = "plugins/CoreHome/angularjs/siteselector/siteselector-directive.js"; + $jsFiles[] = "plugins/CoreHome/angularjs/menudropdown/menudropdown-directive.js"; + $jsFiles[] = "plugins/CoreHome/angularjs/enrichedheadline/enrichedheadline-directive.js"; } diff --git a/plugins/CoreHome/angularjs/menudropdown/menudropdown-directive.js b/plugins/CoreHome/angularjs/menudropdown/menudropdown-directive.js new file mode 100644 index 0000000000..b599f40e70 --- /dev/null +++ b/plugins/CoreHome/angularjs/menudropdown/menudropdown-directive.js @@ -0,0 +1,28 @@ +/*! + * Piwik - Web Analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + */ + +/** + * Usage: + * <div piwik-menudropdown title="MyMenuItem"> + * <a class="item" href="/url"></a> + * <a class="item active">test</a> + * <a class="item disabled">-------</a> + * <a class="item" href="/url"></a> + * </div> + */ +angular.module('piwikApp').directive('piwikMenudropdown', function(){ + + return { + transclude: true, + replace: true, + restrict: 'A', + scope: { + title: '@' + }, + templateUrl: 'plugins/CoreHome/angularjs/menudropdown/menudropdown.html?cb=' + piwik.cacheBuster + }; +});
\ No newline at end of file diff --git a/plugins/CoreHome/angularjs/menudropdown/menudropdown.html b/plugins/CoreHome/angularjs/menudropdown/menudropdown.html new file mode 100644 index 0000000000..c7a4e715aa --- /dev/null +++ b/plugins/CoreHome/angularjs/menudropdown/menudropdown.html @@ -0,0 +1,9 @@ +<div piwik-focus-anywhere-but-here="view.showItems=false" class="menuDropdown"> + + <span class="title" + ng-click="view.showItems=!view.showItems" + >{{ title }}</span> + + <div class="items" ng-show="view.showItems" ng-transclude></div> + +</div>
\ No newline at end of file diff --git a/plugins/CoreHome/angularjs/menudropdown/menudropdown.less b/plugins/CoreHome/angularjs/menudropdown/menudropdown.less new file mode 100644 index 0000000000..941db9ac66 --- /dev/null +++ b/plugins/CoreHome/angularjs/menudropdown/menudropdown.less @@ -0,0 +1,64 @@ + +.menuDropdown { + display: inline-block; + padding-right: 14px; + color: @theme-color-link; + + .title { + position: relative; + cursor: pointer; + + &:after { + content: ''; + position: absolute; + top: 5px; + right: -15px; + color: @theme-color-link; + display: inline; + content: " \25BC"; + font-size: 1px; + height: 0px; + width: 0px; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 5px solid #1E93D1; + } + } + + .items { + z-index: 21; + position: absolute; + max-width: 200px; + border: 1px solid @color-silver-l80 !important; + background: @theme-color-background-base; + max-height: 400px; + overflow-y: auto; + overflow-x: hidden; + padding: 0 !important; + + .item { + display: block; + color: @theme-color-text !important; + text-decoration: none !important; + padding: 1px 25px 1px 3px !important; + + &:hover { + background: @color-silver-l80; + } + + &.active { + background-color: @color-silver-l80; + cursor: default; + } + + &.disabled { + opacity: 0.5; + cursor: default; + + &:hover { + background: @theme-color-background-base; + } + } + } + } +} diff --git a/plugins/CoreHome/templates/_topBarHelloMenu.twig b/plugins/CoreHome/templates/_topBarHelloMenu.twig index 35f1877102..90ca8161a3 100644 --- a/plugins/CoreHome/templates/_topBarHelloMenu.twig +++ b/plugins/CoreHome/templates/_topBarHelloMenu.twig @@ -1,20 +1,55 @@ <div id="topRightBar"> {% set helloAlias %} {% if userAlias is not empty %} - <strong>{{ userAlias }}</strong> + {{ userAlias }} {% else %} - <strong>{{ userLogin }}</strong> + {{ userLogin }} {% endif %} {% endset %} - <span class="topBarElem">{{ 'General_HelloUser'|translate(helloAlias|trim)|raw }}</span> - {% if userLogin != 'anonymous' %} - | - {% if isAdminLayout is defined %} - <span class="topBarElem topBarElemActive">{{ 'General_Settings'|translate }}</span> + + {% macro userMenuItem(label, menu, currentModule, currentAction) %} + {% if (menu._url.module == currentModule and (menu._url.action is empty or menu._url.action == currentAction)) %} + <a class="active item" + {% if menu._tooltip is defined %}title="{{ menu._tooltip }}"{% endif %} + >{{ label|translate }}</a> {% else %} - <span class="topBarElem"><a href='index.php?module=CoreAdminHome'>{{ 'General_Settings'|translate }}</a></span> + <a class="item" + href="index.php{{ menu._url|urlRewriteWithParameters }}" + {% if menu._tooltip is defined %}title="{{ menu._tooltip }}"{% endif %} + >{{ label|translate }}</a> {% endif %} - {% endif %} + {% endmacro %} + + <span class="topBarElem"> + <div title="{{ helloAlias|trim|raw }}" + piwik-menudropdown> + + {% if userLogin != 'anonymous' %} + {% if isAdminLayout is defined %} + <a class="item active">{{ 'General_Settings'|translate }}</a> + {% else %} + <a class="item" href="index.php?module=CoreAdminHome">{{ 'General_Settings'|translate }}</a> + {% endif %} + {% endif %} + + {% for lev1UserLabel,lev1UserMenu in userMenu if lev1UserLabel|slice(0,1) != '_' %} + + {% if userLogin != 'anonymous' or not loop.first %} + <span class="item disabled">--------</span> + {% endif %} + + {% if lev1UserMenu._hasSubmenu is defined and lev1UserMenu._hasSubmenu %} + {% for lev2Label,lev2Menu in lev1UserMenu if lev2Label|slice(0,1) != '_' %} + {{ _self.userMenuItem(lev2Label, lev2Menu, currentModule, currentAction) }} + {% endfor %} + {% else %} + {{ _self.userMenuItem(lev1UserLabel, lev1UserMenu, currentModule, currentAction) }} + {% endif %} + + {% endfor %} + </div> + </span> + | <span class="topBarElem"> {% if userLogin == 'anonymous' %} <a href='index.php?module={{ loginModule }}'>{{ 'Login_LogIn'|translate }}</a> diff --git a/plugins/CoreHome/templates/_topBarTopMenu.twig b/plugins/CoreHome/templates/_topBarTopMenu.twig index a4dc16b047..073061992d 100644 --- a/plugins/CoreHome/templates/_topBarTopMenu.twig +++ b/plugins/CoreHome/templates/_topBarTopMenu.twig @@ -3,11 +3,12 @@ {% if menu._html is defined %} {{ menu._html|raw }} {% elseif (menu._url.module == currentModule and (menu._url.action is empty or menu._url.action == currentAction)) %} - <span class="topBarElem topBarElemActive"><strong>{{ label|translate }}</strong></span>{% if not loop.last %} |{% endif %} + <span class="topBarElem topBarElemActive"><strong>{{ label|translate }}</strong></span> {% else %} <span class="topBarElem" {% if menu._tooltip is defined %}title="{{ menu._tooltip }}"{% endif %}> <a id="topmenu-{{ menu._url.module|lower }}" href="index.php{{ menu._url|urlRewriteWithParameters }}">{{ label|translate }}</a> - </span>{% if not loop.last %} | {% endif %} + </span> {% endif %} + | {% endfor %} </div>
\ No newline at end of file diff --git a/plugins/CorePluginsAdmin/CorePluginsAdmin.php b/plugins/CorePluginsAdmin/CorePluginsAdmin.php index 4014b96bfe..c3f0a5f75d 100644 --- a/plugins/CorePluginsAdmin/CorePluginsAdmin.php +++ b/plugins/CorePluginsAdmin/CorePluginsAdmin.php @@ -9,9 +9,6 @@ namespace Piwik\Plugins\CorePluginsAdmin; use Piwik\Config; -use Piwik\Menu\MenuAbstract; -use Piwik\Menu\MenuAdmin; -use Piwik\Piwik; use Piwik\Plugin; use Piwik\ScheduledTask; use Piwik\ScheduledTime; diff --git a/plugins/DBStats/DBStats.php b/plugins/DBStats/DBStats.php index e1b02aa5bd..619ebc1ef7 100644 --- a/plugins/DBStats/DBStats.php +++ b/plugins/DBStats/DBStats.php @@ -9,8 +9,6 @@ namespace Piwik\Plugins\DBStats; use Piwik\Date; -use Piwik\Menu\MenuAbstract; -use Piwik\Menu\MenuAdmin; use Piwik\Option; use Piwik\Piwik; use Piwik\Plugin\ViewDataTable; diff --git a/plugins/DBStats/Menu.php b/plugins/DBStats/Menu.php index aa1c1693a4..1b49589d99 100644 --- a/plugins/DBStats/Menu.php +++ b/plugins/DBStats/Menu.php @@ -8,15 +8,8 @@ */ namespace Piwik\Plugins\DBStats; -use Exception; -use Piwik\Common; -use Piwik\Db; -use Piwik\Menu\MenuAbstract; use Piwik\Menu\MenuAdmin; -use Piwik\Menu\MenuReporting; -use Piwik\Menu\MenuTop; use Piwik\Piwik; -use Piwik\Site; /** */ diff --git a/plugins/DevicesDetection/DevicesDetection.php b/plugins/DevicesDetection/DevicesDetection.php index d6ded700e8..1f11715119 100644 --- a/plugins/DevicesDetection/DevicesDetection.php +++ b/plugins/DevicesDetection/DevicesDetection.php @@ -15,9 +15,6 @@ use Piwik\ArchiveProcessor; use Piwik\CacheFile; use Piwik\Common; use Piwik\Db; -use Piwik\Menu\MenuAbstract; -use Piwik\Menu\MenuAdmin; -use Piwik\Menu\MenuMain; use Piwik\Piwik; use Piwik\Plugin\ViewDataTable; use Piwik\WidgetsList; diff --git a/plugins/Feedback/Feedback.php b/plugins/Feedback/Feedback.php index c0f2600b8e..450c23e07a 100644 --- a/plugins/Feedback/Feedback.php +++ b/plugins/Feedback/Feedback.php @@ -25,23 +25,10 @@ class Feedback extends \Piwik\Plugin return array( 'AssetManager.getStylesheetFiles' => 'getStylesheetFiles', 'AssetManager.getJavaScriptFiles' => 'getJsFiles', - 'Menu.Top.addItems' => 'addTopMenu', 'Translate.getClientSideTranslationKeys' => 'getClientSideTranslationKeys' ); } - public function addTopMenu(MenuTop $menu) - { - $menu->add( - 'General_Help', - null, - array('module' => 'Feedback', 'action' => 'index', 'segment' => false), - true, - $order = 20, - $tooltip = Piwik::translate('Feedback_TopLinkTooltip') - ); - } - public function getStylesheetFiles(&$stylesheets) { $stylesheets[] = "plugins/Feedback/stylesheets/feedback.less"; diff --git a/plugins/Feedback/Menu.php b/plugins/Feedback/Menu.php new file mode 100644 index 0000000000..c41e9d783e --- /dev/null +++ b/plugins/Feedback/Menu.php @@ -0,0 +1,29 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\Feedback; + +use Piwik\Menu\MenuUser; +use Piwik\Piwik; + +/** + */ +class Menu extends \Piwik\Plugin\Menu +{ + public function configureUserMenu(MenuUser $menu) + { + $menu->add( + 'General_Help', + 'General_Help', + array('module' => 'Feedback', 'action' => 'index', 'segment' => false), + true, + $order = 20, + $tooltip = Piwik::translate('Feedback_TopLinkTooltip') + ); + } +} diff --git a/plugins/Installation/Installation.php b/plugins/Installation/Installation.php index 90e07944d1..652d3b117f 100644 --- a/plugins/Installation/Installation.php +++ b/plugins/Installation/Installation.php @@ -12,7 +12,6 @@ use Piwik\Common; use Piwik\Config; use Piwik\FrontController; use Piwik\Menu\MenuAbstract; -use Piwik\Menu\MenuAdmin; use Piwik\Piwik; use Piwik\Translate; @@ -98,7 +97,7 @@ class Installation extends \Piwik\Plugin */ public function addMenu(MenuAbstract $menu) { - $menu->add('Installation_SystemCheck', + $menu->add('General_Settings', 'Installation_SystemCheck', array('module' => 'Installation', 'action' => 'systemCheckPage'), Piwik::hasUserSuperUserAccess(), $order = 15); diff --git a/plugins/LanguagesManager/templates/getLanguagesSelector.twig b/plugins/LanguagesManager/templates/getLanguagesSelector.twig index 0b602d803e..6b71ae437d 100644 --- a/plugins/LanguagesManager/templates/getLanguagesSelector.twig +++ b/plugins/LanguagesManager/templates/getLanguagesSelector.twig @@ -14,4 +14,4 @@ <input type="submit" value="go"/> </form> </span> -</span> +</span>
\ No newline at end of file diff --git a/plugins/MobileMessaging/MobileMessaging.php b/plugins/MobileMessaging/MobileMessaging.php index 9e7034baf7..d5a52417c7 100644 --- a/plugins/MobileMessaging/MobileMessaging.php +++ b/plugins/MobileMessaging/MobileMessaging.php @@ -9,7 +9,6 @@ namespace Piwik\Plugins\MobileMessaging; use Piwik\Menu\MenuAbstract; -use Piwik\Menu\MenuAdmin; use Piwik\Option; use Piwik\Piwik; use Piwik\Plugins\API\API as APIPlugins; @@ -85,7 +84,7 @@ class MobileMessaging extends \Piwik\Plugin function addMenu(MenuAbstract $menu) { - $menu->add('MobileMessaging_SettingsMenu', + $menu->add('General_Settings', 'MobileMessaging_SettingsMenu', array('module' => 'MobileMessaging', 'action' => 'index'), true, $order = 12 diff --git a/plugins/PrivacyManager/PrivacyManager.php b/plugins/PrivacyManager/PrivacyManager.php index b626aaff28..a0cb2017b6 100644 --- a/plugins/PrivacyManager/PrivacyManager.php +++ b/plugins/PrivacyManager/PrivacyManager.php @@ -14,7 +14,6 @@ use Piwik\DataTable\DataTableInterface; use Piwik\Date; use Piwik\Db; use Piwik\Menu\MenuAbstract; -use Piwik\Menu\MenuAdmin; use Piwik\Metrics; use Piwik\Option; use Piwik\Period; @@ -177,7 +176,7 @@ class PrivacyManager extends \Piwik\Plugin function addMenu(MenuAbstract $menu) { - $menu->add('PrivacyManager_MenuPrivacySettings', + $menu->add('General_Settings', 'PrivacyManager_MenuPrivacySettings', array('module' => 'PrivacyManager', 'action' => 'privacySettings'), Piwik::isUserHasSomeAdminAccess(), $order = 7); diff --git a/plugins/ScheduledReports/Menu.php b/plugins/ScheduledReports/Menu.php new file mode 100644 index 0000000000..7d9f180062 --- /dev/null +++ b/plugins/ScheduledReports/Menu.php @@ -0,0 +1,76 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\ScheduledReports; + +use Piwik\Menu\MenuUser; +use Piwik\Piwik; +use Piwik\Plugins\MobileMessaging\MobileMessaging; +use Piwik\Plugins\MobileMessaging\API as APIMobileMessaging; + +class Menu extends \Piwik\Plugin\Menu +{ + public function configureUserMenu(MenuUser $menu) + { + $tooltip = Piwik::translate( + \Piwik\Plugin\Manager::getInstance()->isPluginActivated('MobileMessaging') + ? 'MobileMessaging_TopLinkTooltip' : 'ScheduledReports_TopLinkTooltip'); + + $menu->add( + 'CoreAdminHome_MenuManage', + $this->getTopMenuTranslationKey(), + array('module' => 'ScheduledReports', 'action' => 'index', 'segment' => false), + true, + 13, + $tooltip + ); + } + + function getTopMenuTranslationKey() + { + // if MobileMessaging is not activated, display 'Email reports' + if (!\Piwik\Plugin\Manager::getInstance()->isPluginActivated('MobileMessaging')) + return ScheduledReports::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY; + + if (Piwik::isUserIsAnonymous()) { + return ScheduledReports::MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY; + } + + try { + $reports = API::getInstance()->getReports(); + $reportCount = count($reports); + + // if there are no reports and the mobile account is + // - not configured: display 'Email reports' + // - configured: display 'Email & SMS reports' + if ($reportCount == 0) { + return APIMobileMessaging::getInstance()->areSMSAPICredentialProvided() ? + ScheduledReports::MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY : ScheduledReports::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY; + } + } catch(\Exception $e) { + return ScheduledReports::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY; + } + + + $anyMobileReport = false; + foreach ($reports as $report) { + if ($report['type'] == MobileMessaging::MOBILE_TYPE) { + $anyMobileReport = true; + break; + } + } + + // if there is at least one sms report, display 'Email & SMS reports' + if ($anyMobileReport) { + return ScheduledReports::MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY; + } + + return ScheduledReports::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY; + } + +} diff --git a/plugins/ScheduledReports/ScheduledReports.php b/plugins/ScheduledReports/ScheduledReports.php index f56de16e2d..afb0e7a22c 100644 --- a/plugins/ScheduledReports/ScheduledReports.php +++ b/plugins/ScheduledReports/ScheduledReports.php @@ -13,9 +13,7 @@ use Piwik\Common; use Piwik\Db; use Piwik\DbHelper; use Piwik\Mail; -use Piwik\Menu\MenuTop; use Piwik\Piwik; -use Piwik\Plugins\MobileMessaging\API as APIMobileMessaging; use Piwik\Plugins\MobileMessaging\MobileMessaging; use Piwik\Plugins\SegmentEditor\API as APISegmentEditor; use Piwik\Plugins\UsersManager\API as APIUsersManager; @@ -76,7 +74,6 @@ class ScheduledReports extends \Piwik\Plugin public function getListHooksRegistered() { return array( - 'Menu.Top.addItems' => 'addTopMenu', 'TaskScheduler.getScheduledTasks' => 'getScheduledTasks', 'AssetManager.getJavaScriptFiles' => 'getJsFiles', 'MobileMessaging.deletePhoneNumber' => 'deletePhoneNumber', @@ -504,63 +501,6 @@ class ScheduledReports extends \Piwik\Plugin } } - function addTopMenu(MenuTop $menu) - { - $menu->add( - $this->getTopMenuTranslationKey(), - null, - array('module' => 'ScheduledReports', 'action' => 'index', 'segment' => false), - true, - 13, - $tooltip = Piwik::translate( - \Piwik\Plugin\Manager::getInstance()->isPluginActivated('MobileMessaging') - ? 'MobileMessaging_TopLinkTooltip' : 'ScheduledReports_TopLinkTooltip' - ) - ); - } - - function getTopMenuTranslationKey() - { - // if MobileMessaging is not activated, display 'Email reports' - if (!\Piwik\Plugin\Manager::getInstance()->isPluginActivated('MobileMessaging')) - return self::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY; - - if (Piwik::isUserIsAnonymous()) { - return self::MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY; - } - - try { - $reports = API::getInstance()->getReports(); - $reportCount = count($reports); - - // if there are no reports and the mobile account is - // - not configured: display 'Email reports' - // - configured: display 'Email & SMS reports' - if ($reportCount == 0) { - return APIMobileMessaging::getInstance()->areSMSAPICredentialProvided() ? - self::MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY : self::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY; - } - } catch(\Exception $e) { - return self::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY; - } - - - $anyMobileReport = false; - foreach ($reports as $report) { - if ($report['type'] == MobileMessaging::MOBILE_TYPE) { - $anyMobileReport = true; - break; - } - } - - // if there is at least one sms report, display 'Email & SMS reports' - if ($anyMobileReport) { - return self::MOBILE_MESSAGING_TOP_MENU_TRANSLATION_KEY; - } - - return self::PDF_REPORTS_TOP_MENU_TRANSLATION_KEY; - } - public function deleteUserReport($userLogin) { Db::query('DELETE FROM ' . Common::prefixTable('report') . ' WHERE login = ?', $userLogin); diff --git a/plugins/SitesManager/SitesManager.php b/plugins/SitesManager/SitesManager.php index 47fc57d9f6..5417246b97 100644 --- a/plugins/SitesManager/SitesManager.php +++ b/plugins/SitesManager/SitesManager.php @@ -9,7 +9,6 @@ namespace Piwik\Plugins\SitesManager; use Piwik\Menu\MenuAbstract; -use Piwik\Menu\MenuAdmin; use Piwik\Piwik; /** diff --git a/plugins/UserCountry/UserCountry.php b/plugins/UserCountry/UserCountry.php index e494b80270..0464cbfaf2 100644 --- a/plugins/UserCountry/UserCountry.php +++ b/plugins/UserCountry/UserCountry.php @@ -13,8 +13,6 @@ use Piwik\Common; use Piwik\Config; use Piwik\IP; use Piwik\Menu\MenuAbstract; -use Piwik\Menu\MenuAdmin; -use Piwik\Menu\MenuMain; use Piwik\Piwik; use Piwik\Plugin\Manager; use Piwik\Plugin\ViewDataTable; diff --git a/plugins/UsersManager/UsersManager.php b/plugins/UsersManager/UsersManager.php index b7aab89915..66e0765cd9 100644 --- a/plugins/UsersManager/UsersManager.php +++ b/plugins/UsersManager/UsersManager.php @@ -11,7 +11,6 @@ namespace Piwik\Plugins\UsersManager; use Exception; use Piwik\Db; use Piwik\Menu\MenuAbstract; -use Piwik\Menu\MenuAdmin; use Piwik\Option; use Piwik\Piwik; use Piwik\SettingsPiwik; diff --git a/plugins/Widgetize/Menu.php b/plugins/Widgetize/Menu.php new file mode 100644 index 0000000000..a60a6e14b5 --- /dev/null +++ b/plugins/Widgetize/Menu.php @@ -0,0 +1,24 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\Widgetize; + +use Piwik\Menu\MenuUser; +use Piwik\Piwik; + +class Menu extends \Piwik\Plugin\Menu +{ + public function configureUserMenu(MenuUser $menu) + { + $tooltip = Piwik::translate('Widgetize_TopLinkTooltip'); + $urlParams = array('module' => 'Widgetize', 'action' => 'index', 'segment' => false); + + $menu->add('CorePluginsAdmin_MenuPlatform', 'General_Widgets', $urlParams, true, 5, $tooltip); + } + +} diff --git a/plugins/Widgetize/Widgetize.php b/plugins/Widgetize/Widgetize.php index aa199a5207..9fee484020 100644 --- a/plugins/Widgetize/Widgetize.php +++ b/plugins/Widgetize/Widgetize.php @@ -25,19 +25,10 @@ class Widgetize extends \Piwik\Plugin return array( 'AssetManager.getJavaScriptFiles' => 'getJsFiles', 'AssetManager.getStylesheetFiles' => 'getStylesheetFiles', - 'Menu.Top.addItems' => 'addTopMenu', 'Translate.getClientSideTranslationKeys' => 'getClientSideTranslationKeys' ); } - public function addTopMenu(MenuTop $menu) - { - $tooltip = Piwik::translate('Widgetize_TopLinkTooltip'); - $urlParams = array('module' => 'Widgetize', 'action' => 'index', 'segment' => false); - - $menu->add('General_Widgets', null, $urlParams, true, 5, $tooltip); - } - public function getJsFiles(&$jsFiles) { $jsFiles[] = "libs/jquery/jquery.truncate.js"; diff --git a/plugins/Zeitgeist/stylesheets/ui/_header.less b/plugins/Zeitgeist/stylesheets/ui/_header.less index 6522fb42fe..43725d84ec 100644 --- a/plugins/Zeitgeist/stylesheets/ui/_header.less +++ b/plugins/Zeitgeist/stylesheets/ui/_header.less @@ -60,7 +60,7 @@ } #topLeftBar { - margin-right: 40px; + margin-right: 5px; } .topBarElem { diff --git a/plugins/Zeitgeist/stylesheets/ui/_languageSelect.less b/plugins/Zeitgeist/stylesheets/ui/_languageSelect.less index cbe890246e..5ea94c497d 100644 --- a/plugins/Zeitgeist/stylesheets/ui/_languageSelect.less +++ b/plugins/Zeitgeist/stylesheets/ui/_languageSelect.less @@ -7,6 +7,10 @@ border: 1px solid #1F447F!important; } +#languageSelection { + padding-right: 11px; +} + #languageSelection > form { display: inline-block; } |