datamodel and dictionnaries refactoring/cleanup

This commit is contained in:
Benjamin Planque
2020-07-28 15:08:11 +02:00
committed by odain
parent 90b60f90ae
commit f25cd70e73
140 changed files with 19076 additions and 17365 deletions

View File

@@ -113,32 +113,6 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array(
'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Neupozorňovat',
));
//
// Class: lnkFunctionalCIToTicket
//
Dict::Add('CS CZ', 'Czech', 'Čeština', array(
'Class:lnkFunctionalCIToTicket' => 'Spojení (Funkční konfigurační položka / Tiket)',
'Class:lnkFunctionalCIToTicket+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id' => 'Tiket',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref' => 'ID',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title' => 'Ticket title~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id' => 'Konfigurační položka',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name' => 'Název konfigurační položky',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact' => 'Dopad (text)',
'Class:lnkFunctionalCIToTicket/Attribute:impact+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code' => 'Dopad',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Přidán manuálně',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Automaticky',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Není zasažen',
));
//
// Class: WorkOrder
//
@@ -195,7 +169,6 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array(
'WorkOrder:Details' => 'Detaily',
'WorkOrder:Moreinfo' => 'Více informací',
'Tickets:ResolvedFrom' => 'Vyřešeno automaticky na základě %1$s',
'Class:cmdbAbstractObject/Method:Set' => 'Set',
'Class:cmdbAbstractObject/Method:Set+' => 'Set a field with a static value',
'Class:cmdbAbstractObject/Method:Set/Param:1' => 'Target Field',
@@ -240,15 +213,4 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array(
'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTO',
'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Time To Resolve',
'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTR',
'portal:itop-portal' => 'Standardní portál', // This is the portal name that will be displayed in portal dispatcher (eg. URL in menus)
'Page:DefaultTitle' => '%1$s - Uživatelský portál',
'Brick:Portal:UserProfile:Title' => 'Můj profil',
'Brick:Portal:NewRequest:Title' => 'Nový požadavek',
'Brick:Portal:NewRequest:Title+' => '<p>Potřebujete pomoci?</p><p>Vyberte z katalogu služeb a vytvořte nový požadavek.</p>',
'Brick:Portal:OngoingRequests:Title' => 'Otevřené požadavky',
'Brick:Portal:OngoingRequests:Title+' => '<p>Sledujte své otevřené požadavky.</p><p>Zkontrolujte stav, přidejte komentář, přiložte dokumenty, potvrďte řešení.</p>',
'Brick:Portal:OngoingRequests:Tab:OnGoing' => 'Probíhající',
'Brick:Portal:OngoingRequests:Tab:Resolved' => 'Vyřešené',
'Brick:Portal:ClosedRequests:Title' => 'Uzavřené požadavky',
));

View File

@@ -98,32 +98,6 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Do not notify~~',
));
//
// Class: lnkFunctionalCIToTicket
//
Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:lnkFunctionalCIToTicket' => 'Sammenhæng FunctionalCI/Ticket',
'Class:lnkFunctionalCIToTicket+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id' => 'Ticket',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref' => 'Reference',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title' => 'Ticket title~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id' => 'CI',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name' => 'CI Navn',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact' => 'Påvirkning',
'Class:lnkFunctionalCIToTicket/Attribute:impact+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code' => 'Impact~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Added manually~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Computed~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Not impacted~~',
));
//
// Class: WorkOrder
//
@@ -225,15 +199,4 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array(
'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTO~~',
'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Time To Resolve~~',
'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTR~~',
'portal:itop-portal' => 'Standard portal~~', // This is the portal name that will be displayed in portal dispatcher (eg. URL in menus)
'Page:DefaultTitle' => '%1$s - User portal~~',
'Brick:Portal:UserProfile:Title' => 'My profile~~',
'Brick:Portal:NewRequest:Title' => 'New request~~',
'Brick:Portal:NewRequest:Title+' => '<p>Need help?</p><p>Pick from the services catalog and submit your request to our support teams.</p>~~',
'Brick:Portal:OngoingRequests:Title' => 'Ongoing requests~~',
'Brick:Portal:OngoingRequests:Title+' => '<p>Follow up with your ongoing requests.</p><p>Check the progress, add comments, attach documents, acknowledge the solution.</p>~~',
'Brick:Portal:OngoingRequests:Tab:OnGoing' => 'Open~~',
'Brick:Portal:OngoingRequests:Tab:Resolved' => 'Resolved~~',
'Brick:Portal:ClosedRequests:Title' => 'Closed requests~~',
));

View File

