diff --git a/module/gitlab/control.php b/module/gitlab/control.php index 33cfacfc41..2242e946d9 100644 --- a/module/gitlab/control.php +++ b/module/gitlab/control.php @@ -132,7 +132,7 @@ class gitlab extends control * @access public * @return void */ - public function bindUser($gitlabID) + public function bindUser($gitlabID, $type = 'all') { $userPairs = $this->loadModel('user')->getPairs('noclosed|noletter'); @@ -188,11 +188,32 @@ class gitlab extends control return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => $this->server->http_referer)); } + $gitlabUsers = $this->gitlab->apiGetUsers($gitlabID); + $bindedUsers = $this->gitlab->getUserAccountIdPairs($gitlabID); + $matchedResult = $this->gitlab->getMatchedUsers($gitlabID, $gitlabUsers, $zentaoUsers); + $matchedResult = array_column(json_decode(json_encode($matchedResult), true), null, "email"); + + $gitlabUsers = array_filter($gitlabUsers, function($item) use($bindedUsers, $userPairs, $type) + { + if($type == 'all') return true; + + if(in_array($item->id, $bindedUsers)) + { + $zentaoAccount = isset($item->zentaoAccount) ? zget($userPairs, $item->zentaoAccount, '') : ''; + return $type == 'binded' ? !empty($zentaoAccount) : empty($zentaoAccount); + } + return $type == 'binded' ? false : true; + }); + $this->view->title = $this->lang->gitlab->bindUser; + $this->view->zentaoUsers = $zentaoUsers; $this->view->userPairs = $userPairs; - $this->view->gitlabUsers = $this->gitlab->apiGetUsers($gitlabID); - $this->view->bindedUsers = $this->gitlab->getUserAccountIdPairs($gitlabID); - $this->view->matchedResult = $this->gitlab->getMatchedUsers($gitlabID, $this->view->gitlabUsers, $zentaoUsers); + $this->view->type = $type; + $this->view->gitlabID = $gitlabID; + $this->view->gitlabUsers = $gitlabUsers; + $this->view->bindedUsers = $bindedUsers; + $this->view->matchedResult = $matchedResult; + $this->display(); } diff --git a/module/gitlab/css/common.css b/module/gitlab/css/common.css index ad50c2a1d2..d31a13a052 100644 --- a/module/gitlab/css/common.css +++ b/module/gitlab/css/common.css @@ -1,2 +1,9 @@ #publicTip {padding-left: 10px;} .table-form>tbody>tr>th {width: 110px;} +.gitlab-bind .btn-info{background-color: unset;color:unset;padding: 6px 6px;} +.gitlab-bind .btn-info.active{color: #2e7fff;background-color: rgba(239,239,239,.8); +border-color: rgba(0,0,0,0);} +.gitlab-bind-all{padding: 1px 6px;margin-left: 5px;border-radius: 10px;background: white;} +.img-circle {border-radius: 50%;} +.gitlab-account-desc{color: #9EA3B0;font-size: 12px;} +.gitlab-user-select .chosen-container{max-width: 200px;} \ No newline at end of file diff --git a/module/gitlab/js/binduser.js b/module/gitlab/js/binduser.js new file mode 100644 index 0000000000..a4b6cc07c2 --- /dev/null +++ b/module/gitlab/js/binduser.js @@ -0,0 +1,11 @@ +$(document).ready(function() +{ + $('.gitlab-user-bind').change(function() + { + var user = zentaoUsers[$(this).val()]; + if(user !== undefined) + { + $(this).parent().parent().find('.email').text(user.email) + } + }); +}); \ No newline at end of file diff --git a/module/gitlab/lang/de.php b/module/gitlab/lang/de.php index cf37e4bbec..61af111258 100644 --- a/module/gitlab/lang/de.php +++ b/module/gitlab/lang/de.php @@ -13,9 +13,12 @@ $lang->gitlab->delete = 'Delete GitLab'; $lang->gitlab->confirmDelete = 'Do you want to delete this GitLab server?'; $lang->gitlab->gitlabAvatar = 'Avatar'; $lang->gitlab->gitlabAccount = 'GitLab Account'; -$lang->gitlab->gitlabEmail = 'Email'; +$lang->gitlab->gitlabEmail = 'GitLab User\'s Email'; +$lang->gitlab->zentaoEmail = 'Zentao User\'s Email'; $lang->gitlab->zentaoAccount = 'Zentao Account'; +$lang->gitlab->accountDesc = '(Automatically match users with the same email)'; $lang->gitlab->bindingStatus = 'Binding Status'; +$lang->gitlab->all = 'All'; $lang->gitlab->notBind = 'Not bind'; $lang->gitlab->binded = 'Binded'; $lang->gitlab->bindedError = 'The bound user has been deleted or modified. Please bind again.'; diff --git a/module/gitlab/lang/en.php b/module/gitlab/lang/en.php index cf37e4bbec..61af111258 100644 --- a/module/gitlab/lang/en.php +++ b/module/gitlab/lang/en.php @@ -13,9 +13,12 @@ $lang->gitlab->delete = 'Delete GitLab'; $lang->gitlab->confirmDelete = 'Do you want to delete this GitLab server?'; $lang->gitlab->gitlabAvatar = 'Avatar'; $lang->gitlab->gitlabAccount = 'GitLab Account'; -$lang->gitlab->gitlabEmail = 'Email'; +$lang->gitlab->gitlabEmail = 'GitLab User\'s Email'; +$lang->gitlab->zentaoEmail = 'Zentao User\'s Email'; $lang->gitlab->zentaoAccount = 'Zentao Account'; +$lang->gitlab->accountDesc = '(Automatically match users with the same email)'; $lang->gitlab->bindingStatus = 'Binding Status'; +$lang->gitlab->all = 'All'; $lang->gitlab->notBind = 'Not bind'; $lang->gitlab->binded = 'Binded'; $lang->gitlab->bindedError = 'The bound user has been deleted or modified. Please bind again.'; diff --git a/module/gitlab/lang/fr.php b/module/gitlab/lang/fr.php index cf37e4bbec..9e16581a3c 100644 --- a/module/gitlab/lang/fr.php +++ b/module/gitlab/lang/fr.php @@ -13,9 +13,12 @@ $lang->gitlab->delete = 'Delete GitLab'; $lang->gitlab->confirmDelete = 'Do you want to delete this GitLab server?'; $lang->gitlab->gitlabAvatar = 'Avatar'; $lang->gitlab->gitlabAccount = 'GitLab Account'; -$lang->gitlab->gitlabEmail = 'Email'; +$lang->gitlab->gitlabEmail = 'GitLab User\'s Email'; +$lang->gitlab->zentaoEmail = 'Zentao User\'s Email'; $lang->gitlab->zentaoAccount = 'Zentao Account'; +$lang->gitlab->accountDesc = '(System will automatically match users with the same email address)'; $lang->gitlab->bindingStatus = 'Binding Status'; +$lang->gitlab->all = 'All'; $lang->gitlab->notBind = 'Not bind'; $lang->gitlab->binded = 'Binded'; $lang->gitlab->bindedError = 'The bound user has been deleted or modified. Please bind again.'; diff --git a/module/gitlab/lang/vi.php b/module/gitlab/lang/vi.php index f3b3b2d451..f858af5575 100644 --- a/module/gitlab/lang/vi.php +++ b/module/gitlab/lang/vi.php @@ -13,9 +13,12 @@ $lang->gitlab->delete = 'Delete GitLab'; $lang->gitlab->confirmDelete = 'Do you want to delete this GitLab server?'; $lang->gitlab->gitlabAvatar = 'Avatar'; $lang->gitlab->gitlabAccount = 'GitLab Account'; -$lang->gitlab->gitlabEmail = 'Email'; +$lang->gitlab->gitlabEmail = 'GitLab User\'s Email'; +$lang->gitlab->zentaoEmail = 'Zentao User\'s Email'; $lang->gitlab->zentaoAccount = 'Zentao Account'; +$lang->gitlab->accountDesc = '(System will automatically match users with the same email address)'; $lang->gitlab->bindingStatus = 'Binding Status'; +$lang->gitlab->all = 'All'; $lang->gitlab->notBind = 'Not bind'; $lang->gitlab->binded = 'Binded'; $lang->gitlab->bindedError = 'The bound user has been deleted or modified. Please bind again.'; diff --git a/module/gitlab/lang/zh-cn.php b/module/gitlab/lang/zh-cn.php index 8483edf40c..138b3dd931 100644 --- a/module/gitlab/lang/zh-cn.php +++ b/module/gitlab/lang/zh-cn.php @@ -13,9 +13,12 @@ $lang->gitlab->delete = '删除GitLab'; $lang->gitlab->confirmDelete = '确认删除该GitLab吗?'; $lang->gitlab->gitlabAvatar = '头像'; $lang->gitlab->gitlabAccount = 'GitLab用户'; -$lang->gitlab->gitlabEmail = '邮箱'; +$lang->gitlab->gitlabEmail = 'GitLab用户邮箱'; +$lang->gitlab->zentaoEmail = '禅道用户邮箱'; $lang->gitlab->zentaoAccount = '禅道用户'; +$lang->gitlab->accountDesc = '(系统会将相同邮箱地址的用户自动匹配)'; $lang->gitlab->bindingStatus = '绑定状态'; +$lang->gitlab->all = '全部'; $lang->gitlab->notBind = '未绑定'; $lang->gitlab->binded = '已绑定'; $lang->gitlab->bindedError = '绑定的用户已删除或者已修改,请重新绑定'; diff --git a/module/gitlab/lang/zh-tw.php b/module/gitlab/lang/zh-tw.php index 3ceb69d896..81e5f2714f 100644 --- a/module/gitlab/lang/zh-tw.php +++ b/module/gitlab/lang/zh-tw.php @@ -13,7 +13,9 @@ $lang->gitlab->delete = '刪除GitLab'; $lang->gitlab->confirmDelete = '確認刪除該GitLab嗎?'; $lang->gitlab->gitlabAccount = 'GitLab用戶'; $lang->gitlab->zentaoAccount = '禪道用戶'; +$lang->gitlab->accountDesc = '(系統會將相同郵箱地址的用戶自動匹配)'; $lang->gitlab->bindingStatus = '綁定狀態'; +$lang->gitlab->all = '全部'; $lang->gitlab->binded = '已綁定'; $lang->gitlab->bindedError = '綁定的用戶已刪除或者已修改,請重新綁定'; $lang->gitlab->serverFail = '連接GitLab伺服器異常,請檢查GitLab伺服器。'; diff --git a/module/gitlab/view/binduser.html.php b/module/gitlab/view/binduser.html.php index d06281144c..8c89ec2f27 100644 --- a/module/gitlab/view/binduser.html.php +++ b/module/gitlab/view/binduser.html.php @@ -11,19 +11,45 @@ */ ?> +createLink('gitlab', 'browse', ""); ?> +