diff --git a/framework/base/helper.class.php b/framework/base/helper.class.php index b400ed8ec2..9c2f153519 100644 --- a/framework/base/helper.class.php +++ b/framework/base/helper.class.php @@ -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; diff --git a/framework/base/router.class.php b/framework/base/router.class.php index 0b91c6f06e..c1646bd563 100644 --- a/framework/base/router.class.php +++ b/framework/base/router.class.php @@ -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']); + } } /** diff --git a/module/ci/model.php b/module/ci/model.php index 02e2ff7dbf..340e826455 100644 --- a/module/ci/model.php +++ b/module/ci/model.php @@ -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'; + } } /** diff --git a/module/common/lang/de.php b/module/common/lang/de.php index af961d2ca2..019b96e78e 100644 --- a/module/common/lang/de.php +++ b/module/common/lang/de.php @@ -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'; diff --git a/module/common/lang/en.php b/module/common/lang/en.php index e42cf1b824..5f71ff1678 100644 --- a/module/common/lang/en.php +++ b/module/common/lang/en.php @@ -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'; diff --git a/module/common/lang/fr.php b/module/common/lang/fr.php index 230c806ba6..6bd5cd199b 100644 --- a/module/common/lang/fr.php +++ b/module/common/lang/fr.php @@ -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'; diff --git a/module/common/lang/vi.php b/module/common/lang/vi.php index 8e088c00a6..380fb7cee9 100644 --- a/module/common/lang/vi.php +++ b/module/common/lang/vi.php @@ -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'; diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index 5fec127a62..7469bf1b5f 100755 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -28,7 +28,7 @@ $lang->login = '登录'; $lang->help = '帮助'; $lang->aboutZenTao = '关于禅道'; $lang->profile = '个人档案'; -$lang->changePassword = '更改密码'; +$lang->changePassword = '修改密码'; $lang->runInfo = "
时间: %s 毫秒, 内存: %s KB, 查询: %s.
"; $lang->agreement = "已阅读并同意《Z PUBLIC LICENSE授权协议1.2》。未经许可,不得去除、隐藏或遮掩禅道软件的任何标志及链接。"; $lang->designedByAIUX = "Designed by 艾体验"; @@ -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'); diff --git a/module/common/lang/zh-tw.php b/module/common/lang/zh-tw.php index a5e8065548..63e6331751 100644 --- a/module/common/lang/zh-tw.php +++ b/module/common/lang/zh-tw.php @@ -28,7 +28,7 @@ $lang->login = '登錄'; $lang->help = '幫助'; $lang->aboutZenTao = '關於禪道'; $lang->profile = '個人檔案'; -$lang->changePassword = '更改密碼'; +$lang->changePassword = '修改密碼'; $lang->runInfo = "
時間: %s 毫秒, 內存: %s KB, 查詢: %s.
"; $lang->agreement = "已閲讀並同意《Z PUBLIC LICENSE授權協議1.2》。未經許可,不得去除、隱藏或遮掩禪道軟件的任何標誌及連結。"; $lang->designedByAIUX = "Designed by 艾體驗"; diff --git a/module/common/model.php b/module/common/model.php index a164ff4ce2..ee0852a2c6 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -283,12 +283,12 @@ class commonModel extends model if(!$isGuest) { echo '
  • '; - echo ""; + echo ""; echo "
    " . strtoupper($app->user->account[0]) . "
    \n"; echo ''; if(isset($lang->user->roleList[$app->user->role])) echo ''; echo '
  • '; - echo '
  • ' . html::a(helper::createLink('my', 'profile'), $lang->profile) . '
  • '; + echo '
  • ' . html::a(helper::createLink('my', 'profile', '', '', true), $lang->profile, '', "class='iframe'") . '
  • '; echo '
  • ' . html::a(helper::createLink('my', 'changepassword', '', '', true), $lang->changePassword, '', "class='iframe' data-width='500'") . '
  • '; echo "
  • "; @@ -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; diff --git a/module/my/css/profile.css b/module/my/css/profile.css index 987f23908e..5381d8a33f 100644 --- a/module/my/css/profile.css +++ b/module/my/css/profile.css @@ -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;} diff --git a/module/my/view/profile.html.php b/module/my/view/profile.html.php index 6f1d4022b9..e732bc9e34 100644 --- a/module/my/view/profile.html.php +++ b/module/my/view/profile.html.php @@ -11,112 +11,97 @@ */ ?> -
    -
    -
    -
    -

    user->legendBasic;?>

    -
    - createLink('my', 'editprofile'), $lang->user->editProfile, '', "class='btn btn-primary'");?> -
    +
    +
    +
    + realname;?> + user->roleList, $user->role);?> +
    +
    +
    +
    user->basicInfo;?>
    +
    +
    user->realname;?>
    +
    realname;?>
    +
    user->account;?>
    +
    account;?>
    +
    user->dept;?>
    +
    + $dept) + { + if($dept->name) echo $dept->name; + if(isset($deptPath[$key + 1])) echo $lang->arrow; + } + } + ?> +
    +
    user->join;?>
    +
    join);?>
    +
    +
    user->contactInfo;?>
    +
    +
    user->mobile;?>
    +
    mobile;?>
    +
    user->phone;?>
    +
    phone;?>
    +
    user->weixin;?>
    +
    weixin;?>
    +
    user->qq;?>
    +
    qq;?>
    +
    user->zipcode;?>
    +
    zipcode;?>
    +
    +
    user->else;?>
    +
    +
    user->commiter;?>
    +
    commiter;?>
    +
    user->ip;?>
    +
    ip;?>
    +
    -
    -
    -
    -
    user->account;?>
    -
    account;?>
    -
    user->realname;?>
    -
    realname;?>
    -
    user->gender;?>
    -
    user->genderList, $user->gender);?>
    -
    user->dept;?>
    -
    - $dept) - { - if($dept->name) echo $dept->name; - if(isset($deptPath[$key + 1])) echo $lang->arrow; - } - } - ?> -
    -
    user->role;?>
    -
    user->roleList, $user->role);?>
    -
    group->priv;?>
    -
    name . ' '; ?>
    -
    user->commiter;?>
    -
    commiter;?>
    -
    user->join;?>
    -
    join);?>
    -
    user->visits;?>
    -
    visits;?>
    -
    user->ip;?>
    -
    ip;?>
    -
    user->last;?>
    -
    last;?>
    - ranzhi):?> -
    user->ranzhi;?>
    -
    - ranzhi . ' ';?> - createLink('my', 'unbind'), "", 'hiddenwin', "class='bin-icon' title='{$lang->user->unbind}'");?> -
    - -
    -
    -
    -
    -
    -
    user->email;?>
    -
    email;?>
    - user->contactField)):?> - user->contactField) as $field):?> -
    user->$field;?>
    -
    - $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; - } - ?> -
    - - -
    user->address;?>
    -
    address;?>
    -
    user->zipcode;?>
    -
    zipcode;?>
    -
    -
    +
    +
    +
    user->gender;?>
    +
    user->genderList, $user->gender);?>
    +
    user->email;?>
    +
    email;?>
    +
    user->role;?>
    +
    user->roleList, $user->role);?>
    +
    group->priv;?>
    +
    name . ' '; ?>
    +
    +
    +
    user->skype;?>
    +
    skype) echo html::a("callto://$user->skype", $user->skype);?>
    +
    user->whatsapp;?>
    +
    whatsapp;?>
    +
    user->slack;?>
    +
    slack;?>
    +
    user->dingding;?>
    +
    dingding;?>
    +
    user->address;?>
    +
    address;?>
    +
    +
    +
    user->visits;?>
    +
    visits;?>
    +
    user->last;?>
    +
    last;?>
    +
    -
    -
    -
    -

    user->legendContribution;?>

    -
    -
    - user->personalData as $key => $title):?> -
    -
    -
    -
    - -
    +
    +
    + changePassword, '', "title={$lang->changePassword} class='btn'");?> + user->editProfile, '', "title={$lang->user->editProfile} class='btn'");?>
    diff --git a/module/program/model.php b/module/program/model.php index b5c30188a0..1d3b02faad 100644 --- a/module/program/model.php +++ b/module/program/model.php @@ -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') diff --git a/module/program/view/pgmcreate.html.php b/module/program/view/pgmcreate.html.php index 2b64f8f2dd..9445358c7e 100644 --- a/module/program/view/pgmcreate.html.php +++ b/module/program/view/pgmcreate.html.php @@ -61,7 +61,7 @@ program->PGMBudget;?>
    - + program->unitList, empty($parentProgram->budgetUnit) ? 'wanyuan' : $parentProgram->budgetUnit, "class='form-control'");?>
    diff --git a/module/program/view/pgmedit.html.php b/module/program/view/pgmedit.html.php index 2e541980ff..bf62db6c70 100644 --- a/module/program/view/pgmedit.html.php +++ b/module/program/view/pgmedit.html.php @@ -40,7 +40,7 @@ program->PGMBudget;?>
    - budget != 0 ? $program->budget : '', "class='form-control'" . (strpos($requiredFields, 'budget') !== false ? ' required' : '') . ($program->budget == 0 ? 'disabled' : ''));?> + budget != 0 ? $program->budget : '', "class='form-control' min='0.00' step='0.01'" . (strpos($requiredFields, 'budget') !== false ? ' required' : '') . ($program->budget == 0 ? 'disabled' : ''));?> program->unitList, $program->budgetUnit, "class='form-control'");?>
    diff --git a/module/program/view/pgmproduct.html.php b/module/program/view/pgmproduct.html.php index 576a0383e2..21c29d0625 100644 --- a/module/program/view/pgmproduct.html.php +++ b/module/program/view/pgmproduct.html.php @@ -31,7 +31,7 @@
    id");?>'> - + id&browseType=$browseType&orderBy=%s&recTotal={$pager->recTotal}&recPerPage={$pager->recPerPage}&pageID={$pager->pageID}";?> diff --git a/module/program/view/prjcreate.html.php b/module/program/view/prjcreate.html.php index 2084286135..7b07331eaa 100644 --- a/module/program/view/prjcreate.html.php +++ b/module/program/view/prjcreate.html.php @@ -51,7 +51,7 @@
    program->PRJBudget;?>
    - + program->unitList, empty($parentProgram->budgetUnit) ? 'wanyuan' : $parentProgram->budgetUnit, "class='form-control'");?>
    diff --git a/module/program/view/prjedit.html.php b/module/program/view/prjedit.html.php index 3429a44337..226edd98e6 100644 --- a/module/program/view/prjedit.html.php +++ b/module/program/view/prjedit.html.php @@ -52,7 +52,7 @@
    program->PRJBudget;?>
    - budget != 0 ? $project->budget : '', "class='form-control'" . (strpos($requiredFields, 'budget') !== false ? ' required' : '') . ($project->budget == 0 ? 'disabled' : ''));?> + budget != 0 ? $project->budget : '', "class='form-control' min='0.00' step='0.01'" . (strpos($requiredFields, 'budget') !== false ? ' required' : '') . ($project->budget == 0 ? 'disabled' : ''));?> program->unitList, $project->budgetUnit, "class='form-control'");?>
    diff --git a/module/repo/control.php b/module/repo/control.php index 5f5843b845..6e0058ef8a 100644 --- a/module/repo/control.php +++ b/module/repo/control.php @@ -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); diff --git a/module/repo/model.php b/module/repo/model.php index 17c8d51c7f..73ecf8a4c5 100644 --- a/module/repo/model.php +++ b/module/repo/model.php @@ -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; diff --git a/module/user/lang/de.php b/module/user/lang/de.php index ea9e7d9b9e..24ad776292 100644 --- a/module/user/lang/de.php +++ b/module/user/lang/de.php @@ -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'; diff --git a/module/user/lang/en.php b/module/user/lang/en.php index 8792f8d18a..35d448dd64 100644 --- a/module/user/lang/en.php +++ b/module/user/lang/en.php @@ -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'; diff --git a/module/user/lang/fr.php b/module/user/lang/fr.php index 1d2a11f06a..dffaad87d0 100644 --- a/module/user/lang/fr.php +++ b/module/user/lang/fr.php @@ -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'; diff --git a/module/user/lang/vi.php b/module/user/lang/vi.php index 1fe7dba3e3..0a7ae9b0b0 100644 --- a/module/user/lang/vi.php +++ b/module/user/lang/vi.php @@ -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'; diff --git a/module/user/lang/zh-cn.php b/module/user/lang/zh-cn.php index 99d97c1976..cfa3427c57 100644 --- a/module/user/lang/zh-cn.php +++ b/module/user/lang/zh-cn.php @@ -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 = '设为公共模板'; diff --git a/module/user/lang/zh-tw.php b/module/user/lang/zh-tw.php index b69d4a82ae..a612a84fea 100644 --- a/module/user/lang/zh-tw.php +++ b/module/user/lang/zh-tw.php @@ -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 = '設為公共模板';