Added ticket module (prerequiste to incident etc.) and change the declaration of a menu : made by an identifier

SVN:trunk[510]
This commit is contained in:
Romain Quetiez
2010-06-30 15:32:43 +00:00
parent b5d0d78d5f
commit 2938a8d41e
14 changed files with 230 additions and 410 deletions

View File

@@ -230,23 +230,23 @@ EOF
* Data Model
* Universal Search
*/
$oWelcomeMenu = new MenuGroup('UI:WelcomeMenu', 0 /* fRank */);
new TemplateMenuNode('UI:WelcomeMenuPage', '../business/templates/welcome_menu.html', $oWelcomeMenu->GetIndex() /* oParent */, 1 /* fRank */);
$oWelcomeMenu = new MenuGroup('WelcomeMenu', 0 /* fRank */);
new TemplateMenuNode('WelcomeMenuPage', '../business/templates/welcome_menu.html', $oWelcomeMenu->GetIndex() /* oParent */, 1 /* fRank */);
$oToolsMenu = new MenuGroup('UI:AdvancedToolsMenu', 2 /* fRank */);
new WebPageMenuNode('UI:CSVImportMenu', '../pages/csvimport.php', $oToolsMenu->GetIndex(), 1 /* fRank */);
$oToolsMenu = new MenuGroup('AdvancedToolsMenu', 2 /* fRank */);
new WebPageMenuNode('CSVImportMenu', '../pages/csvimport.php', $oToolsMenu->GetIndex(), 1 /* fRank */);
if (userRights::IsAdministrator())
{
// Add the admin menus
$oAdminMenu = new MenuGroup('UI:AdminToolsMenu', 999 /* fRank */);
new OQLMenuNode('UI:UserAccountsMenu', 'UI:UserAccountsMenu:Title', 'SELECT URP_Users', $oAdminMenu->GetIndex(), 1 /* fRank */);
new OQLMenuNode('UI:ProfilesMenu', 'UI:ProfilesMenu:Title', 'SELECT URP_Profiles', $oAdminMenu->GetIndex(), 2 /* fRank */);
new TemplateMenuNode('UI:NotificationsMenu', '../business/templates/notifications_menu.html', $oAdminMenu->GetIndex(), 3 /* fRank */);
new WebPageMenuNode('UI:RunQueriesMenu', '../pages/run_query.php', $oAdminMenu->GetIndex(), 8 /* fRank */);
new WebPageMenuNode('UI:ExportMenu', '../webservices/export.php', $oAdminMenu->GetIndex(), 9 /* fRank */);
new WebPageMenuNode('UI:DataModelMenu', '../pages/schema.php', $oAdminMenu->GetIndex(), 10 /* fRank */);
new WebPageMenuNode('UI:UniversalSearchMenu', '../pages/UniversalSearch.php', $oAdminMenu->GetIndex(), 11 /* fRank */);
$oAdminMenu = new MenuGroup('AdminTools', 999 /* fRank */);
new OQLMenuNode('UserAccountsMenu', 'SELECT URP_Users', $oAdminMenu->GetIndex(), 1 /* fRank */);
new OQLMenuNode('ProfilesMenu', 'SELECT URP_Profiles', $oAdminMenu->GetIndex(), 2 /* fRank */);
new TemplateMenuNode('NotificationsMenu', '../business/templates/notifications_menu.html', $oAdminMenu->GetIndex(), 3 /* fRank */);
new WebPageMenuNode('RunQueriesMenu', '../pages/run_query.php', $oAdminMenu->GetIndex(), 8 /* fRank */);
new WebPageMenuNode('ExportMenu', '../webservices/export.php', $oAdminMenu->GetIndex(), 9 /* fRank */);
new WebPageMenuNode('DataModelMenu', '../pages/schema.php', $oAdminMenu->GetIndex(), 10 /* fRank */);
new WebPageMenuNode('UniversalSearchMenu', '../pages/UniversalSearch.php', $oAdminMenu->GetIndex(), 11 /* fRank */);
}
}

View File

