N°3961 - Dashboard Service Catalog

This commit is contained in:
v-dumas
2026-02-27 16:35:10 +01:00
parent 6e43d01475
commit 565e074d80
6 changed files with 309 additions and 69 deletions

View File

@@ -2773,38 +2773,149 @@ public function PrefillSearchForm(&$aContextParam)
<rank>10</rank>
<parent>ServiceManagement</parent>
<definition>
<title>UI-ServiceCatalogMenu-Title</title>
<layout>DashboardLayoutTwoCols</layout>
<title>UI-ServiceCatalogMenu-Title</title>
<auto_reload>
<enabled>false</enabled>
<interval>300</interval>
</auto_reload>
<cells>
<cell id="0">
<rank>0</rank>
<dashlets>
<dashlet id="CatalogBadgesHeader" xsi:type="DashletHeaderStatic">
<rank>0</rank>
<title>UI-ServiceCatalogMenu-Title</title>
<icon></icon>
</dashlet>
<dashlet id="ServiceFamily" xsi:type="DashletBadge">
<rank>1</rank>
<class>ServiceFamily</class>
</dashlet>
<dashlet id="Service" xsi:type="DashletBadge">
<rank>2</rank>
<class>Service</class>
</dashlet>
<dashlet id="ServiceSubcategory" xsi:type="DashletBadge">
<rank>3</rank>
<class>ServiceSubcategory</class>
</dashlet>
<dashlet id="SLA" xsi:type="DashletBadge">
<rank>4</rank>
<class>SLA</class>
</dashlet>
<dashlet id="SLT" xsi:type="DashletBadge">
<rank>5</rank>
<class>SLT</class>
</dashlet>
<dashlet id="DeliveryModel" xsi:type="DashletObjectList">
<rank>6</rank>
<title>Class:DeliveryModel</title>
<query>SELECT DeliveryModel</query>
<menu>true</menu>
</dashlet>
</dashlets>
</cell>
<cell id="1">
<rank>1</rank>
<dashlets>
<dashlet id="ServiceCatalog_RecentRequestByService" xsi:type="DashletGroupByTable">
<dashlet id="NotInPortalHeader" xsi:type="DashletHeaderStatic">
<rank>0</rank>
<title>UI-ServiceCatalogMenu-RecentRequestByService</title>
<query><![CDATA[SELECT UserRequest AS u WHERE u.start_date < DATE_ADD(NOW(), INTERVAL 90 DAY)]]></query>
<group_by>service_id</group_by>
<style>table</style>
<aggregation_function>count</aggregation_function>
<aggregation_attribute/>
<limit/>
<order_by>attribute</order_by>
<order_direction>desc</order_direction>
<title>UI-ServiceCatalogMenu-NotInPortal</title>
<icon></icon>
</dashlet>
<dashlet id="ServiceByStatus" xsi:type="DashletHeaderDynamic">
<rank>1</rank>
<title>Class:Service</title>
<icon>/icons8-service.svg</icon>
<subtitle>UI-ServiceCatalogMenu-ObsoleteNotInPortal</subtitle>
<query>SELECT Service</query>
<group_by>status</group_by>
<values>implementation,obsolete,production</values>
</dashlet>
<dashlet id="ServiceSubcategoryByStatus" xsi:type="DashletHeaderDynamic">
<rank>2</rank>
<title>Class:ServiceSubcategory</title>
<icon>/icons8-services.svg</icon>
<subtitle>UI-ServiceCatalogMenu-ObsoleteNotInPortal</subtitle>
<query>SELECT ServiceSubcategory</query>
<group_by>status</group_by>
<values>implementation,obsolete,production</values>
</dashlet>
<dashlet id="ServiceWithoutFamily" xsi:type="DashletObjectList">
<rank>3</rank>
<title>UI-ServiceCatalogMenu-ServiceWithoutFamilyNotInPortal</title>
<query>SELECT Service WHERE servicefamily_id=0</query>
<menu>false</menu>
</dashlet>
</dashlets>
</cell>
<cell id="2">
<rank>2</rank>
<dashlets>
<dashlet id="0" xsi:type="DashletEmptyCell">
<dashlet id="SLTBySLA" xsi:type="DashletGroupByTable">
<rank>0</rank>
<title>UI-ServiceCatalogMenu-SLTBySLA</title>
<query>SELECT lnkSLAToSLT</query>
<group_by>sla_id</group_by>
<style>table</style>
<aggregation_function>count</aggregation_function>
<aggregation_attribute></aggregation_attribute>
<limit></limit>
<order_by>attribute</order_by>
<order_direction>desc</order_direction>
</dashlet>
</dashlets>
</cell>
<cell id="3">
<rank>3</rank>
<dashlets>
<dashlet id="ContractByService" xsi:type="DashletGroupByTable">
<rank>0</rank>
<title>UI-ServiceCatalogMenu-ContractByService</title>
<query>SELECT lnkCustomerContractToService AS lnk JOIN CustomerContract AS cc ON lnk.customercontract_id=cc.id WHERE cc.status != 'obsolete'</query>
<group_by>service_id</group_by>
<style>table</style>
<aggregation_function>count</aggregation_function>
<aggregation_attribute></aggregation_attribute>
<limit></limit>
<order_by>attribute</order_by>
<order_direction>desc</order_direction>
</dashlet>
</dashlets>
</cell>
<cell id="4">
<rank>4</rank>
<dashlets>
<dashlet id="ContractBySLA" xsi:type="DashletGroupByTable">
<rank>0</rank>
<title>UI-ServiceCatalogMenu-ContractBySLA</title>
<query>SELECT lnkCustomerContractToService AS lnk JOIN CustomerContract AS cc ON lnk.customercontract_id=cc.id WHERE cc.status != 'obsolete'</query>
<group_by>sla_id</group_by>
<style>table</style>
<aggregation_function>count</aggregation_function>
<aggregation_attribute></aggregation_attribute>
<limit></limit>
<order_by>attribute</order_by>
<order_direction>desc</order_direction>
</dashlet>
</dashlets>
</cell>
<cell id="5">
<rank>5</rank>
<dashlets>
<dashlet id="UnusedService" xsi:type="DashletObjectList">
<rank>0</rank>
<title>UI-ServiceCatalogMenu-UnusedService</title>
<query>SELECT Service WHERE status='production' AND id NOT IN (SELECT Service AS s JOIN lnkCustomerContractToService AS lnk ON lnk.service_id= s.id JOIN CustomerContract AS cc ON lnk.customercontract_id = cc.id WHERE cc.status != 'obsolete')
</query>
<menu>false</menu>
</dashlet>
</dashlets>
</cell>
</cells>
</definition>
</menu>
<menu id="ServiceFamily" xsi:type="OQLMenuNode" _delta="define">
<rank>2.5</rank>
<parent>ServiceCatalog</parent>
@@ -2846,7 +2957,7 @@ public function PrefillSearchForm(&$aContextParam)
<parent>ServiceManagement</parent>
<definition>
<title>UI-RulesAndWorkflow-Title</title>
<layout>DashboardLayoutTwoCols</layout>
<layout>DashboardLayoutOneCol</layout>
<cells>
<cell id="0">
<rank>0</rank>