@@ -278,9 +278,6 @@
<item id="contacts_list">
<rank>130</rank>
</item>
<item id="functionalcis_list">
<rank>140</rank>
</item>
<item id="workorders_list">
<rank>150</rank>
</item>
@@ -466,116 +463,6 @@
</list>
</presentation>
</class>
<class id="lnkFunctionalCIToTicket" _delta="define">
<parent>cmdbAbstractObject</parent>
<properties>
<is_link>1</is_link>
<category>bizmodel</category>
<abstract>false</abstract>
<key_type>autoincrement</key_type>
<db_table>lnkfunctionalcitoticket</db_table>
<db_key_field>id</db_key_field>
<db_final_class_field/>
<naming>
<attributes>
<attribute id="ticket_id"/>
<attribute id="functionalci_id"/>
</attributes>
</naming>
<display_template/>
<icon/>
<reconciliation>
<attributes>
<attribute id="ticket_id"/>
<attribute id="functionalci_id"/>
</attributes>
</reconciliation>
</properties>
<fields>
<field id="ticket_id" xsi:type="AttributeExternalKey">
<sql>ticket_id</sql>
<target_class>Ticket</target_class>
<is_null_allowed>false</is_null_allowed>
<on_target_delete>DEL_AUTO</on_target_delete>
</field>
<field id="ticket_ref" xsi:type="AttributeExternalField">
<extkey_attcode>ticket_id</extkey_attcode>
<target_attcode>ref</target_attcode>
</field>
<field id="ticket_title" xsi:type="AttributeExternalField">
<extkey_attcode>ticket_id</extkey_attcode>
<target_attcode>title</target_attcode>
</field>
<field id="functionalci_id" xsi:type="AttributeExternalKey">
<sql>functionalci_id</sql>
<target_class>FunctionalCI</target_class>
<is_null_allowed>false</is_null_allowed>
<on_target_delete>DEL_AUTO</on_target_delete>
</field>
<field id="functionalci_name" xsi:type="AttributeExternalField">
<extkey_attcode>functionalci_id</extkey_attcode>
<target_attcode>name</target_attcode>
</field>
<field id="impact" xsi:type="AttributeString">
<sql>impact</sql>
<default_value/>
<is_null_allowed>true</is_null_allowed>
</field>
<field id="impact_code" xsi:type="AttributeEnum">
<values>
<value id="manual">manual</value>
<value id="computed">computed</value>
<value id="not_impacted">not_impacted</value>
</values>
<sql>impact_code</sql>
<default_value>manual</default_value>
<is_null_allowed>false</is_null_allowed>
<display_style>list</display_style>
</field>
</fields>
<methods/>
<presentation>
<details>
<items>
<item id="ticket_id">
<rank>10</rank>
</item>
<item id="functionalci_id">
<rank>20</rank>
</item>
<item id="impact_code">
<rank>30</rank>
</item>
</items>
</details>
<search>
<items>
<item id="ticket_id">
<rank>10</rank>
</item>
<item id="functionalci_id">
<rank>20</rank>
</item>
<item id="impact_code">
<rank>30</rank>
</item>
</items>
</search>
<list>
<items>
<item id="ticket_id">
<rank>10</rank>
</item>
<item id="functionalci_id">
<rank>20</rank>
</item>
<item id="impact_code">
<rank>30</rank>
</item>
</items>
</list>
</presentation>
</class>
<class id="WorkOrder" _delta="define">
<parent>cmdbAbstractObject</parent>
<properties>
@@ -803,6 +690,39 @@
</list>
</presentation>
</class>
<class id="Document" _delta="must_exist">
<fields>
<field id="contracts_list" xsi:type="AttributeLinkedSetIndirect" _delta="define">
<linked_class>lnkContractToDocument</linked_class>
<ext_key_to_me>document_id</ext_key_to_me>
<count_min>0</count_min>
<count_max>0</count_max>
<ext_key_to_remote>contract_id</ext_key_to_remote>
<duplicates/>
</field>
<field id="services_list" xsi:type="AttributeLinkedSetIndirect" _delta="define">
<linked_class>lnkDocumentToService</linked_class>
<ext_key_to_me>document_id</ext_key_to_me>
<count_min>0</count_min>
<count_max>0</count_max>
<ext_key_to_remote>service_id</ext_key_to_remote>
<duplicates/>
</field>
</fields>
<methods/>
<presentation>
<details>
<items>
<item id="contracts_list" _delta="define">
<rank>70</rank>
</item>
<item id="services_list" _delta="define">
<rank>80</rank>
</item>
</items>
</details>
</presentation>
</class>
</classes>
<meta>
<classes>
@@ -819,77 +739,9 @@
</classes>
</meta>
<module_designs>
<module_design id="itop-portal" xsi:type="portal" _delta="define">
<properties>
<name>portal:itop-portal</name>
<!-- Can be either a fileref or a relative path to the file (To be tested). Takes over env-xxx/branding/portal-logo.png -->
<!-- Priority order is <logo> from xml > env-xxx/branding/portal-logo.png > /images/logo-itop-dark-bg.svg -->
<!--<fileref ref="brt_6a2be154b2a62659d3332c513bdad715" />-->
<!--<logo>../images/itop-logo.png</logo>-->
<!-- Can be either a fileref or a relative path to the file from /env-xxx (eg. itop-portal-base/mystyle.css) -->
<!-- Available themes must have a unique id. Some ids are loaded in a specific order : bootstrap/portal/custom. Other ids are loaded after them, but their order cannot be predicted -->
<themes/>
<!-- Can be either a fileref or a relative path to the file from /env-xxx (eg. itop-portal-base/mytemplate.html.twig) -->
<!-- Available templates are id="layout|home" -->
<templates/>
<!-- Class used for generating objects view/edit urls (eg. in linked sets). -->
<!-- Note: Notification placeholders are NOT using this but the "DBObject::RegisterURLMakerClass(<PORTAL_ID>, <CLASS_NAME>)" declarations. -->
<urlmaker_class>iTopPortalViewUrlMaker</urlmaker_class>
<!-- An OQL query to determine which TriggerOnPortalUpdate to use within THIS instance of the portal. This is mostly needed to enable different triggers on several portal instances -->
<!-- Note : ":parent_classes" parameter is a reserved name that will be used for the current object class name (and its ancestors) -->
<triggers_query><![CDATA[SELECT TriggerOnPortalUpdate AS t WHERE t.target_class IN (:parent_classes)]]></triggers_query>
<attachments>
<allow_delete>true</allow_delete>
</attachments>
<allowed_portals>
<!-- Defines how other portals -allowed for the current user- will be opened. "tab" for a new tab, "self" for the current window -->
<opening_mode>tab</opening_mode>
</allowed_portals>
</properties>
<module_design id="itop-portal" xsi:type="portal" >
<bricks>
<brick id="user-profile" xsi:type="Combodo\iTop\Portal\Brick\UserProfileBrick">
<rank>
<!-- Can be either a <default> tag for both home page and navigation menu or distinct <home> or/and <navigation_menu> tags-->
<default>1</default>
</rank>
<title>
<!-- Can be either a <default> tag for both home page and navigation menu or distinct <home> or/and <navigation_menu> tags-->
<default>Brick:Portal:UserProfile:Navigation:Dropdown:MyProfil</default>
</title>
<decoration_class>
<default>fas fa-user fa-2x</default>
</decoration_class>
<!-- Show / hide some of the user profile forms by setting the tag value to true|false -->
<!--<show_picture_form>true</show_picture_form>-->
<!--<show_preferences_form>true</show_preferences_form>-->
<!--<show_password_form>true</show_password_form>-->
<form>
<!-- Optional tag to list the fields. If empty only fields from <twig> tag will be displayed, if omitted fields from zlist details will. -->
<fields />
<!-- Optional tag to specify the form layout. Fields that are not positioned in the layout will be placed at the end of the form -->
<twig>
<!-- data-field-id attribute must be an attribute code of the class -->
<!-- data-field-flags attribute contains flags among read_only/hidden/mandatory/must_prompt/must_change -->
<div class="form_field" data-field-id="first_name" data-field-flags="read_only">
</div>
<div class="form_field" data-field-id="name" data-field-flags="read_only">
</div>
<div class="form_field" data-field-id="org_id" data-field-flags="read_only">
</div>
<div class="form_field" data-field-id="email" data-field-flags="read_only">
</div>
<div class="form_field" data-field-id="phone">
</div>
<div class="form_field" data-field-id="location_id">
</div>
<div class="form_field" data-field-id="function">
</div>
<div class="form_field" data-field-id="manager_id" data-field-flags="read_only">
</div>
</twig>
</form>
</brick>
<brick id="services" xsi:type="Combodo\iTop\Portal\Brick\BrowseBrick">
<brick id="services" xsi:type="Combodo\iTop\Portal\Brick\BrowseBrick" _delta="define">
<active>true</active>
<width>6</width>
<rank>
@@ -982,7 +834,7 @@
<data_loading>auto</data_loading>
<!-- lazy|full|auto. Let the consultant choose if the list/tree data are load progressively at each page/level or in one-shot or if it is up to the system regarding the "lazy_loading_threshold" parameter -->
</brick>
<brick id="ongoing-tickets-for-portal-user" xsi:type="Combodo\iTop\Portal\Brick\ManageBrick">
<brick id="ongoing-tickets-for-portal-user" xsi:type="Combodo\iTop\Portal\Brick\ManageBrick" _delta="define">
<active>true</active>
<rank>
<default>20</default>
@@ -993,16 +845,16 @@
</title>
<!-- Optional tag to define which display modes can be used in the brick's page and the brick's tile -->
<!--<display_modes>-->
<!-- Optional tag that must contain at least 1 <mode> tag. -->
<!--<availables>-->
<!--<mode id="list"/>-->
<!--<mode id="pie-chart"/>-->
<!--<mode id="bar-chart"/>-->
<!--</availables>-->
<!-- Optional tag to define which display mode will be used by default when opening the brick -->
<!--<default>list</default>-->
<!-- Optional tag to define which display mode will be used to render the brick's tile -->
<!--<tile>text</tile>-->
<!-- Optional tag that must contain at least 1 <mode> tag. -->
<!--<availables>-->
<!--<mode id="list"/>-->
<!--<mode id="pie-chart"/>-->
<!--<mode id="bar-chart"/>-->
<!--</availables>-->
<!-- Optional tag to define which display mode will be used by default when opening the brick -->
<!--<default>list</default>-->
<!-- Optional tag to define which display mode will be used to render the brick's tile -->
<!--<tile>text</tile>-->
<!--</display_modes>-->
<description>Brick:Portal:OngoingRequests:Title+</description>
<decoration_class>
@@ -1055,10 +907,10 @@
<!-- <default_list_length>20</default_list_length> -->
<data_loading>full</data_loading>
<export>
<export_default_fields>true</export_default_fields>
</export>
<export_default_fields>true</export_default_fields>
</export>
</brick>
<brick id="closed-tickets-for-portal-user" xsi:type="Combodo\iTop\Portal\Brick\ManageBrick">
<brick id="closed-tickets-for-portal-user" xsi:type="Combodo\iTop\Portal\Brick\ManageBrick" _delta="define">
<active>true</active>
<rank>
<navigation_menu>50</navigation_menu>
@@ -1102,12 +954,12 @@
</grouping>
<data_loading>auto</data_loading>
<export>
<export_default_fields>true</export_default_fields>
</export>
<export_default_fields>true</export_default_fields>
</export>
</brick>
</bricks>
<forms>
<form id="service-view">
<form id="service-view" _delta="define">
<class>Service</class>
<fields></fields>
<twig>
@@ -1132,7 +984,7 @@
<mode id="view" />
</modes>
</form>
<form id="servicesubcategory">
<form id="servicesubcategory" _delta="define">
<class>ServiceSubcategory</class>
<!-- Optional tag to list the fields. If empty only fields from <twig> tag will be displayed, if omitted fields from zlist details will. -->
<fields />
@@ -1162,7 +1014,7 @@
</div>
</twig>
</form>
<form id="ticket-create">
<form id="ticket-create" _delta="define">
<class>Ticket</class>
<properties>
<navigation_rules>
@@ -1209,7 +1061,7 @@
<mode id="create"/>
</modes>
</form>
<form id="ticket-edit">
<form id="ticket-edit" _delta="define">
<class>Ticket</class>
<properties>
<!-- Optional, display mode of the form fields. "cosy" for a regular labels over values layout; "compact" for a side-by-side
@@ -1220,10 +1072,10 @@
<!--<always_show_submit>false</always_show_submit>-->
<!-- Optional, navigation rules to define where to go when clicking on the submit/cancel buttons of the form -->
<navigation_rules>
<submit>
<default>go-to-open-requests</default>
</submit>
</navigation_rules>
<submit>
<default>go-to-open-requests</default>
</submit>
</navigation_rules>
</properties>
<fields></fields>
<twig>
@@ -1279,14 +1131,14 @@
<mode id="view"/>
</modes>
</form>
<form id="ticket-reopen">
<form id="ticket-reopen" _delta="define">
<class>Ticket</class>
<properties>
<navigation_rules>
<submit>
<default>go-to-open-requests</default>
</submit>
</navigation_rules>
<submit>
<default>go-to-open-requests</default>
</submit>
</navigation_rules>
</properties>
<fields />
<twig>
@@ -1299,19 +1151,19 @@
<modes>
<mode id="apply_stimulus">
<stimuli>
<stimulus id="ev_reopen"/>
</stimuli>
</mode>
<stimulus id="ev_reopen"/>
</stimuli>
</mode>
</modes>
</form>
<form id="ticket-apply-stimulus">
<form id="ticket-apply-stimulus" _delta="define">
<class>Ticket</class>
<properties>
<navigation_rules>
<submit>
<default>go-to-open-requests</default>
</submit>
</navigation_rules>
<submit>
<default>go-to-open-requests</default>
</submit>
</navigation_rules>
</properties>
<fields />
<twig />
@@ -1319,7 +1171,7 @@
<mode id="apply_stimulus"/>
</modes>
</form>
<form id="person-view">
<form id="person-view" _delta="define">
<class>Person</class>
<fields />
<twig>
@@ -1350,64 +1202,7 @@
</forms>
<classes>
<!-- Note : A class (or one of its ancestors) MUST be declared here to be displayed in the portal -->
<class id="User">
<!-- Allow <allowed_profile>s to apply the <transition>s below. Flags on <field>s will be merged with those from datamodel -->
<!-- See example in UserRequest class -->
<!--<lifecycle/>-->
<scopes>
<!-- Note : Silos apply to those scope queries -->
<scope id="all">
<oql_view><![CDATA[SELECT User AS U JOIN Person AS P ON U.contactid=P.id WHERE P.id = :current_contact_id]]></oql_view>
<!-- No object of this class can be edited -->
<!--<oql_edit />-->
<!-- Everybody -->
<!--<allowed_profiles />-->
</scope>
</scopes>
</class>
<class id="Organization">
<scopes>
<scope id="all">
<oql_view><![CDATA[SELECT Organization WHERE id = :current_contact->org_id]]></oql_view>
</scope>
</scopes>
</class>
<class id="Location">
<scopes>
<scope id="all">
<oql_view><![CDATA[SELECT Location WHERE org_id = :current_contact->org_id]]></oql_view>
</scope>
</scopes>
</class>
<class id="Contact">
<scopes>
<scope id="all">
<oql_view><![CDATA[SELECT Contact WHERE org_id = :current_contact->org_id]]></oql_view>
</scope>
<scope id="admin">
<oql_view><![CDATA[SELECT Contact]]></oql_view>
<allowed_profiles>
<allowed_profile id="Administrator"/>
</allowed_profiles>
</scope>
</scopes>
<lists>
<list id="default">
<items>
<item id="status">
<rank>10</rank>
</item>
<item id="org_id">
<rank>20</rank>
</item>
<item id="function">
<rank>50</rank>
</item>
</items>
</list>
</lists>
</class>
<class id="ServiceFamily">
<class id="ServiceFamily" _delta="define">
<scopes>
<scope id="all">
<oql_view><![CDATA[SELECT ServiceFamily AS sf JOIN Service AS s ON s.servicefamily_id = sf.id JOIN lnkCustomerContractToService AS l1 ON l1.service_id=s.id JOIN CustomerContract AS cc ON l1.customercontract_id=cc.id WHERE cc.org_id = :current_contact->org_id]]></oql_view>
@@ -1415,7 +1210,7 @@
</scope>
</scopes>
</class>
<class id="Service">
<class id="Service" _delta="define">
<scopes>
<scope id="all">
<oql_view><![CDATA[SELECT Service AS s JOIN lnkCustomerContractToService AS l1 ON l1.service_id=s.id JOIN CustomerContract AS cc ON l1.customercontract_id=cc.id WHERE cc.org_id = :current_contact->org_id AND s.status != 'obsolete']]></oql_view>
@@ -1423,7 +1218,7 @@
</scope>
</scopes>
</class>
<class id="ServiceSubcategory">
<class id="ServiceSubcategory" _delta="define">
<scopes>
<scope id="all">
<oql_view><![CDATA[SELECT ServiceSubcategory AS ssc JOIN Service AS s ON ssc.service_id=s.id JOIN lnkCustomerContractToService AS l1 ON l1.service_id=s.id JOIN CustomerContract AS cc ON l1.customercontract_id=cc.id WHERE cc.org_id = :current_contact->org_id AND ssc.status != 'obsolete']]></oql_view>
@@ -1431,7 +1226,7 @@
</scope>
</scopes>
</class>
<class id="Ticket">
<class id="Ticket" _delta="define">
<scopes>
<scope id="all">
<oql_view><![CDATA[SELECT Ticket AS T WHERE T.caller_id = :current_contact_id AND T.finalclass IN ('UserRequest', 'Incident')]]></oql_view>
@@ -1448,7 +1243,7 @@
</class>
</classes>
<action_rules>
<action_rule id="contact-to-userrequest">
<action_rule id="contact-to-userrequest" _delta="define">
<!-- source_oql|source_class is only necessary if there is some copy preset|retrofit -->
<source_oql><![CDATA[SELECT Contact AS C WHERE C.id = :current_contact_id]]></source_oql>
<presets>
@@ -1459,13 +1254,13 @@
</presets>
<retrofits/>
</action_rule>
<action_rule id="service-to-userrequest">
<action_rule id="service-to-userrequest" _delta="define">
<source_class>Service</source_class>
<presets>
<preset id="1">copy(id, service_id)</preset>
</presets>
</action_rule>
<action_rule id="servicesubcategory-to-userrequest">
<action_rule id="servicesubcategory-to-userrequest" _delta="define">
<source_class>ServiceSubcategory</source_class>
<presets>
<preset id="1">copy(id, servicesubcategory_id)</preset>
@@ -1473,7 +1268,7 @@
</presets>
</action_rule>
<!-- Deprecated, will be removed in iTop 2.8 -->
<action_rule id="go-to-open-request-on-submit">
<action_rule id="go-to-open-request-on-submit" _delta="define">
<submit xsi:type="goto">
<brick>ongoing-tickets-for-portal-user</brick>
</submit>
@@ -1481,11 +1276,11 @@
</action_rules>
<navigation_rules>
<!-- Close form (either the modal or the whole page) -->
<navigation_rule id="close-form" xsi:type="close" />
<navigation_rule id="close-form" xsi:type="close" _delta="define"/>
<!-- Go to the homepage -->
<navigation_rule id="go-to-homepage" xsi:type="go-to-homepage" />
<navigation_rule id="go-to-homepage" xsi:type="go-to-homepage" _delta="define"/>
<!-- Open a manage brick (simple method) -->
<navigation_rule id="go-to-open-requests" xsi:type="go-to-manage-brick">
<navigation_rule id="go-to-open-requests" xsi:type="go-to-manage-brick" _delta="define">
<!-- Mandatory, ID of the ManageBrick to go to -->
<id>ongoing-tickets-for-portal-user</id>
<!-- Optional, must be an ID of the available display modes of the brick (//brick/display_modes/availables/mode) -->
@@ -1496,31 +1291,31 @@
<!-- <filter>:this->caller_id_friendlyname</filter> -->
</navigation_rule>
<!-- Open a browse brick -->
<navigation_rule id="go-to-services" xsi:type="go-to-browse-brick">
<!-- Mandatory, ID of the BrowseBrick to go to -->
<id>services</id>
<!-- Optional, must be an ID of the available browse modes of the brick (//brick/browse_modes/availables/mode) -->
<!-- <browse_mode>tree</browse_mode> -->
<!-- Optional, a string to preset as filter in the brick. ":this->XXX" can be used for the current object -->
<!-- <filter>computer</filter> -->
<navigation_rule id="go-to-services" xsi:type="go-to-browse-brick" _delta="define">
<!-- Mandatory, ID of the BrowseBrick to go to -->
<id>services</id>
<!-- Optional, must be an ID of the available browse modes of the brick (//brick/browse_modes/availables/mode) -->
<!-- <browse_mode>tree</browse_mode> -->
<!-- Optional, a string to preset as filter in the brick. ":this->XXX" can be used for the current object -->
<!-- <filter>computer</filter> -->
</navigation_rule>
<!-- Open a brick, developer method -->
<!-- <navigation_rule id="go-to-open-requests-alternate-way" xsi:type="go-to-brick"> -->
<!-- <route> -->
<!-- <id>p_manage_brick_display_as</id> -->
<!-- <params> -->
<!-- <param id="sBrickId">ongoing-tickets-for-portal-user</param> -->
<!-- <param id="sDisplayMode">pie-chart</param> -->
<!-- <param id="sGroupingTab">resolved</param> -->
<!-- </params> -->
<!-- </route> -->
<!-- <route> -->
<!-- <id>p_manage_brick_display_as</id> -->
<!-- <params> -->
<!-- <param id="sBrickId">ongoing-tickets-for-portal-user</param> -->
<!-- <param id="sDisplayMode">pie-chart</param> -->
<!-- <param id="sGroupingTab">resolved</param> -->
<!-- </params> -->
<!-- </route> -->
<!-- </navigation_rule> -->
</navigation_rules>
</module_design>
</module_designs>
<module_parameters>
<parameters id="itop-portal" _delta="define">
<lazy_loading_threshold>500</lazy_loading_threshold><!-- Will be placed in the conf/<env>/config-itop.php file under the itop-portal module's settings -->
</navigation_rules>
</module_design>
</module_designs>
<module_parameters>
<parameters id="itop-portal" _delta="define">
<lazy_loading_threshold>500</lazy_loading_threshold><!-- Will be placed in the conf/<env>/config-itop.php file under the itop-portal module's settings -->
</parameters>
</module_parameters>
</itop_design>

View File

@@ -100,32 +100,6 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Nicht ändern',
));
//
// Class: lnkFunctionalCIToTicket
//
Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:lnkFunctionalCIToTicket' => 'Verknüpfung FunctionalCI/Ticket',
'Class:lnkFunctionalCIToTicket+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id' => 'Ticket',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref' => 'Referenz',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title' => 'Tickettitel',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id' => 'CI',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name' => 'CI-Name',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact' => 'Auswirkung (Text)',
'Class:lnkFunctionalCIToTicket/Attribute:impact+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code' => 'Auswirkung',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Manuell hinzugefügt',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Berechnet',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Nicht betroffen',
));
//
// Class: WorkOrder
//
@@ -227,15 +201,4 @@ Dict::Add('DE DE', 'German', 'Deutsch', array(
'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Zielvorgabe (SLT) vom Typ TTO',
'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Time To Resolve (Erstlösungszeit)',
'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Zielvorgabe (SLT) vom Typ TTR',
'portal:itop-portal' => 'Standard Portal', // This is the portal name that will be displayed in portal dispatcher (eg. URL in menus)
'Page:DefaultTitle' => '%1$s - Benutzer Portal',
'Brick:Portal:UserProfile:Title' => 'Mein Profile',
'Brick:Portal:NewRequest:Title' => 'Neue Störung/Anfrage',
'Brick:Portal:NewRequest:Title+' => '<p>Hilfe?</p><p>Wählen Sie einen Service aus und senden Sie Ihre Anfrage zum Service Desk.</p>',
'Brick:Portal:OngoingRequests:Title' => 'Offene Störungen/Anfragen',
'Brick:Portal:OngoingRequests:Title+' => '<p>Hier können Sie Ihre laufenden Anfragen und Störungsmeldungen ansehen,</p><p>den Verlauf verfolgen, Kommentare und Anhänge hinzufügen und gelöste Anfragen schließen.</p>',
'Brick:Portal:OngoingRequests:Tab:OnGoing' => 'Offen',
'Brick:Portal:OngoingRequests:Tab:Resolved' => 'Gelöst',
'Brick:Portal:ClosedRequests:Title' => 'Geschlossene Störungen/Anfragen',
));

