edit.html.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. <?php
  2. namespace zin;
  3. jsVar('demandStatus', $demand->status);
  4. jsVar('page', 'edit');
  5. jsVar('distributedProducts', $distributedProducts);
  6. jsVar('confirmChangProduct', $lang->demand->confirmChangProduct);
  7. jsVar('reviewedBy', explode(',', trim($demand->reviewedBy, ',')));
  8. jsVar('notDeleted', $lang->demand->notice->notDeleted);
  9. jsVar('reviewerNotEmpty', $lang->demand->notice->reviewerNotEmpty);
  10. jsVar('demandReviewers', $demand->reviewer);
  11. $canEditContent = strpos(',draft,changing,', ",{$demand->status},") !== false;
  12. $forceReview = $this->demand->checkForceReview();
  13. $assignedToList = $demand->status == 'closed' ? array('closed' => 'Closed') : $users;
  14. $undetermined = empty(trim($demand->product, ',')) ? true : false;
  15. $hiddenTbdClass = $undetermined ? '' : 'hidden';
  16. $fields = $config->demand->form->edit;
  17. detailHeader
  18. (
  19. to::prefix($lang->demand->edit),
  20. to::title
  21. (
  22. entityLabel
  23. (
  24. set::level(1),
  25. set::entityID($demand->id),
  26. set::reverse(true),
  27. span(setID('demandTitle'), $demand->title)
  28. )
  29. )
  30. );
  31. detailBody
  32. (
  33. setID('dataform'),
  34. set::isForm(true),
  35. set::ajax(array('beforeSubmit' => jsRaw('clickSubmit'))),
  36. $canEditContent ? set::actions(array
  37. (
  38. array('btnType' => 'submit', 'class' => 'primary', 'data-status' => 'active', 'text' => $lang->save),
  39. array('btnType' => 'submit', 'class' => 'secondary', 'data-status' => 'draft', 'text' => $demand->status == 'changing' ? $lang->story->doNotSubmit : $lang->demand->saveDraft),
  40. isInModal() ? null : array('text' => $lang->goback, 'back' => 'APP')
  41. )) : null,
  42. sectionList
  43. (
  44. section
  45. (
  46. set::required(true),
  47. set::title($lang->demand->title),
  48. inputControl
  49. (
  50. input
  51. (
  52. setClass('filter-none'),
  53. set::name('title'),
  54. set::value($demand->title),
  55. set::readonly(!$canEditContent)
  56. ),
  57. set::suffixWidth('40'),
  58. to::suffix
  59. (
  60. colorPicker
  61. (
  62. set::heading($lang->demand->colorTag),
  63. set::name('color'),
  64. set::value($demand->color),
  65. set::syncColor('#title, #demandTitle')
  66. )
  67. )
  68. )
  69. ),
  70. $canEditContent ? section
  71. (
  72. set::required(true),
  73. set::title($lang->demand->reviewers),
  74. inputGroup
  75. (
  76. picker
  77. (
  78. setID('reviewer'),
  79. set::name('reviewer[]'),
  80. set::items($reviewers),
  81. set::value($demand->reviewers),
  82. set::multiple(true)
  83. ),
  84. $forceReview ? null : span
  85. (
  86. setClass('input-group-addon'),
  87. checkbox
  88. (
  89. setID('needNotReview'),
  90. set::name('needNotReview'),
  91. set::checked(empty($demand->reviewer)),
  92. set::value(1),
  93. set::text($lang->demand->needNotReview),
  94. on::change('changeNeedNotReview')
  95. )
  96. ),
  97. $forceReview ? formHidden('needNotReview', $forceReview ? 0 : 1) : null
  98. )
  99. ) : null,
  100. section
  101. (
  102. set::title($lang->demand->legendSpec),
  103. $canEditContent ? formGroup(editor(set::name('spec'), html($demand->spec))) : set::content($demand->spec),
  104. $canEditContent ? null : set::useHtml(true),
  105. $canEditContent ? null : formHidden('spec', $demand->spec)
  106. ),
  107. section
  108. (
  109. set::title($lang->demand->verify),
  110. $canEditContent ? formGroup(editor(set::name('verify'), html($demand->verify))) : set::content($demand->verify),
  111. $canEditContent ? null : set::useHtml(true),
  112. $canEditContent ? null : formHidden('verify', $demand->verify)
  113. ),
  114. $canEditContent || $demand->files ? section
  115. (
  116. set::title($lang->demand->legendAttach),
  117. $canEditContent ? fileSelector() : null,
  118. $demand->files ? fileList
  119. (
  120. set::files($demand->files),
  121. set::fieldset(false),
  122. set::showEdit(true),
  123. set::showDelete(true),
  124. set::object($demand)
  125. ) : null
  126. ) : null,
  127. section
  128. (
  129. set::title($lang->demand->comment),
  130. formGroup(editor(set::name('comment')))
  131. )
  132. ),
  133. history(),
  134. detailSide
  135. (
  136. set::isForm(true),
  137. tableData(setClass('mt-5'), set::title($lang->demand->legendBasicInfo), item
  138. (
  139. set::trClass(zget($fields['pool'], 'className', '')),
  140. set::name($lang->demand->pool),
  141. picker
  142. (
  143. set::name('pool'),
  144. set::items($demandpools),
  145. set::value($demand->pool),
  146. on::change('changePool'),
  147. set::required(true)
  148. )
  149. ), item
  150. (
  151. set::trClass('productBox'),
  152. set::name($lang->demand->product),
  153. inputGroup
  154. (
  155. picker
  156. (
  157. set::name('product[]'),
  158. set::items($products),
  159. set::value($demand->product),
  160. set::multiple(true),
  161. set::disabled($undetermined),
  162. set::required(true),
  163. set::onDeselect(jsRaw('deselectProduct'))
  164. ),
  165. input
  166. (
  167. set::name('undeterminedProduct'),
  168. set::value(),
  169. set::readonly(true),
  170. set::hidden(true)
  171. ),
  172. span
  173. (
  174. setClass('input-group-addon ' . $hiddenTbdClass),
  175. checkbox
  176. (
  177. setID('undetermined'),
  178. set::name('undetermined'),
  179. set::checked($undetermined),
  180. set::value(1),
  181. set::text($lang->demand->undetermined),
  182. on::change('toggleProductDropdown'),
  183. set::disabled($demand->parent < 0)
  184. )
  185. )
  186. )
  187. ), item
  188. (
  189. set::name($lang->demand->source),
  190. picker(setID('source'), set::name('source'), set::items($fields['source']['options']), set::value($demand->source))
  191. ), item
  192. (
  193. set::name($lang->demand->sourceNote),
  194. input(set::name('sourceNote'), set::value($demand->sourceNote))
  195. ), item
  196. (
  197. set::name($lang->demand->duration),
  198. picker(setID('duration'), set::name('duration'), set::items($fields['duration']['options']), set::value($demand->duration))
  199. ), item
  200. (
  201. set::name($lang->demand->BSA),
  202. picker(setID('BSA'), set::name('BSA'), set::items($fields['BSA']['options']), set::value($demand->BSA))
  203. ), item
  204. (
  205. set::trClass(in_array($demand->source, $config->demand->feedbackSource) ? 'feedbackBox' : 'feedbackBox hidden'),
  206. set::name($lang->demand->feedbackedBy),
  207. input(set::name('feedbackedBy'), set::value($demand->feedbackedBy))
  208. ), item
  209. (
  210. set::trClass(in_array($demand->source, $config->demand->feedbackSource) ? 'feedbackBox' : 'feedbackBox hidden'),
  211. set::name($lang->demand->email),
  212. input(set::name('email'), set::value($demand->email))
  213. ), $demand->parent >= 0 ? item
  214. (
  215. set::name($lang->demand->parent),
  216. picker(setID('parent'), set::name('parent'), set::items($parents), set::value($demand->parent))
  217. ) : null, item
  218. (
  219. set::name($lang->demand->status),
  220. span(setClass("status-{$demand->status}"), $this->processStatus('demand', $demand)),
  221. formHidden('status', $demand->status)
  222. ), item
  223. (
  224. set::name($lang->demand->category),
  225. picker(setID('category'), set::name('category'), set::items($fields['category']['options']), set::value($demand->category))
  226. ), item
  227. (
  228. set::name($lang->demand->pri),
  229. priPicker(set::name('pri'), set::items($fields['pri']['options']), set::value($demand->pri))
  230. ), item
  231. (
  232. set::name($lang->demand->keywords),
  233. input(set::name('keywords'), set::value($demand->keywords))
  234. ), item
  235. (
  236. set::name($lang->demand->mailto),
  237. mailto(set::items($users), set::value($demand->mailto))
  238. )),
  239. tableData(set::title($lang->demand->legendLifeTime), item
  240. (
  241. set::name($lang->demand->createdBy),
  242. zget($users, $demand->createdBy)
  243. ), item
  244. (
  245. set::name($lang->demand->assignedTo),
  246. picker
  247. (
  248. setID('assignedTo'),
  249. set::name('assignedTo'),
  250. set::items($assignedToList),
  251. set::value($demand->assignedTo)
  252. )
  253. ), $demand->status == 'reviewing' ? item
  254. (
  255. set::name($lang->demand->reviewers),
  256. picker
  257. (
  258. setID('reviewer'),
  259. set::name('reviewer[]'),
  260. set::items($reviewers),
  261. set::value($demand->reviewer),
  262. set::multiple(true),
  263. on::change('changeReviewer')
  264. )
  265. ) : null, $demand->status == 'closed' ? item
  266. (
  267. set::name($lang->demand->closedBy),
  268. picker(setID('closedBy'), set::name('closedBy'), set::items($users), set::value($demand->closedBy))
  269. ) : null, $demand->status == 'closed' ? item
  270. (
  271. set::name($lang->demand->closedReason),
  272. picker(setID('closedReason'), set::name('closedReason'), set::items($fields['closedReason']['options']), set::value($demand->closedReason), on::change('setdemand'))
  273. ) : null)
  274. )
  275. );
  276. render();