batchtotask.html.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. /**
  3. * The UI file of story 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 chen.tao <chentao@easycorp.ltd>
  8. * @package story
  9. * @link https://www.zentao.net
  10. */
  11. namespace zin;
  12. data('activeMenuID', 'story');
  13. jsVar('executionID', $executionID);
  14. jsVar('langPreview', $lang->preview);
  15. jsVar('hasParent', $hasParent);
  16. jsVar('hasERUR', $hasERUR);
  17. jsVar('errorParentSplitTask', $lang->story->errorParentSplitTask);
  18. jsVar('errorERURSplitTask', $lang->story->errorERURSplitTask);
  19. jsVar('copyStoryTitleTip', $lang->task->copyStoryTitle);
  20. $fields = array();
  21. $fields['id'] = array('name' => 'id', 'label' => $lang->idAB, 'control' => 'index', 'width' => '32px');
  22. $fields['module'] = array_merge(array('name' => 'module', 'label' => $lang->task->module, 'width' => '200px', 'ditto' => true, 'defaultDitto' => 'off', 'items' => $modules, 'control' => 'picker'), $config->task->form->batchcreate['module']);
  23. $fields['story'] = array_merge(array('name' => 'story', 'label' => $lang->task->story, 'width' => '250px', 'ditto' => true, 'defaultDitto' => 'off', 'items' => $storyPairs, 'control' => 'picker'), $config->task->form->batchcreate['story']);
  24. $fields['name'] = array_merge(array('name' => 'name', 'label' => $lang->task->name, 'width' => '250px', 'ditto' => false, 'defaultDitto' => 'off', 'filter' => 'trim', 'control' => 'text'), $config->task->form->batchcreate['name']);
  25. $fields['type'] = array_merge(array('name' => 'type', 'label' => $lang->typeAB, 'width' => '140px', 'ditto' => true, 'defaultDitto' => 'off', 'items' => $lang->task->typeList, 'control' => 'picker'), $config->task->form->batchcreate['type']);
  26. $fields['assignedTo'] = array_merge(array('name' => 'assignedTo', 'label' => $lang->task->assignedTo, 'width' => '128px', 'ditto' => false, 'defaultDitto' => 'off', 'items' => $members, 'control' => array('control' => 'taskAssignedTo', 'manageLink' => ($manageLink ? $manageLink : ''))), $config->task->form->batchcreate['assignedTo']);
  27. $fields['estimate'] = array_merge(array('name' => 'estimate', 'label' => $lang->task->estimateAB, 'width' => '120px', 'ditto' => true, 'defaultDitto' => 'off', 'filter' => 'trim', 'control' => 'text'), $config->task->form->batchcreate['estimate']);
  28. $fields['estStarted'] = array_merge(array('name' => 'estStarted', 'label' => $lang->task->estStarted, 'width' => '120px', 'ditto' => true, 'defaultDitto' => 'on', 'filter' => 'trim', 'control' => 'date'), $config->task->form->batchcreate['estStarted']);
  29. $fields['deadline'] = array_merge(array('name' => 'deadline', 'label' => $lang->task->deadline, 'width' => '120px', 'ditto' => true, 'defaultDitto' => 'on', 'filter' => 'trim', 'control' => 'date'), $config->task->form->batchcreate['deadline']);
  30. $fields['pri'] = array_merge(array('name' => 'pri', 'label' => $lang->task->pri, 'width' => '110px', 'ditto' => true, 'defaultDitto' => 'off', 'items' => $lang->task->priList, 'control' => 'priPicker'), $config->task->form->batchcreate['pri']);
  31. $data = array();
  32. foreach($stories as $storyID => $story)
  33. {
  34. if(strpos(',draft,closed,', ",{$story->status},") !== false) continue;
  35. $task = new stdclass();
  36. $task->id = count($data) + 1;
  37. $task->module = 0;
  38. $task->story = $storyID;
  39. $task->name = $story->title;
  40. $task->pri = 3;
  41. $task->estimate = $hourPointValue ? $story->estimate * $hourPointValue : $story->estimate;
  42. $task->type = $taskType;
  43. $task->assignedTo = '';
  44. $task->estStarted = '';
  45. $task->deadline = '';
  46. if(in_array('module', $syncFields)) $task->module = $story->module;
  47. if(in_array('pri', $syncFields)) $task->pri = $story->pri;
  48. if(in_array('assignedTo', $syncFields)) $task->assignedTo = $story->assignedTo;
  49. $data[] = $task;
  50. }
  51. formBatchPanel
  52. (
  53. setID('dataform'),
  54. set::title($lang->story->batchToTask),
  55. set::items($fields),
  56. set::maxRows(count($data)),
  57. set::data($data),
  58. set::onRenderRow(jsRaw('renderRowData')),
  59. on::change('[data-name="module"]', 'setStories'),
  60. on::change('[data-name="story"]', 'setStoryRelated'),
  61. on::click('.copy-title-btn', 'copyStoryTitle'),
  62. formHidden('syncFields', implode(',', $syncFields))
  63. );
  64. render();