| @@ -1,62 +1,107 @@ | |||||
| {{template "base/head" .}} | {{template "base/head" .}} | ||||
| <style> | |||||
| .activatelayer { | |||||
| position: relative; | |||||
| z-index: 2; | |||||
| } | |||||
| </style> | |||||
| <div class="repository settings collaboration"> | <div class="repository settings collaboration"> | ||||
| {{template "repo/header" .}} | |||||
| {{template "repo/settings/navbar" .}} | |||||
| <div class="ui container"> | |||||
| {{template "base/alert" .}} | |||||
| <h4 class="ui top attached header"> | |||||
| {{.i18n.Tr "repo.settings.collaboration"}} | |||||
| </h4> | |||||
| {{if .Collaborators}} | |||||
| <div class="ui attached segment collaborator list"> | |||||
| {{range .Collaborators}} | |||||
| <div class="item ui grid"> | |||||
| <div class="ui five wide column"> | |||||
| <a href="{{AppSubUrl}}/{{.Name}}"> | |||||
| <img class="ui avatar image" src="{{.RelAvatarLink}}"> | |||||
| {{.DisplayName}} | |||||
| </a> | |||||
| </div> | |||||
| <div class="ui eight wide column"> | |||||
| {{svg "octicon-shield-lock" 16}} | |||||
| <div class="ui inline dropdown"> | |||||
| <div class="text">{{if eq .Collaboration.Mode 1}}{{$.i18n.Tr "repo.settings.collaboration.read"}}{{else if eq .Collaboration.Mode 2}}{{$.i18n.Tr "repo.settings.collaboration.write"}}{{else if eq .Collaboration.Mode 3}}{{$.i18n.Tr "repo.settings.collaboration.admin"}}{{else}}{{$.i18n.Tr "repo.settings.collaboration.undefined"}}{{end}}</div> | |||||
| <i class="dropdown icon"></i> | |||||
| <div class="access-mode menu" data-url="{{$.Link}}/access_mode" data-uid="{{.ID}}"> | |||||
| <div class="item" data-text="{{$.i18n.Tr "repo.settings.collaboration.admin"}}" data-value="3">{{$.i18n.Tr "repo.settings.collaboration.admin"}}</div> | |||||
| <div class="item" data-text="{{$.i18n.Tr "repo.settings.collaboration.write"}}" data-value="2">{{$.i18n.Tr "repo.settings.collaboration.write"}}</div> | |||||
| <div class="item" data-text="{{$.i18n.Tr "repo.settings.collaboration.read"}}" data-value="1">{{$.i18n.Tr "repo.settings.collaboration.read"}}</div> | |||||
| {{template "repo/header" .}} {{template "repo/settings/navbar" .}} | |||||
| <!-- 内容主体区 --> | |||||
| <div class="ui container"> | |||||
| <!-- 标题区 --> | |||||
| {{template "base/alert" .}} | |||||
| <h4 class="ui attached header"> | |||||
| {{.i18n.Tr "repo.settings.collaboration"}} | |||||
| </h4> | |||||
| <!-- 搜索区 --> | |||||
| <div class="ui attached segment"> | |||||
| <form class="ui form" id="repo-collab-form" action="{{.Link}}" method="post"> | |||||
| {{.CsrfTokenHtml}} | |||||
| <div class="inline field ui left"> | |||||
| <div id="search-user-box" class="ui search"> | |||||
| <div class="ui input"> | |||||
| <input class="prompt" name="collaborator" placeholder="{{.i18n.Tr " repo.settings.search_user_placeholder "}}" autocomplete="off" autofocus required> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| <button class="ui green button">{{.i18n.Tr "repo.settings.add_collaborator"}}</button> | |||||
| </form> | |||||
| </div> | |||||
| <!-- 协作者列表展示区 --> | |||||
| {{if .Collaborators}} | |||||
| <div class="ui attached segment collaborator list"> | |||||
| {{range .Collaborators}} | |||||
| <div class="item ui grid"> | |||||
| <!-- 用户名 --> | |||||
| <div class="ui five wide column"> | |||||
| <a href="{{AppSubUrl}}/{{.Name}}"> | |||||
| <img class="ui avatar image" src="{{.RelAvatarLink}}"> {{.DisplayName}} | |||||
| </a> | |||||
| </div> | |||||
| <!-- 协作者权限 --> | |||||
| <div class="ui eight wide column"> | |||||
| {{svg "octicon-shield-lock" 16}} | |||||
| <div class="ui inline dropdown"> | |||||
| <div class="text"> | |||||
| {{if eq .Collaboration.Mode 1}}{{$.i18n.Tr "repo.settings.collaboration.read"}}{{else if eq .Collaboration.Mode 2}}{{$.i18n.Tr "repo.settings.collaboration.write"}}{{else if eq .Collaboration.Mode 3}} {{$.i18n.Tr "repo.settings.collaboration.admin"}}{{else}}{{$.i18n.Tr "repo.settings.collaboration.undefined"}}{{end}} | |||||
| </div> | |||||
| <i class="dropdown icon"></i> | |||||
| <div class="access-mode menu" data-url="{{$.Link}}/access_mode" data-uid="{{.ID}}"> | |||||
| <div class="item" data-text="{{$.i18n.Tr "repo.settings.collaboration.admin"}}" data-value="3">{{$.i18n.Tr "repo.settings.collaboration.admin"}}</div> | |||||
| <div class="item" data-text="{{$.i18n.Tr "repo.settings.collaboration.write"}}" data-value="2">{{$.i18n.Tr "repo.settings.collaboration.write"}}</div> | |||||
| <div class="item" data-text="{{$.i18n.Tr "repo.settings.collaboration.read"}}" data-value="1">{{$.i18n.Tr "repo.settings.collaboration.read"}}</div> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| <!-- 删除按钮 --> | |||||
| <div class="ui two wide column"> | |||||
| <button class="ui red tiny button inline text-thin delete-button" data-url="{{$.Link}}/delete" data-id="{{.ID}}"> | |||||
| {{$.i18n.Tr "repo.settings.delete_collaborator"}} | |||||
| </button> | |||||
| </div> | |||||
| </div> | |||||
| {{end}} | |||||
| </div> | |||||
| {{end}} | |||||
| <!-- 团队展示区 --> | |||||
| {{if .RepoOwnerIsOrganization}} | |||||
| <h4 class="ui attached header"> | |||||
| {{$.i18n.Tr "repo.settings.teams"}} | |||||
| </h4> | |||||
| {{ $allowedToChangeTeams := ( or (.Org.RepoAdminChangeTeamAccess) (.Permission.IsOwner)) }} | |||||
| <div class="ui attached segment"> | |||||
| {{if $allowedToChangeTeams}} | |||||
| <form class="ui form" id="repo-collab-team-form" action="{{.Link}}/team" method="post"> | |||||
| {{.CsrfTokenHtml}} | |||||
| <div class="inline field ui left"> | |||||
| <div id="search-team-box" class="ui search" data-org="{{.OrgName}}"> | |||||
| <div class="ui input"> | |||||
| <input class="prompt" name="team" placeholder="{{$.i18n.Tr "repo.settings.search_team"}}" autocomplete="off" autofocus required> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <div class="ui two wide column"> | |||||
| <button class="ui red tiny button inline text-thin delete-button" data-url="{{$.Link}}/delete" data-id="{{.ID}}"> | |||||
| {{$.i18n.Tr "repo.settings.delete_collaborator"}} | |||||
| </button> | |||||
| </div> | |||||
| <button class="ui green button">{{$.i18n.Tr "repo.settings.add_team"}}</button> | |||||
| </form> | |||||
| {{else}} | |||||
| <div class="item"> | |||||
| {{$.i18n.Tr "repo.settings.change_team_access_not_allowed"}} | |||||
| </div> | </div> | ||||
| {{end}} | {{end}} | ||||
| </div> | |||||
| {{end}} | |||||
| <div class="ui bottom attached segment" style="z-index:-1"> | |||||
| <form class="ui form" id="repo-collab-form" action="{{.Link}}" method="post"> | |||||
| {{.CsrfTokenHtml}} | |||||
| <div class="inline field ui left"> | |||||
| <div id="search-user-box" class="ui search"> | |||||
| <div class="ui input"> | |||||
| <input class="prompt" name="collaborator" placeholder="{{.i18n.Tr "repo.settings.search_user_placeholder"}}" autocomplete="off" autofocus required> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| <button class="ui green button">{{.i18n.Tr "repo.settings.add_collaborator"}}</button> | |||||
| </form> | |||||
| </div> | |||||
| {{if .RepoOwnerIsOrganization}} | |||||
| <h4 class="ui top attached header"> | |||||
| {{$.i18n.Tr "repo.settings.teams"}} | |||||
| </h4> | |||||
| {{ $allowedToChangeTeams := ( or (.Org.RepoAdminChangeTeamAccess) (.Permission.IsOwner)) }} | |||||
| </div> | |||||
| {{if .Teams}} | {{if .Teams}} | ||||
| <div class="ui attached segment collaborator list"> | <div class="ui attached segment collaborator list"> | ||||
| {{range $t, $team := .Teams}} | {{range $t, $team := .Teams}} | ||||
| @@ -89,37 +134,27 @@ | |||||
| {{end}} | {{end}} | ||||
| </div> | </div> | ||||
| {{end}} | {{end}} | ||||
| <div class="ui bottom attached segment" style="z-index:-1"> | |||||
| {{if $allowedToChangeTeams}} | |||||
| <form class="ui form" id="repo-collab-team-form" action="{{.Link}}/team" method="post"> | |||||
| {{.CsrfTokenHtml}} | |||||
| <div class="inline field ui left"> | |||||
| <div id="search-team-box" class="ui search" data-org="{{.OrgName}}"> | |||||
| <div class="ui input"> | |||||
| <input class="prompt" name="team" placeholder="{{$.i18n.Tr "repo.settings.search_team"}}" autocomplete="off" autofocus required> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| <button class="ui green button">{{$.i18n.Tr "repo.settings.add_team"}}</button> | |||||
| </form> | |||||
| {{else}} | |||||
| <div class="item"> | |||||
| {{$.i18n.Tr "repo.settings.change_team_access_not_allowed"}} | |||||
| </div> | |||||
| {{end}} | |||||
| </div> | |||||
| {{end}} | {{end}} | ||||
| </div> | </div> | ||||
| </div> | |||||
| </div> | |||||
| <div class="ui small basic delete modal"> | |||||
| <div class="ui icon header"> | |||||
| <i class="trash icon"></i> | |||||
| {{.i18n.Tr "repo.settings.collaborator_deletion"}} | |||||
| </div> | |||||
| <div class="content"> | |||||
| <p>{{.i18n.Tr "repo.settings.collaborator_deletion_desc"}}</p> | |||||
| </div> | |||||
| {{template "base/delete_modal_actions" .}} | |||||
| <!-- 确认删除弹框 --> | |||||
| <div class="ui small basic delete modal"> | |||||
| <div class="ui icon header"> | |||||
| <i class="trash icon"></i> {{.i18n.Tr "repo.settings.collaborator_deletion"}} | |||||
| </div> | |||||
| <div class="content"> | |||||
| <p>{{.i18n.Tr "repo.settings.collaborator_deletion_desc"}}</p> | |||||
| </div> | |||||
| {{template "base/delete_modal_actions" .}} | |||||
| </div>\ | |||||
| </div> | </div> | ||||
| {{template "base/footer" .}} | {{template "base/footer" .}} | ||||
| <script> | |||||
| $(".ui.inline.dropdown").click(function() { | |||||
| $(this).parent().parent().siblings().removeClass("activatelayer") | |||||
| $(this).parent().parent().addClass("activatelayer") | |||||
| }) | |||||
| </script> | |||||