Merge branch 'master' of github.com:easysoft/zentaopms

This commit is contained in:
wangyidong
2017-10-23 16:36:46 +08:00
15 changed files with 265 additions and 118 deletions
+1 -1
View File
@@ -15,5 +15,5 @@ tmp/extension/*
.bak
.idea
.gitignore
_log
.DS_Store
framework/
+42 -37
View File
@@ -342,6 +342,7 @@ $lang->admin->menu->cron = array('link' => 'Cron|cron|index', 'subModule' =
$lang->admin->menu->trashes = array('link' => 'Recycle|action|trash', 'subModule' => 'action');
$lang->admin->menu->dev = array('link' => 'Develop|dev|api', 'alias' => 'db', 'subModule' => 'dev,editor');
$lang->admin->menu->entry = array('link' => 'API|entry|browse', 'alias' => 'create,edit', 'subModule' => 'entry,webhook');
$lang->admin->menu->score = array('link' => 'Score|score|browse', 'subModule' => 'score');
$lang->admin->menu->sso = 'RangerTeam|admin|sso';
$lang->convert = new stdclass();
@@ -354,6 +355,7 @@ $lang->editor = new stdclass();
$lang->mail = new stdclass();
$lang->cron = new stdclass();
$lang->dev = new stdclass();
$lang->score = new stdclass();
$lang->entry = new stdclass();
$lang->webhook = new stdclass();
$lang->search = new stdclass();
@@ -368,6 +370,7 @@ $lang->custom->menu = $lang->admin->menu;
$lang->editor->menu = $lang->admin->menu;
$lang->mail->menu = $lang->admin->menu;
$lang->dev->menu = $lang->admin->menu;
$lang->score->menu = $lang->admin->menu;
$lang->webhook->menu = $lang->admin->menu;
/* 菜单分组。*/
@@ -399,6 +402,7 @@ $lang->menugroup->custom = 'admin';
$lang->menugroup->editor = 'admin';
$lang->menugroup->mail = 'admin';
$lang->menugroup->dev = 'admin';
$lang->menugroup->score = 'admin';
$lang->menugroup->entry = 'admin';
$lang->menugroup->webhook = 'admin';
@@ -519,44 +523,45 @@ $lang->icons['trash'] = 'trash';
$lang->icons['extension'] = 'th-large';
$lang->icons['app'] = 'th-large';
$lang->icons['results'] = 'list-alt';
$lang->icons['create'] = 'plus';
$lang->icons['post'] = 'edit';
$lang->icons['batchCreate'] = 'plus-sign';
$lang->icons['batchEdit'] = 'edit-sign';
$lang->icons['batchClose'] = 'off';
$lang->icons['edit'] = 'pencil';
$lang->icons['delete'] = 'remove';
$lang->icons['copy'] = 'copy';
$lang->icons['report'] = 'bar-chart';
$lang->icons['export'] = 'download-alt';
$lang->icons['report-file'] = 'file-powerpoint';
$lang->icons['import'] = 'upload-alt';
$lang->icons['finish'] = 'ok-sign';
$lang->icons['resolve'] = 'ok-sign';
$lang->icons['start'] = 'play';
$lang->icons['restart'] = 'play';
$lang->icons['run'] = 'play';
$lang->icons['runCase'] = 'play';
$lang->icons['batchRun'] = 'play-sign';
$lang->icons['assign'] = 'hand-right';
$lang->icons['assignTo'] = 'hand-right';
$lang->icons['change'] = 'random';
$lang->icons['link'] = 'link';
$lang->icons['close'] = 'off';
$lang->icons['activate'] = 'magic';
$lang->icons['review'] = 'review';
$lang->icons['confirm'] = 'search';
$lang->icons['confirmBug'] = 'search';
$lang->icons['putoff'] = 'calendar';
$lang->icons['suspend'] = 'pause';
$lang->icons['pause'] = 'pause';
$lang->icons['cancel'] = 'ban-circle';
$lang->icons['recordEstimate'] = 'time';
$lang->icons['customFields'] = 'cogs';
$lang->icons['manage'] = 'cog';
$lang->icons['unlock'] = 'unlock-alt';
$lang->icons['results'] = 'list-alt';
$lang->icons['create'] = 'plus';
$lang->icons['post'] = 'edit';
$lang->icons['batchCreate'] = 'plus-sign';
$lang->icons['batchEdit'] = 'edit-sign';
$lang->icons['batchClose'] = 'off';
$lang->icons['edit'] = 'pencil';
$lang->icons['delete'] = 'remove';
$lang->icons['copy'] = 'copy';
$lang->icons['report'] = 'bar-chart';
$lang->icons['export'] = 'download-alt';
$lang->icons['report-file'] = 'file-powerpoint';
$lang->icons['import'] = 'upload-alt';
$lang->icons['finish'] = 'ok-sign';
$lang->icons['resolve'] = 'ok-sign';
$lang->icons['start'] = 'play';
$lang->icons['restart'] = 'play';
$lang->icons['run'] = 'play';
$lang->icons['runCase'] = 'play';
$lang->icons['batchRun'] = 'play-sign';
$lang->icons['assign'] = 'hand-right';
$lang->icons['assignTo'] = 'hand-right';
$lang->icons['change'] = 'random';
$lang->icons['link'] = 'link';
$lang->icons['close'] = 'off';
$lang->icons['activate'] = 'magic';
$lang->icons['review'] = 'review';
$lang->icons['confirm'] = 'search';
$lang->icons['confirmBug'] = 'search';
$lang->icons['putoff'] = 'calendar';
$lang->icons['suspend'] = 'pause';
$lang->icons['pause'] = 'pause';
$lang->icons['cancel'] = 'ban-circle';
$lang->icons['recordEstimate'] = 'time';
$lang->icons['customFields'] = 'cogs';
$lang->icons['manage'] = 'cog';
$lang->icons['unlock'] = 'unlock-alt';
$lang->icons['confirmStoryChange'] = 'search';
$lang->icons['score'] = 'tint';
include (dirname(__FILE__) . '/menuOrder.php');
+42 -37
View File
@@ -342,6 +342,7 @@ $lang->admin->menu->cron = array('link' => '计划任务|cron|index', 'subM
$lang->admin->menu->trashes = array('link' => '回收站|action|trash', 'subModule' => 'action');
$lang->admin->menu->dev = array('link' => '二次开发|dev|api', 'alias' => 'db', 'subModule' => 'dev,editor');
$lang->admin->menu->entry = array('link' => '接口|entry|browse', 'alias' => 'create,edit', 'subModule' => 'entry,webhook');
$lang->admin->menu->score = array('link' => '积分|score|browse', 'subModule' => 'score');
$lang->admin->menu->sso = '然之集成|admin|sso';
$lang->convert = new stdclass();
@@ -357,6 +358,7 @@ $lang->dev = new stdclass();
$lang->entry = new stdclass();
$lang->webhook = new stdclass();
$lang->search = new stdclass();
$lang->score = new stdclass();
$lang->convert->menu = $lang->admin->menu;
$lang->upgrade->menu = $lang->admin->menu;
@@ -368,6 +370,7 @@ $lang->custom->menu = $lang->admin->menu;
$lang->editor->menu = $lang->admin->menu;
$lang->mail->menu = $lang->admin->menu;
$lang->dev->menu = $lang->admin->menu;
$lang->score->menu = $lang->admin->menu;
$lang->entry->menu = $lang->admin->menu;
$lang->webhook->menu = $lang->admin->menu;
@@ -400,6 +403,7 @@ $lang->menugroup->custom = 'admin';
$lang->menugroup->editor = 'admin';
$lang->menugroup->mail = 'admin';
$lang->menugroup->dev = 'admin';
$lang->menugroup->score = 'admin';
$lang->menugroup->entry = 'admin';
$lang->menugroup->webhook = 'admin';
@@ -520,44 +524,45 @@ $lang->icons['trash'] = 'trash';
$lang->icons['extension'] = 'th-large';
$lang->icons['app'] = 'th-large';
$lang->icons['results'] = 'list-alt';
$lang->icons['create'] = 'plus';
$lang->icons['post'] = 'edit';
$lang->icons['batchCreate'] = 'plus-sign';
$lang->icons['batchEdit'] = 'edit-sign';
$lang->icons['batchClose'] = 'off';
$lang->icons['edit'] = 'pencil';
$lang->icons['delete'] = 'remove';
$lang->icons['copy'] = 'copy';
$lang->icons['report'] = 'bar-chart';
$lang->icons['export'] = 'download-alt';
$lang->icons['report-file'] = 'file-powerpoint';
$lang->icons['import'] = 'upload-alt';
$lang->icons['finish'] = 'ok-sign';
$lang->icons['resolve'] = 'ok-sign';
$lang->icons['start'] = 'play';
$lang->icons['restart'] = 'play';
$lang->icons['run'] = 'play';
$lang->icons['runCase'] = 'play';
$lang->icons['batchRun'] = 'play-sign';
$lang->icons['assign'] = 'hand-right';
$lang->icons['assignTo'] = 'hand-right';
$lang->icons['change'] = 'random';
$lang->icons['link'] = 'link';
$lang->icons['close'] = 'off';
$lang->icons['activate'] = 'magic';
$lang->icons['review'] = 'review';
$lang->icons['confirm'] = 'search';
$lang->icons['confirmBug'] = 'search';
$lang->icons['putoff'] = 'calendar';
$lang->icons['suspend'] = 'pause';
$lang->icons['pause'] = 'pause';
$lang->icons['cancel'] = 'ban-circle';
$lang->icons['recordEstimate'] = 'time';
$lang->icons['customFields'] = 'cogs';
$lang->icons['manage'] = 'cog';
$lang->icons['unlock'] = 'unlock-alt';
$lang->icons['results'] = 'list-alt';
$lang->icons['create'] = 'plus';
$lang->icons['post'] = 'edit';
$lang->icons['batchCreate'] = 'plus-sign';
$lang->icons['batchEdit'] = 'edit-sign';
$lang->icons['batchClose'] = 'off';
$lang->icons['edit'] = 'pencil';
$lang->icons['delete'] = 'remove';
$lang->icons['copy'] = 'copy';
$lang->icons['report'] = 'bar-chart';
$lang->icons['export'] = 'download-alt';
$lang->icons['report-file'] = 'file-powerpoint';
$lang->icons['import'] = 'upload-alt';
$lang->icons['finish'] = 'ok-sign';
$lang->icons['resolve'] = 'ok-sign';
$lang->icons['start'] = 'play';
$lang->icons['restart'] = 'play';
$lang->icons['run'] = 'play';
$lang->icons['runCase'] = 'play';
$lang->icons['batchRun'] = 'play-sign';
$lang->icons['assign'] = 'hand-right';
$lang->icons['assignTo'] = 'hand-right';
$lang->icons['change'] = 'random';
$lang->icons['link'] = 'link';
$lang->icons['close'] = 'off';
$lang->icons['activate'] = 'magic';
$lang->icons['review'] = 'review';
$lang->icons['confirm'] = 'search';
$lang->icons['confirmBug'] = 'search';
$lang->icons['putoff'] = 'calendar';
$lang->icons['suspend'] = 'pause';
$lang->icons['pause'] = 'pause';
$lang->icons['cancel'] = 'ban-circle';
$lang->icons['recordEstimate'] = 'time';
$lang->icons['customFields'] = 'cogs';
$lang->icons['manage'] = 'cog';
$lang->icons['unlock'] = 'unlock-alt';
$lang->icons['confirmStoryChange'] = 'search';
$lang->icons['score'] = 'tint';
include (dirname(__FILE__) . '/menuOrder.php');
+42 -37
View File
@@ -341,6 +341,7 @@ $lang->admin->menu->safe = array('link' => '安全|admin|safe', 'alias' =>
$lang->admin->menu->cron = array('link' => '計劃任務|cron|index', 'subModule' => 'cron');
$lang->admin->menu->trashes = array('link' => '資源回收筒|action|trash', 'subModule' => 'action');
$lang->admin->menu->dev = array('link' => '二次開發|dev|api', 'alias' => 'db', 'subModule' => 'dev,editor');
$lang->admin->menu->score = array('link' => '積分|score|browse', 'subModule' => 'score');
$lang->admin->menu->sso = '然之整合|admin|sso';
$lang->convert = new stdclass();
@@ -354,6 +355,7 @@ $lang->mail = new stdclass();
$lang->cron = new stdclass();
$lang->dev = new stdclass();
$lang->search = new stdclass();
$lang->score = new stdclass();
$lang->convert->menu = $lang->admin->menu;
$lang->upgrade->menu = $lang->admin->menu;
@@ -365,6 +367,7 @@ $lang->custom->menu = $lang->admin->menu;
$lang->editor->menu = $lang->admin->menu;
$lang->mail->menu = $lang->admin->menu;
$lang->dev->menu = $lang->admin->menu;
$lang->scoret->menu = $lang->admin->menu;
/* 菜單分組。*/
$lang->menugroup = new stdclass();
@@ -395,6 +398,7 @@ $lang->menugroup->custom = 'admin';
$lang->menugroup->editor = 'admin';
$lang->menugroup->mail = 'admin';
$lang->menugroup->dev = 'admin';
$lang->menugroup->score = 'admin';
/* 錯誤提示信息。*/
$lang->error = new stdclass();
@@ -513,44 +517,45 @@ $lang->icons['trash'] = 'trash';
$lang->icons['extension'] = 'th-large';
$lang->icons['app'] = 'th-large';
$lang->icons['results'] = 'list-alt';
$lang->icons['create'] = 'plus';
$lang->icons['post'] = 'edit';
$lang->icons['batchCreate'] = 'plus-sign';
$lang->icons['batchEdit'] = 'edit-sign';
$lang->icons['batchClose'] = 'off';
$lang->icons['edit'] = 'pencil';
$lang->icons['delete'] = 'remove';
$lang->icons['copy'] = 'copy';
$lang->icons['report'] = 'bar-chart';
$lang->icons['export'] = 'download-alt';
$lang->icons['report-file'] = 'file-powerpoint';
$lang->icons['import'] = 'upload-alt';
$lang->icons['finish'] = 'ok-sign';
$lang->icons['resolve'] = 'ok-sign';
$lang->icons['start'] = 'play';
$lang->icons['restart'] = 'play';
$lang->icons['run'] = 'play';
$lang->icons['runCase'] = 'play';
$lang->icons['batchRun'] = 'play-sign';
$lang->icons['assign'] = 'hand-right';
$lang->icons['assignTo'] = 'hand-right';
$lang->icons['change'] = 'random';
$lang->icons['link'] = 'link';
$lang->icons['close'] = 'off';
$lang->icons['activate'] = 'magic';
$lang->icons['review'] = 'review';
$lang->icons['confirm'] = 'search';
$lang->icons['confirmBug'] = 'search';
$lang->icons['putoff'] = 'calendar';
$lang->icons['suspend'] = 'pause';
$lang->icons['pause'] = 'pause';
$lang->icons['cancel'] = 'ban-circle';
$lang->icons['recordEstimate'] = 'time';
$lang->icons['customFields'] = 'cogs';
$lang->icons['manage'] = 'cog';
$lang->icons['unlock'] = 'unlock-alt';
$lang->icons['results'] = 'list-alt';
$lang->icons['create'] = 'plus';
$lang->icons['post'] = 'edit';
$lang->icons['batchCreate'] = 'plus-sign';
$lang->icons['batchEdit'] = 'edit-sign';
$lang->icons['batchClose'] = 'off';
$lang->icons['edit'] = 'pencil';
$lang->icons['delete'] = 'remove';
$lang->icons['copy'] = 'copy';
$lang->icons['report'] = 'bar-chart';
$lang->icons['export'] = 'download-alt';
$lang->icons['report-file'] = 'file-powerpoint';
$lang->icons['import'] = 'upload-alt';
$lang->icons['finish'] = 'ok-sign';
$lang->icons['resolve'] = 'ok-sign';
$lang->icons['start'] = 'play';
$lang->icons['restart'] = 'play';
$lang->icons['run'] = 'play';
$lang->icons['runCase'] = 'play';
$lang->icons['batchRun'] = 'play-sign';
$lang->icons['assign'] = 'hand-right';
$lang->icons['assignTo'] = 'hand-right';
$lang->icons['change'] = 'random';
$lang->icons['link'] = 'link';
$lang->icons['close'] = 'off';
$lang->icons['activate'] = 'magic';
$lang->icons['review'] = 'review';
$lang->icons['confirm'] = 'search';
$lang->icons['confirmBug'] = 'search';
$lang->icons['putoff'] = 'calendar';
$lang->icons['suspend'] = 'pause';
$lang->icons['pause'] = 'pause';
$lang->icons['cancel'] = 'ban-circle';
$lang->icons['recordEstimate'] = 'time';
$lang->icons['customFields'] = 'cogs';
$lang->icons['manage'] = 'cog';
$lang->icons['unlock'] = 'unlock-alt';
$lang->icons['confirmStoryChange'] = 'search';
$lang->icons['score'] = 'tint';
include (dirname(__FILE__) . '/menuOrder.php');
+1
View File
@@ -0,0 +1 @@
<?php
+24
View File
@@ -0,0 +1,24 @@
<?php
/**
* The control file of score module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @author Memory <lvtao@cnezsoft.com>
* @package score
* @version $Id: control.php $
* @link http://www.zentao.net
*/
class score extends control
{
/**
* score list
*
* @access public
* @return mixed
*/
public function browse()
{
$this->view->title = $this->lang->score->common;
$this->display();
}
}
+1
View File
@@ -0,0 +1 @@
<?php
+5
View File
@@ -0,0 +1,5 @@
<?php
$lang->score->common = '积分';
$lang->score->record = '积分记录';
$lang->score->reset = '重置积分';
$lang->score->reset = '重置积分';
+1
View File
@@ -0,0 +1 @@
<?php
+14
View File
@@ -0,0 +1,14 @@
<?php
/**
* The model file of score module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @author Memory <lvtao@cnezsoft.com>
* @package score
* @version $Id: model.php $
* @link http://www.zentao.net
*/
class scoreModel extends model
{
}
+77
View File
@@ -0,0 +1,77 @@
<?php
/**
* The browse view file of score module of ZenTaoPMS.
*
* @copyright Copyright 2009-2015 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
* @license ZPL (http://zpl.pub/page/zplv12.html)
* @author Memory <lvtao@cnezsoft.com>
* @package score
* @version $Id$
* @link http://www.zentao.net
*/
?>
<?php include '../../common/view/header.html.php';?>
<div id='titlebar'>
<div class='heading'><?php echo html::icon($lang->icons['score']);?> <?php echo $lang->score->record;?></div>
<div class='actions'>
<?php echo html::a(inLink('reset'), "<i class='icon-refresh'></i> " . $lang->score->reset, '', "class='btn'");?>
</div>
</div>
<table class='table tablesorter'>
<?php $vars = "type=$type&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}"; ?>
<thead>
<tr class='colhead'>
<th class='w-90px'><?php common::printOrderLink('objectType', $orderBy, $vars, $lang->action->objectType);?></th>
<th class='w-id'> <?php common::printOrderLink('objectID', $orderBy, $vars, $lang->idAB);?></th>
<th><?php echo $lang->action->objectName;?></th>
<th class='w-100px'><?php common::printOrderLink('actor', $orderBy, $vars, $lang->action->actor);?></th>
<th class='w-150px'><?php common::printOrderLink('date', $orderBy, $vars, $lang->action->date);?></th>
<th class='w-100px'><?php echo $lang->actions;?></th>
</tr>
</thead>
<tbody>
<?php foreach($trashes as $action):?>
<?php $module = $action->objectType == 'case' ? 'testcase' : $action->objectType;?>
<tr class='text-center'>
<td><?php echo zget($lang->action->objectTypes, $action->objectType, '');?></td>
<td><?php echo $action->objectID;?></td>
<td class='text-left'>
<?php
$methodName = $module == 'caselib' ? 'libview' : 'view';
$params = $action->objectType == 'user' ? "account={$action->objectName}" : "id={$action->objectID}";
if($module == 'doclib')
{
echo $action->objectName;
}
else
{
echo html::a($this->createLink($module, $methodName, $params), $action->objectName);
}
?>
</td>
<td><?php echo $users[$action->actor];?></td>
<td><?php echo $action->date;?></td>
<td>
<?php
common::printLink('action', 'undelete', "actionid=$action->id", $lang->action->undelete, 'hiddenwin');
if($type == 'all') common::printLink('action', 'hideOne', "actionid=$action->id", $lang->action->hideOne, 'hiddenwin');
?>
</td>
</tr>
<?php endforeach;?>
</tbody>
<tfoot>
<tr>
<td colspan='6'>
<?php if($trashes and $type == 'all'):?>
<div class='table-actions clearfix'>
<?php echo html::linkButton($lang->action->hideAll, inlink('hideAll'), 'hiddenwin');?>
<div class='text'><?php echo $lang->action->trashTips;?></div>
</div>
<?php endif;?>
<?php $pager->show();?>
</td>
</tr>
</tfoot>
</table>
<?php include '../../common/view/footer.html.php';?>
+2
View File
@@ -104,6 +104,8 @@ $lang->task->children = 'Child';
$lang->task->childrenAB = 'Child';
$lang->task->parent = 'Parent Task';
$lang->task->unfinished = 'Unfinished';
$lang->task->lblPri = 'P';
$lang->task->lblHour = '(h)';
$lang->task->ditto = 'Ditto';
$lang->task->dittoNotice = "This Task does not belong to the Project as the previous one does!";
+2
View File
@@ -104,6 +104,8 @@ $lang->task->children = '子任务';
$lang->task->childrenAB = '子';
$lang->task->parent = '父任务';
$lang->task->unfinished = '未完成';
$lang->task->lblPri = 'P';
$lang->task->lblHour = '(h)';
$lang->task->ditto = '同上';
$lang->task->dittoNotice = "该任务与上一任务不属于同一项目!";
+2
View File
@@ -104,6 +104,8 @@ $lang->task->children = '子任務';
$lang->task->childrenAB = '子';
$lang->task->parent = '父任務';
$lang->task->unfinished = '未完成';
$lang->task->lblPri = 'P';
$lang->task->lblHour = '(h)';
$lang->task->ditto = '同上';
$lang->task->dittoNotice = "該任務與上一任務不屬於同一項目!";
+9 -6
View File
@@ -63,12 +63,12 @@ class taskModel extends model
$member->account = $account;
$member->role = $assignedTo;
$member->join = helper::today();
$member->estimate = $this->post->teamEstimate[$row] ? $this->post->teamEstimate[$row] : 0;
$member->estimate = $this->post->teamEstimate[$row] ? (float)$this->post->teamEstimate[$row] : 0;
$member->left = $member->estimate;
$member->order = $row;
$teams[$account] = $member;
$estimate += (float)$member->eatimate;
$estimate += (float)$member->estimate;
$left += (float)$member->left;
}
@@ -1081,10 +1081,13 @@ class taskModel extends model
$this->loadModel('common')->saveQueryCondition($this->dao->get(), 'task', ($productID or $type == 'needconfirm') ? false : true);
$taskList = array_keys($tasks);
$children = $this->dao->select('*')->from(TABLE_TASK)->where('parent')->in($taskList)->orderBy('id_desc')->fetchGroup('parent');
if(!empty($children)) foreach($children as $key => $child) $tasks[$key]->children = $child;
$teams = $this->dao->select('*')->from(TABLE_TEAM)->where('task')->in($taskList)->fetchGroup('task');
if($teams) foreach($teams as $key => $team) if(!empty($team)) $tasks[$key]->team = $team;
if(!empty($taskList))
{
$children = $this->dao->select('*')->from(TABLE_TASK)->where('parent')->in($taskList)->orderBy('id_desc')->fetchGroup('parent');
if(!empty($children)) foreach($children as $key => $child) $tasks[$key]->children = $child;
$teams = $this->dao->select('*')->from(TABLE_TEAM)->where('task')->in($taskList)->fetchGroup('task');
if($teams) foreach($teams as $key => $team) if(!empty($team)) $tasks[$key]->team = $team;
}
if($tasks) return $this->processTasks($tasks);
return array();