diff --git a/module/doc/model.php b/module/doc/model.php index 703b12294a..dd15c0c05b 100644 --- a/module/doc/model.php +++ b/module/doc/model.php @@ -1301,10 +1301,8 @@ class docModel extends model } } - if($object->project and !$object->execution and $object->acl == 'default') - { - if($this->loadModel('project')->checkPriv($object->project)) return true; - } + $isProjectLib = $object->project && !$object->execution; + if($isProjectLib && $object->acl == 'default' && $this->loadModel('project')->checkPriv($object->project)) return true; if(strpos($extra, 'notdoc') !== false) { diff --git a/module/task/config.php b/module/task/config.php index 7efa8b9ed2..027f85980a 100644 --- a/module/task/config.php +++ b/module/task/config.php @@ -20,6 +20,8 @@ $config->task->activate->requiredFields = 'left'; $config->task->default = new stdclass(); $config->task->default->pri = 3; +$config->task->unfinishedStatus = array('wait', 'doing', 'pause'); + $config->task->editor = new stdclass(); $config->task->editor->create = array('id' => 'desc', 'tools' => 'simpleTools'); $config->task->editor->edit = array('id' => 'desc,comment', 'tools' => 'simpleTools'); diff --git a/module/task/control.php b/module/task/control.php index c2e9e44d87..c8888915e9 100755 --- a/module/task/control.php +++ b/module/task/control.php @@ -243,7 +243,7 @@ class task extends control if(empty($changes)) continue; /* Determine whether the status of a task has been changed, if the status of a task has been changed, set $updateStatus to taskID*/ - if($waitTaskID == false) + if($waitTaskID) { foreach($changes as $changeField) { @@ -263,12 +263,10 @@ class task extends control { foreach($changes as $change) { - if($change['field'] == 'status') - { - $confirmURL = $this->createLink('bug', 'view', "id=$task->fromBug"); - $cancelURL = $this->server->HTTP_REFERER; - return print(js::confirm(sprintf($this->lang->task->remindBug, $task->fromBug), $confirmURL, $cancelURL, 'parent', 'parent')); - } + if($change['field'] != 'status') continue; + $confirmURL = $this->createLink('bug', 'view', "id=$task->fromBug"); + $cancelURL = $this->server->HTTP_REFERER; + return print(js::confirm(sprintf($this->lang->task->remindBug, $task->fromBug), $confirmURL, $cancelURL, 'parent', 'parent')); } } if($waitTaskID !== false) $this->loadModel('common')->syncPPEStatus($waitTaskID); @@ -856,7 +854,7 @@ class task extends control $task = $this->task->getById($taskID); if($this->post->comment != '' or !empty($changes)) { - $fileAction = !empty($files) ? $this->lang->addFiles . join(',', $files) . "\n" : ''; + $fileAction = !empty($files) ? $this->lang->addFiles . implode(',', $files) . "\n" : ''; $actionID = $this->action->create('task', $taskID, 'Finished', $fileAction . $this->post->comment); $this->action->logHistory($actionID, $changes); } @@ -1234,7 +1232,7 @@ class task extends control } if(isset($skipTasks) and empty($skipTaskIdList)) { - $skipTasks = join(',', $skipTasks); + $skipTasks = implode(',', $skipTasks); $confirmURL = $this->createLink('task', 'batchClose', "skipTaskIdList=$skipTasks"); $cancelURL = $this->server->HTTP_REFERER; return print(js::confirm(sprintf($this->lang->task->error->skipClose, $skipTasks), $confirmURL, $cancelURL, 'self', 'parent')); @@ -1242,7 +1240,7 @@ class task extends control if(isset($parentTasks)) { - $parentTasks = join(',', $parentTasks); + $parentTasks = implode(',', $parentTasks); return print(js::alert(sprintf($this->lang->task->error->closeParent, $parentTasks)) . js::reload('parent')); } @@ -1595,7 +1593,7 @@ class task extends control $this->view->executionID = $executionID; $this->view->browseType = $browseType; $this->view->chartType = $chartType; - $this->view->checkedCharts = $this->post->charts ? join(',', $this->post->charts) : ''; + $this->view->checkedCharts = $this->post->charts ? implode(',', $this->post->charts) : ''; $this->display(); } @@ -1880,9 +1878,11 @@ class task extends control */ public function ajaxGetByID($taskID) { - $task = $this->dao->select('*')->from(TABLE_TASK)->where('id')->eq($taskID)->fetch(); - $realname = $this->dao->select('*')->from(TABLE_USER)->where('account')->eq($task->assignedTo)->fetch('realname'); - $task->assignedTo = $realname ? $realname : ($task->assignedTo == 'closed' ? 'Closed' : $task->assignedTo); + $task = $this->dao->select('*')->from(TABLE_TASK)->where('id')->eq($taskID)->fetch(); + $realname = $this->dao->select('*')->from(TABLE_USER)->where('account')->eq($task->assignedTo)->fetch('realname'); + $assignedTo = $task->assignedTo == 'closed' ? 'Closed' : $task->assignedTo; + + $task->assignedTo = $realname ? $realname : $assignedTo; if($task->story) { $this->app->loadLang('story'); diff --git a/module/task/model.php b/module/task/model.php index 50dd8788a6..90d900e918 100755 --- a/module/task/model.php +++ b/module/task/model.php @@ -1010,6 +1010,8 @@ class taskModel extends model break; case 'pause': $task->finishedDate = ''; + default: + break; } if($task->assignedTo) $task->assignedDate = $now; @@ -1388,15 +1390,7 @@ class taskModel extends model $earliestTime = ''; foreach(array_keys($record->dates) as $id) { - if($earliestTime == '') - { - $earliestTime = $record->dates[$id]; - } - elseif(!empty($record->dates[$id]) && (strtotime($earliestTime) > strtotime($record->dates[$id]))) - { - $earliestTime = $record->dates[$id]; - } - + $earliestTime = $record->dates[$id]; if(!empty($record->work[$id]) or !empty($record->consumed[$id])) { if(helper::isZeroDate($record->dates[$id])) helper::end(js::alert($this->lang->task->error->dateEmpty)); @@ -2611,13 +2605,10 @@ class taskModel extends model $today = helper::today(); /* Delayed or not?. */ - if($task->status !== 'done' and $task->status !== 'cancel' and $task->status != 'closed') + if(in_array($task->status, $this->config->task->unfinishedStatus) && !empty($task->deadline) && !helper::isZeroDate($task->deadline)) { - if(!empty($task->deadline) and !helper::isZeroDate($task->deadline)) - { - $delay = helper::diffDate($today, $task->deadline); - if($delay > 0) $task->delay = $delay; - } + $delay = helper::diffDate($today, $task->deadline); + if($delay > 0) $task->delay = $delay; } /* Story changed or not. */ @@ -3118,14 +3109,11 @@ class taskModel extends model * @param string $browseType * @param array $branchGroups * @param array $modulePairs - * @param string $mode - * @param bool $child * @param bool $showBranch - * * @access public * @return void */ - public function printCell($col, $task, $users, $browseType, $branchGroups, $modulePairs = array(), $mode = 'datatable', $child = false, $showBranch = false) + public function printCell($col, $task, $users, $browseType, $branchGroups, $modulePairs = array(), $showBranch = false) { $canBatchEdit = common::hasPriv('task', 'batchEdit', !empty($task) ? $task : null); $canBatchClose = (common::hasPriv('task', 'batchClose', !empty($task) ? $task : null) and strtolower($browseType) != 'closed'); @@ -3297,6 +3285,9 @@ class taskModel extends model case 'actions': echo $this->buildOperateMenu($task, 'browse'); break; + default: + echo ''; + break; } echo ''; } @@ -3477,12 +3468,9 @@ class taskModel extends model $list .= '