Merge branch 'master' of https://github.com/easysoft/zentaopms
# Conflicts: # www/theme/default/style.css
This commit is contained in:
+12
-7
@@ -157,14 +157,19 @@ class blockModel extends model
|
||||
{
|
||||
$data = array();
|
||||
|
||||
$projects = $this->loadModel('project')->getPairs();
|
||||
$products = $this->loadModel('product')->getPairs();
|
||||
|
||||
$data['tasks'] = (int)$this->dao->select('count(*) AS count')->from(TABLE_TASK)->where('assignedTo')->eq($this->app->user->account)->andWhere('deleted')->eq(0)->fetch('count');
|
||||
$data['bugs'] = (int)$this->dao->select('count(*) AS count')->from(TABLE_BUG)->where('assignedTo')->eq($this->app->user->account)->andWhere('deleted')->eq(0)->fetch('count');
|
||||
$data['stories'] = (int)$this->dao->select('count(*) AS count')->from(TABLE_STORY)->where('assignedTo')->eq($this->app->user->account)->andWhere('deleted')->eq(0)->fetch('count');
|
||||
$data['projects'] = (int)$this->dao->select('count(*) AS count')->from(TABLE_PROJECT)->where('id')->in(array_keys($projects))->andWhere("(status='wait' or status='doing')")->andWhere('deleted')->eq(0)->fetch('count');
|
||||
$data['products'] = (int)$this->dao->select('count(*) AS count')->from(TABLE_PRODUCT)->where('status')->ne('closed')->andWhere('id')->in(array_keys($products))->andWhere('deleted')->eq(0)->fetch('count');
|
||||
$data['projects'] = (int)$this->dao->select('count(*) AS count')->from(TABLE_PROJECT)
|
||||
->where("(status='wait' or status='doing')")
|
||||
->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->projects)
|
||||
->andWhere('deleted')->eq(0)
|
||||
->fetch('count');
|
||||
$data['products'] = (int)$this->dao->select('count(*) AS count')->from(TABLE_PRODUCT)
|
||||
->where('status')->ne('closed')
|
||||
->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->products)
|
||||
->andWhere('deleted')->eq(0)
|
||||
->fetch('count');
|
||||
|
||||
$today = date('Y-m-d');
|
||||
$data['delayTask'] = (int)$this->dao->select('count(*) AS count')->from(TABLE_TASK)
|
||||
@@ -182,8 +187,8 @@ class blockModel extends model
|
||||
->andWhere('deleted')->eq(0)
|
||||
->fetch('count');
|
||||
$data['delayProject'] = (int)$this->dao->select('count(*) AS count')->from(TABLE_PROJECT)
|
||||
->where('id')->in(array_keys($projects))
|
||||
->andWhere('status')->in('wait,doing')
|
||||
->where('status')->in('wait,doing')
|
||||
->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->projects)
|
||||
->andWhere('end')->lt($today)
|
||||
->andWhere('deleted')->eq(0)
|
||||
->fetch('count');
|
||||
|
||||
@@ -324,5 +324,5 @@ $config->bug->datatable->fieldList['lastEditedDate']['required'] = 'no';
|
||||
|
||||
$config->bug->datatable->fieldList['actions']['title'] = 'actions';
|
||||
$config->bug->datatable->fieldList['actions']['fixed'] = 'right';
|
||||
$config->bug->datatable->fieldList['actions']['width'] = '190';
|
||||
$config->bug->datatable->fieldList['actions']['width'] = '150';
|
||||
$config->bug->datatable->fieldList['actions']['required'] = 'yes';
|
||||
|
||||
+13
-9
@@ -422,10 +422,9 @@ class bugModel extends model
|
||||
*/
|
||||
public function getPlanBugs($planID, $status = 'all', $orderBy = 'id_desc', $pager = null)
|
||||
{
|
||||
$projects = $this->loadModel('project')->getPairs('empty|withdelete');
|
||||
$bugs = $this->dao->select('*')->from(TABLE_BUG)
|
||||
->where('plan')->eq((int)$planID)
|
||||
->andWhere('project')->in(array_keys($projects))
|
||||
->beginIF(!$this->app->user->admin)->andWhere('project')->in($this->app->user->view->projects)->fi()
|
||||
->beginIF($status != 'all')->andWhere('status')->in($status)->fi()
|
||||
->andWhere('deleted')->eq(0)
|
||||
->orderBy($orderBy)->page($pager)->fetchAll('id');
|
||||
@@ -1313,10 +1312,9 @@ class bugModel extends model
|
||||
public function getUserBugs($account, $type = 'assignedTo', $orderBy = 'id_desc', $limit = 0, $pager = null)
|
||||
{
|
||||
if(!$this->loadModel('common')->checkField(TABLE_BUG, $type)) return array();
|
||||
$projects = $this->loadModel('project')->getPairs('empty|withdelete');
|
||||
$bugs = $this->dao->select('*')->from(TABLE_BUG)
|
||||
$bugs = $this->dao->select('*')->from(TABLE_BUG)
|
||||
->where('deleted')->eq(0)
|
||||
->andWhere('project')->in(array_keys($projects))
|
||||
->beginIF(!$this->app->user->admin)->andWhere('project')->in($this->app->user->view->projects)->fi()
|
||||
->beginIF($type != 'all')->andWhere("`$type`")->eq($account)->fi()
|
||||
->orderBy($orderBy)
|
||||
->beginIF($limit > 0)->limit($limit)->fi()
|
||||
@@ -1459,11 +1457,10 @@ class bugModel extends model
|
||||
*/
|
||||
public function getProductBugPairs($productID)
|
||||
{
|
||||
$projects = $this->loadModel('project')->getPairs('empty|withdelete');
|
||||
$bugs = array('' => '');
|
||||
$data = $this->dao->select('id, title')->from(TABLE_BUG)
|
||||
->where('product')->eq((int)$productID)
|
||||
->andWhere('project')->in(array_keys($projects))
|
||||
->beginIF(!$this->app->user->admin)->andWhere('project')->in($this->app->user->view->projects)->fi()
|
||||
->andWhere('deleted')->eq(0)
|
||||
->orderBy('id desc')
|
||||
->fetchAll();
|
||||
@@ -2584,9 +2581,17 @@ class bugModel extends model
|
||||
}
|
||||
break;
|
||||
case 'assignedTo':
|
||||
$btnTextClass = '';
|
||||
$assignedToText = !empty($bug->assignedTo) ? zget($users, $bug->assignedTo) : $this->lang->bug->noAssigned;
|
||||
$btnTextClass = 'text-primary';
|
||||
if($bug->assignedTo == $account) $btnTextClass = 'text-red';
|
||||
echo "<span class='{$btnTextClass}'>" . zget($users, $bug->assignedTo) . "</span>";
|
||||
|
||||
$btnClass = $assignedToText == 'closed' ? ' disabled' : '';
|
||||
$btnClass = "iframe btn btn-icon-left btn-sm {$btnClass}";
|
||||
$assignToLink = helper::createLink('bug', 'assignTo', "bugID=$bug->id", '', true);
|
||||
$assignToHtml = html::a($assignToLink, "<i class='icon icon-hand-right'></i> <span class='{$btnTextClass}'>{$assignedToText}</span>", '', "class='$btnClass'");
|
||||
|
||||
echo !common::hasPriv('bug', 'assignTo') ? "<span style='padding-left:25px;' class='{$btnTextClass}'>{$assignedToText}</span>" : $assignToHtml;
|
||||
break;
|
||||
case 'assignedDate':
|
||||
echo substr($bug->assignedDate, 5, 11);
|
||||
@@ -2620,7 +2625,6 @@ class bugModel extends model
|
||||
break;
|
||||
case 'actions':
|
||||
$params = "bugID=$bug->id";
|
||||
common::printIcon('bug', 'assignTo', $params, $bug, 'list', '', '', 'iframe', true);
|
||||
common::printIcon('bug', 'confirmBug', $params, $bug, 'list', 'confirm', '', 'iframe', true);
|
||||
common::printIcon('bug', 'resolve', $params, $bug, 'list', 'checked', '', 'iframe', true);
|
||||
common::printIcon('bug', 'close', $params, $bug, 'list', '', '', 'iframe', true);
|
||||
|
||||
@@ -591,7 +591,7 @@ class productModel extends model
|
||||
->where('t1.product')->eq((int)$productID)
|
||||
->beginIF($branch)->andWhere('t1.branch')->in($branch)->fi()
|
||||
->beginIF(!$this->app->user->admin)->andWhere('t2.id')->in($this->app->user->view->projects)->fi()
|
||||
->orderBy('t1.project desc')
|
||||
->andWhere('t2.deleted')->eq(0)
|
||||
->fetchAll();
|
||||
|
||||
foreach($datas as $data)
|
||||
|
||||
@@ -193,5 +193,5 @@ $config->story->datatable->fieldList['caseCount']['name'] = $lang->story->ca
|
||||
|
||||
$config->story->datatable->fieldList['actions']['title'] = 'actions';
|
||||
$config->story->datatable->fieldList['actions']['fixed'] = 'right';
|
||||
$config->story->datatable->fieldList['actions']['width'] = '190';
|
||||
$config->story->datatable->fieldList['actions']['width'] = '150';
|
||||
$config->story->datatable->fieldList['actions']['required'] = 'yes';
|
||||
|
||||
@@ -197,5 +197,5 @@ $config->task->datatable->fieldList['lastEditedDate']['required'] = 'no';
|
||||
|
||||
$config->task->datatable->fieldList['actions']['title'] = 'actions';
|
||||
$config->task->datatable->fieldList['actions']['fixed'] = 'right';
|
||||
$config->task->datatable->fieldList['actions']['width'] = '180';
|
||||
$config->task->datatable->fieldList['actions']['width'] = '130';
|
||||
$config->task->datatable->fieldList['actions']['required'] = 'yes';
|
||||
|
||||
+13
-3
@@ -2450,8 +2450,20 @@ class taskModel extends model
|
||||
case 'assignedTo':
|
||||
$btnTextClass = '';
|
||||
$assignedToText = zget($users, $task->assignedTo);
|
||||
|
||||
if(empty($task->assignedTo))
|
||||
{
|
||||
$btnTextClass = 'text-primary';
|
||||
$assignedToText = $this->lang->task->noAssigned;
|
||||
}
|
||||
if($task->assignedTo == $account) $btnTextClass = 'text-red';
|
||||
echo "<span class='{$btnTextClass}'>{$assignedToText}</span>";
|
||||
|
||||
$btnClass = $assignedToText == 'closed' ? ' disabled' : '';
|
||||
$btnClass = "iframe btn btn-icon-left btn-sm {$btnClass}";
|
||||
$assignToLink = helper::createLink('task', 'assignTo', "projectID=$task->project&taskID=$task->id", '', true);
|
||||
$assignToHtml = html::a($assignToLink, "<i class='icon icon-hand-right'></i> <span class='{$btnTextClass}'>{$assignedToText}</span>", '', "class='$btnClass'");
|
||||
|
||||
echo !common::hasPriv('task', 'assignTo') ? "<span style='padding-left:25px;' class='{$btnTextClass}'>{$assignedToText}</span>" : $assignToHtml;
|
||||
break;
|
||||
case 'assignedDate':
|
||||
echo substr($task->assignedDate, 5, 11);
|
||||
@@ -2512,8 +2524,6 @@ class taskModel extends model
|
||||
break;
|
||||
}
|
||||
|
||||
common::printIcon('task', 'assignTo', "projectID=$task->project&taskID=$task->id", $task, 'list', '', '', 'iframe', true);
|
||||
|
||||
if($task->status == 'wait') common::printIcon('task', 'start', "taskID=$task->id", $task, 'list', '', '', 'iframe', true);
|
||||
if($task->status == 'pause') common::printIcon('task', 'restart', "taskID=$task->id", $task, 'list', '', '', 'iframe', true);
|
||||
if($task->status == 'done' or $task->status == 'cancel' or $task->status == 'closed') common::printIcon('task', 'close', "taskID=$task->id", $task, 'list', '', '', 'iframe', true);
|
||||
|
||||
@@ -204,6 +204,6 @@ $config->testcase->datatable->fieldList['stepNumber']['name'] = $lang->testc
|
||||
|
||||
$config->testcase->datatable->fieldList['actions']['title'] = 'actions';
|
||||
$config->testcase->datatable->fieldList['actions']['fixed'] = 'right';
|
||||
$config->testcase->datatable->fieldList['actions']['width'] = '190';
|
||||
$config->testcase->datatable->fieldList['actions']['width'] = '150';
|
||||
$config->testcase->datatable->fieldList['actions']['required'] = 'yes';
|
||||
$config->testcase->datatable->fieldList['actions']['sort'] = 'no';
|
||||
|
||||
@@ -2428,6 +2428,8 @@ class upgradeModel extends model
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->dao->delete()->from(TABLE_CONFIG)->where('module')->eq('common')->andWhere('section')->eq('customMenu')->andWhere('key')->eq('full_project')->exec();
|
||||
return !dao::isError();
|
||||
}
|
||||
|
||||
|
||||
@@ -10,4 +10,15 @@
|
||||
*/
|
||||
|
||||
/* Finish task #4751. */
|
||||
.hide-sidebar #sidebar .cell {display:none;}
|
||||
.hide-sidebar #sidebar .cell{display:none;}
|
||||
/* 调整每个创建页面的宽度*/
|
||||
.main-content{padding:30px;}
|
||||
#nextPage, #prevPage{background-color:#909090;color:#fff}
|
||||
|
||||
.table-header.fixed-right>.btn-toolbar{top:0px;}
|
||||
.c-assignedTo .icon-hand-right {opacity:0;}
|
||||
.c-assignedTo a:hover .icon-hand-right {opacity:1;}
|
||||
.main-table tbody>tr:nth-child(odd) .c-assignedTo .btn{background-color:#f5f5f5;}
|
||||
.main-table tbody>tr:hover .c-assignedTo .btn {background-color:#e9f2fb;}
|
||||
.main-table tbody>tr>td.col-hover.c-assignedTo .btn {background-color:#e9f2fb;}
|
||||
.main-table thead>tr>th.c-assignedTo {padding-left:35px;}
|
||||
|
||||
Reference in New Issue
Block a user