selectproject.html.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. /**
  3. * The selectlibtype view file of doc 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 Chenxuan Song<songchenxuan@easycorp.ltd>
  7. * @package doc
  8. * @link https://www.zentao.net
  9. */
  10. namespace zin;
  11. // In this page, $objectType = project
  12. // $params may have four key: objectID|executionID|docType|libID
  13. $projects = $this->loadModel('project')->getPairsByProgram(0, 'all', false, 'order_asc');
  14. $objectID = isset($params['objectID']) ? (int)$params['objectID'] : key($projects);
  15. $docType = isset($params['docType']) ? $params['docType'] : 'doc';
  16. $executions = $docType == 'doc' ? $this->loadModel('execution')->getPairs($objectID, 'all', 'multiple,leaf,noprefix') : array();
  17. $executionID = (isset($params['executionID']) && isset($executions[$params['executionID']])) ? $params['executionID'] : '';
  18. $useType = $executionID ? 'execution' : 'project';
  19. $useID = $executionID ? $executionID : $objectID;
  20. if($docType == 'doc')
  21. {
  22. $libPairs = $this->doc->getLibs($useType, '', '', (int)$useID);
  23. }
  24. else
  25. {
  26. $libs = $this->doc->getApiLibs(0, $useType, (int)$useID);
  27. $libPairs = array();
  28. foreach($libs as $libID => $lib) $libPairs[$libID] = $lib->name;
  29. }
  30. $libID = isset($params['libID']) && isset($libPairs[$params['libID']]) ? $params['libID'] : key($libPairs);
  31. $modules = $this->loadModel('tree')->getOptionMenu((int)$libID, 'doc', 0);
  32. $moduleID = key($modules);
  33. form
  34. (
  35. setID('selectLibTypeForm'),
  36. set::submitBtnText($lang->doc->nextStep),
  37. on::change('[name=rootSpace]', "changeSpace"),
  38. on::change('[name=type]', "reloadProject"),
  39. on::change('[name=project]', "reloadProject"),
  40. on::change('[name=execution]', "reloadProject"),
  41. on::change('[name=lib]', "reloadProject"),
  42. formGroup
  43. (
  44. set::label($lang->doc->selectSpace),
  45. radioList(set::name('rootSpace'), set::items($spaceList), set::value($objectType), set::inline(true))
  46. ),
  47. formRow
  48. (
  49. setID('docType'),
  50. formGroup
  51. (
  52. set::label($lang->doc->type),
  53. radioList(set::name('type'), set::items($typeList), set::value($docType), set::inline(true))
  54. )
  55. ),
  56. formRow
  57. (
  58. formGroup
  59. (
  60. set::label($lang->doc->project),
  61. set::width($docType == 'doc' ? '2/5' : '4/5'),
  62. set::name('project'),
  63. set::items(createLink('project', 'ajaxGetDropMenu', "objectID=$objectID&module=&method=&extra=selectmode&useLink=0")),
  64. set::value($objectID),
  65. set::required(true)
  66. ),
  67. $docType == 'doc' ? formGroup
  68. (
  69. set::width('2/5'),
  70. set::label($lang->doc->execution),
  71. set::labelClass('executionTH'),
  72. set::control(array('control' => 'picker', 'name' => 'execution', 'items' => $executions, 'value' => $executionID))
  73. ) : null,
  74. $docType == 'doc' ? formGroup
  75. (
  76. setClass('executionHelp'),
  77. icon
  78. (
  79. 'help',
  80. set('data-toggle', 'tooltip'),
  81. set('data-title', $lang->doc->placeholder->execution),
  82. set('data-placement', 'right'),
  83. set('data-type', 'white'),
  84. set('data-class-name', 'text-gray border border-light'),
  85. setClass('ml-2 mt-2 text-gray')
  86. )
  87. ) : null
  88. ),
  89. formGroup
  90. (
  91. set::width('4/5'),
  92. set::label($lang->doc->lib),
  93. set::required(true),
  94. set::control(array('control' => 'picker', 'name' => 'lib', 'items' => $libPairs, 'value' => $libID, 'required' => true))
  95. ),
  96. formGroup
  97. (
  98. setClass('moduleBox'),
  99. set::width('4/5'),
  100. set::label($lang->doc->module),
  101. set::required(true),
  102. set::control(array('control' => 'picker', 'name' => 'module', 'items' => $modules, 'value' => $moduleID, 'required' => true))
  103. )
  104. );