View File

@@ -114,32 +114,6 @@ Dict::Add('EN US', 'English', 'English', array(
'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Do not notify',
));
//
// Class: lnkFunctionalCIToTicket
//
Dict::Add('EN US', 'English', 'English', array(
'Class:lnkFunctionalCIToTicket' => 'Link FunctionalCI / Ticket',
'Class:lnkFunctionalCIToTicket+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id' => 'Ticket',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref' => 'Ref',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title' => 'Ticket title',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id' => 'CI',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name' => 'CI Name',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact' => 'Impact (text)',
'Class:lnkFunctionalCIToTicket/Attribute:impact+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code' => 'Impact',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Added manually',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Computed',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Not impacted',
));
//
// Class: WorkOrder
//
@@ -241,15 +215,4 @@ Dict::Add('EN US', 'English', 'English', array(
'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTO',
'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Time To Resolve',
'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTR',
'portal:itop-portal' => 'Standard portal', // This is the portal name that will be displayed in portal dispatcher (eg. URL in menus)
'Page:DefaultTitle' => '%1$s - User portal',
'Brick:Portal:UserProfile:Title' => 'My profile',
'Brick:Portal:NewRequest:Title' => 'New request',
'Brick:Portal:NewRequest:Title+' => '<p>Need help?</p><p>Pick from the services catalog and submit your request to our support teams.</p>',
'Brick:Portal:OngoingRequests:Title' => 'Ongoing requests',
'Brick:Portal:OngoingRequests:Title+' => '<p>Follow up with your ongoing requests.</p><p>Check the progress, add comments, attach documents, acknowledge the solution.</p>',
'Brick:Portal:OngoingRequests:Tab:OnGoing' => 'Open',
'Brick:Portal:OngoingRequests:Tab:Resolved' => 'Resolved',
'Brick:Portal:ClosedRequests:Title' => 'Closed requests',
));