View File

@@ -45,27 +45,31 @@ Dict::Add('EN US', 'English', 'English', [
'UI-ServiceManagementMenu-ContractsEndingIn30Days' => 'Contracts ending in less than 30 days',
'Menu:ProviderContract' => 'Provider contracts',
'Menu:ProviderContract+' => 'Provider contracts',
'Menu:ProviderContract+' => 'What your company buys',
'Menu:CustomerContract' => 'Customer contracts',
'Menu:CustomerContract+' => 'Customer contracts',
'Menu:CustomerContract+' => 'Who is buying the services',
'Menu:ServiceSubcategory' => 'Service subcategories',
'Menu:ServiceSubcategory+' => 'Service subcategories',
'Menu:ServiceSubcategory+' => 'Lowest level in service hierarchy',
'Menu:Service' => 'Services',
'Menu:Service+' => 'Services',
'Menu:ServiceElement' => 'Sevice elements',
'Menu:ServiceElement+' => 'Sevice elements',
'Menu:Service+' => 'Second level in service hierarchy',
'Menu:SLA' => 'SLAs',
'Menu:SLA+' => 'Service Level Agreements',
'Menu:SLT' => 'SLTs',
'Menu:SLT+' => 'Service Level Targets',
'Menu:DeliveryModel' => 'Delivery models',
'Menu:DeliveryModel+' => 'Delivery models',
'Menu:DeliveryModel+' => 'Teams handling tickets',
'Menu:ServiceFamily' => 'Service families',
'Menu:ServiceFamily+' => 'Service families',
'Menu:ServiceFamily+' => 'Top level in service hierarchy',
'Menu:ServiceCatalog' => 'Service catalog',
'Menu:ServiceCatalog+' => 'Service catalog',
'Menu:ServiceCatalog+' => 'Define the service elements of your offering',
'UI-ServiceCatalogMenu-Title' => 'Service catalog',
'UI-ServiceCatalogMenu-RecentRequestByService' => 'Recent requests by service',
'UI-ServiceCatalogMenu-NotInPortal' => 'Not displayed in User Portal',
'UI-ServiceCatalogMenu-ObsoleteNotInPortal' => 'Obsolete are hidden in User Portal',
'UI-ServiceCatalogMenu-UnusedService' => 'Services not used by any Customers',
'UI-ServiceCatalogMenu-ServiceWithoutFamilyNotInPortal' => 'Services without Service Family are not visible in User Portal',
'UI-ServiceCatalogMenu-SLTBySLA' => 'Count SLTs on each SLA',
'UI-ServiceCatalogMenu-ContractByService' => 'Count Contracts using a Service',
'UI-ServiceCatalogMenu-ContractBySLA' => 'Count Contracts using an SLA',
'Menu:RulesAndWorkflow' => 'Rules and workflow',
'Menu:RulesAndWorkflow+' => 'Automation rules and workflow',
'UI-RulesAndWorkflow-Title' => 'Rules and workflow',

View File

@@ -19,27 +19,31 @@ Dict::Add('FR FR', 'French', 'Français', [
'UI-ServiceManagementMenu-ContractsByStatus' => 'Contrats, par état',
'UI-ServiceManagementMenu-ContractsEndingIn30Days' => 'Contrats se terminant dans moins d\'un mois',
'Menu:ProviderContract' => 'Contrats fournisseurs',
'Menu:ProviderContract+' => 'Contrats fournisseurs',
'Menu:ProviderContract+' => 'Ce que votre société achète',
'Menu:CustomerContract' => 'Contrats clients',
'Menu:CustomerContract+' => 'Contrats clients',
'Menu:CustomerContract+' => 'Souscriptions à des services',
'Menu:ServiceSubcategory' => 'Sous catégories de service',
'Menu:ServiceSubcategory+' => 'Sous catégories de service',
'Menu:ServiceSubcategory+' => 'Dernier niveau dans la hiérarchie des services',
'Menu:Service' => 'Services',
'Menu:Service+' => 'Services',
'Menu:ServiceElement' => 'Eléments de service',
'Menu:ServiceElement+' => 'Eléments de service',
'Menu:Service+' => 'Second niveau dans la hiérarchie des services',
'Menu:SLA' => 'SLAs',
'Menu:SLA+' => 'Accords de niveau de service (SLA)',
'Menu:SLT' => 'SLTs',
'Menu:SLT+' => 'Objectifs de niveau de service (SLT)',
'Menu:DeliveryModel' => 'Modèles de support',
'Menu:DeliveryModel+' => 'Modèles de support',
'Menu:DeliveryModel+' => 'Les équipes gérant les tickets',
'Menu:ServiceFamily' => 'Familles de service',
'Menu:ServiceFamily+' => 'Familles de service',
'Menu:ServiceFamily+' => 'Plus haut niveau dans la hiérarchie des services',
'Menu:ServiceCatalog' => 'Catalogue de services',
'Menu:ServiceCatalog+' => '',
'Menu:ServiceCatalog+' => 'Définir les éléments des offres de service',
'UI-ServiceCatalogMenu-Title' => 'Catalogue de services',
'UI-ServiceCatalogMenu-RecentRequestByService' => 'Demandes récentes groupées par service',
'UI-ServiceCatalogMenu-ObsoleteNotInPortal' => 'Les obsolètes sont invisibles dans le portail utilisateur',
'UI-ServiceCatalogMenu-UnusedService' => 'Services en production sans contrat client',
'UI-ServiceCatalogMenu-NotInPortal' => 'Non affichés dans le portail utilisateur',
'UI-ServiceCatalogMenu-ServiceWithoutFamilyNotInPortal' => 'Services without Service Family are not visible in User Portal',
'UI-ServiceCatalogMenu-SLTBySLA' => 'Nombre de SLTs par SLA',
'UI-ServiceCatalogMenu-ContractByService' => 'Nombre de contrats clients utilisant ce service',
'UI-ServiceCatalogMenu-ContractBySLA' => 'Nombre de contrats clients utilisant ce SLA',
'Menu:RulesAndWorkflow' => 'Règles d\'automatisation',
'Menu:RulesAndWorkflow+' => '',
'UI-RulesAndWorkflow-Title' => 'Règles d\'automatisation',
@@ -51,7 +55,6 @@ Elles sont incluses dans les produits Professionels, mais pas dans la version co
'Contract:cost' => 'Coûts',
]);
//
// Class: Organization
//

View File

@@ -2752,31 +2752,143 @@ public function PrefillSearchForm(&$aContextParam)
<rank>10</rank>
<parent>ServiceManagement</parent>
<definition>
<title>UI-ServiceCatalogMenu-Title</title>
<layout>DashboardLayoutTwoCols</layout>
<title>UI-ServiceCatalogMenu-Title</title>
<auto_reload>
<enabled>false</enabled>
<interval>300</interval>
</auto_reload>
<cells>
<cell id="0">
<rank>0</rank>
<dashlets>
<dashlet id="CatalogBadgesHeader" xsi:type="DashletHeaderStatic">
<rank>0</rank>
<title>UI-ServiceCatalogMenu-Title</title>
<icon></icon>
</dashlet>
<dashlet id="ServiceFamily" xsi:type="DashletBadge">
<rank>1</rank>
<class>ServiceFamily</class>
</dashlet>
<dashlet id="Service" xsi:type="DashletBadge">
<rank>2</rank>
<class>Service</class>
</dashlet>
<dashlet id="ServiceSubcategory" xsi:type="DashletBadge">
<rank>3</rank>
<class>ServiceSubcategory</class>
</dashlet>
<dashlet id="SLA" xsi:type="DashletBadge">
<rank>4</rank>
<class>SLA</class>
</dashlet>
<dashlet id="SLT" xsi:type="DashletBadge">
<rank>5</rank>
<class>SLT</class>
</dashlet>
<dashlet id="DeliveryModel" xsi:type="DashletObjectList">
<rank>6</rank>
<title>Class:DeliveryModel</title>
<query>SELECT DeliveryModel</query>
<menu>true</menu>
</dashlet>
</dashlets>
</cell>
<cell id="1">
<rank>1</rank>
<dashlets>
<dashlet id="ServiceCatalog_RecentRequestByService" xsi:type="DashletGroupByTable">
<dashlet id="NotInPortalHeader" xsi:type="DashletHeaderStatic">
<rank>0</rank>
<title>UI-ServiceCatalogMenu-RecentRequestByService</title>
<query><![CDATA[SELECT UserRequest AS u WHERE u.start_date < DATE_ADD(NOW(), INTERVAL 90 DAY)]]></query>
<group_by>service_id</group_by>
<style>table</style>
<aggregation_function>count</aggregation_function>
<aggregation_attribute/>
<limit/>
<order_by>attribute</order_by>
<order_direction>desc</order_direction>
<title>UI-ServiceCatalogMenu-NotInPortal</title>
<icon></icon>
</dashlet>
<dashlet id="ServiceByStatus" xsi:type="DashletHeaderDynamic">
<rank>1</rank>
<title>Class:Service</title>
<icon>/icons8-service.svg</icon>
<subtitle>UI-ServiceCatalogMenu-ObsoleteNotInPortal</subtitle>
<query>SELECT Service</query>
<group_by>status</group_by>
<values>implementation,obsolete,production</values>
</dashlet>
<dashlet id="ServiceSubcategoryByStatus" xsi:type="DashletHeaderDynamic">
<rank>2</rank>
<title>Class:ServiceSubcategory</title>
<icon>/icons8-services.svg</icon>
<subtitle>UI-ServiceCatalogMenu-ObsoleteNotInPortal</subtitle>
<query>SELECT ServiceSubcategory</query>
<group_by>status</group_by>
<values>implementation,obsolete,production</values>
</dashlet>
<dashlet id="ServiceWithoutFamily" xsi:type="DashletObjectList">
<rank>3</rank>
<title>UI-ServiceCatalogMenu-ServiceWithoutFamilyNotInPortal</title>
<query>SELECT Service WHERE servicefamily_id=0</query>
<menu>false</menu>
</dashlet>
</dashlets>
</cell>
<cell id="2">
<rank>2</rank>
<dashlets>
<dashlet id="0" xsi:type="DashletEmptyCell">
<dashlet id="SLTBySLA" xsi:type="DashletGroupByTable">
<rank>0</rank>
<title>UI-ServiceCatalogMenu-SLTBySLA</title>
<query>SELECT lnkSLAToSLT</query>
<group_by>sla_id</group_by>
<style>table</style>
<aggregation_function>count</aggregation_function>
<aggregation_attribute></aggregation_attribute>
<limit></limit>
<order_by>attribute</order_by>
<order_direction>desc</order_direction>
</dashlet>
</dashlets>
</cell>
<cell id="3">
<rank>3</rank>
<dashlets>
<dashlet id="ContractByService" xsi:type="DashletGroupByTable">
<rank>0</rank>
<title>UI-ServiceCatalogMenu-ContractByService</title>
<query>SELECT lnkCustomerContractToService AS lnk JOIN CustomerContract AS cc ON lnk.customercontract_id=cc.id WHERE cc.status != 'obsolete'</query>
<group_by>service_id</group_by>
<style>table</style>
<aggregation_function>count</aggregation_function>
<aggregation_attribute></aggregation_attribute>
<limit></limit>
<order_by>attribute</order_by>
<order_direction>desc</order_direction>
</dashlet>
</dashlets>
</cell>
<cell id="4">
<rank>4</rank>
<dashlets>
<dashlet id="ContractBySLA" xsi:type="DashletGroupByTable">
<rank>0</rank>
<title>UI-ServiceCatalogMenu-ContractBySLA</title>
<query>SELECT lnkCustomerContractToService AS lnk JOIN CustomerContract AS cc ON lnk.customercontract_id=cc.id WHERE cc.status != 'obsolete'</query>
<group_by>sla_id</group_by>
<style>table</style>
<aggregation_function>count</aggregation_function>
<aggregation_attribute></aggregation_attribute>
<limit></limit>
<order_by>attribute</order_by>
<order_direction>desc</order_direction>
</dashlet>
</dashlets>
</cell>
<cell id="5">
<rank>5</rank>
<dashlets>
<dashlet id="UnusedService" xsi:type="DashletObjectList">
<rank>0</rank>
<title>UI-ServiceCatalogMenu-UnusedService</title>
<query>SELECT Service WHERE status='production' AND id NOT IN (SELECT Service AS s JOIN lnkCustomerContractToService AS lnk ON lnk.service_id= s.id JOIN CustomerContract AS cc ON lnk.customercontract_id = cc.id WHERE cc.status != 'obsolete')
</query>
<menu>false</menu>
</dashlet>
</dashlets>
</cell>
@@ -2824,7 +2936,7 @@ public function PrefillSearchForm(&$aContextParam)
<parent>ServiceManagement</parent>
<definition>
<title>UI-RulesAndWorkflow-Title</title>
<layout>DashboardLayoutTwoCols</layout>
<layout>DashboardLayoutOneCol</layout>
<cells>
<cell id="0">
<rank>0</rank>

View File

@@ -32,8 +32,9 @@
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//
// Menu, fieldsets, UI, messages translations
//
Dict::Add('EN US', 'English', 'English', [
'Menu:ServiceManagement' => 'Service management',
'Menu:ServiceManagement+' => 'Service management overview',
@@ -42,28 +43,33 @@ Dict::Add('EN US', 'English', 'English', [
'UI-ServiceManagementMenu-ContractsBySrvLevel' => 'Contracts by service level',
'UI-ServiceManagementMenu-ContractsByStatus' => 'Contracts by status',
'UI-ServiceManagementMenu-ContractsEndingIn30Days' => 'Contracts ending in less than 30 days',
'Menu:ProviderContract' => 'Provider contracts',
'Menu:ProviderContract+' => 'Provider contracts',
'Menu:ProviderContract+' => 'What your company buys',
'Menu:CustomerContract' => 'Customer contracts',
'Menu:CustomerContract+' => 'Customer contracts',
'Menu:CustomerContract+' => 'Services subscriptions',
'Menu:ServiceSubcategory' => 'Service subcategories',
'Menu:ServiceSubcategory+' => 'Service subcategories',
'Menu:ServiceSubcategory+' => 'Lowest level in service hierarchy',
'Menu:Service' => 'Services',
'Menu:Service+' => 'Services',
'Menu:ServiceElement' => 'Sevice elements',
'Menu:ServiceElement+' => 'Sevice elements',
'Menu:Service+' => 'Second level in service hierarchy',
'Menu:SLA' => 'SLAs',
'Menu:SLA+' => 'Service Level Agreements',
'Menu:SLT' => 'SLTs',
'Menu:SLT+' => 'Service Level Targets',
'Menu:DeliveryModel' => 'Delivery models',
'Menu:DeliveryModel+' => 'Delivery models',
'Menu:DeliveryModel+' => 'Teams handling tickets',
'Menu:ServiceFamily' => 'Service families',
'Menu:ServiceFamily+' => 'Service families',
'Menu:ServiceFamily+' => 'Top level in service hierarchy',
'Menu:ServiceCatalog' => 'Service catalog',
'Menu:ServiceCatalog+' => 'Service catalog',
'Menu:ServiceCatalog+' => 'Define the service elements of your offering',
'UI-ServiceCatalogMenu-Title' => 'Service catalog',
'UI-ServiceCatalogMenu-RecentRequestByService' => 'Recent requests by service',
'UI-ServiceCatalogMenu-NotInPortal' => 'Not displayed in User Portal',
'UI-ServiceCatalogMenu-ObsoleteNotInPortal' => 'Obsolete are hidden in User Portal',
'UI-ServiceCatalogMenu-UnusedService' => 'Services not used by any Customers',
'UI-ServiceCatalogMenu-ServiceWithoutFamilyNotInPortal' => 'Services without Service Family are not visible in User Portal',
'UI-ServiceCatalogMenu-SLTBySLA' => 'Count SLTs on each SLA',
'UI-ServiceCatalogMenu-ContractByService' => 'Count Contracts using a Service',
'UI-ServiceCatalogMenu-ContractBySLA' => 'Count Contracts using an SLA',
'Menu:RulesAndWorkflow' => 'Rules and workflow',
'Menu:RulesAndWorkflow+' => 'Automation rules and workflow',
'UI-RulesAndWorkflow-Title' => 'Rules and workflow',

View File

@@ -19,27 +19,31 @@ Dict::Add('FR FR', 'French', 'Français', [
'UI-ServiceManagementMenu-ContractsByStatus' => 'Contrats, par état',
'UI-ServiceManagementMenu-ContractsEndingIn30Days' => 'Contrats se terminant dans moins d\'un mois',
'Menu:ProviderContract' => 'Contrats fournisseurs',
'Menu:ProviderContract+' => 'Contrats fournisseurs',
'Menu:ProviderContract+' => 'Ce que votre société achète',
'Menu:CustomerContract' => 'Contrats clients',
'Menu:CustomerContract+' => 'Contrats clients',
'Menu:CustomerContract+' => 'Souscriptions à des services',
'Menu:ServiceSubcategory' => 'Sous catégories de service',
'Menu:ServiceSubcategory+' => 'Sous catégories de service',
'Menu:ServiceSubcategory+' => 'Dernier niveau dans la hiérarchie des services',
'Menu:Service' => 'Services',
'Menu:Service+' => 'Services',
'Menu:ServiceElement' => 'Eléments de service',
'Menu:ServiceElement+' => 'Eléments de service',
'Menu:Service+' => 'Second niveau dans la hiérarchie des services',
'Menu:SLA' => 'SLAs',
'Menu:SLA+' => 'Accords de niveau de service (SLA)',
'Menu:SLT' => 'SLTs',
'Menu:SLT+' => 'Objectifs de niveau de service (SLT)',
'Menu:DeliveryModel' => 'Modèles de support',
'Menu:DeliveryModel+' => 'Modèles de support',
'Menu:DeliveryModel+' => 'Les équipes gérant les tickets',
'Menu:ServiceFamily' => 'Familles de service',
'Menu:ServiceFamily+' => 'Familles de service',
'Menu:ServiceFamily+' => 'Plus haut niveau dans la hiérarchie des services',
'Menu:ServiceCatalog' => 'Catalogue de services',
'Menu:ServiceCatalog+' => '',
'Menu:ServiceCatalog+' => 'Définir les éléments des offres de service',
'UI-ServiceCatalogMenu-Title' => 'Catalogue de services',
'UI-ServiceCatalogMenu-RecentRequestByService' => 'Demandes récentes groupées par service',
'UI-ServiceCatalogMenu-ObsoleteNotInPortal' => 'Les obsolètes sont invisibles dans le portail utilisateur',
'UI-ServiceCatalogMenu-UnusedService' => 'Services en production sans contrat client',
'UI-ServiceCatalogMenu-NotInPortal' => 'Non affichés dans le portail utilisateur',
'UI-ServiceCatalogMenu-ServiceWithoutFamilyNotInPortal' => 'Services without Service Family are not visible in User Portal',
'UI-ServiceCatalogMenu-SLTBySLA' => 'Nombre de SLTs par SLA',
'UI-ServiceCatalogMenu-ContractByService' => 'Nombre de contrats clients utilisant ce service',
'UI-ServiceCatalogMenu-ContractBySLA' => 'Nombre de contrats clients utilisant ce SLA',
'Menu:RulesAndWorkflow' => 'Règles d\'automatisation',
'Menu:RulesAndWorkflow+' => '',
'UI-RulesAndWorkflow-Title' => 'Règles d\'automatisation',