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.

list.tmpl 4.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. {{template "admin/layout_head" (dict "ctxData" . "pageClass" "admin user")}}
  2. <div class="admin-setting-content">
  3. <h4 class="ui top attached header">
  4. {{.locale.Tr "admin.emails.email_manage_panel"}} ({{.locale.Tr "admin.total" .Total}})
  5. </h4>
  6. <div class="ui attached segment">
  7. <div class="ui secondary filter menu gt-ac gt-mx-0">
  8. <form class="ui form ignore-dirty gt-f1">
  9. <div class="ui fluid action input">
  10. {{template "shared/searchinput" dict "locale" .locale "Value" .Keyword "AutoFocus" true}}
  11. <button class="ui primary button">{{.locale.Tr "explore.search"}}</button>
  12. </div>
  13. </form>
  14. <!-- Sort -->
  15. <div class="ui dropdown type jump item gt-mr-0">
  16. <span class="text">
  17. {{.locale.Tr "repo.issues.filter_sort"}}
  18. {{svg "octicon-triangle-down" 14 "dropdown icon"}}
  19. </span>
  20. <div class="menu">
  21. <a class="{{if or (eq .SortType "email") (not .SortType)}}active {{end}}item" href="{{$.Link}}?sort=email&q={{$.Keyword}}">{{.locale.Tr "admin.emails.filter_sort.email"}}</a>
  22. <a class="{{if eq .SortType "reverseemail"}}active {{end}}item" href="{{$.Link}}?sort=reverseemail&q={{$.Keyword}}">{{.locale.Tr "admin.emails.filter_sort.email_reverse"}}</a>
  23. <a class="{{if eq .SortType "username"}}active {{end}}item" href="{{$.Link}}?sort=username&q={{$.Keyword}}">{{.locale.Tr "admin.emails.filter_sort.name"}}</a>
  24. <a class="{{if eq .SortType "reverseusername"}}active {{end}}item" href="{{$.Link}}?sort=reverseusername&q={{$.Keyword}}">{{.locale.Tr "admin.emails.filter_sort.name_reverse"}}</a>
  25. </div>
  26. </div>
  27. </div>
  28. </div>
  29. <div class="ui attached table segment">
  30. <table class="ui very basic striped table unstackable">
  31. <thead>
  32. <tr>
  33. <th data-sortt-asc="username" data-sortt-desc="reverseusername">
  34. {{.locale.Tr "admin.users.name"}}
  35. {{SortArrow "username" "reverseusername" $.SortType false}}
  36. </th>
  37. <th>{{.locale.Tr "admin.users.full_name"}}</th>
  38. <th data-sortt-asc="email" data-sortt-desc="reverseemail" data-sortt-default="true">
  39. {{.locale.Tr "email"}}
  40. {{SortArrow "email" "reverseemail" $.SortType true}}
  41. </th>
  42. <th>{{.locale.Tr "admin.emails.primary"}}</th>
  43. <th>{{.locale.Tr "admin.emails.activated"}}</th>
  44. </tr>
  45. </thead>
  46. <tbody>
  47. {{range .Emails}}
  48. <tr>
  49. <td><a href="{{AppSubUrl}}/{{.Name | PathEscape}}">{{.Name}}</a></td>
  50. <td class="gt-ellipsis gt-max-width-12rem">{{.FullName}}</td>
  51. <td class="gt-ellipsis gt-max-width-12rem">{{.Email}}</td>
  52. <td>{{if .IsPrimary}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}</td>
  53. <td>
  54. {{if .CanChange}}
  55. <a class="link-email-action" href data-uid="{{.UID}}"
  56. data-email="{{.Email}}"
  57. data-primary="{{if .IsPrimary}}1{{else}}0{{end}}"
  58. data-activate="{{if .IsActivated}}0{{else}}1{{end}}">
  59. {{if .IsActivated}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}
  60. </a>
  61. {{else}}
  62. {{if .IsActivated}}{{svg "octicon-check"}}{{else}}{{svg "octicon-x"}}{{end}}
  63. {{end}}
  64. </td>
  65. </tr>
  66. {{end}}
  67. </tbody>
  68. </table>
  69. </div>
  70. {{template "base/paginate" .}}
  71. <div class="ui g-modal-confirm modal" id="change-email-modal">
  72. <div class="header">
  73. {{.locale.Tr "admin.emails.change_email_header"}}
  74. </div>
  75. <div class="content">
  76. <p class="center">{{.locale.Tr "admin.emails.change_email_text"}}</p>
  77. <form class="ui form" id="email-action-form" action="{{AppSubUrl}}/admin/emails/activate" method="post">
  78. {{$.CsrfTokenHtml}}
  79. <input type="hidden" id="query-sort" name="sort" value="{{.SortType}}">
  80. <input type="hidden" id="query-keyword" name="q" value="{{.Keyword}}">
  81. <input type="hidden" id="query-primary" name="is_primary" value="{{.IsPrimary}}" required>
  82. <input type="hidden" id="query-activated" name="is_activated" value="{{.IsActivated}}" required>
  83. <input type="hidden" id="form-uid" name="uid" value="" required>
  84. <input type="hidden" id="form-email" name="email" value="" required>
  85. <input type="hidden" id="form-primary" name="primary" value="" required>
  86. <input type="hidden" id="form-activate" name="activate" value="" required>
  87. <div class="center">
  88. {{template "base/modal_actions_confirm" .}}
  89. </div>
  90. </form>
  91. </div>
  92. </div>
  93. </div>
  94. {{template "admin/layout_footer" .}}