View File

@@ -112,32 +112,6 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array(
'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'No notificar',
));
//
// Class: lnkFunctionalCIToTicket
//
Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array(
'Class:lnkFunctionalCIToTicket' => 'Relación EC Funcional y Ticket',
'Class:lnkFunctionalCIToTicket+' => 'Relación EC Funcional y Ticket',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id' => 'Ticket',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id+' => 'Ticket',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref' => 'Ref.',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref+' => 'Ref.',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title' => 'Ticket title~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id' => 'EC',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id+' => 'Elemanto de Configuración',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name' => 'Elemanto de Configuración',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name+' => 'Elemanto de Configuración',
'Class:lnkFunctionalCIToTicket/Attribute:impact' => 'Impacto',
'Class:lnkFunctionalCIToTicket/Attribute:impact+' => 'Impacto',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code' => 'Impacto',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Agregado Manualmente',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Calculado',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'No impactado',
));
//
// Class: WorkOrder
//
@@ -239,15 +213,4 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array(
'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Objetivo basado en SLT de tipo TTO',
'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Tiempo a Resolución',
'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Objetivo basado en SLT de tipo TTR',
'portal:itop-portal' => 'Portal de Usuario', // This is the portal name that will be displayed in portal dispatcher (eg. URL in menus)
'Page:DefaultTitle' => 'ITop - Portal de Usuario',
'Brick:Portal:UserProfile:Title' => 'Mi perfil',
'Brick:Portal:NewRequest:Title' => 'Nuevo Requerimiento',
'Brick:Portal:NewRequest:Title+' => '¿Necesita ayuda? Elija del catálogo de servicios y envíe su requerimiento a nuestros equipos de soporte.',
'Brick:Portal:OngoingRequests:Title' => 'Requerimientos en Proceso',
'Brick:Portal:OngoingRequests:Title+' => 'Revise sus requerimientos en proceso. Compruebe el progreso, agregue comentarios, adjunte documentos, entienda la solución. </ P>',
'Brick:Portal:OngoingRequests:Tab:OnGoing' => 'En proceso',
'Brick:Portal:OngoingRequests:Tab:Resolved' => 'Solucionado',
'Brick:Portal:ClosedRequests:Title' => 'Requerimientos Cerrados',
));

