diff --git a/db/update9.6.sql b/db/update9.6.sql index 5b43264d5b..9a47b65a2b 100644 --- a/db/update9.6.sql +++ b/db/update9.6.sql @@ -1 +1,2 @@ ALTER TABLE `zt_score` DROP `objectID`; +ALTER TABLE `zt_team` CHANGE `limitedUser` `limited` varchar(8) COLLATE 'utf8_general_ci' NOT NULL DEFAULT 'no' AFTER `role`; diff --git a/module/bug/model.php b/module/bug/model.php index d0ef0a88dc..1104a388be 100644 --- a/module/bug/model.php +++ b/module/bug/model.php @@ -64,7 +64,8 @@ class bugModel extends model ->add('openedDate', $now) ->setDefault('project,story,task', 0) ->setDefault('openedBuild', '') - ->setIF(strpos($this->config->bug->create->requiredFields, 'deadline') === false, 'deadline', '0000-00-00') + ->setDefault('deadline', '0000-00-00') + ->setIF(strpos($this->config->bug->create->requiredFields, 'deadline') !== false, 'deadline', $this->post->deadline) ->setIF($this->post->assignedTo != '', 'assignedDate', $now) ->setIF($this->post->story != false, 'storyVersion', $this->loadModel('story')->getVersion($this->post->story)) ->stripTags($this->config->bug->editor->create['id'], $this->config->allowedTags) @@ -506,7 +507,8 @@ class bugModel extends model ->setDefault('project,module,project,story,task,duplicateBug,branch', 0) ->setDefault('openedBuild', '') ->setDefault('plan', 0) - ->setIF(strpos($this->config->bug->edit->requiredFields, 'deadline') === false, 'deadline', '0000-00-00') + ->setDefault('deadline', '0000-00-00') + ->setIF(strpos($this->config->bug->edit->requiredFields, 'deadline') !== false, 'deadline', $this->post->deadline) ->add('lastEditedBy', $this->app->user->account) ->add('lastEditedDate', $now) ->join('openedBuild', ',') @@ -847,7 +849,7 @@ class bugModel extends model unset($bug->createBuild); unset($bug->buildProject); - if($bug->resolvedBuild != 'trunk') $bug->testtask = $this->dao->select('id')->from(TABLE_TESTTASK)->where('build')->eq($bug->resolvedBuild)->orderBy('id_desc')->limit(1)->fetch('id'); + if($bug->resolvedBuild != 'trunk') $bug->testtask = (int) $this->dao->select('id')->from(TABLE_TESTTASK)->where('build')->eq($bug->resolvedBuild)->orderBy('id_desc')->limit(1)->fetch('id'); $this->dao->update(TABLE_BUG)->data($bug) ->autoCheck() diff --git a/module/doc/model.php b/module/doc/model.php index 4205942df7..5552ed246f 100644 --- a/module/doc/model.php +++ b/module/doc/model.php @@ -458,7 +458,7 @@ class docModel extends model ->get(); if($doc->acl == 'private') $doc->users = $oldDoc->addedBy; - $oldDocContent = $this->dao->select('files,type')->from(TABLE_DOCCONTENT)->where('doc')->eq($docID)->andWhere('version')->eq($oldDoc->version)->fetch(); + $oldDocContent = $this->dao->select('*')->from(TABLE_DOCCONTENT)->where('doc')->eq($docID)->andWhere('version')->eq($oldDoc->version)->fetch(); if($oldDocContent) { $oldDoc->title = $oldDocContent->title; diff --git a/module/doc/view/view.html.php b/module/doc/view/view.html.php index fc4192bd38..6a6f24b71d 100644 --- a/module/doc/view/view.html.php +++ b/module/doc/view/view.html.php @@ -35,7 +35,7 @@ { foreach($action->history as $history) { - if($history->field == 'contentType') + if($history->field == 'content') { $versions[$i] = "#$i " . zget($users, $action->actor) . ' ' . substr($action->date, 2, 14); $i++; diff --git a/module/file/control.php b/module/file/control.php index ee06434a15..d84b0b3f5e 100644 --- a/module/file/control.php +++ b/module/file/control.php @@ -484,9 +484,10 @@ class file extends control $file = $this->file->getById($fileID); if(empty($file) or !file_exists($file->realPath)) return false; - $mime = in_array($file->extension, $this->config->file->imageExtensions) ? "image/{$file->extension}" : $this->config->file->mimes['default']; - ob_end_clean(); + $obLevel = ob_get_level(); + for($i = 0; $i < $obLevel; $i++) ob_end_clean(); + $mime = in_array($file->extension, $this->config->file->imageExtensions) ? "image/{$file->extension}" : $this->config->file->mimes['default']; header("Content-type: $mime"); $handle = fopen($file->realPath, "r"); diff --git a/module/product/view/project.html.php b/module/product/view/project.html.php index e284706b0f..fd22e69cf4 100644 --- a/module/product/view/project.html.php +++ b/module/product/view/project.html.php @@ -24,7 +24,7 @@ project->totalEstimate;?> project->totalConsumed;?> project->totalLeft;?> - project->progess;?> + project->progress;?> project->burn;?> diff --git a/module/project/lang/en.php b/module/project/lang/en.php index 85b704daab..ff8496dab2 100644 --- a/module/project/lang/en.php +++ b/module/project/lang/en.php @@ -82,9 +82,9 @@ $lang->team->hours = 'Hour/Day'; $lang->team->days = 'Workdays'; $lang->team->totalHours = 'Total'; -$lang->team->limitedUser = 'limited User'; -$lang->team->limitedUserList['no'] = 'No'; -$lang->team->limitedUserList['yes'] = 'Yes'; +$lang->team->limited = 'limited User'; +$lang->team->limitedList['no'] = 'No'; +$lang->team->limitedList['yes'] = 'Yes'; $lang->project->basicInfo = 'Basic Info'; $lang->project->otherInfo = 'Other Info'; diff --git a/module/project/lang/zh-cn.php b/module/project/lang/zh-cn.php index df1b12ef12..3d90bff877 100644 --- a/module/project/lang/zh-cn.php +++ b/module/project/lang/zh-cn.php @@ -82,9 +82,9 @@ $lang->team->hours = '可用工时/天'; $lang->team->days = '可用工日'; $lang->team->totalHours = '总计'; -$lang->team->limitedUser = '受限用户'; -$lang->team->limitedUserList['no'] = '否'; -$lang->team->limitedUserList['yes'] = '是'; +$lang->team->limited = '受限用户'; +$lang->team->limitedList['no'] = '否'; +$lang->team->limitedList['yes'] = '是'; $lang->project->basicInfo = '基本信息'; $lang->project->otherInfo = '其他信息'; diff --git a/module/project/lang/zh-tw.php b/module/project/lang/zh-tw.php index 92ef1da122..b534e98c07 100644 --- a/module/project/lang/zh-tw.php +++ b/module/project/lang/zh-tw.php @@ -82,9 +82,9 @@ $lang->team->hours = '可用工時/天'; $lang->team->days = '可用工日'; $lang->team->totalHours = '總計'; -$lang->team->limitedUser = '受限用戶'; -$lang->team->limitedUserList['no'] = '否'; -$lang->team->limitedUserList['yes'] = '是'; +$lang->team->limited = '受限用戶'; +$lang->team->limitedList['no'] = '否'; +$lang->team->limitedList['yes'] = '是'; $lang->project->basicInfo = '基本信息'; $lang->project->otherInfo = '其他信息'; diff --git a/module/project/model.php b/module/project/model.php index 47d83fc054..cf48b94c57 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -1570,10 +1570,10 @@ class projectModel extends model if(empty($account)) continue; $member = new stdclass(); - $member->role = $roles[$key]; - $member->days = $days[$key]; - $member->hours = $hours[$key]; - $member->limitedUser = $limitedUser[$key]; + $member->role = $roles[$key]; + $member->days = $days[$key]; + $member->hours = $hours[$key]; + $member->limited = $limited[$key]; $mode = $modes[$key]; if($mode == 'update') @@ -1980,7 +1980,7 @@ class projectModel extends model if($this->app->user->admin) return true; /* Get all teams of all projects and group by projects, save it as static. */ - $projects = $this->dao->select('project, limitedUser')->from(TABLE_TEAM)->where('account')->eq($this->app->user->account)->andWhere('limitedUser')->eq('yes')->orderBy('project asc')->fetchPairs('project', 'project'); + $projects = $this->dao->select('project, limited')->from(TABLE_TEAM)->where('account')->eq($this->app->user->account)->andWhere('limited')->eq('yes')->orderBy('project asc')->fetchPairs('project', 'project'); $_SESSION['limitedProjects'] = join(',', $projects); } diff --git a/module/project/view/grouptask.html.php b/module/project/view/grouptask.html.php index 6a9c865a49..eec67d5780 100644 --- a/module/project/view/grouptask.html.php +++ b/module/project/view/grouptask.html.php @@ -39,7 +39,7 @@ task->estimateAB;?> task->consumedAB;?> task->leftAB;?> - task->progess;?> + task->progress;?> typeAB;?> actions;?> @@ -125,7 +125,7 @@ estimate;?> consumed;?> left;?> - progess . '%';?> + progress . '%';?> task->typeList[$task->type];?> id", '', 'list');?> @@ -149,7 +149,7 @@ estimate;?> consumed;?> left;?> - progess . '%';?> + progress . '%';?> task->typeList[$child->type];?> id", '', 'list');?> diff --git a/module/project/view/managemembers.html.php b/module/project/view/managemembers.html.php index 58a1112c82..b0eb512fcb 100644 --- a/module/project/view/managemembers.html.php +++ b/module/project/view/managemembers.html.php @@ -41,7 +41,7 @@ team->role;?> team->days;?> team->hours;?> - team->limitedUser;?> + team->limited;?> actions;?> delete;?> @@ -59,7 +59,7 @@ - team->limitedUserList, $member->limitedUser);?> + team->limitedList, $member->limited);?> @@ -75,7 +75,7 @@ - team->limitedUserList, 'no');?> + team->limitedList, 'no');?> @@ -92,7 +92,7 @@ - team->limitedUserList, 'no');?> + team->limitedList, 'no');?> @@ -109,7 +109,7 @@ - team->limitedUserList, 'no');?> + team->limitedList, 'no');?> @@ -136,7 +136,7 @@ - team->limitedUserList, $member->realname ? $member->limitedUser : 'no');?> + team->limitedList, $member->realname ? $member->limited : 'no');?> diff --git a/module/project/view/team.html.php b/module/project/view/team.html.php index 0857965a6a..0e48e0dd45 100644 --- a/module/project/view/team.html.php +++ b/module/project/view/team.html.php @@ -41,7 +41,7 @@ team->days;?> team->hours;?> team->totalHours;?> - team->limitedUser;?> + team->limited;?> actions;?> @@ -61,7 +61,7 @@ days . $lang->project->day;?> hours . $lang->project->workHour;?> project->workHour;?> - team->limitedUserList[$member->limitedUser];?> + team->limitedList[$member->limited];?> task->estimateAB;?> task->consumedAB;?> task->leftAB;?> - task->progess;?> + task->progress;?> @@ -35,7 +35,7 @@ include '../../common/view/chart.html.php'; estimate;?> consumed;?> left;?> -
+
diff --git a/module/task/config.php b/module/task/config.php index 4c96a6604c..e0878a4526 100644 --- a/module/task/config.php +++ b/module/task/config.php @@ -29,7 +29,7 @@ $config->task->editor->cancel = array('id' => 'comment', 'tools' => 'simpleToo $config->task->editor->pause = array('id' => 'comment', 'tools' => 'simpleTools'); $config->task->exportFields = ' - id, project, module, progess, story, + id, project, module, progress, story, name, desc, type, pri,estStarted, realStarted, deadline, status,estimate, consumed, left, mailto, @@ -99,11 +99,11 @@ $config->task->datatable->fieldList['left']['fixed'] = 'no'; $config->task->datatable->fieldList['left']['width'] = '40'; $config->task->datatable->fieldList['left']['required'] = 'no'; -$config->task->datatable->fieldList['progess']['title'] = 'progess'; -$config->task->datatable->fieldList['progess']['fixed'] = 'no'; -$config->task->datatable->fieldList['progess']['width'] = '40'; -$config->task->datatable->fieldList['progess']['required'] = 'no'; -$config->task->datatable->fieldList['progess']['sort'] = 'no'; +$config->task->datatable->fieldList['progress']['title'] = 'progress'; +$config->task->datatable->fieldList['progress']['fixed'] = 'no'; +$config->task->datatable->fieldList['progress']['width'] = '40'; +$config->task->datatable->fieldList['progress']['required'] = 'no'; +$config->task->datatable->fieldList['progress']['sort'] = 'no'; $config->task->datatable->fieldList['deadline']['title'] = 'deadlineAB'; $config->task->datatable->fieldList['deadline']['fixed'] = 'no'; diff --git a/module/task/control.php b/module/task/control.php index 83022205b5..125549f2cd 100644 --- a/module/task/control.php +++ b/module/task/control.php @@ -1194,21 +1194,21 @@ class task extends control foreach($tasks as $key => $task) { - /* Compute task progess. */ + /* Compute task progress. */ if($task->consumed == 0 and $task->left == 0) { - $task->progess = 0; + $task->progress = 0; } elseif($task->consumed != 0 and $task->left == 0) { - $task->progess = 100; + $task->progress = 100; } else { - $task->progess = round($task->consumed / ($task->consumed + $task->left), 2) * 100; + $task->progress = round($task->consumed / ($task->consumed + $task->left), 2) * 100; } - $task->progess .= '%'; + $task->progress .= '%'; $tasks[$key] = $task; diff --git a/module/task/lang/en.php b/module/task/lang/en.php index 2a00d5eeb1..14d7ad7482 100644 --- a/module/task/lang/en.php +++ b/module/task/lang/en.php @@ -35,8 +35,8 @@ $lang->task->reportChart = "Report Chart"; $lang->task->fromBug = 'From Bug'; $lang->task->case = 'Related Case'; $lang->task->confirmStoryChange = "Confirm Story Change"; -$lang->task->progess = 'Progess'; -$lang->task->progessTips = 'Consumed/(Consumed+Remained)'; +$lang->task->progress = 'Progress'; +$lang->task->progressTips = 'Consumed/(Consumed+Remained)'; $lang->task->copy = 'Duplicate a Task'; $lang->task->common = 'Task'; diff --git a/module/task/lang/zh-cn.php b/module/task/lang/zh-cn.php index 5911648407..2b0fd40a0e 100644 --- a/module/task/lang/zh-cn.php +++ b/module/task/lang/zh-cn.php @@ -35,8 +35,8 @@ $lang->task->reportChart = "报表统计"; $lang->task->fromBug = '来源Bug'; $lang->task->case = '相关用例'; $lang->task->confirmStoryChange = "确认需求变动"; -$lang->task->progess = '进度'; -$lang->task->progessTips = '已消耗/(已消耗+剩余)'; +$lang->task->progress = '进度'; +$lang->task->progressTips = '已消耗/(已消耗+剩余)'; $lang->task->copy = '复制任务'; $lang->task->common = '任务'; diff --git a/module/task/lang/zh-tw.php b/module/task/lang/zh-tw.php index af0beb0faf..898d94878b 100644 --- a/module/task/lang/zh-tw.php +++ b/module/task/lang/zh-tw.php @@ -35,8 +35,8 @@ $lang->task->reportChart = "報表統計"; $lang->task->fromBug = '來源Bug'; $lang->task->case = '相關用例'; $lang->task->confirmStoryChange = "確認需求變動"; -$lang->task->progess = '進度'; -$lang->task->progessTips = '已消耗/(已消耗+剩餘)'; +$lang->task->progress = '進度'; +$lang->task->progressTips = '已消耗/(已消耗+剩餘)'; $lang->task->copy = '複製任務'; $lang->task->common = '任務'; diff --git a/module/task/model.php b/module/task/model.php index a269c2e173..e339950407 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -31,8 +31,10 @@ class taskModel extends model ->setDefault('status', 'wait') ->setIF($this->post->estimate != false, 'left', $this->post->estimate) ->setIF($this->post->story != false, 'storyVersion', $this->loadModel('story')->getVersion($this->post->story)) - ->setIF(strpos($this->config->task->create->requiredFields, 'estStarted') === false, 'estStarted', '0000-00-00') - ->setIF(strpos($this->config->task->create->requiredFields, 'deadline') === false, 'deadline', '0000-00-00') + ->setDefault('estStarted', '0000-00-00') + ->setDefault('deadline', '0000-00-00') + ->setIF(strpos($this->config->task->create->requiredFields, 'estStarted') !== false, 'estStarted', $this->post->estStarted) + ->setIF(strpos($this->config->task->create->requiredFields, 'deadline') !== false, 'deadline', $this->post->deadline) ->setDefault('openedBy', $this->app->user->account) ->setDefault('openedDate', helper::now()) ->stripTags($this->config->task->editor->create['id'], $this->config->allowedTags) @@ -314,8 +316,10 @@ class taskModel extends model $now = helper::now(); $task = fixer::input('post') ->setDefault('story, estimate, left, consumed', 0) - ->setIF(strpos($this->config->task->edit->requiredFields, 'estStarted') === false, 'estStarted', '0000-00-00') - ->setIF(strpos($this->config->task->edit->requiredFields, 'deadline') === false, 'deadline', '0000-00-00') + ->setDefault('estStarted', '0000-00-00') + ->setDefault('deadline', '0000-00-00') + ->setIF(strpos($this->config->task->edit->requiredFields, 'estStarted') !== false, 'estStarted', $this->post->estStarted) + ->setIF(strpos($this->config->task->edit->requiredFields, 'deadline') !== false, 'deadline', $this->post->deadline) ->setIF($this->post->story != false and $this->post->story != $oldTask->story, 'storyVersion', $this->loadModel('story')->getVersion($this->post->story)) ->setIF($this->post->status == 'done', 'left', 0) @@ -1357,18 +1361,18 @@ class taskModel extends model foreach($tasks as $task) { - /* Compute task progess. */ + /* Compute task progress. */ if($task->consumed == 0 and $task->left == 0) { - $task->progess = 0; + $task->progress = 0; } elseif($task->consumed != 0 and $task->left == 0) { - $task->progess = 100; + $task->progress = 100; } else { - $task->progess = round($task->consumed / ($task->consumed + $task->left), 2) * 100; + $task->progress = round($task->consumed / ($task->consumed + $task->left), 2) * 100; } } @@ -1581,18 +1585,18 @@ class taskModel extends model /* Set closed realname. */ if($task->assignedTo == 'closed') $task->assignedToRealName = 'Closed'; - /* Compute task progess. */ + /* Compute task progress. */ if($task->consumed == 0 and $task->left == 0) { - $task->progess = 0; + $task->progress = 0; } elseif($task->consumed != 0 and $task->left == 0) { - $task->progess = 100; + $task->progress = 100; } else { - $task->progess = round($task->consumed / ($task->consumed + $task->left), 2) * 100; + $task->progress = round($task->consumed / ($task->consumed + $task->left), 2) * 100; } return $task; @@ -2061,8 +2065,8 @@ class taskModel extends model case 'left': echo round($task->left, 1); break; - case 'progess': - echo "{$task->progess}%"; + case 'progress': + echo "{$task->progress}%"; break; case 'deadline': if(substr($task->deadline, 0, 4) > 0) echo substr($task->deadline, 5, 6); diff --git a/module/testtask/model.php b/module/testtask/model.php index 98917be2ce..36fed2da76 100644 --- a/module/testtask/model.php +++ b/module/testtask/model.php @@ -99,17 +99,17 @@ class testtaskModel extends model */ public function getProductTasks($productID, $branch = 0, $orderBy = 'id_desc', $pager = null, $scopeAndStatus = array(), $beginTime = 0, $endTime = 0) { - $projects = $this->loadModel('project')->getPairs(); + if($scopeAndStatus[0] == 'all') $products = $this->loadModel('product')->getPairs(); if($this->config->global->flow == 'onlyTest') { - return $this->dao->select("t1.*, t2.name AS productName, t4.name AS buildName, t4.branch AS branch") + return $this->dao->select("t1.*, t2.name AS productName,t4.name AS buildName, t4.branch AS branch") ->from(TABLE_TESTTASK)->alias('t1') ->leftJoin(TABLE_PRODUCT)->alias('t2')->on('t1.product = t2.id') ->leftJoin(TABLE_BUILD)->alias('t4')->on('t1.build = t4.id') ->where('t1.deleted')->eq(0) - ->andWhere('t2.id')->in(array_keys($projects)) ->beginIF($scopeAndStatus[0] == 'local')->andWhere('t1.product')->eq((int)$productID)->fi() - ->beginIF($scopeAndStatus[1] == 'totalStatus')->andWhere('t1.status')->in(array('blocked','doing','wait','done'))->fi() + ->beginIF($scopeAndStatus[0] == 'all')->andWhere('t1.product')->in(array_keys($products))->fi() + ->beginIF($scopeAndStatus[1] == 'totalStatus')->andWhere('t1.status')->in(('blocked,doing,wait,done'))->fi() ->beginIF($scopeAndStatus[1] != 'totalStatus')->andWhere('t1.status')->eq($scopeAndStatus[1])->fi() ->beginIF($branch)->andWhere("t4.branch = '$branch'")->fi() ->orderBy($orderBy) @@ -118,7 +118,8 @@ class testtaskModel extends model } else { - $testTask = $this->dao->select("t1.*, t2.name AS productName, t3.name AS projectName, t4.name AS buildName, if(t4.name != '', t4.branch, t5.branch) AS branch") + $projects = $this->loadModel('project')->getPairs(); + return $this->dao->select("t1.*, t2.name AS productName, t3.name AS projectName, t4.name AS buildName, if(t4.name != '', t4.branch, t5.branch) AS branch") ->from(TABLE_TESTTASK)->alias('t1') ->leftJoin(TABLE_PRODUCT)->alias('t2')->on('t1.product = t2.id') ->leftJoin(TABLE_PROJECT)->alias('t3')->on('t1.project = t3.id') @@ -129,6 +130,7 @@ class testtaskModel extends model ->andWhere('t5.product = t1.product') ->andWhere('t3.id')->in(array_keys($projects)) ->beginIF($scopeAndStatus[0] == 'local')->andWhere('t1.product')->eq((int)$productID)->fi() + ->beginIF($scopeAndStatus[0] == 'all')->andWhere('t1.product')->in(array_keys($products))->fi() ->beginIF($scopeAndStatus[1] == 'totalStatus')->andWhere('t1.status')->in('blocked,doing,wait,done')->fi() ->beginIF($scopeAndStatus[1] != 'totalStatus')->andWhere('t1.status')->eq($scopeAndStatus[1])->fi() ->beginIF($branch)->andWhere("if(t4.branch, t4.branch, t5.branch) = '$branch'")->fi() @@ -137,9 +139,6 @@ class testtaskModel extends model ->orderBy($orderBy) ->page($pager) ->fetchAll('id'); - - $projectTeam = $this->dao->select('project, account')->from(TABLE_TEAM)->where('account')->eq($this->app->user->account)->fetchAll('project'); - return $testTask; } } diff --git a/module/tutorial/model.php b/module/tutorial/model.php index 8f1b358f83..dc5ca1866e 100644 --- a/module/tutorial/model.php +++ b/module/tutorial/model.php @@ -211,7 +211,7 @@ class tutorialModel extends model $member->hours = 7.0; $member->totalHours = 70.0; $member->realname = $this->app->user->realname; - $member->limitedUser = 'no'; + $member->limited = 'no'; return array($member->account => $member); }