diff --git a/lib/zin/wg/modulemenu/v1.php b/lib/zin/wg/modulemenu/v1.php index 0054d6871d..0a61892a89 100644 --- a/lib/zin/wg/modulemenu/v1.php +++ b/lib/zin/wg/modulemenu/v1.php @@ -9,9 +9,9 @@ class moduleMenu extends wg protected static $defineProps = array( 'modules: array', 'activeKey: int', + 'settingLink: string', 'closeLink: string', 'activeText: string=""', - 'moduleSetting: bool=true', 'displaySetting: bool=true' ); @@ -60,27 +60,36 @@ class moduleMenu extends wg private function buildBtns() { - $moduleSetting = $this->prop('moduleSetting'); + $settingLink = $this->prop('settingLink'); $displaySetting = $this->prop('displaySetting'); - if(!$moduleSetting && !$displaySetting) return null; + if(!$settingLink && !$displaySetting) return null; global $app; $lang = $app->loadLang('datatable')->datatable; + $currentModule = $app->rawModule; + $currentMethod = $app->rawMethod; + + $datatableId = $app->moduleName . ucfirst($app->methodName); + return div ( setClass('setting-btns'), - $moduleSetting ? a + $settingLink ? a ( setClass('btn'), setStyle('background', '#EEF5FF'), setStyle('border', 'none'), + set::href($settingLink), $lang->moduleSetting ) : null, - $displaySetting ? a - ( - setClass('btn white'), - $lang->displaySetting - ) : null, + $displaySetting ? + a( + setClass('btn white'), + set::href(helper::createLink('datatable', 'ajaxDisplay', "datatableId=$datatableId&moduleName=$app->moduleName&methodName=$app->methodName¤tModule=$currentModule¤tMethod=$currentMethod")), + set('data-toggle', 'modal'), + $lang->displaySetting + ) + : null, ); } diff --git a/module/datatable/control.php b/module/datatable/control.php index b0fbc90f0c..6628f956df 100644 --- a/module/datatable/control.php +++ b/module/datatable/control.php @@ -22,6 +22,27 @@ class datatable extends control parent::__construct(); } + /** + * Set display. + * + * @param string $datatableId + * @param string $moduleName + * @param string $methodName + * @param string $currentModule + * @param string $currentMethod + * @access public + * @return void + */ + public function ajaxDisplay(string $datatableId, string $moduleName, string $methodName, string $currentModule, string $currentMethod) + { + $this->view->datatableId = $datatableId; + $this->view->moduleName = $moduleName; + $this->view->methodName = $methodName; + $this->view->currentModule = $currentModule; + $this->view->currentMethod = $currentMethod; + $this->render(); + } + /** * Save config * @@ -42,7 +63,7 @@ class datatable extends control if($this->post->global) $this->setting->setItem('system.' . $name, $this->post->value); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => 'dao error.')); - return $this->send(array('result' => 'success')); + return $this->send(array('result' => 'success', 'closeModal' => true, 'load' => true)); } } diff --git a/module/datatable/ui/ajaxdisplay.html.php b/module/datatable/ui/ajaxdisplay.html.php new file mode 100644 index 0000000000..b670d52119 --- /dev/null +++ b/module/datatable/ui/ajaxdisplay.html.php @@ -0,0 +1,86 @@ + + * @package zin + * @link http://www.zentao.net + */ + +namespace zin; + +global $lang, $app; +$app->loadLang('datatable'); +$showModule = isset($config->datatable->$datatableId->showModule) ? $config->datatable->$datatableId->showModule : '0'; +$showAllModule = isset($config->execution->task->allModule) ? $config->execution->task->allModule : 0; +$showBranch = isset($config->$currentModule->$currentMethod->showBranch) ? $config->$currentModule->$currentMethod->showBranch : 1; + +set::title($lang->datatable->displaySetting); +form +( + set::url(helper::createLink('datatable', 'ajaxSave')), + set::labelWidth('12em'), + input + ( + set('class', 'hidden'), + set::name('target'), + set::value($datatableId), + ), + input + ( + set('class', 'hidden'), + set::name('name'), + set::value('showModule'), + ), + formGroup + ( + set::label($lang->datatable->showModule), + radiolist + ( + set::name('value'), + set::inline(true), + set::items($lang->datatable->showModuleList), + set::value($showModule), + ), + ), + $moduleName == 'execution' && $methodName == 'task' && $this->config->vision != 'lite' ? formGroup + ( + set::label($lang->datatable->showAllModule), + radiolist + ( + set::name('allModule'), + set::inline(true), + set::items($lang->datatable->showAllModuleList), + set::value($showAllModule), + ), + ) : null, + $isShowBranch ? formGroup + ( + set::label($lang->datatable->showBranch), + radiolist + ( + set::name('showBranch'), + set::inline(true), + set::items($lang->datatable->showBranchList), + set::value($showBranch), + ), + ) : null, + input + ( + set('class', 'hidden'), + set::name('currentModule'), + set::value($currentModule), + ), + input + ( + set('class', 'hidden'), + set::name('currentMethod'), + set::value($currentMethod), + ), + set::actions(array('submit')), +); + +render('modalDialog'); diff --git a/module/execution/ui/task.html.php b/module/execution/ui/task.html.php index 95181cbe45..0fdb9a1e21 100644 --- a/module/execution/ui/task.html.php +++ b/module/execution/ui/task.html.php @@ -93,9 +93,10 @@ toolbar sidebar ( moduleMenu(set(array( - 'modules' => $moduleTree, - 'activeKey' => $moduleID, - 'closeLink' => $this->createLink('execution', 'task') + 'modules' => $moduleTree, + 'activeKey' => $moduleID, + 'settingLink' => $this->createLink('tree', 'browsetask', "rootID=$execution->id&productID=0"), + 'closeLink' => $this->createLink('execution', 'task') ))) );