* change for task #2533.
This commit is contained in:
@@ -5,9 +5,6 @@ $config->story->batchCreate = 10;
|
||||
$config->story->affectedFixedNum = 7;
|
||||
$config->story->needReview = 1;
|
||||
|
||||
$config->story->batchEdit = new stdclass();
|
||||
$config->story->batchEdit->columns = 11;
|
||||
|
||||
$config->story->batchClose = new stdclass();
|
||||
$config->story->batchClose->columns = 10;
|
||||
|
||||
|
||||
@@ -380,7 +380,7 @@ class story extends control
|
||||
$storyIDList = $this->post->storyIDList ? $this->post->storyIDList : die(js::locate($this->session->storyList, 'parent'));
|
||||
|
||||
/* Get edited stories. */
|
||||
$stories = $this->dao->select('*')->from(TABLE_STORY)->where('id')->in($storyIDList)->fetchAll('id');
|
||||
$stories = $this->story->getByList($storyIDList);
|
||||
|
||||
/* The stories of a product. */
|
||||
if($productID)
|
||||
@@ -437,7 +437,7 @@ class story extends control
|
||||
|
||||
/* Judge whether the editedStories is too large and set session. */
|
||||
$showSuhosinInfo = false;
|
||||
$showSuhosinInfo = $this->loadModel('common')->judgeSuhosinSetting(count($stories), $this->config->story->batchEdit->columns);
|
||||
$showSuhosinInfo = $this->loadModel('common')->judgeSuhosinSetting(count($stories), count(explode(',', $this->config->story->custom->batchedit)) + 3);
|
||||
$this->app->session->set('showSuhosinInfo', $showSuhosinInfo);
|
||||
if($showSuhosinInfo) $this->view->suhosinInfo = $this->lang->suhosinInfo;
|
||||
|
||||
|
||||
@@ -14,9 +14,6 @@ $config->task->start->requiredFields = 'estimate';
|
||||
$config->task->finish->requiredFields = 'consumed';
|
||||
$config->task->activate->requiredFields = 'left';
|
||||
|
||||
$config->task->batchEdit = new stdclass();
|
||||
$config->task->batchEdit->columns = 13;
|
||||
|
||||
$config->task->editor = new stdclass();
|
||||
$config->task->editor->create = array('id' => 'desc', 'tools' => 'simpleTools');
|
||||
$config->task->editor->edit = array('id' => 'desc,comment', 'tools' => 'simpleTools');
|
||||
@@ -42,10 +39,12 @@ $config->task->exportFields = '
|
||||
';
|
||||
$config->task->customCreateFields = 'story,estStarted,deadline,mailto,pri,estimate';
|
||||
$config->task->batchCreateFields = 'module,story,assignedTo,estimate,estStarted,deadline,desc,pri';
|
||||
$config->task->batchEditFields = 'module,assignedTo,status,pri,estimate,record,left,estStarted,deadline,finishedBy,canceledBy,closedBy,closedReason';
|
||||
|
||||
$config->task->custom = new stdclass();
|
||||
$config->task->custom->create = $config->task->customCreateFields;
|
||||
$config->task->custom->batchcreate = 'module,story,assignedTo,estimate,desc,pri';
|
||||
$config->task->custom->batchedit = 'module,assignedTo,status,pri,estimate,record,left,finishedBy,closedBy,closedReason';
|
||||
|
||||
$config->task->datatable = new stdclass();
|
||||
$config->task->datatable->defaultField = array('id', 'pri', 'name', 'status', 'deadline', 'openedDate', 'assignedTo', 'finishedBy', 'finishedDate', 'estimate', 'consumed', 'left', 'story', 'actions');
|
||||
|
||||
@@ -372,10 +372,15 @@ class task extends control
|
||||
|
||||
/* Judge whether the editedTasks is too large and set session. */
|
||||
$showSuhosinInfo = false;
|
||||
$showSuhosinInfo = $this->loadModel('common')->judgeSuhosinSetting(count($tasks), $this->config->task->batchEdit->columns);
|
||||
$showSuhosinInfo = $this->loadModel('common')->judgeSuhosinSetting(count($tasks), count(explode(',', $this->config->task->custom->batchedit)) + 3);
|
||||
$this->app->session->set('showSuhosinInfo', $showSuhosinInfo);
|
||||
if($showSuhosinInfo) $this->view->suhosinInfo = $this->lang->suhosinInfo;
|
||||
|
||||
/* Set Custom*/
|
||||
foreach(explode(',', $this->config->task->batchEditFields) as $field) $customFields[$field] = $this->lang->task->$field;
|
||||
$this->view->customFields = $customFields;
|
||||
$this->view->showFields = $this->config->task->custom->batchedit;
|
||||
|
||||
/* Set ditto option for pri, status and type list. */
|
||||
$this->lang->task->priList['ditto'] = $this->lang->task->ditto;
|
||||
$this->lang->task->statusList['ditto'] = $this->lang->task->ditto;
|
||||
|
||||
@@ -292,6 +292,7 @@ class taskModel extends model
|
||||
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->canceledBys[$taskID] == 'ditto') $data->canceledBys[$taskID] = isset($prev['canceledBy']) ? $prev['canceledBy'] : '';
|
||||
if($data->closedBys[$taskID] == 'ditto') $data->closedBys[$taskID] = isset($prev['closedBy']) ? $prev['closedBy'] : '';
|
||||
|
||||
$prev['module'] = $data->modules[$taskID];
|
||||
@@ -300,6 +301,7 @@ class taskModel extends model
|
||||
$prev['assignedTo'] = $data->assignedTos[$taskID];
|
||||
$prev['pri'] = $data->pris[$taskID];
|
||||
$prev['finishedBy'] = $data->finishedBys[$taskID];
|
||||
$prev['canceledBy'] = $data->canceledBys[$taskID];
|
||||
$prev['closedBy'] = $data->closedBys[$taskID];
|
||||
}
|
||||
|
||||
@@ -317,20 +319,19 @@ class taskModel extends model
|
||||
$task->pri = $data->pris[$taskID];
|
||||
$task->estimate = $data->estimates[$taskID];
|
||||
$task->left = $data->lefts[$taskID];
|
||||
$task->estStarted = $data->estStarteds[$taskID];
|
||||
$task->deadline = $data->deadlines[$taskID];
|
||||
$task->finishedBy = $data->finishedBys[$taskID];
|
||||
$task->canceledBy = $oldTask->canceledBy;
|
||||
$task->canceledBy = $data->canceledBys[$taskID];
|
||||
$task->closedBy = $data->closedBys[$taskID];
|
||||
$task->closedReason = $data->closedReasons[$taskID];
|
||||
$task->finishedDate = $oldTask->finishedDate;
|
||||
$task->canceledDate = $oldTask->canceledDate;
|
||||
$task->closedDate = $oldTask->closedDate;
|
||||
$task->assignedDate = $oldTask->assignedTo ==$task->assignedTo ? $oldTask->assignedDate : $now;
|
||||
$task->finishedDate = $oldTask->finishedBy == $task->finishedBy ? $oldTask->finishedDate : $now;
|
||||
$task->canceledDate = $oldTask->canceledBy == $task->canceledBy ? $oldTask->canceledDate : $now;
|
||||
$task->closedDate = $oldTask->closedBy == $task->closedBy ? $oldTask->closedDate : $now;
|
||||
$task->lastEditedBy = $this->app->user->account;
|
||||
$task->lastEditedDate = $now;
|
||||
$task->consumed = $oldTask->consumed;
|
||||
if(isset($data->assignedTos[$taskID]))
|
||||
{
|
||||
$task->assignedDate = $data->assignedTos[$taskID] == $oldTask->assignedTo ? $oldTask->assignedDate : $now;
|
||||
}
|
||||
|
||||
if($data->consumeds[$taskID])
|
||||
{
|
||||
|
||||
@@ -11,31 +11,44 @@
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<?php include '../../common/view/datepicker.html.php';?>
|
||||
<?php js::set('dittoNotice', $this->lang->task->dittoNotice);?>
|
||||
<div id='titlebar'>
|
||||
<div class='heading'>
|
||||
<span class='prefix'><?php echo html::icon($lang->icons['task']);?></span>
|
||||
<strong><small class='text-muted'><?php echo html::icon($lang->icons['batchEdit']);?></small> <?php echo $lang->task->batchEdit . ' ' . $lang->task->common;?></strong>
|
||||
<div class='actions'>
|
||||
<button type="button" class="btn btn-default" data-toggle="customModal"><i class='icon icon-cog'></i> </button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
$hasFields = array();
|
||||
foreach(explode(',', $showFields) as $field)
|
||||
{
|
||||
if($field)$hasFields[$field] = '';
|
||||
}
|
||||
?>
|
||||
<form class='form-condensed' method='post' target='hiddenwin' action="<?php echo inLink('batchEdit', "projectID={$projectID}")?>">
|
||||
<table class='table table-form table-fixed'>
|
||||
<thead>
|
||||
<tr>
|
||||
<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>
|
||||
<th class='w-50px'><?php echo $lang->idAB;?></th>
|
||||
<th <?php if(count($hasFields) > 10) echo "class='w-150px'"?>> <?php echo $lang->task->name?> <span class='required'></span></th>
|
||||
<th class='w-150px<?php echo zget($hasFields, 'module', ' hidden')?>'><?php echo $lang->task->module?></th>
|
||||
<th class='w-150px<?php echo zget($hasFields, 'assignedTo', ' hidden')?>'><?php echo $lang->task->assignedTo;?></th>
|
||||
<th class='w-80px'><?php echo $lang->typeAB;?> <span class='required'></span></th>
|
||||
<th class='w-100px'><?php echo $lang->task->status;?></th>
|
||||
<th class='w-70px'><?php echo $lang->task->pri;?></th>
|
||||
<th class='w-40px'><?php echo $lang->task->estimateAB;?> <span class='required'></span></th>
|
||||
<th class='w-60px'><?php echo $lang->task->consumedThisTime?> <span class='required'></span></th>
|
||||
<th class='w-40px'><?php echo $lang->task->leftAB?> <span class='required'></span></th>
|
||||
<th class='w-150px'><?php echo $lang->task->finishedBy;?></th>
|
||||
<th class='w-100px'><?php echo $lang->task->closedBy;?></th>
|
||||
<th class='w-100px'><?php echo $lang->task->closedReason;?></th>
|
||||
<th class='w-100px<?php echo zget($hasFields, 'status', ' hidden')?>'><?php echo $lang->task->status;?></th>
|
||||
<th class='w-70px<?php echo zget($hasFields, 'pri', ' hidden')?>'><?php echo $lang->task->pri;?></th>
|
||||
<th class='w-40px<?php echo zget($hasFields, 'estimate', ' hidden')?>'><?php echo $lang->task->estimateAB;?></th>
|
||||
<th class='w-50px<?php echo zget($hasFields, 'record', ' hidden')?>'><?php echo $lang->task->consumedThisTime?></th>
|
||||
<th class='w-40px<?php echo zget($hasFields, 'left', ' hidden')?>'><?php echo $lang->task->leftAB?></th>
|
||||
<th class='w-90px<?php echo zget($hasFields, 'estStarted', ' hidden')?>'><?php echo $lang->task->estStarted?></th>
|
||||
<th class='w-90px<?php echo zget($hasFields, 'deadline', ' hidden')?>'><?php echo $lang->task->deadline?></th>
|
||||
<th class='w-100px<?php echo zget($hasFields, 'finishedBy', ' hidden')?>'><?php echo $lang->task->finishedBy;?></th>
|
||||
<th class='w-100px<?php echo zget($hasFields, 'canceledBy', ' hidden')?>'><?php echo $lang->task->canceledBy;?></th>
|
||||
<th class='w-100px<?php echo zget($hasFields, 'closedBy', ' hidden')?>'><?php echo $lang->task->closedBy;?></th>
|
||||
<th class='w-100px<?php echo zget($hasFields, 'closedReason', ' hidden')?>'><?php echo $lang->task->closedReason;?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -55,27 +68,33 @@
|
||||
<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 class='text-left<?php echo zget($hasFields, 'module', ' hidden')?>' style='overflow:visible'><?php echo html::select("modules[$taskID]", $modules, $tasks[$taskID]->module, "class='form-control chosen'")?></td>
|
||||
<td class='text-left<?php echo zget($hasFields, 'assignedTo', ' hidden')?>' 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>
|
||||
<td <?php echo zget($hasFields, 'status', "class='hidden'")?>><?php echo html::select("statuses[$taskID]", $statusList, $tasks[$taskID]->status, 'class=form-control');?></td>
|
||||
<td <?php echo zget($hasFields, 'pri', "class='hidden'")?>><?php echo html::select("pris[$taskID]", $priList, $tasks[$taskID]->pri, 'class=form-control');?></td>
|
||||
<td <?php echo zget($hasFields, 'estimate', "class='hidden'")?>><?php echo html::input("estimates[$taskID]", $tasks[$taskID]->estimate, "class='form-control text-center' autocomplete='off'");?></td>
|
||||
<td <?php echo zget($hasFields, 'record', "class='hidden'")?>><?php echo html::input("consumeds[$taskID]", '', "class='form-control text-center' autocomplete='off'");?></td>
|
||||
<td <?php echo zget($hasFields, 'left', "class='hidden'")?>><?php echo html::input("lefts[$taskID]", $tasks[$taskID]->left, "class='form-control text-center' autocomplete='off'");?></td>
|
||||
<td <?php echo zget($hasFields, 'estStarted', "class='hidden'")?>><?php echo html::input("estStarteds[$taskID]", $tasks[$taskID]->estStarted, "class='form-control text-center form-date'");?></td>
|
||||
<td <?php echo zget($hasFields, 'deadline', "class='hidden'")?>><?php echo html::input("deadlines[$taskID]", $tasks[$taskID]->deadline, "class='form-control text-center form-date'");?></td>
|
||||
<td class='text-left<?php echo zget($hasFields, 'finishedBy', ' hidden')?>' style='overflow:visible'><?php echo html::select("finishedBys[$taskID]", $members, $tasks[$taskID]->finishedBy, "class='form-control chosen'");?></td>
|
||||
<td class='text-left<?php echo zget($hasFields, 'canceledBy', ' hidden')?>' style='overflow:visible'><?php echo html::select("canceledBys[$taskID]", $members, $tasks[$taskID]->canceledBy, "class='form-control chosen'");?></td>
|
||||
<td class='text-left<?php echo zget($hasFields, 'closedBy', ' hidden')?>' style='overflow:visible'><?php echo html::select("closedBys[$taskID]", $members, $tasks[$taskID]->closedBy, "class='form-control chosen'");?></td>
|
||||
<td <?php echo zget($hasFields, 'closedReason', "class='hidden'")?>><?php echo html::select("closedReasons[$taskID]", $lang->task->reasonList, $tasks[$taskID]->closedReason, 'class=form-control');?></td>
|
||||
</tr>
|
||||
<?php endforeach;?>
|
||||
|
||||
<?php $columns = count($hasFields) + 3?>
|
||||
<?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>
|
||||
<tr><td colspan='<?php echo $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 $columns;?>'><?php echo html::submitButton();?></td></tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</form>
|
||||
<?php $customLink = $this->createLink('custom', 'ajaxSaveCustom', 'module=task§ion=custom&key=batchedit')?>
|
||||
<?php include '../../common/view/customfield.html.php';?>
|
||||
<?php include '../../common/view/footer.html.php';?>
|
||||
|
||||
Reference in New Issue
Block a user