* adjust for skip task when batch close.

This commit is contained in:
wangyidong
2016-12-06 11:30:59 +08:00
parent 7451929e65
commit 185f540348
3 changed files with 10 additions and 33 deletions
+2 -1
View File
@@ -487,6 +487,7 @@ class mailModel extends model
}
$toList = join(',', $toList);
$ccList = join(',', $ccList);
if(empty($toList) or empty($subject)) return true;
$data = new stdclass();
$data->toList = $toList;
@@ -495,7 +496,7 @@ class mailModel extends model
$data->body = $body;
$data->addedBy = $this->app->user->account;
$data->addedDate = helper::now();
$this->dao->insert(TABLE_MAILQUEUE)->data($data)->autocheck()->batchCheck('toList,subject', 'notempty')->exec();
$this->dao->insert(TABLE_MAILQUEUE)->data($data)->autocheck()->exec();
}
/**
+7 -31
View File
@@ -857,11 +857,12 @@ class task extends control
* @access public
* @return void
*/
public function batchClose()
public function batchClose($skipTaskIdList = '')
{
if($this->post->taskIDList)
if($this->post->taskIDList or $skipTaskIdList)
{
$taskIDList = $this->post->taskIDList;
if($skipTaskIdList) $taskIDList = $skipTaskIdList;
unset($_POST['taskIDList']);
unset($_POST['assignedTo']);
$this->loadModel('action');
@@ -869,7 +870,7 @@ class task extends control
$tasks = $this->task->getByList($taskIDList);
foreach($tasks as $taskID => $task)
{
if($task->status == 'wait' or $task->status == 'doing')
if(empty($skipTaskIdList) and ($task->status == 'wait' or $task->status == 'doing'))
{
$skipTasks[$taskID] = $taskID;
continue;
@@ -878,7 +879,6 @@ class task extends control
if($task->status == 'closed') continue;
$changes = $this->task->close($taskID);
if($changes)
{
$actionID = $this->action->create('task', $taskID, 'Closed', '');
@@ -886,41 +886,17 @@ class task extends control
$this->task->sendmail($taskID, $actionID);
}
}
if(isset($skipTasks))
if(isset($skipTasks) and empty($skipTaskIdList))
{
$skipTasks = join(',', $skipTasks);
$confirmURL = $this->createLink('task', 'closeSkipTasks', "skipTasks=$skipTasks");
$confirmURL = $this->createLink('task', 'batchClose', "skipTaskIdList=$skipTasks");
$cancelURL = $this->server->HTTP_REFERER;
die(js::confirm(sprintf($this->lang->task->error->skipClose, $skipTasks), $confirmURL, $cancelURL, 'parent', 'parent'));
die(js::confirm(sprintf($this->lang->task->error->skipClose, $skipTasks), $confirmURL, $cancelURL, 'self', 'parent'));
}
}
die(js::reload('parent'));
}
/**
* Close skip tasks.
*
* @param string $skipTasks
* @access public
* @return void
*/
public function closeSkipTasks($skipTasks = '')
{
$this->loadModel('action');
$skipTasks = explode(',', $skipTasks);
foreach($skipTasks as $taskID)
{
$changes = $this->task->close($taskID);
if($changes)
{
$actionID = $this->action->create('task', $taskID, 'Closed', '');
$this->action->logHistory($actionID, $changes);
$this->sendmail($taskID, $actionID);
}
}
die(js::locate($this->session->taskList, 'parent'));
}
/**
* Cancel a task.
*
+1 -1
View File
@@ -712,7 +712,7 @@ class taskModel extends model
*/
public function close($taskID)
{
$oldTask = $this->getById($taskID);
$oldTask = $this->dao->select('*')->from(TABLE_TASK)->where('id')->eq($taskID)->fetch();
$now = helper::now();
$task = fixer::input('post')
->setDefault('status', 'closed')