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 150ae41f7..006e24930 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 @@ -131,6 +131,60 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Location/Attribute:infra_list' => 'Infrastructure', 'Class:Location/Attribute:infra_list+' => 'CIs located on this site', )); +// +// Class: Group +// + +Dict::Add('EN US', 'English', 'English', array( + 'Class:Group' => 'Group', + 'Class:Group+' => '', + 'Class:Group/Attribute:name' => 'Name', + 'Class:Group/Attribute:name+' => '', + 'Class:Group/Attribute:status' => 'Status', + 'Class:Group/Attribute:status+' => '', + 'Class:Group/Attribute:status/Value:implementation' => 'Implementation', + 'Class:Group/Attribute:status/Value:implementation+' => 'Implementation', + 'Class:Group/Attribute:status/Value:obsolete' => 'Obsolete', + 'Class:Group/Attribute:status/Value:obsolete+' => 'Obsolete', + 'Class:Group/Attribute:status/Value:production' => 'Production', + 'Class:Group/Attribute:status/Value:production+' => 'Production', + 'Class:Group/Attribute:org_id' => 'Organization', + 'Class:Group/Attribute:org_id+' => '', + 'Class:Group/Attribute:owner_name' => 'Name', + 'Class:Group/Attribute:owner_name+' => 'Common name', + 'Class:Group/Attribute:description' => 'Description', + 'Class:Group/Attribute:description+' => '', + 'Class:Group/Attribute:type' => 'Type', + 'Class:Group/Attribute:type+' => '', + 'Class:Group/Attribute:parent_id' => 'Parent Group', + 'Class:Group/Attribute:parent_id+' => '', + 'Class:Group/Attribute:parent_name' => 'Name', + 'Class:Group/Attribute:parent_name+' => '', + 'Class:Group/Attribute:ci_list' => 'Linked CIs', + 'Class:Group/Attribute:ci_list+' => '', +)); + +// +// Class: lnkGroupToCI +// + +Dict::Add('EN US', 'English', 'English', array( + 'Class:lnkGroupToCI' => 'Group / CI', + 'Class:lnkGroupToCI+' => '', + 'Class:lnkGroupToCI/Attribute:group_id' => 'Group', + 'Class:lnkGroupToCI/Attribute:group_id+' => '', + 'Class:lnkGroupToCI/Attribute:group_name' => 'Name', + 'Class:lnkGroupToCI/Attribute:group_name+' => '', + 'Class:lnkGroupToCI/Attribute:ci_id' => 'CI', + 'Class:lnkGroupToCI/Attribute:ci_id+' => '', + 'Class:lnkGroupToCI/Attribute:ci_name' => 'Name', + 'Class:lnkGroupToCI/Attribute:ci_name+' => '', + 'Class:lnkGroupToCI/Attribute:ci_status' => 'CI Status', + 'Class:lnkGroupToCI/Attribute:ci_status+' => '', + 'Class:lnkGroupToCI/Attribute:reason' => 'Reason', + 'Class:lnkGroupToCI/Attribute:reason+' => '', +)); + // // Class: Contact @@ -991,6 +1045,8 @@ Dict::Add('EN US', 'English', 'English', array( 'Menu:ConfigManagement:AllDevices' => 'Number of devices: %1$d', 'Menu:ConfigManagement:SWAndApps' => 'Software and Applications', 'Menu:ConfigManagement:Misc' => 'Miscellaneous', +'Menu:Group' => 'Groups of CIs', +'Menu:Group+' => 'Groups of CIs', )); ?> diff --git a/modules/itop-config-mgmt-1.0.0/es_cr.dict.itop-config-mgmt.php b/modules/itop-config-mgmt-1.0.0/es_cr.dict.itop-config-mgmt.php index 1a5b25342..d082b789e 100644 --- a/modules/itop-config-mgmt-1.0.0/es_cr.dict.itop-config-mgmt.php +++ b/modules/itop-config-mgmt-1.0.0/es_cr.dict.itop-config-mgmt.php @@ -131,6 +131,59 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Location/Attribute:infra_list' => 'Infraestructura', 'Class:Location/Attribute:infra_list+' => 'Ítem Configurados (CI) ubicados en este sitio', )); +// +// Class: Group +// + +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( + 'Class:Group' => 'Grupo', + 'Class:Group+' => '', + 'Class:Group/Attribute:name' => 'Nombre', + 'Class:Group/Attribute:name+' => '', + 'Class:Group/Attribute:status' => 'Estado', + 'Class:Group/Attribute:status+' => '', + 'Class:Group/Attribute:status/Value:implementation' => 'Implementación', + 'Class:Group/Attribute:status/Value:implementation+' => 'Implementación', + 'Class:Group/Attribute:status/Value:obsolete' => 'Obsoleto', + 'Class:Group/Attribute:status/Value:obsolete+' => 'Obsoleto', + 'Class:Group/Attribute:status/Value:production' => 'Producción', + 'Class:Group/Attribute:status/Value:production+' => 'Producción', + 'Class:Group/Attribute:org_id' => 'Organización propietaria', + 'Class:Group/Attribute:org_id+' => '', + 'Class:Group/Attribute:owner_name' => 'Nombre de la Organización propietaria', + 'Class:Group/Attribute:owner_name+' => 'Organización propietaria', + 'Class:Group/Attribute:description' => 'Descripción', + 'Class:Group/Attribute:description+' => '', + 'Class:Group/Attribute:type' => 'Tipo', + 'Class:Group/Attribute:type+' => '', + 'Class:Group/Attribute:parent_id' => 'Padre', + 'Class:Group/Attribute:parent_id+' => '', + 'Class:Group/Attribute:parent_name' => 'Grupo padre', + 'Class:Group/Attribute:parent_name+' => '', + 'Class:Group/Attribute:ci_list' => 'I.C.s', + 'Class:Group/Attribute:ci_list+' => 'Ítems Configurados relacionados con el grupo', +)); + +// +// Class: lnkGroupToCI +// + +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( + 'Class:lnkGroupToCI' => 'Grupo I.C', + 'Class:lnkGroupToCI+' => '', + 'Class:lnkGroupToCI/Attribute:group_id' => 'Grupo', + 'Class:lnkGroupToCI/Attribute:group_id+' => '', + 'Class:lnkGroupToCI/Attribute:group_name' => 'Nombre', + 'Class:lnkGroupToCI/Attribute:group_name+' => '', + 'Class:lnkGroupToCI/Attribute:ci_id' => 'I.C', + 'Class:lnkGroupToCI/Attribute:ci_id+' => '', + 'Class:lnkGroupToCI/Attribute:ci_name' => 'Nombre', + 'Class:lnkGroupToCI/Attribute:ci_name+' => '', + 'Class:lnkGroupToCI/Attribute:ci_status' => 'Estato', + 'Class:lnkGroupToCI/Attribute:ci_status+' => '', + 'Class:lnkGroupToCI/Attribute:reason' => 'Razón', + 'Class:lnkGroupToCI/Attribute:reason+' => '', +)); // // Class: Contact @@ -960,5 +1013,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Menu:MobilePhone+' => 'Todos los Teléfonos Celulares', 'Menu:PC' => 'PCs (Computadores de Personales', 'Menu:PC+' => 'Todos los PCs (Computadores de Personales', +'Menu:Group' => 'Grupos de ICs', +'Menu:Group+' => 'Grupos de ICs', )); ?> diff --git a/modules/itop-config-mgmt-1.0.0/fr.dict.itop-config-mgmt.php b/modules/itop-config-mgmt-1.0.0/fr.dict.itop-config-mgmt.php index a11084894..ee953afc2 100644 --- a/modules/itop-config-mgmt-1.0.0/fr.dict.itop-config-mgmt.php +++ b/modules/itop-config-mgmt-1.0.0/fr.dict.itop-config-mgmt.php @@ -130,6 +130,59 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Location/Attribute:infra_list' => 'Infrastructure', 'Class:Location/Attribute:infra_list+' => 'Eléments d\'infrastructure situés sur ce lieu', )); +// +// Class: Group +// + +Dict::Add('FR FR', 'French', 'Français', array( + 'Class:Group' => 'Groupe', + 'Class:Group+' => '', + 'Class:Group/Attribute:name' => 'Nom', + 'Class:Group/Attribute:name+' => '', + 'Class:Group/Attribute:status' => 'Etat', + 'Class:Group/Attribute:status+' => '', + 'Class:Group/Attribute:status/Value:implementation' => 'Implémentation', + 'Class:Group/Attribute:status/Value:implementation+' => 'Implémentation', + 'Class:Group/Attribute:status/Value:obsolete' => 'Obsolète', + 'Class:Group/Attribute:status/Value:obsolete+' => 'Obsolète', + 'Class:Group/Attribute:status/Value:production' => 'Production', + 'Class:Group/Attribute:status/Value:production+' => 'Production', + 'Class:Group/Attribute:org_id' => 'Organization', + 'Class:Group/Attribute:org_id+' => '', + 'Class:Group/Attribute:owner_name' => 'Nom', + 'Class:Group/Attribute:owner_name+' => 'Nom commun', + 'Class:Group/Attribute:description' => 'Description', + 'Class:Group/Attribute:description+' => '', + 'Class:Group/Attribute:type' => 'Type', + 'Class:Group/Attribute:type+' => '', + 'Class:Group/Attribute:parent_id' => 'Group parent', + 'Class:Group/Attribute:parent_id+' => '', + 'Class:Group/Attribute:parent_name' => 'Nom', + 'Class:Group/Attribute:parent_name+' => '', + 'Class:Group/Attribute:ci_list' => 'CIs lié', + 'Class:Group/Attribute:ci_list+' => '', +)); +// +// Class: lnkGroupToCI +// + +Dict::Add('FR FR', 'French', 'Français', array( + 'Class:lnkGroupToCI' => 'Groupe / CI', + 'Class:lnkGroupToCI+' => '', + 'Class:lnkGroupToCI/Attribute:group_id' => 'Groupe', + 'Class:lnkGroupToCI/Attribute:group_id+' => '', + 'Class:lnkGroupToCI/Attribute:group_name' => 'Nom', + 'Class:lnkGroupToCI/Attribute:group_name+' => '', + 'Class:lnkGroupToCI/Attribute:ci_id' => 'CI', + 'Class:lnkGroupToCI/Attribute:ci_id+' => '', + 'Class:lnkGroupToCI/Attribute:ci_name' => 'Nom', + 'Class:lnkGroupToCI/Attribute:ci_name+' => '', + 'Class:lnkGroupToCI/Attribute:ci_status' => 'Etat du CI', + 'Class:lnkGroupToCI/Attribute:ci_status+' => '', + 'Class:lnkGroupToCI/Attribute:reason' => 'Raison', + 'Class:lnkGroupToCI/Attribute:reason+' => '', +)); + // // Class: Contact @@ -964,5 +1017,7 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Menu:ConfigManagement:AllDevices' => 'Nombre d\'équipements: %1$d', 'Menu:ConfigManagement:SWAndApps' => 'Logiciels et Applications', 'Menu:ConfigManagement:Misc' => 'Divers', +'Menu:Group' => 'Groupes de CIs', +'Menu:Group+' => 'Groupes de CIs', )); ?> 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 2a3437551..b1180a705 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 @@ -273,7 +273,7 @@ abstract class Document extends cmdbAbstractObject MetaModel::Init_SetZListItems('details', array('name', 'org_id', 'description', 'type', 'status', 'contract_list', 'service_list', 'ticket_list', 'ci_list')); MetaModel::Init_SetZListItems('advanced_search', array('name', 'org_id', 'description', 'type', 'status')); MetaModel::Init_SetZListItems('standard_search', array('name', 'org_id', 'description', 'type', 'status')); - MetaModel::Init_SetZListItems('list', array('name', 'org_id', 'type', 'status')); + MetaModel::Init_SetZListItems('list', array('org_id', 'type', 'status')); } } class WebDoc extends Document @@ -301,7 +301,7 @@ class WebDoc extends Document MetaModel::Init_SetZListItems('details', array('name', 'org_id', 'description', 'type', 'status', 'contract_list', 'service_list', 'ticket_list', 'ci_list', 'url')); MetaModel::Init_SetZListItems('advanced_search', array('name', 'org_id', 'description', 'type', 'status', 'url')); MetaModel::Init_SetZListItems('standard_search', array('name', 'org_id', 'description', 'type', 'status', 'url')); - MetaModel::Init_SetZListItems('list', array('name', 'org_id', 'type', 'status', 'url')); + MetaModel::Init_SetZListItems('list', array('org_id', 'type', 'status', 'url')); } } class Note extends Document @@ -329,7 +329,7 @@ class Note extends Document MetaModel::Init_SetZListItems('details', array('name', 'org_id', 'description', 'type', 'status', 'contract_list', 'service_list', 'ticket_list', 'ci_list', 'note')); MetaModel::Init_SetZListItems('advanced_search', array('name', 'org_id', 'description', 'type', 'status', 'note')); MetaModel::Init_SetZListItems('standard_search', array('name', 'org_id', 'description', 'type', 'status', 'note')); - MetaModel::Init_SetZListItems('list', array('name', 'org_id', 'type', 'status', 'note')); + MetaModel::Init_SetZListItems('list', array('org_id', 'type', 'status', 'note')); } } class FileDoc extends Document @@ -357,7 +357,7 @@ class FileDoc extends Document MetaModel::Init_SetZListItems('details', array('name', 'org_id', 'description', 'type', 'status', 'contract_list', 'service_list', 'ticket_list', 'ci_list', 'contents')); MetaModel::Init_SetZListItems('advanced_search', array('name', 'org_id', 'description', 'type', 'status')); MetaModel::Init_SetZListItems('standard_search', array('name', 'org_id', 'description', 'type', 'status')); - MetaModel::Init_SetZListItems('list', array('name', 'org_id', 'type', 'status', 'contents')); + MetaModel::Init_SetZListItems('list', array('org_id', 'type', 'status', 'contents')); } /** @@ -876,6 +876,75 @@ class DatabaseInstance extends FunctionalCI } } } +class Group extends cmdbAbstractObject +{ + + public static function Init() + { + $aParams = array + ( + "category" => "bizmodel,searchable,configmgmt", + "key_type" => "autoincrement", + "name_attcode" => "name", + "state_attcode" => "", + "reconc_keys" => array("name","org_id","owner_name"), + "db_table" => "group", + "db_key_field" => "id", + "db_finalclass_field" => "", + "icon" => "../modules/itop-config-mgmt-1.0.0/images/solution.png", + ); + MetaModel::Init_Params($aParams); + MetaModel::Init_InheritAttributes(); + + 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 AttributeEnum("status", array("allowed_values"=>new ValueSetEnum('production,implementation,obsolete'), "sql"=>"status", "default_value"=>"implementation", "is_null_allowed"=>false, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalKey("org_id", array("targetclass"=>"Organization", "jointype"=>null, "allowed_values"=>null, "sql"=>"org_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalField("owner_name", array("allowed_values"=>null, "extkey_attcode"=>"org_id", "target_attcode"=>"name", "is_null_allowed"=>true, "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 AttributeString("type", array("allowed_values"=>null, "sql"=>"type", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalKey("parent_id", array("targetclass"=>"Group", "jointype"=>null, "allowed_values"=>null, "sql"=>"parent_id", "is_null_allowed"=>true, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array("org_id")))); + MetaModel::Init_AddAttribute(new AttributeExternalField("parent_name", array("allowed_values"=>null, "extkey_attcode"=>"parent_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("ci_list", array("linked_class"=>"lnkGroupToCI", "ext_key_to_me"=>"group_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', 'org_id', 'type','description', 'parent_id', 'ci_list')); + MetaModel::Init_SetZListItems('advanced_search', array('name', 'status', 'org_id', 'type')); + MetaModel::Init_SetZListItems('standard_search', array('name', 'status', 'org_id', 'type')); + MetaModel::Init_SetZListItems('list', array('status', 'org_id', 'type','parent_id')); + } +} +class lnkGroupToCI extends cmdbAbstractObject +{ + + public static function Init() + { + $aParams = array + ( + "category" => "bizmodel,configmgmt", + "key_type" => "autoincrement", + "name_attcode" => "group_id", + "state_attcode" => "", + "reconc_keys" => array("group_id","ci_id"), + "db_table" => "lnkgrouptoci", + "db_key_field" => "id", + "db_finalclass_field" => "", + "display_template" => "", + ); + MetaModel::Init_Params($aParams); + MetaModel::Init_InheritAttributes(); + + MetaModel::Init_AddAttribute(new AttributeExternalKey("group_id", array("targetclass"=>"Group", "jointype"=>null, "allowed_values"=>null, "sql"=>"group_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalField("group_name", array("allowed_values"=>null, "extkey_attcode"=>"group_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_MANUAL, "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_AddAttribute(new AttributeString("reason", array("allowed_values"=>null, "sql"=>"reason", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); + + MetaModel::Init_SetZListItems('details', array('group_id', 'ci_id', 'ci_status', 'reason')); + MetaModel::Init_SetZListItems('advanced_search', array('group_id', 'ci_id', 'reason')); + MetaModel::Init_SetZListItems('standard_search', array('group_id', 'ci_id', 'reason')); + MetaModel::Init_SetZListItems('list', array('group_id', 'ci_id', 'ci_status', 'reason')); + } +} class ApplicationSolution extends FunctionalCI { @@ -1291,7 +1360,7 @@ abstract class InfrastructureCI extends Device MetaModel::Init_SetZListItems('details', array('name', 'status', 'org_id', 'importance', 'brand', 'model', 'serial_number', 'asset_ref', 'description', 'location_id', 'location_details', 'management_ip', 'default_gateway', 'contact_list', 'document_list', 'solution_list', 'contract_list', 'ticket_list', 'nwinterface_list')); MetaModel::Init_SetZListItems('advanced_search', array('name', 'status', 'org_id', 'importance', 'brand', 'model', 'serial_number', 'asset_ref', 'description', 'location_id', 'location_details', 'management_ip', 'default_gateway')); MetaModel::Init_SetZListItems('standard_search', array('name', 'status', 'org_id', 'importance', 'brand', 'model', 'serial_number', 'asset_ref','location_id','management_ip', 'default_gateway')); - MetaModel::Init_SetZListItems('list', array('name', 'status', 'org_id', 'importance', 'brand', 'model', 'location_id')); + MetaModel::Init_SetZListItems('list', array('status', 'org_id', 'importance', 'brand', 'model', 'location_id')); } } class NetworkDevice extends InfrastructureCI @@ -1563,9 +1632,10 @@ new OQLMenuNode('Team', 'SELECT Team', $oContactNode->GetIndex(), 4 /* fRank */) new OQLMenuNode('Document', 'SELECT Document', $oConfigManagementGroup->GetIndex(), 2 /* fRank */, true /* bSearch */); new OQLMenuNode('Location', 'SELECT Location', $oConfigManagementGroup->GetIndex(), 3 /* fRank */, true /* bSearch */); +new OQLMenuNode('Group', 'SELECT Group', $oConfigManagementGroup->GetIndex(), 4 /* fRank */, true /* bSearch */); -$oCINode = new TemplateMenuNode('ConfigManagementCI', '../modules/itop-config-mgmt-1.0.0/cis_menu.html', $oConfigManagementGroup->GetIndex(), 4 /* fRank */); +$oCINode = new TemplateMenuNode('ConfigManagementCI', '../modules/itop-config-mgmt-1.0.0/cis_menu.html', $oConfigManagementGroup->GetIndex(), 5 /* fRank */); new NewObjectMenuNode('NewCI', 'FunctionalCI', $oCINode->GetIndex(), 0 /* fRank */); new SearchMenuNode('SearchCIs', 'FunctionalCI', $oCINode->GetIndex(), 1 /* fRank */); diff --git a/toolkit.php b/toolkit.php index 2a99d122e..d0b92b45a 100644 --- a/toolkit.php +++ b/toolkit.php @@ -8,18 +8,41 @@ $sStyle = " padding:1.5em; "; echo "
\n"; -echo "

Shortcuts

\n"; echo "Main page
\n"; echo "CSV import (shortcut)
\n"; echo "Universal search (shortcut)
\n"; -echo "

Itop customization

\n"; -echo "Please contact the iTop support team
\n"; +echo "

Itop consultant

\n"; +echo "Check model, Create DB, Update DB (new class, new attribute)
\n"; +echo "Backup and restore (shortcut)
\n"; +echo "Objects schema (shortcut)
\n"; +echo "Setup the email
\n"; +echo "Generate data for benchmarking purposes
\n"; echo "

Web services

\n"; echo "Available functions
\n"; echo "WSDL (dynamically generated)
\n"; -echo "Check SLA for tickets
\n"; +echo "

Not working or deprecated

\n"; +echo "Data generator
\n"; +echo "ITop finder
\n"; +echo "navITop
\n"; +echo "@ITop
\n"; echo "
\n"; +echo "

phpMyORM

"; + + +$sStyle = " + border: 1px dashed #CCC; + background: #CFC; + padding:1.5em; +"; +echo "
\n"; + + +echo "Manage configurations
\n"; +echo "Core unit tests
\n"; + + +echo "
\n"; echo "

phpinfo()

";