mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-22 18:18:46 +02:00
N°4756 - Ease extensibility for CRUD operations : XML format migration
This commit is contained in:
@@ -1118,9 +1118,9 @@ class iTopDesignFormat
|
||||
// N°5563 AttributeLinkedSet
|
||||
// - remove relation_type & read_only (added in 3.1)
|
||||
// - restore edit_mode attribute from legacy_edit_mode attribute
|
||||
$this->RemoveNodeFromXPath("/itop_design/classes/class/fields/field[@xsi:type='AttributeLinkedSet']/read_only");
|
||||
$this->RemoveNodeFromXPath("/itop_design/classes/class/fields/field[@xsi:type='AttributeLinkedSet']/relation_type");
|
||||
$oLegacyEditModeNodesList = $oXPath->query("/itop_design/classes/class/fields/field[@xsi:type='AttributeLinkedSet']/legacy_edit_mode");
|
||||
$this->RemoveNodeFromXPath("/itop_design/classes//class/fields/field[@xsi:type='AttributeLinkedSet']/read_only");
|
||||
$this->RemoveNodeFromXPath("/itop_design/classes//class/fields/field[@xsi:type='AttributeLinkedSet']/relation_type");
|
||||
$oLegacyEditModeNodesList = $oXPath->query("/itop_design/classes//class/fields/field[@xsi:type='AttributeLinkedSet']/legacy_edit_mode");
|
||||
/** @var \DOMElement $oLegacyEditModeNode */
|
||||
foreach ($oLegacyEditModeNodesList as $oLegacyEditModeNode) {
|
||||
$sEditMode = $oLegacyEditModeNode->nodeValue;
|
||||
@@ -1132,7 +1132,12 @@ class iTopDesignFormat
|
||||
|
||||
// N°5563 AttributeLinkedSetIndirect
|
||||
// - remove read_only attribute (added in 3.1)
|
||||
$this->RemoveNodeFromXPath("/itop_design/classes/class/fields/field[@xsi:type='AttributeLinkedSetIndirect']/read_only");
|
||||
$this->RemoveNodeFromXPath("/itop_design/classes//class/fields/field[@xsi:type='AttributeLinkedSetIndirect']/read_only");
|
||||
|
||||
// N°4756 - Ease extensibility for CRUD operations : Event Service
|
||||
$this->RemoveNodeFromXPath('/itop_design/events');
|
||||
$this->RemoveNodeFromXPath('/itop_design/event_listeners');
|
||||
$this->RemoveNodeFromXPath('/itop_design/classes//class/event_listeners');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -48,5 +48,21 @@
|
||||
<field id="status" xsi:type="AttributeLinkedSetIndirect"/>
|
||||
</fields>
|
||||
</class>
|
||||
<class id="ClassWithEventListeners">
|
||||
<methods>
|
||||
<method id="OnUpdateDone" _delta="define">
|
||||
<static>false</static>
|
||||
<access>public</access>
|
||||
<type>EventListener</type>
|
||||
<code><![CDATA[
|
||||
public function OnUserRequestUpdateDone(Combodo\iTop\Service\EventData $oEventData)
|
||||
{
|
||||
$sEvent = $oEventData->GetEvent();
|
||||
$aChange = $oEventData->Get('changes');
|
||||
}
|
||||
]]></code>
|
||||
</method>
|
||||
</methods>
|
||||
</class>
|
||||
</classes>
|
||||
</itop_design>
|
||||
|
||||
@@ -62,5 +62,66 @@
|
||||
</field>
|
||||
</fields>
|
||||
</class>
|
||||
<class id="ClassWithEventListeners">
|
||||
<event_listeners>
|
||||
<listener id="OnUserRequestUpdateDone" _delta="define">
|
||||
<event>EVENT_DB_UPDATE_DONE</event>
|
||||
<callback>OnUpdateDone</callback>
|
||||
<rank>0</rank>
|
||||
</listener>
|
||||
</event_listeners>
|
||||
<methods>
|
||||
<method id="OnUpdateDone" _delta="define">
|
||||
<static>false</static>
|
||||
<access>public</access>
|
||||
<type>EventListener</type>
|
||||
<code><![CDATA[
|
||||
public function OnUserRequestUpdateDone(Combodo\iTop\Service\EventData $oEventData)
|
||||
{
|
||||
$sEvent = $oEventData->GetEvent();
|
||||
$aChange = $oEventData->Get('changes');
|
||||
}
|
||||
]]></code>
|
||||
</method>
|
||||
</methods>
|
||||
</class>
|
||||
</classes>
|
||||
<events>
|
||||
<event id="EVENT_DB_CHECK_TO_WRITE" _delta="define">
|
||||
<description>Check an object before it is written into the database (no change possible). Call DBObject::AddCheckIssue() to signal an issue</description>
|
||||
<sources>
|
||||
<source id="cmdbAbstractObject">cmdbAbstractObject</source>
|
||||
</sources>
|
||||
<replaces>cmdbAbstractObject::DoCheckToWrite</replaces>
|
||||
<event_data>
|
||||
<event_datum id="object">
|
||||
<description>The object to check</description>
|
||||
<type>DBObject</type>
|
||||
</event_datum>
|
||||
<event_datum id="debug_info">
|
||||
<description>Debug string</description>
|
||||
<type>string</type>
|
||||
</event_datum>
|
||||
</event_data>
|
||||
</event>
|
||||
</events>
|
||||
<event_listeners>
|
||||
<listener id="GlobalFAQRead" _delta="define">
|
||||
<event>EVENT_SERVICE_DISPLAY_OBJECT_DETAILS</event>
|
||||
<filters>
|
||||
<filter>FAQ</filter>
|
||||
</filters>
|
||||
<rank>0</rank>
|
||||
<code><![CDATA[
|
||||
function(\Combodo\iTop\Service\EventData $oEventData)
|
||||
{
|
||||
$sUser = UserRights::GetUser();
|
||||
$oObject = $oEventData->Get('object');
|
||||
$sFaqTitle = $oObject->Get('title');
|
||||
$sId = $oObject->GetKey();
|
||||
IssueLog::Info("FAQ: '{$sFaqTitle}' (id:{$sId}) was read by {$sUser}");
|
||||
}
|
||||
]]></code>
|
||||
</listener>
|
||||
</event_listeners>
|
||||
</itop_design>
|
||||
|
||||
Reference in New Issue
Block a user