Merge branch 'master' of https://gitlab.zcorp.cc/easycorp/zentaopms
This commit is contained in:
@@ -23,4 +23,3 @@ CREATE TABLE `zt_mr` (
|
||||
`mergeStatus` char(30) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
|
||||
@@ -234,11 +234,14 @@ class html extends baseHTML
|
||||
/**
|
||||
* Create user avatar.
|
||||
*
|
||||
* @param string|object|array $user User object or user avatar address or user account
|
||||
* @param string|int $size Avatar size, can be a number or preset sizes: "xs", "sm", "", "lg", "xl", default is ""
|
||||
* @param string $className Avatar element class name, default is "avatar-circle"
|
||||
* @param string $attrib Extra attributes on avatar element
|
||||
* @param string $tag Avatar element tag name, default is "div"
|
||||
* @param string|object|array $user User object or user avatar url or user account
|
||||
* @param string|int $size Avatar size, can be a number or preset sizes: "xs", "sm", "", "lg", "xl", default is ""
|
||||
* @param string $className Avatar element class name, default is "avatar-circle"
|
||||
* @param string $attrib Extra attributes on avatar element
|
||||
* @param string $tag Avatar element tag name, default is "div"
|
||||
* @param string $hueDistance Hue distance used as background color for default avatar
|
||||
* @param string $saturation Saturation used as background color for default avatar
|
||||
* @param string $lightness Lightness used as background color for default avatar
|
||||
* @static
|
||||
* @access public
|
||||
* @return string
|
||||
@@ -290,7 +293,7 @@ class html extends baseHTML
|
||||
/**
|
||||
* Create a small user avatar.
|
||||
*
|
||||
* @param string|object $user User object or user avatar address or user account
|
||||
* @param string|object $user User object or user avatar url or user account
|
||||
* @param string $className Avatar element class name, default is "avatar-circle"
|
||||
* @param string $attrib Extra attributes on avatar element
|
||||
* @param string $tag Avatar element tag name, default is "div"
|
||||
@@ -306,7 +309,7 @@ class html extends baseHTML
|
||||
/**
|
||||
* Create a large user avatar.
|
||||
*
|
||||
* @param string|object $user User object or user avatar address or user account
|
||||
* @param string|object $user User object or user avatar url or user account
|
||||
* @param string $className Avatar element class name, default is "avatar-circle"
|
||||
* @param string $attrib Extra attributes on avatar element
|
||||
* @param string $tag Avatar element tag name, default is "div"
|
||||
|
||||
@@ -117,7 +117,7 @@ $lang->doc->allExecutions = 'All' . $lang->executionCommon . 's';
|
||||
|
||||
$lang->doc->libTypeList['product'] = $lang->productCommon . ' Library';
|
||||
if($config->systemMode == 'new') $lang->doc->libTypeList['project'] = 'Project Library';
|
||||
$lang->doc->libTypeList['execution'] = $lang->executionCommon . ' Library';
|
||||
$lang->doc->libTypeList['execution'] = $lang->execution->common . ' Library';
|
||||
$lang->doc->libTypeList['custom'] = 'Custom Library';
|
||||
|
||||
$lang->doc->libIconList['product'] = 'icon-product';
|
||||
|
||||
@@ -117,7 +117,7 @@ $lang->doc->allExecutions = '所有' . $lang->executionCommon;
|
||||
|
||||
$lang->doc->libTypeList['product'] = $lang->productCommon . '文档库';
|
||||
if($config->systemMode == 'new') $lang->doc->libTypeList['project'] = '项目文档库';
|
||||
$lang->doc->libTypeList['execution'] = $lang->executionCommon . '文档库';
|
||||
$lang->doc->libTypeList['execution'] = $lang->execution->common . '文档库';
|
||||
$lang->doc->libTypeList['custom'] = '自定义文档库';
|
||||
|
||||
$lang->doc->libIconList['product'] = 'icon-product';
|
||||
|
||||
@@ -486,7 +486,6 @@ class executionModel extends model
|
||||
|
||||
/* Child stage inherits parent stage permissions. */
|
||||
if(!isset($execution->acl)) $execution->acl = $oldExecution->acl;
|
||||
if($execution->acl == 'open') $execution->whitelist = '';
|
||||
|
||||
$execution = $this->loadModel('file')->processImgURL($execution, $this->config->execution->editor->edit['id'], $this->post->uid);
|
||||
|
||||
|
||||
@@ -91,7 +91,7 @@ foreach($executions as $projectID => $projectExecutions)
|
||||
}
|
||||
else if($execution->status == 'done' or $execution->status == 'closed')
|
||||
{
|
||||
$closedExecutionsHtml .= '<li>' . html::a(sprintf($link, $execution->id), $execution->name, '', "class='$selected' title='$execution->name' data-key='" . zget($executionsPinYin, $execution->name, '') . "' data-app='{$this->app->tab}'") . '</li>';
|
||||
$closedExecutionsHtml .= '<li>' . html::a(sprintf($link, $execution->id), $execution->name, '', "class='$selected executionName' title='$execution->name' data-key='" . zget($executionsPinYin, $execution->name, '') . "' data-app='{$this->app->tab}'") . '</li>';
|
||||
|
||||
if($selected == 'selected') $tabActive = 'closed';
|
||||
}
|
||||
|
||||
@@ -159,6 +159,8 @@ class group extends control
|
||||
foreach($this->lang->navGroup as $moduleName => $groupName)
|
||||
{
|
||||
if($groupName == $moduleName) continue;
|
||||
if($moduleName == 'testcase') $moduleName = 'case';
|
||||
|
||||
$navGroup[$groupName][$moduleName] = $moduleName;
|
||||
}
|
||||
$this->view->navGroup = $navGroup;
|
||||
|
||||
@@ -88,7 +88,6 @@ class personnelModel extends model
|
||||
foreach($userGroups[$account] as $groupID => $userGroup)
|
||||
{
|
||||
$group = isset($groupInfo[$groupID]) ? $groupInfo[$groupID] : '';
|
||||
if(!$group) continue;
|
||||
|
||||
if(!isset($group->programs))
|
||||
{
|
||||
|
||||
@@ -596,7 +596,6 @@ class productModel extends model
|
||||
if($oldProduct->bind) $this->config->product->edit->requiredFields = 'name';
|
||||
|
||||
$product = fixer::input('post')
|
||||
->setIF($this->post->acl == 'open', 'whitelist', '')
|
||||
->setDefault('line', 0)
|
||||
->join('whitelist', ',')
|
||||
->stripTags($this->config->product->editor->edit['id'], $this->config->allowedTags)
|
||||
@@ -1555,7 +1554,7 @@ class productModel extends model
|
||||
->fetchGroup('product', 'id');
|
||||
|
||||
$executionListKey = $this->config->systemMode == 'new' ? 'project' : 'productID';
|
||||
$executionList = $this->dao->select('t1.product as productID,t2.*')->from(TABLE_PROJECTPRODUCT)->alias('t1')
|
||||
$executionList = $this->dao->select('t1.product as productID,t2.*')->from(TABLE_PROJECTPRODUCT)->alias('t1')
|
||||
->leftJoin(TABLE_EXECUTION)->alias('t2')->on('t1.project=t2.id')
|
||||
->where('type')->in('stage,sprint')
|
||||
->beginIF($this->config->systemMode == 'new')->andWhere('t2.project')->in(array_keys($projectList))->fi()
|
||||
|
||||
@@ -95,7 +95,7 @@ foreach($products as $programID => $programProducts)
|
||||
}
|
||||
else if($product->status == 'closed')
|
||||
{
|
||||
$closedProductsHtml .= '<li>' . html::a($linkHtml, $productName, '', "class='$selected' title='$productName' class='closed' data-key='" . zget($productsPinYin, $product->name, '') . "' data-app='$app->tab'") . '</li>';
|
||||
$closedProductsHtml .= '<li>' . html::a($linkHtml, $productName, '', "class='$selected productName' title='$productName' class='closed' data-key='" . zget($productsPinYin, $product->name, '') . "' data-app='$app->tab'") . '</li>';
|
||||
|
||||
if($selected == 'selected') $tabActive = 'closed';
|
||||
}
|
||||
|
||||
@@ -147,7 +147,7 @@ class programModel extends model
|
||||
* Get kanban group data.
|
||||
*
|
||||
* @access public
|
||||
* @return array
|
||||
* @return array
|
||||
*/
|
||||
public function getKanbanGroup()
|
||||
{
|
||||
@@ -252,7 +252,7 @@ class programModel extends model
|
||||
/* Group data by program. */
|
||||
foreach($programs as $programID => $programName)
|
||||
{
|
||||
$programGroup = new stdclass();
|
||||
$programGroup = new stdclass();
|
||||
$programGroup->name = $programName;
|
||||
$programGroup->products = zget($productGroup, $programID, array());
|
||||
|
||||
@@ -274,7 +274,7 @@ class programModel extends model
|
||||
*
|
||||
* @param string $account
|
||||
* @access public
|
||||
* @return array
|
||||
* @return array
|
||||
*/
|
||||
public function getInvolvedPrograms($account)
|
||||
{
|
||||
@@ -658,7 +658,6 @@ class programModel extends model
|
||||
->setDefault('end', '')
|
||||
->setIF($this->post->begin == '0000-00-00', 'begin', '')
|
||||
->setIF($this->post->end == '0000-00-00', 'end', '')
|
||||
->setIF($this->post->acl == 'open', 'whitelist', '')
|
||||
->setIF($this->post->delta == 999, 'end', LONG_TIME)
|
||||
->setIF($this->post->future, 'budget', 0)
|
||||
->setIF($this->post->budget != 0, 'budget', round($this->post->budget, 2))
|
||||
@@ -819,7 +818,7 @@ class programModel extends model
|
||||
while($program = $stmt->fetch())
|
||||
{
|
||||
$link = $this->getLink($moduleName, $methodName, $program->id, $vars, $from);
|
||||
$linkHtml = html::a($link, $program->name, '', "id='program$program->id' class='text-ellipsis' title=$program->name");
|
||||
$linkHtml = html::a($link, $program->name, '', "id='program$program->id' class='text-ellipsis programName' title=$program->name");
|
||||
|
||||
if(isset($programMenu[$program->id]) and !empty($programMenu[$program->id]))
|
||||
{
|
||||
|
||||
@@ -54,6 +54,8 @@ $programsPinYin = common::convert2Pinyin($programNames);
|
||||
#programTree ul > li.has-list:after {width: 14px;}
|
||||
#programTree ul > li.item-meas a.selected{color: #0c64eb;}
|
||||
#showClosed1 + label{color: #3c4353}
|
||||
|
||||
a.programName:focus, a.programName:hover {background: #0c64eb; color: #fff !important;}
|
||||
</style>
|
||||
<script>
|
||||
$('#programTree').tree();
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function saveMemebers()
|
||||
function saveMembers()
|
||||
{
|
||||
var isDeleted = false;
|
||||
var accountList = [];
|
||||
|
||||
@@ -933,7 +933,6 @@ class projectModel extends model
|
||||
->setIF($this->post->delta == 999, 'days', 0)
|
||||
->setIF($this->post->begin == '0000-00-00', 'begin', '')
|
||||
->setIF($this->post->end == '0000-00-00', 'end', '')
|
||||
->setIF($this->post->acl == 'open', 'whitelist', '')
|
||||
->setIF($this->post->future, 'budget', 0)
|
||||
->setIF($this->post->budget != 0, 'budget', round($this->post->budget, 2))
|
||||
->join('whitelist', ',')
|
||||
@@ -1318,8 +1317,7 @@ class projectModel extends model
|
||||
{
|
||||
$this->dao->delete()->from(TABLE_TEAM)->where('root')->eq((int)$projectID)->andWhere('type')->eq('project')->andWhere('account')->eq($account)->exec();
|
||||
|
||||
$this->loadModel('user');
|
||||
$this->user->updateUserView($projectID, 'project', array($account));
|
||||
$this->loadModel('user')->updateUserView($projectID, 'project', array($account));
|
||||
|
||||
if($removeExecution == 'yes')
|
||||
{
|
||||
@@ -1660,7 +1658,7 @@ class projectModel extends model
|
||||
|
||||
$type = $this->config->systemMode == 'new' ? $project->type : 'project';
|
||||
|
||||
$members = $this->dao->select("t1.account, if(t2.deleted='0', t2.realname, t1.account) as realname")->from(TABLE_TEAM)->alias('t1')
|
||||
$members = $this->dao->select("t1.account, if(t2.deleted='0', t2.realname, t1.account) as realname")->from(TABLE_TEAM)->alias('t1')
|
||||
->leftJoin(TABLE_USER)->alias('t2')->on('t1.account = t2.account')
|
||||
->where('t1.root')->eq((int)$projectID)
|
||||
->andWhere('t1.type')->eq($type)
|
||||
|
||||
@@ -97,7 +97,7 @@ foreach($projects as $programID => $programProjects)
|
||||
}
|
||||
else if($project->status == 'done' or $project->status == 'closed')
|
||||
{
|
||||
$closedProjectsHtml .= '<li>' . html::a(sprintf($link, $project->id), $projectName, '', "class='$selected' title='$projectName' data-key='" . zget($projectsPinYin, $project->name, '') . "'") . '</li>';
|
||||
$closedProjectsHtml .= '<li>' . html::a(sprintf($link, $project->id), $projectName, '', "class='$selected projectName' title='$projectName' data-key='" . zget($projectsPinYin, $project->name, '') . "'") . '</li>';
|
||||
|
||||
if($selected == 'selected') $tabActive = 'closed';
|
||||
}
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
else
|
||||
{
|
||||
echo html::submitButton('', '', 'hidden btn btn-wide btn-primary');
|
||||
echo html::commonButton($lang->save, 'onclick="saveMemebers()" id="saveBtn"', 'btn btn-wide btn-primary');
|
||||
echo html::commonButton($lang->save, 'onclick="saveMembers()" id="saveBtn"', 'btn btn-wide btn-primary');
|
||||
}
|
||||
echo html::backButton();
|
||||
?>
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
a {color: #169;}
|
||||
a:hover, a:active {text-decoration:underline; color: #C61A1A;}
|
||||
#swapper a {text-decoration: none;}
|
||||
#swapper .col-footer a:hover {color: #0c64eb;}
|
||||
h2,h3 {font-size: 20px; margin: 0; clear: both;}
|
||||
h3 {font-size: 16px;}
|
||||
.revision {font-size: 12px; line-height: 20px; text-align: right; padding-right: 8px;}
|
||||
|
||||
Reference in New Issue
Block a user