View File

@@ -100,32 +100,6 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Ne pas notifier',
));
//
// Class: lnkFunctionalCIToTicket
//
Dict::Add('FR FR', 'French', 'Français', array(
'Class:lnkFunctionalCIToTicket' => 'Lien CI / Ticket',
'Class:lnkFunctionalCIToTicket+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id' => 'Ticket',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref' => 'Référence',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title' => 'Titre Ticket',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id' => 'CI',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name' => 'Nom CI',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact' => 'Impact (texte)',
'Class:lnkFunctionalCIToTicket/Attribute:impact+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code' => 'Impact',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Ajouté manuellement',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Calculé',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Non impacté',
));
//
// Class: WorkOrder
//
@@ -182,7 +156,6 @@ Dict::Add('FR FR', 'French', 'Français', array(
'WorkOrder:Details' => 'Détails',
'WorkOrder:Moreinfo' => 'Informations complémentaires',
'Tickets:ResolvedFrom' => 'Résolu via %1$s',
'Class:cmdbAbstractObject/Method:Set' => 'Set (initialiser)',
'Class:cmdbAbstractObject/Method:Set+' => 'Initialiser un champ avec une valeur statique',
'Class:cmdbAbstractObject/Method:Set/Param:1' => 'Champ Cible',
@@ -227,15 +200,4 @@ Dict::Add('FR FR', 'French', 'Français', array(
'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Objectif calculé à partir d\'un SLT de type TTO',
'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Temps de Résolution (TTR)',
'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Objectif calculé à partir d\'un SLT de type TTR',
'portal:itop-portal' => 'Portail standard', // This is the portal name that will be displayed in portal dispatcher (eg. URL in menus)
'Page:DefaultTitle' => '%1$s - Portail utilisateur',
'Brick:Portal:UserProfile:Title' => 'Mon profil',
'Brick:Portal:NewRequest:Title' => 'Nouvelle requête',
'Brick:Portal:NewRequest:Title+' => '<p>Besoin d\'assistance&nbsp;?</p><p>Choisissez un service (assistance ou dépannage) et soumettez votre requête à nos équipes de support.</p>',
'Brick:Portal:OngoingRequests:Title' => 'Requêtes en cours',
'Brick:Portal:OngoingRequests:Title+' => '<p>Suivez vos requêtes en cours.</p><p>Consultez l\'avancement, ajoutez des commentaires ou des pièces jointes, validez la solution.</p>',
'Brick:Portal:OngoingRequests:Tab:OnGoing' => 'Ouvertes',
'Brick:Portal:OngoingRequests:Tab:Resolved' => 'Résolues',
'Brick:Portal:ClosedRequests:Title' => 'Requêtes fermées',
));

View File

@@ -97,32 +97,6 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Do not notify~~',
));
//
// Class: lnkFunctionalCIToTicket
//
Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
'Class:lnkFunctionalCIToTicket' => 'Link FunctionalCI / Ticket~~',
'Class:lnkFunctionalCIToTicket+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id' => 'Ticket~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref' => 'Ref~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title' => 'Ticket title~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id' => 'CI~~',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name' => 'CI Name~~',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact' => 'Impact (text)~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code' => 'Impact~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Added manually~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Computed~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Not impacted~~',
));
//
// Class: WorkOrder
//
@@ -224,15 +198,4 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array(
'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTO~~',
'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Time To Resolve~~',
'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTR~~',
'portal:itop-portal' => 'Standard portal~~', // This is the portal name that will be displayed in portal dispatcher (eg. URL in menus)
'Page:DefaultTitle' => '%1$s - User portal~~',
'Brick:Portal:UserProfile:Title' => 'My profile~~',
'Brick:Portal:NewRequest:Title' => 'New request~~',
'Brick:Portal:NewRequest:Title+' => '<p>Need help?</p><p>Pick from the services catalog and submit your request to our support teams.</p>~~',
'Brick:Portal:OngoingRequests:Title' => 'Ongoing requests~~',
'Brick:Portal:OngoingRequests:Title+' => '<p>Follow up with your ongoing requests.</p><p>Check the progress, add comments, attach documents, acknowledge the solution.</p>~~',
'Brick:Portal:OngoingRequests:Tab:OnGoing' => 'Open~~',
'Brick:Portal:OngoingRequests:Tab:Resolved' => 'Resolved~~',
'Brick:Portal:ClosedRequests:Title' => 'Closed requests~~',
));

