From bbdf44ae02b9161a284dd6abe5b571e8af70d98b Mon Sep 17 00:00:00 2001 From: sunguangming Date: Thu, 7 Nov 2024 01:46:38 +0000 Subject: [PATCH] * [task#131937,doing,0.5h] add js func. --- module/task/js/edit.ui.js | 18 ++++++++++++++++++ module/task/model.php | 15 +++++++++++---- module/task/ui/edit.html.php | 11 ++++++----- 3 files changed, 35 insertions(+), 9 deletions(-) diff --git a/module/task/js/edit.ui.js b/module/task/js/edit.ui.js index 72f2f77377..de65ef9903 100644 --- a/module/task/js/edit.ui.js +++ b/module/task/js/edit.ui.js @@ -400,6 +400,24 @@ window.setStoryModule = function() } } +getParentEstStartedAndDeadline = function() +{ + const parent = $('[name=parent]').val(); + if(!parent) return; + + const link = $.createLink('task', 'ajaxGetTaskEstStartedAndDeadline', 'taskID=' + parent); + $.getJSON(link, function(data) + { + parentEstStarted = data.estStarted; + parentDeadline = data.deadline; + overParentEstStartedLang = data.overParentEstStartedLang; + overParentDeadlineLang = data.overParentDeadlineLang; + + window.checkEstStartedAndDeadline({target: $('[name=estStarted]')}); + window.checkEstStartedAndDeadline({target: $('[name=deadline]')}); + }); +} + function checkEstStartedAndDeadline(event) { const $form = $(event.target).closest('form'); diff --git a/module/task/model.php b/module/task/model.php index eef10c32f2..976460611f 100755 --- a/module/task/model.php +++ b/module/task/model.php @@ -1924,16 +1924,23 @@ class taskModel extends model 过滤自己和后代任务。 */ $children = $this->getAllChildId($taskID); - - return $this->dao->select('id, name')->from(TABLE_TASK) + $taskList = $this->dao->select('id, name, isParent, consumed')->from(TABLE_TASK) ->where('deleted')->eq(0) - ->andWhere('consumed')->eq(0) ->andWhere('status')->notin('cancel,closed') ->andWhere('execution')->eq($executionID) ->andWhere('mode')->eq('') ->beginIF($children)->andWhere('id')->notin($children)->fi() ->beginIF($appendIdList)->orWhere('id')->in($appendIdList)->fi() - ->fetchPairs(); + ->fetchAll(); + + $taskPairs = array(); + foreach($taskList as $task) + { + if(!$task->isParent && $task->consumed > 0) continue; + $taskPairs[$task->id] = $task->name; + } + + return $taskPairs; } /** diff --git a/module/task/ui/edit.html.php b/module/task/ui/edit.html.php index 3377f0eddd..3513f93d7f 100644 --- a/module/task/ui/edit.html.php +++ b/module/task/ui/edit.html.php @@ -31,11 +31,11 @@ jsVar('confirmRecord', $lang->task->confirmRecord); jsVar('estimateNotEmpty', sprintf($lang->error->gt, $lang->task->estimate, '0')); jsVar('leftNotEmpty', sprintf($lang->error->gt, $lang->task->left, '0')); jsVar('requiredFields', $config->task->edit->requiredFields); -jsVar('parentEstStarted', !empty($parentTask) ? $parentTask->estStarted : ''); -jsVar('parentDeadline', !empty($parentTask) ? $parentTask->deadline : ''); +jsVar('+parentEstStarted', !empty($parentTask) ? $parentTask->estStarted : ''); +jsVar('+parentDeadline', !empty($parentTask) ? $parentTask->deadline : ''); jsVar('ignoreLang', $lang->project->ignore); -jsVar('overParentEstStartedLang', !empty($parentTask) ? sprintf($lang->task->overParentEsStarted, $parentTask->estStarted) : ''); -jsVar('overParentDeadlineLang', !empty($parentTask) ? sprintf($lang->task->overParentDeadline, $parentTask->deadline) : ''); +jsVar('+overParentEstStartedLang', !empty($parentTask) ? sprintf($lang->task->overParentEsStarted, $parentTask->estStarted) : ''); +jsVar('+overParentDeadlineLang', !empty($parentTask) ? sprintf($lang->task->overParentDeadline, $parentTask->deadline) : ''); $confirmSyncTip = ''; if(!empty($syncChildren) && !empty($task->children)) $confirmSyncTip = sprintf($lang->task->syncStoryToChildrenTip, 'ID' . implode(', ID', $syncChildren)); @@ -249,7 +249,8 @@ detailBody ( set::name('parent'), set::value($task->parent), - set::items($tasks) + set::items($tasks), + on::change('getParentEstStartedAndDeadline') ) ) : formHidden('parent', $task->parent), empty($modeText) ? item