edit.html.php 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. /**
  3. * The edit view file of project 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 Mengyi Liu <liumengyi@easycorp.ltd>
  7. * @package project
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. $fields = useFields('project.edit');
  12. $fields->orders('begin,days,PM,budget', !empty($config->setCode) ? 'parent,hasProduct,name,code,begin' : 'parent,name,hasProduct,begin');
  13. $fields->fullModeOrders('begin,days,PM,budget', !empty($config->setCode) ? 'parent,hasProduct,name,code,begin' : 'parent,name,hasProduct,begin');
  14. jsVar('model', $model);
  15. jsVar('ignore', $lang->project->ignore);
  16. jsVar('budgetOverrun', $lang->project->budgetOverrun);
  17. jsVar('currencySymbol', $lang->project->currencySymbol);
  18. jsVar('parentBudget', $lang->project->parentBudget);
  19. jsVar('budgetUnitLabel', $lang->project->tenThousandYuan);
  20. jsVar('unLinkProductTip', $lang->project->unLinkProductTip);
  21. jsVar('confirmDisableStoryType', $lang->project->confirmDisableStoryType);
  22. jsVar('weekend', $config->execution->weekend);
  23. jsVar('allProducts', $allProducts);
  24. jsVar('branchGroups', $branchGroups);
  25. jsVar('+projectID', 0);
  26. jsVar('currentProject', $project->id);
  27. jsVar('from', $from);
  28. jsVar('programID', $programID);
  29. jsVar('LONG_TIME', LONG_TIME);
  30. jsVar('storyType', $project->storyType);
  31. jsVar('subAclList', $lang->project->subAclList);
  32. jsVar('aclList', $lang->project->aclList);
  33. jsVar('labelList', $config->project->labelClass);
  34. unset($lang->project->endList['999']);
  35. jsVar('endList', $lang->project->endList);
  36. $labelClass = $config->project->labelClass[$model];
  37. $disableModel = $disableModel || data('singleProjectFlow');
  38. $modelMenuItems = array();
  39. foreach($lang->project->modelList as $key => $text)
  40. {
  41. if(empty($key)) continue;
  42. $modelMenuItems[] = array('text' => $text, 'value' => $key, 'data-key' => $key, 'data-value' => $text, 'class' => 'model-drop', 'active' => $key == $model);
  43. }
  44. formGridPanel
  45. (
  46. to::titleSuffix
  47. (
  48. $disableModel ? btn
  49. (
  50. set::id('project-model'),
  51. setClass("{$labelClass} h-5 px-2"),
  52. zget($lang->project->modelList, $model, '')
  53. ) : dropdown
  54. (
  55. btn
  56. (
  57. set::id('project-model'),
  58. setClass("$labelClass h-5 px-2"),
  59. zget($lang->project->modelList, $model, '')
  60. ),
  61. set::placement('bottom'),
  62. set::menu(array('style' => array('color' => 'var(--color-fore)'))),
  63. set::items($modelMenuItems)
  64. )
  65. ),
  66. formHidden('storyType[]', 'story'),
  67. formHidden('model', $model),
  68. on::change('[name=hasProduct]', 'changeType'),
  69. on::change('[name=longTime]')->do('const $endPicker = $("[name=end]").zui("datePicker"); $endPicker.render({disabled: $(target).prop("checked")}); if($(target).prop("checked")){ $endPicker.$.setValue(""); $("[name=days]").attr("disabled", "disabled");} else{ $("[name=days]").removeAttr("disabled");}'),
  70. on::change('[name=future]', 'toggleBudget'),
  71. on::change('[name=begin], [name=end]', 'computeWorkDays'),
  72. on::change('[name=parent], [name=budget]', 'checkBudget'),
  73. on::change('[name=parent]', 'changeAcl'),
  74. on::change('[name^=products]', 'toggleStageBy'),
  75. on::change('[name^=storyType]', 'toggleStoryType'),
  76. set::modeSwitcher(false),
  77. set::defaultMode('full'),
  78. set::title($lang->project->edit),
  79. set::fields($fields)
  80. );
  81. render();