View File

@@ -97,32 +97,6 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array(
'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Do not notify~~',
));
//
// Class: lnkFunctionalCIToTicket
//
Dict::Add('IT IT', 'Italian', 'Italiano', array(
'Class:lnkFunctionalCIToTicket' => 'Link FunctionalCI / Ticket~~',
'Class:lnkFunctionalCIToTicket+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id' => 'Ticket~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref' => 'Ref~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title' => 'Ticket title~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id' => 'CI~~',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name' => 'CI Name~~',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact' => 'Impact (text)~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code' => 'Impact~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Added manually~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Computed~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Not impacted~~',
));
//
// Class: WorkOrder
//
@@ -224,15 +198,4 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array(
'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTO~~',
'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Time To Resolve~~',
'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTR~~',
'portal:itop-portal' => 'Standard portal~~', // This is the portal name that will be displayed in portal dispatcher (eg. URL in menus)
'Page:DefaultTitle' => '%1$s - User portal~~',
'Brick:Portal:UserProfile:Title' => 'Il Mio Profilo',
'Brick:Portal:NewRequest:Title' => 'Nuova Richiesta',
'Brick:Portal:NewRequest:Title+' => '<p>Hai bisogno di aiuto?</p><p>Cerca nel catalogo dei servizi e inviaci una richiesta al nostro supporto.</p>',
'Brick:Portal:OngoingRequests:Title' => 'Richieste in corso',
'Brick:Portal:OngoingRequests:Title+' => '<p>Segui le tue richieste in corso.</p><p>Verifica i progressi, aggiungi dei commenti, allega i documenti, scopri la soluzione.</p>',
'Brick:Portal:OngoingRequests:Tab:OnGoing' => 'Aperte',
'Brick:Portal:OngoingRequests:Tab:Resolved' => 'Risolte',
'Brick:Portal:ClosedRequests:Title' => 'Richieste Chiuse',
));

View File

@@ -97,32 +97,6 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Do not notify~~',
));
//
// Class: lnkFunctionalCIToTicket
//
Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:lnkFunctionalCIToTicket' => 'リンク 機能的CI/チケット',
'Class:lnkFunctionalCIToTicket+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id' => 'チケット',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref' => '参照',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title' => 'Ticket title~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id' => 'CI',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name' => 'CI名',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact' => 'インパクト',
'Class:lnkFunctionalCIToTicket/Attribute:impact+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code' => 'Impact~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Added manually~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Computed~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Not impacted~~',
));
//
// Class: WorkOrder
//
@@ -224,15 +198,4 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTO~~',
'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Time To Resolve~~',
'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTR~~',
'portal:itop-portal' => 'Standard portal~~', // This is the portal name that will be displayed in portal dispatcher (eg. URL in menus)
'Page:DefaultTitle' => '%1$s - User portal~~',
'Brick:Portal:UserProfile:Title' => 'My profile~~',
'Brick:Portal:NewRequest:Title' => 'New request~~',
'Brick:Portal:NewRequest:Title+' => '<p>Need help?</p><p>Pick from the services catalog and submit your request to our support teams.</p>~~',
'Brick:Portal:OngoingRequests:Title' => 'Ongoing requests~~',
'Brick:Portal:OngoingRequests:Title+' => '<p>Follow up with your ongoing requests.</p><p>Check the progress, add comments, attach documents, acknowledge the solution.</p>~~',
'Brick:Portal:OngoingRequests:Tab:OnGoing' => 'Open~~',
'Brick:Portal:OngoingRequests:Tab:Resolved' => 'Resolved~~',
'Brick:Portal:ClosedRequests:Title' => 'Closed requests~~',
));

View File

