Add grouped navigation tabs legacy handler

This commit is contained in:
Dillon-Brown 2019-12-31 13:41:19 +00:00
parent 0b575752b5
commit bab8ce3390
2 changed files with 73 additions and 0 deletions

View file

@ -4,6 +4,7 @@ namespace SuiteCRM\Core\Legacy;
use RuntimeException;
use TabController;
use GroupedTabStructure;
/**
* Class Navbar
@ -26,6 +27,19 @@ class Navbar extends LegacyHandler
throw new RuntimeException('Running legacy entry point failed');
}
public function getGroupedNavTabs(): array
{
if ($this->runLegacyEntryPoint()) {
global $moduleList;
require LEGACY_PATH . 'include/GroupedTabs/GroupedTabStructure.php';
return (new GroupedTabStructure())->get_tab_structure($moduleList);
}
throw new RuntimeException('Running legacy entry point failed');
}
/**
* @return array
*/

View file

@ -103,4 +103,63 @@ final class NavbarTest extends TestCase
$this->navbar->getNonGroupedNavTabs()
);
}
public function testGroupNavTabs(): void
{
$expected = [
'Sales' => [
'modules' => [
'Home' => 'Home',
'Accounts' => 'Accounts',
'Contacts' => 'Contacts',
'Opportunities' => 'Opportunities',
'Leads' => 'Leads'
]
],
'Marketing' => [
'modules' => [
'Home' => 'Home',
'Accounts' => 'Accounts',
'Contacts' => 'Contacts',
'Leads' => 'Leads',
'Campaigns' => 'Campaigns',
'Prospects' => 'Targets',
'ProspectLists' => 'Targets - Lists'
]
],
'Support' => [
'modules' => [
'Home' => 'Home',
'Accounts' => 'Accounts',
'Contacts' => 'Contacts',
'Cases' => 'Cases',
'Bugs' => 'Bugs'
]
],
'Activities' => [
'modules' => [
'Home' => 'Home',
'Calendar' => 'Calendar',
'Calls' => 'Calls',
'Meetings' => 'Meetings',
'Emails' => 'Emails',
'Tasks' => 'Tasks',
'Notes' => 'Notes'
]
],
'Collaboration' => [
'modules' => [
'Home' => 'Home',
'Emails' => 'Emails',
'Documents' => 'Documents',
'Project' => 'Projects'
]
]
];
$this->assertSame(
$expected,
$this->navbar->getGroupedNavTabs()
);
}
}