@@ -47,15 +47,13 @@ require_once('../application/template.class.inc.php');
* + Teams >> Plain list (OQL based)
*
* // Create the top-level group. fRank = 1, means it will be inserted after the group '0', which is usually 'Welcome'
* $oConfigMgmtMenu = new MenuGroup('UI:ConfigurationManagementMenu', 1);
* $oConfigMgmtMenu = new MenuGroup('ConfigurationManagementMenu', 1);
* // Create an entry, based on a custom template, for the Configuration management overview, under the top-level group
* new TemplateMenuNode('UI:ConfigurationManagementMenu', '../business/templates/configuration_management_menu.html', $oConfigMgmtMenu->GetIndex(), 0);
* new TemplateMenuNode('ConfigurationManagementMenu', '../business/templates/configuration_management_menu.html', $oConfigMgmtMenu->GetIndex(), 0);
* // Create an entry (template based) for the overview of contacts
* $oContactsMenu = new TemplateMenuNode('UI:ContactsMenu', '../business/templates/configuration_management_menu.html',$oConfigMgmtMenu->GetIndex(), 1);
* $oContactsMenu = new TemplateMenuNode('ContactsMenu', '../business/templates/configuration_management_menu.html',$oConfigMgmtMenu->GetIndex(), 1);
* // Plain list of persons
* new OQLMenuNode('UI:PersonsMenu', 'UI:PersonsMenu:Title', 'SELECT bizPerson', $oContactsMenu->GetIndex(), 0);
* // Plain list of teams
* new OQLMenuNode('UI:TeamsMenu', 'UI:TeamsMenu:Title', 'SELECT bizTeam', $oContactsMenu->GetIndex(), 1);
* new OQLMenuNode('PersonsMenu', 'SELECT bizPerson', $oContactsMenu->GetIndex(), 0);
*
*/
@@ -70,20 +68,20 @@ class ApplicationMenu
*/
static public function InsertMenu(MenuNode $oMenuNode, $iParentIndex = -1, $fRank)
{
$index = self::GetMenuIndexByTitle($oMenuNode->GetRawTitle());
$index = self::GetMenuIndexById($oMenuNode->GetMenuId());
if ($index == -1)
{
// The menu does not already exist, insert it
$index = count(self::$aMenusIndex);
self::$aMenusIndex[$index] = array( 'node' => $oMenuNode, 'children' => array());
if ($iParentIndex == -1)
{
self::$aRootMenus[] = array ('rank' => $fRank, 'index' => $index);
}
else
{
self::$aMenusIndex[$iParentIndex]['children'][] = array ('rank' => $fRank, 'index' => $index);
}
$index = count(self::$aMenusIndex);
self::$aMenusIndex[$index] = array( 'node' => $oMenuNode, 'children' => array());
if ($iParentIndex == -1)
{
self::$aRootMenus[] = array ('rank' => $fRank, 'index' => $index);
}
else
{
self::$aMenusIndex[$iParentIndex]['children'][] = array ('rank' => $fRank, 'index' => $index);
}
}
return $index;
}
@@ -185,12 +183,12 @@ class ApplicationMenu
* @param string $sTitle Title of the menu (as passed when creating the menu)
* @return integer ID of the menu, or -1 if not found
*/
static public function GetMenuIndexByTitle($sTitle)
static public function GetMenuIndexById($sTitle)
{
$index = -1;
foreach(self::$aMenusIndex as $aMenu)
{
if ($aMenu['node']->GetRawTitle() == $sTitle)
if ($aMenu['node']->GetMenuId() == $sTitle)
{
$index = $aMenu['node']->GetIndex();
break;
@@ -247,35 +245,35 @@ class ApplicationMenu
*/
abstract class MenuNode
{
protected $sTitle;
protected $sMenuId;
protected $index = null;
/**
* Create a menu item and inserts it into the application's main menu
* @param string $sTitle Title of the menu (will be looked-up in the dictionnary, for translation)
* @param string $sMenuId Unique identifier of the menu (used to identify the menu for bookmarking, and for getting the labels from the dictionary)
* @param integer $iParentIndex ID of the parent menu, pass -1 for top level (group) items
* @param float $fRank Number used to order the list, any number will do, but for a given level (i.e same parent) all menus are sorted based on this value
* @return MenuNode
*/
public function __construct($sTitle, $iParentIndex = -1, $fRank = 0)
public function __construct($sMenuId, $iParentIndex = -1, $fRank = 0)
{
$this->sTitle = $sTitle;
$this->sMenuId = $sMenuId;
$this->index = ApplicationMenu::InsertMenu($this, $iParentIndex, $fRank);
}
public function GetRawTitle()
public function GetMenuId()
{
return $this->sTitle;
return $this->sMenuId;
}
public function GetTitle()
{
return Dict::S($this->sTitle);
return Dict::S("Menu:$this->sMenuId+");
}
public function GetLabel()
{
return Dict::S($this->sTitle);
return Dict::S("Menu:$this->sMenuId");
}
public function GetIndex()
@@ -319,13 +317,13 @@ class MenuGroup extends MenuNode
{
/**
* Create a top-level menu group and inserts it into the application's main menu
* @param string $sTitle Title of the menu (will be looked-up in the dictionnary for translation)
* @param string $sMenuId Unique identifier of the menu (used to identify the menu for bookmarking, and for getting the labels from the dictionary)
* @param float $fRank Number used to order the list, the groups are sorted based on this value
* @return MenuGroup
*/
public function __construct($sTitle, $fRank)
public function __construct($sMenuId, $fRank)
{
parent::__construct($sTitle, -1 /* no parent, groups are at root level */, $fRank);
parent::__construct($sMenuId, -1 /* no parent, groups are at root level */, $fRank);
}
public function RenderContent(WebPage $oPage, $aExtraParams = array())
@@ -344,15 +342,15 @@ class TemplateMenuNode extends MenuNode
/**
* Create a menu item based on a custom template and inserts it into the application's main menu
* @param string $sTitle Title of the menu (will be looked-up in the dictionnary for translation)
* @param string $sMenuId Unique identifier of the menu (used to identify the menu for bookmarking, and for getting the labels from the dictionary)
* @param string $sTemplateFile Path (or URL) to the file that will be used as a template for displaying the page's content
* @param integer $iParentIndex ID of the parent menu
* @param float $fRank Number used to order the list, any number will do, but for a given level (i.e same parent) all menus are sorted based on this value
* @return MenuNode
*/
public function __construct($sTitle, $sTemplateFile, $iParentIndex, $fRank = 0)
public function __construct($sMenuId, $sTemplateFile, $iParentIndex, $fRank = 0)
{
parent::__construct($sTitle, $iParentIndex, $fRank);
parent::__construct($sMenuId, $iParentIndex, $fRank);
$this->sTemplateFile = $sTemplateFile;
}
@@ -382,16 +380,16 @@ class OQLMenuNode extends MenuNode
/**
* Create a menu item based on an OQL query and inserts it into the application's main menu
* @param string $sTitle Title of the menu (will be looked-up in the dictionnary for translation)
* @param string $sMenuId Unique identifier of the menu (used to identify the menu for bookmarking, and for getting the labels from the dictionary)
* @param string $sPageTitle Title displayed into the page's content (will be looked-up in the dictionnary for translation)
* @param integer $iParentIndex ID of the parent menu
* @param float $fRank Number used to order the list, any number will do, but for a given level (i.e same parent) all menus are sorted based on this value
* @return MenuNode
*/
public function __construct($sTitle, $sPageTitle, $sOQL, $iParentIndex, $fRank = 0)
public function __construct($sMenuId, $sOQL, $iParentIndex, $fRank = 0)
{
parent::__construct($sTitle, $iParentIndex, $fRank);
$this->sPageTitle = $sPageTitle;
parent::__construct($sMenuId, $iParentIndex, $fRank);
$this->sPageTitle = "Menu:$sMenuId+";
$this->sOQL = $sOQL;
}
@@ -430,15 +428,15 @@ class WebPageMenuNode extends MenuNode
/**
* Create a menu item that points to any web page (not only UI.php)
* @param string $sTitle Title of the menu (will be looked-up in the dictionnary for translation)
* @param string $sMenuId Unique identifier of the menu (used to identify the menu for bookmarking, and for getting the labels from the dictionary)
* @param string $sHyperlink URL to the page to load. Use relative URL if you want to keep the application portable !
* @param integer $iParentIndex ID of the parent menu
* @param float $fRank Number used to order the list, any number will do, but for a given level (i.e same parent) all menus are sorted based on this value
* @return MenuNode
*/
public function __construct($sTitle, $sHyperlink, $iParentIndex, $fRank = 0)
public function __construct($sMenuId, $sHyperlink, $iParentIndex, $fRank = 0)
{
parent::__construct($sTitle, $iParentIndex, $fRank);
parent::__construct($sMenuId, $iParentIndex, $fRank);
$this->sHyperlink = $sHyperlink;
}

View File

@@ -1839,10 +1839,10 @@ class lnkKnownErrorToProblem extends cmdbAbstractObject
$oAdminMenu = new MenuGroup('UI:AdminToolsMenu', 999);
$iAdminGroup = $oAdminMenu->GetIndex();
new OQLMenuNode('Menu:Class:Organization/Name', 'Menu:Class:Organization/Title', 'SELECT Organization', $iAdminGroup, 10 /* fRank */);
new OQLMenuNode('Menu:Class:Application/Name', 'Menu:Class:Application/Title', 'SELECT Application', $iAdminGroup, 20 /* fRank */);
new OQLMenuNode('Organization', 'SELECT Organization', $iAdminGroup, 10 /* fRank */);
new OQLMenuNode('Application', 'SELECT Application', $iAdminGroup, 20 /* fRank */);
$oToolsMenu = new MenuGroup('UI:AdvancedToolsMenu', 998);
$oToolsMenu = new MenuGroup('AdvancedToolsMenu', 998);
$iToolsGroup = $oToolsMenu->GetIndex();
new WebPageMenuNode('Menu:Audit', '../pages/audit.php', $iToolsGroup, 33 /* fRank */);

View File

@@ -296,9 +296,10 @@ Dict::Add('EN US', 'English', 'English', array(
//
Dict::Add('EN US', 'English', 'English', array(
'UI:WelcomeMenu' => 'Welcome',
'UI:WelcomeMenuPage' => 'Welcome',
'UI:WelcomeMenu+' => 'Welcome to iTop',
'Menu:WelcomeMenu' => 'Welcome',
'Menu:WelcomeMenu+' => 'Welcome to iTop',
'Menu:WelcomeMenuPage' => 'Welcome',
'Menu:WelcomeMenuPage+' => 'Welcome to iTop',
'UI:WelcomeMenu:Title' => 'Welcome to iTop',
'UI:WelcomeMenu:LeftBlock' => '<p>iTop is a complete, OpenSource, IT Operational Portal.</p>
@@ -685,14 +686,10 @@ Dict::Add('EN US', 'English', 'English', array(
'UI:UserManagement:GrantMatrix' => 'Grant Matrix',
'UI:UserManagement:LinkBetween_User_And_Profile' => 'Link between %1$s and %2$s',
'UI:AdminToolsMenu' => 'Admin tools',
'UI:AdminToolsMenu+' => 'Admin tools',
'UI:AdminToolsMenu:Title' => 'Administration tools',
'UI:AdminToolsMenu:Text' => 'Tools accessible only to users having the administrator profile',
'Menu:AdminTools' => 'Admin tools',
'Menu:AdminTools+' => 'Administration tools',
'Menu:AdminTools?' => 'Tools accessible only to users having the administrator profile',
'UI:AuditMenu' => 'Audit',
'UI:AuditMenu+' => 'Audit',
'UI:ChangeManagementMenu' => 'Change Management',
'UI:ChangeManagementMenu+' => 'Change Management',
'UI:ChangeManagementMenu:Title' => 'Changes Overview',
@@ -722,25 +719,17 @@ Dict::Add('EN US', 'English', 'English', array(
'UI-ContactsMenu-ContactsByType' => 'Contacts by type',
'UI-ContactsMenu-ContactsByStatus' => 'Contacts by status',
'UI:CSVImportMenu' => 'CSV import',
'UI:CSVImportMenu+' => 'Bulk creation or update',
'Menu:CSVImportMenu' => 'CSV import',
'Menu:CSVImportMenu+' => 'Bulk creation or update',
'UI:DataModelMenu' => 'Data Model',
'UI:DataModelMenu+' => 'Overview of the Data Model',
'Menu:DataModelMenu' => 'Data Model',
'Menu:DataModelMenu+' => 'Overview of the Data Model',
'UI:ExportMenu' => 'Export',
'UI:ExportMenu+' => 'Export the results of any query in HTML, CSV or XML',
'Menu:ExportMenu' => 'Export',
'Menu:ExportMenu+' => 'Export the results of any query in HTML, CSV or XML',
'UI:IncidentManagementMenu' => 'Incident Management',
'UI:IncidentManagementMenu+' => 'Incident Management',
'UI:IncidentManagementMenu:Title' => 'Incident Overview',
'UI-IncidentManagementMenu-IncidentsByType' => 'Incidents by type',
'UI-IncidentManagementMenu-IncidentsByStatus' => 'Incidents by status',
'UI-IncidentManagementMenu-IncidentsByWorkgroup' => 'Incidents by workgroup',
'UI-IncidentManagementMenu-IncidentsNotYetAssigned' => 'Incidents not yet assigned',
'UI:NotificationsMenu' => 'Notifications',
'UI:NotificationsMenu+' => 'Configuration of the Notifications',
'Menu:NotificationsMenu' => 'Notifications',
'Menu:NotificationsMenu+' => 'Configuration of the Notifications',
'UI:NotificationsMenu:Title' => 'Configuration of the <span class="hilite">Notifications</span>',
'UI:NotificationsMenu:Help' => 'Help',
'UI:NotificationsMenu:HelpContent' => '<p>In iTop the notifications are fully customizable. They are based on two sets of objects: <i>triggers and actions</i>.</p>
@@ -766,117 +755,29 @@ When associated with a trigger, each action is given an "order" number, specifyi
'UI:NotificationsMenu:Actions' => 'Actions',
'UI:NotificationsMenu:AvailableActions' => 'Available actions',
'UI:RunQueriesMenu' => 'Run Queries',
'UI:RunQueriesMenu+' => 'Run any query',
'Menu:RunQueriesMenu' => 'Run Queries',
'Menu:RunQueriesMenu+' => 'Run any query',
'UI:ServiceDeskMenu' => 'Service Desk',
'UI:ServiceDeskMenu+' => 'Service Desk',
'UI:ServiceDeskMenu:Title' => 'Service Calls Overview',
'UI-ServiceDeskMenu-CallsByType' => 'Calls by type',
'UI-ServiceDeskMenu-CallsByStatus' => 'Calls by status',
'UI-ServiceDeskMenu-CallsBySeverity' => 'Calls by severity',
'UI-ServiceDeskMenu-CallsNotYetAssigned' => 'Calls not yet assigned',
'Menu:AdvancedToolsMenu' => 'Tools',
'Menu:AdvancedToolsMenu+' => 'Advanced tools',
'UI:ServiceManagementMenu' => 'Service Management',
'UI:ServiceManagementMenu+' => 'Service Management',
'UI:ServiceManagementMenu:Title' => 'Service Management Overview',
'UI-ServiceManagementMenu-ContractsBySrvLevel' => 'Contracts by service level',
'UI-ServiceManagementMenu-ContractsByStatus' => 'Contracts by status',
'UI-ServiceManagementMenu-ContractsEndingIn30Days' => 'Contracts ending in less then 30 days',
'Menu:UniversalSearchMenu' => 'Universal Search',
'Menu:UniversalSearchMenu+' => 'Search for anything...',
'UI:AdvancedToolsMenu' => 'Tools',
'UI:AdvancedToolsMenu+' => 'Advanced tools',
'UI:UniversalSearchMenu' => 'Universal Search',
'UI:UniversalSearchMenu+' => 'Search for anything...',
'UI:UserManagementMenu' => 'User Management',
'UI:UserManagementMenu+' => 'User management',
'UI:ApplicationsMenu' => 'Applications',
'UI:ApplicationsMenu+' => 'Applications',
'UI:ApplicationsMenu:Title' => 'Applications',
'UI:CircuitsMenu' => 'Circuits',
'UI:CircuitsMenu+' => 'Circuits',
'UI:CircuitsMenu:Title' => 'Circuits',
'UI:ContractsMenu' => 'Contracts',
'UI:ContractsMenu+' => 'Contracts',
'UI:ContractsMenu:Title' => 'Contracts',
'UI:InterfacesMenu' => 'Interfaces',
'UI:InterfacesMenu+' => 'Interfaces',
'UI:InterfacesMenu:Title' => 'Interfaces',
'UI:NetworkDevicesMenu' => 'Network Devices',
'UI:NetworkDevicesMenu+' => 'Network Devices',
'UI:NetworkDevicesMenu:Title' => 'Network Devices',
'UI:PatchesMenu' => 'Patches',
'UI:PatchesMenu+' => 'Patches',
'UI:PatchesMenu:Title' => 'Patches',
'UI:PCsMenu' => 'PCs',
'UI:PCsMenu+' => 'PCs',
'UI:PCsMenu:Title' => 'PCs',
'UI:ServersMenu' => 'Servers',
'UI:ServersMenu+' => 'Servers',
'UI:ServersMenu:Title' => 'Servers',
'UI:ServicesMenu' => 'Services',
'UI:ServicesMenu+' => 'Services',
'UI:ServicesMenu:Title' => 'Services',
'UI:SubnetsMenu' => 'Subnets',
'UI:SubnetsMenu+' => 'Subnets',
'UI:SubnetsMenu:Title' => 'Subnets',
'UI:ApplicationLogMenu' => 'Application Log',
'UI:ApplicationLogMenu+' => 'Application Log',
'UI:ApplicationLogMenu:Title' => 'Application Log',
'UI:ClosedChangesMenu' => 'Closed Changes',
'UI:ClosedChangesMenu+' => 'Closed Changes',
'UI:ClosedChangesMenu:Title' => 'Closed Changes',
'UI:ClosedIncidentsMenu' => 'Closed Incidents',
'UI:ClosedIncidentsMenu+' => 'Closed Incidents',
'UI:ClosedIncidentsMenu:Title' => 'Closed Incidents',
'UI:DocumentsMenu' => 'Documents',
'UI:DocumentsMenu+' => 'Documents',
'UI:DocumentsMenu:Title' => 'Documents',
'UI:GroupingMenu' => 'Groups',
'UI:GroupingMenu+' => 'Groups',
'UI:GroupingMenu:Title' => 'Groups',
'UI:KnownErrorsMenu' => 'Known Errors',
'UI:KnownErrorsMenu+' => 'Known Errors',
'UI:KnownErrorsMenu:Title' => 'Known Errors',
'UI:LocationsMenu' => 'Locations',
'UI:LocationsMenu+' => 'Locations',
'UI:LocationsMenu:Title' => 'Locations',
'UI:MyChangesMenu' => 'My Changes',
'UI:MyChangesMenu+' => 'My Changes',
'UI:MyChangesMenu:Title' => 'My Changes',
'UI:MyIncidentsMenu' => 'My Incidents',
'UI:MyIncidentsMenu+' => 'My Incidents',
'UI:MyIncidentsMenu:Title' => 'My Incidents',
'UI:MyServiceCallsMenu' => 'My Service Calls',
'UI:MyServiceCallsMenu+' => 'My Service Calls',
'UI:MyServiceCallsMenu:Title' => 'My Service Calls',
'UI:OpenChangesMenu' => 'Open Changes',
'UI:OpenChangesMenu+' => 'Open Changes',
'UI:OpenChangesMenu:Title' => 'Open Changes',
'UI:OpenIncidentsMenu' => 'Open Incidents',
'UI:OpenIncidentsMenu+' => 'Open Incidents',
'UI:OpenIncidentsMenu:Title' => 'Open Incidents',
'UI:OpenServiceCallsMenu' => 'Open Service Calls',
'UI:OpenServiceCallsMenu+' => 'Open Service Calls',
'UI:OpenServiceCallsMenu:Title' => 'Open Service Calls',
'UI:PersonsMenu' => 'Persons',
'UI:PersonsMenu+' => 'Persons',
'UI:PersonsMenu:Title' => 'Persons',
'UI:ProfilesMenu' => 'Profiles',
'UI:ProfilesMenu+' => 'Profiles',
'UI:ProfilesMenu:Title' => 'Profiles',
'UI:ScheduledOutagesMenu' => 'Scheduled Outages',
'UI:ScheduledOutagesMenu+' => 'Scheduled Outages',
'UI:ScheduledOutagesMenu:Title' => 'Scheduled Outages',
'UI:TeamsMenu' => 'Teams',
'UI:TeamsMenu+' => 'Teams',
'UI:TeamsMenu:Title' => 'Teams',
'UI:UserAccountsMenu' => 'User Accounts',
'UI:UserAccountsMenu+' => 'User Accounts',
'UI:UserAccountsMenu:Title' => 'User Accounts',
'Menu:ApplicationLogMenu' => 'Log de l\'application',
'Menu:ApplicationLogMenu+' => 'Log de l\'application',
'Menu:ApplicationLogMenu:Title' => 'Log de l\'application',
'Menu:UserManagementMenu' => 'User Management',
'Menu:UserManagementMenu+' => 'User management',
'Menu:ProfilesMenu' => 'Profils',
'Menu:ProfilesMenu+' => 'Profils',
'Menu:ProfilesMenu:Title' => 'Profils',
'Menu:UserAccountsMenu' => 'User Accounts',
'Menu:UserAccountsMenu+' => 'User Accounts',
'Menu:UserAccountsMenu:Title' => 'User Accounts',
'UI:iTopVersion:Short' => 'iTop version %1$s',
'UI:iTopVersion:Long' => 'iTop version %1$s-%2$s built on %3$s',

View File

@@ -680,10 +680,9 @@ Dict::Add('FR FR', 'French', 'Français', array(
'UI:UserManagement:GrantMatrix' => 'Matrice des droits',
'UI:USerManagement:LinkBetween_User_And_Profile' => 'Lien entre %1$s et %2$s',
'UI:AdminToolsMenu' => 'Outils d\'admin',
'UI:AdminToolsMenu+' => 'Outils d\'administration',
'UI:AdminToolsMenu:Title' => 'Outils d\'administration',
'UI:AdminToolsMenu:Text' => 'Ces outils sont accessibles uniquement aux utilisateur possédant le profil Administrateur.',
'Menu:AdminTools' => 'Outils d\'admin',
'Menu:AdminTools+' => 'Outils d\'administration',
'Menu:AdminTools?' => 'Ces outils sont accessibles uniquement aux utilisateur possédant le profil Administrateur.',
'UI:AuditMenu' => 'Audit',
'UI:AuditMenu+' => 'Audit',
@@ -718,17 +717,17 @@ Dict::Add('FR FR', 'French', 'Français', array(
'UI-ContactsMenu-ContactsByStatus' => 'Contacts par état',
'UI:CSVImportMenu' => 'Import CSV',
'UI:CSVImportMenu+' => 'Import ou mise à jour en masse',
'Menu:CSVImportMenu' => 'Import CSV',
'Menu:CSVImportMenu+' => 'Import ou mise à jour en masse',
'UI:DataModelMenu' => 'Modèle de Données',
'UI:DataModelMenu+' => 'Résumé du Modèle de Données',
'Menu:DataModelMenu' => 'Modèle de Données',
'Menu:DataModelMenu+' => 'Résumé du Modèle de Données',
'UI:ExportMenu' => 'Exportation',
'UI:ExportMenu+' => 'Exportation des résultats d\'une requête en HTML, CSV ou XML',
'Menu:ExportMenu' => 'Exportation',
'Menu:ExportMenu+' => 'Exportation des résultats d\'une requête en HTML, CSV ou XML',
'UI:IncidentManagementMenu' => 'Gestion des Incidents',
'UI:IncidentManagementMenu+' => 'Gestion des Incidents',
'Menu:IncidentManagementMenu' => 'Gestion des Incidents',
'Menu:IncidentManagementMenu+' => 'Gestion des Incidents',
'UI:IncidentManagementMenu:Title' => 'Résumé des incidents',
'UI-IncidentManagementMenu-IncidentsByType' => 'Incidents par type',
'UI-IncidentManagementMenu-IncidentsByStatus' => 'Incidents par état',
@@ -762,17 +761,9 @@ Lors de l\'association à un déclencheur, on attribue à chaque action un numé
'UI:NotificationsMenu:AvailableActions' => 'Actions existantes',
'UI:RunQueriesMenu' => 'Requêtes OQL',
'UI:RunQueriesMenu+' => 'Executer une requête OQL',
'Menu:RunQueriesMenu' => 'Requêtes OQL',
'Menu:RunQueriesMenu+' => 'Executer une requête OQL',
'UI:ServiceDeskMenu' => 'Service Desk',
'UI:ServiceDeskMenu+' => 'Service Desk',
'UI:ServiceDeskMenu:Title' => 'Résumé des demandes utilisateur',
'UI-ServiceDeskMenu-CallsByType' => 'Demandes par type',
'UI-ServiceDeskMenu-CallsByStatus' => 'Demandes par état',
'UI-ServiceDeskMenu-CallsBySeverity' => 'Demandes par sévérité',
'UI-ServiceDeskMenu-CallsNotYetAssigned' => 'Demandes en attente d\'assignation',
'UI:ServiceManagementMenu' => 'Gestion des Services',
'UI:ServiceManagementMenu+' => 'Gestion des Services',
'UI:ServiceManagementMenu:Title' => 'Résumé des services & contrats',
@@ -780,99 +771,26 @@ Lors de l\'association à un déclencheur, on attribue à chaque action un numé
'UI-ServiceManagementMenu-ContractsByStatus' => 'Contrats par état',
'UI-ServiceManagementMenu-ContractsEndingIn30Days' => 'Contrats se terminant dans moins de 30 jours',
'UI:AdvancedToolsMenu' => 'Outils',
'UI:AdvancedToolsMenu+' => 'Outils Avancés',
'Menu:AdvancedToolsMenu' => 'Outils',
'Menu:AdvancedToolsMenu+' => 'Outils Avancés',
'UI:UniversalSearchMenu' => 'Recherche Universelle',
'UI:UniversalSearchMenu+' => 'Rechercher n\'importe quel objet...',
'Menu:UniversalSearchMenu' => 'Recherche Universelle',
'Menu:UniversalSearchMenu+' => 'Rechercher n\'importe quel objet...',
'UI:UserManagementMenu' => 'Gestion des Utilisateurs',
'UI:UserManagementMenu+' => 'Gestion des Utilisateurs',
'UI:ApplicationsMenu' => 'Applications',
'UI:ApplicationsMenu+' => 'Applications',
'UI:ApplicationsMenu:Title' => 'Applications',
'UI:CircuitsMenu' => 'Circuits',
'UI:CircuitsMenu+' => 'Circuits',
'UI:CircuitsMenu:Title' => 'Circuits',
'UI:ContractsMenu' => 'Contrats',
'UI:ContractsMenu+' => 'Contrats',
'UI:ContractsMenu:Title' => 'Contrats',
'UI:InterfacesMenu' => 'Interfaces',
'UI:InterfacesMenu+' => 'Interfaces',
'UI:InterfacesMenu:Title' => 'Interfaces',
'UI:NetworkDevicesMenu' => 'Equipements Réseau',
'UI:NetworkDevicesMenu+' => 'Equipements Réseau',
'UI:NetworkDevicesMenu:Title' => 'Equipements Réseau',
'UI:PatchesMenu' => 'Patches',
'UI:PatchesMenu+' => 'Patches',
'UI:PatchesMenu:Title' => 'Patches',
'UI:PCsMenu' => 'PCs',
'UI:PCsMenu+' => 'PCs',
'UI:PCsMenu:Title' => 'PCs',
'UI:ServersMenu' => 'Serveurs',
'UI:ServersMenu+' => 'Serveurs',
'UI:ServersMenu:Title' => 'Serveurs',
'UI:ServicesMenu' => 'Services',
'UI:ServicesMenu+' => 'Services',
'UI:ServicesMenu:Title' => 'Services',
'UI:SubnetsMenu' => 'Subnets',
'UI:SubnetsMenu+' => 'Subnets',
'UI:SubnetsMenu:Title' => 'Subnets',
'UI:ApplicationLogMenu' => 'Log Applicatif',
'UI:ApplicationLogMenu+' => 'Log Applicatif',
'UI:ApplicationLogMenu:Title' => 'Log Applicatif',
'UI:ClosedChangesMenu' => 'Changements Terminés',
'UI:ClosedChangesMenu+' => 'Changements Terminés',
'UI:ClosedChangesMenu:Title' => 'Changements Terminés',
'UI:ClosedIncidentsMenu' => 'Incidents Clôts',
'UI:ClosedIncidentsMenu+' => 'Incidents Clôts',
'UI:ClosedIncidentsMenu:Title' => 'Incidents Clôts',
'UI:DocumentsMenu' => 'Documents',
'UI:DocumentsMenu+' => 'Documents',
'UI:DocumentsMenu:Title' => 'Documents',
'UI:GroupingMenu' => 'Groupes',
'UI:GroupingMenu+' => 'Groupes',
'UI:GroupingMenu:Title' => 'Groupes',
'UI:KnownErrorsMenu' => 'Erreurs Connues',
'UI:KnownErrorsMenu+' => 'Erreurs Connues',
'UI:KnownErrorsMenu:Title' => 'Erreurs Connues',
'UI:LocationsMenu' => 'Emplacements',
'UI:LocationsMenu+' => 'Emplacements',
'UI:LocationsMenu:Title' => 'Emplacements',
'UI:MyChangesMenu' => 'Mes Changements',
'UI:MyChangesMenu+' => 'Mes Changements',
'UI:MyChangesMenu:Title' => 'Mes Changements',
'UI:MyIncidentsMenu' => 'Mes Incidents',
'UI:MyIncidentsMenu+' => 'Mes Incidents',
'UI:MyIncidentsMenu:Title' => 'Mes Incidents',
'UI:MyServiceCallsMenu' => 'Mes Demandes de Service',
'UI:MyServiceCallsMenu+' => 'Mes Demandes de Service',
'UI:MyServiceCallsMenu:Title' => 'Mes Demandes de Service',
'UI:OpenChangesMenu' => 'Changements En Cours',
'UI:OpenChangesMenu+' => 'Changements En Cours',
'UI:OpenChangesMenu:Title' => 'Changements En Cours',
'UI:OpenIncidentsMenu' => 'Incidents En Cours',
'UI:OpenIncidentsMenu+' => 'Incidents En Cours',
'UI:OpenIncidentsMenu:Title' => 'Incidents En Cours',
'UI:OpenServiceCallsMenu' => 'Demandes de Service En Cours',
'UI:OpenServiceCallsMenu+' => 'Demandes de Service En Cours',
'UI:OpenServiceCallsMenu:Title' => 'Demandes de Service En Cours',
'UI:PersonsMenu' => 'Personnes',
'UI:PersonsMenu+' => 'Personnes',
'UI:PersonsMenu:Title' => 'Personnes',
'UI:ProfilesMenu' => 'Profils',
'UI:ProfilesMenu+' => 'Profils',
'UI:ProfilesMenu:Title' => 'Profils',
'UI:ScheduledOutagesMenu' => 'Maintenance Plannifiée',
'UI:ScheduledOutagesMenu+' => 'Maintenance Plannifiée',
'UI:ScheduledOutagesMenu:Title' => 'Maintenance Plannifiée',
'UI:TeamsMenu' => 'Equipes',
'UI:TeamsMenu+' => 'Equipes',
'UI:TeamsMenu:Title' => 'Equipes',
'UI:UserAccountsMenu' => 'Comptes Utilisateur',
'UI:UserAccountsMenu+' => 'Comptes Utilisateur',
'UI:UserAccountsMenu:Title' => 'Comptes Utilisateur',
'Menu:ApplicationLogMenu' => 'Application Log',
'Menu:ApplicationLogMenu+' => 'Application Log',
'Menu:ApplicationLogMenu:Title' => 'Application Log',
'Menu:UserManagementMenu' => 'Gestion des Utilisateurs',
'Menu:UserManagementMenu+' => 'Gestion des Utilisateurs',
'Menu:ProfilesMenu' => 'Profils',
'Menu:ProfilesMenu+' => 'Profils',
'Menu:ProfilesMenu:Title' => 'Profils',
'Menu:UserAccountsMenu' => 'Comptes Utilisateur',
'Menu:UserAccountsMenu+' => 'Comptes Utilisateur',
'MenuUI:UserAccountsMenu:Title' => 'Comptes Utilisateur',
'UI:iTopVersion:Short' => 'iTop version %1$s',
'UI:iTopVersion:Long' => 'iTop version %1$s-%2$s du %3$s',

View File

@@ -12,6 +12,7 @@ SetupWebPage::AddModule(
//
'dependencies' => array(
'itop-config-mgmt/1.0.0',
'itop-ticket/1.0.0',
),
'mandatory' => false,
'visible' => true,

View File

@@ -771,48 +771,54 @@ Dict::Add('EN US', 'English', 'English', array(
//
Dict::Add('EN US', 'English', 'English', array(
'Menu:Class:Organization/Name' => 'Organizations',
'Menu:Class:Organization/Title' => 'ALl Organizations',
'Menu:Class:Application/Name' => 'Applications',
'Menu:Class:Application/Title' => 'All Applications',
'Menu:Audit' => 'Audit',
'Menu:Audit+' => 'Audit',
'Menu:Organization' => 'Organizations',
'Menu:Organization+' => 'ALl Organizations',
'Menu:Application' => 'Applications',
'Menu:Application+' => 'All Applications',
'Menu:Audit' => 'Audit',
'Menu:ConfigManagement' => 'Configuration Management',
'Menu:ConfigManagement/Overview' => 'Overview',
'Menu:Class:Contact/Name' => 'Contacts',
'Menu:Class:Person/Name' => 'Persons',
'Menu:Class:Person/Title' => 'All Persons',
'Menu:Class:Team/Name' => 'Teams',
'Menu:Class:Team/Title' => 'All Teams',
'Menu:Class:FileDoc/Name' => 'Documents',
'Menu:Class:FileDoc/Title' => 'All Documents',
'Menu:Class:Location/Name' => 'Locations',
'Menu:Class:Location/Title' => 'All Locations',
'Menu:ConfigManagement:CI' => 'Configuration Items',
'Menu:Class:BusinessProcess/Name' => 'Business Processes',
'Menu:Class:BusinessProcess/Title' => 'All Business Processes',
'Menu:Class:ApplicationSolution/Name' => 'Application Solutions',
'Menu:Class:ApplicationSolution/Title' => 'All Application Solutions',
'Menu:ConfigManagement:Software' => 'Software',
'Menu:Class:Licence/Name' => 'Licences',
'Menu:Class:Licence/Title' => 'All Licences',
'Menu:Class:Patch/Name' => 'Patches',
'Menu:Class:Patch/Title' => 'ALl Patches',
'Menu:Class:ApplicationInstance/Name' => 'Installed Applications',
'Menu:Class:ApplicationInstance/Title' => 'All Installed Applications',
'Menu:Class:DatabaseInstance/Name' => 'Database Instances',
'Menu:Class:DatabaseInstance/Title' => 'All Database Instances',
'Menu:ConfigManagement:Hardware' => 'Hardware',
'Menu:Class:Subnet/Name' => 'Subnets',
'Menu:Class:Subnet/Title' => 'All Subnets',
'Menu:Class:NetworkDevice/Name' => 'Network Devices',
'Menu:Class:NetworkDevice/Title' => 'All Network Devices',
'Menu:Class:Server/Name' => 'Servers',
'Menu:Class:Server/Title' => 'All Servers',
'Menu:Class:Printer/Name' => 'Printers',
'Menu:Class:Printer/Title' => 'All Printers',
'Menu:Class:MobilePhone/Name' => 'Mobile Phones',
'Menu:Class:MobilePhone/Title' => 'All Mobile Phones',
'Menu:Class:PC/Name' => 'Personal Computers',
'Menu:Class:PC/Title' => 'All Personal Computers',
'Menu:ConfigManagement+' => 'Configuration Management',
'Menu:ConfigManagementOverview' => 'Overview',
'Menu:ConfigManagementOverview+' => 'Overview',
'Menu:Contact' => 'Contacts',
'Menu:Contact+' => 'Contacts',
'Menu:Person' => 'Persons',
'Menu:Person+' => 'All Persons',
'Menu:Team' => 'Teams',
'Menu:Team+' => 'All Teams',
'Menu:FileDoc' => 'Documents',
'Menu:FileDoc+' => 'All Documents',
'Menu:Location' => 'Locations',
'Menu:Location+' => 'All Locations',
'Menu:ConfigManagementCI' => 'Configuration Items',
'Menu:ConfigManagementCI+' => 'Configuration Items',
'Menu:BusinessProcess' => 'Business Processes',
'Menu:BusinessProcess+' => 'All Business Processes',
'Menu:ApplicationSolution' => 'Application Solutions',
'Menu:ApplicationSolution+' => 'All Application Solutions',
'Menu:ConfigManagementSoftware' => 'Software',
'Menu:Licence' => 'Licences',
'Menu:Licence+' => 'All Licences',
'Menu:Patch' => 'Patches',
'Menu:Patch+' => 'ALl Patches',
'Menu:ApplicationInstance' => 'Installed Applications',
'Menu:ApplicationInstance+' => 'All Installed Applications',
'Menu:DatabaseInstance' => 'Database Instances',
'Menu:DatabaseInstance+' => 'All Database Instances',
'Menu:ConfigManagementHardware' => 'Hardware',
'Menu:Subnet' => 'Subnets',
'Menu:Subnet+' => 'All Subnets',
'Menu:NetworkDevice' => 'Network Devices',
'Menu:NetworkDevice+' => 'All Network Devices',
'Menu:Server' => 'Servers',
'Menu:Server+' => 'All Servers',
'Menu:Printer' => 'Printers',
'Menu:Printer+' => 'All Printers',
'Menu:MobilePhone' => 'Mobile Phones',
'Menu:MobilePhone+' => 'All Mobile Phones',
'Menu:PC' => 'Personal Computers',
'Menu:PC+' => 'All Personal Computers',
));
?>

View File

@@ -1102,48 +1102,48 @@ class lnkProcessToSolution extends cmdbAbstractObject
////////////////////////////////////////////////////////////////////////////////////
// Create the top-level group. fRank = 1, means it will be inserted after the group '0', which is usually 'Welcome'
$oAdminMenu = new MenuGroup('UI:AdminToolsMenu', 999);
$oAdminMenu = new MenuGroup('AdminTools', 999);
$iAdminGroup = $oAdminMenu->GetIndex();
new OQLMenuNode('Menu:Class:Organization/Name', 'Menu:Class:Organization/Title', 'SELECT Organization', $iAdminGroup, 10 /* fRank */);
new OQLMenuNode('Menu:Class:Application/Name', 'Menu:Class:Application/Title', 'SELECT Application', $iAdminGroup, 20 /* fRank */);
new OQLMenuNode('Organization', 'SELECT Organization', $iAdminGroup, 10 /* fRank */);
new OQLMenuNode('Application', 'SELECT Application', $iAdminGroup, 20 /* fRank */);
$oToolsMenu = new MenuGroup('UI:AdvancedToolsMenu', 998);
$oToolsMenu = new MenuGroup('AdvancedToolsMenu', 998);
$iToolsGroup = $oToolsMenu->GetIndex();
new WebPageMenuNode('Menu:Audit', '../pages/audit.php', $iToolsGroup, 33 /* fRank */);
new WebPageMenuNode('Audit', '../pages/audit.php', $iToolsGroup, 33 /* fRank */);
$oConfigManagementGroup = new MenuGroup('Menu:ConfigManagement', 1 /* fRank */);
$oConfigManagementGroup = new MenuGroup('ConfigManagement', 1 /* fRank */);
// Create an entry, based on a custom template, for the Configuration management overview, under the top-level group
new TemplateMenuNode('Menu:ConfigManagement/Overview', '../business/templates/configuration_management_menu.html', $oConfigManagementGroup->GetIndex(), 0 /* fRank */);
new TemplateMenuNode('ConfigManagementOverview', '../business/templates/configuration_management_menu.html', $oConfigManagementGroup->GetIndex(), 0 /* fRank */);
$oContactNode = new TemplateMenuNode('Menu:Class:Contact/Name', '../business/templates/contacts_menu.html', $oConfigManagementGroup->GetIndex(), 1 /* fRank */);
new OQLMenuNode('Menu:Class:Person/Name', 'Menu:Class:Person/Title', 'SELECT Person', $oContactNode->GetIndex(), 1 /* fRank */);
new OQLMenuNode('Menu:Class:Team/Name', 'Menu:Class:Team/Title', 'SELECT Team', $oContactNode->GetIndex(), 2 /* fRank */);
$oContactNode = new TemplateMenuNode('Contact', '../business/templates/contacts_menu.html', $oConfigManagementGroup->GetIndex(), 1 /* fRank */);
new OQLMenuNode('Person', 'SELECT Person', $oContactNode->GetIndex(), 1 /* fRank */);
new OQLMenuNode('Team', 'SELECT Team', $oContactNode->GetIndex(), 2 /* fRank */);
new OQLMenuNode('Menu:Class:FileDoc/Name', 'Menu:Class:FileDoc/Title', 'SELECT FileDoc', $oConfigManagementGroup->GetIndex(), 2 /* fRank */);
new OQLMenuNode('Menu:Class:Location/Name', 'Menu:Class:Location/Title', 'SELECT Location', $oConfigManagementGroup->GetIndex(), 3 /* fRank */);
new OQLMenuNode('FileDoc', 'SELECT FileDoc', $oConfigManagementGroup->GetIndex(), 2 /* fRank */);
new OQLMenuNode('Location', 'SELECT Location', $oConfigManagementGroup->GetIndex(), 3 /* fRank */);
$oCINode = new TemplateMenuNode('Menu:ConfigManagement:CI', '../business/templates/configuration_items_menu.html', $oConfigManagementGroup->GetIndex(), 2 /* fRank */);
$oCINode = new TemplateMenuNode('ConfigManagementCI', '../business/templates/configuration_items_menu.html', $oConfigManagementGroup->GetIndex(), 2 /* fRank */);
new OQLMenuNode('Menu:Class:BusinessProcess/Name', 'Menu:Class:BusinessProcess/Title', 'SELECT BusinessProcess', $oCINode->GetIndex(), 0 /* fRank */);
new OQLMenuNode('Menu:Class:ApplicationSolution/Name', 'Menu:Class:ApplicationSolution/Title', 'SELECT ApplicationSolution', $oCINode->GetIndex(), 1 /* fRank */);
new OQLMenuNode('BusinessProcess', 'SELECT BusinessProcess', $oCINode->GetIndex(), 0 /* fRank */);
new OQLMenuNode('ApplicationSolution', 'SELECT ApplicationSolution', $oCINode->GetIndex(), 1 /* fRank */);
$oSWNode = new TemplateMenuNode('Menu:ConfigManagement:Software', '', $oCINode->GetIndex(), 2 /* fRank */);
new OQLMenuNode('Menu:Class:Licence/Name', 'Menu:Class:Licence/Title', 'SELECT Licence', $oSWNode->GetIndex(), 0 /* fRank */);
new OQLMenuNode('Menu:Class:Patch/Name', 'Menu:Class:Patch/Title', 'SELECT Patch', $oSWNode->GetIndex(), 1 /* fRank */);
new OQLMenuNode('Menu:Class:ApplicationInstance/Name', 'Menu:Class:ApplicationInstance/Title', 'SELECT ApplicationInstance', $oSWNode->GetIndex(), 2 /* fRank */);
new OQLMenuNode('Menu:Class:DatabaseInstance/Name', 'Menu:Class:DatabaseInstance/Title', 'SELECT DatabaseInstance', $oSWNode->GetIndex(), 3 /* fRank */);
$oSWNode = new TemplateMenuNode('ConfigManagementSoftware', '', $oCINode->GetIndex(), 2 /* fRank */);
new OQLMenuNode('Licence', 'SELECT Licence', $oSWNode->GetIndex(), 0 /* fRank */);
new OQLMenuNode('Patch', 'SELECT Patch', $oSWNode->GetIndex(), 1 /* fRank */);
new OQLMenuNode('ApplicationInstance', 'SELECT ApplicationInstance', $oSWNode->GetIndex(), 2 /* fRank */);
new OQLMenuNode('DatabaseInstance', 'SELECT DatabaseInstance', $oSWNode->GetIndex(), 3 /* fRank */);
$oHWNode = new TemplateMenuNode('Menu:ConfigManagement:Hardware', '', $oCINode->GetIndex(), 3 /* fRank */);
new OQLMenuNode('Menu:Class:Subnet/Name', 'Menu:Class:Subnet/Title', 'SELECT Subnet', $oHWNode->GetIndex(), 0 /* fRank */);
new OQLMenuNode('Menu:Class:NetworkDevice/Name', 'Menu:Class:NetworkDevice/Title', 'SELECT NetworkDevice', $oHWNode->GetIndex(), 1 /* fRank */);
new OQLMenuNode('Menu:Class:Server/Name', 'Menu:Class:Server/Title', 'SELECT Server', $oHWNode->GetIndex(), 2 /* fRank */);
new OQLMenuNode('Menu:Class:Printer/Name', 'Menu:Class:Printer/Title', 'SELECT Printer', $oHWNode->GetIndex(), 3 /* fRank */);
new OQLMenuNode('Menu:Class:MobilePhone/Name', 'Menu:Class:MobilePhone/Title', 'SELECT MobilePhone', $oHWNode->GetIndex(), 4 /* fRank */);
new OQLMenuNode('Menu:Class:PC/Name', 'Menu:Class:PC/Title', 'SELECT PC', $oHWNode->GetIndex(), 5 /* fRank */);
$oHWNode = new TemplateMenuNode('ConfigManagementHardware', '', $oCINode->GetIndex(), 3 /* fRank */);
new OQLMenuNode('Subnet', 'SELECT Subnet', $oHWNode->GetIndex(), 0 /* fRank */);
new OQLMenuNode('NetworkDevice', 'SELECT NetworkDevice', $oHWNode->GetIndex(), 1 /* fRank */);
new OQLMenuNode('Server', 'SELECT Server', $oHWNode->GetIndex(), 2 /* fRank */);
new OQLMenuNode('Printer', 'SELECT Printer', $oHWNode->GetIndex(), 3 /* fRank */);
new OQLMenuNode('MobilePhone', 'SELECT MobilePhone', $oHWNode->GetIndex(), 4 /* fRank */);
new OQLMenuNode('PC', 'SELECT PC', $oHWNode->GetIndex(), 5 /* fRank */);
?>

View File

@@ -12,6 +12,7 @@ SetupWebPage::AddModule(
//
'dependencies' => array(
'itop-config-mgmt/1.0.0',
'itop-tickets/1.0.0',
),
'mandatory' => false,
'visible' => true,

View File

@@ -12,6 +12,7 @@ SetupWebPage::AddModule(
//
'dependencies' => array(
'itop-config-mgmt/1.0.0',
'itop-tickets/1.0.0',
),
'mandatory' => false,
'visible' => true,

View File

@@ -12,6 +12,7 @@ SetupWebPage::AddModule(
//
'dependencies' => array(
'itop-config-mgmt/1.0.0',
'itop-tickets/1.0.0',
),
'mandatory' => false,
'visible' => true,

View File

@@ -12,6 +12,7 @@ SetupWebPage::AddModule(
//
'dependencies' => array(
'itop-config-mgmt/1.0.0',
'itop-tickets/1.0.0',
),
'mandatory' => false,
'visible' => true,

View File

@@ -48,4 +48,13 @@
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
Dict::Add('EN US', 'English', 'English', array(
'Menu:ServiceManagement' => 'Service Management',
'Menu:ServiceManagement+' => 'Service Management Overview',
'UI-ServiceManagementMenu-ContractsBySrvLevel' => 'Contracts by service level',
'UI-ServiceManagementMenu-ContractsByStatus' => 'Contracts by status',
'UI-ServiceManagementMenu-ContractsEndingIn30Days' => 'Contracts ending in less then 30 days',
));
?>

View File

@@ -378,12 +378,13 @@ class ServiceLevel extends cmdbAbstractObject
MetaModel::Init_AddAttribute(new AttributeString("ticket_type", array("allowed_values"=>null, "sql"=>"ticket_type", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeString("ticket_priorities", array("allowed_values"=>null, "sql"=>"ticket_priorities", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeInteger("value", array("allowed_values"=>null, "sql"=>"value", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeString("value_unit", array("allowed_values"=>null, "sql"=>"value_unit", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("sla_list", array("linked_class"=>"lnkLevelToSLA", "ext_key_to_me"=>"servicelevel_id", "ext_key_to_remote"=>"sla_id", "allowed_values"=>null, "count_min"=>0, "count_max"=>0, "depends_on"=>array())));
MetaModel::Init_SetZListItems('details', array('name', 'metric', 'ticket_type', 'ticket_priorities', 'value', 'sla_list'));
MetaModel::Init_SetZListItems('advanced_search', array('name', 'metric', 'ticket_type', 'ticket_priorities', 'value'));
MetaModel::Init_SetZListItems('standard_search', array('name', 'metric', 'ticket_type', 'ticket_priorities', 'value'));
MetaModel::Init_SetZListItems('list', array('name', 'metric', 'ticket_type', 'ticket_priorities', 'value'));
MetaModel::Init_SetZListItems('details', array('name', 'metric', 'ticket_type', 'ticket_priorities', 'value', 'value_unit', 'sla_list'));
MetaModel::Init_SetZListItems('advanced_search', array('name', 'metric', 'ticket_type', 'ticket_priorities', 'value', 'value_unit'));
MetaModel::Init_SetZListItems('standard_search', array('name', 'metric', 'ticket_type', 'ticket_priorities', 'value', 'value_unit'));
MetaModel::Init_SetZListItems('list', array('name', 'metric', 'ticket_type', 'ticket_priorities', 'value', 'value_unit'));
}
}
class lnkLevelToSLA extends cmdbAbstractObject
@@ -410,11 +411,14 @@ class lnkLevelToSLA extends cmdbAbstractObject
MetaModel::Init_AddAttribute(new AttributeExternalField("sla_name", array("allowed_values"=>null, "extkey_attcode"=>"sla_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeExternalKey("servicelevel_id", array("targetclass"=>"ServiceLevel", "jointype"=>null, "allowed_values"=>null, "sql"=>"servicelevel_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeExternalField("servicelevel_name", array("allowed_values"=>null, "extkey_attcode"=>"servicelevel_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeExternalField("servicelevel_metric", array("allowed_values"=>null, "extkey_attcode"=>"servicelevel_id", "target_attcode"=>"metric", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeExternalField("servicelevel_value", array("allowed_values"=>null, "extkey_attcode"=>"servicelevel_id", "target_attcode"=>"value", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeExternalField("servicelevel_value_unit", array("allowed_values"=>null, "extkey_attcode"=>"servicelevel_id", "target_attcode"=>"value_unit", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_SetZListItems('details', array('sla_id', 'servicelevel_id'));
MetaModel::Init_SetZListItems('advanced_search', array('sla_id', 'servicelevel_id'));
MetaModel::Init_SetZListItems('standard_search', array('sla_id', 'servicelevel_id'));
MetaModel::Init_SetZListItems('list', array('sla_id', 'servicelevel_id'));
MetaModel::Init_SetZListItems('details', array('sla_id', 'servicelevel_id', 'servicelevel_metric', 'servicelevel_value', 'servicelevel_value_unit'));
MetaModel::Init_SetZListItems('advanced_search', array('sla_id', 'servicelevel_id', 'servicelevel_metric', 'servicelevel_value', 'servicelevel_value_unit'));
MetaModel::Init_SetZListItems('standard_search', array('sla_id', 'servicelevel_id', 'servicelevel_metric', 'servicelevel_value', 'servicelevel_value_unit'));
MetaModel::Init_SetZListItems('list', array('sla_id', 'servicelevel_id', 'servicelevel_metric', 'servicelevel_value', 'servicelevel_value_unit'));
}
}
//////////////////////////////////////////////////////////////////////////////
@@ -426,41 +430,20 @@ class lnkLevelToSLA extends cmdbAbstractObject
// + ...
// + ...
////////////////////////////////////////////////////////////////////////////////////
// Create the top-level group. fRank = 1, means it will be inserted after the group '0', which is usually 'Welcome'
$oMyMenuGroup = new MenuGroup('Menu:MyModule', 1 /* fRank */);
// Create an entry, based on a custom template, for the Configuration management overview, under the top-level group
$oMyMenuNode = new TemplateMenuNode('Menu:MyModule', '../business/templates/configuration_management_menu.html', $oMyMenuGroup->GetIndex(), 0 /* fRank */);
// By default, one entry per class
new OQLMenuNode('Menu:Class:Contract/Name', 'Menu:Class:Contract/Title', 'SELECT Contract', $oMyMenuNode->GetIndex(), 0 /* fRank */);
new OQLMenuNode('Menu:Class:ProviderContract/Name', 'Menu:Class:ProviderContract/Title', 'SELECT ProviderContract', $oMyMenuNode->GetIndex(), 1 /* fRank */);
new OQLMenuNode('Menu:Class:CustomerContract/Name', 'Menu:Class:CustomerContract/Title', 'SELECT CustomerContract', $oMyMenuNode->GetIndex(), 2 /* fRank */);
new OQLMenuNode('Menu:Class:lnkProviderToCustomer/Name', 'Menu:Class:lnkProviderToCustomer/Title', 'SELECT lnkProviderToCustomer', $oMyMenuNode->GetIndex(), 3 /* fRank */);
new OQLMenuNode('Menu:Class:lnkContractToSLA/Name', 'Menu:Class:lnkContractToSLA/Title', 'SELECT lnkContractToSLA', $oMyMenuNode->GetIndex(), 4 /* fRank */);
new OQLMenuNode('Menu:Class:lnkContractToDoc/Name', 'Menu:Class:lnkContractToDoc/Title', 'SELECT lnkContractToDoc', $oMyMenuNode->GetIndex(), 5 /* fRank */);
new OQLMenuNode('Menu:Class:lnkContractToContact/Name', 'Menu:Class:lnkContractToContact/Title', 'SELECT lnkContractToContact', $oMyMenuNode->GetIndex(), 6 /* fRank */);
new OQLMenuNode('Menu:Class:lnkContractToCI/Name', 'Menu:Class:lnkContractToCI/Title', 'SELECT lnkContractToCI', $oMyMenuNode->GetIndex(), 7 /* fRank */);
new OQLMenuNode('Menu:Class:ServiceType/Name', 'Menu:Class:ServiceType/Title', 'SELECT ServiceType', $oMyMenuNode->GetIndex(), 8 /* fRank */);
new OQLMenuNode('Menu:Class:Service/Name', 'Menu:Class:Service/Title', 'SELECT Service', $oMyMenuNode->GetIndex(), 9 /* fRank */);
new OQLMenuNode('Menu:Class:SLA/Name', 'Menu:Class:SLA/Title', 'SELECT SLA', $oMyMenuNode->GetIndex(), 10 /* fRank */);
new OQLMenuNode('Menu:Class:ServiceLevel/Name', 'Menu:Class:ServiceLevel/Title', 'SELECT ServiceLevel', $oMyMenuNode->GetIndex(), 11 /* fRank */);
new OQLMenuNode('Menu:Class:lnkLevelToSLA/Name', 'Menu:Class:lnkLevelToSLA/Title', 'SELECT lnkLevelToSLA', $oMyMenuNode->GetIndex(), 12 /* fRank */);
$oAdminMenu = new MenuGroup('UI:AdminToolsMenu', 999);
$oAdminMenu = new MenuGroup('AdminTools', 999);
$iAdminGroup = $oAdminMenu->GetIndex();
new OQLMenuNode('Menu:Class:ServiceType/Name', 'Menu:Class:ServiceType/Title', 'SELECT ServiceType', $iAdminGroup, 20 /* fRank */);
new OQLMenuNode('ServiceType', 'SELECT ServiceType', $iAdminGroup, 25 /* fRank */);
$oServiceManagementGroup = new MenuGroup('Menu:ServiceManagement', 2 /* fRank */);
new OQLMenuNode('Menu:Class:ProviderContract/Name', 'Menu:Class:ProviderContract/Title', 'SELECT ProviderContract', $oServiceManagementGroup->GetIndex(), 1 /* fRank */);
new OQLMenuNode('Menu:Class:ProviderContract/Name', 'Menu:Class:ProviderContract/Title', 'SELECT ProviderContract', $oServiceManagementGroup->GetIndex(), 2 /* fRank */);
new OQLMenuNode('Menu:Class:ProviderContract/Name', 'Menu:Class:ProviderContract/Title', 'SELECT Service', $oServiceManagementGroup->GetIndex(), 3 /* fRank */);
new OQLMenuNode('Menu:Class:SLA/Name', 'Menu:Class:SLA/Title', 'SELECT SLA', $oServiceManagementGroup->GetIndex(), 4 /* fRank */);
new OQLMenuNode('Menu:Class:ServiceLevel/Name', 'Menu:Class:ServiceLevel/Title', 'SELECT ServiceLevel', $oServiceManagementGroup->GetIndex(), 5 /* fRank */);
$oServiceManagementGroup = new MenuGroup('ServiceManagement', 2 /* fRank */);
new OQLMenuNode('ProviderContract', 'SELECT ProviderContract', $oServiceManagementGroup->GetIndex(), 1 /* fRank */);
new OQLMenuNode('CustomerContract', 'SELECT CustomerContract', $oServiceManagementGroup->GetIndex(), 2 /* fRank */);
new OQLMenuNode('Service', 'SELECT Service', $oServiceManagementGroup->GetIndex(), 3 /* fRank */);
new OQLMenuNode('SLA', 'SELECT SLA', $oServiceManagementGroup->GetIndex(), 4 /* fRank */);
new OQLMenuNode('ServiceLevel', 'SELECT ServiceLevel', $oServiceManagementGroup->GetIndex(), 5 /* fRank */);
?>