blob: a5454042af0d4c23ae6aacf0d85776de5723bd1b [file] [log] [blame]
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001<!-- add settings rule modal -->
2<div class="modal fade" id="addRsettingModal" tabindex="-1" role="dialog" aria-hidden="true">
3 <div class="modal-dialog modal-lg">
4 <div class="modal-content">
5 <div class="modal-header">
6 <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>
7 <h3 class="modal-title">{{ lang.admin.add_settings_rule }}</h3>
8 </div>
9 <div class="modal-body">
10 <form class="form-horizontal" data-cached-form="true" data-id="rsetting" role="form" method="post">
11 <div class="form-group">
12 <label class="control-label col-sm-2" for="desc">{{ lang.admin.rsetting_desc }}:</label>
13 <div class="col-sm-10">
14 <input type="text" class="form-control" id="adminRspamdSettingsDesc" name="desc" required>
15 </div>
16 </div>
17 <div class="form-group">
18 <label class="control-label col-sm-2" for="content">{{ lang.admin.rsetting_content }}:</label>
19 <div class="col-sm-10">
20 <textarea class="form-control" id="adminRspamdSettingsContent" name="content" rows="10"></textarea>
21 </div>
22 </div>
23 <div class="form-group">
24 <div class="col-sm-offset-2 col-sm-10">
25 <div class="checkbox">
26 <label><input type="checkbox" value="1" name="active" checked> {{ lang.admin.active }}</label>
27 </div>
28 </div>
29 </div>
30 <div class="form-group">
31 <div class="col-sm-offset-2 col-sm-10">
32 <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="rsetting" data-api-url='add/rsetting' data-api-attr='{}' href="#"><i class="bi bi-plus-lg"></i> {{ lang.admin.add }}</button>
33 </div>
34 </div>
35 </form>
36 <hr>
37 <p>{{ lang.admin.rspamd-com_settings }}</p>
38 <ul id="rspamd_presets"></ul>
39 </div>
40 </div>
41 </div>
42</div><!-- add settings rule modal -->
43<!-- add domain admin modal -->
44<div class="modal fade" id="addDomainAdminModal" tabindex="-1" role="dialog" aria-hidden="true">
45 <div class="modal-dialog modal-lg">
46 <div class="modal-content">
47 <div class="modal-header">
48 <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>
49 <h3 class="modal-title">{{ lang.admin.add_domain_admin }}</h3>
50 </div>
51 <div class="modal-body">
52 <form class="form-horizontal" data-cached-form="true" data-id="add_domain_admin" role="form" method="post" autocomplete="off">
53 <div class="form-group">
54 <label class="control-label col-sm-2" for="username">{{ lang.admin.username }}:</label>
55 <div class="col-sm-10">
56 <input type="text" class="form-control" name="username" onkeyup="this.value = this.value.toLowerCase();" required>
57 &rdsh; <kbd>a-z - _ .</kbd>
58 </div>
59 </div>
60 <div class="form-group">
61 <label class="control-label col-sm-2" for="name">{{ lang.admin.admin_domains }}:</label>
62 <div class="col-sm-10">
63 <select title="{{ lang.admin.search_domain_da }}" class="full-width-select" name="domains" size="5" multiple>
64 {% for domain in domains %}
65 <option>{{ domain }}</option>
66 {% endfor %}
67 </select>
68 </div>
69 </div>
70 <div class="form-group">
71 <label class="control-label col-sm-2" for="password">{{ lang.admin.password }} (<a href="#" class="generate_password">{{ lang.admin.generate }}</a>)</label>
72 <div class="col-sm-10">
73 <input type="password" class="form-control" data-pwgen-field="true" data-hibp="true" name="password" placeholder="" autocomplete="new-password" required>
74 </div>
75 </div>
76 <div class="form-group">
77 <label class="control-label col-sm-2" for="password2">{{ lang.admin.password_repeat }}:</label>
78 <div class="col-sm-10">
79 <input type="password" class="form-control" data-pwgen-field="true" name="password2" placeholder="" autocomplete="new-password" required>
80 </div>
81 </div>
82 <div class="form-group">
83 <div class="col-sm-offset-2 col-sm-10">
84 <div class="checkbox">
85 <label><input type="checkbox" value="1" name="active" checked> {{ lang.admin.active }}</label>
86 </div>
87 </div>
88 </div>
89 <div class="form-group">
90 <div class="col-sm-offset-2 col-sm-10">
91 <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="add_domain_admin" data-api-url='add/domain-admin' data-api-attr='{}' href="#"><i class="bi bi-plus-lg"></i> {{ lang.admin.add }}</button>
92 </div>
93 </div>
94 </form>
95 </div>
96 </div>
97 </div>
98</div><!-- add domain admin modal -->
99<!-- change fido2 fn -->
100<div class="modal fade" id="fido2ChangeFn" tabindex="-1" role="dialog" aria-hidden="true">
101 <div class="modal-dialog modal-lg">
102 <div class="modal-content">
103 <div class="modal-header">
104 <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>
105 <h3 class="modal-title">{{ lang.fido2.set_fn }}</h3>
106 <p class="help-block" style="word-break:break-all" id="fido2_subject_desc" data-fido2-subject=""></p>
107 </div>
108 <div class="modal-body">
109 <form class="form-horizontal" data-cached-form="false" data-id="fido2ChangeFn" role="form" method="post" autocomplete="off">
110 <input type="hidden" class="form-control" name="fido2_cid" id="fido2_cid">
111 <div class="form-group">
112 <label class="control-label col-sm-4" for="fido2_fn">{{ lang.fido2.fn }}:</label>
113 <div class="col-sm-8">
114 <input type="text" class="form-control" name="fido2_fn">
115 </div>
116 </div>
117 <div class="form-group">
118 <div class="col-sm-offset-4 col-sm-8">
119 <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="fido2ChangeFn" data-item="null" data-api-url='edit/fido2-fn' data-api-attr='{}' href="#">{{ lang.admin.save }}</button>
120 </div>
121 </div>
122 </form>
123 </div>
124 </div>
125 </div>
126</div><!-- add domain admin modal -->
127<!-- add oauth2 client modal -->
128<div class="modal fade" id="addOAuth2ClientModal" tabindex="-1" role="dialog" aria-hidden="true">
129 <div class="modal-dialog modal-lg">
130 <div class="modal-content">
131 <div class="modal-header">
132 <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>
133 <h3 class="modal-title">OAuth2</h3>
134 </div>
135 <div class="modal-body">
136 <form class="form-horizontal" data-cached-form="true" data-id="add_oauth2_client" role="form" method="post">
137 <div class="form-group">
138 <label class="control-label col-sm-2" for="redirect_uri">{{ lang.admin.oauth2_redirect_uri }}:</label>
139 <div class="col-sm-10">
140 <input type="text" class="form-control" name="redirect_uri" required>
141 </div>
142 </div>
143 <div class="form-group">
144 <div class="col-sm-offset-2 col-sm-10">
145 <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="add_oauth2_client" data-api-url='add/oauth2-client' data-api-attr='{}' href="#"><i class="bi bi-plus-lg"></i> {{ lang.admin.add }}</button>
146 </div>
147 </div>
148 </form>
149 </div>
150 </div>
151 </div>
152</div><!-- add domain admin modal -->
153<!-- add admin modal -->
154<div class="modal fade" id="addAdminModal" tabindex="-1" role="dialog" aria-hidden="true">
155 <div class="modal-dialog modal-lg">
156 <div class="modal-content">
157 <div class="modal-header">
158 <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>
159 <h3 class="modal-title">{{ lang.admin.add_admin }}</h3>
160 </div>
161 <div class="modal-body">
162 <form class="form-horizontal" data-cached-form="true" data-id="add_admin" role="form" method="post" autocomplete="off">
163 <div class="form-group">
164 <label class="control-label col-sm-2" for="username">{{ lang.admin.username }}:</label>
165 <div class="col-sm-10">
166 <input type="text" class="form-control" name="username" onkeyup="this.value = this.value.toLowerCase();" required>
167 &rdsh; <kbd>a-z - _ .</kbd>
168 </div>
169 </div>
170 <div class="form-group">
171 <label class="control-label col-sm-2" for="password">{{ lang.admin.password }} (<a href="#" class="generate_password">{{ lang.admin.generate }}</a>):</label>
172 <div class="col-sm-10">
173 <input type="password" class="form-control" data-pwgen-field="true" data-hibp="true" name="password" placeholder="" autocomplete="new-password" required>
174 </div>
175 </div>
176 <div class="form-group">
177 <label class="control-label col-sm-2" for="password2">{{ lang.admin.password_repeat }}:</label>
178 <div class="col-sm-10">
179 <input type="password" class="form-control" data-pwgen-field="true" name="password2" placeholder="" autocomplete="new-password" required>
180 </div>
181 </div>
182 <div class="form-group">
183 <div class="col-sm-offset-2 col-sm-10">
184 <div class="checkbox">
185 <label><input type="checkbox" value="1" name="active" checked> {{ lang.admin.active }}</label>
186 </div>
187 </div>
188 </div>
189 <div class="form-group">
190 <div class="col-sm-offset-2 col-sm-10">
191 <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="add_admin" data-api-url='add/admin' data-api-attr='{}' href="#"><i class="bi bi-plus-lg"></i> {{ lang.admin.add }}</button>
192 </div>
193 </div>
194 </form>
195 </div>
196 </div>
197 </div>
198</div><!-- add admin modal -->
199<!-- test transport modal -->
200<div class="modal fade" id="testTransportModal" tabindex="-1" role="dialog" aria-hidden="true">
201 <div class="modal-dialog modal-lg">
202 <div class="modal-content">
203 <div class="modal-header">
204 <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>
205 <h3 class="modal-title"><i class="bi bi-info-circle-fill"></i> Transport</h3>
206 </div>
207 <div class="modal-body">
208 <form class="form-horizontal" data-cached-form="true" id="test_transport_form" role="form" method="post">
209 <input type="hidden" class="form-control" name="transport_id" id="transport_id">
210 <input type="hidden" class="form-control" name="transport_type" id="transport_type">
211 <div class="form-group">
212 <label class="control-label col-sm-2" for="mail_from">{{ lang.admin.relay_from }}</label>
213 <div class="col-sm-10">
214 <input type="text" class="form-control" name="mail_from" placeholder="relay@example.org">
215 </div>
216 </div>
217 <div class="form-group">
218 <label class="control-label col-sm-2" for="mail_rcpt">{{ lang.admin.relay_rcpt }}</label>
219 <div class="col-sm-10">
220 <input type="text" class="form-control" name="mail_rcpt" placeholder="null@hosted.mailcow.de" value="null@hosted.mailcow.de">
221 <p class="help-block">{{ lang.admin.transport_test_rcpt_info|raw }}</p>
222 </div>
223 </div>
224 <div class="form-group">
225 <div class="col-sm-offset-2 col-sm-10">
226 <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" id="test_transport" href="#">{{ lang.admin.relay_run }}</button>
227 </div>
228 </div>
229 </form>
230 <hr>
231 <div id="test_transport_result" style="font-size:10pt">-</div>
232 </div>
233 </div>
234 </div>
235</div><!-- test transport modal -->
236<!-- show queue item modal -->
237<div class="modal fade" id="showQueuedMsg" tabindex="-1" role="dialog" aria-hidden="true">
238 <div class="modal-dialog modal-lg">
239 <div class="modal-content">
240 <div class="modal-header">
241 <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>
242 <h3 class="modal-title"><i class="bi bi-card-checklist" style="font-size:18px"></i> ID <span id="queue_id"></span></h3>
243 </div>
244 <div class="modal-body">
245 <textarea class="form-control" id="queue_msg_content" name="content" rows="40"></textarea>
246 </div>
247 </div>
248 </div>
249</div><!-- show queue item modal -->
250<!-- priv key modal -->
251<div class="modal fade" id="showDKIMprivKey" tabindex="-1" role="dialog" aria-hidden="true">
252 <div class="modal-dialog">
253 <div class="modal-content">
254 <div class="modal-header">
255 <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>
256 <h3 class="modal-title"><i class="bi bi-key-fill"></i> Private key</h3>
257 </div>
258 <div class="modal-body">
259 <pre id="priv_key_pre"></pre>
260 </div>
261 </div>
262 </div>
263</div><!-- priv key modal -->