* adjust for task #2531:Process the post data in model when value is 'ditto'.
This commit is contained in:
+23
-15
@@ -8,36 +8,44 @@ $(function()
|
||||
});
|
||||
})
|
||||
|
||||
$(document).on('click', '.chosen-with-drop', function()
|
||||
{
|
||||
var $select = $(this).prev('select');
|
||||
oldValue = $select.val();
|
||||
})
|
||||
$(document).on('click', '.chosen-with-drop', function(){oldValue = $(this).prev('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 index = $(this).closest('td').index();
|
||||
var row = $(this).closest('tr').index();
|
||||
var $tbody = $(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();
|
||||
value = $tbody.children('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)
|
||||
|
||||
isModules = $(this).attr('name').indexOf('modules') != -1;
|
||||
isAssignedTos = $(this).attr('name').indexOf('assignedTos') != -1;
|
||||
isFinishedBys = $(this).attr('name').indexOf('finishedBys') != -1;
|
||||
isClosedBys = $(this).attr('name').indexOf('closedBys') != -1;
|
||||
|
||||
if(isModules || isAssignedTos || isFinishedBys || isClosedBys)
|
||||
{
|
||||
$(this).val(value);
|
||||
var valueStr = ',' + $(this).find('option').map(function(){return $(this).val();}).get().join(',') + ',';
|
||||
if(valueStr.indexOf(',' + value + ',') != -1)
|
||||
{
|
||||
$(this).val(value);
|
||||
}
|
||||
else
|
||||
{
|
||||
alert(dittoNotice);
|
||||
$(this).val(oldValue);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
alert(dittoNotice);
|
||||
$(this).val(oldValue);
|
||||
$(this).val(value);
|
||||
}
|
||||
|
||||
$(this).trigger("chosen:updated");
|
||||
|
||||
@@ -281,6 +281,26 @@ class taskModel extends model
|
||||
/* Adjust whether the post data is complete, if not, remove the last element of $taskIDList. */
|
||||
if($this->session->showSuhosinInfo) array_pop($taskIDList);
|
||||
|
||||
/* Process data if the value is 'ditto'. */
|
||||
foreach($taskIDList as $taskID)
|
||||
{
|
||||
if(isset($data->modules[$taskID]) and ($data->modules[$taskID] == 'ditto')) $data->modules[$taskID] = isset($prev['module']) ? $prev['module'] : 0;
|
||||
if($data->types[$taskID] == 'ditto') $data->types[$taskID] = isset($prev['type']) ? $prev['type'] : '';
|
||||
if($data->statuses[$taskID] == 'ditto') $data->statuses[$taskID] = isset($prev['status']) ? $prev['status'] : '';
|
||||
if($data->assignedTos[$taskID] == 'ditto') $data->assignedTos[$taskID] = isset($prev['assignedTo']) ? $prev['assignedTo'] : '';
|
||||
if($data->pris[$taskID] == 'ditto') $data->pris[$taskID] = isset($prev['pri']) ? $prev['pri'] : 0;
|
||||
if($data->finishedBys[$taskID] == 'ditto') $data->finishedBys[$taskID] = isset($prev['finishedBy']) ? $prev['finishedBy'] : '';
|
||||
if($data->closedBys[$taskID] == 'ditto') $data->closedBys[$taskID] = isset($prev['closedBy']) ? $prev['closedBy'] : '';
|
||||
|
||||
$prev['module'] = $data->modules[$taskID];
|
||||
$prev['type'] = $data->types[$taskID];
|
||||
$prev['status'] = $data->statuses[$taskID];
|
||||
$prev['assignedTo'] = $data->assignedTos[$taskID];
|
||||
$prev['pri'] = $data->pris[$taskID];
|
||||
$prev['finishedBy'] = $data->finishedBys[$taskID];
|
||||
$prev['closedBy'] = $data->closedBys[$taskID];
|
||||
}
|
||||
|
||||
/* Initialize tasks from the post data.*/
|
||||
foreach($taskIDList as $taskID)
|
||||
{
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<table class='table table-form table-fixed'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class='w-30px'><?php echo $lang->idAB;?></th>
|
||||
<th class='w-30px'><?php echo $lang->idAB;?></th>
|
||||
<th> <?php echo $lang->task->name?> <span class='required'></span></th>
|
||||
<th class='w-150px'><?php echo $lang->task->module?></th>
|
||||
<th class='w-150px'><?php echo $lang->task->assignedTo;?></th>
|
||||
@@ -38,45 +38,43 @@
|
||||
<th class='w-100px'><?php echo $lang->task->closedReason;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<?php foreach($taskIDList as $taskID):?>
|
||||
<?php
|
||||
if(!isset($project))
|
||||
{
|
||||
$prjInfo = $this->project->getById($tasks[$taskID]->project);
|
||||
$modules = $this->tree->getOptionMenu($tasks[$taskID]->project, $viewType = 'task');
|
||||
foreach($modules as $moduleID => $moduleName) $modules[$moduleID] = '/' . $prjInfo->name. $moduleName;
|
||||
$modules['ditto'] = $this->lang->task->ditto;
|
||||
<tbody>
|
||||
<?php foreach($taskIDList as $taskID):?>
|
||||
<?php
|
||||
if(!isset($project))
|
||||
{
|
||||
$prjInfo = $this->project->getById($tasks[$taskID]->project);
|
||||
$modules = $this->tree->getOptionMenu($tasks[$taskID]->project, $viewType = 'task');
|
||||
foreach($modules as $moduleID => $moduleName) $modules[$moduleID] = '/' . $prjInfo->name. $moduleName;
|
||||
$modules['ditto'] = $this->lang->task->ditto;
|
||||
|
||||
$members = $this->project->getTeamMemberPairs($tasks[$taskID]->project, 'nodeleted');
|
||||
$members['ditto'] = $this->lang->task->ditto;
|
||||
}
|
||||
?>
|
||||
<tr class='text-center'>
|
||||
<td><?php echo $taskID . html::hidden("taskIDList[$taskID]", $taskID);?></td>
|
||||
<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]", $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>
|
||||
<td class='text-left' style='overflow:visible'><?php echo html::select("finishedBys[$taskID]", $members, $tasks[$taskID]->finishedBy, "class='form-control chosen'");?></td>
|
||||
<td class='text-left' style='overflow:visible'><?php echo html::select("closedBys[$taskID]", $members, $tasks[$taskID]->closedBy, "class='form-control chosen'");?></td>
|
||||
<td><?php echo html::select("closedReasons[$taskID]", $lang->task->reasonList, $tasks[$taskID]->closedReason, 'class=form-control');?></td>
|
||||
</tr>
|
||||
<?php endforeach;?>
|
||||
$members = $this->project->getTeamMemberPairs($tasks[$taskID]->project, 'nodeleted');
|
||||
$members['ditto'] = $this->lang->task->ditto;
|
||||
}
|
||||
?>
|
||||
<tr class='text-center'>
|
||||
<td><?php echo $taskID . html::hidden("taskIDList[$taskID]", $taskID);?></td>
|
||||
<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]", $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>
|
||||
<td class='text-left' style='overflow:visible'><?php echo html::select("finishedBys[$taskID]", $members, $tasks[$taskID]->finishedBy, "class='form-control chosen'");?></td>
|
||||
<td class='text-left' style='overflow:visible'><?php echo html::select("closedBys[$taskID]", $members, $tasks[$taskID]->closedBy, "class='form-control chosen'");?></td>
|
||||
<td><?php echo html::select("closedReasons[$taskID]", $lang->task->reasonList, $tasks[$taskID]->closedReason, 'class=form-control');?></td>
|
||||
</tr>
|
||||
<?php endforeach;?>
|
||||
|
||||
<?php if(isset($suhosinInfo)):?>
|
||||
<tr><td colspan='<?php echo $this->config->task->batchEdit->columns;?>'>
|
||||
<div class='f-left blue'><?php echo $suhosinInfo;?></div>
|
||||
</td></tr>
|
||||
<?php endif;?>
|
||||
<?php if(isset($suhosinInfo)):?>
|
||||
<tr><td colspan='<?php echo $this->config->task->batchEdit->columns;?>'><div class='f-left blue'><?php echo $suhosinInfo;?></div></td></tr>
|
||||
<?php endif;?>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr><td colspan='<?php echo $this->config->task->batchEdit->columns;?>'>
|
||||
<?php echo html::submitButton();?>
|
||||
</td></tr>
|
||||
<tr><td colspan='<?php echo $this->config->task->batchEdit->columns;?>'><?php echo html::submitButton();?></td></tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
Reference in New Issue
Block a user