Merge branch 'master' of https://git.zcorp.cc/zentaopms
This commit is contained in:
@@ -60,7 +60,7 @@ class baseHelper
|
||||
* @access public
|
||||
* @return string the link string.
|
||||
*/
|
||||
static public function createLink($moduleName, $methodName = 'index', $vars = '', $viewType = '', $onlyBody = false, $PRJID = 0)
|
||||
static public function createLink($moduleName, $methodName = 'index', $vars = '', $viewType = '', $onlyBody = false, $PRJID = 0, $removePRJ = false)
|
||||
{
|
||||
/* 设置$appName和$moduleName。Set appName and moduleName. */
|
||||
global $app, $config;
|
||||
@@ -97,7 +97,7 @@ class baseHelper
|
||||
foreach($vars as $key => $value) $link .= "&$key=$value";
|
||||
|
||||
$link = self::processOnlyBodyParam($link, $onlyBody);
|
||||
return self::processPRJParam($link, $PRJID, $onlyBody, $moduleName);
|
||||
return self::processPRJParam($link, $PRJID, $onlyBody, $moduleName, $removePRJ);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -113,7 +113,7 @@ class baseHelper
|
||||
$link .= '.' . $viewType;
|
||||
|
||||
$link = self::processOnlyBodyParam($link, $onlyBody);
|
||||
return self::processPRJParam($link, $PRJID, $onlyBody, $moduleName);
|
||||
return self::processPRJParam($link, $PRJID, $onlyBody, $moduleName, $removePRJ);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -125,7 +125,7 @@ class baseHelper
|
||||
{
|
||||
$link .= $config->default->method . '.' . $viewType;
|
||||
$link = self::processOnlyBodyParam($link, $onlyBody);
|
||||
return self::processPRJParam($link, $PRJID, $onlyBody, $moduleName);
|
||||
return self::processPRJParam($link, $PRJID, $onlyBody, $moduleName, $removePRJ);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -137,7 +137,7 @@ class baseHelper
|
||||
{
|
||||
$link .= $moduleName . '/';
|
||||
$link = self::processOnlyBodyParam($link, $onlyBody);
|
||||
return self::processPRJParam($link, $PRJID, $onlyBody, $moduleName);
|
||||
return self::processPRJParam($link, $PRJID, $onlyBody, $moduleName, $removePRJ);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -147,7 +147,7 @@ class baseHelper
|
||||
*/
|
||||
$link .= $moduleName . '.' . $viewType;
|
||||
$link = self::processOnlyBodyParam($link, $onlyBody);
|
||||
return self::processPRJParam($link, $PRJID, $onlyBody, $moduleName);
|
||||
return self::processPRJParam($link, $PRJID, $onlyBody, $moduleName, $removePRJ);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -164,11 +164,11 @@ class baseHelper
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
public static function processPRJParam($link, $PRJID = '', $onlybody = false, $moduleName = '')
|
||||
public static function processPRJParam($link, $PRJID = '', $onlybody = false, $moduleName = '', $removePRJ = false)
|
||||
{
|
||||
global $config, $lang;
|
||||
|
||||
if(!$PRJID) return $link;
|
||||
if(!$PRJID || $removePRJ) return $link;
|
||||
$isProject = (zget($lang->navGroup, $moduleName) == 'project');
|
||||
if(!$isProject) return $link;
|
||||
|
||||
|
||||
@@ -850,7 +850,14 @@ class baseRouter
|
||||
*/
|
||||
public function setPRJ()
|
||||
{
|
||||
if(isset($_GET['PRJ'])) $this->session->set('PRJ', $_GET['PRJ']); //Set PRJ id into session.
|
||||
if(isset($_GET['PRJ']))
|
||||
{
|
||||
$this->session->set('PRJ', $_GET['PRJ']); //Set PRJ id into session.
|
||||
}
|
||||
else
|
||||
{
|
||||
unset($_SESSION['PRJ']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+8
-1
@@ -17,10 +17,17 @@ class ciModel extends model
|
||||
*/
|
||||
public function setMenu()
|
||||
{
|
||||
$repoID = $this->session->repoID;
|
||||
$repoID = $this->session->repoID;
|
||||
$projectID = $this->session->PRJ;
|
||||
$moduleName = $this->app->getModuleName();
|
||||
foreach($this->lang->{$moduleName}->menu as $key => $menu) common::setMenuVars($this->lang->{$moduleName}->menu, $key, $repoID);
|
||||
$this->lang->{$moduleName}->menuOrder = $this->lang->ci->menuOrder;
|
||||
if(!$projectID)
|
||||
{
|
||||
$this->lang->navGroup->jenkins = 'repo';
|
||||
$this->lang->navGroup->job = 'repo';
|
||||
$this->lang->noMenuModule[] = 'job';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -632,14 +632,13 @@ $lang->navGroup->nc = 'project';
|
||||
$lang->navGroup->build = 'project';
|
||||
$lang->navGroup->projectrelease = 'project';
|
||||
$lang->navGroup->projectbuild = 'project';
|
||||
$lang->navGroup->repo = 'project';
|
||||
$lang->navGroup->job = 'project';
|
||||
$lang->navGroup->jenkins = 'project';
|
||||
$lang->navGroup->compile = 'project';
|
||||
|
||||
$lang->navGroup->durationestimation = 'project';
|
||||
|
||||
$lang->navGroup->repo = 'repo';
|
||||
$lang->navGroup->job = 'repo';
|
||||
$lang->navGroup->jenkins = 'repo';
|
||||
$lang->navGroup->compile = 'repo';
|
||||
|
||||
$lang->navGroup->stage = 'system';
|
||||
$lang->navGroup->measurement = 'system';
|
||||
$lang->navGroup->report = 'system';
|
||||
|
||||
@@ -632,14 +632,13 @@ $lang->navGroup->nc = 'project';
|
||||
$lang->navGroup->build = 'project';
|
||||
$lang->navGroup->projectrelease = 'project';
|
||||
$lang->navGroup->projectbuild = 'project';
|
||||
$lang->navGroup->repo = 'project';
|
||||
$lang->navGroup->job = 'project';
|
||||
$lang->navGroup->jenkins = 'project';
|
||||
$lang->navGroup->compile = 'project';
|
||||
|
||||
$lang->navGroup->durationestimation = 'project';
|
||||
|
||||
$lang->navGroup->repo = 'repo';
|
||||
$lang->navGroup->job = 'repo';
|
||||
$lang->navGroup->jenkins = 'repo';
|
||||
$lang->navGroup->compile = 'repo';
|
||||
|
||||
$lang->navGroup->stage = 'system';
|
||||
$lang->navGroup->measurement = 'system';
|
||||
$lang->navGroup->report = 'system';
|
||||
|
||||
@@ -632,14 +632,13 @@ $lang->navGroup->nc = 'project';
|
||||
$lang->navGroup->build = 'project';
|
||||
$lang->navGroup->projectrelease = 'project';
|
||||
$lang->navGroup->projectbuild = 'project';
|
||||
$lang->navGroup->repo = 'project';
|
||||
$lang->navGroup->job = 'project';
|
||||
$lang->navGroup->jenkins = 'project';
|
||||
$lang->navGroup->compile = 'project';
|
||||
|
||||
$lang->navGroup->durationestimation = 'project';
|
||||
|
||||
$lang->navGroup->repo = 'repo';
|
||||
$lang->navGroup->job = 'repo';
|
||||
$lang->navGroup->jenkins = 'repo';
|
||||
$lang->navGroup->compile = 'repo';
|
||||
|
||||
$lang->navGroup->stage = 'system';
|
||||
$lang->navGroup->measurement = 'system';
|
||||
$lang->navGroup->report = 'system';
|
||||
|
||||
@@ -632,14 +632,13 @@ $lang->navGroup->nc = 'project';
|
||||
$lang->navGroup->build = 'project';
|
||||
$lang->navGroup->projectrelease = 'project';
|
||||
$lang->navGroup->projectbuild = 'project';
|
||||
$lang->navGroup->repo = 'project';
|
||||
$lang->navGroup->job = 'project';
|
||||
$lang->navGroup->jenkins = 'project';
|
||||
$lang->navGroup->compile = 'project';
|
||||
|
||||
$lang->navGroup->durationestimation = 'project';
|
||||
|
||||
$lang->navGroup->repo = 'repo';
|
||||
$lang->navGroup->job = 'repo';
|
||||
$lang->navGroup->jenkins = 'repo';
|
||||
$lang->navGroup->compile = 'repo';
|
||||
|
||||
$lang->navGroup->stage = 'system';
|
||||
$lang->navGroup->measurement = 'system';
|
||||
$lang->navGroup->report = 'system';
|
||||
|
||||
@@ -28,7 +28,7 @@ $lang->login = '登录';
|
||||
$lang->help = '帮助';
|
||||
$lang->aboutZenTao = '关于禅道';
|
||||
$lang->profile = '个人档案';
|
||||
$lang->changePassword = '更改密码';
|
||||
$lang->changePassword = '修改密码';
|
||||
$lang->runInfo = "<div class='row'><div class='u-1 a-center' id='debugbar'>时间: %s 毫秒, 内存: %s KB, 查询: %s. </div></div>";
|
||||
$lang->agreement = "已阅读并同意<a href='http://zpl.pub/page/zplv12.html' target='_blank'>《Z PUBLIC LICENSE授权协议1.2》</a>。<span class='text-danger'>未经许可,不得去除、隐藏或遮掩禅道软件的任何标志及链接。</span>";
|
||||
$lang->designedByAIUX = "<a href='https://api.zentao.net/goto.php?item=aiux' class='link-aiux' target='_blank'>Designed by <strong>艾体验</strong></a>";
|
||||
@@ -632,14 +632,13 @@ $lang->navGroup->nc = 'project';
|
||||
$lang->navGroup->build = 'project';
|
||||
$lang->navGroup->projectrelease = 'project';
|
||||
$lang->navGroup->projectbuild = 'project';
|
||||
$lang->navGroup->repo = 'project';
|
||||
$lang->navGroup->job = 'project';
|
||||
$lang->navGroup->jenkins = 'project';
|
||||
$lang->navGroup->compile = 'project';
|
||||
|
||||
$lang->navGroup->durationestimation = 'project';
|
||||
|
||||
$lang->navGroup->repo = 'repo';
|
||||
$lang->navGroup->job = 'repo';
|
||||
$lang->navGroup->jenkins = 'repo';
|
||||
$lang->navGroup->compile = 'repo';
|
||||
|
||||
$lang->navGroup->stage = 'system';
|
||||
$lang->navGroup->measurement = 'system';
|
||||
$lang->navGroup->report = 'system';
|
||||
@@ -893,6 +892,7 @@ $lang->menu->waterfall->weekly = array('link' => '报告|weekly|index|pr
|
||||
$lang->menu->waterfall->doc = array('link' => '文档|doc|index|project={PROJECT}');
|
||||
$lang->menu->waterfall->projectstory = array('link' => '需求|projectstory|requirement', 'alias' => 'requirement,story,track');
|
||||
$lang->menu->waterfall->design = '设计|design|browse|product={PRODUCT}';
|
||||
$lang->menu->waterfall->ci = '代码|repo|browse|';
|
||||
$lang->menu->waterfall->qa = array('link' => '测试|bug|browse|product={PRODUCT}', 'subModule' => ',testcase,testtask,testsuite,caselib,');
|
||||
$lang->menu->waterfall->projectrelease = array('link' => '发布|projectrelease|browse');
|
||||
$lang->menu->waterfall->issue = '问题|issue|browse|';
|
||||
@@ -959,6 +959,6 @@ $lang->projectstory->menu->story = array('link' => "{$lang->projectSRCommo
|
||||
$lang->projectstory->menu->track = array('link' => '跟踪矩阵|projectstory|track', 'subModule' => '');
|
||||
|
||||
$lang->nc->menu = $lang->auditplan->menu;
|
||||
$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'story', 'job', 'jenkins', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search');
|
||||
$lang->noMenuModule = array('my', 'todo', 'effort', 'program', 'product', 'productplan', 'projectbuild', 'story', 'branch', 'release', 'attend', 'leave', 'makeup', 'overtime', 'lieu', 'custom', 'admin', 'mail', 'extension', 'dev', 'backup', 'action', 'cron', 'issue', 'risk', 'pssp', 'sms', 'message', 'webhook', 'search');
|
||||
|
||||
include (dirname(__FILE__) . '/menuOrder.php');
|
||||
|
||||
@@ -28,7 +28,7 @@ $lang->login = '登錄';
|
||||
$lang->help = '幫助';
|
||||
$lang->aboutZenTao = '關於禪道';
|
||||
$lang->profile = '個人檔案';
|
||||
$lang->changePassword = '更改密碼';
|
||||
$lang->changePassword = '修改密碼';
|
||||
$lang->runInfo = "<div class='row'><div class='u-1 a-center' id='debugbar'>時間: %s 毫秒, 內存: %s KB, 查詢: %s. </div></div>";
|
||||
$lang->agreement = "已閲讀並同意<a href='http://zpl.pub/page/zplv12.html' target='_blank'>《Z PUBLIC LICENSE授權協議1.2》</a>。<span class='text-danger'>未經許可,不得去除、隱藏或遮掩禪道軟件的任何標誌及連結。</span>";
|
||||
$lang->designedByAIUX = "<a href='https://api.zentao.net/goto.php?item=aiux' class='link-aiux' target='_blank'>Designed by <strong>艾體驗</strong></a>";
|
||||
|
||||
@@ -283,12 +283,12 @@ class commonModel extends model
|
||||
if(!$isGuest)
|
||||
{
|
||||
echo '<li class="user-profile-item">';
|
||||
echo "<a href='" . helper::createLink('my', 'profile') . "' class='" . (!empty($app->user->role) && isset($lang->user->roleList[$app->user->role]) ? '' : ' no-role') . "'>";
|
||||
echo "<a href='" . helper::createLink('my', 'profile', '', '', true) . "' class='" . (!empty($app->user->role) && isset($lang->user->roleList[$app->user->role]) ? '' : ' no-role') . "'>";
|
||||
echo "<div class='avatar avatar bg-secondary avatar-circle'>" . strtoupper($app->user->account[0]) . "</div>\n";
|
||||
echo '<div class="user-profile-name">' . (empty($app->user->realname) ? $app->user->account : $app->user->realname) . '</div>';
|
||||
if(isset($lang->user->roleList[$app->user->role])) echo '<div class="user-profile-role">' . $lang->user->roleList[$app->user->role] . '</div>';
|
||||
echo '</a></li><li class="divider"></li>';
|
||||
echo '<li>' . html::a(helper::createLink('my', 'profile'), $lang->profile) . '</li>';
|
||||
echo '<li>' . html::a(helper::createLink('my', 'profile', '', '', true), $lang->profile, '', "class='iframe'") . '</li>';
|
||||
echo '<li>' . html::a(helper::createLink('my', 'changepassword', '', '', true), $lang->changePassword, '', "class='iframe' data-width='500'") . '</li>';
|
||||
|
||||
echo "<li class='divider'></li>";
|
||||
@@ -577,7 +577,7 @@ class commonModel extends model
|
||||
$item->moduleName = $currentModule;
|
||||
$item->methodName = $currentMethod;
|
||||
$item->vars = $vars;
|
||||
$item->url = helper::createLink($currentModule, $currentMethod, $vars);
|
||||
$item->url = helper::createLink($currentModule, $currentMethod, $vars, '', 0, 0, 1);
|
||||
|
||||
$items[] = $item;
|
||||
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
.col-6{width:50% !important;}
|
||||
.col-md-6{width:49% !important;}
|
||||
.cell{height:440px;}
|
||||
.col-sm-6{width:49% !important;}
|
||||
.cell{height:440px; width: 100%}
|
||||
.cell .divider{ display: block; width: 1px; height: 340px; background-color: rgba(0,0,0,.05); float: left;}
|
||||
.main-header{margin-bottom:20px;}
|
||||
.main-header .user-name{margin: 0 10px 0 0; font-size: 14px; line-height: 34px; font-weight: bold;}
|
||||
.main-header .user-role{margin: 0 10px 0 0; font-size: 12px; line-height: 34px;}
|
||||
.main-actions{margin: 20px 0 20px 0; text-align: center;}
|
||||
.user-title{margin: 5px 10px; font-size: 14px; font-weight: bold; border-left: 3px solid #006af1; padding-left: 10px;}
|
||||
.right-info{padding-top: 30px;}
|
||||
.dl-horizontal{margin:0px;}
|
||||
.divider{border-left:1px solid #e5e5e5;}
|
||||
|
||||
|
||||
+87
-102
@@ -11,112 +11,97 @@
|
||||
*/
|
||||
?>
|
||||
<?php include '../../common/view/header.html.php';?>
|
||||
<div id='mainContent' class='main-row'>
|
||||
<div class='main-col col-6'>
|
||||
<div class='cell'>
|
||||
<div class='main-header'>
|
||||
<h2><?php echo $lang->user->legendBasic;?></h2>
|
||||
<div class='actions pull-right'>
|
||||
<?php echo html::a($this->createLink('my', 'editprofile'), $lang->user->editProfile, '', "class='btn btn-primary'");?>
|
||||
</div>
|
||||
<div id='mainContent'>
|
||||
<div class='cell'>
|
||||
<div class='main-header text-center'>
|
||||
<span class='user-name'><?php echo $user->realname;?></span>
|
||||
<span class='user-role'><?php echo zget($lang->user->roleList, $user->role);?></span>
|
||||
</div>
|
||||
<div class='row'>
|
||||
<div class='col-sm-6'>
|
||||
<div class='user-title'><?php echo $lang->user->basicInfo;?></div>
|
||||
<dl class='dl-horizontal info'>
|
||||
<dt><?php echo $lang->user->realname;?></dt>
|
||||
<dd><?php echo $user->realname;?></dd>
|
||||
<dt><?php echo $lang->user->account;?></dt>
|
||||
<dd><?php echo $user->account;?></dd>
|
||||
<dt><?php echo $lang->user->dept;?></dt>
|
||||
<dd>
|
||||
<?php
|
||||
if(empty($deptPath))
|
||||
{
|
||||
echo "/";
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach($deptPath as $key => $dept)
|
||||
{
|
||||
if($dept->name) echo $dept->name;
|
||||
if(isset($deptPath[$key + 1])) echo $lang->arrow;
|
||||
}
|
||||
}
|
||||
?>
|
||||
</dd>
|
||||
<dt><?php echo $lang->user->join;?></dt>
|
||||
<dd><?php echo formatTime($user->join);?></dd>
|
||||
</dl>
|
||||
<div class='user-title'><?php echo $lang->user->contactInfo;?></div>
|
||||
<dl class='dl-horizontal contact'>
|
||||
<dt><?php echo $lang->user->mobile;?></dt>
|
||||
<dd><?php echo $user->mobile;?></dd>
|
||||
<dt><?php echo $lang->user->phone;?></dt>
|
||||
<dd><?php echo $user->phone;?></dd>
|
||||
<dt><?php echo $lang->user->weixin;?></dt>
|
||||
<dd><?php echo $user->weixin;?></dd>
|
||||
<dt><?php echo $lang->user->qq;?></dt>
|
||||
<dd><?php echo $user->qq;?></dd>
|
||||
<dt><?php echo $lang->user->zipcode;?></dt>
|
||||
<dd><?php echo $user->zipcode;?></dd>
|
||||
</dl>
|
||||
<div class='user-title'><?php echo $lang->user->else;?></div>
|
||||
<dl class='dl-horizontal else'>
|
||||
<dt><?php echo $lang->user->commiter;?></dt>
|
||||
<dd><?php echo $user->commiter;?></dd>
|
||||
<dt><?php echo $lang->user->ip;?></dt>
|
||||
<dd><?php echo $user->ip;?></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<div class='row'>
|
||||
<div class='col-md-6'>
|
||||
<dl class='dl-horizontal info'>
|
||||
<dt><?php echo $lang->user->account;?></dt>
|
||||
<dd><?php echo $user->account;?></dd>
|
||||
<dt><?php echo $lang->user->realname;?></dt>
|
||||
<dd><?php echo $user->realname;?></dd>
|
||||
<dt><?php echo $lang->user->gender;?></dt>
|
||||
<dd><?php echo zget($lang->user->genderList, $user->gender);?></dd>
|
||||
<dt><?php echo $lang->user->dept;?></dt>
|
||||
<dd>
|
||||
<?php
|
||||
if(empty($deptPath))
|
||||
{
|
||||
echo "/";
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach($deptPath as $key => $dept)
|
||||
{
|
||||
if($dept->name) echo $dept->name;
|
||||
if(isset($deptPath[$key + 1])) echo $lang->arrow;
|
||||
}
|
||||
}
|
||||
?>
|
||||
</dd>
|
||||
<dt><?php echo $lang->user->role;?></dt>
|
||||
<dd><?php echo zget($lang->user->roleList, $user->role);?></dd>
|
||||
<dt><?php echo $lang->group->priv;?></dt>
|
||||
<dd><?php foreach($groups as $group) echo $group->name . ' '; ?></dd>
|
||||
<dt><?php echo $lang->user->commiter;?></dt>
|
||||
<dd><?php echo $user->commiter;?></dd>
|
||||
<dt><?php echo $lang->user->join;?></dt>
|
||||
<dd><?php echo formatTime($user->join);?></dd>
|
||||
<dt><?php echo $lang->user->visits;?></dt>
|
||||
<dd><?php echo $user->visits;?></dd>
|
||||
<dt><?php echo $lang->user->ip;?></dt>
|
||||
<dd><?php echo $user->ip;?></dd>
|
||||
<dt><?php echo $lang->user->last;?></dt>
|
||||
<dd><?php echo $user->last;?></dd>
|
||||
<?php if($user->ranzhi):?>
|
||||
<dt><?php echo $lang->user->ranzhi;?></dt>
|
||||
<dd>
|
||||
<?php echo $user->ranzhi . ' ';?>
|
||||
<?php if(common::hasPriv('my', 'unbind')) echo html::a($this->createLink('my', 'unbind'), "<i class='icon-unlink'></i>", 'hiddenwin', "class='bin-icon' title='{$lang->user->unbind}'");?>
|
||||
</dd>
|
||||
<?php endif;?>
|
||||
</dl>
|
||||
</div>
|
||||
<div class='divider'></div>
|
||||
<div class='col-md-6'>
|
||||
<dl class='dl-horizontal contact'>
|
||||
<dt><?php echo $lang->user->email;?></dt>
|
||||
<dd title='<?php echo $user->email;?>'><?php echo $user->email;?></dd>
|
||||
<?php if(!empty($config->user->contactField)):?>
|
||||
<?php foreach(explode(',', $config->user->contactField) as $field):?>
|
||||
<dt><?php echo $lang->user->$field;?></dt>
|
||||
<dd>
|
||||
<?php
|
||||
if($field == 'skype' and $user->$field)
|
||||
{
|
||||
echo html::a("callto://$user->skype", $user->skype);
|
||||
}
|
||||
elseif($field == 'qq' and $user->$field)
|
||||
{
|
||||
echo html::a("tencent://message/?uin=$user->qq", $user->qq);
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $user->$field;
|
||||
}
|
||||
?>
|
||||
</dd>
|
||||
<?php endforeach;?>
|
||||
<?php endif;?>
|
||||
<dt><?php echo $lang->user->address;?></dt>
|
||||
<dd title='<?php echo $user->address;?>'><?php echo $user->address;?></dd>
|
||||
<dt><?php echo $lang->user->zipcode;?></dt>
|
||||
<dd><?php echo $user->zipcode;?></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<div class='col-sm-6'>
|
||||
<dl class='dl-horizontal right-info'>
|
||||
<dt><?php echo $lang->user->gender;?></dt>
|
||||
<dd><?php echo zget($lang->user->genderList, $user->gender);?></dd>
|
||||
<dt><?php echo $lang->user->email;?></dt>
|
||||
<dd title='<?php echo $user->email;?>'><?php echo $user->email;?></dd>
|
||||
<dt><?php echo $lang->user->role;?></dt>
|
||||
<dd><?php echo zget($lang->user->roleList, $user->role);?></dd>
|
||||
<dt><?php echo $lang->group->priv;?></dt>
|
||||
<dd><?php foreach($groups as $group) echo $group->name . ' '; ?></dd>
|
||||
</dl>
|
||||
<dl class='dl-horizontal right-info'>
|
||||
<dt><?php echo $lang->user->skype;?></dt>
|
||||
<dd><?php if($user->skype) echo html::a("callto://$user->skype", $user->skype);?></dd>
|
||||
<dt><?php echo $lang->user->whatsapp;?></dt>
|
||||
<dd><?php echo $user->whatsapp;?></dd>
|
||||
<dt><?php echo $lang->user->slack;?></dt>
|
||||
<dd><?php echo $user->slack;?></dd>
|
||||
<dt><?php echo $lang->user->dingding;?></dt>
|
||||
<dd><?php echo $user->dingding;?></dd>
|
||||
<dt><?php echo $lang->user->address;?></dt>
|
||||
<dd title='<?php echo $user->address;?>'><?php echo $user->address;?></dd>
|
||||
</dl>
|
||||
<dl class='dl-horizontal right-info'>
|
||||
<dt><?php echo $lang->user->visits;?></dt>
|
||||
<dd><?php echo $user->visits;?></dd>
|
||||
<dt><?php echo $lang->user->last;?></dt>
|
||||
<dd><?php echo $user->last;?></dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='side-col col-6'>
|
||||
<div class='cell'>
|
||||
<div class='main-header'>
|
||||
<h2><?php echo $lang->user->legendContribution;?></h2>
|
||||
</div>
|
||||
<div class='row tiles'>
|
||||
<?php foreach($lang->user->personalData as $key => $title):?>
|
||||
<div class='col-4 col tile'>
|
||||
<div class='tile-title'><?php echo $title;?></div>
|
||||
<div class='tile-amount'><?php echo zget($personalData, $key, 0);?></div>
|
||||
</div>
|
||||
<?php endforeach;?>
|
||||
</div>
|
||||
<div class='main-actions'>
|
||||
<div class='btn-toolbar'>
|
||||
<?php common::printLink('my', 'changepassword', "", $lang->changePassword, '', "title={$lang->changePassword} class='btn'");?>
|
||||
<?php common::printLink('my', 'editprofile', "", $lang->user->editProfile, '', "title={$lang->user->editProfile} class='btn'");?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -122,7 +122,7 @@ class programModel extends model
|
||||
->setDefault('openedDate', helper::now())
|
||||
->setIF($this->post->acl == 'open', 'whitelist', '')
|
||||
->setIF($this->post->delta == 999, 'end', LONG_TIME)
|
||||
->setIF($this->post->budget != 0, 'budget', number_format($this->post->budget, 2))
|
||||
->setIF($this->post->budget != 0, 'budget', number_format((float)$this->post->budget, 2))
|
||||
->add('type', 'program')
|
||||
->join('whitelist', ',')
|
||||
->stripTags($this->config->program->editor->pgmcreate['id'], $this->config->allowedTags)
|
||||
@@ -234,7 +234,7 @@ class programModel extends model
|
||||
->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', number_format($this->post->budget, 2))
|
||||
->setIF($this->post->budget != 0, 'budget', number_format((float)$this->post->budget, 2))
|
||||
->join('whitelist', ',')
|
||||
->stripTags($this->config->program->editor->pgmedit['id'], $this->config->allowedTags)
|
||||
->remove('uid,delta,future')
|
||||
@@ -1264,7 +1264,7 @@ class programModel extends model
|
||||
->setIF($this->post->delta == 999, 'end', LONG_TIME)
|
||||
->setIF($this->post->delta == 999, 'days', 0)
|
||||
->setIF($this->post->acl == 'open', 'whitelist', '')
|
||||
->setIF($this->post->budget != 0, 'budget', number_format($this->post->budget, 2))
|
||||
->setIF($this->post->budget != 0, 'budget', number_format((float)$this->post->budget, 2))
|
||||
->setDefault('openedBy', $this->app->user->account)
|
||||
->setDefault('openedDate', helper::now())
|
||||
->setDefault('team', substr($this->post->name, 0, 30))
|
||||
@@ -1461,7 +1461,7 @@ class programModel extends model
|
||||
->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', number_format($this->post->budget, 2))
|
||||
->setIF($this->post->budget != 0, 'budget', number_format((float)$this->post->budget, 2))
|
||||
->join('whitelist', ',')
|
||||
->stripTags($this->config->program->editor->prjedit['id'], $this->config->allowedTags)
|
||||
->remove('products,branch,plans,delta,future')
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
<th><?php echo $lang->program->PGMBudget;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php echo html::input('budget', '', "class='form-control'" . (strpos($requiredFields, 'budget') !== false ? ' required' : ''));?>
|
||||
<?php echo html::number('budget', '', "class='form-control' min='0.00' step='0.01'" . (strpos($requiredFields, 'budget') !== false ? ' required' : ''));?>
|
||||
<span class='input-group-addon'></span>
|
||||
<?php echo html::select('budgetUnit', $lang->program->unitList, empty($parentProgram->budgetUnit) ? 'wanyuan' : $parentProgram->budgetUnit, "class='form-control'");?>
|
||||
</div>
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
<th><?php echo $lang->program->PGMBudget;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php echo html::input('budget', $program->budget != 0 ? $program->budget : '', "class='form-control'" . (strpos($requiredFields, 'budget') !== false ? ' required' : '') . ($program->budget == 0 ? 'disabled' : ''));?>
|
||||
<?php echo html::number('budget', $program->budget != 0 ? $program->budget : '', "class='form-control' min='0.00' step='0.01'" . (strpos($requiredFields, 'budget') !== false ? ' required' : '') . ($program->budget == 0 ? 'disabled' : ''));?>
|
||||
<span class='input-group-addon'></span>
|
||||
<?php echo html::select('budgetUnit', $lang->program->unitList, $program->budgetUnit, "class='form-control'");?>
|
||||
</div>
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
<?php else:?>
|
||||
<div class="main-col">
|
||||
<form class="main-table table-product" data-ride="table" id="productListForm" method="post" action='<?php echo $this->createLink('product', 'batchEdit', "programID=$program->id");?>'>
|
||||
<?php $canOrder = common::hasPriv('product', 'updataOrder');?>
|
||||
<?php $canOrder = common::hasPriv('product', 'updateOrder');?>
|
||||
<?php $canBatchEdit = common::hasPriv('product', 'batchEdit');?>
|
||||
<table id="productList" class="table has-sort-head table-fixed">
|
||||
<?php $vars = "programID=$program->id&browseType=$browseType&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}";?>
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
<th><?php echo $lang->program->PRJBudget;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php echo html::input('budget', '', "class='form-control'" . (strpos($requiredFields, 'budget') !== false ? ' required' : ''));?>
|
||||
<?php echo html::number('budget', '', "class='form-control' min='0.00' step='0.01'" . (strpos($requiredFields, 'budget') !== false ? ' required' : ''));?>
|
||||
<span class='input-group-addon'></span>
|
||||
<?php echo html::select('budgetUnit', $lang->program->unitList, empty($parentProgram->budgetUnit) ? 'wanyuan' : $parentProgram->budgetUnit, "class='form-control'");?>
|
||||
</div>
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
<th><?php echo $lang->program->PRJBudget;?></th>
|
||||
<td>
|
||||
<div class='input-group'>
|
||||
<?php echo html::input('budget', $project->budget != 0 ? $project->budget : '', "class='form-control'" . (strpos($requiredFields, 'budget') !== false ? ' required' : '') . ($project->budget == 0 ? 'disabled' : ''));?>
|
||||
<?php echo html::number('budget', $project->budget != 0 ? $project->budget : '', "class='form-control' min='0.00' step='0.01'" . (strpos($requiredFields, 'budget') !== false ? ' required' : '') . ($project->budget == 0 ? 'disabled' : ''));?>
|
||||
<span class='input-group-addon'></span>
|
||||
<?php echo html::select('budgetUnit', $lang->program->unitList, $project->budgetUnit, "class='form-control'");?>
|
||||
</div>
|
||||
|
||||
@@ -27,8 +27,12 @@ class repo extends control
|
||||
die(js::locate('back'));
|
||||
}
|
||||
|
||||
$this->scm = $this->app->loadClass('scm');
|
||||
$this->repos = $this->repo->getRepoPairs();
|
||||
/* Set repo menu group. */
|
||||
$this->projectID = $this->session->PRJ ? $this->session->PRJ : 0;
|
||||
if(!$this->projectID) $this->lang->navGroup->repo = 'repo';
|
||||
|
||||
$this->scm = $this->app->loadClass('scm');
|
||||
$this->repos = $this->repo->getRepoPairs($this->projectID);
|
||||
if(empty($this->repos) and $this->methodName != 'create') die(js::locate($this->repo->createLink('create')));
|
||||
|
||||
/* Unlock session for wait to get data of repo. */
|
||||
@@ -63,7 +67,7 @@ class repo extends control
|
||||
$this->view->repoID = $repoID;
|
||||
$this->view->orderBy = $orderBy;
|
||||
$this->view->pager = $pager;
|
||||
$this->view->products = $this->loadModel('product')->getPairs('noclosed');
|
||||
$this->view->products = $this->loadModel('product')->getProductPairsByProject($this->projectID);
|
||||
|
||||
$this->display();
|
||||
}
|
||||
@@ -91,7 +95,7 @@ class repo extends control
|
||||
|
||||
$this->view->groups = $this->loadModel('group')->getPairs();
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noletter|noempty|nodeleted');
|
||||
$this->view->products = $this->loadModel('product')->getPairs('noclosed');
|
||||
$this->view->products = $this->loadModel('product')->getProductPairsByProject($this->projectID);
|
||||
|
||||
$this->view->title = $this->lang->repo->common . $this->lang->colon . $this->lang->repo->create;
|
||||
$this->view->position[] = $this->lang->repo->create;
|
||||
@@ -130,7 +134,7 @@ class repo extends control
|
||||
$this->view->repoID = $repoID;
|
||||
$this->view->groups = $this->loadModel('group')->getPairs();
|
||||
$this->view->users = $this->loadModel('user')->getPairs('noletter|noempty|nodeleted');
|
||||
$this->view->products = $this->loadModel('product')->getPairs('noclosed');
|
||||
$this->view->products = $this->loadModel('product')->getProductPairsByProject($this->projectID);
|
||||
|
||||
$this->view->title = $this->lang->repo->common . $this->lang->colon . $this->lang->repo->edit;
|
||||
$this->view->position[] = html::a(inlink('maintain'), $this->lang->repo->common);
|
||||
|
||||
+36
-6
@@ -140,18 +140,33 @@ class repoModel extends model
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getList($productID = 0, $orderBy = 'id_desc', $pager = null)
|
||||
public function getList($projectID = 0, $orderBy = 'id_desc', $pager = null)
|
||||
{
|
||||
$repos = $this->dao->select('*')->from(TABLE_REPO)
|
||||
->where('deleted')->eq('0')
|
||||
->beginIF($productID)->andWhere("CONCAT(',', product, ',')")->like("%,{$productID},%")->fi()
|
||||
->orderBy($orderBy)
|
||||
->page($pager)->fetchAll('id');
|
||||
|
||||
/* Get products. */
|
||||
$productIdList = $this->loadModel('product')->getProductIDByProject($projectID, false);
|
||||
|
||||
foreach($repos as $i => $repo)
|
||||
{
|
||||
$repo->acl = json_decode($repo->acl);
|
||||
if(!$this->checkPriv($repo)) unset($repos[$i]);
|
||||
if(!$this->checkPriv($repo))
|
||||
{
|
||||
unset($repos[$i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
if($projectID)
|
||||
{
|
||||
foreach($productIdList as $productID)
|
||||
{
|
||||
if(strpos(",$repo->product,", ",$productID,") === false) unset($repos[$i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $repos;
|
||||
@@ -282,19 +297,34 @@ class repoModel extends model
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getRepoPairs($productID = 0)
|
||||
public function getRepoPairs($projectID = 0)
|
||||
{
|
||||
$repos = $this->dao->select('*')->from(TABLE_REPO)
|
||||
->where('deleted')->eq(0)
|
||||
->beginIF($productID)->andWhere("CONCAT(',', product, ',')")->like("%,{$productID},%")->fi()
|
||||
->fetchAll();
|
||||
|
||||
/* Get products. */
|
||||
$productIdList = $this->loadModel('product')->getProductIDByProject($projectID, false);
|
||||
|
||||
$repoPairs = array();
|
||||
foreach($repos as $repo)
|
||||
{
|
||||
$repo->acl = json_decode($repo->acl);
|
||||
$scm = $repo->SCM == 'Subversion' ? 'svn' : 'git';
|
||||
if($this->checkPriv($repo)) $repoPairs[$repo->id] = "[{$scm}] " . $repo->name;
|
||||
if($this->checkPriv($repo))
|
||||
{
|
||||
if($projectID)
|
||||
{
|
||||
foreach($productIdList as $productID)
|
||||
{
|
||||
if(strpos(",$repo->product,", ",$productID,") !== false) $repoPairs[$repo->id] = "[{$scm}] " . $repo->name;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$repoPairs[$repo->id] = "[{$scm}] " . $repo->name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $repoPairs;
|
||||
|
||||
@@ -78,6 +78,7 @@ $lang->user->asGuest = "Gast";
|
||||
$lang->user->goback = "Zurück";
|
||||
$lang->user->deleted = '(Gelöscht)';
|
||||
$lang->user->search = 'Suche';
|
||||
$lang->user->else = 'Else';
|
||||
|
||||
$lang->user->saveTemplate = 'Save as Template';
|
||||
$lang->user->setPublic = 'Set as Public Template';
|
||||
|
||||
@@ -78,6 +78,7 @@ $lang->user->asGuest = "Guest";
|
||||
$lang->user->goback = "Back";
|
||||
$lang->user->deleted = '(Deleted)';
|
||||
$lang->user->search = 'Search';
|
||||
$lang->user->else = 'Else';
|
||||
|
||||
$lang->user->saveTemplate = 'Save as Template';
|
||||
$lang->user->setPublic = 'Set as Public Template';
|
||||
|
||||
@@ -78,6 +78,7 @@ $lang->user->asGuest = "Invité";
|
||||
$lang->user->goback = "Retour";
|
||||
$lang->user->deleted = '(Supprimé)';
|
||||
$lang->user->search = 'Recherche';
|
||||
$lang->user->else = 'Else';
|
||||
|
||||
$lang->user->saveTemplate = 'Sauver comme Modèle';
|
||||
$lang->user->setPublic = 'Définir comme Modèle Public';
|
||||
|
||||
@@ -78,6 +78,7 @@ $lang->user->asGuest = "Khách vãng lai";
|
||||
$lang->user->goback = "Trở lại";
|
||||
$lang->user->deleted = '(Xóa)';
|
||||
$lang->user->search = 'Tìm kiếm';
|
||||
$lang->user->else = 'Else';
|
||||
|
||||
$lang->user->saveTemplate = 'Lưu thành mẫu';
|
||||
$lang->user->setPublic = 'Thiết lập thành mẫu công khai';
|
||||
|
||||
@@ -14,13 +14,13 @@ $lang->user->id = '用户编号';
|
||||
$lang->user->inside = '内部人员';
|
||||
$lang->user->outside = '外部人员';
|
||||
$lang->user->company = '所属公司';
|
||||
$lang->user->dept = '所属部门';
|
||||
$lang->user->dept = '部门';
|
||||
$lang->user->account = '用户名';
|
||||
$lang->user->password = '密码';
|
||||
$lang->user->password2 = '请重复密码';
|
||||
$lang->user->role = '职位';
|
||||
$lang->user->group = '权限分组';
|
||||
$lang->user->realname = '真实姓名';
|
||||
$lang->user->realname = '姓名';
|
||||
$lang->user->nickname = '昵称';
|
||||
$lang->user->commiter = '源代码帐号';
|
||||
$lang->user->birthyear = '出生年';
|
||||
@@ -29,7 +29,7 @@ $lang->user->email = '邮箱';
|
||||
$lang->user->basicInfo = '基本信息';
|
||||
$lang->user->accountInfo = '帐号信息';
|
||||
$lang->user->verify = '安全验证';
|
||||
$lang->user->contactInfo = '联系信息';
|
||||
$lang->user->contactInfo = '联系方式';
|
||||
$lang->user->skype = 'Skype';
|
||||
$lang->user->qq = 'QQ';
|
||||
$lang->user->mobile = '手机';
|
||||
@@ -68,7 +68,7 @@ $lang->user->login = "用户登录";
|
||||
$lang->user->bind = "绑定已有账户";
|
||||
$lang->user->oauthRegister = "注册新账号";
|
||||
$lang->user->mobileLogin = "手机访问";
|
||||
$lang->user->editProfile = "修改档案";
|
||||
$lang->user->editProfile = "编辑档案";
|
||||
$lang->user->deny = "访问受限";
|
||||
$lang->user->confirmDelete = "您确定删除该用户吗?";
|
||||
$lang->user->confirmUnlock = "您确定解除该用户的锁定状态吗?";
|
||||
@@ -78,6 +78,7 @@ $lang->user->asGuest = "游客访问";
|
||||
$lang->user->goback = "返回前一页";
|
||||
$lang->user->deleted = '(已删除)';
|
||||
$lang->user->search = '搜索';
|
||||
$lang->user->else = '其他';
|
||||
|
||||
$lang->user->saveTemplate = '保存模板';
|
||||
$lang->user->setPublic = '设为公共模板';
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
$lang->user->common = '用戶';
|
||||
$lang->user->id = '用戶編號';
|
||||
$lang->user->company = '所屬公司';
|
||||
$lang->user->dept = '所屬部門';
|
||||
$lang->user->dept = '部門';
|
||||
$lang->user->account = '用戶名';
|
||||
$lang->user->password = '密碼';
|
||||
$lang->user->password2 = '請重複密碼';
|
||||
$lang->user->role = '職位';
|
||||
$lang->user->group = '權限分組';
|
||||
$lang->user->realname = '真實姓名';
|
||||
$lang->user->realname = '姓名';
|
||||
$lang->user->nickname = '暱稱';
|
||||
$lang->user->commiter = '原始碼帳號';
|
||||
$lang->user->birthyear = '出生年';
|
||||
@@ -27,7 +27,7 @@ $lang->user->email = '郵箱';
|
||||
$lang->user->basicInfo = '基本信息';
|
||||
$lang->user->accountInfo = '帳號信息';
|
||||
$lang->user->verify = '安全驗證';
|
||||
$lang->user->contactInfo = '聯繫信息';
|
||||
$lang->user->contactInfo = '聯繫方式';
|
||||
$lang->user->skype = 'Skype';
|
||||
$lang->user->qq = 'QQ';
|
||||
$lang->user->mobile = '手機';
|
||||
@@ -66,7 +66,7 @@ $lang->user->login = "用戶登錄";
|
||||
$lang->user->bind = "綁定已有賬戶";
|
||||
$lang->user->oauthRegister = "註冊新賬號";
|
||||
$lang->user->mobileLogin = "手機訪問";
|
||||
$lang->user->editProfile = "修改檔案";
|
||||
$lang->user->editProfile = "編輯檔案";
|
||||
$lang->user->deny = "訪問受限";
|
||||
$lang->user->confirmDelete = "您確定刪除該用戶嗎?";
|
||||
$lang->user->confirmUnlock = "您確定解除該用戶的鎖定狀態嗎?";
|
||||
@@ -76,6 +76,7 @@ $lang->user->asGuest = "遊客訪問";
|
||||
$lang->user->goback = "返回前一頁";
|
||||
$lang->user->deleted = '(已刪除)';
|
||||
$lang->user->search = '搜索';
|
||||
$lang->user->else = '其他';
|
||||
|
||||
$lang->user->saveTemplate = '保存模板';
|
||||
$lang->user->setPublic = '設為公共模板';
|
||||
|
||||
Reference in New Issue
Block a user