operate.html.php 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. /**
  3. * The operate view file of flow 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 Gang Liu <liugang@easycorp.ltd>
  7. * @package flow
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. include 'header.html.php';
  12. if(in_array($flow->module, array('story', 'epic', 'requirement'))) data('activeMenuID', $data->type); // 工作流扩展需求的动作高亮正确的菜单
  13. $fieldList = defineFieldList("{$flow->module}.operate");
  14. if(!empty($config->openedApproval) && $flow->approval == 'enabled' && $action->action == 'approvalsubmit')
  15. {
  16. $loadReviewers = function()
  17. {
  18. $cols = array();
  19. $cols['node'] = array('name' => 'approval_node', 'type' => 'text', 'title' => $this->lang->approval->node, 'width' => '200', 'fixed' => 'left');
  20. $cols['reviewer'] = array('name' => 'approval_reviewer', 'type' => 'control', 'title' => $this->lang->approval->reviewer, 'control' => array('type' => 'picker', 'props' => "RAWJS<window.getReviewerCellProps>RAWJS"));
  21. $cols['ccer'] = array('name' => 'approval_ccer', 'type' => 'control', 'title' => $this->lang->approval->ccer, 'control' => array('type' => 'picker', 'props' => "RAWJS<window.getCcerCellProps>RAWJS"));
  22. return dtable
  23. (
  24. set::bordered(true),
  25. set::rowHeight(45),
  26. set::cols(array_values($cols)),
  27. set::data(data('approvalReviewDatas')),
  28. set::onRenderCell(jsRaw('window.renderReviewerItem')),
  29. set::plugins(array('form'))
  30. );
  31. };
  32. $fieldList->field('reviewerBox')->className('reviewerBox')->width('full')->label($this->lang->approval->reviewer)->control($loadReviewers)->readonly(false)->layoutRules('');
  33. }
  34. if(!empty($config->openedApproval) && $flow->approval == 'enabled' && $action->action == 'approvalreview') $data->reviewOpinion = '';
  35. $fieldList = $this->flow->buildFormFields($fieldList, $fields, $childFields, $data, $childDatas, $relations, $action->action);
  36. formGridPanel
  37. (
  38. on::change('.prevField', 'loadPrevData(e.target, e.target.value)'),
  39. on::init()->call('loadAllPrevData'),
  40. set::actionsClass('review-actions'),
  41. set::title($title),
  42. set::ajax(array('submitDisabledValue' => false)),
  43. set::url($actionURL),
  44. set::defaultMode('full'),
  45. set::modeSwitcher(false),
  46. set::fields($fieldList)
  47. );
  48. html($formulaScript);
  49. html($linkageScript);
  50. if(!empty($config->openedApproval) && $flow->approval == 'enabled' && $action->action == 'approvalreview')
  51. {
  52. if(isset($currentNode->priv))
  53. {
  54. $actionItems = array();
  55. if(in_array('revert', $currentNode->priv)) $actionItems[] = btn(set(array('text' => $lang->approval->revert, 'url' => createLink('approval', 'revert', "objectType={$flow->module}&objectID=$dataID"), 'innerClass' => 'revert-btn', 'data-toggle' => "modal", 'data-hide-others' => "true")));
  56. if(in_array('forward', $currentNode->priv)) $actionItems[] = btn(set(array('text' => $lang->approval->forward, 'url' => createLink('approval', 'forward', "objectType={$flow->module}&objectID=$dataID"), 'innerClass' => 'forward-btn', 'data-toggle' => "modal", 'data-hide-others' => "true")));
  57. if(in_array('addnode', $currentNode->priv)) $actionItems[] = btn(set(array('text' => $lang->approval->addNode, 'url' => createLink('approval', 'addNode', "objectType={$flow->module}&objectID=$dataID"), 'innerClass' => 'forward-btn', 'data-toggle' => 'modal', 'data-hide-others' => 'true')));
  58. if($actionItems) query('form .review-actions')->append($actionItems);
  59. }
  60. }