finish.html.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. <?php
  2. /**
  3. * The finish view file of task module of ZenTaoPMS.
  4. *
  5. * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
  6. * @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
  7. * @author Sun Guangming<sunguangming@easycorp.ltd>
  8. * @package task
  9. * @link https://www.zentao.net
  10. */
  11. namespace zin;
  12. if(!$canRecordEffort)
  13. {
  14. modalHeader();
  15. div
  16. (
  17. set::className('alert with-icon'),
  18. icon('exclamation-sign icon-3x'),
  19. div
  20. (
  21. set::className('content'),
  22. p
  23. (
  24. set::className('font-bold'),
  25. $deniedNotice
  26. )
  27. )
  28. );
  29. }
  30. else
  31. {
  32. jsVar('consumed', empty($task->team) ? $task->consumed : (float)$task->myConsumed);
  33. jsVar('task', $task);
  34. jsVar('consumedEmpty', $lang->task->error->consumedEmptyAB);
  35. $realStarted = substr((string)$task->realStarted, 0, 19);
  36. if(helper::isZeroDate($realStarted)) $realStarted = '';
  37. if(!empty($task->team))
  38. {
  39. $consumedControl = formGroup
  40. (
  41. set::width('1/2'),
  42. set::label($lang->task->my . $lang->task->hasConsumed),
  43. div(
  44. set::className('consumed'),
  45. $task->myConsumed . $lang->task->suffixHour
  46. )
  47. );
  48. $assignedToControl = formGroup
  49. (
  50. set::width('1/2'),
  51. set::label($lang->story->assignTo),
  52. set::control('input'),
  53. set::disabled(true),
  54. set::value(zget($members, $task->nextBy)),
  55. formHidden('assignedTo', $task->nextBy)
  56. );
  57. }
  58. else
  59. {
  60. $consumedControl = null;
  61. $assignedToControl = formGroup
  62. (
  63. set::width('1/2'),
  64. set::name('assignedTo'),
  65. set::label($lang->story->assignTo),
  66. set::control('picker'),
  67. set::value($task->nextBy),
  68. set::items($members)
  69. );
  70. }
  71. modalHeader
  72. (
  73. to::suffix
  74. (
  75. span
  76. (
  77. setClass('flex gap-x-2 mr-3 nowrap'),
  78. !empty($task->team) ? $lang->task->common . $lang->task->consumed : $lang->task->hasConsumed,
  79. span
  80. (
  81. setClass('label secondary-pale'),
  82. $task->consumed . $lang->task->suffixHour
  83. )
  84. ),
  85. span
  86. (
  87. setClass('flex gap-x-2 nowrap'),
  88. $lang->task->consumed,
  89. span
  90. (
  91. setClass('label warning-pale'),
  92. span
  93. (
  94. setID('totalConsumed'),
  95. $task->consumed
  96. ),
  97. $lang->task->suffixHour
  98. )
  99. )
  100. )
  101. );
  102. formPanel
  103. (
  104. setID('finishForm'),
  105. set::ajax(array('beforeSubmit' => jsRaw("clickSubmit"))),
  106. $consumedControl,
  107. formGroup
  108. (
  109. set::width('1/2'),
  110. set::label($lang->task->currentConsumed),
  111. inputControl
  112. (
  113. input
  114. (
  115. set::name('currentConsumed'),
  116. set::value(0),
  117. set::type('text')
  118. ),
  119. to::suffix($lang->task->suffixHour),
  120. set::suffixWidth(20)
  121. )
  122. ),
  123. $assignedToControl,
  124. formGroup
  125. (
  126. set::width('1/2'),
  127. set::label($lang->project->realBeganAB),
  128. set::required(true),
  129. datetimePicker
  130. (
  131. set::name('realStarted'),
  132. set::value($realStarted),
  133. set('disabled', !empty($realStarted))
  134. ),
  135. !empty($realStarted) ? formHidden('realStarted', $realStarted) : null
  136. ),
  137. formGroup
  138. (
  139. set::width('1/2'),
  140. set::label($lang->project->realEndAB),
  141. datetimePicker
  142. (
  143. set::name('finishedDate'),
  144. set::value(helper::now())
  145. )
  146. ),
  147. formGroup
  148. (
  149. set::label($lang->story->files),
  150. fileSelector()
  151. ),
  152. formGroup
  153. (
  154. set::name('comment'),
  155. set::label($lang->comment),
  156. set::control("editor")
  157. )
  158. );
  159. hr();
  160. history();
  161. }
  162. render();