protected static function resolveItemsAsItemsForMobile(&$items, &$useMinimalDynamicLabelMbMenu, $controller = null) { $useMinimalDynamicLabelMbMenu = true; static::$showRecentlyViewed = false; $controller = $controller ? $controller : Yii::app()->request->controller; $shortcutsCreateMenuItems = MenuUtil::getAccessibleShortcutsCreateMenuByCurrentUser(); static::resolveShortcutsCreateMenuItemsForMobile($shortcutsCreateMenuItems); $shortcutsCreateMenuView = new MobileShortcutsCreateMenuView($controller->getId(), $controller->getModule()->getId(), $shortcutsCreateMenuItems); $moduleNamesAndLabels = GlobalSearchUtil::getGlobalSearchScopingModuleNamesAndLabelsDataByUser(Yii::app()->user->userModel); $sourceUrl = Yii::app()->createUrl('zurmo/default/globalSearchAutoComplete'); $globalSearchView = new MobileGlobalSearchView($moduleNamesAndLabels, $sourceUrl); $recentlyViewed = static::makeRecentlyViewedView(); $recentlyViewedMenu = $recentlyViewed->renderMenu(); $searchItem = array(array('label' => '', 'dynamicLabelContent' => $globalSearchView->render(), 'itemOptions' => array('id' => 'search'))); $shortcutsItems = array(array('label' => '', 'dynamicLabelContent' => $shortcutsCreateMenuView->render(), 'itemOptions' => array('id' => 'shortcuts'))); $recentlyViewedItems = array(array('label' => '', 'dynamicLabelContent' => MobileHtml::renderFlyoutTrigger('Recently Viewed'), 'itemOptions' => array('id' => 'recently-viewed'), 'items' => $recentlyViewedMenu ? $recentlyViewedMenu : null)); $items = CMap::mergeArray($searchItem, $items, $shortcutsItems, $recentlyViewedItems); }
protected static function makeHeaderView(CController $controller) { $headerView = null; $settingsMenuItems = MenuUtil::getOrderedAccessibleHeaderMenuForCurrentUser(); $settingsMenuItems = static::resolveHeaderMenuItemsForMobile($settingsMenuItems); $userMenuItems = static::getAndResolveUserMenuItemsForHeader(); $applicationName = ZurmoConfigurationUtil::getByModuleName('ZurmoModule', 'applicationName'); $shortcutsCreateMenuItems = MenuUtil::getAccessibleShortcutsCreateMenuByCurrentUser(); $moduleNamesAndLabels = GlobalSearchUtil::getGlobalSearchScopingModuleNamesAndLabelsDataByUser(Yii::app()->user->userModel); $sourceUrl = Yii::app()->createUrl('zurmo/default/globalSearchAutoComplete'); GlobalSearchUtil::resolveModuleNamesAndLabelsDataWithAllOption($moduleNamesAndLabels); $headerView = new HeaderView($settingsMenuItems, $userMenuItems, $shortcutsCreateMenuItems, $moduleNamesAndLabels, $sourceUrl, $applicationName); $headerView->setCssClasses(array('HeaderView')); return $headerView; }
public function testResolveMenuItemsForLanguageLocalizationIsRecursive() { Yii::app()->user->userModel = User::getByUsername('super'); $metadata = AccountsModule::getMetadata(); $backupMetadata = $metadata; $metadata['global']['shortcutsCreateMenuItems'] = array(array('label' => "eval:Zurmo::t('AccountsModule', 'AccountsModulePluralLabel', \$translationParams)", 'url' => array('/accounts/default/create'), 'right' => AccountsModule::RIGHT_CREATE_ACCOUNTS, 'mobile' => true)); AccountsModule::setMetadata($metadata); $menuItems = MenuUtil::getAccessibleShortcutsCreateMenuByCurrentUser(); $compareData = array('label' => 'Create', 'url' => null, 'items' => array(array('label' => 'Accounts', 'url' => array('/accounts/default/create'), 'right' => AccountsModule::RIGHT_CREATE_ACCOUNTS, 'mobile' => true), array('label' => 'Contact', 'url' => array('/contacts/default/create'), 'right' => ContactsModule::RIGHT_CREATE_CONTACTS, 'mobile' => true), array('label' => 'Conversation', 'url' => array('/conversations/default/create'), 'right' => ConversationsModule::RIGHT_CREATE_CONVERSATIONS, 'mobile' => true), array('label' => 'Lead', 'url' => array('/leads/default/create'), 'right' => LeadsModule::RIGHT_CREATE_LEADS, 'mobile' => true), array('label' => 'Mission', 'url' => array('/missions/default/create'), 'right' => MissionsModule::RIGHT_CREATE_MISSIONS, 'mobile' => true), array('label' => 'Opportunity', 'url' => array('/opportunities/default/create'), 'right' => OpportunitiesModule::RIGHT_CREATE_OPPORTUNITIES, 'mobile' => true), array('label' => 'Report', 'url' => array('/reports/default/selectType'), 'right' => ReportsModule::RIGHT_CREATE_REPORTS, 'mobile' => false))); $this->assertEquals($compareData, $menuItems); AccountsModule::setMetadata($backupMetadata); }
public function testResolveMenuItemsForLanguageLocalizationIsRecursive() { Yii::app()->user->userModel = User::getByUsername('super'); $metadata = AccountsModule::getMetadata(); $backupMetadata = $metadata; $metadata['global']['shortcutsCreateMenuItems'] = array(array('label' => "eval:Zurmo::t('AccountsModule', 'AccountsModulePluralLabel', \$translationParams)", 'url' => array('/accounts/default/create'), 'right' => AccountsModule::RIGHT_CREATE_ACCOUNTS, 'mobile' => true)); AccountsModule::setMetadata($metadata); $menuItems = MenuUtil::getAccessibleShortcutsCreateMenuByCurrentUser(); $taskMenu = $menuItems['items'][7]; $this->assertEquals('Task', $taskMenu['label']); unset($menuItems['items'][7]); $compareData = array('label' => 'Create', 'url' => null, 'items' => array(array('label' => 'Accounts', 'url' => array('/accounts/default/create'), 'right' => AccountsModule::RIGHT_CREATE_ACCOUNTS, 'mobile' => true), array('label' => 'Contact', 'url' => array('/contacts/default/create'), 'right' => ContactsModule::RIGHT_CREATE_CONTACTS, 'mobile' => true), array('label' => 'Conversation', 'url' => array('/conversations/default/create'), 'right' => ConversationsModule::RIGHT_CREATE_CONVERSATIONS, 'mobile' => true), array('label' => 'Lead', 'url' => array('/leads/default/create'), 'right' => LeadsModule::RIGHT_CREATE_LEADS, 'mobile' => true), array('label' => 'Mission', 'url' => array('/missions/default/create'), 'right' => MissionsModule::RIGHT_CREATE_MISSIONS, 'mobile' => true), array('label' => 'Opportunity', 'url' => array('/opportunities/default/create'), 'right' => OpportunitiesModule::RIGHT_CREATE_OPPORTUNITIES, 'mobile' => true), array('label' => 'Report', 'url' => array('/reports/default/selectType'), 'right' => ReportsModule::RIGHT_CREATE_REPORTS, 'mobile' => false), array('label' => 'Project', 'url' => array('/projects/default/create'), 'right' => ProjectsModule::RIGHT_CREATE_PROJECTS, 'mobile' => true))); // Re keying and slice the items from main array as we just unset the index 7 menuItem and we may have // items that are below that e.g. index 8, 9, 10, ... // If we don't do this the keys will mismatch and assertEquals will fail. $menuItemsReKeyedItems = array_values($menuItems['items']); unset($menuItems['items']); $compareDataReKeyedItems = array_values($compareData['items']); unset($compareData['items']); $this->assertEquals($compareData, $menuItems); $this->assertEquals($compareDataReKeyedItems, $menuItemsReKeyedItems); AccountsModule::setMetadata($backupMetadata); }