| @@ -1,62 +1,107 @@ | |||
| {{template "base/head" .}} | |||
| <style> | |||
| .activatelayer { | |||
| position: relative; | |||
| z-index: 2; | |||
| } | |||
| </style> | |||
| <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 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> | |||
| {{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}} | |||
| <div class="ui attached segment collaborator list"> | |||
| {{range $t, $team := .Teams}} | |||
| @@ -89,37 +134,27 @@ | |||
| {{end}} | |||
| </div> | |||
| {{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}} | |||
| </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> | |||
| {{template "base/footer" .}} | |||
| <script> | |||
| $(".ui.inline.dropdown").click(function() { | |||
| $(this).parent().parent().siblings().removeClass("activatelayer") | |||
| $(this).parent().parent().addClass("activatelayer") | |||
| }) | |||
| </script> | |||