This commit is contained in:
hufangzhou
2020-12-28 10:49:01 +08:00
26 changed files with 213 additions and 173 deletions
+8 -8
View File
@@ -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;
+8 -1
View File
@@ -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
View File
@@ -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';
}
}
/**
+4 -5
View File
@@ -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';
+4 -5
View File
@@ -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';
+4 -5
View File
@@ -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';
+4 -5
View File
@@ -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';
+7 -7
View File
@@ -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');
+1 -1
View File
@@ -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>";
+3 -3
View File
@@ -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;
+7 -2
View File
@@ -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
View File
@@ -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>
+4 -4
View File
@@ -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')
+1 -1
View File
@@ -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>
+1 -1
View File
@@ -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>
+1 -1
View File
@@ -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}";?>
+1 -1
View File
@@ -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>
+1 -1
View File
@@ -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>
+9 -5
View File
@@ -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
View File
@@ -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;
+1
View File
@@ -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';
+1
View File
@@ -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';
+1
View File
@@ -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';
+1
View File
@@ -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';
+5 -4
View File
@@ -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 = '设为公共模板';
+5 -4
View File
@@ -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 = '設為公共模板';