view.html.php 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. <?php
  2. /**
  3. * The view view file of risk module of ZenTaoPMS.
  4. * @copyright Copyright 2009-2024 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
  5. * @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
  6. * @author Chenxuan Song <songchenxuan@easycorp.ltd>
  7. * @package risk
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. $canModify = !$risk->deleted;
  12. if($canModify && $project) $canModify = common::canModify('project', $project);
  13. if($canModify && $execution) $canModify = common::canModify('execution', $execution);
  14. $actions = $canModify ? $this->loadModel('common')->buildOperateMenu($risk) : array();
  15. if(!empty($actions)) $actions = array_merge($actions['mainActions'], $actions['suffixActions']);
  16. foreach($actions as $key => $action)
  17. {
  18. if(isset($actions[$key]['url']))
  19. {
  20. $actions[$key]['url'] = str_replace('{from}', $from, $action['url']);
  21. }
  22. }
  23. $basicInfoItems = array();
  24. $basicInfoItems[$lang->risk->id] = array('control' => 'text', 'text' => $risk->id);
  25. $basicInfoItems[$lang->risk->source] = array('control' => 'text', 'text' => zget($lang->risk->sourceList, $risk->source));
  26. if(!empty($project->multiple)) $basicInfoItems[$lang->risk->execution] = array('control' => 'link', 'text' => !empty($execution->name) ? $execution->name : '', 'url' => createLink('execution', 'view', "executionID={$risk->execution}"));
  27. $basicInfoItems[$lang->risk->category] = array('control' => 'text', 'text' => zget($lang->risk->categoryList, $risk->category));
  28. $basicInfoItems[$lang->risk->strategy] = array('control' => 'text', 'text' => zget($lang->risk->strategyList, $risk->strategy));
  29. $basicInfoItems[$lang->risk->status] = array('control' => 'text', 'text' => $this->processStatus('risk', $risk), 'contentClass' => 'status-' . $risk->status);
  30. $basicInfoItems[$lang->risk->impact] = array('control' => 'text', 'text' => zget($lang->risk->impactList, $risk->impact));
  31. $basicInfoItems[$lang->risk->probability] = array('control' => 'text', 'text' => zget($lang->risk->probabilityList, $risk->probability));
  32. $basicInfoItems[$lang->risk->rate] = array('control' => 'text', 'text' => $risk->rate);
  33. $basicInfoItems[$lang->risk->pri] = array('control' => 'pri', 'text' => $lang->risk->priList, 'pri' => $risk->pri);
  34. $basicInfoItems[$lang->risk->identifiedDate] = array('control' => 'text', 'text' => helper::isZeroDate($risk->identifiedDate) ? '' : $risk->identifiedDate);
  35. $basicInfoItems[$lang->risk->plannedClosedDate] = array('control' => 'text', 'text' => helper::isZeroDate($risk->plannedClosedDate) ? '' : $risk->plannedClosedDate);
  36. $basicInfoItems[$lang->risk->actualClosedDate] = array('control' => 'text', 'text' => helper::isZeroDate($risk->actualClosedDate) ? '' : $risk->actualClosedDate);
  37. $basicInfo = datalist
  38. (
  39. set::className('risk-basic-info'),
  40. set::items($basicInfoItems)
  41. );
  42. $isEn = $app->getClientLang() == 'en';
  43. $lifeTimeItems = array();
  44. $lifeTimeItems[$lang->risk->assignedTo] = array('control' => 'text', 'text' => zget($users, $risk->assignedTo));
  45. $lifeTimeItems[$lang->risk->trackedBy] = array('control' => 'text', 'text' => zget($users, $risk->trackedBy));
  46. $lifeTimeItems[$lang->risk->trackedDate] = array('control' => 'text', 'text' => helper::isZeroDate($risk->trackedDate) ? '' : $risk->trackedDate);
  47. $lifeTimeItems[$lang->risk->createdBy] = array('control' => 'text', 'text' => zget($users, $risk->createdBy));
  48. $lifeTimeItems[$lang->risk->createdDate] = array('control' => 'text', 'text' => helper::isZeroDate($risk->createdDate) ? '' : $risk->createdDate);
  49. $lifeTimeItems[$lang->risk->editedBy] = array('control' => 'text', 'text' => zget($users, $risk->editedBy));
  50. $lifeTimeItems[$lang->risk->editedDate] = array('control' => 'text', 'text' => helper::isZeroDate($risk->editedDate) ? '' : $risk->editedDate);
  51. $lifeTimeItems[$lang->risk->assignedDate] = array('control' => 'text', 'text' => helper::isZeroDate($risk->assignedDate) ? '' : $risk->assignedDate);
  52. $lifeTimeItems[$lang->risk->resolvedBy] = array('control' => 'text', 'text' => zget($users, $risk->resolvedBy));
  53. $lifeTimeItems[$lang->risk->actualClosedDate] = array('control' => 'text', 'text' => helper::isZeroDate($risk->actualClosedDate) ? '' : $risk->actualClosedDate);
  54. $lifeTimeItems[$lang->risk->cancelBy] = array('control' => 'text', 'text' => zget($users, $risk->cancelBy));
  55. $lifeTimeItems[$lang->risk->cancelDate] = array('control' => 'text', 'text' => helper::isZeroDate($risk->cancelDate) ? '' : $risk->cancelDate);
  56. $lifeTimeItems[$lang->risk->cancelReason] = array('control' => 'text', 'text' => zget($lang->risk->cancelReasonList, $risk->cancelReason));
  57. $lifeTimeItems[$lang->risk->hangupBy] = array('control' => 'text', 'text' => zget($users, $risk->hangupBy));
  58. $lifeTimeItems[$lang->risk->hangupDate] = array('control' => 'text', 'text' => helper::isZeroDate($risk->hangupDate) ? '' : $risk->hangupDate);
  59. $lifeTimeItems[$lang->risk->activateBy] = array('control' => 'text', 'text' => zget($users, $risk->activateBy));
  60. $lifeTimeItems[$lang->risk->activateDate] = array('control' => 'text', 'text' => helper::isZeroDate($risk->activateDate) ? '' : $risk->activateDate);
  61. $lifeTime = datalist
  62. (
  63. set::className('risk-lift-item'),
  64. set::items($lifeTimeItems),
  65. $isEn ? set::labelWidth('100') : null
  66. );
  67. $tabs = array();
  68. $tabs[] = setting()
  69. ->group('basic')
  70. ->title($lang->risk->legendBasicInfo)
  71. ->children(wg($basicInfo));
  72. $tabs[] = setting()
  73. ->group('basic')
  74. ->title($lang->risk->legendLifeTime)
  75. ->children(wg($lifeTime));
  76. $tabs[] = setting()
  77. ->group('misc')
  78. ->title($lang->custom->relateObject)
  79. ->control('relatedObjectList')
  80. ->objectID($risk->id)
  81. ->objectType('risk')
  82. ->browseType('byObject');
  83. $sections = array();
  84. $sections[] = setting()
  85. ->title($lang->risk->prevention)
  86. ->control('html')
  87. ->content($risk->prevention);
  88. $sections[] = setting()
  89. ->title($lang->risk->remedy)
  90. ->control('html')
  91. ->content($risk->remedy);
  92. $sections[] = setting()
  93. ->title($lang->risk->resolution)
  94. ->control('html')
  95. ->content($risk->resolution);
  96. detail
  97. (
  98. set::sections($sections),
  99. set::tabs($tabs),
  100. set::actions(array_values($actions))
  101. );
  102. modal
  103. (
  104. setID('importToLib'),
  105. set::modalProps(array('title' => $lang->risk->importToLib)),
  106. form
  107. (
  108. setID('importToLibForm'),
  109. setClass('text-center py-4'),
  110. set::actions(array('submit')),
  111. set::submitBtnText($lang->import),
  112. set::url(createLink('risk', 'importToLib', "riskID={$risk->id}")),
  113. formGroup(set::label($lang->risk->lib), set::required(true), setClass('text-left'), picker
  114. (
  115. set::name('lib'),
  116. set::required(true),
  117. set::items($libs)
  118. )),
  119. !common::hasPriv('assetlib', 'approveRisk') && !common::hasPriv('assetlib', 'batchApproveRisk') ? formGroup
  120. (
  121. set::label($lang->risk->approver),
  122. setClass('text-left'),
  123. picker
  124. (
  125. set::name('assignedTo'),
  126. set::required(true),
  127. set::items($approvers)
  128. )
  129. ) : null
  130. )
  131. );