diff --git a/module/task/config.php b/module/task/config.php index 7c962d4a83..0512792fdb 100644 --- a/module/task/config.php +++ b/module/task/config.php @@ -88,9 +88,9 @@ $config->task->modeOptions[] = array('text' => $lang->task->modeList['linear'], $config->task->modeOptions[] = array('text' => $lang->task->modeList['multi'], 'value' => 'multi'); $config->task->afterOptions = array(); -$config->task->afterOptions[] = array('text' => $lang->task->afterChoices['continueAdding'], 'value' => 'continueAdding'); $config->task->afterOptions[] = array('text' => $lang->task->afterChoices['toTaskList'], 'value' => 'toTaskList', 'checked' => true); $config->task->afterOptions[] = array('text' => $lang->task->afterChoices['toStoryList'], 'value' => 'toStoryList'); +$config->task->afterOptions[] = array('text' => $lang->task->afterChoices['continueAdding'], 'value' => 'continueAdding'); $config->task->actionList['confirmStoryChange']['icon'] = 'search'; $config->task->actionList['confirmStoryChange']['hint'] = $lang->task->confirmStoryChange; diff --git a/module/task/control.php b/module/task/control.php index 9ff507f567..5e1db4f79d 100755 --- a/module/task/control.php +++ b/module/task/control.php @@ -109,7 +109,7 @@ class task extends control } /* Shows the variables needed to create the task page. */ - $this->taskZen->assignCreateVars($execution, $storyID, $moduleID, $taskID, $todoID, $bugID, $output); + $this->taskZen->assignCreateVars($execution, $storyID, $moduleID, $taskID, $todoID, $bugID, $output, $cardPosition); } /** diff --git a/module/task/ui/common.field.php b/module/task/ui/common.field.php index 6e578b0ce8..0f3e813729 100644 --- a/module/task/ui/common.field.php +++ b/module/task/ui/common.field.php @@ -11,13 +11,11 @@ $fields->field('execution') ->value(data('execution.id')); $fields->field('type') - ->checkbox(array('text' => $lang->task->selectTestStory, 'name' => 'selectTestStory')) ->control('picker') ->items($lang->task->typeList) ->value(data('task.type')); $fields->field('module') - ->foldable() ->checkbox(array('text' => $lang->task->allModule, 'name' => 'isShowAllModule')) ->control(array('type' => 'picker', 'required' => true)) ->items(data('modulePairs')) @@ -61,13 +59,11 @@ $fields->field('file') ->control('upload'); $fields->field('mailto') - ->foldable() ->control('picker') ->multiple(true) ->items(data('users')); $fields->field('keywords') - ->foldable() ->control('input'); $fields = defineFieldList('task.kanban'); diff --git a/module/task/ui/create.field.php b/module/task/ui/create.field.php index e4acf10a1f..a3bf4945cf 100644 --- a/module/task/ui/create.field.php +++ b/module/task/ui/create.field.php @@ -4,11 +4,24 @@ global $lang,$config; $fields = defineFieldList('task.create', 'task'); +/* Set foldable attribute. */ +$fields->field('module')->foldable(); +$fields->field('file')->foldable(); +$fields->field('mailto')->foldable(); +$fields->field('keywords')->foldable(); + +/* Set name field width. */ $nameWidth = 'w-1/2'; -if(empty(data('features.story'))) $nameWidth .= ' full:w-full'; +if(empty(data('features.story')) && data('execution.type') != 'kanban') $nameWidth .= ' full:w-full'; if(data('execution.type') == 'kanban') $nameWidth .= ' lite:w-full'; $fields->field('name')->className($nameWidth); +if(!empty(data('features.story')) && data('execution.type') == 'kanban') +{ + $fields->field('module')->wrapBefore(); +} + +/* Set story field control. */ $buildStoryBox = function($props) { if(!empty(data('execution.hasProduct'))) @@ -80,6 +93,7 @@ $fields->field('storyBox') ->foldable(data('features.story')) ->control($buildStoryBox); +/* Remove story relate jump link. */ if(!isAjaxRequest('modal')) { $fields->field('after') @@ -90,6 +104,9 @@ if(!isAjaxRequest('modal')) ->items(empty(data('features.story')) ? array('toTaskList' => $lang->task->afterChoices['toTaskList']) : $config->task->afterOptions); } +if(!empty(data('features.story'))) $fields->field('type')->checkbox(array('text' => $lang->task->selectTestStory, 'name' => 'selectTestStory')); + +/* Set hidden control. */ $fields->field('storyEstimate') ->hidden() ->control('input'); diff --git a/module/task/ui/create.html.php b/module/task/ui/create.html.php index 6e34a2c8af..4f2ea684cb 100644 --- a/module/task/ui/create.html.php +++ b/module/task/ui/create.html.php @@ -20,12 +20,29 @@ jsVar('window.lifetimeList', $lifetimeList); jsVar('window.attributeList', $attributeList); $fields = useFields('task.create'); -if($execution->type == 'kanban') $fields->merge('task.kanban'); + +$fields->orders('desc,module,storyBox'); +$fields->fullModeOrders('type,module,storyBox', 'desc,file,mailto,keywords'); +if($execution->type == 'kanban') +{ + $fields->merge('task.kanban'); + $fields->orders('desc,module,storyBox', 'type,assignedTo,region,lane'); + $fields->fullModeOrders('name,assignedTo', 'type,module,storyBox', 'desc,file,mailto,keywords'); + if(empty($features['story'])) $fields->fullModeOrders('type,module,storyBox', 'name,assignedTo', 'desc,file,mailto,keywords'); +} + +if(empty($features['story']) && $execution->type != 'kanban') +{ + $fields->fullModeOrders('type,module,storyBox,assignedTo', 'desc,file,mailto,keywords'); +} + +$fields->autoLoad('execution', 'execution,type,name,assignedTo,region,lane,module,storyBox,datePlan,pri,estimate,desc,file,mailto,keywords,after'); formGridPanel ( set::title($lang->task->create), set::fields($fields), + set::loadUrl($loadUrl), on::change('[name=module]', 'loadExecutionStories'), on::change('[name=story]', 'setStoryRelated'), on::change('[name=type]', 'typeChange'), diff --git a/module/task/zen.php b/module/task/zen.php index ba88215b94..ad55be75a4 100644 --- a/module/task/zen.php +++ b/module/task/zen.php @@ -32,10 +32,11 @@ class taskZen extends task * @param int $todoID * @param int $bugID * @param array $output + * @param string $cardPosition * @access protected * @return void */ - protected function assignCreateVars(object $execution, int $storyID, int $moduleID, int $taskID, int $todoID, int $bugID, array $output): void + protected function assignCreateVars(object $execution, int $storyID, int $moduleID, int $taskID, int $todoID, int $bugID, array $output, string $cardPosition) { /* Get information about the task. */ $this->view->task = $this->setTaskByObjectID($storyID, $moduleID, $taskID, $todoID, $bugID); @@ -63,6 +64,7 @@ class taskZen extends task $this->view->hideStory = $this->task->isNoStoryExecution($execution); $this->view->from = $storyID || $todoID || $bugID ? 'other' : 'task'; $this->view->taskID = $taskID; + $this->view->loadUrl = $this->createLink('task', 'create', "executionID={execution}&storyID={$storyID}&moduleID={$moduleID}&task={$taskID}&todoID={$todoID}&cardPosition={$cardPosition}&bugID={$bugID}"); $this->display(); }