start.html.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <?php
  2. /**
  3. * The start view file of task module of ZenTaoPMS.
  4. * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(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 Shujie Tian<tianshujie@easycorp.ltd>
  7. * @package task
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. /* ====== Preparing and processing page data ====== */
  12. jsVar('confirmFinish', $lang->task->confirmFinish);
  13. jsVar('confirmTeamFinish', $lang->task->confirmTeamFinish);
  14. jsVar('noticeTaskStart', $lang->task->noticeTaskStart);
  15. jsVar('currentTeam', $currentTeam);
  16. /* zin: Set variables to define control for form. */
  17. $assignedToControl = '';
  18. if($task->mode == 'linear')
  19. {
  20. $assignedToControl = inputGroup(
  21. set::className('no-background'),
  22. picker
  23. (
  24. set::name('assignedTo'),
  25. set::items($users),
  26. set::value($assignedTo),
  27. set::required(true),
  28. set::disabled(true)
  29. ),
  30. input
  31. (
  32. set::className('hidden'),
  33. set::name('assignedTo'),
  34. set::value($assignedTo)
  35. )
  36. );
  37. }
  38. elseif($canRecordEffort)
  39. {
  40. $assignedToControl = picker(
  41. set::name('assignedTo'),
  42. set::value($assignedTo),
  43. set::items($members)
  44. );
  45. }
  46. /* ====== Define the page structure with zin widgets ====== */
  47. modalHeader();
  48. if(!$canRecordEffort)
  49. {
  50. if($task->assignedTo != $app->user->account && $task->mode == 'linear')
  51. {
  52. $deniedNotice = sprintf($lang->task->deniedNotice, zget($users, $task->assignedTo), $lang->task->start);
  53. }
  54. else
  55. {
  56. $deniedNotice = sprintf($lang->task->deniedNotice, $lang->task->teamMember, $lang->task->start);
  57. }
  58. div
  59. (
  60. set::className('alert with-icon'),
  61. icon('exclamation-sign icon-3x'),
  62. div
  63. (
  64. set::className('content'),
  65. p
  66. (
  67. set::className('font-bold'),
  68. $deniedNotice
  69. )
  70. )
  71. );
  72. }
  73. else
  74. {
  75. formPanel
  76. (
  77. setID('startForm'),
  78. set::ajax(array('beforeSubmit' => jsRaw("clickSubmit"))),
  79. formGroup
  80. (
  81. set::className($task->mode == 'multi' ? 'hidden' : ''),
  82. set::width('1/2'),
  83. set::label($lang->task->assignedTo),
  84. $assignedToControl
  85. ),
  86. formGroup
  87. (
  88. set::width('1/2'),
  89. set::label($lang->task->realStarted),
  90. datetimePicker
  91. (
  92. set::name('realStarted'),
  93. set::value(helper::isZeroDate($task->realStarted) ? helper::now() : $task->realStarted)
  94. )
  95. ),
  96. formRow
  97. (
  98. formGroup
  99. (
  100. set::width('1/2'),
  101. set::label($task->mode == 'linear' ? $lang->task->myConsumed : $lang->task->consumed),
  102. inputControl
  103. (
  104. input
  105. (
  106. set::name('consumed'),
  107. set::value(!empty($currentTeam) ? helper::formatHours((float)$currentTeam->consumed) : helper::formatHours((float)$task->consumed))
  108. ),
  109. to::suffix($lang->task->suffixHour),
  110. set::suffixWidth(20)
  111. )
  112. ),
  113. formGroup
  114. (
  115. set::width('1/2'),
  116. set::label($lang->task->left),
  117. inputControl
  118. (
  119. input
  120. (
  121. set::name('left'),
  122. set::value(!empty($currentTeam) ? helper::formatHours((float)$currentTeam->left) : helper::formatHours((float)$task->left))
  123. ),
  124. to::suffix($lang->task->suffixHour),
  125. set::suffixWidth(20)
  126. )
  127. )
  128. ),
  129. formGroup
  130. (
  131. set::label($lang->comment),
  132. editor
  133. (
  134. set::name('comment'),
  135. set::rows('5')
  136. )
  137. )
  138. );
  139. hr();
  140. history();
  141. }
  142. /* ====== Render page ====== */
  143. render();