mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
1057 lines
39 KiB
XML
Executable File
1057 lines
39 KiB
XML
Executable File
<?xml version="1.0" encoding="UTF-8"?>
|
|
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.3">
|
|
<classes>
|
|
<class id="Change" _delta="define">
|
|
<parent>Ticket</parent>
|
|
<properties>
|
|
<comment><![CDATA[/**
|
|
* Persistent classes for a CMDB
|
|
*
|
|
* @copyright Copyright (C) 2010-2024 Combodo SAS
|
|
* @license http://opensource.org/licenses/AGPL-3.0
|
|
*/]]></comment>
|
|
<category>bizmodel,searchable,changemgmt</category>
|
|
<abstract>false</abstract>
|
|
<key_type>autoincrement</key_type>
|
|
<db_table>ticket_change</db_table>
|
|
<db_key_field>id</db_key_field>
|
|
<db_final_class_field/>
|
|
<naming>
|
|
<attributes>
|
|
<attribute id="ref"/>
|
|
</attributes>
|
|
<complementary_attributes>
|
|
<attribute id="title"/>
|
|
</complementary_attributes>
|
|
</naming>
|
|
<fields_semantic>
|
|
<state_attribute>status</state_attribute>
|
|
</fields_semantic>
|
|
<style>
|
|
<icon>../../images/icons/icons8-change.svg</icon>
|
|
</style>
|
|
<reconciliation>
|
|
<attributes>
|
|
<attribute id="ref"/>
|
|
</attributes>
|
|
</reconciliation>
|
|
<order>
|
|
<columns>
|
|
<column id="ref" ascending="false"/>
|
|
</columns>
|
|
</order>
|
|
</properties>
|
|
<fields>
|
|
<field id="status" xsi:type="AttributeEnum">
|
|
<sort_type>rank</sort_type>
|
|
<values>
|
|
<value id="new">
|
|
<code>new</code>
|
|
<rank>10</rank>
|
|
<style>
|
|
<main_color>$ibo-lifecycle-new-state-primary-color</main_color>
|
|
<complementary_color>$ibo-lifecycle-new-state-secondary-color</complementary_color>
|
|
<decoration_classes/>
|
|
</style>
|
|
</value>
|
|
<value id="assigned">
|
|
<code>assigned</code>
|
|
<rank>40</rank>
|
|
<style>
|
|
<main_color>$ibo-lifecycle-neutral-state-primary-color</main_color>
|
|
<complementary_color>$ibo-lifecycle-neutral-state-secondary-color</complementary_color>
|
|
<decoration_classes/>
|
|
</style>
|
|
</value>
|
|
<value id="planned">
|
|
<code>planned</code>
|
|
<rank>50</rank>
|
|
</value>
|
|
<value id="approved">
|
|
<code>approved</code>
|
|
<rank>60</rank>
|
|
<style>
|
|
<main_color>$ibo-lifecycle-success-state-primary-color</main_color>
|
|
<complementary_color>$ibo-lifecycle-success-state-secondary-color</complementary_color>
|
|
<decoration_classes>fas fa-user-check</decoration_classes>
|
|
</style>
|
|
</value>
|
|
<value id="closed">
|
|
<code>closed</code>
|
|
<rank>100</rank>
|
|
<style>
|
|
<main_color>$ibo-lifecycle-frozen-state-primary-color</main_color>
|
|
<complementary_color>$ibo-lifecycle-frozen-state-secondary-color</complementary_color>
|
|
<decoration_classes/>
|
|
</style>
|
|
</value>
|
|
<value id="rejected">
|
|
<code>rejected</code>
|
|
<rank>30</rank>
|
|
<style>
|
|
<main_color>$ibo-lifecycle-failure-state-primary-color</main_color>
|
|
<complementary_color>$ibo-lifecycle-failure-state-secondary-color</complementary_color>
|
|
<decoration_classes>fas fa-user-times</decoration_classes>
|
|
</style>
|
|
</value>
|
|
</values>
|
|
<default_style>
|
|
<main_color>$ibo-lifecycle-neutral-state-primary-color</main_color>
|
|
<complementary_color>$ibo-lifecycle-neutral-state-secondary-color</complementary_color>
|
|
<decoration_classes/>
|
|
</default_style>
|
|
<sql>status</sql>
|
|
<default_value>new</default_value>
|
|
<is_null_allowed>true</is_null_allowed>
|
|
</field>
|
|
<field id="category" xsi:type="AttributeEnum">
|
|
<sort_type>label</sort_type>
|
|
<values>
|
|
<value id="hardware">
|
|
<code>hardware</code>
|
|
</value>
|
|
<value id="software">
|
|
<code>software</code>
|
|
</value>
|
|
<value id="system">
|
|
<code>system</code>
|
|
</value>
|
|
<value id="network">
|
|
<code>network</code>
|
|
</value>
|
|
<value id="application">
|
|
<code>application</code>
|
|
</value>
|
|
<value id="other">
|
|
<code>other</code>
|
|
</value>
|
|
</values>
|
|
<sql>category</sql>
|
|
<default_value>hardware</default_value>
|
|
<is_null_allowed>true</is_null_allowed>
|
|
</field>
|
|
<field id="reject_reason" xsi:type="AttributeText">
|
|
<sql>reject_reason</sql>
|
|
<default_value/>
|
|
<is_null_allowed>true</is_null_allowed>
|
|
</field>
|
|
<field id="changemanager_id" xsi:type="AttributeExternalKey">
|
|
<sql>changemanager_id</sql>
|
|
<target_class>Person</target_class>
|
|
<is_null_allowed>true</is_null_allowed>
|
|
<on_target_delete>DEL_MANUAL</on_target_delete>
|
|
</field>
|
|
<field id="changemanager_email" xsi:type="AttributeExternalField">
|
|
<extkey_attcode>changemanager_id</extkey_attcode>
|
|
<target_attcode>email</target_attcode>
|
|
</field>
|
|
<field id="parent_id" xsi:type="AttributeExternalKey">
|
|
<filter><![CDATA[SELECT Change WHERE id != :this->id]]></filter>
|
|
<sql>parent_id</sql>
|
|
<target_class>Change</target_class>
|
|
<is_null_allowed>true</is_null_allowed>
|
|
<on_target_delete>DEL_MANUAL</on_target_delete>
|
|
<jointype/>
|
|
</field>
|
|
<field id="parent_name" xsi:type="AttributeExternalField">
|
|
<extkey_attcode>parent_id</extkey_attcode>
|
|
<target_attcode>ref</target_attcode>
|
|
<is_null_allowed>true</is_null_allowed>
|
|
</field>
|
|
<field id="creation_date" xsi:type="AttributeDateTime">
|
|
<sql>creation_date</sql>
|
|
<default_value/>
|
|
<is_null_allowed>true</is_null_allowed>
|
|
</field>
|
|
<field id="approval_date" xsi:type="AttributeDateTime">
|
|
<sql>approval_date</sql>
|
|
<default_value/>
|
|
<is_null_allowed>true</is_null_allowed>
|
|
</field>
|
|
<field id="fallback_plan" xsi:type="AttributeText">
|
|
<sql>fallback_plan</sql>
|
|
<default_value/>
|
|
<is_null_allowed>true</is_null_allowed>
|
|
</field>
|
|
<field id="outage" xsi:type="AttributeEnum">
|
|
<values>
|
|
<value id="yes">
|
|
<code>yes</code>
|
|
</value>
|
|
<value id="no">
|
|
<code>no</code>
|
|
</value>
|
|
</values>
|
|
<sql>outage</sql>
|
|
<default_value>no</default_value>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
</field>
|
|
<field id="related_request_list" xsi:type="AttributeLinkedSet">
|
|
<linked_class>UserRequest</linked_class>
|
|
<ext_key_to_me>parent_change_id</ext_key_to_me>
|
|
<edit_mode>add_remove</edit_mode>
|
|
<count_min>0</count_min>
|
|
<count_max>0</count_max>
|
|
</field>
|
|
<field id="related_incident_list" xsi:type="AttributeLinkedSet">
|
|
<linked_class>Incident</linked_class>
|
|
<ext_key_to_me>parent_change_id</ext_key_to_me>
|
|
<edit_mode>add_remove</edit_mode>
|
|
<count_min>0</count_min>
|
|
<count_max>0</count_max>
|
|
</field>
|
|
<field id="related_problems_list" xsi:type="AttributeLinkedSet">
|
|
<linked_class>Problem</linked_class>
|
|
<ext_key_to_me>related_change_id</ext_key_to_me>
|
|
<edit_mode>add_remove</edit_mode>
|
|
<count_min>0</count_min>
|
|
<count_max>0</count_max>
|
|
</field>
|
|
<field id="child_changes_list" xsi:type="AttributeLinkedSet">
|
|
<linked_class>Change</linked_class>
|
|
<ext_key_to_me>parent_id</ext_key_to_me>
|
|
<edit_mode>add_remove</edit_mode>
|
|
<filter><![CDATA[SELECT Change WHERE id != :this->id]]></filter>
|
|
<count_min>0</count_min>
|
|
<count_max>0</count_max>
|
|
</field>
|
|
</fields>
|
|
<lifecycle>
|
|
<highlight_scale>
|
|
<item id="approved">
|
|
<rank>1</rank>
|
|
<color>HIGHLIGHT_CLASS_NONE</color>
|
|
<icon>images/change-approved.svg</icon>
|
|
</item>
|
|
<item id="rejected">
|
|
<rank>2</rank>
|
|
<color>HIGHLIGHT_CLASS_NONE</color>
|
|
<icon>images/change-rejected.svg</icon>
|
|
</item>
|
|
<item id="closed">
|
|
<rank>3</rank>
|
|
<color>HIGHLIGHT_CLASS_NONE</color>
|
|
<icon>images/change-closed.svg</icon>
|
|
</item>
|
|
</highlight_scale>
|
|
<stimuli>
|
|
<stimulus id="ev_assign" xsi:type="StimulusUserAction"/>
|
|
<stimulus id="ev_plan" xsi:type="StimulusUserAction"/>
|
|
<stimulus id="ev_reject" xsi:type="StimulusUserAction"/>
|
|
<stimulus id="ev_reopen" xsi:type="StimulusUserAction"/>
|
|
<stimulus id="ev_approve" xsi:type="StimulusUserAction"/>
|
|
<stimulus id="ev_finish" xsi:type="StimulusUserAction"/>
|
|
</stimuli>
|
|
<states>
|
|
<state id="new">
|
|
<flags>
|
|
<attribute id="ref">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="org_id">
|
|
<mandatory/>
|
|
</attribute>
|
|
<attribute id="title">
|
|
<mandatory/>
|
|
</attribute>
|
|
<attribute id="description">
|
|
<mandatory/>
|
|
</attribute>
|
|
<attribute id="last_update">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="close_date">
|
|
<hidden/>
|
|
</attribute>
|
|
<attribute id="reject_reason">
|
|
<hidden/>
|
|
</attribute>
|
|
<attribute id="creation_date">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="approval_date">
|
|
<hidden/>
|
|
</attribute>
|
|
<attribute id="caller_id">
|
|
<mandatory/>
|
|
</attribute>
|
|
<attribute id="team_id">
|
|
<hidden/>
|
|
</attribute>
|
|
<attribute id="agent_id">
|
|
<hidden/>
|
|
</attribute>
|
|
<attribute id="changemanager_id">
|
|
<hidden/>
|
|
</attribute>
|
|
<attribute id="outage">
|
|
<hidden/>
|
|
</attribute>
|
|
</flags>
|
|
<transitions>
|
|
<transition id="ev_assign">
|
|
<target>assigned</target>
|
|
<actions/>
|
|
</transition>
|
|
</transitions>
|
|
</state>
|
|
<state id="assigned">
|
|
<inherit_flags_from>new</inherit_flags_from>
|
|
<flags>
|
|
<attribute id="team_id">
|
|
<mandatory/>
|
|
<must_prompt/>
|
|
</attribute>
|
|
<attribute id="agent_id">
|
|
<mandatory/>
|
|
<must_prompt/>
|
|
</attribute>
|
|
<attribute id="changemanager_id">
|
|
<mandatory/>
|
|
<must_prompt/>
|
|
</attribute>
|
|
<attribute id="caller_id"/>
|
|
</flags>
|
|
<transitions>
|
|
<transition id="ev_plan">
|
|
<target>planned</target>
|
|
<actions/>
|
|
</transition>
|
|
</transitions>
|
|
</state>
|
|
<state id="planned">
|
|
<inherit_flags_from>assigned</inherit_flags_from>
|
|
<flags>
|
|
<attribute id="start_date">
|
|
<mandatory/>
|
|
<must_prompt/>
|
|
</attribute>
|
|
<attribute id="end_date">
|
|
<mandatory/>
|
|
<must_prompt/>
|
|
</attribute>
|
|
<attribute id="fallback_plan">
|
|
<mandatory/>
|
|
<must_prompt/>
|
|
</attribute>
|
|
<attribute id="caller_id">
|
|
<mandatory/>
|
|
</attribute>
|
|
<attribute id="outage">
|
|
<mandatory/>
|
|
<must_prompt/>
|
|
</attribute>
|
|
</flags>
|
|
<transitions>
|
|
<transition id="ev_reject">
|
|
<target>rejected</target>
|
|
<actions/>
|
|
</transition>
|
|
<transition id="ev_approve">
|
|
<target>approved</target>
|
|
<actions>
|
|
<action>
|
|
<verb>SetCurrentDate</verb>
|
|
<params>
|
|
<param xsi:type="attcode">approval_date</param>
|
|
</params>
|
|
</action>
|
|
<action>
|
|
<verb>Reset</verb>
|
|
<params>
|
|
<param xsi:type="attcode">reject_reason</param>
|
|
</params>
|
|
</action>
|
|
</actions>
|
|
</transition>
|
|
</transitions>
|
|
</state>
|
|
<state id="rejected">
|
|
<highlight>
|
|
<code>rejected</code>
|
|
</highlight>
|
|
<inherit_flags_from>assigned</inherit_flags_from>
|
|
<flags>
|
|
<attribute id="start_date">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="end_date">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="private_log">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="caller_id">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="fallback_plan">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="category">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="parent_id">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="org_id">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="title">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="description">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="reject_reason">
|
|
<mandatory/>
|
|
<must_prompt/>
|
|
</attribute>
|
|
<attribute id="approval_date">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="team_id">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="agent_id">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="changemanager_id">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="outage">
|
|
<read_only/>
|
|
</attribute>
|
|
</flags>
|
|
<transitions>
|
|
<transition id="ev_reopen">
|
|
<target>assigned</target>
|
|
<actions/>
|
|
</transition>
|
|
</transitions>
|
|
</state>
|
|
<state id="approved">
|
|
<highlight>
|
|
<code>approved</code>
|
|
</highlight>
|
|
<inherit_flags_from>planned</inherit_flags_from>
|
|
<flags>
|
|
<attribute id="private_log"/>
|
|
<attribute id="category"/>
|
|
<attribute id="parent_id"/>
|
|
<attribute id="org_id">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="title">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="description">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="start_date">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="end_date">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="reject_reason">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="creation_date">
|
|
<hidden/>
|
|
</attribute>
|
|
<attribute id="approval_date">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="caller_id">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="team_id">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="agent_id">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="changemanager_id">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="fallback_plan"/>
|
|
<attribute id="outage">
|
|
<read_only/>
|
|
</attribute>
|
|
</flags>
|
|
<transitions>
|
|
<transition id="ev_finish">
|
|
<target>closed</target>
|
|
<actions>
|
|
<action>
|
|
<verb>SetCurrentDate</verb>
|
|
<params>
|
|
<param xsi:type="attcode">close_date</param>
|
|
</params>
|
|
</action>
|
|
</actions>
|
|
</transition>
|
|
</transitions>
|
|
</state>
|
|
<state id="closed">
|
|
<highlight>
|
|
<code>closed</code>
|
|
</highlight>
|
|
<inherit_flags_from>approved</inherit_flags_from>
|
|
<flags>
|
|
<attribute id="close_date">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="creation_date">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="private_log">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="fallback_plan">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="category">
|
|
<read_only/>
|
|
</attribute>
|
|
<attribute id="parent_id">
|
|
<read_only/>
|
|
</attribute>
|
|
</flags>
|
|
<transitions/>
|
|
</state>
|
|
</states>
|
|
</lifecycle>
|
|
<methods>
|
|
<method id="GetTicketRefFormat">
|
|
<static>true</static>
|
|
<access>public</access>
|
|
<type>Overload-DBObject</type>
|
|
<code><![CDATA[
|
|
public static function GetTicketRefFormat()
|
|
{
|
|
return 'C-%06d';
|
|
}
|
|
]]></code>
|
|
</method>
|
|
<method id="OnInsert">
|
|
<static>false</static>
|
|
<access>protected</access>
|
|
<type>Overload-DBObject</type>
|
|
<code><![CDATA[
|
|
protected function OnInsert()
|
|
{
|
|
parent::OnInsert();
|
|
$this->SetIfNull('creation_date', time());
|
|
$this->SetIfNull('last_update', time());
|
|
}]]></code>
|
|
</method>
|
|
<method id="OnUpdate">
|
|
<static>false</static>
|
|
<access>protected</access>
|
|
<type>Overload-DBObject</type>
|
|
<code><![CDATA[
|
|
protected function OnUpdate()
|
|
{
|
|
parent::OnUpdate();
|
|
$this->Set('last_update', time());
|
|
}]]></code>
|
|
</method>
|
|
</methods>
|
|
<presentation>
|
|
<details>
|
|
<items>
|
|
<item id="functionalcis_list">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="contacts_list">
|
|
<rank>20</rank>
|
|
</item>
|
|
<item id="workorders_list">
|
|
<rank>30</rank>
|
|
</item>
|
|
<item id="related_request_list">
|
|
<rank>40</rank>
|
|
</item>
|
|
<item id="related_incident_list">
|
|
<rank>50</rank>
|
|
</item>
|
|
<item id="related_problems_list">
|
|
<rank>60</rank>
|
|
</item>
|
|
<item id="child_changes_list">
|
|
<rank>70</rank>
|
|
</item>
|
|
<item id="col:col1">
|
|
<rank>80</rank>
|
|
<items>
|
|
<item id="fieldset:Ticket:baseinfo">
|
|
<rank>10</rank>
|
|
<items>
|
|
<item id="ref">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="org_id">
|
|
<rank>20</rank>
|
|
</item>
|
|
<item id="status">
|
|
<rank>30</rank>
|
|
</item>
|
|
<item id="title">
|
|
<rank>40</rank>
|
|
</item>
|
|
<item id="description">
|
|
<rank>50</rank>
|
|
</item>
|
|
</items>
|
|
</item>
|
|
<item id="fieldset:Ticket:contact">
|
|
<rank>20</rank>
|
|
<items>
|
|
<item id="caller_id">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="team_id">
|
|
<rank>20</rank>
|
|
</item>
|
|
<item id="agent_id">
|
|
<rank>30</rank>
|
|
</item>
|
|
<item id="changemanager_id">
|
|
<rank>40</rank>
|
|
</item>
|
|
</items>
|
|
</item>
|
|
</items>
|
|
</item>
|
|
<item id="col:col2">
|
|
<rank>90</rank>
|
|
<items>
|
|
<item id="fieldset:Ticket:resolution">
|
|
<rank>10</rank>
|
|
<items>
|
|
<item id="category">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="outage">
|
|
<rank>15.1</rank>
|
|
</item>
|
|
<item id="reject_reason">
|
|
<rank>20</rank>
|
|
</item>
|
|
<item id="fallback_plan">
|
|
<rank>30</rank>
|
|
</item>
|
|
</items>
|
|
</item>
|
|
<item id="fieldset:Ticket:relation">
|
|
<rank>20</rank>
|
|
<items>
|
|
<item id="parent_id">
|
|
<rank>10</rank>
|
|
</item>
|
|
</items>
|
|
</item>
|
|
</items>
|
|
</item>
|
|
<item id="col:col3">
|
|
<rank>100</rank>
|
|
<items>
|
|
<item id="fieldset:Ticket:date">
|
|
<rank>10</rank>
|
|
<items>
|
|
<item id="creation_date">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="start_date">
|
|
<rank>20</rank>
|
|
</item>
|
|
<item id="end_date">
|
|
<rank>30</rank>
|
|
</item>
|
|
<item id="last_update">
|
|
<rank>40</rank>
|
|
</item>
|
|
<item id="approval_date">
|
|
<rank>50</rank>
|
|
</item>
|
|
<item id="close_date">
|
|
<rank>60</rank>
|
|
</item>
|
|
</items>
|
|
</item>
|
|
</items>
|
|
</item>
|
|
</items>
|
|
</details>
|
|
<search>
|
|
<items>
|
|
<item id="ref">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="title">
|
|
<rank>20</rank>
|
|
</item>
|
|
<item id="org_id">
|
|
<rank>30</rank>
|
|
</item>
|
|
<item id="status">
|
|
<rank>40</rank>
|
|
</item>
|
|
<item id="operational_status">
|
|
<rank>45</rank>
|
|
</item>
|
|
<item id="start_date">
|
|
<rank>50</rank>
|
|
</item>
|
|
<item id="end_date">
|
|
<rank>60</rank>
|
|
</item>
|
|
<item id="creation_date">
|
|
<rank>70</rank>
|
|
</item>
|
|
<item id="last_update">
|
|
<rank>80</rank>
|
|
</item>
|
|
<item id="close_date">
|
|
<rank>90</rank>
|
|
</item>
|
|
<item id="team_id">
|
|
<rank>100</rank>
|
|
</item>
|
|
<item id="agent_id">
|
|
<rank>110</rank>
|
|
</item>
|
|
<item id="changemanager_id">
|
|
<rank>120</rank>
|
|
</item>
|
|
</items>
|
|
</search>
|
|
<list>
|
|
<items>
|
|
<item id="title">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="org_id">
|
|
<rank>20</rank>
|
|
</item>
|
|
<item id="start_date">
|
|
<rank>30</rank>
|
|
</item>
|
|
<item id="end_date">
|
|
<rank>40</rank>
|
|
</item>
|
|
<item id="status">
|
|
<rank>50</rank>
|
|
</item>
|
|
<item id="category">
|
|
<rank>60</rank>
|
|
</item>
|
|
<item id="agent_id">
|
|
<rank>70</rank>
|
|
</item>
|
|
</items>
|
|
</list>
|
|
</presentation>
|
|
</class>
|
|
</classes>
|
|
<menus>
|
|
<menu id="ChangeManagement" xsi:type="MenuGroup" _delta="define">
|
|
<rank>50</rank>
|
|
<style>
|
|
<decoration_classes>fas fa-exchange-alt</decoration_classes>
|
|
</style>
|
|
</menu>
|
|
<menu id="Change:Overview" xsi:type="DashboardMenuNode" _delta="define">
|
|
<rank>0</rank>
|
|
<parent>ChangeManagement</parent>
|
|
<definition>
|
|
<layout>DashboardLayoutTwoCols</layout>
|
|
<title>UI:ChangeMgmtMenuOverview:Title</title>
|
|
<cells>
|
|
<cell id="0">
|
|
<rank>0</rank>
|
|
<dashlets>
|
|
<dashlet id="1" xsi:type="DashletGroupByTable">
|
|
<rank>0</rank>
|
|
<title>UI-ChangeManagementOverview-ChangeByCategory-last-7-days</title>
|
|
<query>SELECT Change WHERE creation_date > DATE_SUB(NOW(), INTERVAL 7 DAY)</query>
|
|
<group_by>category</group_by>
|
|
<style>table</style>
|
|
</dashlet>
|
|
</dashlets>
|
|
</cell>
|
|
<cell id="1">
|
|
<rank>1</rank>
|
|
<dashlets>
|
|
<dashlet id="2" xsi:type="DashletGroupByBars">
|
|
<rank>0</rank>
|
|
<title>UI-ChangeManagementOverview-Last-7-days</title>
|
|
<query>SELECT Change WHERE creation_date > DATE_SUB(NOW(), INTERVAL 7 DAY)</query>
|
|
<group_by>start_date:day_of_month</group_by>
|
|
<style>bars</style>
|
|
</dashlet>
|
|
</dashlets>
|
|
</cell>
|
|
<cell id="2">
|
|
<rank>2</rank>
|
|
<dashlets>
|
|
<dashlet id="3" xsi:type="DashletGroupByTable">
|
|
<rank>0</rank>
|
|
<title>UI-ChangeManagementOverview-ChangeByDomain-last-7-days</title>
|
|
<query>SELECT Change WHERE creation_date > DATE_SUB(NOW(), INTERVAL 7 DAY)</query>
|
|
<group_by>finalclass</group_by>
|
|
<style>table</style>
|
|
</dashlet>
|
|
</dashlets>
|
|
</cell>
|
|
<cell id="3">
|
|
<rank>3</rank>
|
|
<dashlets>
|
|
<dashlet id="4" xsi:type="DashletGroupByTable">
|
|
<rank>0</rank>
|
|
<title>UI-ChangeManagementOverview-ChangeByStatus-last-7-days</title>
|
|
<query>SELECT Change WHERE creation_date > DATE_SUB(NOW(), INTERVAL 7 DAY)</query>
|
|
<group_by>status</group_by>
|
|
<style>table</style>
|
|
</dashlet>
|
|
</dashlets>
|
|
</cell>
|
|
</cells>
|
|
</definition>
|
|
</menu>
|
|
<menu id="NewChange" xsi:type="NewObjectMenuNode" _delta="define">
|
|
<rank>1</rank>
|
|
<parent>ChangeManagement</parent>
|
|
<class>Change</class>
|
|
</menu>
|
|
<menu id="SearchChanges" xsi:type="SearchMenuNode" _delta="define">
|
|
<rank>2</rank>
|
|
<parent>ChangeManagement</parent>
|
|
<class>Change</class>
|
|
</menu>
|
|
<menu id="Change:Shortcuts" xsi:type="TemplateMenuNode" _delta="define">
|
|
<rank>3</rank>
|
|
<parent>ChangeManagement</parent>
|
|
</menu>
|
|
<menu id="MyChanges" xsi:type="OQLMenuNode" _delta="define">
|
|
<rank>1</rank>
|
|
<parent>Change:Shortcuts</parent>
|
|
<oql><![CDATA[SELECT Change WHERE agent_id = :current_contact_id AND status NOT IN ("closed")]]></oql>
|
|
<do_search/>
|
|
<auto_reload>fast</auto_reload>
|
|
</menu>
|
|
<menu id="Changes" xsi:type="OQLMenuNode" _delta="define">
|
|
<rank>2</rank>
|
|
<parent>Change:Shortcuts</parent>
|
|
<oql><![CDATA[SELECT Change WHERE status != "closed"]]></oql>
|
|
<do_search>1</do_search>
|
|
<auto_reload>fast</auto_reload>
|
|
</menu>
|
|
<menu id="WaitingApproval" xsi:type="OQLMenuNode" _delta="define">
|
|
<rank>3</rank>
|
|
<parent>Change:Shortcuts</parent>
|
|
<oql><![CDATA[SELECT Change WHERE status IN ("planned")]]></oql>
|
|
<do_search/>
|
|
<auto_reload>fast</auto_reload>
|
|
</menu>
|
|
</menus>
|
|
<module_parameters>
|
|
<parameters id="itop-tickets">
|
|
<relation_context>
|
|
<UserRequest>
|
|
<impacts>
|
|
<down>
|
|
<items type="array">
|
|
<item id="open_changes" _delta="define">
|
|
<oql><![CDATA[
|
|
SELECT FCI, C
|
|
FROM FunctionalCI AS FCI
|
|
JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id
|
|
JOIN Change AS C ON L.ticket_id = C.id
|
|
WHERE (C.outage = 'yes')
|
|
AND (C.status NOT IN ('closed', 'rejected'))
|
|
AND (L.impact_code != 'not_impacted')
|
|
AND (C.id != :this->id)
|
|
]]></oql>
|
|
<dict>Tickets:Related:OpenChanges</dict>
|
|
<icon>itop-change-mgmt/images/change-ongoing.svg</icon>
|
|
<default>yes</default>
|
|
</item>
|
|
<item id="recent_changes" _delta="define">
|
|
<oql><![CDATA[
|
|
SELECT FCI, C
|
|
FROM FunctionalCI AS FCI
|
|
JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id
|
|
JOIN Change AS C ON L.ticket_id = C.id
|
|
WHERE (C.outage = 'yes')
|
|
AND (C.status NOT IN ('closed'))
|
|
AND (L.impact_code != 'not_impacted')
|
|
AND (C.id != :this->id)
|
|
AND (C.end_date < NOW() AND C.end_date > DATE_SUB(NOW(), INTERVAL 3 DAY ))
|
|
]]></oql>
|
|
<dict>Tickets:Related:RecentChanges</dict>
|
|
<icon>itop-change-mgmt/images/change-done.svg</icon>
|
|
<default>no</default>
|
|
</item>
|
|
</items>
|
|
</down>
|
|
</impacts>
|
|
</UserRequest>
|
|
<Incident>
|
|
<impacts>
|
|
<down>
|
|
<items type="array">
|
|
<item id="open_changes" _delta="define">
|
|
<oql><![CDATA[
|
|
SELECT FCI, C
|
|
FROM FunctionalCI AS FCI
|
|
JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id
|
|
JOIN Change AS C ON L.ticket_id = C.id
|
|
WHERE (C.outage = 'yes')
|
|
AND (C.status NOT IN ('closed', 'rejected'))
|
|
AND (L.impact_code != 'not_impacted')
|
|
AND (C.id != :this->id)
|
|
]]></oql>
|
|
<dict>Tickets:Related:OpenChanges</dict>
|
|
<icon>itop-change-mgmt/images/change-ongoing.svg</icon>
|
|
<default>yes</default>
|
|
</item>
|
|
<item id="recent_changes" _delta="define">
|
|
<oql><![CDATA[
|
|
SELECT FCI, C
|
|
FROM FunctionalCI AS FCI
|
|
JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id
|
|
JOIN Change AS C ON L.ticket_id = C.id
|
|
WHERE (C.outage = 'yes')
|
|
AND (C.status NOT IN ('closed'))
|
|
AND (L.impact_code != 'not_impacted')
|
|
AND (C.id != :this->id)
|
|
AND (C.end_date < NOW() AND C.end_date > DATE_SUB(NOW(), INTERVAL 3 DAY ))
|
|
]]></oql>
|
|
<dict>Tickets:Related:RecentChanges</dict>
|
|
<icon>itop-change-mgmt/images/change-done.svg</icon>
|
|
<default>no</default>
|
|
</item>
|
|
</items>
|
|
</down>
|
|
</impacts>
|
|
</Incident>
|
|
<Change>
|
|
<impacts>
|
|
<down>
|
|
<items type="array">
|
|
<item id="open_changes" _delta="define">
|
|
<oql><![CDATA[
|
|
SELECT FCI, C
|
|
FROM FunctionalCI AS FCI
|
|
JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id
|
|
JOIN Change AS C ON L.ticket_id = C.id
|
|
WHERE (C.outage = 'yes')
|
|
AND (C.status NOT IN ('closed', 'rejected'))
|
|
AND (L.impact_code != 'not_impacted')
|
|
AND (C.id != :this->id)
|
|
]]></oql>
|
|
<dict>Tickets:Related:OpenChanges</dict>
|
|
<icon>itop-change-mgmt/images/change-ongoing.svg</icon>
|
|
<default>yes</default>
|
|
</item>
|
|
<item id="recent_changes" _delta="define">
|
|
<oql><![CDATA[
|
|
SELECT FCI, C
|
|
FROM FunctionalCI AS FCI
|
|
JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id
|
|
JOIN Change AS C ON L.ticket_id = C.id
|
|
WHERE (C.outage = 'yes')
|
|
AND (C.status NOT IN ('closed'))
|
|
AND (L.impact_code != 'not_impacted')
|
|
AND (C.id != :this->id)
|
|
AND (C.end_date < NOW() AND C.end_date > DATE_SUB(NOW(), INTERVAL 3 DAY ))
|
|
]]></oql>
|
|
<dict>Tickets:Related:RecentChanges</dict>
|
|
<icon>itop-change-mgmt/images/change-done.svg</icon>
|
|
<default>no</default>
|
|
</item>
|
|
</items>
|
|
</down>
|
|
</impacts>
|
|
</Change>
|
|
</relation_context>
|
|
</parameters>
|
|
<parameters id="itop-config-mgmt">
|
|
<relation_context>
|
|
<FunctionalCI>
|
|
<impacts>
|
|
<down>
|
|
<items type="array">
|
|
<item id="open_changes" _delta="define">
|
|
<oql><![CDATA[
|
|
SELECT FCI, C
|
|
FROM FunctionalCI AS FCI
|
|
JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id
|
|
JOIN Change AS C ON L.ticket_id = C.id
|
|
WHERE (C.outage = 'yes')
|
|
AND (C.status NOT IN ('closed', 'rejected'))
|
|
AND (L.impact_code != 'not_impacted')
|
|
]]></oql>
|
|
<dict>Tickets:Related:OpenChanges</dict>
|
|
<icon>itop-change-mgmt/images/change-ongoing.svg</icon>
|
|
<default>yes</default>
|
|
</item>
|
|
<item id="recent_changes" _delta="define">
|
|
<oql><![CDATA[
|
|
SELECT FCI, C
|
|
FROM FunctionalCI AS FCI
|
|
JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id
|
|
JOIN Change AS C ON L.ticket_id = C.id
|
|
WHERE (C.outage = 'yes')
|
|
AND (C.status IN ('closed'))
|
|
AND (L.impact_code != 'not_impacted')
|
|
AND (C.end_date < NOW() AND C.end_date > DATE_SUB(NOW(), INTERVAL 3 DAY ))
|
|
]]></oql>
|
|
<dict>Tickets:Related:RecentChanges</dict>
|
|
<icon>itop-change-mgmt/images/change-done.svg</icon>
|
|
<default>no</default>
|
|
</item>
|
|
</items>
|
|
</down>
|
|
<up>
|
|
<items type="array">
|
|
<item id="open_changes" _delta="define">
|
|
<oql><![CDATA[
|
|
SELECT FCI, C
|
|
FROM FunctionalCI AS FCI
|
|
JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id
|
|
JOIN Change AS C ON L.ticket_id = C.id
|
|
WHERE (C.outage = 'yes')
|
|
AND (C.status NOT IN ('closed', 'rejected'))
|
|
AND (L.impact_code != 'not_impacted')
|
|
]]></oql>
|
|
<dict>Tickets:Related:OpenChanges</dict>
|
|
<icon>itop-change-mgmt/images/change-ongoing.svg</icon>
|
|
<default>yes</default>
|
|
</item>
|
|
<item id="recent_changes" _delta="define">
|
|
<oql><![CDATA[
|
|
SELECT FCI, C
|
|
FROM FunctionalCI AS FCI
|
|
JOIN lnkFunctionalCIToTicket AS L ON L.functionalci_id = FCI.id
|
|
JOIN Change AS C ON L.ticket_id = C.id
|
|
WHERE (C.outage = 'yes')
|
|
AND (C.status IN ('closed'))
|
|
AND (L.impact_code != 'not_impacted')
|
|
AND (C.end_date < NOW() AND C.end_date > DATE_SUB(NOW(), INTERVAL 3 DAY ))
|
|
]]></oql>
|
|
<dict>Tickets:Related:RecentChanges</dict>
|
|
<icon>itop-change-mgmt/images/change-done.svg</icon>
|
|
<default>no</default>
|
|
</item>
|
|
</items>
|
|
</up>
|
|
</impacts>
|
|
</FunctionalCI>
|
|
</relation_context>
|
|
</parameters>
|
|
</module_parameters>
|
|
</itop_design>
|