mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
* N°2039 - Rework view all notifications page * N°2039 - Replace modals with toasts * N°2039 - Add bulk mode to view all notifications page * Apply suggestions from code review Co-authored-by: Molkobain <lajarige.guillaume@free.fr> * Apply suggestions from code review Co-authored-by: Molkobain <lajarige.guillaume@free.fr> * Apply suggestions from code review Co-authored-by: Molkobain <lajarige.guillaume@free.fr> * Apply suggestions from code review Co-authored-by: Molkobain <lajarige.guillaume@free.fr> * Apply suggestions from code review Co-authored-by: Molkobain <lajarige.guillaume@free.fr> * Update css/backoffice/pages/_notifications.scss * Update dictionaries/ui/application/newsroom/fr.dictionary.itop.newsroom.php * Apply suggestions from code review Co-authored-by: Molkobain <lajarige.guillaume@free.fr> * Add since in phpdoc * Change newsroom empty notification illustration * N°2039 - Refactor code to factorize logic --------- Co-authored-by: Molkobain <lajarige.guillaume@free.fr>
990 lines
38 KiB
XML
990 lines
38 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2">
|
|
<classes>
|
|
<class id="lnkActionNotificationToContact" _delta="define">
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>core/cmdb,application</category>
|
|
<abstract>false</abstract>
|
|
<key_type>autoincrement</key_type>
|
|
<db_table>priv_lnk_action_notif_to_contact</db_table>
|
|
<db_key_field>id</db_key_field>
|
|
<db_final_class_field/>
|
|
<naming>
|
|
<attributes>
|
|
<attribute id="action_id"/>
|
|
<attribute id="contact_id"/>
|
|
</attributes>
|
|
</naming>
|
|
<uniqueness_rules>
|
|
<rule>
|
|
<attributes>
|
|
<attribute id="action_id"/>
|
|
<attribute id="contact_id"/>
|
|
<attribute id="trigger_id"/>
|
|
</attributes>
|
|
<filter/>
|
|
<disabled>false</disabled>
|
|
<is_blocking>true</is_blocking>
|
|
</rule>
|
|
</uniqueness_rules>
|
|
</properties>
|
|
<fields>
|
|
<field id="action_id" xsi:type="AttributeExternalKey">
|
|
<sql>action_id</sql>
|
|
<target_class>ActionNotification</target_class>
|
|
<default_value/>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
</field>
|
|
<field id="contact_id" xsi:type="AttributeExternalKey">
|
|
<sql>contact_id</sql>
|
|
<target_class>Contact</target_class>
|
|
<default_value/>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
</field>
|
|
<field id="trigger_id" xsi:type="AttributeExternalKey">
|
|
<sql>trigger_id</sql>
|
|
<target_class>Trigger</target_class>
|
|
<default_value/>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
</field>
|
|
<field id="subscribed" xsi:type="AttributeBoolean">
|
|
<sql>subscribed</sql>
|
|
<default_value>true</default_value>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
</field>
|
|
</fields>
|
|
<presentation>
|
|
<details>
|
|
<items>
|
|
<item id="col:col1">
|
|
<items>
|
|
<item id="fieldset:lnkActionNotificationToContact:content">
|
|
<items>
|
|
<item id="action_id">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="contact_id">
|
|
<rank>20</rank>
|
|
</item>
|
|
<item id="title">
|
|
<rank>30</rank>
|
|
</item>
|
|
</items>
|
|
</item>
|
|
</items>
|
|
</item>
|
|
</items>
|
|
</details>
|
|
<list>
|
|
<items>
|
|
<item id="action_id">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="contact_id">
|
|
<rank>20</rank>
|
|
</item>
|
|
<item id="title">
|
|
<rank>30</rank>
|
|
</item>
|
|
</items>
|
|
</list>
|
|
</presentation>
|
|
<methods/>
|
|
</class>
|
|
<class id="ActioniTopNotification" _delta="define">
|
|
<php_parent>
|
|
<name>ActionNotification</name>
|
|
</php_parent>
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>grant_by_profile,core/cmdb,application</category>
|
|
<abstract>false</abstract>
|
|
<key_type>autoincrement</key_type>
|
|
<db_table>priv_action_itop_notif</db_table>
|
|
<db_key_field>id</db_key_field>
|
|
<db_final_class_field/>
|
|
<naming>
|
|
<attributes>
|
|
<attribute id="name"/>
|
|
</attributes>
|
|
</naming>
|
|
<style>
|
|
<icon>../../images/icons/icons8-notification.svg</icon>
|
|
</style>
|
|
</properties>
|
|
<fields>
|
|
<field id="title" xsi:type="AttributeString">
|
|
<sql>title</sql>
|
|
<default_value/>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
</field>
|
|
<field id="message" xsi:type="AttributeText">
|
|
<sql>message</sql>
|
|
<default_value/>
|
|
<is_null_allowed>true</is_null_allowed>
|
|
</field>
|
|
<field id="icon" xsi:type="AttributeImage">
|
|
<sql>icon</sql>
|
|
<default_value/>
|
|
<is_null_allowed>true</is_null_allowed>
|
|
<display_max_width>96</display_max_width>
|
|
<display_max_height>96</display_max_height>
|
|
<storage_max_width>256</storage_max_width>
|
|
<storage_max_height>256</storage_max_height>
|
|
<default_image />
|
|
</field>
|
|
<field id="priority" xsi:type="AttributeEnum">
|
|
<sql>priority</sql>
|
|
<values>
|
|
<value id="1">
|
|
<code>1</code>
|
|
</value>
|
|
<value id="2">
|
|
<code>2</code>
|
|
</value>
|
|
<value id="3">
|
|
<code>3</code>
|
|
</value>
|
|
<value id="4">
|
|
<code>4</code>
|
|
</value>
|
|
</values>
|
|
<default_value>4</default_value>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
</field>
|
|
<field id="recipients" xsi:type="AttributeOQL">
|
|
<sql>recipients</sql>
|
|
<default_value/>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
</field>
|
|
<field id="url" xsi:type="AttributeString">
|
|
<sql>url</sql>
|
|
<default_value>$this->url()$</default_value>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
</field>
|
|
</fields>
|
|
<presentation>
|
|
<details>
|
|
<items>
|
|
<item id="col:col1">
|
|
<items>
|
|
<item id="fieldset:ActioniTopNotification:content">
|
|
<items>
|
|
<item id="name">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="status">
|
|
<rank>20</rank>
|
|
</item>
|
|
<item id="language">
|
|
<rank>30</rank>
|
|
</item>
|
|
<item id="title">
|
|
<rank>40</rank>
|
|
</item>
|
|
<item id="message">
|
|
<rank>50</rank>
|
|
</item>
|
|
</items>
|
|
</item>
|
|
<item id="fieldset:ActioniTopNotification:trigger">
|
|
<items>
|
|
<item id="trigger_list">
|
|
<rank>10</rank>
|
|
</item>
|
|
</items>
|
|
</item>
|
|
</items>
|
|
</item>
|
|
<item id="col:col2">
|
|
<items>
|
|
<item id="fieldset:ActioniTopNotification:settings">
|
|
<items>
|
|
<item id="priority">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="icon">
|
|
<rank>20</rank>
|
|
</item>
|
|
<item id="recipients">
|
|
<rank>30</rank>
|
|
</item>
|
|
<item id="url">
|
|
<rank>40</rank>
|
|
</item>
|
|
</items>
|
|
</item>
|
|
</items>
|
|
</item>
|
|
</items>
|
|
</details>
|
|
<list>
|
|
<items>
|
|
<item id="title">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="status">
|
|
<rank>20</rank>
|
|
</item>
|
|
<item id="language">
|
|
<rank>30</rank>
|
|
</item>
|
|
</items>
|
|
</list>
|
|
</presentation>
|
|
<methods>
|
|
<method id="DoExecute">
|
|
<comment> /**
|
|
*
|
|
* Create EventiTopNotification for each recipient
|
|
* @param $oTrigger
|
|
* @param $aContextArgs
|
|
*
|
|
* @return void
|
|
* @throws \ArchivedObjectException
|
|
* @throws \CoreCannotSaveObjectException
|
|
* @throws \CoreException
|
|
* @throws \CoreUnexpectedValue
|
|
* @throws \CoreWarning
|
|
* @throws \MySQLException
|
|
* @throws \OQLException
|
|
*/</comment>
|
|
<static>false</static>
|
|
<access>public</access>
|
|
<code><![CDATA[
|
|
public function DoExecute($oTrigger, $aContextArgs)
|
|
{
|
|
$oRecipientsSearch = DBObjectSearch::FromOQL($this->Get('recipients'));
|
|
$oRecipientsSearch->AllowAllData();
|
|
$oRecipientsSet = new DBObjectSet($oRecipientsSearch);
|
|
[$sPreviousLanguage, $aPreviousPluginProperties] = $this->SetNotificationLanguage();
|
|
while ($oRecipient = $oRecipientsSet->Fetch()) {
|
|
// Skip recipients that have no users
|
|
if (get_class($oRecipient) === Person::class && UserRights::GetUserFromPerson($oRecipient) === null) {
|
|
continue;
|
|
}
|
|
if (!\Combodo\iTop\Service\Notification\NotificationsService::GetInstance()->IsSubscribed($oTrigger, $this, $oRecipient)) {
|
|
continue;
|
|
}
|
|
|
|
if (array_key_exists('this->object()', $aContextArgs)) {
|
|
$iObjectId = $aContextArgs['this->object()']->GetKey();
|
|
$sObjectClass = get_class($aContextArgs['this->object()']);
|
|
} else {
|
|
$iObjectId = 0;
|
|
$sObjectClass = null;
|
|
}
|
|
|
|
$oEvent = new EventiTopNotification();
|
|
$oEvent->Set('title', MetaModel::ApplyParams($this->Get('title'), $aContextArgs));
|
|
$oEvent->Set('message', MetaModel::ApplyParams($this->Get('message'), $aContextArgs));
|
|
// Compute icon
|
|
// - First check if one is defined on the action
|
|
if (false === $this->Get('icon')->IsEmpty()) {
|
|
$oIcon = $this->Get('icon');
|
|
}
|
|
// - Then, check if the action is for a DM object and if its class has an icon
|
|
elseif ($iObjectId > 0 && utils::IsNotNullOrEmptyString(MetaModel::GetClassIcon($sObjectClass, false))) {
|
|
$oIcon = MetaModel::GetAttributeDef(EventiTopNotification::class, 'icon')->MakeRealValue(MetaModel::GetClassIcon($sObjectClass, false), $oEvent);
|
|
}
|
|
// - Otherwise, fallback on the compact logo of the application
|
|
else {
|
|
$oIcon = MetaModel::GetAttributeDef(EventiTopNotification::class, 'icon')->MakeRealValue(\Combodo\iTop\Application\Branding::GetCompactMainLogoAbsoluteUrl(), $oEvent);
|
|
}
|
|
$oEvent->Set('icon', $oIcon);
|
|
$oEvent->Set('priority', $this->Get('priority'));
|
|
$oEvent->Set('contact_id', $oRecipient->GetKey());
|
|
$oEvent->Set('trigger_id', $oTrigger->GetKey());
|
|
$oEvent->Set('action_id', $this->GetKey());
|
|
$iObjectId = array_key_exists('this->object()', $aContextArgs) ? $aContextArgs['this->object()']->GetKey() : 0;
|
|
$oEvent->Set('object_id', $iObjectId);
|
|
$oEvent->Set('url', MetaModel::ApplyParams($this->Get('url'), $aContextArgs));
|
|
$oEvent->DBInsertNoReload();
|
|
|
|
\Combodo\iTop\Service\Notification\NotificationsService::GetInstance()->RegisterSubscription($oTrigger, $this, $oRecipient);
|
|
}
|
|
$this->SetNotificationLanguage($sPreviousLanguage, $aPreviousPluginProperties['language_code'] ?? null);
|
|
}
|
|
]]></code>
|
|
</method>
|
|
</methods>
|
|
</class>
|
|
<class id="EventiTopNotification" _delta="define">
|
|
<php_parent>
|
|
<name>EventNotification</name>
|
|
</php_parent>
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>core/cmdb,view_in_gui</category>
|
|
<abstract>false</abstract>
|
|
<key_type>autoincrement</key_type>
|
|
<db_table>priv_event_itop_notif</db_table>
|
|
<db_key_field>id</db_key_field>
|
|
<db_final_class_field/>
|
|
<naming>
|
|
<attributes>
|
|
<attribute id="title"/>
|
|
</attributes>
|
|
</naming>
|
|
</properties>
|
|
<fields>
|
|
<field id="title" xsi:type="AttributeString">
|
|
<sql>title</sql>
|
|
<default_value/>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
</field>
|
|
<field id="icon" xsi:type="AttributeImage">
|
|
<sql>icon</sql>
|
|
<default_value/>
|
|
<is_null_allowed>true</is_null_allowed>
|
|
<default_image />
|
|
</field>
|
|
<field id="priority" xsi:type="AttributeEnum">
|
|
<sql>priority</sql>
|
|
<values>
|
|
<value id="1">
|
|
<code>1</code>
|
|
</value>
|
|
<value id="2">
|
|
<code>2</code>
|
|
</value>
|
|
<value id="3">
|
|
<code>3</code>
|
|
</value>
|
|
<value id="4">
|
|
<code>4</code>
|
|
</value>
|
|
</values>
|
|
<default_value>4</default_value>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
</field>
|
|
<field id="url" xsi:type="AttributeURL">
|
|
<sql>url</sql>
|
|
<default_value/>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
<target>_blank</target>
|
|
</field>
|
|
<field id="read" xsi:type="AttributeEnum">
|
|
<sql>read</sql>
|
|
<values>
|
|
<value id="yes">
|
|
<code>yes</code>
|
|
</value>
|
|
<value id="no">
|
|
<code>no</code>
|
|
</value>
|
|
</values>
|
|
<default_value>no</default_value>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
</field>
|
|
<field id="read_date" xsi:type="AttributeDateTime">
|
|
<sql>read_date</sql>
|
|
<default_value/>
|
|
<is_null_allowed>true</is_null_allowed>
|
|
</field>
|
|
<field id="contact_id" xsi:type="AttributeExternalKey">
|
|
<sql>contact_id</sql>
|
|
<target_class>Contact</target_class>
|
|
<default_value/>
|
|
<is_null_allowed>false</is_null_allowed>
|
|
</field>
|
|
</fields>
|
|
<presentation>
|
|
<summary>
|
|
<items>
|
|
<item id="date">
|
|
<rank>10</rank>
|
|
</item>
|
|
<item id="message">
|
|
<rank>20</rank>
|
|
</item>
|
|
</items>
|
|
</summary>
|
|
</presentation>
|
|
<methods/>
|
|
</class>
|
|
</classes>
|
|
<user_rights>
|
|
<profiles>
|
|
<profile id="1024" _delta="define">
|
|
<name>REST Services User</name>
|
|
<description>Only users having this profile are allowed to use the REST Web Services (unless 'secure_rest_services' is set to false
|
|
in the configuration file).
|
|
</description>
|
|
<groups/>
|
|
</profile>
|
|
</profiles>
|
|
</user_rights>
|
|
<meta>
|
|
<classes>
|
|
<class id="User" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>core,grant_by_profile</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="contactid" xsi:type="AttributeExternalKey">
|
|
<target_class>Person</target_class>
|
|
</field>
|
|
<field id="last_name" xsi:type="AttributeExternalField"/>
|
|
<field id="first_name" xsi:type="AttributeExternalField"/>
|
|
<field id="email" xsi:type="AttributeExternalField"/>
|
|
<field id="org_id" xsi:type="AttributeExternalField"/>
|
|
<field id="login" xsi:type="AttributeString"/>
|
|
<field id="language" xsi:type="AttributeApplicationLanguage"/>
|
|
<field id="status" xsi:type="AttributeEnum"/>
|
|
<field id="profile_list" xsi:type="AttributeLinkedSetIndirect"/>
|
|
<field id="allowed_org_list" xsi:type="AttributeLinkedSetIndirect"/>
|
|
<field id="finalclass" xsi:type="AttributeFinalClass"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
<field id="contactid_friendlyname" xsi:type="AttributeExternalField"/>
|
|
<field id="contactid_obsolescence_flag" xsi:type="AttributeExternalField"/>
|
|
<field id="org_id_friendlyname" xsi:type="AttributeExternalField"/>
|
|
<field id="org_id_obsolescence_flag" xsi:type="AttributeExternalField"/>
|
|
</fields>
|
|
</class>
|
|
<class id="URP_Profiles" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>addon/userrights,grant_by_profile</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="name" xsi:type="AttributeString"/>
|
|
<field id="description" xsi:type="AttributeString"/>
|
|
<field id="user_list" xsi:type="AttributeLinkedSetIndirect"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
</fields>
|
|
</class>
|
|
<class id="URP_UserProfile" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>addon/userrights,grant_by_profile</category>
|
|
<is_link>1</is_link>
|
|
</properties>
|
|
<fields>
|
|
<field id="userid" xsi:type="AttributeExternalKey">
|
|
<target_class>User</target_class>
|
|
</field>
|
|
<field id="userlogin" xsi:type="AttributeExternalField"/>
|
|
<field id="profileid" xsi:type="AttributeExternalKey">
|
|
<target_class>URP_Profiles</target_class>
|
|
</field>
|
|
<field id="profile" xsi:type="AttributeExternalField"/>
|
|
<field id="reason" xsi:type="AttributeString"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
<field id="userid_friendlyname" xsi:type="AttributeExternalField"/>
|
|
<field id="userid_finalclass_recall" xsi:type="AttributeExternalField"/>
|
|
<field id="profileid_friendlyname" xsi:type="AttributeExternalField"/>
|
|
</fields>
|
|
</class>
|
|
<class id="URP_UserOrg" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>addon/userrights,grant_by_profile</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="userid" xsi:type="AttributeExternalKey">
|
|
<target_class>User</target_class>
|
|
</field>
|
|
<field id="userlogin" xsi:type="AttributeExternalField"/>
|
|
<field id="allowed_org_id" xsi:type="AttributeExternalKey">
|
|
<target_class>Organization</target_class>
|
|
</field>
|
|
<field id="allowed_org_name" xsi:type="AttributeExternalField"/>
|
|
<field id="reason" xsi:type="AttributeString"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
<field id="userid_friendlyname" xsi:type="AttributeExternalField"/>
|
|
<field id="userid_finalclass_recall" xsi:type="AttributeExternalField"/>
|
|
<field id="allowed_org_id_friendlyname" xsi:type="AttributeExternalField"/>
|
|
<field id="allowed_org_id_obsolescence_flag" xsi:type="AttributeExternalField"/>
|
|
</fields>
|
|
</class>
|
|
<class id="Action" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>grant_by_profile,core/cmdb</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="name" xsi:type="AttributeString"/>
|
|
<field id="description" xsi:type="AttributeString"/>
|
|
<field id="status" xsi:type="AttributeEnum"/>
|
|
<field id="trigger_list" xsi:type="AttributeLinkedSetIndirect"/>
|
|
<field id="finalclass" xsi:type="AttributeFinalClass"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
</fields>
|
|
</class>
|
|
<class id="Trigger" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>grant_by_profile,core/cmdb</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="description" xsi:type="AttributeString"/>
|
|
<field id="action_list" xsi:type="AttributeLinkedSetIndirect"/>
|
|
<field id="finalclass" xsi:type="AttributeFinalClass"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
</fields>
|
|
</class>
|
|
<class id="SynchroDataSource" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>core/cmdb,view_in_gui,grant_by_profile</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="name" xsi:type="AttributeString"/>
|
|
<field id="description" xsi:type="AttributeText"/>
|
|
<field id="status" xsi:type="AttributeEnum"/>
|
|
<field id="user_id" xsi:type="AttributeExternalKey">
|
|
<target_class>User</target_class>
|
|
</field>
|
|
<field id="notify_contact_id" xsi:type="AttributeExternalKey">
|
|
<target_class>Contact</target_class>
|
|
</field>
|
|
<field id="scope_class" xsi:type="AttributeClass"/>
|
|
<field id="database_table_name" xsi:type="AttributeString"/>
|
|
<field id="scope_restriction" xsi:type="AttributeString"/>
|
|
<field id="full_load_periodicity" xsi:type="AttributeDuration"/>
|
|
<field id="reconciliation_policy" xsi:type="AttributeEnum"/>
|
|
<field id="action_on_zero" xsi:type="AttributeEnum"/>
|
|
<field id="action_on_one" xsi:type="AttributeEnum"/>
|
|
<field id="action_on_multiple" xsi:type="AttributeEnum"/>
|
|
<field id="delete_policy" xsi:type="AttributeEnum"/>
|
|
<field id="delete_policy_update" xsi:type="AttributeString"/>
|
|
<field id="delete_policy_retention" xsi:type="AttributeDuration"/>
|
|
<field id="attribute_list" xsi:type="AttributeLinkedSet"/>
|
|
<field id="user_delete_policy" xsi:type="AttributeEnum"/>
|
|
<field id="url_icon" xsi:type="AttributeURL"/>
|
|
<field id="url_application" xsi:type="AttributeString"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
<field id="user_id_friendlyname" xsi:type="AttributeExternalField"/>
|
|
<field id="user_id_finalclass_recall" xsi:type="AttributeExternalField"/>
|
|
<field id="notify_contact_id_friendlyname" xsi:type="AttributeExternalField"/>
|
|
<field id="notify_contact_id_finalclass_recall" xsi:type="AttributeExternalField"/>
|
|
<field id="notify_contact_id_obsolescence_flag" xsi:type="AttributeExternalField"/>
|
|
</fields>
|
|
</class>
|
|
<class id="SynchroAttribute" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>core/cmdb,view_in_gui,grant_by_profile</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="sync_source_id" xsi:type="AttributeExternalKey">
|
|
<target_class>SynchroDataSource</target_class>
|
|
</field>
|
|
<field id="sync_source_name" xsi:type="AttributeExternalField"/>
|
|
<field id="attcode" xsi:type="AttributeString"/>
|
|
<field id="update" xsi:type="AttributeBoolean"/>
|
|
<field id="reconcile" xsi:type="AttributeBoolean"/>
|
|
<field id="update_policy" xsi:type="AttributeEnum"/>
|
|
<field id="finalclass" xsi:type="AttributeFinalClass"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
<field id="sync_source_id_friendlyname" xsi:type="AttributeExternalField"/>
|
|
</fields>
|
|
</class>
|
|
<class id="AuditRule" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>application, grant_by_profile</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="name" xsi:type="AttributeString"/>
|
|
<field id="description" xsi:type="AttributeString"/>
|
|
<field id="query" xsi:type="AttributeOQL"/>
|
|
<field id="valid_flag" xsi:type="AttributeEnum"/>
|
|
<field id="category_id" xsi:type="AttributeExternalKey">
|
|
<target_class>AuditCategory</target_class>
|
|
</field>
|
|
<field id="category_name" xsi:type="AttributeExternalField"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
<field id="category_id_friendlyname" xsi:type="AttributeExternalField"/>
|
|
</fields>
|
|
</class>
|
|
<class id="AuditCategory" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>application, grant_by_profile</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="name" xsi:type="AttributeString"/>
|
|
<field id="description" xsi:type="AttributeString"/>
|
|
<field id="definition_set" xsi:type="AttributeOQL"/>
|
|
<field id="rules_list" xsi:type="AttributeLinkedSet"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
</fields>
|
|
</class>
|
|
<class id="AuditDomain" _delta="define">
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>application, grant_by_profile</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="name" xsi:type="AttributeString"/>
|
|
<field id="description" xsi:type="AttributeString"/>
|
|
<field id="icon" xsi:type="AttributeImage"/>
|
|
<field id="categories_list" xsi:type="AttributeLinkedSet"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
</fields>
|
|
</class>
|
|
<class id="Query" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>core/cmdb,view_in_gui,application,grant_by_profile</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="name" xsi:type="AttributeString"/>
|
|
<field id="description" xsi:type="AttributeText"/>
|
|
<field id="fields" xsi:type="AttributeText"/>
|
|
<field id="finalclass" xsi:type="AttributeFinalClass"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
</fields>
|
|
</class>
|
|
<class id="lnkTriggerAction" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>grant_by_profile,core/cmdb,application</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="action_id" xsi:type="AttributeExternalKey">
|
|
<target_class>Action</target_class>
|
|
</field>
|
|
<field id="action_name" xsi:type="AttributeExternalField"/>
|
|
<field id="trigger_id" xsi:type="AttributeExternalKey">
|
|
<target_class>Trigger</target_class>
|
|
</field>
|
|
<field id="trigger_name" xsi:type="AttributeExternalField"/>
|
|
<field id="order" xsi:type="AttributeInteger"/>
|
|
<field id="friendlyname" xsi:type="AttributeFriendlyName"/>
|
|
<field id="action_id_friendlyname" xsi:type="AttributeExternalField"/>
|
|
<field id="action_id_finalclass_recall" xsi:type="AttributeExternalField"/>
|
|
<field id="trigger_id_friendlyname" xsi:type="AttributeExternalField"/>
|
|
<field id="trigger_id_finalclass_recall" xsi:type="AttributeExternalField"/>
|
|
</fields>
|
|
</class>
|
|
<class id="TagSetFieldData" _delta="define">
|
|
<parent>cmdbAbstractObject</parent>
|
|
<properties>
|
|
<category>bizmodel</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="code" xsi:type="AttributeString"/>
|
|
<field id="label" xsi:type="AttributeString"/>
|
|
<field id="description" xsi:type="AttributeHTML"/>
|
|
<field id="obj_class" xsi:type="AttributeString"/>
|
|
<field id="obj_attcode" xsi:type="AttributeString"/>
|
|
</fields>
|
|
</class>
|
|
<class id="DefaultWorkingTimeComputer" _delta="define">
|
|
<interfaces>
|
|
<interface id="iWorkingTimeComputer"/>
|
|
</interfaces>
|
|
</class>
|
|
<class id="ActionNotification" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>Action</parent>
|
|
<properties>
|
|
<category>grant_by_profile,core/cmdb</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="name" xsi:type="AttributeString"/>
|
|
<field id="description" xsi:type="AttributeString"/>
|
|
<field id="status" xsi:type="AttributeEnum"/>
|
|
<field id="trigger_list" xsi:type="AttributeLinkedSetIndirect"/>
|
|
<field id="language" xsi:type="AttributeApplicationLanguage"/>
|
|
</fields>
|
|
</class>
|
|
<class id="EventNotification" _delta="define">
|
|
<!-- Generated by toolkit/export-class-to-meta.php -->
|
|
<parent>Event</parent>
|
|
<properties>
|
|
<category>core/cmdb,view_in_gui</category>
|
|
</properties>
|
|
<fields>
|
|
<field id="message" xsi:type="AttributeText"/>
|
|
<field id="date" xsi:type="AttributeDateTime"/>
|
|
<field id="userinfo" xsi:type="AttributeString"/>
|
|
<field id="trigger_id" xsi:type="AttributeExternalKey">
|
|
<target_class>Trigger</target_class>
|
|
</field>
|
|
<field id="action_id" xsi:type="AttributeExternalKey">
|
|
<target_class>Action</target_class>
|
|
</field>
|
|
<field id="object_id" xsi:type="AttributeInteger"/>
|
|
<field id="trigger_id_friendlyname" xsi:type="AttributeExternalField"/>
|
|
<field id="trigger_id_finalclass_recall" xsi:type="AttributeExternalField"/>
|
|
<field id="action_id_friendlyname" xsi:type="AttributeExternalField"/>
|
|
<field id="action_id_finalclass_recall" xsi:type="AttributeExternalField"/>
|
|
</fields>
|
|
</class>
|
|
</classes>
|
|
<attribute_properties_definition _delta="define">
|
|
<properties>
|
|
<property id="sql">
|
|
<php_param>sql</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="linked_class">
|
|
<php_param>linked_class</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="ext_key_to_me">
|
|
<php_param>ext_key_to_me</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="ext_key_to_remote">
|
|
<php_param>ext_key_to_remote</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="sql">
|
|
<php_param>sql</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="class_attcode">
|
|
<php_param>class_attcode</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="extkey_attcode">
|
|
<php_param>extkey_attcode</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="target_attcode">
|
|
<php_param>target_attcode</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="item_code">
|
|
<php_param>item_code</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="relation_code">
|
|
<php_param>relation_code</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="from_class">
|
|
<php_param>from_class</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="neighbour_id">
|
|
<php_param>neighbour_id</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="enabled_mode">
|
|
<php_param>enabled_mode</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="min_up_mode">
|
|
<php_param>min_up_mode</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="min_up_type">
|
|
<php_param>min_up_type</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="handler_class">
|
|
<php_param>handler_class</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="class_field">
|
|
<php_param>class_field</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="query_field">
|
|
<php_param>query_field</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="display_style">
|
|
<php_param>display_style</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>string</type>
|
|
<default/>
|
|
</property>
|
|
<property id="target">
|
|
<php_param>target</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>string</type>
|
|
<default/>
|
|
</property>
|
|
<property id="default_value">
|
|
<php_param>default_value</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>string</type>
|
|
<default/>
|
|
</property>
|
|
<property id="attribute_definition_list">
|
|
<php_param>attribute_definition_list</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>string</type>
|
|
<default/>
|
|
</property>
|
|
<property id="attribute_definition_exclusion_list">
|
|
<php_param>attribute_definition_exclusion_list</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>string</type>
|
|
<default/>
|
|
</property>
|
|
<property id="min_up">
|
|
<php_param>min_up</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>number</type>
|
|
</property>
|
|
<property id="count_min">
|
|
<php_param>count_min</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>number</type>
|
|
<default>0</default>
|
|
</property>
|
|
<property id="count_max">
|
|
<php_param>count_max</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>number</type>
|
|
<default>0</default>
|
|
</property>
|
|
<property id="max_combo_length">
|
|
<php_param>max_combo_length</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>number</type>
|
|
</property>
|
|
<property id="min_autocomplete_chars">
|
|
<php_param>min_autocomplete_chars</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>number</type>
|
|
</property>
|
|
<property id="display_max_width">
|
|
<php_param>display_max_width</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>number</type>
|
|
<default>128</default>
|
|
</property>
|
|
<property id="display_max_height">
|
|
<php_param>display_max_height</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>number</type>
|
|
<default>128</default>
|
|
</property>
|
|
<property id="storage_max_width">
|
|
<php_param>storage_max_width</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>number</type>
|
|
<default>256</default>
|
|
</property>
|
|
<property id="storage_max_height">
|
|
<php_param>storage_max_height</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>number</type>
|
|
<default>256</default>
|
|
</property>
|
|
<property id="max_items">
|
|
<php_param>max_items</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>number</type>
|
|
<default>12</default>
|
|
</property>
|
|
<property id="tag_code_max_len">
|
|
<php_param>tag_code_max_len</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>number</type>
|
|
<default>20</default>
|
|
</property>
|
|
<property id="enabled">
|
|
<php_param>enabled</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>boolean</type>
|
|
</property>
|
|
<property id="duplicates">
|
|
<php_param>duplicates</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>boolean</type>
|
|
<default>false</default>
|
|
</property>
|
|
<property id="is_null_allowed">
|
|
<php_param>is_null_allowed</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>boolean</type>
|
|
<default>false</default>
|
|
</property>
|
|
<property id="allow_target_creation">
|
|
<php_param>allow_target_creation</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>boolean</type>
|
|
</property>
|
|
<property id="is_user_editable">
|
|
<php_param>is_user_editable</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>boolean</type>
|
|
<default>true</default>
|
|
</property>
|
|
<property id="with_php_constraint">
|
|
<php_param>with_php_constraint</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>boolean</type>
|
|
<default>false</default>
|
|
</property>
|
|
<property id="with_php_computation">
|
|
<php_param>with_php_computation</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>boolean</type>
|
|
<default>false</default>
|
|
</property>
|
|
<property id="create_temporary_object">
|
|
<php_param>create_temporary_object</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>boolean</type>
|
|
<default>false</default>
|
|
</property>
|
|
<property id="on_target_delete">
|
|
<php_param>on_target_delete</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>php</type>
|
|
</property>
|
|
<property id="target_class">
|
|
<php_param>targetclass</php_param>
|
|
<mandatory>true</mandatory>
|
|
<type>string</type>
|
|
</property>
|
|
<property id="goal">
|
|
<php_param>goal_computing</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>string</type>
|
|
<default>'DefaultMetricComputer'</default>
|
|
</property>
|
|
<property id="working_time">
|
|
<php_param>working_time_computing</php_param>
|
|
<mandatory>false</mandatory>
|
|
<type>string</type>
|
|
<default/>
|
|
</property>
|
|
</properties>
|
|
</attribute_properties_definition>
|
|
</meta>
|
|
</itop_design>
|