@@ -134,29 +134,31 @@ class _Ticket extends cmdbAbstractObject
public function UpdateImpactedItems()
{
require_once(APPROOT.'core/displayablegraph.class.inc.php');
/** @var ormLinkSet $oContactsSet */
$oContactsSet = $this->Get('contacts_list');
/** @var ormLinkSet $oCIsSet */
$oCIsSet = $this->Get('functionalcis_list');
$aCIsToImpactCode = array();
$aSources = array();
$aExcluded = array();
foreach ($oCIsSet as $oLink)
if (MetaModel::IsValidClass('FunctionalCI'))
{
$iKey = $oLink->Get('functionalci_id');
$aCIsToImpactCode[$iKey] = array('link' => $oLink->GetKey(), 'code' => $oLink->Get('impact_code'));
if ($oLink->Get('impact_code') == 'manual')
/** @var ormLinkSet $oCIsSet */
$oCIsSet = $this->Get('functionalcis_list');
foreach ($oCIsSet as $oLink)
{
$oObj = MetaModel::GetObject('FunctionalCI', $iKey);
$aSources[$iKey] = $oObj;
}
else if ($oLink->Get('impact_code') == 'not_impacted')
{
$oObj = MetaModel::GetObject('FunctionalCI', $iKey);
$aExcluded[] = $oObj;
$iKey = $oLink->Get('functionalci_id');
$aCIsToImpactCode[$iKey] = array('link' => $oLink->GetKey(), 'code' => $oLink->Get('impact_code'));
if ($oLink->Get('impact_code') == 'manual')
{
$oObj = MetaModel::GetObject('FunctionalCI', $iKey);
$aSources[$iKey] = $oObj;
}
else if ($oLink->Get('impact_code') == 'not_impacted')
{
$oObj = MetaModel::GetObject('FunctionalCI', $iKey);
$aExcluded[] = $oObj;
}
}
}
$aContactsToRoleCode = array();
@@ -258,7 +260,10 @@ class _Ticket extends cmdbAbstractObject
break;
}
}
$this->Set('functionalcis_list', $oCIsSet);
if (MetaModel::IsValidClass('FunctionalCI'))
{
$this->Set('functionalcis_list', $oCIsSet);
}
$this->Set('contacts_list', $oContactsSet);
}

View File

@@ -13,10 +13,10 @@ SetupWebPage::AddModule(
// Setup
//
'dependencies' => array(
'itop-config-mgmt/2.4.0',
'itop-structure/2.7.1',
),
'mandatory' => true,
'visible' => false,
'mandatory' => false,
'visible' => true,
'installer' => 'TicketsInstaller',
// Components

View File

@@ -116,32 +116,6 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Niet verwittigen',
));
//
// Class: lnkFunctionalCIToTicket
//
Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:lnkFunctionalCIToTicket' => 'Link Functioneel CI / Ticket',
'Class:lnkFunctionalCIToTicket+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id' => 'Ticket',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref' => 'Referentie',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title' => 'Titel ticket',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id' => 'CI',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name' => 'Naam CI',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact' => 'Impact',
'Class:lnkFunctionalCIToTicket/Attribute:impact+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code' => 'Impact',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Manueel toegevoegd',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Automatisch afgeleid',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Niet geïmpacteerd',
));
//
// Class: WorkOrder
//
@@ -243,15 +217,4 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array(
'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Doel gebaseerd op een SLT (TTO)',
'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Time To Resolve',
'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Doel gebaseerd op een SLT (TTR)',
'portal:itop-portal' => 'Standaard portaal', // This is the portal name that will be displayed in portal dispatcher (eg. URL in menus)
'Page:DefaultTitle' => '%1$s - Gebruikersportaal',
'Brick:Portal:UserProfile:Title' => 'Mijn profiel',
'Brick:Portal:NewRequest:Title' => 'Nieuw verzoek',
'Brick:Portal:NewRequest:Title+' => '<p>Hulp nodig?</p><p>Selecteer de categorie uit de servicecatalogus en verstuur jouw verzoek naar onze supportteams.</p>',
'Brick:Portal:OngoingRequests:Title' => 'Lopende verzoeken',
'Brick:Portal:OngoingRequests:Title+' => '<p>Verder gaan met jouw openstaande verzoeken.</p><p>Controleer de voortgang, voeg commentaar of documenten toe, bevestig de geboden oplossing.</p>',
'Brick:Portal:OngoingRequests:Tab:OnGoing' => 'Openstaand',
'Brick:Portal:OngoingRequests:Tab:Resolved' => 'Opgelost',
'Brick:Portal:ClosedRequests:Title' => 'Gesloten verzoeken',
));

View File

@@ -111,32 +111,6 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Não notificar',
));
//
// Class: lnkFunctionalCIToTicket
//
Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
'Class:lnkFunctionalCIToTicket' => 'Link CI / Solicitação',
'Class:lnkFunctionalCIToTicket+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id' => 'Solicitação',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref' => 'Ref',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title' => 'Título do bilhete',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id' => 'CIs',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name' => 'Nome CI',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact' => 'Impacto',
'Class:lnkFunctionalCIToTicket/Attribute:impact+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code' => 'Impacto',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Adicionado manualmente',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Computado',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Não impactado',
));
//
// Class: WorkOrder
//
@@ -238,15 +212,4 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array(
'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Objetivo baseado em um SLT do tipo TTO',
'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Time To Resolve~~',
'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Objetivo baseado em um SLT do tipo TTR',
'portal:itop-portal' => 'Standard portal~~', // This is the portal name that will be displayed in portal dispatcher (eg. URL in menus)
'Page:DefaultTitle' => 'iTop - Portal do Usuário',
'Brick:Portal:UserProfile:Title' => 'Meu Perfil',
'Brick:Portal:NewRequest:Title' => 'Nova Solicitação',
'Brick:Portal:NewRequest:Title+' => '<p>Precisa de ajuda?</p><p>Escolha no Catálogo de Serviços e envie sua solicitação para nossas equipes de suporte.</p>',
'Brick:Portal:OngoingRequests:Title' => 'Em andamento',
'Brick:Portal:OngoingRequests:Title+' => '<p>Acompanhar suas solicitações em andamento, adicionar comentários, anexar documentos e confirmar a solução.</p>',
'Brick:Portal:OngoingRequests:Tab:OnGoing' => 'Abrir',
'Brick:Portal:OngoingRequests:Tab:Resolved' => 'Resolvido',
'Brick:Portal:ClosedRequests:Title' => 'Fechar solicitações',
));

View File

