* code for task #2531: add ditto option for task batch edit.
This commit is contained in:
+15
-3
@@ -336,12 +336,16 @@ class task extends control
|
||||
{
|
||||
$project = $this->project->getById($projectID);
|
||||
$this->project->setMenu($this->project->getPairs(), $project->id);
|
||||
$members = $this->project->getTeamMemberPairs($projectID, 'nodeleted');
|
||||
$members = $members + array('closed' => 'Closed');
|
||||
|
||||
/* Set modules and members. */
|
||||
$modules = array(0 => '/', 'ditto' => $this->lang->task->ditto) + $this->tree->getTaskOptionMenu($projectID);
|
||||
$members = $this->project->getTeamMemberPairs($projectID, 'nodeleted') + array('closed' => 'Closed');
|
||||
$members = array('' => '', 'ditto' => $this->lang->task->ditto) + $members;
|
||||
|
||||
$this->view->title = $project->name . $this->lang->colon . $this->lang->task->batchEdit;
|
||||
$this->view->position[] = html::a($this->createLink('project', 'browse', "project=$project->id"), $project->name);
|
||||
$this->view->project = $project;
|
||||
$this->view->modules = $this->tree->getTaskOptionMenu($projectID);
|
||||
$this->view->modules = $modules;
|
||||
$this->view->members = $members;
|
||||
}
|
||||
/* The tasks of my. */
|
||||
@@ -365,10 +369,18 @@ class task extends control
|
||||
$this->app->session->set('showSuhosinInfo', $showSuhosinInfo);
|
||||
if($showSuhosinInfo) $this->view->suhosinInfo = $this->lang->suhosinInfo;
|
||||
|
||||
/* Set pri, status and type list. */
|
||||
$priList = array(0 => '', 'ditto' => $this->lang->task->ditto) + (array)$this->lang->task->priList;
|
||||
$statusList = array('' => '', 'ditto' => $this->lang->task->ditto) + $this->lang->task->statusList;
|
||||
$typeList = array('' => '', 'ditto' => $this->lang->task->ditto) + $this->lang->task->typeList;
|
||||
|
||||
/* Assign. */
|
||||
$this->view->position[] = $this->lang->task->common;
|
||||
$this->view->position[] = $this->lang->task->batchEdit;
|
||||
$this->view->projectID = $projectID;
|
||||
$this->view->priList = $priList;
|
||||
$this->view->statusList = $statusList;
|
||||
$this->view->typeList = $typeList;
|
||||
$this->view->taskIDList = $taskIDList;
|
||||
$this->view->tasks = $tasks;
|
||||
$this->view->projectName = isset($project) ? $project->name : '';
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
$(document).on('click', '.chosen-with-drop', function()
|
||||
{
|
||||
var $select = $(this).prev('select');
|
||||
oldValue = $select.val();
|
||||
})
|
||||
|
||||
$(document).on('change', 'select', function()
|
||||
{
|
||||
if($(this).val() == 'ditto')
|
||||
{
|
||||
var index = $(this).closest('td').index();
|
||||
var row = $(this).closest('tr').index();
|
||||
var table = $(this).closest('tr').parent();
|
||||
|
||||
var value = '';
|
||||
for(i = row - 1; i >= 0; i--)
|
||||
{
|
||||
value = $(table).find('tr').eq(i).find('td').eq(index).find('select').val();
|
||||
if(value != 'ditto') break;
|
||||
}
|
||||
|
||||
var valueStr = ',' + $(this).find('option').map(function(){return $(this).val();}).get().join(',') + ',';
|
||||
if(valueStr.indexOf(',' + value + ',') != -1)
|
||||
{
|
||||
$(this).val(value);
|
||||
}
|
||||
else
|
||||
{
|
||||
alert(editNotice);
|
||||
$(this).val(oldValue);
|
||||
}
|
||||
|
||||
$(this).trigger("chosen:updated");
|
||||
$(this).trigger("change");
|
||||
}
|
||||
})
|
||||
@@ -31,6 +31,7 @@ $lang->task->export = "Export data";
|
||||
$lang->task->reportChart = "Report chart";
|
||||
$lang->task->fromBug = 'From Bug';
|
||||
$lang->task->confirmStoryChange = "Confirm story change";
|
||||
$lang->task->editNotice = "Current task and task above it do not belong to same project!";
|
||||
|
||||
$lang->task->common = 'Task';
|
||||
$lang->task->id = 'ID';
|
||||
|
||||
@@ -31,6 +31,7 @@ $lang->task->export = "导出数据";
|
||||
$lang->task->reportChart = "报表统计";
|
||||
$lang->task->fromBug = '来源Bug';
|
||||
$lang->task->confirmStoryChange = "确认需求变动";
|
||||
$lang->task->editNotice = "该任务与上一任务不属于同一项目!";
|
||||
|
||||
$lang->task->common = '任务';
|
||||
$lang->task->id = '编号';
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php js::set('editNotice', $this->lang->task->editNotice);?>
|
||||
<div id='titlebar'>
|
||||
<div class='heading'>
|
||||
<span class='prefix'><?php echo html::icon($lang->icons['task']);?></span>
|
||||
@@ -41,8 +42,11 @@
|
||||
<?php
|
||||
if(!isset($project))
|
||||
{
|
||||
$modules = $this->tree->getOptionMenu($tasks[$taskID]->project, $viewType = 'task');
|
||||
$members = $this->project->getTeamMemberPairs($tasks[$taskID]->project, 'nodeleted');
|
||||
$modules = $this->tree->getOptionMenu($tasks[$taskID]->project, $viewType = 'task');
|
||||
$prjInfo = $this->project->getById($tasks[$taskID]->project);
|
||||
foreach($modules as $moduleID => $moduleName) $modules[$moduleID] = '/' . $prjInfo->name. $moduleName;
|
||||
$modules = array(0 => '/', 'ditto' => $this->lang->task->ditto) + $modules;
|
||||
$members = array('' => '', 'ditto' => $this->lang->task->ditto) + $this->project->getTeamMemberPairs($tasks[$taskID]->project, 'nodeleted');
|
||||
}
|
||||
?>
|
||||
<tr class='text-center'>
|
||||
@@ -50,9 +54,9 @@
|
||||
<td title='<?php echo $tasks[$taskID]->name?>'><?php echo html::input("names[$taskID]", $tasks[$taskID]->name, 'class=form-control');?></td>
|
||||
<td class='text-left' style='overflow:visible'><?php echo html::select("modules[$taskID]", $modules, $tasks[$taskID]->module, "class='form-control chosen'")?></td>
|
||||
<td class='text-left' style='overflow:visible'><?php echo html::select("assignedTos[$taskID]", $members, $tasks[$taskID]->assignedTo, "class='form-control chosen'");?></td>
|
||||
<td><?php echo html::select("types[$taskID]", $lang->task->typeList, $tasks[$taskID]->type, 'class=form-control');?></td>
|
||||
<td><?php echo html::select("statuses[$taskID]", $lang->task->statusList, $tasks[$taskID]->status, 'class=form-control');?></td>
|
||||
<td><?php echo html::select("pris[$taskID]", (array)$lang->task->priList, $tasks[$taskID]->pri, 'class=form-control');?></td>
|
||||
<td><?php echo html::select("types[$taskID]", $typeList, $tasks[$taskID]->type, 'class=form-control');?></td>
|
||||
<td><?php echo html::select("statuses[$taskID]", $statusList, $tasks[$taskID]->status, 'class=form-control');?></td>
|
||||
<td><?php echo html::select("pris[$taskID]", $priList, $tasks[$taskID]->pri, 'class=form-control');?></td>
|
||||
<td><?php echo html::input("estimates[$taskID]", $tasks[$taskID]->estimate, "class='form-control text-center' autocomplete='off'");?></td>
|
||||
<td><?php echo html::input("consumeds[$taskID]", '', "class='form-control text-center' autocomplete='off'");?></td>
|
||||
<td><?php echo html::input("lefts[$taskID]", $tasks[$taskID]->left, "class='form-control text-center' autocomplete='off'");?></td>
|
||||
|
||||
Reference in New Issue
Block a user