From 47531d69c403ec6e5e588f2d44d0e4b9f3710086 Mon Sep 17 00:00:00 2001 From: songchenxuan Date: Thu, 2 Jan 2025 13:32:22 +0800 Subject: [PATCH] * [task#135777,doing,1h]. --- module/execution/ui/task.html.php | 75 ++++++++++++++++++++++--------- 1 file changed, 55 insertions(+), 20 deletions(-) diff --git a/module/execution/ui/task.html.php b/module/execution/ui/task.html.php index 7162703fbd..e22ea69c30 100644 --- a/module/execution/ui/task.html.php +++ b/module/execution/ui/task.html.php @@ -12,17 +12,33 @@ declare(strict_types=1); namespace zin; +jsVar('blockID', $blockID); /* zin: Define the set::module('task') feature bar on main menu. */ if(empty($features['story'])) unset($lang->execution->featureBar['task']['needconfirm']); $queryMenuLink = createLink('execution', 'task', "executionID={$execution->id}&status=bySearch¶m={queryID}"); +$isFromDoc = $from === 'doc'; + + featureBar ( set::current($browseType), - set::linkParams("executionID={$execution->id}&status={key}¶m={$param}&orderBy={$orderBy}&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}"), + set::linkParams("executionID={$executionID}&status={key}¶m={$param}&orderBy={$orderBy}&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}"), + set::isModal($isFromDoc), set::queryMenuLinkCallback(array(fn($key) => str_replace('{queryID}', (string)$key, $queryMenuLink))), - li(searchToggle(set::module('task'), set::open($browseType == 'bysearch'))) + li(searchToggle + ( + set::simple($isFromDoc), + set::module('task'), + set::open($browseType == 'bysearch'), + $isFromDoc ? set::target('#docSearchForm') : null + )) ); +if($isFromDoc) +{ + div(setID('docSearchForm')); +} + /* zin: Define the toolbar on main menu. */ $canCreate = common::canModify('execution', $execution) && hasPriv('task', 'create'); $canBatchCreate = common::canModify('execution', $execution) && hasPriv('task', 'batchCreate'); @@ -53,6 +69,17 @@ if(common::canModify('execution', $execution)) } $cols = $this->loadModel('datatable')->getSetting('execution'); + +if($isFromDoc) +{ + if(isset($cols['actions'])) unset($cols['actions']); + foreach($cols as $key => $col) + { + $setticols[$key]['sortType'] = false; + if(isset($col['link'])) unset($cols[$key]['link']); + } +} + if($execution->type != 'stage') unset($cols['design']); $canAssignTo = common::hasPriv('task', 'assignTo'); @@ -94,6 +121,7 @@ if($config->edition == 'ipd') $viewType = $this->cookie->taskViewType ? $this->cookie->taskViewType : 'tree'; toolbar ( + setClass(array('hidden' => $isFromDoc)), item(set(array ( 'type' => 'btnGroup', @@ -153,18 +181,21 @@ toolbar /* zin: Define the sidebar in main content. */ $activeKey = $browseType == 'byproduct' ? $productID : $moduleID; -sidebar -( - moduleMenu +if(!$isFromDoc) +{ + sidebar ( - set::modules($moduleTree), - set::activeKey($activeKey), - set::settingLink(createLink('tree', 'browsetask', "rootID=$execution->id&productID=0")), - set::settingApp($execution->multiple ? 'execution' : 'project'), - set::closeLink(createLink('execution', 'task', "executionID={$executionID}")), - set::app($app->tab) - ) -); + moduleMenu + ( + set::modules($moduleTree), + set::activeKey($activeKey), + set::settingLink(createLink('tree', 'browsetask', "rootID=$execution->id&productID=0")), + set::settingApp($execution->multiple ? 'execution' : 'project'), + set::closeLink(createLink('execution', 'task', "executionID={$executionID}")), + set::app($app->tab) + ) + ); +} $firstTask = reset($tasks); $canBatchEdit = common::hasPriv('task', 'batchEdit', !empty($firstTask) ? $firstTask : null); @@ -220,6 +251,7 @@ if($canBatchAction) if($canBatchChangeModule) $footToolbar['items'][] = array('caret' => 'up', 'text' => $lang->task->moduleAB, 'className' => 'btn btn-caret size-sm', 'btnType' => 'secondary', 'items' => $moduleItems, 'type' => 'dropdown', 'data-placement' => 'top-start', 'data-menu' => array('searchBox' => true)); if($canBatchAssignTo) $footToolbar['items'][] = array('caret' => 'up', 'text' => $lang->task->assignedTo, 'className' => 'btn btn-caret size-sm', 'btnType' => 'secondary', 'items' => $assignedToItems,'type' => 'dropdown'); } +if($isFromDoc) $footToolbar = array(array('text' => $lang->doc->insertText, 'data-on' => 'click', 'data-call' => "insertListToDoc")); jsVar('+pageSummary', $lang->execution->pageSummary); jsVar('checkedSummary', $lang->execution->checkedSummary); @@ -234,13 +266,13 @@ jsVar('delayWarning', $lang->task->delayWarning); if($viewType == 'tiled') $cols['name']['nestedToggle'] = false; dtable ( + set::id('tasks'), set::groupDivider(true), set::userMap($users), set::cols($cols), set::data($tableData), - set::checkable($canBatchAction), + set::checkable($canBatchAction || $isFromDoc), set::orderBy($orderBy), - set::sortLink(createLink('execution', 'task', "executionID={$execution->id}&status={$status}¶m={$param}&orderBy={name}_{sortType}&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}")), set::onRenderCell(jsRaw('window.renderCell')), set::modules($modulePairs), set::footToolbar($footToolbar), @@ -250,9 +282,12 @@ dtable 'recTotal' => $pager->recTotal, 'linkCreator' => helper::createLink('execution', 'task', "executionID={$execution->id}&status={$status}¶m={$param}&orderBy=$orderBy&recTotal={$pager->recTotal}&recPerPage={recPerPage}&page={page}") . "#app={$app->tab}" ))), - set::checkInfo(jsRaw('function(checkedIDList){return window.setStatistics(this, checkedIDList);}')), - set::customCols(true), - set::emptyTip($lang->task->noTask), - set::createTip($lang->task->create), - set::createLink($canCreate && common::canModify('execution', $execution) ? $createLink : '') + !$isFromDoc ? null : set::afterRender(jsCallback()->call('toggleCheckRows', $idList)), + !$isFromDoc ? null : set::height(400), + $isFromDoc ? null : set::customCols(true), + $isFromDoc ? null : set::sortLink(createLink('execution', 'task', "executionID={$execution->id}&status={$status}¶m={$param}&orderBy={name}_{sortType}&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}")), + $isFromDoc ? null : set::checkInfo(jsRaw('function(checkedIDList){return window.setStatistics(this, checkedIDList);}')), + $isFromDoc ? null : set::createTip($lang->task->create), + $isFromDoc ? null : set::createLink($canCreate && common::canModify('execution', $execution) ? $createLink : ''), + set::emptyTip($lang->task->noTask) );