@@ -89,32 +89,6 @@ Dict::Add('RU RU', 'Russian', 'Русский', array(
'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Не уведомлять',
));
//
// Class: lnkFunctionalCIToTicket
//
Dict::Add('RU RU', 'Russian', 'Русский', array(
'Class:lnkFunctionalCIToTicket' => 'Связь Функциональная КЕ/Тикет',
'Class:lnkFunctionalCIToTicket+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id' => 'Тикет',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref' => 'Тикет',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title' => 'Название тикета',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id' => 'КЕ',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name' => 'КЕ',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact' => 'Влияние (текст)',
'Class:lnkFunctionalCIToTicket/Attribute:impact+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code' => 'Влияние',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Добавлено вручную',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Вычислено',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Не влияет',
));
//
// Class: WorkOrder
//
@@ -216,15 +190,4 @@ Dict::Add('RU RU', 'Russian', 'Русский', array(
'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTO~~',
'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Time To Resolve~~',
'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTR~~',
'portal:itop-portal' => 'Пользовательский портал', // This is the portal name that will be displayed in portal dispatcher (eg. URL in menus)
'Page:DefaultTitle' => '%1$s - Пользовательский портал',
'Brick:Portal:UserProfile:Title' => 'Мой профиль',
'Brick:Portal:NewRequest:Title' => 'Новый запрос',
'Brick:Portal:NewRequest:Title+' => '<p>Нужна помощь?</p><p>Выберите услугу из&nbsp;каталога и&nbsp;отправьте свой запрос команде поддержки.</p>',
'Brick:Portal:OngoingRequests:Title' => 'Текущие запросы',
'Brick:Portal:OngoingRequests:Title+' => '<p>Следите за&nbsp;открытыми запросами.</p><p>Проверяйте ход решения, добавляйте комментарии и&nbsp;вложения, подтверждайте решение.</p>',
'Brick:Portal:OngoingRequests:Tab:OnGoing' => 'В работе',
'Brick:Portal:OngoingRequests:Tab:Resolved' => 'Решенные',
'Brick:Portal:ClosedRequests:Title' => 'Закрытые запросы',
));

View File

@@ -110,32 +110,6 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Do not notify~~',
));
//
// Class: lnkFunctionalCIToTicket
//
Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:lnkFunctionalCIToTicket' => 'väzba - Komponent / Ticket',
'Class:lnkFunctionalCIToTicket+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id' => 'Ticket',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref' => 'Referencia na Ticket',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title' => 'Ticket title~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id' => 'Komponent',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name' => 'Názov CI',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact' => 'Dopad',
'Class:lnkFunctionalCIToTicket/Attribute:impact+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code' => 'Impact~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Added manually~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Computed~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Not impacted~~',
));
//
// Class: WorkOrder
//
@@ -237,15 +211,4 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array(
'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTO~~',
'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Time To Resolve~~',
'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTR~~',
'portal:itop-portal' => 'Standard portal~~', // This is the portal name that will be displayed in portal dispatcher (eg. URL in menus)
'Page:DefaultTitle' => '%1$s - User portal~~',
'Brick:Portal:UserProfile:Title' => 'My profile~~',
'Brick:Portal:NewRequest:Title' => 'New request~~',
'Brick:Portal:NewRequest:Title+' => '<p>Need help?</p><p>Pick from the services catalog and submit your request to our support teams.</p>~~',
'Brick:Portal:OngoingRequests:Title' => 'Ongoing requests~~',
'Brick:Portal:OngoingRequests:Title+' => '<p>Follow up with your ongoing requests.</p><p>Check the progress, add comments, attach documents, acknowledge the solution.</p>~~',
'Brick:Portal:OngoingRequests:Tab:OnGoing' => 'Open~~',
'Brick:Portal:OngoingRequests:Tab:Resolved' => 'Resolved~~',
'Brick:Portal:ClosedRequests:Title' => 'Closed requests~~',
));

View File

@@ -115,32 +115,6 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Do not notify~~',
));
//
// Class: lnkFunctionalCIToTicket
//
Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
'Class:lnkFunctionalCIToTicket' => 'Link FunctionalCI / Ticket~~',
'Class:lnkFunctionalCIToTicket+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id' => 'Ticket~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref' => 'Ref~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title' => 'Ticket title~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id' => 'CI~~',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name' => 'CI Name~~',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact' => 'Impact (text)~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code' => 'Impact~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Added manually~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Computed~~',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Not impacted~~',
));
//
// Class: WorkOrder
//
@@ -242,15 +216,4 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array(
'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTO~~',
'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Time To Resolve~~',
'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTR~~',
'portal:itop-portal' => 'Standard portal~~', // This is the portal name that will be displayed in portal dispatcher (eg. URL in menus)
'Page:DefaultTitle' => '%1$s - User portal~~',
'Brick:Portal:UserProfile:Title' => 'My profile~~',
'Brick:Portal:NewRequest:Title' => 'New request~~',
'Brick:Portal:NewRequest:Title+' => '<p>Need help?</p><p>Pick from the services catalog and submit your request to our support teams.</p>~~',
'Brick:Portal:OngoingRequests:Title' => 'Ongoing requests~~',
'Brick:Portal:OngoingRequests:Title+' => '<p>Follow up with your ongoing requests.</p><p>Check the progress, add comments, attach documents, acknowledge the solution.</p>~~',
'Brick:Portal:OngoingRequests:Tab:OnGoing' => 'Open~~',
'Brick:Portal:OngoingRequests:Tab:Resolved' => 'Resolved~~',
'Brick:Portal:ClosedRequests:Title' => 'Closed requests~~',
));

View File

@@ -110,32 +110,6 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => '不通知',
));
//
// Class: lnkFunctionalCIToTicket
//
Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Class:lnkFunctionalCIToTicket' => '关联 功能配置项/工单',
'Class:lnkFunctionalCIToTicket+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id' => '工单',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref' => '工单编号',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title' => 'Ticket title~~',
'Class:lnkFunctionalCIToTicket/Attribute:ticket_title+' => '~~',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id' => '配置项',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name' => '配置项名称',
'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact' => '影响 (文本)',
'Class:lnkFunctionalCIToTicket/Attribute:impact+' => '',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code' => '影响',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => '手动添加',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => '自动添加',
'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => '不通知',
));
//
// Class: WorkOrder
//
@@ -237,15 +211,4 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'SLT 的响应时间',
'Class:ResponseTicketTTR/Interface:iMetricComputer' => '解决时间',
'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'SLT 的解决时间',
'portal:itop-portal' => '标准门户', // This is the portal name that will be displayed in portal dispatcher (eg. URL in menus)
'Page:DefaultTitle' => 'iTop - 用户门户',
'Brick:Portal:UserProfile:Title' => '我的资料',
'Brick:Portal:NewRequest:Title' => '新建工单',
'Brick:Portal:NewRequest:Title+' => '<p>需要帮助?</p><p>选择子服务,然后提交工单给我们的支持团队.</p>',
'Brick:Portal:OngoingRequests:Title' => '正在处理的工单',
'Brick:Portal:OngoingRequests:Title+' => '<p>跟踪正在处理的工单.</p><p>查询进度, 添加留言, 添加附件, 确认解决方案.</p>',
'Brick:Portal:OngoingRequests:Tab:OnGoing' => '正在处理',
'Brick:Portal:OngoingRequests:Tab:Resolved' => '已解决',
'Brick:Portal:ClosedRequests:Title' => '已关闭的工单',
));