* + score model
This commit is contained in:
@@ -131,6 +131,7 @@ class block extends control
|
||||
$this->dao->delete()->from(TABLE_BLOCK)->where('`id`')->eq($id)->andWhere('account')->eq($this->app->user->account)->andWhere('module')->eq($module)->exec();
|
||||
}
|
||||
if(dao::isError()) $this->send(array('result' => 'fail', 'message' => dao::getError()));
|
||||
$this->loadModel('score')->score('block', 'set');
|
||||
$this->send(array('result' => 'success'));
|
||||
}
|
||||
|
||||
@@ -157,6 +158,7 @@ class block extends control
|
||||
}
|
||||
|
||||
if(dao::isError()) $this->send(array('result' => 'fail'));
|
||||
$this->loadModel('score')->score('block', 'set');
|
||||
$this->send(array('result' => 'success'));
|
||||
}
|
||||
|
||||
|
||||
@@ -50,6 +50,7 @@ class blockModel extends model
|
||||
|
||||
$data->params = helper::jsonEncode($data->params);
|
||||
$this->dao->replace(TABLE_BLOCK)->data($data)->exec();
|
||||
$this->loadModel('score')->score('block', 'set');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -85,6 +85,7 @@ class bugModel extends model
|
||||
$bugID = $this->dao->lastInsertID();
|
||||
$this->file->updateObjectID($this->post->uid, $bugID, 'bug');
|
||||
$this->file->saveUpload('bug', $bugID);
|
||||
empty($bug->case) ? $this->loadModel('score')->score('bug', 'create', $bugID) : $this->loadModel('score')->score('bug', 'createFormCase', $bug->case);
|
||||
return array('status' => 'created', 'id' => $bugID);
|
||||
}
|
||||
return false;
|
||||
@@ -199,7 +200,7 @@ class bugModel extends model
|
||||
|
||||
$this->dao->insert(TABLE_BUG)->data($bug)->autoCheck()->batchCheck($this->config->bug->create->requiredFields, 'notempty')->exec();
|
||||
$bugID = $this->dao->lastInsertID();
|
||||
|
||||
$this->loadModel('score')->score('bug', 'create', $bugID);
|
||||
if(!empty($data->uploadImage[$i]) and !empty($file))
|
||||
{
|
||||
$file['objectType'] = 'bug';
|
||||
@@ -223,7 +224,7 @@ class bugModel extends model
|
||||
if(is_dir($realPath)) $classFile->removeDir($realPath);
|
||||
unset($_SESSION['bugImagesFile']);
|
||||
}
|
||||
|
||||
$this->loadModel('score')->score('ajax', 'batchCreate');
|
||||
return $actions;
|
||||
}
|
||||
|
||||
@@ -654,7 +655,7 @@ class bugModel extends model
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->loadModel('score')->score('ajax', 'batchEdit');
|
||||
return $allChanges;
|
||||
}
|
||||
|
||||
@@ -758,6 +759,7 @@ class bugModel extends model
|
||||
->get();
|
||||
|
||||
$this->dao->update(TABLE_BUG)->data($bug)->where('id')->eq($bugID)->exec();
|
||||
$this->loadModel('score')->score('bug', 'confirmBug', $oldBug);
|
||||
|
||||
if(!dao::isError()) return common::createChanges($oldBug, $bug);
|
||||
}
|
||||
@@ -846,7 +848,7 @@ class bugModel extends model
|
||||
->checkIF($bug->resolution == 'fixed', 'resolvedBuild','notempty')
|
||||
->where('id')->eq((int)$bugID)
|
||||
->exec();
|
||||
|
||||
$this->loadModel('score')->score('bug', 'resolve', $oldBug);
|
||||
/* Link bug to build and release. */
|
||||
$this->linkBugToBuild($bugID, $bug->resolvedBuild);
|
||||
}
|
||||
@@ -1853,6 +1855,7 @@ class bugModel extends model
|
||||
|
||||
$condition = "`type`='bug' and account='{$this->app->user->account}'";
|
||||
$this->dao->insert(TABLE_USERTPL)->data($template)->batchCheck('title, content', 'notempty')->check('title', 'unique', $condition)->exec();
|
||||
$this->loadModel('score')->score('bug', 'saveTplModal', $this->dao->lastInsertID());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -213,6 +213,7 @@ class buildModel extends model
|
||||
$buildID = $this->dao->lastInsertID();
|
||||
$this->file->updateObjectID($this->post->uid, $buildID, 'build');
|
||||
$this->file->saveUpload('build', $buildID);
|
||||
$this->loadModel('score')->score('build', 'create', $buildID);
|
||||
return $buildID;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -151,6 +151,7 @@ class productplanModel extends model
|
||||
{
|
||||
$planID = $this->dao->lastInsertID();
|
||||
$this->file->updateObjectID($this->post->uid, $planID, 'plan');
|
||||
$this->loadModel('score')->score('productplan', 'create', $planID);
|
||||
return $planID;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -291,7 +291,7 @@ class projectModel extends model
|
||||
$lib->main = '1';
|
||||
$lib->acl = $project->acl == 'open' ? 'open' : 'private';
|
||||
$this->dao->insert(TABLE_DOCLIB)->data($lib)->exec();
|
||||
|
||||
$this->loadModel('score')->score('project', 'create', $projectID);
|
||||
return $projectID;
|
||||
}
|
||||
}
|
||||
@@ -537,7 +537,7 @@ class projectModel extends model
|
||||
->autoCheck()
|
||||
->where('id')->eq((int)$projectID)
|
||||
->exec();
|
||||
|
||||
$this->loadModel('score')->score('project', 'close', $oldProject);
|
||||
if(!dao::isError()) return common::createChanges($oldProject, $project);
|
||||
}
|
||||
|
||||
|
||||
@@ -145,6 +145,7 @@ class releaseModel extends model
|
||||
$releaseID = $this->dao->lastInsertID();
|
||||
$this->file->updateObjectID($this->post->uid, $releaseID, 'release');
|
||||
$this->file->saveUpload('release', $releaseID);
|
||||
$this->loadModel('score')->score('release', 'create', $releaseID);
|
||||
if(!dao::isError()) return $releaseID;
|
||||
}
|
||||
|
||||
|
||||
+23
-18
@@ -15,36 +15,41 @@ $config->score->model['ajax']['lastNext'] = array('num' => 1, 'time' =>
|
||||
$config->score->model['ajax']['switchToDataTable'] = array('num' => 1, 'time' => 0, 'score' => 1, 'other' => '');
|
||||
$config->score->model['ajax']['submitPage'] = array('num' => 1, 'time' => 0, 'score' => 1, 'other' => '');
|
||||
$config->score->model['ajax']['customMenu'] = array('num' => 1, 'time' => 0, 'score' => 1, 'other' => '');
|
||||
$config->score->model['ajax']['quickDump'] = array('num' => 1, 'time' => 0, 'score' => 10, 'other' => '');
|
||||
$config->score->model['ajax']['batchCreate'] = array('num' => 1, 'time' => 0, 'score' => 20, 'other' => '');
|
||||
$config->score->model['ajax']['batchEdit'] = array('num' => 1, 'time' => 0, 'score' => 20, 'other' => '');
|
||||
|
||||
$config->score->model['doc']['create'] = array('num' => 0, 'time' => 0, 'score' => 5, 'other' => '');
|
||||
$config->score->model['doc']['create'] = array('num' => 0, 'time' => 0, 'score' => 1, 'other' => '');
|
||||
|
||||
$config->score->model['todo']['create'] = array('num' => 5, 'time' => 24, 'score' => 1, 'other' => '');
|
||||
|
||||
$config->score->model['story']['create'] = array('num' => 0, 'time' => 0, 'score' => 1, 'other' => '');
|
||||
$config->score->model['story']['close'] = array('num' => 0, 'time' => 0, 'score' => 1, 'other' => array('createID' => 2));//每个需求被完成关闭,需求的创建者额外增加2分,关闭者增加1分
|
||||
|
||||
$config->score->model['task']['create'] = array('num' => 0, 'time' => 0, 'score' => 1, 'other' => '');
|
||||
$config->score->model['task']['close'] = array('num' => 0, 'time' => 0, 'score' => 1, 'other' => '');
|
||||
$config->score->model['task']['finish'] = array('num' => 0, 'time' => 0, 'score' => 1, 'other' => array(1 => 2, 2 => 1, 3 => 0));
|
||||
|
||||
$config->score->model['block']['admin'] = array(1, 0, 20, '');
|
||||
$config->score->model['bug']['create'] = array('num' => 0, 'time' => 0, 'score' => 1, 'other' => '');
|
||||
$config->score->model['bug']['confirmBug'] = array('num' => 0, 'time' => 0, 'score' => 1, 'other' => array(1 => 3, 2 => 2, 3 => 1));
|
||||
$config->score->model['bug']['createFormCase'] = array('num' => 0, 'time' => 0, 'score' => 1, 'other' => '');
|
||||
$config->score->model['bug']['resolve'] = array('num' => 0, 'time' => 0, 'score' => 1, 'other' => array(1 => 3, 2 => 2, 3 => 1));
|
||||
$config->score->model['bug']['saveTplModal'] = array('num' => 0, 'time' => 0, 'score' => 20, 'other' => '');
|
||||
|
||||
$config->score->model['bug']['saveTplModal'] = array(1, 0, 20, '');
|
||||
$config->score->model['testTask']['runCase'] = array('num' => 0, 'time' => 0, 'score' => 1, 'other' => '');
|
||||
|
||||
$config->score->model['testcase']['create'] = array('num' => 0, 'time' => 0, 'score' => 1, 'other' => '');
|
||||
|
||||
$config->score->model['search']['saveQuery'] = array(1, 0, 1, '');
|
||||
$config->score->model['search']['saveQueryAdvanced'] = array(1, 0, 1, '');
|
||||
$config->score->model['build']['create'] = array('num' => 0, 'time' => 0, 'score' => 10, 'other' => '');
|
||||
|
||||
$config->score->model['project']['create'] = array('num' => 0, 'time' => 0, 'score' => 10, 'other' => '');
|
||||
$config->score->model['project']['close'] = array('num' => 0, 'time' => 0, 'score' => 0, 'other' => array('manager' => array(20, 10), 'member' => array(5, 5)));
|
||||
|
||||
$config->score->model['task']['create'] = array(0, 0, 1, '');//任务
|
||||
$config->score->model['bug']['create'] = array(0, 0, 1, '');//bug 有效之后,额外增加严重程度积分:s1 + 3, s2 + 2, s3 + 1
|
||||
$config->score->model['productplan']['create'] = array('num' => 0, 'time' => 0, 'score' => 10, 'other' => '');
|
||||
|
||||
$config->score->model['testcase']['create'] = array(0, 0, 1, '');//用例
|
||||
$config->score->model['release']['create'] = array('num' => 0, 'time' => 0, 'score' => 10, 'other' => '');
|
||||
|
||||
//每完成一个任务,增加初始积分1 + 工时积分round(工时 /10 * 预计 / 消耗) + 优先级积分(p1 2, p2, 1) 如果任务取消了,没有积分。
|
||||
$config->score->model['task']['finish'] = array(0, 0, 1, array('time' => '#time#/10 * #estimate# / #consumed#', 'pri' => array(0 => 0, 1 => 2, 2 => 1, 3 => 0)));//关闭一个任务,关闭者增加一个积分。
|
||||
$config->score->model['task']['close'] = array(0, 0, 1, '');//关闭一个任务,关闭者增加一个积分。
|
||||
$config->score->model['bug']['resolve'] = array(0, 0, 1, '');//解决一个bug,额外增加解决bug积分:s1 + 3, s2 + 2, s3 + 1
|
||||
$config->score->model['testcase']['runCase'] = array(0, 0, 1, '');//每执行一次用例,加1分
|
||||
$config->score->model['bug']['createFormCase'] = array(0, 0, 1, '');//从用例创建bug,用例的创建者加1分
|
||||
$config->score->model['project']['build'] = array(0, 0, 10, '');//创建一个build,创建者增加10个积分
|
||||
$config->score->model['project']['create'] = array(0, 0, 10, '');//创建一个项目,创建者增加10个积分
|
||||
$config->score->model['productplan']['create'] = array(0, 0, 10, '');//创建一个计划,创建者增加10个积分
|
||||
$config->score->model['release']['create'] = array(0, 0, 10, '');//创建一个发布,创建者增加10个积分
|
||||
$config->score->model['block']['set'] = array('num' => 1, 'time' => 0, 'score' => 20, 'other' => '');
|
||||
|
||||
$config->score->model['search']['saveQuery'] = array('num' => 1, 'time' => 0, 'score' => 1, 'other' => '');
|
||||
$config->score->model['search']['saveQueryAdvanced'] = array('num' => 1, 'time' => 0, 'score' => 1, 'other' => '');
|
||||
|
||||
+51
-25
@@ -16,29 +16,55 @@ $lang->score->time = '时间';
|
||||
$lang->score->desc = '描述';
|
||||
|
||||
|
||||
$lang->score->models['task'] = '任务';
|
||||
$lang->score->models['tutorial'] = '新手教程';
|
||||
$lang->score->models['user'] = '用户';
|
||||
$lang->score->models['ajax'] = 'UI';
|
||||
$lang->score->models['doc'] = '文档';
|
||||
$lang->score->models['todo'] = '待办';
|
||||
$lang->score->models['story'] = '需求';
|
||||
$lang->score->models['task'] = '任务';
|
||||
$lang->score->models['tutorial'] = '新手教程';
|
||||
$lang->score->models['user'] = '用户';
|
||||
$lang->score->models['ajax'] = '';
|
||||
$lang->score->models['doc'] = '文档';
|
||||
$lang->score->models['todo'] = '待办';
|
||||
$lang->score->models['story'] = '需求';
|
||||
$lang->score->models['bug'] = 'Bug';
|
||||
$lang->score->models['testTask'] = '用例';
|
||||
$lang->score->models['build'] = 'Build';
|
||||
$lang->score->models['project'] = '项目';
|
||||
$lang->score->models['productplan'] = '计划';
|
||||
$lang->score->models['release'] = '发布';
|
||||
$lang->score->models['block'] = '区块';
|
||||
$lang->score->models['search'] = '搜索';
|
||||
|
||||
|
||||
$lang->score->methods['task']['create'] = '创建任务';
|
||||
$lang->score->methods['tutorial']['keepAll'] = '任务完成';
|
||||
$lang->score->methods['user']['login'] = '登录';
|
||||
$lang->score->methods['user']['changePassword'] = '修改密码';
|
||||
$lang->score->methods['user']['editProfile'] = '修改个人资料';
|
||||
$lang->score->methods['ajax']['selectTheme'] = '切换主题';
|
||||
$lang->score->methods['ajax']['selectLang'] = '切换语言';
|
||||
$lang->score->methods['ajax']['showSearchMenu'] = '搜索高级用法';
|
||||
$lang->score->methods['ajax']['customMenu'] = '自定义菜单';
|
||||
$lang->score->methods['ajax']['dragSelected'] = '列表页面拖动选中';
|
||||
$lang->score->methods['ajax']['lastNext'] = '快捷键翻页';
|
||||
$lang->score->methods['ajax']['switchToDataTable'] = '使用高级表格';
|
||||
$lang->score->methods['ajax']['submitPage'] = '修改分页数量';
|
||||
$lang->score->methods['doc']['create'] = '创建文档';
|
||||
$lang->score->methods['todo']['create'] = '创建待办';
|
||||
$lang->score->methods['story']['create'] = '创建需求';
|
||||
$lang->score->methods['story']['close'] = '需求关闭';
|
||||
$lang->score->methods['task']['create'] = '创建任务';
|
||||
$lang->score->methods['task']['close'] = '关闭任务';
|
||||
$lang->score->methods['task']['finish'] = '完成任务';
|
||||
$lang->score->methods['tutorial']['keepAll'] = '学习完成';
|
||||
$lang->score->methods['user']['login'] = '登录';
|
||||
$lang->score->methods['user']['changePassword'] = '修改密码';
|
||||
$lang->score->methods['user']['editProfile'] = '修改个人资料';
|
||||
$lang->score->methods['ajax']['selectTheme'] = '切换主题';
|
||||
$lang->score->methods['ajax']['selectLang'] = '切换语言';
|
||||
$lang->score->methods['ajax']['showSearchMenu'] = '搜索高级用法';
|
||||
$lang->score->methods['ajax']['customMenu'] = '自定义菜单';
|
||||
$lang->score->methods['ajax']['dragSelected'] = '列表页面拖动选中';
|
||||
$lang->score->methods['ajax']['lastNext'] = '快捷键翻页';
|
||||
$lang->score->methods['ajax']['switchToDataTable'] = '使用高级表格';
|
||||
$lang->score->methods['ajax']['submitPage'] = '修改分页数量';
|
||||
$lang->score->methods['ajax']['quickDump'] = '使用快速跳转';
|
||||
$lang->score->methods['ajax']['batchCreate'] = '首次使用批量添加';
|
||||
$lang->score->methods['ajax']['batchEdit'] = '首次使用批量编辑';
|
||||
$lang->score->methods['doc']['create'] = '创建文档';
|
||||
$lang->score->methods['todo']['create'] = '创建待办';
|
||||
$lang->score->methods['story']['create'] = '创建需求';
|
||||
$lang->score->methods['story']['close'] = '需求关闭';
|
||||
$lang->score->methods['bug']['create'] = '创建Bug';
|
||||
$lang->score->methods['bug']['confirmBug'] = '确认Bug';
|
||||
$lang->score->methods['bug']['createFormCase'] = '从用例创建';
|
||||
$lang->score->methods['bug']['resolve'] = '解决Bug';
|
||||
$lang->score->methods['bug']['saveTplModal'] = '保存模板';
|
||||
$lang->score->methods['testTask']['runCase'] = '执行用例';
|
||||
$lang->score->methods['build']['create'] = '创建版本';
|
||||
$lang->score->methods['project']['create'] = '创建项目';
|
||||
$lang->score->methods['project']['close'] = '项目完成';
|
||||
$lang->score->methods['productplan']['create'] = '创建计划';
|
||||
$lang->score->methods['release']['create'] = '创建发布';
|
||||
$lang->score->methods['block']['set'] = '区块自定义设置';
|
||||
$lang->score->methods['search']['saveQuery'] = '保存搜索条件';
|
||||
$lang->score->methods['search']['saveQueryAdvanced'] = '使用高级搜索';
|
||||
|
||||
+81
-5
@@ -37,7 +37,8 @@ class scoreModel extends model
|
||||
{
|
||||
if(empty($this->config->score->model[$model][$method])) return true;
|
||||
$rule = $this->config->score->model[$model][$method];
|
||||
$desc = $this->lang->score->methods[$model][$method];
|
||||
$desc = $this->lang->score->models[$model];
|
||||
$user = $this->app->user->account;
|
||||
switch($model)
|
||||
{
|
||||
case 'user':
|
||||
@@ -49,13 +50,13 @@ class scoreModel extends model
|
||||
}
|
||||
break;
|
||||
case 'doc':
|
||||
if($method == 'create') $desc = $this->lang->score->models[$model] . 'ID:' . $param;
|
||||
if($method == 'create') $desc .= 'ID:' . $param;
|
||||
break;
|
||||
case 'todo':
|
||||
if($method == 'create') $desc = $this->lang->score->methods[$model][$method] . 'ID:' . $param;
|
||||
if($method == 'create') $desc .= 'ID:' . $param;
|
||||
break;
|
||||
case 'story':
|
||||
$desc = $this->lang->score->methods[$model][$method] . 'ID:' . $param;
|
||||
$desc .= 'ID:' . $param;
|
||||
if($method == 'close')
|
||||
{
|
||||
$createUser = $this->dao->findById($param)->from(TABLE_STORY)->fetch();
|
||||
@@ -68,8 +69,83 @@ class scoreModel extends model
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'task':
|
||||
$desc .= 'ID:' . $param;
|
||||
if($method == 'finish')
|
||||
{
|
||||
$desc = $this->lang->score->methods[$model][$method] . 'ID:' . $param;
|
||||
//每完成一个任务,增加初始积分1 + 工时积分round(工时 /10 * 预计 / 消耗) + 优先级积分(p1 2, p2, 1) 如果任务取消了,没有积分。
|
||||
$task = $this->loadModel('task')->getById($param);
|
||||
if(!empty($rule['other'][$task->pri])) $rule['score'] = $rule['score'] + $rule['other'][$task->pri];
|
||||
if(!empty($task->estimate)) $rule['score'] = $rule['score'] + round(($task->consumed / 10 * $task->estimate / $task->consumed), 1);
|
||||
}
|
||||
break;
|
||||
case 'bug':
|
||||
$desc .= 'ID:' . $param;
|
||||
if($method == 'createFormCase')
|
||||
{
|
||||
$desc = $this->lang->score->models['testcase'] . 'ID:' . $param;
|
||||
$caseUser = $this->dao->findById($param)->from(TABLE_CASE)->fetch();
|
||||
if(!empty($caseUser))
|
||||
{
|
||||
$user = $caseUser->openedBy;
|
||||
}
|
||||
}
|
||||
if($method == 'saveTplModal') $desc = $this->lang->score->methods[$model][$method] . 'ID:' . $param;
|
||||
if($method == 'confirmBug')
|
||||
{
|
||||
$user = $param->openedBy;
|
||||
if(!empty($rule['other'][$param->severity])) $rule['score'] = $rule['score'] + $rule['other'][$param->severity];
|
||||
}
|
||||
if($method == 'resolve' && !empty($rule['other'][$param->severity])) $rule['score'] = $rule['score'] + $rule['other'][$param->severity];
|
||||
break;
|
||||
case 'testTask':
|
||||
if($method == 'runCase') $desc = $this->lang->score->methods[$model][$method] . 'ID:' . $param;
|
||||
break;
|
||||
case 'build':
|
||||
if($method == 'create') $desc .= 'ID:' . $param;
|
||||
break;
|
||||
case 'project':
|
||||
if($method == 'create') $desc .= 'ID:' . $param;
|
||||
if($method == 'close')
|
||||
{
|
||||
$desc = $this->lang->score->methods[$model][$method] . ',' . $desc . 'ID:' . $param->id;
|
||||
if(!empty($param->PM))
|
||||
{
|
||||
$rule['score'] = $param->end > date('Y-m-d') ? $rule['other']['manager'][0] + $rule['other']['manager'][1] : $rule['other']['manager'][0];
|
||||
$this->saveScore($param->PM, $rule, $model, $method, $desc);
|
||||
}
|
||||
$teams = $this->dao->select('account')->from(TABLE_TEAM)->where('project')->eq($param->id)->fetchGroup('account');
|
||||
if(!empty($teams))
|
||||
{
|
||||
$users = array_keys($teams);
|
||||
$rule['score'] = $param->end > date('Y-m-d') ? $rule['other']['member'][0] + $rule['other']['member'][1] : $rule['other']['member'][0];
|
||||
foreach($users as $user)
|
||||
{
|
||||
if($user != $param->PM) $this->saveScore($user, $rule, $model, $method, $desc);
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
break;
|
||||
case 'productplan':
|
||||
if($method == 'create') $desc .= 'ID:' . $param;
|
||||
break;
|
||||
case 'release':
|
||||
if($method == 'create') $desc .= 'ID:' . $param;
|
||||
break;
|
||||
case 'testcase':
|
||||
if($method == 'create') $desc .= 'ID:' . $param;
|
||||
break;
|
||||
case 'search':
|
||||
if($method == 'saveQuery') $desc .= 'ID:' . $param;
|
||||
if($method == 'saveQueryAdvanced') $desc = $this->lang->score->methods[$model][$method];
|
||||
break;
|
||||
case 'ajax':
|
||||
$desc = $this->lang->score->methods[$model][$method];
|
||||
break;
|
||||
}
|
||||
$this->saveScore($this->app->user->account, $rule, $model, $method, $desc);
|
||||
$this->saveScore($user, $rule, $model, $method, $desc);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<div class='heading'><?php echo html::icon($lang->icons['score']); ?><?php echo $lang->score->record; ?></div>
|
||||
<div class='actions'>
|
||||
<span class='btn disabled'><label><?php echo $lang->score->current; ?>:</label><?php echo $user->score; ?></span>
|
||||
<span class='btn disabled'><label><?php echo $lang->score->level; ?>:</label><?php echo $user->score_level; ?></span>
|
||||
<span class='btn disabled hidden'><label><?php echo $lang->score->level; ?>:</label><?php echo $user->score_level; ?></span>
|
||||
</div>
|
||||
</div>
|
||||
<table class='table tablesorter'>
|
||||
|
||||
@@ -47,7 +47,7 @@ class searchModel extends model
|
||||
$groupItems = $this->config->search->groupItems;
|
||||
$groupAndOr = strtoupper($this->post->groupAndOr);
|
||||
if($groupAndOr != 'AND' and $groupAndOr != 'OR') $groupAndOr = 'AND';
|
||||
|
||||
$scoreNum = 0;
|
||||
for($i = 1; $i <= $groupItems * 2; $i ++)
|
||||
{
|
||||
/* The and or between two groups. */
|
||||
@@ -66,6 +66,8 @@ class searchModel extends model
|
||||
if($this->post->$valueName == 'null') $this->post->$valueName = ''; // Null is special, stands to empty.
|
||||
if($this->post->$valueName == 'ZERO') $this->post->$valueName = 0; // ZERO is special, stands to 0.
|
||||
|
||||
$scoreNum += 1;
|
||||
|
||||
/* Set and or. */
|
||||
$andOr = strtoupper($this->post->$andOrName);
|
||||
if($andOr != 'AND' and $andOr != 'OR') $andOr = 'AND';
|
||||
@@ -127,6 +129,7 @@ class searchModel extends model
|
||||
$formSessionName = $this->post->module . 'Form';
|
||||
$this->session->set($querySessionName, $where);
|
||||
$this->session->set($formSessionName, $_POST);
|
||||
if($scoreNum > 2) $this->loadModel('score')->score('search', 'saveQueryAdvanced');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -303,6 +306,7 @@ class searchModel extends model
|
||||
$featureBarConfig->value = json_encode($newConfig);
|
||||
$this->dao->replace(TABLE_CONFIG)->data($featureBarConfig)->exec();
|
||||
}
|
||||
$this->loadModel('score')->score('search', 'saveQuery', $queryID);
|
||||
return $queryID;
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -359,7 +359,7 @@ class storyModel extends model
|
||||
if(is_dir($realPath)) $classFile->removeDir($realPath);
|
||||
unset($_SESSION['storyImagesFile']);
|
||||
}
|
||||
|
||||
$this->loadModel('score')->score('ajax', 'batchCreate');
|
||||
return $mails;
|
||||
}
|
||||
|
||||
@@ -609,7 +609,7 @@ class storyModel extends model
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->loadModel('score')->score('ajax', 'batchEdit');
|
||||
return $allChanges;
|
||||
}
|
||||
|
||||
|
||||
@@ -40,8 +40,6 @@ class taskModel extends model
|
||||
->remove('after,files,labels,assignedTo,uid,storyEstimate,storyDesc,storyPri,team,teamEstimate,teamMember,multiple,teams')
|
||||
->get();
|
||||
|
||||
|
||||
|
||||
foreach($this->post->assignedTo as $assignedTo)
|
||||
{
|
||||
/* When type is affair and has assigned then ignore none. */
|
||||
@@ -126,7 +124,7 @@ class taskModel extends model
|
||||
$team->task = $taskID;
|
||||
$this->dao->insert(TABLE_TEAM)->data($team)->autoCheck()->exec();
|
||||
}
|
||||
|
||||
$this->loadModel('score')->score('task', 'create', $taskID);
|
||||
$tasksID[$assignedTo] = array('status' => 'created', 'id' => $taskID);
|
||||
}
|
||||
return $tasksID;
|
||||
@@ -226,13 +224,14 @@ class taskModel extends model
|
||||
$taskID = $this->dao->lastInsertID();
|
||||
if($story) $this->story->setStage($tasks->story[$i]);
|
||||
$actionID = $this->action->create('task', $taskID, 'Opened', '');
|
||||
|
||||
$this->loadModel('score')->score('task', 'create', $taskID);
|
||||
$mails[$i] = new stdclass();
|
||||
$mails[$i]->taskID = $taskID;
|
||||
$mails[$i]->actionID = $actionID;
|
||||
}
|
||||
|
||||
$this->countTime($tasks->parent[0]);
|
||||
$this->loadModel('score')->score('ajax', 'batchCreate');
|
||||
return $mails;
|
||||
}
|
||||
|
||||
@@ -601,7 +600,7 @@ class taskModel extends model
|
||||
die(js::error('task#' . $taskID . dao::getError(true)));
|
||||
}
|
||||
}
|
||||
|
||||
$this->loadModel('score')->score('ajax', 'batchEdit');
|
||||
return $allChanges;
|
||||
}
|
||||
|
||||
@@ -886,6 +885,7 @@ class taskModel extends model
|
||||
$this->countTime($oldTask->parent);
|
||||
|
||||
if($oldTask->story) $this->loadModel('story')->setStage($oldTask->story);
|
||||
$this->loadModel('score')->score('task', 'finish', $taskID);
|
||||
if(!dao::isError()) return common::createChanges($oldTask, $task);
|
||||
}
|
||||
|
||||
@@ -940,7 +940,7 @@ class taskModel extends model
|
||||
$data = new stdClass();
|
||||
$data->status = 'closed';
|
||||
$this->dao->update(TABLE_TASK)->data($data)->autoCheck()->where('parent')->eq($taskID)->exec();
|
||||
|
||||
$this->loadModel('score')->score('task', 'close', $taskID);
|
||||
if($oldTask->story) $this->loadModel('story')->setStage($oldTask->story);
|
||||
if(!dao::isError()) return common::createChanges($oldTask, $task);
|
||||
}
|
||||
|
||||
@@ -107,6 +107,7 @@ class testcaseModel extends model
|
||||
$caseID = $this->dao->lastInsertID();
|
||||
$this->loadModel('file')->saveUpload('testcase', $caseID);
|
||||
$parentStepID = 0;
|
||||
$this->loadModel('score')->score('testcase', 'create', $caseID);
|
||||
foreach($this->post->steps as $stepID => $stepDesc)
|
||||
{
|
||||
if(empty($stepDesc)) continue;
|
||||
@@ -223,6 +224,7 @@ class testcaseModel extends model
|
||||
unset($cases->keywords[$i]);
|
||||
}
|
||||
}
|
||||
$this->loadModel('score')->score('ajax', 'batchCreate');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -911,6 +911,8 @@ class testtaskModel extends model
|
||||
}
|
||||
}
|
||||
|
||||
$this->loadModel('score')->score('testTask', 'runCase', $postData->case);
|
||||
|
||||
return $caseResult;
|
||||
}
|
||||
|
||||
|
||||
@@ -193,6 +193,11 @@ function showSearchMenu(objectType, objectID, module, method, extra)
|
||||
{
|
||||
$menu.find('#search').focus();
|
||||
}
|
||||
if(!$.cookie('ajax_quickDump'))
|
||||
{
|
||||
$.cookie('ajax_quickDump', 'on', {expires: config.cookieLife, path: config.webRoot});
|
||||
$.get(createLink('score', 'ajax', "method=quickDump"));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1740,11 +1745,21 @@ function initHotKey()
|
||||
{
|
||||
/* left, go to pre object. */
|
||||
var preLink = $('#pre').attr('href');
|
||||
if(!$.cookie('ajax_lastNext'))
|
||||
{
|
||||
$.cookie('ajax_lastNext', 'on', {expires: config.cookieLife, path: config.webRoot});
|
||||
$.get(createLink('score', 'ajax', "method=lastNext"));
|
||||
}
|
||||
if(preLink) location.href = preLink;
|
||||
}).bind('keydown', 'right', function()
|
||||
{
|
||||
/* right, go to next object. */
|
||||
var nextLink = $('#next').attr('href');
|
||||
if(!$.cookie('ajax_lastNext'))
|
||||
{
|
||||
$.cookie('ajax_lastNext', 'on', {expires: config.cookieLife, path: config.webRoot});
|
||||
$.get(createLink('score', 'ajax', "method=lastNext"));
|
||||
}
|
||||
if(nextLink) location.href = nextLink;
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user