diff --git a/application/itopwebpage.class.inc.php b/application/itopwebpage.class.inc.php index 57812ab5b..dc2e5e623 100644 --- a/application/itopwebpage.class.inc.php +++ b/application/itopwebpage.class.inc.php @@ -233,7 +233,7 @@ EOF $oWelcomeMenu = new MenuGroup('WelcomeMenu', 0 /* fRank */); new TemplateMenuNode('WelcomeMenuPage', '../business/templates/welcome_menu.html', $oWelcomeMenu->GetIndex() /* oParent */, 1 /* fRank */); - $oToolsMenu = new MenuGroup('AdvancedToolsMenu', 2 /* fRank */); + $oToolsMenu = new MenuGroup('DataAdministration', 2 /* fRank */); new WebPageMenuNode('CSVImportMenu', '../pages/csvimport.php', $oToolsMenu->GetIndex(), 1 /* fRank */); // Add the admin menus diff --git a/dictionaries/dictionary.itop.ui.php b/dictionaries/dictionary.itop.ui.php index ead83220d..9a7806ed8 100644 --- a/dictionaries/dictionary.itop.ui.php +++ b/dictionaries/dictionary.itop.ui.php @@ -758,8 +758,8 @@ When associated with a trigger, each action is given an "order" number, specifyi 'Menu:RunQueriesMenu' => 'Run Queries', 'Menu:RunQueriesMenu+' => 'Run any query', - 'Menu:AdvancedToolsMenu' => 'Tools', - 'Menu:AdvancedToolsMenu+' => 'Advanced tools', + 'Menu:DataAdministration' => 'Data administration', + 'Menu:DataAdministration+' => 'Data administration', 'Menu:UniversalSearchMenu' => 'Universal Search', 'Menu:UniversalSearchMenu+' => 'Search for anything...', diff --git a/dictionaries/fr.dictionary.itop.ui.php b/dictionaries/fr.dictionary.itop.ui.php index dd1c1e0dd..70b1641d8 100644 --- a/dictionaries/fr.dictionary.itop.ui.php +++ b/dictionaries/fr.dictionary.itop.ui.php @@ -764,8 +764,8 @@ Lors de l\'association à un déclencheur, on attribue à chaque action un numé 'Menu:RunQueriesMenu' => 'Requêtes OQL', 'Menu:RunQueriesMenu+' => 'Executer une requête OQL', - 'Menu:AdvancedToolsMenu' => 'Outils', - 'Menu:AdvancedToolsMenu+' => 'Outils Avancés', + 'Menu:DataAdministration' => 'Administration des données', + 'Menu:DataAdministration+' => 'Administration des données', 'Menu:UniversalSearchMenu' => 'Recherche Universelle', 'Menu:UniversalSearchMenu+' => 'Rechercher n\'importe quel objet...', diff --git a/modules/itop-config-mgmt-1.0.0/en.dict.itop-config-mgmt.php b/modules/itop-config-mgmt-1.0.0/en.dict.itop-config-mgmt.php index fa9932f67..03037422a 100644 --- a/modules/itop-config-mgmt-1.0.0/en.dict.itop-config-mgmt.php +++ b/modules/itop-config-mgmt-1.0.0/en.dict.itop-config-mgmt.php @@ -154,6 +154,8 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Contact/Attribute:contract_list+' => 'Contracts related to the contact', 'Class:Contact/Attribute:ticket_list' => 'Tickets', 'Class:Contact/Attribute:ticket_list+' => 'Tickets related to the contact', + 'Class:Contact/Attribute:team_list' => 'Teams', + 'Class:Contact/Attribute:team_list+' => 'Teams this contact belongs to', )); // @@ -176,6 +178,8 @@ Dict::Add('EN US', 'English', 'English', array( Dict::Add('EN US', 'English', 'English', array( 'Class:Team' => 'Team', 'Class:Team+' => '', + 'Class:Team/Attribute:member_list' => 'Members', + 'Class:Team/Attribute:member_list+' => 'Contacts that are part of the team', )); // @@ -314,6 +318,8 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Patch/Attribute:type/Value:security+' => '', 'Class:Patch/Attribute:type/Value:servicepack' => 'Service Pack', 'Class:Patch/Attribute:type/Value:servicepack+' => '', + 'Class:Patch/Attribute:ci_list' => 'Devices', + 'Class:Patch/Attribute:ci_list+' => 'Devices where the patch is installed', )); // @@ -327,6 +333,26 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Application/Attribute:name+' => '', 'Class:Application/Attribute:description' => 'Description', 'Class:Application/Attribute:description+' => '', + 'Class:Application/Attribute:instance_list' => 'Installations', + 'Class:Application/Attribute:instance_list+' => 'Instances of this application', +)); + +// +// Class: DBServer +// + +Dict::Add('EN US', 'English', 'English', array( + 'Class:DBServer' => 'Database', + 'Class:DBServer+' => 'Database server SW', +)); + +// +// Class: OperatingSystem +// + +Dict::Add('EN US', 'English', 'English', array( + 'Class:OperatingSystem' => 'OS', + 'Class:OperatingSystem+' => 'Operating System SW', )); // @@ -559,6 +585,10 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:PC/Attribute:os_family+' => '', 'Class:PC/Attribute:os_version' => 'OS Version', 'Class:PC/Attribute:os_version+' => '', + 'Class:PC/Attribute:application_list' => 'Applications', + 'Class:PC/Attribute:application_list+' => 'Applications installed on this server', + 'Class:PC/Attribute:patch_list' => 'Patches', + 'Class:PC/Attribute:patch_list+' => 'Patches installed on this server', )); // @@ -654,6 +684,10 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Server/Attribute:os_family+' => '', 'Class:Server/Attribute:os_version' => 'OS Version', 'Class:Server/Attribute:os_version+' => '', + 'Class:Server/Attribute:application_list' => 'Applications', + 'Class:Server/Attribute:application_list+' => 'Applications installed on this server', + 'Class:Server/Attribute:patch_list' => 'Patches', + 'Class:Server/Attribute:patch_list+' => 'Patches installed on this server', )); // @@ -784,12 +818,18 @@ Dict::Add('EN US', 'English', 'English', array( // Dict::Add('EN US', 'English', 'English', array( +'Menu:Catalogs' => 'Catalogs', +'Menu:Catalogs+' => 'Data types', 'Menu:Audit' => 'Audit', 'Menu:Audit+' => 'Audit', 'Menu:Organization' => 'Organizations', 'Menu:Organization+' => 'All Organizations', 'Menu:Application' => 'Applications', 'Menu:Application+' => 'All Applications', +'Menu:DBServer' => 'Database Servers', +'Menu:DBServer+' => 'Database Servers', +'Menu:OperatingSystem' => 'OS', +'Menu:OperatingSystem+' => 'Operating Systems', 'Menu:Audit' => 'Audit', 'Menu:ConfigManagement' => 'Configuration Management', 'Menu:ConfigManagement+' => 'Configuration Management', diff --git a/modules/itop-config-mgmt-1.0.0/model.itop-config-mgmt.php b/modules/itop-config-mgmt-1.0.0/model.itop-config-mgmt.php index ec870444e..2fc48fb04 100644 --- a/modules/itop-config-mgmt-1.0.0/model.itop-config-mgmt.php +++ b/modules/itop-config-mgmt-1.0.0/model.itop-config-mgmt.php @@ -124,8 +124,9 @@ abstract class Contact extends cmdbAbstractObject MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("contract_list", array("linked_class"=>"lnkContractToContact", "ext_key_to_me"=>"contact_id", "ext_key_to_remote"=>"contract_id", "allowed_values"=>null, "count_min"=>0, "count_max"=>0, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("ticket_list", array("linked_class"=>"lnkTicketToContact", "ext_key_to_me"=>"contact_id", "ext_key_to_remote"=>"ticket_id", "allowed_values"=>null, "count_min"=>0, "count_max"=>0, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("ci_list", array("linked_class"=>"lnkCIToContact", "ext_key_to_me"=>"contact_id", "ext_key_to_remote"=>"ci_id", "allowed_values"=>null, "count_min"=>0, "count_max"=>0, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("team_list", array("linked_class"=>"lnkTeamToContact", "ext_key_to_me"=>"contact_id", "ext_key_to_remote"=>"team_id", "allowed_values"=>null, "count_min"=>0, "count_max"=>0, "depends_on"=>array()))); - MetaModel::Init_SetZListItems('details', array('name', 'status', 'org_id', 'email', 'phone', 'location_id', 'contract_list', 'ticket_list', 'ci_list')); + MetaModel::Init_SetZListItems('details', array('name', 'status', 'org_id', 'email', 'phone', 'location_id', 'contract_list', 'ticket_list', 'ci_list', 'team_list')); MetaModel::Init_SetZListItems('advanced_search', array('name', 'status', 'org_id', 'email', 'phone', 'location_id')); MetaModel::Init_SetZListItems('standard_search', array('name', 'status', 'org_id', 'email', 'phone', 'location_id')); MetaModel::Init_SetZListItems('list', array('status', 'org_id', 'email', 'phone', 'location_id')); @@ -180,13 +181,45 @@ class Team extends Contact MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); + MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("member_list", array("linked_class"=>"lnkTeamToContact", "ext_key_to_me"=>"team_id", "ext_key_to_remote"=>"contact_id", "allowed_values"=>null, "count_min"=>0, "count_max"=>0, "depends_on"=>array()))); - MetaModel::Init_SetZListItems('details', array('name', 'status', 'org_id', 'email', 'phone', 'location_id', 'contract_list', 'ticket_list', 'ci_list')); + MetaModel::Init_SetZListItems('details', array('name', 'status', 'org_id', 'email', 'phone', 'location_id', 'contract_list', 'ticket_list', 'ci_list', 'member_list')); MetaModel::Init_SetZListItems('advanced_search', array('name', 'status', 'org_id', 'email', 'phone', 'location_id')); MetaModel::Init_SetZListItems('standard_search', array('name', 'status', 'org_id', 'email', 'phone', 'location_id')); MetaModel::Init_SetZListItems('list', array('status', 'org_id', 'email', 'phone', 'location_id')); } } +class lnkTeamToContact extends cmdbAbstractObject +{ + + public static function Init() + { + $aParams = array + ( + "category" => "bizmodel,searchable,structure", + "key_type" => "autoincrement", + "name_attcode" => "team_id", + "state_attcode" => "", + "reconc_keys" => array("name"), + "db_table" => "lnk", + "db_key_field" => "id", + "db_finalclass_field" => "", + "display_template" => "", + ); + MetaModel::Init_Params($aParams); + MetaModel::Init_InheritAttributes(); + + MetaModel::Init_AddAttribute(new AttributeExternalKey("team_id", array("targetclass"=>"Team", "jointype"=>null, "allowed_values"=>null, "sql"=>"team_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalField("team_name", array("allowed_values"=>null, "extkey_attcode"=>"team_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalKey("contact_id", array("targetclass"=>"Contact", "jointype"=>null, "allowed_values"=>null, "sql"=>"contact_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalField("contact_name", array("allowed_values"=>null, "extkey_attcode"=>"contact_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array()))); + + MetaModel::Init_SetZListItems('details', array('team_id', 'contact_id')); + MetaModel::Init_SetZListItems('advanced_search', array('team_id', 'contact_id')); + MetaModel::Init_SetZListItems('standard_search', array('team_id', 'contact_id')); + MetaModel::Init_SetZListItems('list', array('team_id', 'contact_id')); + } +} abstract class Document extends cmdbAbstractObject { @@ -459,8 +492,9 @@ class Patch extends cmdbAbstractObject MetaModel::Init_AddAttribute(new AttributeString("target_sw", array("allowed_values"=>null, "sql"=>"target_sw", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeString("version", array("allowed_values"=>null, "sql"=>"version", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeEnum("type", array("allowed_values"=>new ValueSetEnum('security,servicepack,fix'), "sql"=>"type", "default_value"=>"fix", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("ci_list", array("linked_class"=>"lnkPatchToCI", "ext_key_to_me"=>"patch_id", "ext_key_to_remote"=>"ci_id", "allowed_values"=>null, "count_min"=>0, "count_max"=>0, "depends_on"=>array()))); - MetaModel::Init_SetZListItems('details', array('name', 'target_sw', 'version', 'type')); + MetaModel::Init_SetZListItems('details', array('name', 'target_sw', 'version', 'type', 'ci_list')); MetaModel::Init_SetZListItems('advanced_search', array('name', 'target_sw', 'version', 'type')); MetaModel::Init_SetZListItems('standard_search', array('name', 'target_sw', 'version', 'type')); MetaModel::Init_SetZListItems('list', array('target_sw', 'version', 'type')); @@ -488,8 +522,63 @@ class Application extends cmdbAbstractObject MetaModel::Init_AddAttribute(new AttributeString("name", array("allowed_values"=>null, "sql"=>"name", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeWikiText("description", array("allowed_values"=>null, "sql"=>"description", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeLinkedSet("instance_list", array("linked_class"=>"ApplicationInstance", "ext_key_to_me"=>"application_id", "allowed_values"=>null, "count_min"=>0, "count_max"=>0, "depends_on"=>array()))); - MetaModel::Init_SetZListItems('details', array('name', 'description')); + MetaModel::Init_SetZListItems('details', array('name', 'description', 'instance_list')); + MetaModel::Init_SetZListItems('advanced_search', array('name', 'description')); + MetaModel::Init_SetZListItems('standard_search', array('name', 'description')); + MetaModel::Init_SetZListItems('list', array('description')); + } +} +class DBServer extends Application +{ + + public static function Init() + { + $aParams = array + ( + "category" => "bizmodel,searchable,configmgmt", + "key_type" => "autoincrement", + "name_attcode" => "name", + "state_attcode" => "", + "reconc_keys" => array("name"), + "db_table" => "application_db", + "db_key_field" => "id", + "db_finalclass_field" => "", + "icon" => "../business/templates/software.png", + ); + MetaModel::Init_Params($aParams); + MetaModel::Init_InheritAttributes(); + + MetaModel::Init_OverloadAttributeParams("instance_list", array("linked_class"=>"DatabaseInstance")); + + MetaModel::Init_SetZListItems('details', array('name', 'description', 'instance_list')); + MetaModel::Init_SetZListItems('advanced_search', array('name', 'description')); + MetaModel::Init_SetZListItems('standard_search', array('name', 'description')); + MetaModel::Init_SetZListItems('list', array('description')); + } +} +class OperatingSystem extends Application +{ + + public static function Init() + { + $aParams = array + ( + "category" => "bizmodel,searchable,configmgmt", + "key_type" => "autoincrement", + "name_attcode" => "name", + "state_attcode" => "", + "reconc_keys" => array("name"), + "db_table" => "application_os", + "db_key_field" => "id", + "db_finalclass_field" => "", + "icon" => "../business/templates/software.png", + ); + MetaModel::Init_Params($aParams); + MetaModel::Init_InheritAttributes(); + + MetaModel::Init_SetZListItems('details', array('name', 'description', 'instance_list')); MetaModel::Init_SetZListItems('advanced_search', array('name', 'description')); MetaModel::Init_SetZListItems('standard_search', array('name', 'description')); MetaModel::Init_SetZListItems('list', array('description')); @@ -618,7 +707,7 @@ class DatabaseInstance extends FunctionalCI MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeExternalKey("application_id", array("targetclass"=>"ApplicationInstance", "jointype"=>null, "allowed_values"=>null, "sql"=>"application_id", "is_null_allowed"=>true, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalKey("application_id", array("targetclass"=>"DBServer", "jointype"=>null, "allowed_values"=>null, "sql"=>"application_id", "is_null_allowed"=>true, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeExternalField("application_name", array("allowed_values"=>null, "extkey_attcode"=>"application_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributePassword("admin_login", array("allowed_values"=>null, "sql"=>"admin_login", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributePassword("admin_password", array("allowed_values"=>null, "sql"=>"admin_password", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); @@ -779,8 +868,6 @@ class Device extends ConnectableCI MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - //MetaModel::Init_AddAttribute(new AttributeLinkedSet("application_list", array("linked_class"=>"ApplicationInstance", "ext_key_to_me"=>"device_id", "allowed_values"=>null, "count_min"=>0, "count_max"=>0, "depends_on"=>array()))); - MetaModel::Init_SetZListItems('details', array('name', 'status', 'owner_id', 'importance', 'brand', 'model', 'serial_number', 'asset_ref', 'application_list')); MetaModel::Init_SetZListItems('advanced_search', array('name', 'status', 'owner_id', 'importance', 'brand', 'model', 'serial_number', 'asset_ref')); MetaModel::Init_SetZListItems('standard_search', array('name', 'status', 'owner_id', 'importance', 'brand', 'model', 'serial_number', 'asset_ref')); @@ -812,8 +899,10 @@ class PC extends Device MetaModel::Init_AddAttribute(new AttributeString("hdd", array("allowed_values"=>null, "sql"=>"hdd", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeString("os_family", array("allowed_values"=>null, "sql"=>"os_family", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeString("os_version", array("allowed_values"=>null, "sql"=>"os_version", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeLinkedSet("application_list", array("linked_class"=>"ApplicationInstance", "ext_key_to_me"=>"device_id", "allowed_values"=>null, "count_min"=>0, "count_max"=>0, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("patch_list", array("linked_class"=>"lnkPatchToCI", "ext_key_to_me"=>"ci_id", "ext_key_to_remote"=>"patch_id", "allowed_values"=>null, "count_min"=>0, "count_max"=>0, "depends_on"=>array()))); - MetaModel::Init_SetZListItems('details', array('name', 'status', 'owner_id', 'importance', 'brand', 'model', 'serial_number', 'asset_ref', 'cpu', 'ram', 'hdd', 'os_family', 'os_version')); + MetaModel::Init_SetZListItems('details', array('name', 'status', 'owner_id', 'importance', 'brand', 'model', 'serial_number', 'asset_ref', 'cpu', 'ram', 'hdd', 'os_family', 'os_version', 'application_list', 'patch_list')); MetaModel::Init_SetZListItems('advanced_search', array('name', 'status', 'owner_id', 'importance', 'brand', 'model', 'serial_number', 'asset_ref', 'cpu', 'ram', 'hdd', 'os_family', 'os_version')); MetaModel::Init_SetZListItems('standard_search', array('name', 'status', 'owner_id', 'importance', 'brand', 'model', 'serial_number', 'asset_ref', 'cpu', 'ram', 'hdd', 'os_family', 'os_version')); MetaModel::Init_SetZListItems('list', array('status', 'owner_id', 'importance', 'brand', 'model', 'serial_number', 'asset_ref', 'cpu', 'ram', 'hdd', 'os_family', 'os_version')); @@ -966,8 +1055,10 @@ class Server extends InfrastructureCI MetaModel::Init_AddAttribute(new AttributeString("hdd", array("allowed_values"=>null, "sql"=>"hdd", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeString("os_family", array("allowed_values"=>null, "sql"=>"os_family", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeString("os_version", array("allowed_values"=>null, "sql"=>"os_version", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeLinkedSet("application_list", array("linked_class"=>"ApplicationInstance", "ext_key_to_me"=>"device_id", "allowed_values"=>null, "count_min"=>0, "count_max"=>0, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("patch_list", array("linked_class"=>"lnkPatchToCI", "ext_key_to_me"=>"ci_id", "ext_key_to_remote"=>"patch_id", "allowed_values"=>null, "count_min"=>0, "count_max"=>0, "depends_on"=>array()))); - MetaModel::Init_SetZListItems('details', array('name', 'status', 'owner_id', 'importance', 'brand', 'model', 'serial_number', 'asset_ref', 'description', 'location_id', 'location_details', 'management_ip', 'default_gateway', 'cpu', 'ram', 'hdd', 'os_family', 'os_version')); + MetaModel::Init_SetZListItems('details', array('name', 'status', 'owner_id', 'importance', 'brand', 'model', 'serial_number', 'asset_ref', 'description', 'location_id', 'location_details', 'management_ip', 'default_gateway', 'cpu', 'ram', 'hdd', 'os_family', 'os_version', 'application_list', 'patch_list')); MetaModel::Init_SetZListItems('advanced_search', array('name', 'status', 'owner_id', 'importance', 'brand', 'model', 'serial_number', 'asset_ref', 'description', 'location_id', 'location_details', 'management_ip', 'default_gateway', 'cpu', 'ram', 'hdd', 'os_family', 'os_version')); MetaModel::Init_SetZListItems('standard_search', array('name', 'status', 'owner_id', 'importance', 'brand', 'model', 'serial_number', 'asset_ref', 'description', 'location_id', 'location_details', 'management_ip', 'default_gateway', 'cpu', 'ram', 'hdd', 'os_family', 'os_version')); MetaModel::Init_SetZListItems('list', array('status', 'owner_id', 'importance', 'brand', 'model', 'serial_number', 'asset_ref', 'description', 'location_id', 'location_details', 'management_ip', 'default_gateway', 'cpu', 'ram', 'hdd', 'os_family', 'os_version')); @@ -1149,14 +1240,17 @@ 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('AdminTools', 999); +$oAdminMenu = new MenuGroup('DataAdministration', 999); $iAdminGroup = $oAdminMenu->GetIndex(); -new OQLMenuNode('Organization', 'SELECT Organization', $iAdminGroup, 10 /* fRank */); -new OQLMenuNode('Application', 'SELECT Application', $iAdminGroup, 20 /* fRank */); -$oToolsMenu = new MenuGroup('AdvancedToolsMenu', 998); -$iToolsGroup = $oToolsMenu->GetIndex(); -new WebPageMenuNode('Audit', '../pages/audit.php', $iToolsGroup, 33 /* fRank */); +new WebPageMenuNode('Audit', '../pages/audit.php', $iAdminGroup, 33 /* fRank */); + +$oTypologyNode = new TemplateMenuNode('Catalogs', '', $iAdminGroup, 50 /* fRank */); +$iTopology = $oTypologyNode->GetIndex(); +new OQLMenuNode('Organization', 'SELECT Organization', $iTopology, 10 /* fRank */); +new OQLMenuNode('Application', 'SELECT Application', $iTopology, 20 /* fRank */); +new OQLMenuNode('OperatingSystem', 'SELECT OperatingSystem', $iTopology, 30 /* fRank */); +new OQLMenuNode('DBServer', 'SELECT DBServer', $iTopology, 40 /* fRank */); $oConfigManagementGroup = new MenuGroup('ConfigManagement', 1 /* fRank */); diff --git a/modules/itop-service-mgmt-1.0.0/model.itop-service-mgmt.php b/modules/itop-service-mgmt-1.0.0/model.itop-service-mgmt.php index 6d2f85fc8..38b8bb555 100644 --- a/modules/itop-service-mgmt-1.0.0/model.itop-service-mgmt.php +++ b/modules/itop-service-mgmt-1.0.0/model.itop-service-mgmt.php @@ -1,5 +1,6 @@ null, "sql"=>"name", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeEnum("status", array("allowed_values"=>new ValueSetEnum('draft,agreed,running'), "sql"=>"status", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeString("description", array("allowed_values"=>null, "sql"=>"description", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeDate("signed", array("allowed_values"=>null, "sql"=>"signed", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeDate("begin", array("allowed_values"=>null, "sql"=>"begin", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeDate("end", array("allowed_values"=>null, "sql"=>"end", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeDate("start_date", array("allowed_values"=>null, "sql"=>"start_date", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeDate("end_date", array("allowed_values"=>null, "sql"=>"end_date", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeInteger("cost", array("allowed_values"=>null, "sql"=>"cost", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeEnum("cost_currency", array("allowed_values"=>new ValueSetEnum('dollars,euros'), "sql"=>"cost_currency", "default_value"=>"euros", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeString("cost_unit", array("allowed_values"=>null, "sql"=>"cost_unit", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); @@ -34,10 +33,10 @@ abstract class Contract extends cmdbAbstractObject MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("document_list", array("linked_class"=>"lnkContractToDoc", "ext_key_to_me"=>"contract_id", "ext_key_to_remote"=>"document_id", "allowed_values"=>null, "count_min"=>0, "count_max"=>0, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("ci_list", array("linked_class"=>"lnkContractToCI", "ext_key_to_me"=>"contract_id", "ext_key_to_remote"=>"ci_id", "allowed_values"=>null, "count_min"=>0, "count_max"=>0, "depends_on"=>array()))); - MetaModel::Init_SetZListItems('details', array('name', 'status', 'description', 'signed', 'begin', 'end', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency', 'contact_list', 'document_list', 'ci_list')); - MetaModel::Init_SetZListItems('advanced_search', array('name', 'status', 'description', 'signed', 'begin', 'end', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency')); - MetaModel::Init_SetZListItems('standard_search', array('name', 'status', 'description', 'signed', 'begin', 'end', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency')); - MetaModel::Init_SetZListItems('list', array('name', 'status', 'description', 'signed', 'begin', 'end', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency')); + MetaModel::Init_SetZListItems('details', array('name', 'description', 'start_date', 'end_date', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency', 'contact_list', 'document_list', 'ci_list')); + MetaModel::Init_SetZListItems('advanced_search', array('name', 'description', 'start_date', 'end_date', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency')); + MetaModel::Init_SetZListItems('standard_search', array('name', 'description', 'start_date', 'end_date', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency')); + MetaModel::Init_SetZListItems('list', array('name', 'description', 'start_date', 'end_date', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency')); } } class ProviderContract extends Contract @@ -60,18 +59,16 @@ class ProviderContract extends Contract MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeEnum("type", array("allowed_values"=>new ValueSetEnum('a,b,c'), "sql"=>"type", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeExternalKey("provider_id", array("targetclass"=>"Organization", "jointype"=>null, "allowed_values"=>null, "sql"=>"provider_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeExternalField("provider_name", array("allowed_values"=>null, "extkey_attcode"=>"provider_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeString("ola", array("allowed_values"=>null, "sql"=>"ola", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeString("coverage", array("allowed_values"=>null, "sql"=>"coverage", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("customer_list", array("linked_class"=>"lnkProviderToCustomer", "ext_key_to_me"=>"provider_id", "ext_key_to_remote"=>"customer_id", "allowed_values"=>null, "count_min"=>0, "count_max"=>0, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("sla_list", array("linked_class"=>"lnkContractToSLA", "ext_key_to_me"=>"contract_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', 'status', 'description', 'signed', 'begin', 'end', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency', 'contact_list', 'document_list', 'ci_list', 'type', 'provider_id', 'ola', 'coverage', 'customer_list', 'sla_list')); - MetaModel::Init_SetZListItems('advanced_search', array('name', 'status', 'description', 'signed', 'begin', 'end', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency', 'type', 'provider_id', 'ola', 'coverage')); - MetaModel::Init_SetZListItems('standard_search', array('name', 'status', 'description', 'signed', 'begin', 'end', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency', 'type', 'provider_id', 'ola', 'coverage')); - MetaModel::Init_SetZListItems('list', array('name', 'status', 'description', 'signed', 'begin', 'end', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency', 'type', 'provider_id', 'ola', 'coverage')); + MetaModel::Init_SetZListItems('details', array('name', 'description', 'start_date', 'end_date', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency', 'contact_list', 'document_list', 'ci_list', 'provider_id', 'ola', 'coverage', 'customer_list')); + MetaModel::Init_SetZListItems('advanced_search', array('name', 'description', 'start_date', 'end_date', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency', 'provider_id', 'ola', 'coverage')); + MetaModel::Init_SetZListItems('standard_search', array('name', 'description', 'start_date', 'end_date', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency', 'provider_id', 'ola', 'coverage')); + MetaModel::Init_SetZListItems('list', array('name', 'description', 'start_date', 'end_date', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency', 'provider_id', 'ola', 'coverage')); } } class CustomerContract extends Contract @@ -94,15 +91,17 @@ class CustomerContract extends Contract MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeEnum("type", array("allowed_values"=>new ValueSetEnum('x,y,z'), "sql"=>"type", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeExternalKey("customer_id", array("targetclass"=>"Organization", "jointype"=>null, "allowed_values"=>null, "sql"=>"customer_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeExternalField("customer_name", array("allowed_values"=>null, "extkey_attcode"=>"customer_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalKey("support_team_id", array("targetclass"=>"Team", "jointype"=>null, "allowed_values"=>null, "sql"=>"support_team_id", "is_null_allowed"=>true, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalField("support_team_name", array("allowed_values"=>null, "extkey_attcode"=>"support_team_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("provider_list", array("linked_class"=>"lnkProviderToCustomer", "ext_key_to_me"=>"customer_id", "ext_key_to_remote"=>"provider_id", "allowed_values"=>null, "count_min"=>0, "count_max"=>0, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("sla_list", array("linked_class"=>"lnkContractToSLA", "ext_key_to_me"=>"contract_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', 'status', 'description', 'signed', 'begin', 'end', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency', 'contact_list', 'document_list', 'ci_list', 'type', 'customer_id', 'provider_list')); - MetaModel::Init_SetZListItems('advanced_search', array('name', 'status', 'description', 'signed', 'begin', 'end', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency', 'type', 'customer_id')); - MetaModel::Init_SetZListItems('standard_search', array('name', 'status', 'description', 'signed', 'begin', 'end', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency', 'type', 'customer_id')); - MetaModel::Init_SetZListItems('list', array('name', 'status', 'description', 'signed', 'begin', 'end', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency', 'type', 'customer_id')); + MetaModel::Init_SetZListItems('details', array('name', 'description', 'start_date', 'end_date', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency', 'contact_list', 'document_list', 'ci_list', 'customer_id', 'support_team_id', 'provider_list', 'sla_list')); + MetaModel::Init_SetZListItems('advanced_search', array('name', 'description', 'start_date', 'end_date', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency', 'customer_id', 'support_team_id')); + MetaModel::Init_SetZListItems('standard_search', array('name', 'description', 'start_date', 'end_date', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency', 'customer_id', 'support_team_id')); + MetaModel::Init_SetZListItems('list', array('name', 'description', 'start_date', 'end_date', 'cost', 'cost_currency', 'cost_unit', 'billing_frequency', 'customer_id', 'support_team_id')); } } class lnkProviderToCustomer extends cmdbAbstractObject @@ -156,7 +155,7 @@ class lnkContractToSLA extends cmdbAbstractObject MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeExternalKey("contract_id", array("targetclass"=>"Contract", "jointype"=>null, "allowed_values"=>null, "sql"=>"contract_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalKey("contract_id", array("targetclass"=>"CustomerContract", "jointype"=>null, "allowed_values"=>null, "sql"=>"contract_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeExternalField("contract_name", array("allowed_values"=>null, "extkey_attcode"=>"contract_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeExternalKey("sla_id", array("targetclass"=>"SLA", "jointype"=>null, "allowed_values"=>null, "sql"=>"sla_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); 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()))); @@ -265,7 +264,7 @@ class lnkContractToCI extends cmdbAbstractObject MetaModel::Init_SetZListItems('list', array('contract_id', 'ci_id', 'ci_status')); } } -class ServiceType extends cmdbAbstractObject +class Service extends cmdbAbstractObject { public static function Init() @@ -277,7 +276,7 @@ class ServiceType extends cmdbAbstractObject "name_attcode" => "name", "state_attcode" => "", "reconc_keys" => array("name"), - "db_table" => "servicetype", + "db_table" => "service", "db_key_field" => "id", "db_finalclass_field" => "", "display_template" => "", @@ -287,14 +286,18 @@ class ServiceType extends cmdbAbstractObject MetaModel::Init_AddAttribute(new AttributeString("name", array("allowed_values"=>null, "sql"=>"name", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeString("description", array("allowed_values"=>null, "sql"=>"description", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeEnum("type", array("allowed_values"=>new ValueSetEnum('RequestManagement,IncidentManagement'), "sql"=>"type", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeEnum("status", array("allowed_values"=>new ValueSetEnum('design,production,obsolete'), "sql"=>"status", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeLinkedSet("subcategory_list", array("linked_class"=>"ServiceSubcategory", "ext_key_to_me"=>"service_id", "allowed_values"=>null, "count_min"=>0, "count_max"=>0, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeLinkedSet("sla_list", array("linked_class"=>"SLA", "ext_key_to_me"=>"service_id", "allowed_values"=>null, "count_min"=>0, "count_max"=>0, "depends_on"=>array()))); - MetaModel::Init_SetZListItems('details', array('name', 'description')); - MetaModel::Init_SetZListItems('advanced_search', array('name', 'description')); - MetaModel::Init_SetZListItems('standard_search', array('name', 'description')); - MetaModel::Init_SetZListItems('list', array('name', 'description')); + MetaModel::Init_SetZListItems('details', array('name', 'description', 'type', 'status', 'subcategory_list', 'sla_list')); + MetaModel::Init_SetZListItems('advanced_search', array('name', 'description', 'type', 'status')); + MetaModel::Init_SetZListItems('standard_search', array('name', 'description', 'type', 'status')); + MetaModel::Init_SetZListItems('list', array('name', 'description', 'type', 'status')); } } -class Service extends cmdbAbstractObject +class ServiceSubcategory extends cmdbAbstractObject { public static function Init() @@ -303,10 +306,10 @@ class Service extends cmdbAbstractObject ( "category" => "bizmodel,searchable,servicemgmt", "key_type" => "autoincrement", - "name_attcode" => "servicetype_id", + "name_attcode" => "name", "state_attcode" => "", "reconc_keys" => array("name"), - "db_table" => "service", + "db_table" => "servicesubcategory", "db_key_field" => "id", "db_finalclass_field" => "", "display_template" => "", @@ -314,13 +317,15 @@ class Service extends cmdbAbstractObject MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeExternalKey("servicetype_id", array("targetclass"=>"ServiceType", "jointype"=>null, "allowed_values"=>null, "sql"=>"servicetype_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeExternalField("servicetype_name", array("allowed_values"=>null, "extkey_attcode"=>"servicetype_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeString("name", array("allowed_values"=>null, "sql"=>"name", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeString("description", array("allowed_values"=>null, "sql"=>"description", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalKey("service_id", array("targetclass"=>"Service", "jointype"=>null, "allowed_values"=>null, "sql"=>"service_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalField("service_name", array("allowed_values"=>null, "extkey_attcode"=>"service_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_SetZListItems('details', array('servicetype_id')); - MetaModel::Init_SetZListItems('advanced_search', array('servicetype_id')); - MetaModel::Init_SetZListItems('standard_search', array('servicetype_id')); - MetaModel::Init_SetZListItems('list', array('servicetype_id')); + MetaModel::Init_SetZListItems('details', array('name', 'description', 'service_id')); + MetaModel::Init_SetZListItems('advanced_search', array('name', 'description', 'service_id')); + MetaModel::Init_SetZListItems('standard_search', array('name', 'description', 'service_id')); + MetaModel::Init_SetZListItems('list', array('name', 'description', 'service_id')); } } class SLA extends cmdbAbstractObject @@ -344,16 +349,17 @@ class SLA extends cmdbAbstractObject MetaModel::Init_InheritAttributes(); MetaModel::Init_AddAttribute(new AttributeString("name", array("allowed_values"=>null, "sql"=>"name", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeExternalKey("service_id", array("targetclass"=>"Service", "jointype"=>null, "allowed_values"=>null, "sql"=>"service_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("levels_list", array("linked_class"=>"lnkLevelToSLA", "ext_key_to_me"=>"sla_id", "ext_key_to_remote"=>"servicelevel_id", "allowed_values"=>null, "count_min"=>0, "count_max"=>0, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalKey("service_id", array("targetclass"=>"Service", "jointype"=>null, "allowed_values"=>null, "sql"=>"service_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalField("service_name", array("allowed_values"=>null, "extkey_attcode"=>"service_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("slt_list", array("linked_class"=>"lnkSLTToSLA", "ext_key_to_me"=>"sla_id", "ext_key_to_remote"=>"slt_id", "allowed_values"=>null, "count_min"=>0, "count_max"=>0, "depends_on"=>array()))); - MetaModel::Init_SetZListItems('details', array('name', 'service_id', 'levels_list')); + MetaModel::Init_SetZListItems('details', array('name', 'service_id', 'slt_list')); MetaModel::Init_SetZListItems('advanced_search', array('name', 'service_id')); MetaModel::Init_SetZListItems('standard_search', array('name', 'service_id')); MetaModel::Init_SetZListItems('list', array('name', 'service_id')); } } -class ServiceLevel extends cmdbAbstractObject +class SLT extends cmdbAbstractObject { public static function Init() @@ -365,7 +371,7 @@ class ServiceLevel extends cmdbAbstractObject "name_attcode" => "name", "state_attcode" => "", "reconc_keys" => array("name"), - "db_table" => "servicelevel", + "db_table" => "slt", "db_key_field" => "id", "db_finalclass_field" => "", "display_template" => "", @@ -375,19 +381,18 @@ class ServiceLevel extends cmdbAbstractObject MetaModel::Init_AddAttribute(new AttributeString("name", array("allowed_values"=>null, "sql"=>"name", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeEnum("metric", array("allowed_values"=>new ValueSetEnum('TTO,TTR'), "sql"=>"metric", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); - 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 AttributeEnum("ticket_priority", array("allowed_values"=>new ValueSetEnum('1,2,3'), "sql"=>"ticket_priority", "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_AddAttribute(new AttributeEnum("value_unit", array("allowed_values"=>new ValueSetEnum('days,hours,minutes'), "sql"=>"value_unit", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("sla_list", array("linked_class"=>"lnkSLTToSLA", "ext_key_to_me"=>"slt_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', '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')); + MetaModel::Init_SetZListItems('details', array('name', 'metric', 'ticket_priority', 'value', 'value_unit', 'sla_list')); + MetaModel::Init_SetZListItems('advanced_search', array('name', 'metric', 'ticket_priority', 'value', 'value_unit')); + MetaModel::Init_SetZListItems('standard_search', array('name', 'metric', 'ticket_priority', 'value', 'value_unit')); + MetaModel::Init_SetZListItems('list', array('name', 'metric', 'ticket_priority', 'value', 'value_unit')); } } -class lnkLevelToSLA extends cmdbAbstractObject +class lnkSLTToSLA extends cmdbAbstractObject { public static function Init() @@ -399,7 +404,7 @@ class lnkLevelToSLA extends cmdbAbstractObject "name_attcode" => "sla_id", "state_attcode" => "", "reconc_keys" => array("name"), - "db_table" => "lnkleveltosla", + "db_table" => "lnkslttosla", "db_key_field" => "id", "db_finalclass_field" => "", "display_template" => "", @@ -409,18 +414,121 @@ class lnkLevelToSLA extends cmdbAbstractObject MetaModel::Init_AddAttribute(new AttributeExternalKey("sla_id", array("targetclass"=>"SLA", "jointype"=>null, "allowed_values"=>null, "sql"=>"sla_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); 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_AddAttribute(new AttributeExternalKey("slt_id", array("targetclass"=>"SLT", "jointype"=>null, "allowed_values"=>null, "sql"=>"slt_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalField("slt_name", array("allowed_values"=>null, "extkey_attcode"=>"slt_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalField("slt_metric", array("allowed_values"=>null, "extkey_attcode"=>"slt_id", "target_attcode"=>"metric", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalField("slt_value", array("allowed_values"=>null, "extkey_attcode"=>"slt_id", "target_attcode"=>"value", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalField("slt_value_unit", array("allowed_values"=>null, "extkey_attcode"=>"slt_id", "target_attcode"=>"value_unit", "is_null_allowed"=>true, "depends_on"=>array()))); - 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')); + MetaModel::Init_SetZListItems('details', array('sla_id', 'slt_id', 'slt_metric', 'slt_value', 'slt_value_unit')); + MetaModel::Init_SetZListItems('advanced_search', array('sla_id', 'slt_id', 'slt_metric', 'slt_value', 'slt_value_unit')); + MetaModel::Init_SetZListItems('standard_search', array('sla_id', 'slt_id', 'slt_metric', 'slt_value', 'slt_value_unit')); + MetaModel::Init_SetZListItems('list', array('sla_id', 'slt_id', 'slt_metric', 'slt_value', 'slt_value_unit')); } } +class lnkServiceToDoc extends cmdbAbstractObject +{ + + public static function Init() + { + $aParams = array + ( + "category" => "bizmodel,searchable,servicemgmt", + "key_type" => "autoincrement", + "name_attcode" => "service_id", + "state_attcode" => "", + "reconc_keys" => array("name"), + "db_table" => "lnkservicetodoc", + "db_key_field" => "id", + "db_finalclass_field" => "", + "display_template" => "", + ); + MetaModel::Init_Params($aParams); + MetaModel::Init_InheritAttributes(); + + MetaModel::Init_AddAttribute(new AttributeExternalKey("service_id", array("targetclass"=>"Service", "jointype"=>null, "allowed_values"=>null, "sql"=>"service_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalField("service_name", array("allowed_values"=>null, "extkey_attcode"=>"service_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalKey("document_id", array("targetclass"=>"Document", "jointype"=>null, "allowed_values"=>null, "sql"=>"document_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalField("document_name", array("allowed_values"=>null, "extkey_attcode"=>"document_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalField("document_type", array("allowed_values"=>null, "extkey_attcode"=>"document_id", "target_attcode"=>"type", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalField("document_status", array("allowed_values"=>null, "extkey_attcode"=>"document_id", "target_attcode"=>"status", "is_null_allowed"=>true, "depends_on"=>array()))); + + MetaModel::Init_SetZListItems('details', array('service_id', 'document_id', 'document_type', 'document_status')); + MetaModel::Init_SetZListItems('advanced_search', array('service_id', 'document_id', 'document_type', 'document_status')); + MetaModel::Init_SetZListItems('standard_search', array('service_id', 'document_id', 'document_type', 'document_status')); + MetaModel::Init_SetZListItems('list', array('service_id', 'document_id', 'document_type', 'document_status')); + } +} +class lnkServiceToContact extends cmdbAbstractObject +{ + + public static function Init() + { + $aParams = array + ( + "category" => "bizmodel,searchable,servicemgmt", + "key_type" => "autoincrement", + "name_attcode" => "service_id", + "state_attcode" => "", + "reconc_keys" => array("name"), + "db_table" => "lnkservicetocontact", + "db_key_field" => "id", + "db_finalclass_field" => "", + "display_template" => "", + ); + MetaModel::Init_Params($aParams); + MetaModel::Init_InheritAttributes(); + + MetaModel::Init_AddAttribute(new AttributeExternalKey("service_id", array("targetclass"=>"Service", "jointype"=>null, "allowed_values"=>null, "sql"=>"service_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalField("service_name", array("allowed_values"=>null, "extkey_attcode"=>"service_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalKey("contact_id", array("targetclass"=>"Contact", "jointype"=>null, "allowed_values"=>null, "sql"=>"contact_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalField("contact_name", array("allowed_values"=>null, "extkey_attcode"=>"contact_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalField("contact_email", array("allowed_values"=>null, "extkey_attcode"=>"contact_id", "target_attcode"=>"email", "is_null_allowed"=>true, "depends_on"=>array()))); + + MetaModel::Init_SetZListItems('details', array('service_id', 'contact_id', 'contact_email')); + MetaModel::Init_SetZListItems('advanced_search', array('service_id', 'contact_id', 'contact_email')); + MetaModel::Init_SetZListItems('standard_search', array('service_id', 'contact_id', 'contact_email')); + MetaModel::Init_SetZListItems('list', array('service_id', 'contact_id', 'contact_email')); + } +} +class lnkServiceToCI extends cmdbAbstractObject +{ + + public static function Init() + { + $aParams = array + ( + "category" => "bizmodel,searchable,servicemgmt", + "key_type" => "autoincrement", + "name_attcode" => "service_id", + "state_attcode" => "", + "reconc_keys" => array("name"), + "db_table" => "lnkservicetoci", + "db_key_field" => "id", + "db_finalclass_field" => "", + "display_template" => "", + ); + MetaModel::Init_Params($aParams); + MetaModel::Init_InheritAttributes(); + + MetaModel::Init_AddAttribute(new AttributeExternalKey("service_id", array("targetclass"=>"Service", "jointype"=>null, "allowed_values"=>null, "sql"=>"service_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalField("service_name", array("allowed_values"=>null, "extkey_attcode"=>"service_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalKey("ci_id", array("targetclass"=>"FunctionalCI", "jointype"=>null, "allowed_values"=>null, "sql"=>"ci_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalField("ci_name", array("allowed_values"=>null, "extkey_attcode"=>"ci_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalField("ci_status", array("allowed_values"=>null, "extkey_attcode"=>"ci_id", "target_attcode"=>"status", "is_null_allowed"=>true, "depends_on"=>array()))); + + MetaModel::Init_SetZListItems('details', array('service_id', 'ci_id', 'ci_status')); + MetaModel::Init_SetZListItems('advanced_search', array('service_id', 'ci_id', 'ci_status')); + MetaModel::Init_SetZListItems('standard_search', array('service_id', 'ci_id', 'ci_status')); + MetaModel::Init_SetZListItems('list', array('service_id', 'ci_id', 'ci_status')); + } +} + + + + + + ////////////////////////////////////////////////////////////////////////////// // Menu: // +----------------------------------------+ @@ -433,7 +541,7 @@ class lnkLevelToSLA extends cmdbAbstractObject $oAdminMenu = new MenuGroup('AdminTools', 999); $iAdminGroup = $oAdminMenu->GetIndex(); -new OQLMenuNode('ServiceType', 'SELECT ServiceType', $iAdminGroup, 25 /* fRank */); +//new OQLMenuNode('ServiceType', 'SELECT ServiceType', $iAdminGroup, 25 /* fRank */); $oServiceManagementGroup = new MenuGroup('ServiceManagement', 2 /* fRank */); @@ -443,7 +551,8 @@ $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('ServiceSubcategory', 'SELECT ServiceSubcategory', $oServiceManagementGroup->GetIndex(), 3 /* fRank */); new OQLMenuNode('SLA', 'SELECT SLA', $oServiceManagementGroup->GetIndex(), 4 /* fRank */); -new OQLMenuNode('ServiceLevel', 'SELECT ServiceLevel', $oServiceManagementGroup->GetIndex(), 5 /* fRank */); +new OQLMenuNode('SLT', 'SELECT SLT', $oServiceManagementGroup->GetIndex(), 5 /* fRank */); ?>