diff --git a/module/task/js/create.ui.js b/module/task/js/create.ui.js index cf60480933..61977d96aa 100644 --- a/module/task/js/create.ui.js +++ b/module/task/js/create.ui.js @@ -32,32 +32,28 @@ function toggleTeam() function typeChange(e) { const result = $(e.target).val(); + /* Change assigned person to multiple selection, and hide multiple team box. */ + const $assignedToPicker = $('[name^=assignedTo]').zui('picker'); if(result == 'affair') { - $('#assignedTo, #assignedTo_chosen').removeClass('hidden'); - $('#assignedTo').next('.picker').removeClass('hidden'); + $('[name=multiple]').prop("checked", false); + $assignedToPicker.render({multiple: true, checkbox: true, toolbar: true}); - $('#assignedTo').attr('multiple', 'multiple'); - $('.affair').hide(); - $('.assignedToList').addClass('hidden'); - $('.add-team').addClass('hidden'); - $("[name='multiple']").prop("checked", false); - $('#selectAllUser').removeClass('hidden'); } /* If assigned selection is multiple, remove multiple and hide the selection of select all members. */ - else if($('#assignedTo').attr('multiple') == 'multiple') + else if($assignedToPicker.options.multiple) { - $('#assignedTo').removeAttr('multiple'); - $('.affair').show(); - $('#selectAllUser').addClass('hidden'); + $assignedToPicker.render({multiple: false}); + $assignedToPicker.$.setValue(''); } + $('[name=multiple]').closest('.checkbox-primary').toggleClass('hidden', result == 'affair'); + /* If the execution has story list, toggle between hiding and displaying the selection of select test story box. */ if(lifetime != 'ops' && attribute != 'request' && attribute != 'review' && vision != 'lite') { - $('#selectTestStoryBox').toggleClass('hidden', result != 'test'); - toggleSelectTestStory(); + $('[name=selectTestStory]').closest('.checkbox-primary').toggleClass('hidden', result != 'test'); } } diff --git a/module/task/ui/common.field.php b/module/task/ui/common.field.php index 23a089c7e6..6e578b0ce8 100644 --- a/module/task/ui/common.field.php +++ b/module/task/ui/common.field.php @@ -27,8 +27,7 @@ $fields->field('name') ->control('colorInput', array('colorValue' => data('task.color'))) ->value(data('task.name')); -$fields->field('assignTo') - ->label($lang->task->assignedTo) +$fields->field('assignedTo') ->checkbox(array('text' => $lang->task->multiple, 'name' => 'multiple')) ->control('picker') ->items(data('members')) diff --git a/module/task/ui/create.html.php b/module/task/ui/create.html.php index 541c55de3a..6e34a2c8af 100644 --- a/module/task/ui/create.html.php +++ b/module/task/ui/create.html.php @@ -13,6 +13,11 @@ declare(strict_types=1); namespace zin; jsVar('window.executionID', $execution->id); +jsVar('vision', $config->vision); +jsVar('window.lifetime', $execution->lifetime); +jsVar('window.attribute', $execution->attribute); +jsVar('window.lifetimeList', $lifetimeList); +jsVar('window.attributeList', $attributeList); $fields = useFields('task.create'); if($execution->type == 'kanban') $fields->merge('task.kanban'); @@ -23,6 +28,7 @@ formGridPanel set::fields($fields), on::change('[name=module]', 'loadExecutionStories'), on::change('[name=story]', 'setStoryRelated'), + on::change('[name=type]', 'typeChange'), on::click('[name=isShowAllModule]', 'showAllModule'), on::click('[name=copyButton]', 'copyStoryTitle'), on::keyup('[name=name]', 'saveTaskName'), diff --git a/module/task/zen.php b/module/task/zen.php index f14bb70940..ba88215b94 100644 --- a/module/task/zen.php +++ b/module/task/zen.php @@ -547,9 +547,12 @@ class taskZen extends task */ protected function buildTaskForCreate(int $executionID): object { + $formConfig = $this->config->task->form->create; + if($this->post->type == 'affair') $formConfig['assignedTo']['type'] = 'array'; + $execution = $this->dao->findById($executionID)->from(TABLE_EXECUTION)->fetch(); $team = $this->post->team ? array_filter($this->post->team) : array(); - $task = form::data()->setDefault('execution', $executionID) + $task = form::data($formConfig)->setDefault('execution', $executionID) ->setDefault('project', $execution->project) ->setDefault('left', 0) ->setIF($this->post->estimate, 'left', $this->post->estimate)