From e19cc9057a5aa2f275ed10f61612cf624d7dd089 Mon Sep 17 00:00:00 2001 From: songchenxuan Date: Wed, 23 Oct 2024 09:39:57 +0800 Subject: [PATCH] *[misc] add new page. --- module/doc/js/selectlibtype.ui.js | 30 ++++- module/doc/ui/selectapi.html.php | 121 +++++++++++++++++++++ module/doc/ui/selectlibtype.html.php | 112 +------------------ module/doc/ui/selectmineandcustom.html.php | 63 +++++++++++ module/doc/ui/selectproduct.html.php | 75 +++++++++++++ 5 files changed, 289 insertions(+), 112 deletions(-) create mode 100644 module/doc/ui/selectapi.html.php create mode 100644 module/doc/ui/selectmineandcustom.html.php create mode 100644 module/doc/ui/selectproduct.html.php diff --git a/module/doc/js/selectlibtype.ui.js b/module/doc/js/selectlibtype.ui.js index 4fc0ef50dd..52c0ed2678 100644 --- a/module/doc/js/selectlibtype.ui.js +++ b/module/doc/js/selectlibtype.ui.js @@ -1,7 +1,25 @@ -$(function() +window.initData = function() { - changeSpace(); -}); + const spaceType = $('.modal-body [name=rootSpace]:checked').val(); + if(spaceType == 'custom' || spaceType == 'mine') loadObjectModulesForSelect(spaceType); + if(spaceType == 'project') loadExecutions(); + if(spaceType == 'api') changeApiType(); +} + +window.getSpaceType = function() +{ + return $('.modal-body [name=rootSpace]:checked').val(); +} + +window.reloadmineandcustom = function() +{ + const objectType = getSpaceType(); + const objectID = $(`.modal-body input[name=${objectType}]`).val(); + const libID = $('.modal-body input[name=lib]').val(); + const params = window.btoa('objectID=' + objectID + '&libID=' + libID); + + loadModal($.createLink('doc', 'selectLibType', `objectType=${objectType}¶ms=${params}`)); +} /** * Change space. @@ -11,7 +29,10 @@ $(function() */ window.changeSpace = function() { - const space = $('.modal-body [name=rootSpace]:checked').val(); + const objectType = getSpaceType(); + if(objectType) loadModal($.createLink('doc', 'selectLibType', `objectType=${objectType}`)); + + /*const space = $('.modal-body [name=rootSpace]:checked').val(); $('.apiTypeTR').toggleClass('hidden', space != 'api'); $('.projectTR').toggleClass('hidden', space != 'project'); $('.productTR').toggleClass('hidden', space != 'product'); @@ -34,6 +55,7 @@ window.changeSpace = function() $('[name=type]:not(.hidden)').first().prop('checked', true); changeDocType(); } + */ } /** diff --git a/module/doc/ui/selectapi.html.php b/module/doc/ui/selectapi.html.php new file mode 100644 index 0000000000..b873ed3338 --- /dev/null +++ b/module/doc/ui/selectapi.html.php @@ -0,0 +1,121 @@ + + * @package doc + * @link https://www.zentao.net + */ +namespace zin; + +form +( + setID('selectLibTypeForm'), + set::submitBtnText($lang->doc->nextStep), + on::change('[name=rootSpace]', "changeSpace"), + on::change('[name=type]', "changeDocType"), + on::change('[name=apiType]', "changeApiType"), + on::change('[name=project]', "loadExecutions"), + on::change('[name=execution]', "loadObjectModulesForSelect('execution')"), + on::change('[name=product]', "loadObjectModulesForSelect('product')"), + on::change('[name=custom]', "loadObjectModulesForSelect('custom')"), + on::change('[name=lib]', "loadLibModulesForSelect"), + formGroup + ( + set::label($lang->doc->selectSpace), + radioList(set::name('rootSpace'), set::items($spaceList), set::value(key($spaceList)), set::inline(true)) + ), + formRow + ( + setID('docType'), + formGroup + ( + set::label($lang->doc->type), + radioList(set::name('type'), set::items($typeList), set::value('doc'), set::inline(true)) + ) + ), + formRow + ( + setClass('apiTypeTR hidden'), + formGroup + ( + set::width('2/5'), + set::label($lang->doc->apiType), + set::control(array('control' => 'picker', 'name' => 'apiType', 'items' => $lang->doc->apiTypeList, 'value' => '', 'required' => true)) + ) + ), + formRow + ( + setClass('projectTR hidden'), + formGroup + ( + set::label($lang->doc->project), + set::width('2/5'), + set::control(array('control' => 'picker', 'name' => 'project', 'items' => $projects, 'value' => key($projects), 'required' => true)) + ), + formGroup + ( + setID('executionBox'), + set::width('2/5'), + set::label($lang->doc->execution), + set::labelClass('executionTH'), + set::control(array('control' => 'picker', 'name' => 'execution', 'items' => array(), 'value' => '')) + ), + formGroup + ( + setClass('executionHelp'), + icon + ( + 'help', + set('data-toggle', 'tooltip'), + set('data-title', $lang->doc->placeholder->execution), + set('data-placement', 'right'), + set('data-type', 'white'), + set('data-class-name', 'text-gray border border-light'), + setClass('ml-2 mt-2 text-gray') + ) + ) + ), + formRow + ( + setClass('productTR hidden'), + formGroup + ( + set::width('4/5'), + set::label($lang->doc->product), + set::required(true), + set::control(array('control' => 'picker', 'name' => 'product', 'items' => $products, 'value' => key($products), 'required' => true)) + ) + ), + formRow + ( + setClass('customTR hidden'), + formGroup + ( + set::width('4/5'), + set::label($lang->doc->space), + set::required(true), + set::control(array('control' => 'picker', 'name' => 'custom', 'items' => $spaces, 'value' => key($spaces), 'required' => true)) + ) + ), + formGroup + ( + set::width('4/5'), + set::label($lang->doc->lib), + set::required(true), + set::control(array('control' => 'picker', 'name' => 'lib', 'items' => array(), 'value' => '', 'required' => true)) + ), + formGroup + ( + setClass('moduleBox'), + set::width('4/5'), + set::label($lang->doc->module), + set::required(true), + set::control(array('control' => 'picker', 'name' => 'module', 'items' => array(), 'value' => '', 'required' => true)) + ) +); + +/* ====== Render page ====== */ +render(); diff --git a/module/doc/ui/selectlibtype.html.php b/module/doc/ui/selectlibtype.html.php index 95a0a0cac4..30a82e6f5e 100644 --- a/module/doc/ui/selectlibtype.html.php +++ b/module/doc/ui/selectlibtype.html.php @@ -1,10 +1,10 @@ + * @author Chenxuan Song * @package doc * @link https://www.zentao.net */ @@ -19,112 +19,8 @@ to::header ), ); -form -( - setID('selectLibTypeForm'), - set::submitBtnText($lang->doc->nextStep), - on::change('[name=rootSpace]', "changeSpace"), - on::change('[name=type]', "changeDocType"), - on::change('[name=apiType]', "changeApiType"), - on::change('[name=project]', "loadExecutions"), - on::change('[name=execution]', "loadObjectModulesForSelect('execution')"), - on::change('[name=product]', "loadObjectModulesForSelect('product')"), - on::change('[name=custom]', "loadObjectModulesForSelect('custom')"), - on::change('[name=lib]', "loadLibModulesForSelect"), - formGroup - ( - set::label($lang->doc->selectSpace), - radioList(set::name('rootSpace'), set::items($spaceList), set::value(key($spaceList)), set::inline(true)) - ), - formRow - ( - setID('docType'), - formGroup - ( - set::label($lang->doc->type), - radioList(set::name('type'), set::items($typeList), set::value('doc'), set::inline(true)) - ) - ), - formRow - ( - setClass('apiTypeTR hidden'), - formGroup - ( - set::width('2/5'), - set::label($lang->doc->apiType), - set::control(array('control' => 'picker', 'name' => 'apiType', 'items' => $lang->doc->apiTypeList, 'value' => '', 'required' => true)) - ) - ), - formRow - ( - setClass('projectTR hidden'), - formGroup - ( - set::label($lang->doc->project), - set::width('2/5'), - set::control(array('control' => 'picker', 'name' => 'project', 'items' => $projects, 'value' => key($projects), 'required' => true)) - ), - formGroup - ( - setID('executionBox'), - set::width('2/5'), - set::label($lang->doc->execution), - set::labelClass('executionTH'), - set::control(array('control' => 'picker', 'name' => 'execution', 'items' => array(), 'value' => '')) - ), - formGroup - ( - setClass('executionHelp'), - icon - ( - 'help', - set('data-toggle', 'tooltip'), - set('data-title', $lang->doc->placeholder->execution), - set('data-placement', 'right'), - set('data-type', 'white'), - set('data-class-name', 'text-gray border border-light'), - setClass('ml-2 mt-2 text-gray') - ) - ) - ), - formRow - ( - setClass('productTR hidden'), - formGroup - ( - set::width('4/5'), - set::label($lang->doc->product), - set::required(true), - set::control(array('control' => 'picker', 'name' => 'product', 'items' => $products, 'value' => key($products), 'required' => true)) - ) - ), - formRow - ( - setClass('customTR hidden'), - formGroup - ( - set::width('4/5'), - set::label($lang->doc->space), - set::required(true), - set::control(array('control' => 'picker', 'name' => 'custom', 'items' => $spaces, 'value' => key($spaces), 'required' => true)) - ) - ), - formGroup - ( - set::width('4/5'), - set::label($lang->doc->lib), - set::required(true), - set::control(array('control' => 'picker', 'name' => 'lib', 'items' => array(), 'value' => '', 'required' => true)) - ), - formGroup - ( - setClass('moduleBox'), - set::width('4/5'), - set::label($lang->doc->module), - set::required(true), - set::control(array('control' => 'picker', 'name' => 'module', 'items' => array(), 'value' => '', 'required' => true)) - ) -); +if(in_array($objectType, array('mine', 'custom'))) include './selectmineandcustom.html.php'; +if($objectType == 'product')) include './selectproduct.html.php'; /* ====== Render page ====== */ render(); diff --git a/module/doc/ui/selectmineandcustom.html.php b/module/doc/ui/selectmineandcustom.html.php new file mode 100644 index 0000000000..ee1befb7e8 --- /dev/null +++ b/module/doc/ui/selectmineandcustom.html.php @@ -0,0 +1,63 @@ + + * @package doc + * @link https://www.zentao.net + */ +namespace zin; + +// $objectType = mine|custom +// $params may have two key: objectID|libID + +$spaces = $this->doc->getSubSpacesByType($objectType); +$objectID = isset($params['objectID']) ? $params['objectID'] : key($spaces); + +$libs = $this->doc->getLibs($objectType, '', '', (int)$objectID); +$libID = isset($params['libID']) && isset($libs[$params['libID']]) ? $params['libID'] : key($libs); + +$modules = $this->loadModel('tree')->getOptionMenu((int)$libID, 'doc', 0); +$moduleID = key($modules); + +form +( + setID('selectLibTypeForm'), + set::submitBtnText($lang->doc->nextStep), + on::change('[name=rootSpace]', "changeSpace"), + on::change('[name=mine]', "reloadmineandcustom"), + on::change('[name=custom]', "reloadmineandcustom"), + on::change('[name=lib]', "reloadmineandcustom"), + formGroup + ( + set::label($lang->doc->selectSpace), + radioList(set::name('rootSpace'), set::items($spaceList), set::value($objectType), set::inline(true)) + ), + formRow + ( + formGroup + ( + set::width('4/5'), + set::label($lang->doc->space), + set::required(true), + set::control(array('control' => 'picker', 'name' => $objectType, 'items' => $spaces, 'value' => $objectID, 'required' => true)) + ) + ), + formGroup + ( + set::width('4/5'), + set::label($lang->doc->lib), + set::required(true), + set::control(array('control' => 'picker', 'name' => 'lib', 'items' => $libs, 'value' => $libID, 'required' => true)) + ), + formGroup + ( + setClass('moduleBox'), + set::width('4/5'), + set::label($lang->doc->module), + set::required(true), + set::control(array('control' => 'picker', 'name' => 'module', 'items' => $modules, 'value' => $moduleID, 'required' => true)) + ) +); diff --git a/module/doc/ui/selectproduct.html.php b/module/doc/ui/selectproduct.html.php new file mode 100644 index 0000000000..16b9d6a0f2 --- /dev/null +++ b/module/doc/ui/selectproduct.html.php @@ -0,0 +1,75 @@ + + * @package doc + * @link https://www.zentao.net + */ +namespace zin; + +// In this page, $objectType = product +// $params may have three key: objectID|docType|libID + +$products = $this->loadModel('product')->getPairs(); +$objectID = isset($params['objectID']) ? $params['objectID'] : key($products); + +$libs = $this->doc->getLibs($objectType, '', '', (int)$objectID); +$libID = isset($params['libID']) && isset($libs[$params['libID']]) ? $params['libID'] : key($libs); + +$modules = $this->loadModel('tree')->getOptionMenu((int)$libID, 'doc', 0); +$moduleID = key($modules); + +form +( + setID('selectLibTypeForm'), + set::submitBtnText($lang->doc->nextStep), + on::change('[name=rootSpace]', "changeSpace"), + on::change('[name=type]', "changeDocType"), + on::change('[name=product]', "loadObjectModulesForSelect('product')"), + on::change('[name=lib]', "loadLibModulesForSelect"), + formGroup + ( + set::label($lang->doc->selectSpace), + radioList(set::name('rootSpace'), set::items($spaceList), set::value(key($spaceList)), set::inline(true)) + ), + formRow + ( + setID('docType'), + formGroup + ( + set::label($lang->doc->type), + radioList(set::name('type'), set::items($typeList), set::value('doc'), set::inline(true)) + ) + ), + formRow + ( + formGroup + ( + set::width('4/5'), + set::label($lang->doc->product), + set::required(true), + set::control(array('control' => 'picker', 'name' => 'product', 'items' => $products, 'value' => $objectID, 'required' => true)) + ) + ), + formGroup + ( + set::width('4/5'), + set::label($lang->doc->lib), + set::required(true), + set::control(array('control' => 'picker', 'name' => 'lib', 'items' => $libs, 'value' => $libID, 'required' => true)) + ), + formGroup + ( + setClass('moduleBox'), + set::width('4/5'), + set::label($lang->doc->module), + set::required(true), + set::control(array('control' => 'picker', 'name' => 'module', 'items' => $modules, 'value' => $moduleID, 'required' => true)) + ) +); + +/* ====== Render page ====== */ +render();