diff --git a/config/filter.php b/config/filter.php
index ee9d0880b3..ebf6c3bdfe 100644
--- a/config/filter.php
+++ b/config/filter.php
@@ -44,6 +44,7 @@ $filter->mail = new stdclass();
$filter->user = new stdclass();
$filter->block = new stdclass();
$filter->file = new stdclass();
+$filter->my = new stdclass();
$filter->block->default = new stdclass();
$filter->block->main = new stdclass();
@@ -85,6 +86,7 @@ $filter->testtask->default = new stdclass();
$filter->todo->export = new stdclass();
$filter->upgrade->license = new stdclass();
$filter->user->login = new stdclass();
+$filter->my->index = new stdclass();
$filter->bug->batchcreate->cookie['preBranch'] = 'int';
$filter->bug->browse->cookie['bugModule'] = 'int';
@@ -160,6 +162,8 @@ $filter->todo->export->cookie['checkedItem'] = 'reg::checked';
$filter->user->login->cookie['keepLogin'] = 'equal::on';
+$filter->my->index->cookie['showNotice'] = 'int';
+
$filter->block->default->get['hash'] = 'reg::md5';
$filter->block->main->get['blockid'] = 'code';
$filter->block->main->get['blockTitle'] = 'reg::any';
diff --git a/db/update9.5.1.sql b/db/update9.5.1.sql
index 2e51b8c49d..8928bb3a17 100644
--- a/db/update9.5.1.sql
+++ b/db/update9.5.1.sql
@@ -77,23 +77,23 @@ ALTER TABLE `zt_team` CHANGE `days` `days` SMALLINT(5) UNSIGNED NOT NULL DEFA
ALTER TABLE `zt_team` DROP PRIMARY KEY;
ALTER TABLE `zt_team` ADD PRIMARY KEY (`project`, `task`, `account`);
-ALTER TABLE `zt_user` ADD `score` DECIMAL(12,1) NOT NULL DEFAULT '0' AFTER `deleted`;
-ALTER TABLE `zt_user` ADD `scoreLevel` DECIMAL(12,1) NOT NULL DEFAULT '0' AFTER `score`;
+ALTER TABLE `zt_user` ADD `score` INT(12) NOT NULL DEFAULT '0' AFTER `deleted`;
+ALTER TABLE `zt_user` ADD `scoreLevel` INT(11) NOT NULL DEFAULT '0' AFTER `score`;
CREATE TABLE `zt_score` (
`id` bigint(12) unsigned NOT NULL AUTO_INCREMENT,
`account` varchar(30) NOT NULL,
- `module` varchar(30) NOT NULL,
+ `module` varchar(30) NOT NULL DEFAULT '',
`method` varchar(30) NOT NULL,
`desc` varchar(250) NOT NULL DEFAULT '',
- `before` decimal(12,1) NOT NULL DEFAULT '0.0',
- `score` decimal(12,1) NOT NULL DEFAULT '0.0',
- `after` decimal(12,1) NOT NULL DEFAULT '0.0',
+ `before` int(11) NOT NULL DEFAULT '0',
+ `score` int(11) NOT NULL DEFAULT '0',
+ `after` int(11) NOT NULL DEFAULT '0',
`time` datetime NOT NULL,
`objectID` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `account` (`account`),
- KEY `model` (`model`),
+ KEY `model` (`module`),
KEY `method` (`method`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
diff --git a/module/custom/view/score.html.php b/module/custom/view/score.html.php
index 1cb97f36e6..7e4fa4af9e 100644
--- a/module/custom/view/score.html.php
+++ b/module/custom/view/score.html.php
@@ -19,7 +19,7 @@
|
- global->scoreInit) ? common::printLink('score', 'refresh', '', " " . $lang->custom->scoreReset, '', ' id="scoreRefresh" class="btn iframe" data-width="480"', true, true) : common::printLink('score', 'init', '', " " . $lang->custom->scoreInit, '', ' id="scoreInit" class="btn iframe" data-width="480"', true, true); ?> |
+ " . isset($config->global->scoreInit) ? $lang->custom->scoreReset : $lang->custom->scoreInit, '', ' id="scoreRefresh" class="btn iframe" data-width="480"', true, true); ?> |
diff --git a/module/my/control.php b/module/my/control.php
index c7710775ca..e5940e15f4 100644
--- a/module/my/control.php
+++ b/module/my/control.php
@@ -33,7 +33,8 @@ class my extends control
*/
public function index()
{
- $this->view->title = $this->lang->my->common;
+ $this->view->title = $this->lang->my->common;
+ $this->view->notice = $this->loadModel('score')->getNotice();
$this->display();
}
diff --git a/module/my/view/index.html.php b/module/my/view/index.html.php
index af96a59b9b..4998837ff0 100644
--- a/module/my/view/index.html.php
+++ b/module/my/view/index.html.php
@@ -12,4 +12,5 @@
version);?>
fetch('block', 'dashboard', 'module=my');?>
-
+
+
\ No newline at end of file
diff --git a/module/score/config.php b/module/score/config.php
index 7b5cad5650..45ac6f57d3 100644
--- a/module/score/config.php
+++ b/module/score/config.php
@@ -1,12 +1,15 @@
score = new stdClass();
//user rule
+$config->score->user = new stdClass();
$config->score->user->login = array('num' => 3, 'time' => 24, 'score' => 1, 'ext' => '');
$config->score->user->changePassword = array('num' => 1, 'time' => 0, 'score' => 10, 'ext' => array(1 => 2, 2 => 5));
$config->score->user->editProfile = array('num' => 1, 'time' => 0, 'score' => 10, 'ext' => '');
//tutorial rule
+$config->score->tutorial = new stdClass();
$config->score->tutorial->keepAll = array('num' => 1, 'time' => 0, 'score' => 100, 'ext' => '');
//javascript ajax rule
+$config->score->ajax = new stdClass();
$config->score->ajax->selectTheme = array('num' => 1, 'time' => 0, 'score' => 10, 'ext' => '');
$config->score->ajax->selectLang = array('num' => 1, 'time' => 0, 'score' => 10, 'ext' => '');
$config->score->ajax->showSearchMenu = array('num' => 1, 'time' => 0, 'score' => 10, 'ext' => '');
@@ -15,41 +18,54 @@ $config->score->ajax->lastNext = array('num' => 1, 'time' => 0, 'score'
$config->score->ajax->switchToDataTable = array('num' => 1, 'time' => 0, 'score' => 1, 'ext' => '');
$config->score->ajax->submitPage = array('num' => 1, 'time' => 0, 'score' => 1, 'ext' => '');
$config->score->ajax->customMenu = array('num' => 1, 'time' => 0, 'score' => 1, 'ext' => '');
-$config->score->ajax->quickDump = array('num' => 1, 'time' => 0, 'score' => 10, 'ext' => '');
+$config->score->ajax->quickJump = array('num' => 1, 'time' => 0, 'score' => 10, 'ext' => '');
$config->score->ajax->batchCreate = array('num' => 1, 'time' => 0, 'score' => 20, 'ext' => '');
$config->score->ajax->batchEdit = array('num' => 1, 'time' => 0, 'score' => 20, 'ext' => '');
//doc rule
+$config->score->doc = new stdClass();
$config->score->doc->create = array('num' => 0, 'time' => 0, 'score' => 1, 'ext' => '');
//todo rule
+$config->score->todo = new stdClass();
$config->score->todo->create = array('num' => 5, 'time' => 24, 'score' => 1, 'ext' => '');
//story rule
+$config->score->story = new stdClass();
$config->score->story->create = array('num' => 0, 'time' => 0, 'score' => 1, 'ext' => '');
$config->score->story->close = array('num' => 0, 'time' => 0, 'score' => 1, 'ext' => array('createID' => 2));
//task rule
+$config->score->task = new stdClass();
$config->score->task->create = array('num' => 0, 'time' => 0, 'score' => 1, 'ext' => '');
$config->score->task->close = array('num' => 0, 'time' => 0, 'score' => 1, 'ext' => '');
$config->score->task->finish = array('num' => 0, 'time' => 0, 'score' => 1, 'ext' => array(1 => 2, 2 => 1, 3 => 0));
//bug rule
+$config->score->bug = new stdClass();
$config->score->bug->create = array('num' => 0, 'time' => 0, 'score' => 1, 'ext' => '');
$config->score->bug->confirmBug = array('num' => 0, 'time' => 0, 'score' => 1, 'ext' => array(1 => 3, 2 => 2, 3 => 1));
$config->score->bug->createFormCase = array('num' => 0, 'time' => 0, 'score' => 1, 'ext' => '');
$config->score->bug->resolve = array('num' => 0, 'time' => 0, 'score' => 1, 'ext' => array(1 => 3, 2 => 2, 3 => 1));
$config->score->bug->saveTplModal = array('num' => 0, 'time' => 0, 'score' => 20, 'ext' => '');
-//testTask rule
-$config->score->testTask->runCase = array('num' => 0, 'time' => 0, 'score' => 1, 'ext' => '');
//testcase rule
+$config->score->testcase = new stdClass();
$config->score->testcase->create = array('num' => 0, 'time' => 0, 'score' => 1, 'ext' => '');
+//testtask rule
+$config->score->testtask = new stdClass();
+$config->score->testtask->runCase = array('num' => 0, 'time' => 0, 'score' => 1, 'ext' => '');
//bulid rule
+$config->score->build = new stdClass();
$config->score->build->create = array('num' => 0, 'time' => 0, 'score' => 10, 'ext' => '');
//project rule
+$config->score->project = new stdClass();
$config->score->project->create = array('num' => 0, 'time' => 0, 'score' => 10, 'ext' => '');
$config->score->project->close = array('num' => 0, 'time' => 0, 'score' => 0, 'ext' => array('manager' => array(20, 10), 'member' => array(5, 5)));
//productplan rule
+$config->score->productplan = new stdClass();
$config->score->productplan->create = array('num' => 0, 'time' => 0, 'score' => 10, 'ext' => '');
//release rule
+$config->score->release = new stdClass();
$config->score->release->create = array('num' => 0, 'time' => 0, 'score' => 10, 'ext' => '');
//block rule
+$config->score->block = new stdClass();
$config->score->block->set = array('num' => 1, 'time' => 0, 'score' => 20, 'ext' => '');
//search rule
+$config->score->search = new stdClass();
$config->score->search->saveQuery = array('num' => 1, 'time' => 0, 'score' => 1, 'ext' => '');
$config->score->search->saveQueryAdvanced = array('num' => 1, 'time' => 0, 'score' => 1, 'ext' => '');
diff --git a/module/score/control.php b/module/score/control.php
index a139c2574e..1c3d41c847 100644
--- a/module/score/control.php
+++ b/module/score/control.php
@@ -48,30 +48,4 @@ class score extends control
}
$this->display();
}
-
- /**
- * reset all score
- *
- * @param int $lastID
- *
- * @access public
- * @return void
- */
- public function reset($lastID = 0)
- {
- if(helper::isAjaxRequest())
- {
- $result = $this->score->reset($lastID);
- if(dao::isError()) $this->send(array('result' => 'fail', 'message' => dao::getError()));
- if($result['status'] == 'finish')
- {
- $this->send(array('result' => 'finished', 'message' => $this->lang->score->resetFinish));
- }
- else
- {
- $this->send(array('result' => 'unfinished', 'message' => $this->lang->score->resetLoading, 'lastID' => $result['lastID']));
- }
- }
- $this->display();
- }
}
\ No newline at end of file
diff --git a/module/score/lang/en.php b/module/score/lang/en.php
index b3d9bbc7f3..9881005e0c 100644
--- a/module/score/lang/en.php
+++ b/module/score/lang/en.php
@@ -1 +1,79 @@
score->common = 'Score';
+$lang->score->record = 'Score record';
+$lang->score->current = 'Current score';
+$lang->score->level = 'Level score';
+$lang->score->init = 'Initialize';
+$lang->score->tips = 'Yesterday added score:%d
Today total score:%d
Come on! ^_^';
+$lang->score->initTips = 'Initialization will be based on historical records, the execution time may be longer. Do not close the window before the completion';
+$lang->score->initStart = 'Start initialize';
+$lang->score->initLoading = 'Initializing...';
+$lang->score->initFinish = 'initialized';
+$lang->score->processed = 'Processed ...';
+
+$lang->score->id = 'ID';
+$lang->score->userID = 'UserID';
+$lang->score->account = 'User';
+$lang->score->module = 'Module';
+$lang->score->method = 'Method';
+$lang->score->before = 'Before';
+$lang->score->score = 'Score';
+$lang->score->after = 'After';
+$lang->score->time = 'Time';
+$lang->score->desc = 'Description';
+
+
+$lang->score->models['task'] = 'Task';
+$lang->score->models['tutorial'] = 'Tutorial';
+$lang->score->models['user'] = 'User';
+$lang->score->models['ajax'] = 'Other';
+$lang->score->models['doc'] = 'Doc';
+$lang->score->models['todo'] = 'Todo';
+$lang->score->models['story'] = 'Story';
+$lang->score->models['bug'] = 'Bug';
+$lang->score->models['testcase'] = 'TestCase';
+$lang->score->models['testtask'] = 'TestTask';
+$lang->score->models['build'] = 'Build';
+$lang->score->models['project'] = 'Project';
+$lang->score->models['productplan'] = 'Plan';
+$lang->score->models['release'] = 'Release';
+$lang->score->models['block'] = 'Block';
+$lang->score->models['search'] = 'Search';
+
+$lang->score->methods['task']['create'] = 'Create task';
+$lang->score->methods['task']['close'] = 'Close task';
+$lang->score->methods['task']['finish'] = 'Finish task';
+$lang->score->methods['tutorial']['keepAll'] = 'Finish tutorial';
+$lang->score->methods['user']['login'] = 'Login';
+$lang->score->methods['user']['changePassword'] = 'Change password';
+$lang->score->methods['user']['editProfile'] = 'Edit profile';
+$lang->score->methods['ajax']['selectTheme'] = 'Change theme';
+$lang->score->methods['ajax']['selectLang'] = 'Change Lang';
+$lang->score->methods['ajax']['showSearchMenu'] = 'Advanced search';
+$lang->score->methods['ajax']['customMenu'] = 'Custom menu';
+$lang->score->methods['ajax']['dragSelected'] = 'Drag selected';
+$lang->score->methods['ajax']['lastNext'] = 'Page turned';
+$lang->score->methods['ajax']['switchToDataTable'] = 'Switch dataTable';
+$lang->score->methods['ajax']['submitPage'] = 'Change page number';
+$lang->score->methods['ajax']['quickJump'] = 'Quick jump';
+$lang->score->methods['ajax']['batchCreate'] = 'Batch create';
+$lang->score->methods['ajax']['batchEdit'] = 'Batch update';
+$lang->score->methods['doc']['create'] = 'Create doc';
+$lang->score->methods['todo']['create'] = 'Create todo';
+$lang->score->methods['story']['create'] = 'Create story';
+$lang->score->methods['story']['close'] = 'Close story';
+$lang->score->methods['bug']['create'] = 'Create bug';
+$lang->score->methods['bug']['confirmBug'] = 'Confirm bug';
+$lang->score->methods['bug']['createFormCase'] = 'Create bug form case';
+$lang->score->methods['bug']['resolve'] = 'Resolve bug';
+$lang->score->methods['bug']['saveTplModal'] = 'Bug save template';
+$lang->score->methods['testtask']['runCase'] = 'Run test case';
+$lang->score->methods['testcase']['create'] = 'Create test case';
+$lang->score->methods['build']['create'] = 'Create build';
+$lang->score->methods['project']['create'] = 'Create project';
+$lang->score->methods['project']['close'] = 'Project finish';
+$lang->score->methods['productplan']['create'] = 'Create plan';
+$lang->score->methods['release']['create'] = 'Create release';
+$lang->score->methods['block']['set'] = 'Custom block';
+$lang->score->methods['search']['saveQuery'] = 'Save search query';
+$lang->score->methods['search']['saveQueryAdvanced'] = 'Advanced search';
diff --git a/module/score/lang/zh-cn.php b/module/score/lang/zh-cn.php
index dacb4aa435..2987cca8a5 100644
--- a/module/score/lang/zh-cn.php
+++ b/module/score/lang/zh-cn.php
@@ -1,19 +1,15 @@
score->common = '积分';
-$lang->score->record = '积分记录';
-$lang->score->current = '当前积分';
-$lang->score->level = '等级积分';
-$lang->score->init = '初始化';
-$lang->score->initTips = '初始化将根据历史记录计算,执行时间可能会比较长.
请勿在未完成前关闭窗口';
-$lang->score->initStart = '开始初始化';
-$lang->score->initLoading = '正在初始化...';
-$lang->score->initFinish = '初始化完成';
-$lang->score->reset = '重置积分';
-$lang->score->resetTips = '重置积分将对所有用户积分清零,执行时间可能会比较长.
请勿在未完成前关闭窗口';
-$lang->score->resetStart = '开始重置所有积分';
-$lang->score->resetLoading = '积分重置中...';
-$lang->score->resetFinish = '重置完成';
-$lang->score->processed = '正在处理中...';
+$lang->score->common = '积分';
+$lang->score->record = '积分记录';
+$lang->score->current = '当前积分';
+$lang->score->level = '等级积分';
+$lang->score->init = '初始化';
+$lang->score->tips = '昨天增加了积分:%d
现共有积分:%d
今天再接再厉哟! ^_^';
+$lang->score->initTips = '初始化将根据历史记录计算,执行时间可能会比较长.
请勿在未完成前关闭窗口';
+$lang->score->initStart = '开始初始化';
+$lang->score->initLoading = '正在初始化...';
+$lang->score->initFinish = '初始化完成';
+$lang->score->processed = '正在处理中...';
$lang->score->id = '编号';
$lang->score->userID = '用户ID';
@@ -30,12 +26,13 @@ $lang->score->desc = '描述';
$lang->score->models['task'] = '任务';
$lang->score->models['tutorial'] = '新手教程';
$lang->score->models['user'] = '用户';
-$lang->score->models['ajax'] = '';
+$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['testcase'] = '用例';
+$lang->score->models['testtask'] = '测试';
$lang->score->models['build'] = 'Build';
$lang->score->models['project'] = '项目';
$lang->score->models['productplan'] = '计划';
@@ -58,7 +55,7 @@ $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']['quickJump'] = '使用快速跳转';
$lang->score->methods['ajax']['batchCreate'] = '首次使用批量添加';
$lang->score->methods['ajax']['batchEdit'] = '首次使用批量编辑';
$lang->score->methods['doc']['create'] = '创建文档';
@@ -70,7 +67,8 @@ $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['testtask']['runCase'] = '执行用例';
+$lang->score->methods['testcase']['create'] = '创建用例';
$lang->score->methods['build']['create'] = '创建版本';
$lang->score->methods['project']['create'] = '创建项目';
$lang->score->methods['project']['close'] = '项目完成';
diff --git a/module/score/lang/zh-tw.php b/module/score/lang/zh-tw.php
index b3d9bbc7f3..08d473539b 100644
--- a/module/score/lang/zh-tw.php
+++ b/module/score/lang/zh-tw.php
@@ -1 +1,79 @@
score->common = '積分';
+$lang->score->record = '積分記錄';
+$lang->score->current = '當前積分';
+$lang->score->level = '等級積分';
+$lang->score->init = '初始化';
+$lang->score->tips = '昨天增加了積分:%d
現共有積分:%d
今天再接再厲喲! ^_^';
+$lang->score->initTips = '初始化將根據歷史記錄計算,執行時間可能會比較長.
請勿在未完成前關閉窗口';
+$lang->score->initStart = '開始初始化';
+$lang->score->initLoading = '正在初始化...';
+$lang->score->initFinish = '初始化完成';
+$lang->score->processed = '正在處理中...';
+
+$lang->score->id = '編號';
+$lang->score->userID = '用戶ID';
+$lang->score->account = '用戶';
+$lang->score->module = '模塊';
+$lang->score->method = '動作';
+$lang->score->before = '之前';
+$lang->score->score = '分值';
+$lang->score->after = '之後';
+$lang->score->time = '時間';
+$lang->score->desc = '描述';
+
+
+$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['testcase'] = '用例';
+$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['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']['quickJump'] = '使用快速跳轉';
+$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['testcase']['create'] = '創建用例';
+$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'] = '使用高級搜索';
\ No newline at end of file
diff --git a/module/score/model.php b/module/score/model.php
index 783f8ffd89..86a4a02f80 100644
--- a/module/score/model.php
+++ b/module/score/model.php
@@ -9,8 +9,6 @@
*/
class scoreModel extends model
{
- public static $num = 0;
-
/**
* get user score list
*
@@ -22,7 +20,7 @@ class scoreModel extends model
*/
public function getListByAccount($account, $pager)
{
- return $this->dao->select('*')->from(TABLE_SCORE)->where('account')->eq($account)->orderBy('time_desc,id_desc')->page($pager)->fetchAll();
+ return $this->dao->select('*')->from(TABLE_SCORE)->where('account')->eq($account)->orderBy('time_desc')->page($pager)->fetchAll();
}
/**
@@ -86,6 +84,7 @@ class scoreModel extends model
{
$desc = $this->lang->score->methods[$module][$method] . 'ID:' . $param;
$task = $this->loadModel('task')->getById($param);
+
if(!empty($rule['ext'][$task->pri])) $rule['score'] = $rule['score'] + $rule['ext'][$task->pri];
if(!empty($task->estimate)) $rule['score'] = $rule['score'] + round(($task->consumed / 10 * $task->estimate / $task->consumed), 1);
}
@@ -129,20 +128,23 @@ class scoreModel extends model
if($method == 'create') $desc .= 'ID:' . $param;
if($method == 'close')
{
- $desc = $this->lang->score->methods[$module][$method] . ',' . $desc . 'ID:' . $param->id;
- $objectID = $param->id;
+ $desc = $this->lang->score->methods[$module][$method] . ',' . $desc . 'ID:' . $param->id;
+ $objectID = $param->id;
+ $timestamp = empty($time) ? time() : strtotime($time);
+ //project PM
if(!empty($param->PM))
{
- $rule['score'] = $param->end > date('Y-m-d', $time) ? $rule['ext']['manager'][0] + $rule['ext']['manager'][1] : $rule['ext']['manager'][0];
+ $rule['score'] = $param->end > date('Y-m-d', $timestamp) ? $rule['ext']['manager'][0] + $rule['ext']['manager'][1] : $rule['ext']['manager'][0];
$this->saveScore($param->PM, $rule, $module, $method, $desc, $objectID, $time);
}
+ //project team user
$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', $time) ? $rule['ext']['member'][0] + $rule['ext']['member'][1] : $rule['ext']['member'][0];
+ $rule['score'] = $param->end > date('Y-m-d', $timestamp) ? $rule['ext']['member'][0] + $rule['ext']['member'][1] : $rule['ext']['member'][0];
foreach($users as $user)
{
if($user != $param->PM) $this->saveScore($user, $rule, $module, $method, $desc, $objectID, $time);
@@ -191,13 +193,13 @@ class scoreModel extends model
{
if(empty($rule['time']))
{
- $count = $this->dao->select('id')->from(TABLE_SCORE)->where('account')->eq($account)->andWhere('model')->eq($module)->andWhere('method')->eq($method)->count();
+ $count = $this->dao->select('id')->from(TABLE_SCORE)->where('account')->eq($account)->andWhere('module')->eq($module)->andWhere('method')->eq($method)->count();
if($count >= $rule['num']) return true;
}
else
{
$timestamp = empty($time) ? time() : strtotime($time);
- $count = $this->dao->select('id')->from(TABLE_SCORE)->where('account')->eq($account)->andWhere('time')->between(date('Y-m-d 0:0:0', $timestamp), date('Y-m-d 23:59:59', $timestamp))->andWhere('model')->eq($module)->andWhere('method')->eq($method)->count();
+ $count = $this->dao->select('id')->from(TABLE_SCORE)->where('account')->eq($account)->andWhere('time')->between(date('Y-m-d 0:0:0', $timestamp), date('Y-m-d 23:59:59', $timestamp))->andWhere('module')->eq($module)->andWhere('method')->eq($method)->count();
if($count >= $rule['num']) return true;
}
}
@@ -217,8 +219,8 @@ class scoreModel extends model
$data->score = $rule['score'];
$data->after = $user->score + $rule['score'];
$data->time = empty($time) ? helper::now() : $time;
-
$this->dao->insert(TABLE_SCORE)->data($data)->exec();
+
$this->dao->query("UPDATE " . TABLE_USER . " SET `score`=`score` + " . $rule['score'] . ",`scoreLevel`=`scoreLevel` + " . $rule['score'] . " WHERE `account`='" . $account . "'");
$this->dao->commit();
@@ -229,39 +231,6 @@ class scoreModel extends model
}
}
- /**
- * reset all user score and scoreLevel
- *
- * @param int $lastID
- *
- * @access public
- * @return void
- */
- public function reset($lastID = 0)
- {
- if($lastID == 0)
- {
- $this->dao->query("DROP TABLE IF EXISTS `score_bak`");
- $this->dao->query("RENAME TABLE " . TABLE_SCORE . ' TO score_bak');
- $this->dao->query("CREATE TABLE " . TABLE_SCORE . ' LIKE score_bak');
- $this->dao->query("UPDATE " . TABLE_USER . " SET `score`=0,`scoreLevel`=0");
- }
-
- $actions = $this->dao->select('*')->from('score_bak')->where('id')->gt($lastID)->orderBy('id_asc')->limit(100)->fetchAll('id');
-
- if(empty($actions)) return array('num' => 0, 'status' => 'finish');
-
- foreach($actions as $action)
- {
- $param = $action->objectID;
- if($action->model == 'project' && $action->method == 'close') $param = $this->dao->findById($action->objectID)->from(TABLE_PROJECT)->fetch();
- if($action->model == 'bug' && ($action->method == 'confirmBug' || $action->method == 'resolve')) $param = $this->dao->findById($action->objectID)->from(TABLE_BUG)->fetch();
- $this->score($action->model, $action->method, $param, $action->account, $action->time);
- }
-
- return array('status' => 'more', 'lastID' => max(array_keys($actions)));
- }
-
/**
* Score init from action
*
@@ -290,8 +259,14 @@ class scoreModel extends model
{
$param = $action->objectID;
if($action->objectType == 'project' && $action->action == 'closed') $param = $this->dao->findById($action->objectID)->from(TABLE_PROJECT)->fetch();
- if($action->objectType == 'bug' && ($action->action == 'bugconfirmed' || $action->action == 'resolved')) $param = $this->dao->findById($action->objectID)->from(TABLE_BUG)->fetch();
- $this->score($action->objectType, $this->fixKey($action->action), $param, $action->actor, $action->date);
+ if($action->objectType == 'bug')
+ {
+ $bug = $this->dao->findById($action->objectID)->from(TABLE_BUG)->fetch();
+ if(!empty($bug->case)) $action->action = 'createFormCase';
+ if($action->action == 'bugconfirmed' || $action->action == 'resolved') $param = $bug;
+ }
+ if($action->objectType == 'case') $action->objectType = 'testcase';
+ $this->create($action->objectType, $this->fixKey($action->action), $param, $action->actor, $action->date);
}
return array('status' => 'more', 'lastID' => max(array_keys($actions)));
@@ -307,7 +282,36 @@ class scoreModel extends model
*/
private function fixKey($string)
{
- $strings = array('created' => 'create', 'closed' => 'close', 'finished' => 'finish', 'bugconfirmed' => 'confirmBug', 'resolved' => 'resolve');
+ $strings = array('created' => 'create', 'opened' => 'create', 'closed' => 'close', 'finished' => 'finish', 'bugconfirmed' => 'confirmBug', 'resolved' => 'resolve');
return isset($strings[$string]) ? $strings[$string] : $string;
}
-}
\ No newline at end of file
+
+ /**
+ * get yesterday's score for user
+ *
+ * @access public
+ * @return string
+ */
+ public function getNotice()
+ {
+ if(!isset($this->config->global->score) || empty($this->config->global->score)) return '';
+ if($this->cookie->showNotice == strtotime(date('Y-m-d'))) return '';
+
+ setcookie('showNotice', strtotime(date('Y-m-d')), $this->config->cookieLife, $this->config->webRoot);
+
+ $yesterday = $this->dao->select("sum(score) as score")->from(TABLE_SCORE)->where('time')->between(date('Y-m-d 00:00:00', strtotime('-1 day')), date('Y-m-d 23:59:59', strtotime('-1 day')))->andWhere('account')->eq($this->app->user->account)->fetch();
+
+ $notice = empty($yesterday->score) ? '' : sprintf($this->lang->score->tips, $yesterday->score, $this->app->user->score);
+
+ $notice .= $this->cookie->showNotice;
+
+ $fullNotice = <<
+
+ {$notice}
+
+
+EOT;
+ return empty($notice) ? '' : $fullNotice;
+ }
+}
diff --git a/module/score/view/init.html.php b/module/score/view/init.html.php
index c40c52c3ea..4d0c179687 100644
--- a/module/score/view/init.html.php
+++ b/module/score/view/init.html.php
@@ -56,7 +56,7 @@
else
{
$('#loading_content').html("" + response.message + "");
- setTimeout(function(){score_init(response.lastID);}, 2000);
+ setTimeout(function(){score_init(response.lastID);}, 500);
}
});
}
diff --git a/module/score/view/refresh.html.php b/module/score/view/refresh.html.php
deleted file mode 100644
index 9afa211468..0000000000
--- a/module/score/view/refresh.html.php
+++ /dev/null
@@ -1,64 +0,0 @@
-
- * @package score
- * @version $Id$
- * @link http://www.zentao.net
- */
-?>
-
-
-
-
-
score->reset; ?>
-
-
score->resetTips; ?>
-
-
-
-
-
-
-
-
score->resetLoading; ?>
-
-
score->resetTips; ?>
-
-
-
-
-
- score->resetFinish; ?>
-
-
-
-
\ No newline at end of file
diff --git a/module/testtask/control.php b/module/testtask/control.php
index 60e5601185..9fffb4e85a 100644
--- a/module/testtask/control.php
+++ b/module/testtask/control.php
@@ -832,8 +832,8 @@ class testtask extends control
}
}
- $preCase = '';
- $nextCase = '';
+ $preCase = array();
+ $nextCase = array();
if($preAndNext->pre)
{
$preCase['runID'] = $runID ? $preAndNext->pre->id : 0;
diff --git a/www/js/my.full.js b/www/js/my.full.js
index 3712882c44..d0af0e2522 100644
--- a/www/js/my.full.js
+++ b/www/js/my.full.js
@@ -193,10 +193,10 @@ function showSearchMenu(objectType, objectID, module, method, extra)
{
$menu.find('#search').focus();
}
- if(!$.cookie('ajax_quickDump'))
+ if(!$.cookie('ajax_quickJump'))
{
- $.cookie('ajax_quickDump', 'on', {expires: config.cookieLife, path: config.webRoot});
- $.get(createLink('score', 'ajax', "method=quickDump"));
+ $.cookie('ajax_quickJump', 'on', {expires: config.cookieLife, path: config.webRoot});
+ $.get(createLink('score', 'ajax', "method=quickJump"));
}
}