ggdgsdbsdbbb / templates / repo / settings.html
149 lines · 138 sloc · 5.54 KB · 447cd7a4d265ff28886e6faa6dcef60e2c263091
Raw
1<!DOCTYPE html>
2<html>
3 <head>
4 @include '../layout/head.html'
5 </head>
6 <body>
7 @include '../layout/header.html'
8
9 <div class="content">
10 @include '../layout/repo_menu.html'
11
12 <h1 class="settings-title">%settings_title</h1>
13
14 @if ctx.form_error != ''
15 <div class="form-error">@ctx.form_error</div>
16 @end
17
18 <section class="settings-section">
19 <h2 class="settings-section__title">%features_section_title</h2>
20 <p class="settings-section__desc">%features_section_desc</p>
21 <form class="settings-form features-form" action="/@ctx.user.username/@repo.name/settings/features" method="post">
22 <label class="features-form__option">
23 <input type="checkbox" name="discussions_enabled"
24 @if repo.discussions_enabled()
25 checked
26 @end
27 >
28 <span>%discussions</span>
29 </label>
30 <label class="features-form__option">
31 <input type="checkbox" name="projects_enabled"
32 @if repo.projects_enabled()
33 checked
34 @end
35 >
36 <span>%projects</span>
37 </label>
38 <label class="features-form__option">
39 <input type="checkbox" name="milestones_enabled"
40 @if repo.milestones_enabled()
41 checked
42 @end
43 >
44 <span>%milestones</span>
45 </label>
46 <label class="features-form__option">
47 <input type="checkbox" name="wiki_enabled"
48 @if repo.wiki_enabled()
49 checked
50 @end
51 >
52 <span>%wiki</span>
53 </label>
54 <input type="submit" class="settings-form__submit" value="%save_features">
55 </form>
56 </section>
57
58 <section class="settings-section">
59 <h2 class="settings-section__title">%webhooks</h2>
60 <p class="settings-section__desc">%webhook_secret_hint</p>
61 <a class="settings-form__submit settings-form__submit--link" href="/@ctx.user.username/@repo.name/settings/webhooks">%manage_webhooks</a>
62 </section>
63
64 <section class="settings-section settings-section--danger">
65 <h2 class="settings-section__title">%danger_zone</h2>
66
67 <div class="danger-action">
68 <div class="danger-action__info">
69 <h3 class="danger-action__title">%transfer_ownership</h3>
70 <p class="danger-action__desc">%transfer_ownership_desc</p>
71 </div>
72 <form class="settings-form danger-action__form" action="/@ctx.user.username/@repo.name/move" method="post">
73 <input type="text" name="dest" placeholder="%new_owner_username" required>
74 <input type="text" name="verify" placeholder="@ctx.user.username/@repo.name" required>
75 <input type="submit" class="settings-form__submit settings-form__submit--danger" value="%move_repo">
76 </form>
77 </div>
78
79 <div class="danger-action">
80 <div class="danger-action__info">
81 <h3 class="danger-action__title">%delete_repo_title</h3>
82 <p class="danger-action__desc">%delete_repo_desc</p>
83 </div>
84 <form id="delete-repo-form" class="settings-form danger-action__form" action="/@ctx.user.username/@repo.name/delete" method="post" data-expected-path="@ctx.user.username/@repo.name">
85 <input id="delete-repo-verify" type="text" name="verify" placeholder="@ctx.user.username/@repo.name" autocomplete="off" required>
86 <input id="delete-repo-submit" type="submit" class="settings-form__submit settings-form__submit--danger" value="%delete_repo" disabled>
87 </form>
88 </div>
89 </section>
90
91 <div id="delete-repo-modal" class="confirm-modal" hidden>
92 <div class="confirm-modal__dialog confirm-modal__dialog--danger" role="alertdialog" aria-modal="true" aria-labelledby="delete-repo-modal-title">
93 <p id="delete-repo-modal-title" class="confirm-modal__alert">%repo_delete_warning</p>
94 @if repo.is_public
95 <p class="confirm-modal__intro">%repo_delete_public_intro</p>
96 <ul class="confirm-modal__stats">
97 <li>@repo.format_nr_stars(ctx.lang)</li>
98 <li>@app.format_nr_watchers(repo.id, ctx.lang)</li>
99 </ul>
100 <p class="confirm-modal__outro">%repo_delete_public_outro</p>
101 @end
102 <p class="confirm-modal__question">%repo_delete_confirm_question</p>
103 <div class="confirm-modal__actions">
104 <button type="button" class="confirm-modal__btn" data-delete-repo-cancel>%repo_delete_cancel</button>
105 <button type="button" class="confirm-modal__btn confirm-modal__btn--danger" data-delete-repo-confirm>%repo_delete_confirm_yes</button>
106 </div>
107 </div>
108 </div>
109
110 <script>
111 (function () {
112 var form = document.getElementById('delete-repo-form');
113 var modal = document.getElementById('delete-repo-modal');
114 if (!form || !modal) return;
115 var verify = document.getElementById('delete-repo-verify');
116 var submit = document.getElementById('delete-repo-submit');
117 var expected = form.getAttribute('data-expected-path');
118 var cancel = modal.querySelector('[data-delete-repo-cancel]');
119 var confirm = modal.querySelector('[data-delete-repo-confirm]');
120 var confirmed = false;
121 function syncSubmitState() {
122 submit.disabled = verify.value.trim() !== expected;
123 }
124 verify.addEventListener('input', syncSubmitState);
125 syncSubmitState();
126 form.addEventListener('submit', function (e) {
127 if (confirmed) return;
128 e.preventDefault();
129 if (submit.disabled) return;
130 modal.hidden = false;
131 });
132 cancel.addEventListener('click', function () {
133 modal.hidden = true;
134 });
135 confirm.addEventListener('click', function () {
136 confirmed = true;
137 modal.hidden = true;
138 form.submit();
139 });
140 modal.addEventListener('click', function (e) {
141 if (e.target === modal) modal.hidden = true;
142 });
143 })();
144 </script>
145 </div>
146
147 @include '../layout/footer.html'
148 </body>
149</html>
150