datamodel.itop-request-mgmt.xml 32 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3. <classes>
  4. <class id="UserRequest" _delta="define">
  5. <parent>ResponseTicket</parent>
  6. <properties>
  7. <comment><![CDATA[/**
  8. * Persistent classes for a CMDB
  9. *
  10. * @author Erwan Taloc <erwan.taloc@combodo.com>
  11. * @author Romain Quetiez <romain.quetiez@combodo.com>
  12. * @author Denis Flaven <denis.flaven@combodo.com>
  13. * @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
  14. */]]></comment>
  15. <category>bizmodel,searchable,requestmgmt</category>
  16. <abstract>false</abstract>
  17. <key_type>autoincrement</key_type>
  18. <db_table>ticket_request</db_table>
  19. <db_key_field>id</db_key_field>
  20. <db_final_class_field></db_final_class_field>
  21. <naming>
  22. <format>%1$s</format>
  23. <attributes>
  24. <attribute id="ref"/>
  25. </attributes>
  26. </naming>
  27. <display_template></display_template>
  28. <icon>images/user-request.png</icon>
  29. <reconciliation>
  30. <attributes>
  31. <attribute id="ref"/>
  32. </attributes>
  33. </reconciliation>
  34. <order>
  35. <columns>
  36. <column id="ref" order="0">
  37. <ascending>false</ascending>
  38. </column>
  39. </columns>
  40. </order>
  41. </properties>
  42. <fields>
  43. <field id="request_type" xsi:type="AttributeEnum">
  44. <values>
  45. <value>service request</value>
  46. <value>issue</value>
  47. <value>information</value>
  48. </values>
  49. <sql>request_type</sql>
  50. <default_value>service request</default_value>
  51. <is_null_allowed>false</is_null_allowed>
  52. </field>
  53. <field id="freeze_reason" xsi:type="AttributeString">
  54. <sql>freeze_reason</sql>
  55. <default_value></default_value>
  56. <is_null_allowed>true</is_null_allowed>
  57. </field>
  58. </fields>
  59. <lifecycle>
  60. <attribute>status</attribute>
  61. <stimuli>
  62. <stimulus id="ev_assign" xsi:type="StimulusUserAction"/>
  63. <stimulus id="ev_reassign" xsi:type="StimulusUserAction"/>
  64. <stimulus id="ev_timeout" xsi:type="StimulusInternal"/>
  65. <stimulus id="ev_resolve" xsi:type="StimulusUserAction"/>
  66. <stimulus id="ev_close" xsi:type="StimulusUserAction"/>
  67. <stimulus id="ev_freeze" xsi:type="StimulusUserAction"/>
  68. </stimuli>
  69. <states>
  70. <state id="new">
  71. <flags>
  72. <attribute id="ref">
  73. <read_only/>
  74. </attribute>
  75. <attribute id="description">
  76. <must_change/>
  77. </attribute>
  78. <attribute id="start_date">
  79. <read_only/>
  80. </attribute>
  81. <attribute id="caller_id">
  82. <mandatory/>
  83. </attribute>
  84. <attribute id="org_id">
  85. <must_change/>
  86. </attribute>
  87. <attribute id="service_id">
  88. <must_change/>
  89. </attribute>
  90. <attribute id="servicesubcategory_id">
  91. <must_change/>
  92. </attribute>
  93. <attribute id="product">
  94. <must_prompt/>
  95. </attribute>
  96. <attribute id="impact">
  97. <must_change/>
  98. </attribute>
  99. <attribute id="urgency">
  100. <must_change/>
  101. </attribute>
  102. <attribute id="priority">
  103. <read_only/>
  104. </attribute>
  105. <attribute id="workgroup_id">
  106. <must_change/>
  107. </attribute>
  108. <attribute id="agent_email">
  109. <hidden/>
  110. </attribute>
  111. <attribute id="related_problem_id">
  112. <hidden/>
  113. </attribute>
  114. <attribute id="related_change_id">
  115. <hidden/>
  116. </attribute>
  117. <attribute id="close_date">
  118. <hidden/>
  119. </attribute>
  120. <attribute id="last_update">
  121. <read_only/>
  122. </attribute>
  123. <attribute id="assignment_date">
  124. <hidden/>
  125. </attribute>
  126. <attribute id="resolution_date">
  127. <hidden/>
  128. </attribute>
  129. <attribute id="tto_escalation_deadline">
  130. <read_only/>
  131. </attribute>
  132. <attribute id="ttr_escalation_deadline">
  133. <hidden/>
  134. </attribute>
  135. <attribute id="closure_deadline">
  136. <hidden/>
  137. </attribute>
  138. <attribute id="resolution_code">
  139. <hidden/>
  140. </attribute>
  141. <attribute id="solution">
  142. <hidden/>
  143. </attribute>
  144. <attribute id="user_satisfaction">
  145. <hidden/>
  146. </attribute>
  147. <attribute id="user_commment">
  148. <hidden/>
  149. </attribute>
  150. <attribute id="request_type">
  151. <mandatory/>
  152. </attribute>
  153. <attribute id="freeze_reason">
  154. <hidden/>
  155. </attribute>
  156. </flags>
  157. <transitions>
  158. <transition>
  159. <stimulus>ev_assign</stimulus>
  160. <target>assigned</target>
  161. <actions>
  162. <action>
  163. <verb>SetAssignedDate</verb>
  164. </action>
  165. </actions>
  166. </transition>
  167. <transition>
  168. <stimulus>ev_timeout</stimulus>
  169. <target>escalated_tto</target>
  170. <actions/>
  171. </transition>
  172. </transitions>
  173. </state>
  174. <state id="escalated_tto">
  175. <flags>
  176. <attribute id="ref">
  177. <read_only/>
  178. </attribute>
  179. <attribute id="start_date">
  180. <read_only/>
  181. </attribute>
  182. <attribute id="caller_id">
  183. <mandatory/>
  184. </attribute>
  185. <attribute id="priority">
  186. <read_only/>
  187. </attribute>
  188. <attribute id="agent_email">
  189. <hidden/>
  190. </attribute>
  191. <attribute id="related_problem_id">
  192. <hidden/>
  193. </attribute>
  194. <attribute id="related_change_id">
  195. <hidden/>
  196. </attribute>
  197. <attribute id="close_date">
  198. <hidden/>
  199. </attribute>
  200. <attribute id="last_update">
  201. <read_only/>
  202. </attribute>
  203. <attribute id="assignment_date">
  204. <hidden/>
  205. </attribute>
  206. <attribute id="resolution_date">
  207. <hidden/>
  208. </attribute>
  209. <attribute id="tto_escalation_deadline">
  210. <read_only/>
  211. </attribute>
  212. <attribute id="ttr_escalation_deadline">
  213. <hidden/>
  214. </attribute>
  215. <attribute id="closure_deadline">
  216. <hidden/>
  217. </attribute>
  218. <attribute id="resolution_code">
  219. <hidden/>
  220. </attribute>
  221. <attribute id="solution">
  222. <hidden/>
  223. </attribute>
  224. <attribute id="user_satisfaction">
  225. <hidden/>
  226. </attribute>
  227. <attribute id="user_commment">
  228. <hidden/>
  229. </attribute>
  230. <attribute id="request_type">
  231. <mandatory/>
  232. </attribute>
  233. <attribute id="freeze_reason">
  234. <hidden/>
  235. </attribute>
  236. </flags>
  237. <transitions>
  238. <transition>
  239. <stimulus>ev_assign</stimulus>
  240. <target>assigned</target>
  241. <actions>
  242. <action>
  243. <verb>SetAssignedDate</verb>
  244. </action>
  245. </actions>
  246. </transition>
  247. </transitions>
  248. </state>
  249. <state id="assigned">
  250. <flags>
  251. <attribute id="ref">
  252. <read_only/>
  253. </attribute>
  254. <attribute id="title">
  255. <read_only/>
  256. </attribute>
  257. <attribute id="description">
  258. <read_only/>
  259. </attribute>
  260. <attribute id="start_date">
  261. <read_only/>
  262. </attribute>
  263. <attribute id="caller_id">
  264. <read_only/>
  265. </attribute>
  266. <attribute id="org_id">
  267. <read_only/>
  268. </attribute>
  269. <attribute id="priority">
  270. <read_only/>
  271. </attribute>
  272. <attribute id="workgroup_id">
  273. <mandatory/>
  274. <must_prompt/>
  275. </attribute>
  276. <attribute id="agent_id">
  277. <mandatory/>
  278. <must_prompt/>
  279. </attribute>
  280. <attribute id="agent_email">
  281. <read_only/>
  282. </attribute>
  283. <attribute id="close_date">
  284. <hidden/>
  285. </attribute>
  286. <attribute id="last_update">
  287. <read_only/>
  288. </attribute>
  289. <attribute id="assignment_date">
  290. <hidden/>
  291. </attribute>
  292. <attribute id="resolution_date">
  293. <hidden/>
  294. </attribute>
  295. <attribute id="tto_escalation_deadline">
  296. <hidden/>
  297. </attribute>
  298. <attribute id="ttr_escalation_deadline">
  299. <read_only/>
  300. </attribute>
  301. <attribute id="closure_deadline">
  302. <hidden/>
  303. </attribute>
  304. <attribute id="resolution_code">
  305. <hidden/>
  306. </attribute>
  307. <attribute id="solution">
  308. <hidden/>
  309. </attribute>
  310. <attribute id="user_satisfaction">
  311. <hidden/>
  312. </attribute>
  313. <attribute id="user_commment">
  314. <hidden/>
  315. </attribute>
  316. <attribute id="request_type">
  317. <mandatory/>
  318. </attribute>
  319. <attribute id="freeze_reason">
  320. <hidden/>
  321. </attribute>
  322. </flags>
  323. <transitions>
  324. <transition>
  325. <stimulus>ev_reassign</stimulus>
  326. <target>assigned</target>
  327. <actions/>
  328. </transition>
  329. <transition>
  330. <stimulus>ev_timeout</stimulus>
  331. <target>escalated_ttr</target>
  332. <actions/>
  333. </transition>
  334. <transition>
  335. <stimulus>ev_resolve</stimulus>
  336. <target>resolved</target>
  337. <actions>
  338. <action>
  339. <verb>SetResolveDate</verb>
  340. </action>
  341. <action>
  342. <verb>SetClosureDeadline</verb>
  343. </action>
  344. </actions>
  345. </transition>
  346. <transition>
  347. <stimulus>ev_freeze</stimulus>
  348. <target>frozen</target>
  349. <actions/>
  350. </transition>
  351. </transitions>
  352. </state>
  353. <state id="escalated_ttr">
  354. <flags>
  355. <attribute id="ref">
  356. <read_only/>
  357. </attribute>
  358. <attribute id="title">
  359. <read_only/>
  360. </attribute>
  361. <attribute id="description">
  362. <read_only/>
  363. </attribute>
  364. <attribute id="start_date">
  365. <read_only/>
  366. </attribute>
  367. <attribute id="caller_id">
  368. <read_only/>
  369. </attribute>
  370. <attribute id="org_id">
  371. <read_only/>
  372. </attribute>
  373. <attribute id="priority">
  374. <read_only/>
  375. </attribute>
  376. <attribute id="workgroup_id">
  377. <mandatory/>
  378. <must_prompt/>
  379. </attribute>
  380. <attribute id="agent_id">
  381. <mandatory/>
  382. <must_prompt/>
  383. </attribute>
  384. <attribute id="agent_email">
  385. <read_only/>
  386. </attribute>
  387. <attribute id="close_date">
  388. <hidden/>
  389. </attribute>
  390. <attribute id="last_update">
  391. <read_only/>
  392. </attribute>
  393. <attribute id="assignment_date">
  394. <hidden/>
  395. </attribute>
  396. <attribute id="resolution_date">
  397. <hidden/>
  398. </attribute>
  399. <attribute id="tto_escalation_deadline">
  400. <hidden/>
  401. </attribute>
  402. <attribute id="ttr_escalation_deadline">
  403. <read_only/>
  404. </attribute>
  405. <attribute id="closure_deadline">
  406. <hidden/>
  407. </attribute>
  408. <attribute id="resolution_code">
  409. <hidden/>
  410. </attribute>
  411. <attribute id="solution">
  412. <hidden/>
  413. </attribute>
  414. <attribute id="user_satisfaction">
  415. <hidden/>
  416. </attribute>
  417. <attribute id="user_commment">
  418. <hidden/>
  419. </attribute>
  420. <attribute id="request_type">
  421. <mandatory/>
  422. </attribute>
  423. <attribute id="freeze_reason">
  424. <hidden/>
  425. </attribute>
  426. </flags>
  427. <transitions>
  428. <transition>
  429. <stimulus>ev_reassign</stimulus>
  430. <target>escalated_ttr</target>
  431. <actions/>
  432. </transition>
  433. <transition>
  434. <stimulus>ev_resolve</stimulus>
  435. <target>resolved</target>
  436. <actions>
  437. <action>
  438. <verb>SetResolveDate</verb>
  439. </action>
  440. <action>
  441. <verb>SetClosureDeadline</verb>
  442. </action>
  443. </actions>
  444. </transition>
  445. </transitions>
  446. </state>
  447. <state id="frozen">
  448. <flags>
  449. <attribute id="ref">
  450. <read_only/>
  451. </attribute>
  452. <attribute id="title">
  453. <read_only/>
  454. </attribute>
  455. <attribute id="description">
  456. <read_only/>
  457. </attribute>
  458. <attribute id="start_date">
  459. <read_only/>
  460. </attribute>
  461. <attribute id="caller_id">
  462. <read_only/>
  463. </attribute>
  464. <attribute id="org_id">
  465. <read_only/>
  466. </attribute>
  467. <attribute id="priority">
  468. <read_only/>
  469. </attribute>
  470. <attribute id="workgroup_id">
  471. <mandatory/>
  472. </attribute>
  473. <attribute id="agent_id">
  474. <mandatory/>
  475. </attribute>
  476. <attribute id="agent_email">
  477. <read_only/>
  478. </attribute>
  479. <attribute id="close_date">
  480. <hidden/>
  481. </attribute>
  482. <attribute id="last_update">
  483. <read_only/>
  484. </attribute>
  485. <attribute id="assignment_date">
  486. <hidden/>
  487. </attribute>
  488. <attribute id="resolution_date">
  489. <hidden/>
  490. </attribute>
  491. <attribute id="tto_escalation_deadline">
  492. <hidden/>
  493. </attribute>
  494. <attribute id="ttr_escalation_deadline">
  495. <read_only/>
  496. </attribute>
  497. <attribute id="closure_deadline">
  498. <hidden/>
  499. </attribute>
  500. <attribute id="resolution_code">
  501. <hidden/>
  502. </attribute>
  503. <attribute id="solution">
  504. <hidden/>
  505. </attribute>
  506. <attribute id="user_satisfaction">
  507. <hidden/>
  508. </attribute>
  509. <attribute id="user_commment">
  510. <hidden/>
  511. </attribute>
  512. <attribute id="request_type">
  513. <mandatory/>
  514. </attribute>
  515. <attribute id="freeze_reason">
  516. <mandatory/>
  517. <must_prompt/>
  518. </attribute>
  519. </flags>
  520. <transitions>
  521. <transition>
  522. <stimulus>ev_timeout</stimulus>
  523. <target>escalated_ttr</target>
  524. <actions/>
  525. </transition>
  526. <transition>
  527. <stimulus>ev_assign</stimulus>
  528. <target>assigned</target>
  529. <actions/>
  530. </transition>
  531. <transition>
  532. <stimulus>ev_resolve</stimulus>
  533. <target>resolved</target>
  534. <actions/>
  535. </transition>
  536. </transitions>
  537. </state>
  538. <state id="resolved">
  539. <flags>
  540. <attribute id="ref">
  541. <read_only/>
  542. </attribute>
  543. <attribute id="title">
  544. <read_only/>
  545. </attribute>
  546. <attribute id="description">
  547. <read_only/>
  548. </attribute>
  549. <attribute id="start_date">
  550. <read_only/>
  551. </attribute>
  552. <attribute id="caller_id">
  553. <read_only/>
  554. </attribute>
  555. <attribute id="org_id">
  556. <read_only/>
  557. </attribute>
  558. <attribute id="service_id">
  559. <read_only/>
  560. </attribute>
  561. <attribute id="servicesubcategory_id">
  562. <read_only/>
  563. </attribute>
  564. <attribute id="product">
  565. <read_only/>
  566. </attribute>
  567. <attribute id="impact">
  568. <read_only/>
  569. </attribute>
  570. <attribute id="urgency">
  571. <read_only/>
  572. </attribute>
  573. <attribute id="priority">
  574. <read_only/>
  575. </attribute>
  576. <attribute id="workgroup_id">
  577. <read_only/>
  578. </attribute>
  579. <attribute id="agent_id">
  580. <read_only/>
  581. </attribute>
  582. <attribute id="agent_email">
  583. <read_only/>
  584. </attribute>
  585. <attribute id="close_date">
  586. <hidden/>
  587. </attribute>
  588. <attribute id="last_update">
  589. <read_only/>
  590. </attribute>
  591. <attribute id="assignment_date">
  592. <hidden/>
  593. </attribute>
  594. <attribute id="resolution_date">
  595. <hidden/>
  596. </attribute>
  597. <attribute id="tto_escalation_deadline">
  598. <hidden/>
  599. </attribute>
  600. <attribute id="ttr_escalation_deadline">
  601. <hidden/>
  602. </attribute>
  603. <attribute id="closure_deadline">
  604. <read_only/>
  605. </attribute>
  606. <attribute id="resolution_code">
  607. <must_prompt/>
  608. </attribute>
  609. <attribute id="solution">
  610. <must_prompt/>
  611. </attribute>
  612. <attribute id="user_satisfaction">
  613. <hidden/>
  614. </attribute>
  615. <attribute id="user_commment">
  616. <hidden/>
  617. </attribute>
  618. <attribute id="request_type">
  619. <mandatory/>
  620. </attribute>
  621. <attribute id="freeze_reason">
  622. <hidden/>
  623. </attribute>
  624. </flags>
  625. <transitions>
  626. <transition>
  627. <stimulus>ev_reassign</stimulus>
  628. <target>assigned</target>
  629. <actions/>
  630. </transition>
  631. <transition>
  632. <stimulus>ev_close</stimulus>
  633. <target>closed</target>
  634. <actions>
  635. <action>
  636. <verb>SetClosureDate</verb>
  637. </action>
  638. </actions>
  639. </transition>
  640. </transitions>
  641. </state>
  642. <state id="closed">
  643. <flags>
  644. <attribute id="ref">
  645. <read_only/>
  646. </attribute>
  647. <attribute id="title">
  648. <read_only/>
  649. </attribute>
  650. <attribute id="description">
  651. <read_only/>
  652. </attribute>
  653. <attribute id="ticket_log">
  654. <read_only/>
  655. </attribute>
  656. <attribute id="start_date">
  657. <read_only/>
  658. </attribute>
  659. <attribute id="caller_id">
  660. <read_only/>
  661. </attribute>
  662. <attribute id="org_id">
  663. <read_only/>
  664. </attribute>
  665. <attribute id="service_id">
  666. <read_only/>
  667. </attribute>
  668. <attribute id="servicesubcategory_id">
  669. <read_only/>
  670. </attribute>
  671. <attribute id="product">
  672. <read_only/>
  673. </attribute>
  674. <attribute id="impact">
  675. <read_only/>
  676. </attribute>
  677. <attribute id="urgency">
  678. <read_only/>
  679. </attribute>
  680. <attribute id="priority">
  681. <read_only/>
  682. </attribute>
  683. <attribute id="workgroup_id">
  684. <read_only/>
  685. </attribute>
  686. <attribute id="agent_id">
  687. <read_only/>
  688. </attribute>
  689. <attribute id="agent_email">
  690. <read_only/>
  691. </attribute>
  692. <attribute id="close_date">
  693. <read_only/>
  694. </attribute>
  695. <attribute id="last_update">
  696. <read_only/>
  697. </attribute>
  698. <attribute id="assignment_date">
  699. <hidden/>
  700. </attribute>
  701. <attribute id="resolution_date">
  702. <hidden/>
  703. </attribute>
  704. <attribute id="tto_escalation_deadline">
  705. <hidden/>
  706. </attribute>
  707. <attribute id="ttr_escalation_deadline">
  708. <hidden/>
  709. </attribute>
  710. <attribute id="closure_deadline">
  711. <hidden/>
  712. </attribute>
  713. <attribute id="resolution_code">
  714. <read_only/>
  715. </attribute>
  716. <attribute id="solution">
  717. <read_only/>
  718. </attribute>
  719. <attribute id="user_satisfaction">
  720. <must_prompt/>
  721. </attribute>
  722. <attribute id="user_commment">
  723. <must_prompt/>
  724. </attribute>
  725. <attribute id="request_type">
  726. <read_only/>
  727. </attribute>
  728. <attribute id="freeze_reason">
  729. <hidden/>
  730. </attribute>
  731. </flags>
  732. <transitions/>
  733. </state>
  734. </states>
  735. </lifecycle>
  736. <methods>
  737. <method id="ComputeValues">
  738. <static>false</static>
  739. <access>public</access>
  740. <type>Overload-DBObject</type>
  741. <code><![CDATA[ public function ComputeValues()
  742. {
  743. $sCurrRef = $this->Get('ref');
  744. if (strlen($sCurrRef) == 0)
  745. {
  746. $iKey = $this->GetKey();
  747. if ($iKey < 0)
  748. {
  749. // Object not yet in the Database
  750. $iKey = MetaModel::GetNextKey(get_class($this));
  751. }
  752. $sName = sprintf('R-%06d', $iKey);
  753. $this->Set('ref', $sName);
  754. }
  755. return parent::ComputeValues();
  756. }]]></code>
  757. </method>
  758. <method id="GetIcon">
  759. <comment>/**
  760. * Get the icon representing this object
  761. * @param boolean $bImgTag If true the result is a full IMG tag (or an emtpy string if no icon is defined)
  762. * @return string Either the full IMG tag ($bImgTag == true) or just the path to the icon file
  763. */</comment>
  764. <static>false</static>
  765. <access>public</access>
  766. <type>Overload-DBObject</type>
  767. <code><![CDATA[ public function GetIcon($bImgTag = true)
  768. {
  769. $sStatus = $this->Get('status');
  770. switch($this->GetState())
  771. {
  772. case 'escalated_tto':
  773. case 'escalated_ttr':
  774. $sIcon = self::MakeIconFromName('user-request-escalated.png');
  775. break;
  776. case 'resolved':
  777. case 'closed':
  778. $sIcon = self::MakeIconFromName('user-request-closed.png');
  779. break;
  780. case 'new':
  781. $sIcon = self::MakeIconFromName('user-request.png');
  782. $oEscalationDeadline = $this->Get('tto_escalation_deadline');
  783. if ($oEscalationDeadline != null)
  784. {
  785. // A SLA is running
  786. $iStartDate = AttributeDateTime::GetAsUnixSeconds($this->Get('start_date'));
  787. $iEscalationDeadline = AttributeDateTime::GetAsUnixSeconds($oEscalationDeadline);
  788. $ratio = ($iEscalationDeadline - time())/($iEscalationDeadline - $iStartDate);
  789. if ($ratio <= 0)
  790. {
  791. $sIcon = self::MakeIconFromName('user-request-escalated.png');
  792. }
  793. else if ($ratio <= 0.25)
  794. {
  795. $sIcon = self::MakeIconFromName('user-request-deadline.png');
  796. }
  797. }
  798. break;
  799. case 'assigned':
  800. $sIcon = self::MakeIconFromName('user-request.png');
  801. $oEscalationDeadline = $this->Get('ttr_escalation_deadline');
  802. if ($oEscalationDeadline != null)
  803. {
  804. // A SLA is running
  805. $iStartDate = AttributeDateTime::GetAsUnixSeconds($this->Get('start_date'));
  806. $iEscalationDeadline = AttributeDateTime::GetAsUnixSeconds($oEscalationDeadline);
  807. $ratio = ($iEscalationDeadline - time())/($iEscalationDeadline - $iStartDate);
  808. if ($ratio <= 0)
  809. {
  810. $sIcon = self::MakeIconFromName('user-request-escalated.png');
  811. }
  812. else if ($ratio <= 0.25)
  813. {
  814. $sIcon = self::MakeIconFromName('user-request-deadline.png');
  815. }
  816. }
  817. break;
  818. default:
  819. $sIcon = MetaModel::GetClassIcon(get_class($this), $bImgTag);
  820. }
  821. return $sIcon;
  822. }]]></code>
  823. </method>
  824. <method id="MakeIconFromName">
  825. <static>true</static>
  826. <access>protected</access>
  827. <type>Overload-DBObject</type>
  828. <code><![CDATA[ protected static function MakeIconFromName($sIconName, $bImgTag = true)
  829. {
  830. $sIcon = '';
  831. if ($sIconName != '')
  832. {
  833. $sPath = utils::GetAbsoluteUrlModulesRoot().'itop-request-mgmt-1.0.0/images/'.$sIconName;
  834. if ($bImgTag)
  835. {
  836. $sIcon = "<img src=\"$sPath\" style=\"vertical-align:middle;\"/>";
  837. }
  838. else
  839. {
  840. $sIcon = $sPath;
  841. }
  842. }
  843. return $sIcon;
  844. }]]></code>
  845. </method>
  846. </methods>
  847. <presentation>
  848. <details>
  849. <items>
  850. <item>document_list</item>
  851. <item>ci_list</item>
  852. <item>contact_list</item>
  853. <item>incident_list</item>
  854. <item id="col:col1">
  855. <items>
  856. <item id="fieldset:Ticket:baseinfo">
  857. <items>
  858. <item>ref</item>
  859. <item>title</item>
  860. <item>org_id</item>
  861. <item>status</item>
  862. <item>priority</item>
  863. <item>request_type</item>
  864. <item>service_id</item>
  865. <item>servicesubcategory_id</item>
  866. <item>product</item>
  867. </items>
  868. </item>
  869. <item id="fieldset:Ticket:moreinfo">
  870. <items>
  871. <item>impact</item>
  872. <item>urgency</item>
  873. <item>description</item>
  874. <item>resolution_code</item>
  875. <item>solution</item>
  876. <item>user_satisfaction</item>
  877. <item>user_commment</item>
  878. <item>freeze_reason</item>
  879. </items>
  880. </item>
  881. </items>
  882. </item>
  883. <item id="col:col2">
  884. <items>
  885. <item id="fieldset:Ticket:date">
  886. <items>
  887. <item>start_date</item>
  888. <item>last_update</item>
  889. <item>assignment_date</item>
  890. <item>tto_escalation_deadline</item>
  891. <item>ttr_escalation_deadline</item>
  892. <item>close_date</item>
  893. <item>closure_deadline</item>
  894. </items>
  895. </item>
  896. <item id="fieldset:Ticket:contact">
  897. <items>
  898. <item>caller_id</item>
  899. <item>workgroup_id</item>
  900. <item>agent_id</item>
  901. </items>
  902. </item>
  903. <item id="fieldset:Ticket:relation">
  904. <items>
  905. <item>related_problem_id</item>
  906. <item>related_change_id</item>
  907. </items>
  908. </item>
  909. </items>
  910. </item>
  911. </items>
  912. </details>
  913. <search>
  914. <items>
  915. <item>ref</item>
  916. <item>title</item>
  917. <item>org_id</item>
  918. <item>request_type</item>
  919. <item>start_date</item>
  920. <item>status</item>
  921. <item>caller_id</item>
  922. <item>service_id</item>
  923. <item>servicesubcategory_id</item>
  924. <item>product</item>
  925. <item>impact</item>
  926. <item>urgency</item>
  927. <item>priority</item>
  928. <item>workgroup_id</item>
  929. <item>agent_id</item>
  930. <item>agent_email</item>
  931. <item>close_date</item>
  932. <item>resolution_code</item>
  933. <item>solution</item>
  934. <item>user_satisfaction</item>
  935. <item>user_commment</item>
  936. </items>
  937. </search>
  938. <list>
  939. <items>
  940. <item>title</item>
  941. <item>org_id</item>
  942. <item>start_date</item>
  943. <item>status</item>
  944. <item>service_id</item>
  945. <item>priority</item>
  946. <item>workgroup_id</item>
  947. <item>agent_id</item>
  948. </items>
  949. </list>
  950. </presentation>
  951. </class>
  952. </classes>
  953. <menus>
  954. <menu id="RequestManagement" xsi:type="MenuGroup">
  955. <rank>30</rank>
  956. </menu>
  957. <menu id="UserRequest:Overview" xsi:type="TemplateMenuNode">
  958. <rank>0</rank>
  959. <parent>RequestManagement</parent>
  960. <template_file>overview.html</template_file>
  961. </menu>
  962. <menu id="NewUserRequest" xsi:type="NewObjectMenuNode">
  963. <rank>1</rank>
  964. <parent>RequestManagement</parent>
  965. <class>UserRequest</class>
  966. </menu>
  967. <menu id="SearchUserRequests" xsi:type="SearchMenuNode">
  968. <rank>2</rank>
  969. <parent>RequestManagement</parent>
  970. <class>UserRequest</class>
  971. </menu>
  972. <menu id="UserRequest:Shortcuts" xsi:type="TemplateMenuNode">
  973. <rank>3</rank>
  974. <parent>RequestManagement</parent>
  975. <template_file></template_file>
  976. </menu>
  977. <menu id="UserRequest:MyRequests" xsi:type="OQLMenuNode">
  978. <rank>1</rank>
  979. <parent>UserRequest:Shortcuts</parent>
  980. <oql><![CDATA[SELECT UserRequest WHERE agent_id = :current_contact_id AND status NOT IN ("closed","resolved")]]></oql>
  981. <do_search></do_search>
  982. <auto_reload>fast</auto_reload>
  983. </menu>
  984. <menu id="UserRequest:EscalatedRequests" xsi:type="OQLMenuNode">
  985. <rank>2</rank>
  986. <parent>UserRequest:Shortcuts</parent>
  987. <oql><![CDATA[SELECT UserRequest WHERE status IN ("escalated_tto", "escalated_ttr")]]></oql>
  988. <do_search></do_search>
  989. <auto_reload>fast</auto_reload>
  990. </menu>
  991. <menu id="UserRequest:OpenRequests" xsi:type="OQLMenuNode">
  992. <rank>3</rank>
  993. <parent>UserRequest:Shortcuts</parent>
  994. <oql><![CDATA[SELECT UserRequest WHERE status IN ("new", "assigned", "escalated_tto", "escalated_ttr", "frozen", "resolved")]]></oql>
  995. <do_search></do_search>
  996. <auto_reload>fast</auto_reload>
  997. </menu>
  998. </menus>
  999. </itop_design>