From e560a94846764e34c81742f40a8ab6a77b7dba11 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Wed, 4 Dec 2024 15:17:32 +0800 Subject: [PATCH] * [task#133225,doing,1h] change picker to taskAssignedTo control for edit a task page. --- lib/zin/wg/taskassignedto/css/v1.css | 2 +- lib/zin/wg/taskassignedto/js/v1.js | 3 +++ lib/zin/wg/taskassignedto/v1.php | 4 ++-- module/task/ui/edit.html.php | 5 +++-- module/task/zen.php | 5 +++++ 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/lib/zin/wg/taskassignedto/css/v1.css b/lib/zin/wg/taskassignedto/css/v1.css index 812d012016..deea6333cd 100644 --- a/lib/zin/wg/taskassignedto/css/v1.css +++ b/lib/zin/wg/taskassignedto/css/v1.css @@ -1 +1 @@ -.search-menu-footer > .toolbar > .manageTeamBtn {--tw-ring-color: var(--skin-ring);} +.search-menu-footer > .toolbar > .manageTeamBtn:hover {color: rgba(var(--color-link-hover-rgb),var(--tw-text-opacity));} diff --git a/lib/zin/wg/taskassignedto/js/v1.js b/lib/zin/wg/taskassignedto/js/v1.js index 31dd7560fd..8e81a6aebc 100644 --- a/lib/zin/wg/taskassignedto/js/v1.js +++ b/lib/zin/wg/taskassignedto/js/v1.js @@ -11,10 +11,13 @@ renderTaskAssignedTo = function(objectID) if(config.debug) console.log('[ZIN] Rendering task assigned to'); const getAssignedToLink = $.createLink('execution', 'ajaxGetMembers', 'objectID=' + objectID); + const taskMode = $('[name=mode]').val(); $.getJSON(getAssignedToLink, function(data) { $('.taskAssignedToBox input.pick-value, .taskAssignedToBox select.pick-value').each(function() { + if(taskMode == 'multi' && $(this).attr('name') == 'assignedTo') return; + let oldAssignedTo = $(this).val(); let $assignedToPicker = $(this).zui('picker'); $assignedToPicker.render({items: data}); diff --git a/lib/zin/wg/taskassignedto/v1.php b/lib/zin/wg/taskassignedto/v1.php index ce8c851770..09eeceb2fc 100644 --- a/lib/zin/wg/taskassignedto/v1.php +++ b/lib/zin/wg/taskassignedto/v1.php @@ -49,14 +49,14 @@ class taskAssignedTo extends wg $this->setProp('menu', array('checkbox' => true)); } - if($manageLink) $pickerToolbar[] = array('type' => 'button', 'className' => 'text-primary manageTeamBtn', 'key' => 'manageTeam', 'text' => $lang->execution->manageTeamMember, 'icon' => 'plus-solid-circle', 'url' => $manageLink, 'data-toggle' => 'modal', 'data-size' => 'lg', 'data-dismiss' => 'pick'); + if($manageLink) $pickerToolbar[] = array('className' => 'text-primary manageTeamBtn', 'key' => 'manageTeam', 'text' => $lang->execution->manageTeamMember, 'icon' => 'plus-solid-circle', 'url' => $manageLink, 'data-toggle' => 'modal', 'data-size' => 'lg', 'data-dismiss' => 'pick'); $this->setProp('toolbar', $pickerToolbar); } return picker ( setClass('taskAssignedToBox'), - set($this->props->pick(array('id', 'name', 'value', 'required', 'items', 'toolbar', 'menu', 'multiple'))) + set($this->props->pick(array('id', 'name', 'value', 'required', 'items', 'toolbar', 'menu', 'multiple', 'disabled'))) ); } } diff --git a/module/task/ui/edit.html.php b/module/task/ui/edit.html.php index c5c67c4022..00bb79bd1c 100644 --- a/module/task/ui/edit.html.php +++ b/module/task/ui/edit.html.php @@ -280,7 +280,7 @@ detailBody div ( setClass('flex grow'), - picker + taskAssignedTo ( setID('assignedTo'), setClass('w-full'), @@ -290,6 +290,7 @@ detailBody !empty($task->team) ? set::required(true) : null, !empty($task->team) && $task->mode == 'linear' && !in_array($task->status, array('done', 'closed')) ? set::disabled(true) : null, $task->status == 'closed' ? set::disabled(true) : null, + $manageLink ? set::manageLink($manageLink) : null ) ), div @@ -391,7 +392,7 @@ detailBody set::name('team'), set::label($lang->task->teamMember), set::width('160px'), - set::control('picker'), + set::control(array('control' => 'taskAssignedTo', 'manageLink' => ($manageLink ? $manageLink : ''))), set::items($members) ), formBatchItem diff --git a/module/task/zen.php b/module/task/zen.php index bdb160a460..41ad6a6bfe 100644 --- a/module/task/zen.php +++ b/module/task/zen.php @@ -326,6 +326,10 @@ class taskZen extends task } } + $execution = $this->execution->fetchByID($task->execution); + if($execution->multiple) $manageLink = common::hasPriv('execution', 'manageMembers') ? $this->createLink('execution', 'manageMembers', "execution={$execution->id}") : ''; + if(!$execution->multiple) $manageLink = common::hasPriv('project', 'manageMembers') ? $this->createLink('project', 'manageMembers', "projectID={$execution->project}") : ''; + $this->view->title = $this->lang->task->edit . 'TASK' . $this->lang->hyphen . $this->view->task->name; $this->view->stories = $this->story->addGradeLabel($stories); $this->view->tasks = $tasks; @@ -336,6 +340,7 @@ class taskZen extends task $this->view->executions = $executions; $this->view->syncChildren = $syncChildren; $this->view->parentTask = !empty($task->parent) ? $this->task->getById($task->parent) : null; + $this->view->manageLink = $manageLink; $this->display(); }