You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

collaboration.tmpl 5.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. {{template "repo/settings/layout_head" (dict "ctxData" . "pageClass" "repository settings collaboration")}}
  2. <div class="repo-setting-content">
  3. <h4 class="ui top attached header">
  4. {{.locale.Tr "repo.settings.collaboration"}}
  5. </h4>
  6. {{if .Collaborators}}
  7. <div class="ui attached segment">
  8. <div class="flex-list">
  9. {{range .Collaborators}}
  10. <div class="flex-item flex-item-center">
  11. <div class="flex-item-leading">
  12. <a href="{{.HomeLink}}">{{avatar $.Context . 32}}</a>
  13. </div>
  14. <div class="flex-item-main">
  15. <div class="flex-item-title">
  16. {{template "shared/user/name" .}}
  17. </div>
  18. </div>
  19. <div class="flex-item-trailing">
  20. <div class="flex-text-block">
  21. {{svg "octicon-shield-lock"}}
  22. <div class="ui inline dropdown access-mode" data-url="{{$.Link}}/access_mode" data-uid="{{.ID}}" data-last-value="{{printf "%d" .Collaboration.Mode}}">
  23. <div class="text">{{if eq .Collaboration.Mode 1}}{{$.locale.Tr "repo.settings.collaboration.read"}}{{else if eq .Collaboration.Mode 2}}{{$.locale.Tr "repo.settings.collaboration.write"}}{{else if eq .Collaboration.Mode 3}}{{$.locale.Tr "repo.settings.collaboration.admin"}}{{else}}{{$.locale.Tr "repo.settings.collaboration.undefined"}}{{end}}</div>
  24. {{svg "octicon-triangle-down" 14 "dropdown icon"}}
  25. <div class="menu">
  26. <div class="item" data-text="{{$.locale.Tr "repo.settings.collaboration.admin"}}" data-value="3">{{$.locale.Tr "repo.settings.collaboration.admin"}}</div>
  27. <div class="item" data-text="{{$.locale.Tr "repo.settings.collaboration.write"}}" data-value="2">{{$.locale.Tr "repo.settings.collaboration.write"}}</div>
  28. <div class="item" data-text="{{$.locale.Tr "repo.settings.collaboration.read"}}" data-value="1">{{$.locale.Tr "repo.settings.collaboration.read"}}</div>
  29. </div>
  30. </div>
  31. </div>
  32. <button class="ui red tiny button inline text-thin delete-button" data-url="{{$.Link}}/delete" data-id="{{.ID}}">
  33. {{$.locale.Tr "repo.settings.delete_collaborator"}}
  34. </button>
  35. </div>
  36. </div>
  37. {{end}}
  38. </div>
  39. </div>
  40. {{end}}
  41. <div class="ui bottom attached segment">
  42. <form class="ui form" id="repo-collab-form" action="{{.Link}}" method="post">
  43. {{.CsrfTokenHtml}}
  44. <div class="inline field ui left">
  45. <div id="search-user-box" class="ui search">
  46. <div class="ui input">
  47. <input class="prompt" name="collaborator" placeholder="{{.locale.Tr "repo.settings.search_user_placeholder"}}" autocomplete="off" autofocus required>
  48. </div>
  49. </div>
  50. </div>
  51. <button class="ui green button">{{.locale.Tr "repo.settings.add_collaborator"}}</button>
  52. </form>
  53. </div>
  54. {{if .RepoOwnerIsOrganization}}
  55. <h4 class="ui top attached header">
  56. {{$.locale.Tr "repo.settings.teams"}}
  57. </h4>
  58. {{$allowedToChangeTeams := (or (.Org.RepoAdminChangeTeamAccess) (.Permission.IsOwner))}}
  59. {{if .Teams}}
  60. <div class="ui attached segment">
  61. <div class="flex-list">
  62. {{range $t, $team := .Teams}}
  63. <div class="flex-item">
  64. <div class="flex-item-main">
  65. <a class="flex-item-title text primary" href="{{AppSubUrl}}/org/{{$.OrgName|PathEscape}}/teams/{{.LowerName|PathEscape}}">
  66. {{.Name}}
  67. </a>
  68. <div class="flex-item-body flex-text-block">
  69. {{svg "octicon-shield-lock"}}
  70. {{if eq .AccessMode 1}}{{$.locale.Tr "repo.settings.collaboration.read"}}{{else if eq .AccessMode 2}}{{$.locale.Tr "repo.settings.collaboration.write"}}{{else if eq .AccessMode 3}}{{$.locale.Tr "repo.settings.collaboration.admin"}}{{else if eq .AccessMode 4}}{{$.locale.Tr "repo.settings.collaboration.owner"}}{{else}}{{$.locale.Tr "repo.settings.collaboration.undefined"}}{{end}}
  71. </div>
  72. {{if or (eq .AccessMode 1) (eq .AccessMode 2)}}
  73. {{$first := true}}
  74. <div class="flex-item-body" data-tooltip-content="{{$.locale.Tr "repo.settings.change_team_permission_tip"}}">
  75. Sections: {{range $u, $unit := $.Units}}{{if and ($.Repo.UnitEnabled $.Context $unit.Type) ($team.UnitEnabled $.Context $unit.Type)}}{{if $first}}{{$first = false}}{{else}}, {{end}}{{$.locale.Tr $unit.NameKey}}{{end}}{{end}} {{if $first}}None{{end}}
  76. </div>
  77. {{end}}
  78. </div>
  79. {{if $allowedToChangeTeams}}
  80. <div class="flex-item-trailing" {{if .IncludesAllRepositories}} data-tooltip-content="{{$.locale.Tr "repo.settings.delete_team_tip"}}"{{end}}>
  81. <button class="ui red tiny button inline text-thin delete-button {{if .IncludesAllRepositories}}disabled{{end}}" data-url="{{$.Link}}/team/delete" data-id="{{.ID}}">
  82. {{$.locale.Tr "repo.settings.delete_collaborator"}}
  83. </button>
  84. </div>
  85. {{end}}
  86. </div>
  87. {{end}}
  88. </div>
  89. </div>
  90. {{end}}
  91. <div class="ui bottom attached segment">
  92. {{if $allowedToChangeTeams}}
  93. <form class="ui form" id="repo-collab-team-form" action="{{.Link}}/team" method="post">
  94. {{.CsrfTokenHtml}}
  95. <div class="inline field ui left">
  96. <div id="search-team-box" class="ui search" data-org="{{.OrgName}}">
  97. <div class="ui input">
  98. <input class="prompt" name="team" placeholder="{{$.locale.Tr "repo.settings.search_team"}}" autocomplete="off" autofocus required>
  99. </div>
  100. </div>
  101. </div>
  102. <button class="ui green button">{{$.locale.Tr "repo.settings.add_team"}}</button>
  103. </form>
  104. {{else}}
  105. <div class="item">
  106. {{$.locale.Tr "repo.settings.change_team_access_not_allowed"}}
  107. </div>
  108. {{end}}
  109. </div>
  110. {{end}}
  111. </div>
  112. <div class="ui g-modal-confirm delete modal">
  113. <div class="header">
  114. {{svg "octicon-trash"}}
  115. {{.locale.Tr "repo.settings.collaborator_deletion"}}
  116. </div>
  117. <div class="content">
  118. <p>{{.locale.Tr "repo.settings.collaborator_deletion_desc"}}</p>
  119. </div>
  120. {{template "base/modal_actions_confirm" .}}
  121. </div>
  122. {{template "repo/settings/layout_footer" .}}