blob: 25185de0eb8fb21dd7a44aa191a6ff110cdd738a [file] [log] [blame]
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001<!-- add mailbox modal -->
2<div class="modal fade" id="addMailboxModal" tabindex="-1" role="dialog" aria-hidden="true">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01003 <div class="modal-dialog modal-xl">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01004 <div class="modal-content">
5 <div class="modal-header">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01006 <h3 class="modal-title">{{ lang.mailbox.add_mailbox }}</h3>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01007 <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01008 </div>
9 <div class="modal-body">
10 <form class="form-horizontal" data-cached-form="true" data-id="add_mailbox" role="form" autocomplete="off">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +010011 <input type="hidden" value="0" name="force_pw_update">
12 <input type="hidden" value="0" name="sogo_access">
13 <input type="hidden" value="0" name="protocol_access">
14
15 <div class="row mb-2">
16 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="local_part">{{ lang.add.mailbox_username }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +010017 <div class="col-sm-10">
18 <input type="text" pattern="[A-Za-z0-9\.!#$%&'*+/=?^_`{|}~-]+" autocorrect="off" autocapitalize="none" class="form-control" name="local_part" required>
19 </div>
20 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +010021 <div class="row mb-2">
22 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="domain">{{ lang.add.domain }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +010023 <div class="col-sm-10">
24 <select class="full-width-select" data-live-search="true" id="addSelectDomain" name="domain" required>
25 {% for domain in domains %}
26 <option>{{ domain }}</option>
27 {% endfor %}
28 </select>
29 </div>
30 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +010031 <div class="row mb-4">
32 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="name">{{ lang.add.full_name }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +010033 <div class="col-sm-10">
34 <input type="text" class="form-control" name="name">
35 </div>
36 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +010037 <div class="row mb-2">
38 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="password">{{ lang.add.password }} (<a href="#" class="generate_password">{{ lang.add.generate }}</a>)</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +010039 <div class="col-sm-10">
40 <input type="password" data-pwgen-field="true" data-hibp="true" class="form-control" name="password" placeholder="" autocomplete="new-password" required>
41 </div>
42 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +010043 <div class="row mb-4">
44 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="password2">{{ lang.add.password_repeat }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +010045 <div class="col-sm-10">
46 <input type="password" data-pwgen-field="true" class="form-control" name="password2" placeholder="" autocomplete="new-password" required>
47 </div>
48 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +010049 <div class="row mb-2">
50 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="description">{{ lang.mailbox.template }}</label>
51 <div class="col-sm-10">
52 <select data-live-search="true" id="mailbox_templates" class="form-control" title="{{ lang.mailbox.template }}">
53 </select>
54 </div>
55 </div>
56 <div class="row mb-2">
57 <label class="control-label col-sm-2 text-sm-end text-sm-end">{{ lang.add.tags }}</label>
58 <div class="col-sm-10">
59 <div class="form-control tag-box">
60 <input type="text" class="tag-input" id="addMailbox_tags">
61 <span class="btn tag-add"><i class="bi bi-plus-lg"></i></span>
62 <input type="hidden" value="" name="tags" class="tag-values" />
63 </div>
64 </div>
65 </div>
66 <div class="row mb-4">
67 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="addInputQuota">{{ lang.add.quota_mb }}
68 <br /><span id="quotaBadge" class="badge bg-primary">max. - MiB</span>
69 </label>
70 <div class="col-sm-10">
71 <input type="text" class="form-control" name="quota" min="0" max="" id="addInputQuota" disabled value="{{ lang.add.select_domain }}" required>
72 <small class="text-muted">0 = ∞</small>
73 <div class="badge fs-5 bg-warning addInputQuotaExhausted" style="display:none;">{{ lang.warning.quota_exceeded_scope }}</div>
74 </div>
75 </div>
76 <div class="row mb-2">
77 <label class="control-label col-sm-2 text-sm-end text-sm-end">{{ lang.user.quarantine_notification }}</label>
78 <div class="col-sm-10">
79 <div class="btn-group">
80 <input type="radio" class="btn-check" name="quarantine_notification" id="quarantine_notification_never" autocomplete="off" value="never">
81 <label class="btn btn-sm btn-xs-quart d-block d-sm-inline btn-secondary" for="quarantine_notification_never">{{ lang.user.never }}</label>
82
83 <input type="radio" class="btn-check" name="quarantine_notification" id="quarantine_notification_hourly" autocomplete="off" value="hourly">
84 <label class="btn btn-sm btn-xs-quart d-block d-sm-inline btn-secondary" for="quarantine_notification_hourly">{{ lang.user.hourly }}</label>
85
86 <input type="radio" class="btn-check" name="quarantine_notification" id="quarantine_notification_daily" autocomplete="off" value="daily">
87 <label class="btn btn-sm btn-xs-quart d-block d-sm-inline btn-secondary" for="quarantine_notification_daily">{{ lang.user.daily }}</label>
88
89 <input type="radio" class="btn-check" name="quarantine_notification" id="quarantine_notification_weekly" autocomplete="off" value="weekly">
90 <label class="btn btn-sm btn-xs-quart d-block d-sm-inline btn-secondary" for="quarantine_notification_weekly">{{ lang.user.weekly }}</label>
91 </div>
92 <p class="text-muted"><small>{{ lang.user.quarantine_notification_info }}</small></p>
93 </div>
94 </div>
95 <div class="row mb-2">
96 <label class="control-label col-sm-2 text-sm-end text-sm-end">{{ lang.user.quarantine_category }}</label>
97 <div class="col-sm-10">
98 <div class="btn-group">
99 <input type="radio" class="btn-check" name="quarantine_category" id="quarantine_category_reject" autocomplete="off" value="reject">
100 <label class="btn btn-sm btn-xs-quart d-block d-sm-inline btn-secondary" for="quarantine_category_reject">{{ lang.user.q_reject }}</label>
101
102 <input type="radio" class="btn-check" name="quarantine_category" id="quarantine_category_add_header" autocomplete="off" value="add_header">
103 <label class="btn btn-sm btn-xs-quart d-block d-sm-inline btn-secondary" for="quarantine_category_add_header">{{ lang.user.q_add_header }}</label>
104
105 <input type="radio" class="btn-check" name="quarantine_category" id="quarantine_category_all" autocomplete="off" value="all">
106 <label class="btn btn-sm btn-xs-quart d-block d-sm-inline btn-secondary" for="quarantine_category_all">{{ lang.user.q_all }}</label>
107 </div>
108 <p class="text-muted"><small>{{ lang.user.quarantine_category_info }}</small></p>
109 </div>
110 </div>
111 <div class="row mb-4">
112 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="tls_enforce_in">{{ lang.user.tls_policy }}</label>
113 <div class="col-sm-10">
114 <div class="btn-group">
115 <input type="checkbox" class="btn-check" name="tls_enforce_in" id="tls_enforce_in" autocomplete="off" value="1">
116 <label class="btn btn-sm btn-xs-quart d-block d-sm-inline btn-secondary" for="tls_enforce_in">{{ lang.user.tls_enforce_in }}</label>
117
118 <input type="checkbox" class="btn-check" name="tls_enforce_out" id="tls_enforce_out" autocomplete="off" value="1">
119 <label class="btn btn-sm btn-xs-quart d-block d-sm-inline btn-secondary" for="tls_enforce_out">{{ lang.user.tls_enforce_out }}</label>
120 </div>
121 </div>
122 </div>
123 <div class="row mb-2">
124 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="protocol_access">{{ lang.edit.allowed_protocols }}</label>
125 <div class="col-sm-10">
126 <select name="protocol_access" id="protocol_access" multiple class="form-control">
127 <option value="imap">IMAP</option>
128 <option value="pop3">POP3</option>
129 <option value="smtp">SMTP</option>
130 <option value="sieve">Sieve</option>
131 </select>
132 </div>
133 </div>
134 <div class="row mb-4">
135 <label class="control-label col-sm-2 text-sm-end text-sm-end">ACL</label>
136 <div class="col-sm-10">
137 <select id="user_acl" name="acl" multiple class="form-control">
138 <option value="spam_alias" selected>{{ lang.acl["spam_alias"] }}</option>
139 <option value="tls_policy" selected>{{ lang.acl["tls_policy"] }}</option>
140 <option value="spam_score" selected>{{ lang.acl["spam_score"] }}</option>
141 <option value="spam_policy" selected>{{ lang.acl["spam_policy"] }}</option>
142 <option value="delimiter_action" selected>{{ lang.acl["delimiter_action"] }}</option>
143 <option value="syncjobs">{{ lang.acl["syncjobs"] }}</option>
144 <option value="eas_reset" selected>{{ lang.acl["eas_reset"] }}</option>
145 <option value="sogo_profile_reset">{{ lang.acl["sogo_profile_reset"] }}</option>
146 <option value="pushover" selected>{{ lang.acl["pushover"] }}</option>
147 <option value="quarantine" selected>{{ lang.acl["quarantine"] }}</option>
148 <option value="quarantine_attachments" selected>{{ lang.acl["quarantine_attachments"] }}</option>
149 <option value="quarantine_notification" selected>{{ lang.acl["quarantine_notification"] }}</option>
150 <option value="quarantine_category" selected>{{ lang.acl["quarantine_category"] }}</option>
151 <option value="app_passwds" selected>{{ lang.acl["app_passwds"] }}</option>
152 </select>
153 </div>
154 </div>
155 <div class="row mb-4">
156 <label class="control-label col-sm-2 text-sm-end text-sm-end">{{ lang.acl.ratelimit }}</label>
157 <div class="col-sm-10">
158 <input name="rl_value" id="rl_value" type="number" autocomplete="off" value="" class="form-control mb-2" placeholder="{{ lang.ratelimit.disabled }}">
159 <select name="rl_frame" id="rl_frame" class="form-control">
160 <option value="s">{{ lang.ratelimit.second }}</option>
161 <option value="m">{{ lang.ratelimit.minute }}</option>
162 <option value="h">{{ lang.ratelimit.hour }}</option>
163 <option value="d">{{ lang.ratelimit.day }}</option>
164 </select>
165 <p class="text-muted mt-3">{{ lang.edit.mbox_rl_info }}</p>
166 </div>
167 </div>
168 <div class="row mb-2">
169 <div class="offset-sm-2 col-sm-10">
170 <select name="active" id="mbox_active" class="form-control">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100171 <option value="1" selected>{{ lang.add.active }}</option>
172 <option value="2">{{ lang.add.disable_login }}</option>
173 <option value="0">{{ lang.add.inactive }}</option>
174 </select>
175 </div>
176 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100177 <div class="row">
178 <div class="offset-sm-2 col-sm-10">
179 <div class="checkbox">
180 <label><input type="checkbox" value="1" name="force_pw_update" id="force_pw_update"> {{ lang.edit.force_pw_update }}</label>
181 <small class="text-muted">{{ lang.edit.force_pw_update_info|format(ui_texts.main_name) }}</small>
182 </div>
183 </div>
184 </div>
185 {% if not skip_sogo %}
186 <div class="row">
187 <div class="offset-sm-2 col-sm-10">
188 <div class="checkbox">
189 <label><input type="checkbox" value="1" name="sogo_access" id="sogo_access"> {{ lang.edit.sogo_access }}</label>
190 <small class="text-muted">{{ lang.edit.sogo_access_info }}</small>
191 </div>
192 </div>
193 </div>
194 {% endif %}
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100195 <hr>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100196 <div class="row">
197 <div class="offset-sm-2 col-sm-10">
198 <button class="btn btn-xs-lg d-block d-sm-inline btn-success" data-action="add_item" data-id="add_mailbox" data-api-url='add/mailbox' data-api-attr='{}' href="#">{{ lang.admin.add }}</button>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100199 </div>
200 </div>
201 </form>
202 </div>
203 </div>
204 </div>
205</div><!-- add mailbox modal -->
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100206<!-- add mailbox template modal -->
207<div class="modal fade" id="addMailboxTemplateModal" tabindex="-1" role="dialog" aria-hidden="true">
208 <div class="modal-dialog modal-xl">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100209 <div class="modal-content">
210 <div class="modal-header">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100211 <h3 class="modal-title">{{ lang.mailbox.add_template }}</h3>
212 <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100213 </div>
214 <div class="modal-body">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100215 <form class="form-horizontal" data-id="addmailbox_template" role="form" method="post">
216 <input type="hidden" value="default" name="sender_acl">
217 <input type="hidden" value="0" name="force_pw_update">
218 <input type="hidden" value="0" name="sogo_access">
219 <input type="hidden" value="0" name="protocol_access">
220
221 <div class="row mb-4">
222 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="template">{{ lang.mailbox.template }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100223 <div class="col-sm-10">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100224 <div class="input-group mb-3">
225 <input type="text" name="template" class="form-control" aria-label="Text input with dropdown button" value="" />
226 </div>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100227 </div>
228 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100229 <div class="row mb-2">
230 <label class="control-label col-sm-2 text-sm-end text-sm-end">{{ lang.add.tags }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100231 <div class="col-sm-10">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100232 <div class="form-control tag-box">
233 <input type="text" class="tag-input" id="addMailbox_tags">
234 <span class="btn tag-add"><i class="bi bi-plus-lg"></i></span>
235 <input type="hidden" value="" name="tags" class="tag-values" />
236 </div>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100237 </div>
238 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100239 <div class="row mb-2">
240 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="quota">{{ lang.edit.quota_mb }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100241 <div class="col-sm-10">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100242 <input type="number" name="quota" style="width:100%" min="0" value="" class="form-control">
243 <small class="text-muted">0 = ∞</small>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100244 </div>
245 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100246 <div class="row mb-2">
247 <label class="control-label col-sm-2 text-sm-end text-sm-end">{{ lang.user.quarantine_notification }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100248 <div class="col-sm-10">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100249 <div class="btn-group">
250 <input type="radio" class="btn-check" name="quarantine_notification" id="template_quarantine_notification_never" autocomplete="off" value="never">
251 <label class="btn btn-sm btn-xs-quart d-block d-sm-inline btn-secondary" for="template_quarantine_notification_never">{{ lang.user.never }}</label>
252
253 <input type="radio" class="btn-check" name="quarantine_notification" id="template_quarantine_notification_hourly" autocomplete="off" value="hourly">
254 <label class="btn btn-sm btn-xs-quart d-block d-sm-inline btn-secondary" for="template_quarantine_notification_hourly">{{ lang.user.hourly }}</label>
255
256 <input type="radio" class="btn-check" name="quarantine_notification" id="template_quarantine_notification_daily" autocomplete="off" value="daily">
257 <label class="btn btn-sm btn-xs-quart d-block d-sm-inline btn-secondary" for="template_quarantine_notification_daily">{{ lang.user.daily }}</label>
258
259 <input type="radio" class="btn-check" name="quarantine_notification" id="template_quarantine_notification_weekly" autocomplete="off" value="weekly">
260 <label class="btn btn-sm btn-xs-quart d-block d-sm-inline btn-secondary" for="template_quarantine_notification_weekly">{{ lang.user.weekly }}</label>
261 </div>
262 <p class="text-muted"><small>{{ lang.user.quarantine_notification_info }}</small></p>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100263 </div>
264 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100265 <div class="row mb-2">
266 <label class="control-label col-sm-2 text-sm-end text-sm-end">{{ lang.user.quarantine_category }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100267 <div class="col-sm-10">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100268 <div class="btn-group">
269 <input type="radio" class="btn-check" name="quarantine_category" id="template_quarantine_category_reject" autocomplete="off" value="reject" >
270 <label class="btn btn-sm btn-xs-quart d-block d-sm-inline btn-secondary" for="template_quarantine_category_reject">{{ lang.user.q_reject }}</label>
271
272 <input type="radio" class="btn-check" name="quarantine_category" id="template_quarantine_category_add_header" autocomplete="off" value="add_header">
273 <label class="btn btn-sm btn-xs-quart d-block d-sm-inline btn-secondary" for="template_quarantine_category_add_header">{{ lang.user.q_add_header }}</label>
274
275 <input type="radio" class="btn-check" name="quarantine_category" id="template_quarantine_category_all" autocomplete="off" value="all">
276 <label class="btn btn-sm btn-xs-quart d-block d-sm-inline btn-secondary" for="template_quarantine_category_all">{{ lang.user.q_all }}</label>
277 </div>
278 <p class="text-muted"><small>{{ lang.user.quarantine_category_info }}</small></p>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100279 </div>
280 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100281 <div class="row mb-4">
282 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="sender_acl">{{ lang.user.tls_policy }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100283 <div class="col-sm-10">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100284 <div class="btn-group">
285 <input type="checkbox" class="btn-check" name="tls_enforce_in" id="template_tls_enforce_in" autocomplete="off" value="1">
286 <label class="btn btn-sm btn-xs-quart d-block d-sm-inline btn-secondary" for="template_tls_enforce_in">{{ lang.user.tls_enforce_in }}</label>
287
288 <input type="checkbox" class="btn-check" name="tls_enforce_out" id="template_tls_enforce_out" autocomplete="off" value="1">
289 <label class="btn btn-sm btn-xs-quart d-block d-sm-inline btn-secondary" for="template_tls_enforce_out">{{ lang.user.tls_enforce_out }}</label>
290 </div>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100291 </div>
292 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100293 <div class="row mb-2">
294 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="protocol_access">{{ lang.edit.allowed_protocols }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100295 <div class="col-sm-10">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100296 <select name="protocol_access" multiple class="form-control">
297 <option value="imap" selected>IMAP</option>
298 <option value="pop3" selected>POP3</option>
299 <option value="smtp" selected>SMTP</option>
300 <option value="sieve" selected>Sieve</option>
301 </select>
302 </div>
303 </div>
304 <div class="row mb-4">
305 <label class="control-label col-sm-2 text-sm-end text-sm-end">ACL</label>
306 <div class="col-sm-10">
307 <select id="template_user_acl" name="acl" size="10" multiple class="form-control">
308 <option value="spam_alias" selected>{{ lang.acl["spam_alias"] }}</option>
309 <option value="tls_policy" selected>{{ lang.acl["tls_policy"] }}</option>
310 <option value="spam_score" selected>{{ lang.acl["spam_score"] }}</option>
311 <option value="spam_policy" selected>{{ lang.acl["spam_policy"] }}</option>
312 <option value="delimiter_action" selected>{{ lang.acl["delimiter_action"] }}</option>
313 <option value="syncjobs">{{ lang.acl["syncjobs"] }}</option>
314 <option value="eas_reset" selected>{{ lang.acl["eas_reset"] }}</option>
315 <option value="sogo_profile_reset">{{ lang.acl["sogo_profile_reset"] }}</option>
316 <option value="pushover" selected>{{ lang.acl["pushover"] }}</option>
317 <option value="quarantine" selected>{{ lang.acl["quarantine"] }}</option>
318 <option value="quarantine_attachments" selected>{{ lang.acl["quarantine_attachments"] }}</option>
319 <option value="quarantine_notification" selected>{{ lang.acl["quarantine_notification"] }}</option>
320 <option value="quarantine_category" selected>{{ lang.acl["quarantine_category"] }}</option>
321 <option value="app_passwds" selected>{{ lang.acl["app_passwds"] }}</option>
322 </select>
323 </div>
324 </div>
325 <div class="row mb-4">
326 <label class="control-label col-sm-2 text-sm-end text-sm-end">{{ lang.acl.ratelimit }}</label>
327 <div class="col-sm-10">
328 <input name="rl_value" type="number" autocomplete="off" value="" class="form-control mb-2" placeholder="{{ lang.ratelimit.disabled }}">
329 <select name="rl_frame" class="form-control">
330 <option value="s">{{ lang.ratelimit.second }}</option>
331 <option value="m">{{ lang.ratelimit.minute }}</option>
332 <option value="h">{{ lang.ratelimit.hour }}</option>
333 <option value="d">{{ lang.ratelimit.day }}</option>
334 </select>
335 <p class="text-muted mt-3">{{ lang.edit.mbox_rl_info }}</p>
336 </div>
337 </div>
338 <hr>
339 <div class="row my-2">
340 <div class="offset-sm-2 col-sm-10">
341 <select id="mbox_acitve" name="active" class="form-control">
342 <option value="1" selected>{{ lang.edit.active }}</option>
343 <option value="2">{{ lang.edit.disable_login }}</option>
344 <option value="0">{{ lang.edit.inactive }}</option>
345 </select>
346 </div>
347 </div>
348 <div class="row">
349 <div class="offset-sm-2 col-sm-10">
350 <div class="checkbox">
351 <label><input type="checkbox" value="1" name="force_pw_update"> {{ lang.edit.force_pw_update }}</label>
352 <small class="text-muted">{{ lang.edit.force_pw_update_info|format(ui_texts.main_name) }}</small>
353 </div>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100354 </div>
355 </div>
356 {% if not skip_sogo %}
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100357 <div class="row">
358 <div class="offset-sm-2 col-sm-10">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100359 <div class="checkbox">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100360 <label><input type="checkbox" value="1" name="sogo_access"> {{ lang.edit.sogo_access }}</label>
361 <small class="text-muted">{{ lang.edit.sogo_access_info }}</small>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100362 </div>
363 </div>
364 </div>
365 {% endif %}
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100366 <div class="row my-2">
367 <div class="offset-sm-2 col-sm-10">
368 <button class="btn btn-xs-lg d-block d-sm-inline btn-success" data-action="add_item" data-id="addmailbox_template" data-api-url='add/mailbox/template' data-api-attr='{}' href="#">{{ lang.admin.add }}</button>
369 </div>
370 </div>
371 </form>
372 </div>
373 </div>
374 </div>
375</div><!-- add mailbox template modal -->
376<!-- add domain modal -->
377<div class="modal fade" id="addDomainModal" tabindex="-1" role="dialog" aria-hidden="true">
378 <div class="modal-dialog modal-xl">
379 <div class="modal-content">
380 <div class="modal-header">
381 <h3 class="modal-title">{{ lang.mailbox.add_domain }}</h3>
382 <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
383 </div>
384 <div class="modal-body">
385 <form class="form-horizontal" data-cached-form="true" data-id="add_domain" role="form">
386 <div class="row mb-2">
387 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="domain">{{ lang.add.domain }}</label>
388 <div class="col-sm-10">
389 <input type="text" autocorrect="off" autocapitalize="none" class="form-control" name="domain" required>
390 </div>
391 </div>
392 <div class="row mb-4">
393 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="description">{{ lang.add.description }}</label>
394 <div class="col-sm-10">
395 <input type="text" class="form-control" name="description">
396 </div>
397 </div>
398 <div class="row mb-2">
399 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="description">{{ lang.mailbox.template }}</label>
400 <div class="col-sm-10">
401 <select data-live-search="true" id="domain_templates" class="form-control">
402 </select>
403 </div>
404 </div>
405 <div class="row mb-2">
406 <label class="control-label col-sm-2 text-sm-end text-sm-end">{{ lang.add.tags }}</label>
407 <div class="col-sm-10">
408 <div class="form-control tag-box">
409 <input type="text" class="tag-input" id="addDomain_tags">
410 <span class="btn tag-add"><i class="bi bi-plus-lg"></i></span>
411 <input type="hidden" value="" name="tags" class="tag-values" />
412 </div>
413 </div>
414 </div>
415 <div class="row mb-2">
416 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="aliases">{{ lang.add.max_aliases }}</label>
417 <div class="col-sm-10">
418 <input type="number" id="addDomain_max_aliases" class="form-control" name="aliases" value="400" required>
419 </div>
420 </div>
421 <div class="row mb-2">
422 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="mailboxes">{{ lang.add.max_mailboxes }}</label>
423 <div class="col-sm-10">
424 <input type="number" id="addDomain_max_mailboxes" class="form-control" name="mailboxes" value="10" required>
425 </div>
426 </div>
427 <div class="row mb-2">
428 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="defquota">{{ lang.add.mailbox_quota_def }}</label>
429 <div class="col-sm-10">
430 <input type="number" id="addDomain_mailbox_quota_def" class="form-control" name="defquota" value="3072" required>
431 </div>
432 </div>
433 <div class="row mb-2">
434 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="maxquota">{{ lang.add.mailbox_quota_m }}</label>
435 <div class="col-sm-10">
436 <input type="number" id="addDomain_mailbox_quota_m" class="form-control" name="maxquota" value="10240" required>
437 </div>
438 </div>
439 <div class="row mb-4">
440 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="quota">{{ lang.add.domain_quota_m }}</label>
441 <div class="col-sm-10">
442 <input type="number" id="addDomain_domain_quota_m" class="form-control" name="quota" value="10240" required>
443 </div>
444 </div>
445 {% if not skip_sogo %}
446 <div class="row mb-2">
447 <div class="offset-sm-2 col-sm-10">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100448 <div class="checkbox">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100449 <label><input type="checkbox" id="addDomain_gal" value="1" name="gal" checked> {{ lang.edit.gal }}</label>
450 <small class="text-muted">{{ lang.edit.gal_info|raw }}</small>
451 </div>
452 </div>
453 </div>
454 {% endif %}
455 <div class="row mb-4">
456 <div class="offset-sm-2 col-sm-10">
457 <div class="checkbox">
458 <label><input type="checkbox" id="addDomain_active" value="1" name="active" checked> {{ lang.add.active }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100459 </div>
460 </div>
461 </div>
462 <hr>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100463 <div class="row mb-4">
464 <label class="control-label col-sm-2 text-sm-end" for="rl_frame">{{ lang.acl.ratelimit }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100465 <div class="col-sm-7">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100466 <input name="rl_value" id="addDomain_rl_value" type="number" class="form-control" placeholder="{{ lang.ratelimit.disabled }}">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100467 </div>
468 <div class="col-sm-3">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100469 <select name="rl_frame" id="addDomain_rl_frame" class="form-control">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100470 {% include 'mailbox/rl-frame.twig' %}
471 </select>
472 </div>
473 </div>
474 <hr>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100475 <div class="row mb-2">
476 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="dkim_selector">{{ lang.admin.dkim_domains_selector }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100477 <div class="col-sm-10">
478 <input class="form-control" id="dkim_selector" name="dkim_selector" value="dkim">
479 </div>
480 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100481 <div class="row mb-4">
482 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="key_size">{{ lang.admin.dkim_key_length }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100483 <div class="col-sm-10">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100484 <select data-style="btn btn-secondary btn-sm" class="form-control" id="key_size" name="key_size">
485 <option data-subtext="bits" value="1024">1024</option>
486 <option data-subtext="bits" value="2048" selected>2048</option>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100487 </select>
488 </div>
489 </div>
490 <hr>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100491 <div class="row mb-4">
492 <label class="control-label col-sm-2 text-sm-end text-sm-end">{{ lang.add.backup_mx_options }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100493 <div class="col-sm-10">
494 <div class="checkbox">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100495 <label><input type="checkbox" id="addDomain_relay_domain" value="1" name="backupmx"> {{ lang.add.relay_domain }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100496 <br>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100497 <label><input type="checkbox" id="addDomain_relay_all" value="1" name="relay_all_recipients"> {{ lang.add.relay_all }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100498 <p>{{ lang.add.relay_all_info|raw }}</p>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100499 <label><input type="checkbox" id="addDomain_relay_unknown_only" value="1" name="relay_unknown_only"> {{ lang.add.relay_unknown_only }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100500 <br>
501 <p>{{ lang.add.relay_transport_info|raw }}</p>
502 </div>
503 </div>
504 </div>
505 <hr>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100506 <div class="row mb-4">
507 <div class="offset-sm-2 col-sm-10 btn-group">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100508 {% if not skip_sogo %}
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100509 <button class="btn btn-xs-lg btn-xs-half d-block d-sm-inline btn-secondary" data-action="add_item" data-id="add_domain" data-api-url='add/domain' data-api-attr='{"tags": []}' href="#">{{ lang.add.add_domain_only }}</button>
510 <button class="btn btn-xs-lg btn-xs-half d-block d-sm-inline btn-secondary" data-action="add_item" data-id="add_domain" data-api-url='add/domain' data-api-attr='{"restart_sogo":"1", "tags": []}' href="#">{{ lang.add.add_domain_restart }}</button>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100511 <div class="clearfix visible-xs"></div>
512 {% else %}
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100513 <button class="btn btn-xs-lg d-block d-sm-inline btn-success" data-action="add_item" data-id="add_domain" data-api-url='add/domain' data-api-attr='{"tags": []}' href="#">{{ lang.add.add }}</button>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100514 {% endif %}
515 </div>
516 </div>
517 {# TODO: Separate SOGo-related text #}
518 {% if not skip_sogo %}
519 <p><i class="bi bi-shield-fill-exclamation text-danger"></i> {{ lang.add.post_domain_add|raw }}</p>
520 {% endif %}
521 </form>
522 </div>
523 </div>
524 </div>
525</div><!-- add domain modal -->
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100526<!-- add domain template modal -->
527<div class="modal fade" id="addDomainTemplateModal" tabindex="-1" role="dialog" aria-hidden="true">
528 <div class="modal-dialog modal-xl">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100529 <div class="modal-content">
530 <div class="modal-header">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100531 <h3 class="modal-title">{{ lang.mailbox.add_template }}</h3>
532 <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
533 </div>
534 <div class="modal-body">
535 <form data-id="adddomain_template" class="form-horizontal" role="form" method="post">
536 {% if mailcow_cc_role == 'admin' %}
537 <div class="row mb-4">
538 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="template">{{ lang.mailbox.template }}</label>
539 <div class="col-sm-10">
540 <div class="input-group mb-3">
541 <input type="text" name="template" class="form-control" aria-label="Text input with dropdown button" value="" />
542 </div>
543 </div>
544 </div>
545 <div class="row mb-2">
546 <label class="control-label col-sm-2 text-sm-end text-sm-end">{{ lang.add.tags }}</label>
547 <div class="col-sm-10">
548 <div class="form-control tag-box">
549 <input type="text" class="tag-input">
550 <span class="btn tag-add"><i class="bi bi-plus-lg"></i></span>
551 <input type="hidden" value="" name="tags" class="tag-values" />
552 </div>
553 </div>
554 </div>
555 <div class="row mb-2">
556 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="max_num_aliases_for_domain">{{ lang.add.max_aliases }}</label>
557 <div class="col-sm-10">
558 <input type="number" class="form-control" name="max_num_aliases_for_domain" value="">
559 </div>
560 </div>
561 <div class="row mb-2">
562 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="max_num_mboxes_for_domain">{{ lang.add.max_mailboxes }}</label>
563 <div class="col-sm-10">
564 <input type="number" class="form-control" name="max_num_mboxes_for_domain" value="">
565 </div>
566 </div>
567 <div class="row mb-2">
568 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="def_quota_for_mbox">{{ lang.add.mailbox_quota_def }}</label>
569 <div class="col-sm-10">
570 <input type="number" class="form-control" name="def_quota_for_mbox" value="">
571 </div>
572 </div>
573 <div class="row mb-2">
574 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="max_quota_for_mbox">{{ lang.add.mailbox_quota_m }}</label>
575 <div class="col-sm-10">
576 <input type="number" class="form-control" name="max_quota_for_mbox" value="">
577 </div>
578 </div>
579 <div class="row mb-4">
580 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="max_quota_for_domain">{{ lang.add.domain_quota_m }}</label>
581 <div class="col-sm-10">
582 <input type="number" class="form-control" name="max_quota_for_domain" value="">
583 </div>
584 </div>
585 <div class="row">
586 <div class="offset-sm-2 col-sm-10">
587 <div class="checkbox">
588 <label><input type="checkbox" value="1" name="gal" checked> {{ lang.add.gal }}</label>
589 <small class="text-muted">{{ lang.add.gal_info|raw }}</small>
590 </div>
591 </div>
592 </div>
593 <div class="row mb-2">
594 <div class="offset-sm-2 col-sm-10">
595 <div class="checkbox">
596 <label><input type="checkbox" value="1" name="active" checked> {{ lang.add.active }}</label>
597 </div>
598 </div>
599 </div>
600 <hr>
601 <div class="row">
602 <label class="control-label col-sm-2 text-sm-end text-sm-end">{{ lang.edit.ratelimit }}</label>
603 <div class="col-sm-7">
604 <input name="rl_value" type="number" value="" autocomplete="off" class="form-control mb-4" placeholder="{{ lang.ratelimit.disabled }}">
605 </div>
606 <div class="col-sm-3">
607 <select name="rl_frame" class="form-control">
608 <option value="s">{{ lang.ratelimit.second }}</option>
609 <option value="m">{{ lang.ratelimit.minute }}</option>
610 <option value="h">{{ lang.ratelimit.hour }}</option>
611 <option value="d">{{ lang.ratelimit.day }}</option>
612 </select>
613 </div>
614 </div>
615 {% endif %}
616 <hr>
617 <div class="row mb-2">
618 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="dkim_selector">{{ lang.admin.dkim_domains_selector }}</label>
619 <div class="col-sm-10">
620 <input class="form-control" id="dkim_selector" name="dkim_selector" value="dkim">
621 </div>
622 </div>
623 <div class="row mb-4">
624 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="key_size">{{ lang.admin.dkim_key_length }}</label>
625 <div class="col-sm-10">
626 <select data-style="btn btn-secondary btn-sm" class="form-control" id="key_size" name="key_size">
627 <option data-subtext="bits">1024</option>
628 <option data-subtext="bits" selected>2048</option>
629 </select>
630 </div>
631 </div>
632 <hr>
633 <div class="row mb-2">
634 <label class="control-label col-sm-2 text-sm-end text-sm-end">{{ lang.edit.backup_mx_options }}</label>
635 <div class="col-sm-10">
636 <div class="checkbox">
637 <label><input type="checkbox" value="1" name="backupmx"> {{ lang.edit.relay_domain }}</label>
638 <br>
639 <label><input type="checkbox" value="1" name="relay_all_recipients"> {{ lang.edit.relay_all }}</label>
640 <p>{{ lang.edit.relay_all_info|raw }}</p>
641 <label><input type="checkbox" value="1" name="relay_unknown_only"> {{ lang.edit.relay_unknown_only }}</label>
642 <br>
643 <p>{{ lang.edit.relay_transport_info|raw }}</p>
644 </div>
645 </div>
646 </div>
647 <hr>
648 <div class="row">
649 <div class="offset-sm-2 col-sm-10">
650 <button class="btn btn-xs-lg d-block d-sm-inline btn-success" data-action="add_item" data-id="adddomain_template" data-item="{{ domain }}" data-api-url='add/domain/template' data-api-attr='{}' href="#">{{ lang.admin.add }}</button>
651 </div>
652 </div>
653 </form>
654 </div>
655 </div>
656 </div>
657</div><!-- add domain template modal -->
658<!-- add resource modal -->
659<div class="modal fade" id="addResourceModal" tabindex="-1" role="dialog" aria-hidden="true">
660 <div class="modal-dialog modal-xl">
661 <div class="modal-content">
662 <div class="modal-header">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100663 <h3 class="modal-title">{{ lang.mailbox.add_resource }}</h3>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100664 <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100665 </div>
666 <div class="modal-body">
667 <form class="form-horizontal" data-cached-form="true" role="form" data-id="add_resource">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100668 <div class="row mb-2">
669 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="description">{{ lang.add.description }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100670 <div class="col-sm-10">
671 <input type="text" class="form-control" name="description" required>
672 </div>
673 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100674 <div class="row mb-2">
675 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="domain">{{ lang.add.domain }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100676 <div class="col-sm-10">
677 <select data-live-search="true" name="domain" title="{{ lang.add.select }}" required>
678 {% for domain in domains %}
679 <option>{{ domain }}</option>
680 {% endfor %}
681 </select>
682 </div>
683 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100684 <div class="row mb-2">
685 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="domain">{{ lang.add.kind }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100686 <div class="col-sm-10">
687 <select name="kind" title="{{ lang.add.select }}" required>
688 <option value="location">Location</option>
689 <option value="group">Group</option>
690 <option value="thing">Thing</option>
691 </select>
692 </div>
693 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100694 <div class="row mb-4">
695 <label class="control-label col-sm-2 text-sm-end text-sm-end" for="multiple_bookings_select">{{ lang.add.multiple_bookings }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100696 <div class="col-sm-10">
697 <select name="multiple_bookings_select" id="multiple_bookings_select" title="{{ lang.add.select }}" required>
698 <option value="0">{{ lang.mailbox.booking_null }}</option>
699 <option value="-1" selected>{{ lang.mailbox.booking_ltnull }}</option>
700 <option value="custom">{{ lang.mailbox.booking_custom }}</option>
701 </select>
702 <div style="display:none" id="multiple_bookings_custom_div">
703 <hr>
704 <input type="number" class="form-control" name="multiple_bookings_custom" id="multiple_bookings_custom">
705 </div>
706 <input type="hidden" name="multiple_bookings" id="multiple_bookings">
707 </div>
708 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100709 <div class="row mb-2">
710 <div class="offset-sm-2 col-sm-10">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100711 <div class="checkbox">
712 <label><input type="checkbox" value="1" name="active" checked> {{ lang.add.active }}</label>
713 </div>
714 </div>
715 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100716 <div class="row mb-4">
717 <div class="offset-sm-2 col-sm-10">
718 <button class="btn btn-xs-lg d-block d-sm-inline btn-success" data-action="add_item" data-id="add_resource" data-api-url='add/resource' data-api-attr='{}' href="#">{{ lang.admin.add }}</button>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100719 </div>
720 </div>
721 </form>
722 </div>
723 </div>
724 </div>
725</div><!-- add resource modal -->
726<!-- add alias modal -->
727<div class="modal fade" id="addAliasModal" tabindex="-1" role="dialog" aria-hidden="true">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100728 <div class="modal-dialog modal-xl">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100729 <div class="modal-content">
730 <div class="modal-header">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100731 <h3 class="modal-title">{{ lang.mailbox.add_alias }}</h3>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100732 <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100733 </div>
734 <div class="modal-body">
735 <form class="form-horizontal" data-cached-form="true" role="form" data-id="add_alias">
736 <input type="hidden" value="0" name="active">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100737 <div class="row mb-2">
738 <label class="control-label col-sm-2 text-sm-end" for="address">{{ lang.add.alias_address }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100739 <div class="col-sm-10">
740 <textarea autocorrect="off" autocapitalize="none" class="form-control" rows="5" name="address" id="address" required></textarea>
741 <p>{{ lang.add.alias_address_info|raw }}</p>
742 </div>
743 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100744 <div class="row mb-4">
745 <label class="control-label col-sm-2 text-sm-end" for="goto">{{ lang.add.target_address }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100746 <div class="col-sm-10">
747 <textarea id="textarea_alias_goto" autocorrect="off" autocapitalize="none" class="form-control" rows="5" id="goto" name="goto" required></textarea>
748 <p>{{ lang.add.target_address_info|raw }}</p>
749 <div class="checkbox">
750 <label><input class="goto_checkbox" type="checkbox" value="1" name="goto_null"> {{ lang.add.goto_null }}</label>
751 </div>
752 <div class="checkbox">
753 <label><input class="goto_checkbox" type="checkbox" value="1" name="goto_spam"> {{ lang.add.goto_spam|raw }}</label>
754 </div>
755 <div class="checkbox">
756 <label><input class="goto_checkbox" type="checkbox" value="1" name="goto_ham"> {{ lang.add.goto_ham|raw }}</label>
757 </div>
758 {% if not skip_sogo %}
759 <hr>
760 <div class="checkbox">
761 <label><input type="checkbox" value="1" name="sogo_visible" checked> {{ lang.edit.sogo_visible }}</label>
762 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100763 <p class="text-muted">{{ lang.edit.sogo_visible_info }}</p>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100764 {% endif %}
765 </div>
766 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100767 <div class="row mb-2">
768 <div class="offset-sm-2 col-sm-10">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100769 <div class="checkbox">
770 <label><input type="checkbox" value="1" name="active" checked> {{ lang.add.active }}</label>
771 </div>
772 </div>
773 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100774 <div class="row mb-4">
775 <div class="offset-sm-2 col-sm-10">
776 <button class="btn btn-xs-lg d-block d-sm-inline btn-success" data-action="add_item" data-id="add_alias" data-api-url='add/alias' data-api-attr='{}' href="#">{{ lang.admin.add }}</button>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100777 </div>
778 </div>
779 </form>
780 </div>
781 </div>
782 </div>
783</div><!-- add alias modal -->
784<!-- add domain alias modal -->
785<div class="modal fade" id="addAliasDomainModal" tabindex="-1" role="dialog" aria-hidden="true">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100786 <div class="modal-dialog modal-xl">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100787 <div class="modal-content">
788 <div class="modal-header">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100789 <h3 class="modal-title">{{ lang.mailbox.add_domain_alias }}</h3>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100790 <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100791 </div>
792 <div class="modal-body">
793 <form class="form-horizontal" data-cached-form="true" role="form" data-id="add_alias_domain">
794 <input type="hidden" value="0" name="active">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100795 <div class="row mb-2">
796 <label class="control-label col-sm-2 text-sm-end" for="alias_domain">{{ lang.add.alias_domain }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100797 <div class="col-sm-10">
798 <textarea autocorrect="off" autocapitalize="none" class="form-control" rows="5" name="alias_domain" id="alias_domain" required></textarea>
799 <p>{{ lang.add.alias_domain_info|raw }}</p>
800 </div>
801 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100802 <div class="row mb-4">
803 <label class="control-label col-sm-2 text-sm-end" for="target_domain">{{ lang.add.target_domain }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100804 <div class="col-sm-10">
805 <select data-live-search="true" name="target_domain" title="{{ lang.add.select }}" required>
806 {% for domain in domains %}
807 <option>{{ domain }}</option>
808 {% endfor %}
809 </select>
810 </div>
811 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100812 <div class="row mb-4">
813 <div class="offset-sm-2 col-sm-10">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100814 <div class="checkbox">
815 <label><input type="checkbox" value="1" name="active" checked> {{ lang.add.active }}</label>
816 </div>
817 </div>
818 </div>
819 <hr>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100820 <div class="row mb-2">
821 <label class="control-label col-sm-2 text-sm-end" for="rl_frame">{{ lang.acl.ratelimit }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100822 <div class="col-sm-7">
823 <input name="rl_value" type="number" class="form-control" placeholder="{{ lang.ratelimit.disabled }}">
824 </div>
825 <div class="col-sm-3">
826 <select name="rl_frame" class="form-control">
827 {% include 'mailbox/rl-frame.twig' %}
828 </select>
829 </div>
830 </div>
831 <hr>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100832 <div class="row mb-2">
833 <label class="control-label col-sm-2 text-sm-end" for="dkim_selector2">{{ lang.admin.dkim_domains_selector }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100834 <div class="col-sm-10">
835 <input class="form-control" id="dkim_selector2" name="dkim_selector" value="dkim">
836 </div>
837 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100838 <div class="row mb-4">
839 <label class="control-label col-sm-2 text-sm-end" for="key_size2">{{ lang.admin.dkim_key_length }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100840 <div class="col-sm-10">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100841 <select data-style="btn btn-secondary btn-sm" class="form-control" id="key_size2" name="key_size">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100842 <option data-subtext="bits">1024</option>
843 <option data-subtext="bits" selected>2048</option>
844 </select>
845 </div>
846 </div>
847 <hr>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100848 <div class="row mb-4">
849 <div class="offset-sm-2 col-sm-10">
850 <button class="btn btn-xs-lg d-block d-sm-inline btn-success" data-action="add_item" data-id="add_alias_domain" data-api-url='add/alias-domain' data-api-attr='{}' href="#">{{ lang.admin.add }}</button>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100851 </div>
852 </div>
853 </form>
854 </div>
855 </div>
856 </div>
857</div><!-- add domain alias modal -->
858<!-- add sync job modal -->
859<div class="modal fade" id="addSyncJobModalAdmin" tabindex="-1" role="dialog" aria-hidden="true">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100860 <div class="modal-dialog modal-xl">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100861 <div class="modal-content">
862 <div class="modal-header">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100863 <h3 class="modal-title">{{ lang.add.syncjob }}</h3>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100864 <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100865 </div>
866 <div class="modal-body">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100867 <p class="text-muted">{{ lang.add.syncjob_hint }}</p>
868 <form class="form-horizontal" data-cached-form="false" role="form" data-id="add_syncjob">
869 <div class="row mb-2">
870 <label class="control-label col-sm-2 text-sm-end" for="username">{{ lang.add.username }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100871 <div class="col-sm-10">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100872 <select data-live-search="true" name="username" title="{{ lang.add.select }}" required>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100873 {% for mailbox in mailboxes %}
874 <option>{{ mailbox }}</option>
875 {% endfor %}
876 </select>
877 </div>
878 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100879 <div class="row mb-2">
880 <label class="control-label col-sm-2 text-sm-end" for="host1">{{ lang.add.hostname }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100881 <div class="col-sm-10">
882 <input type="text" class="form-control" name="host1" required>
883 </div>
884 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100885 <div class="row mb-2">
886 <label class="control-label col-sm-2 text-sm-end" for="port1">{{ lang.add.port }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100887 <div class="col-sm-10">
888 <input type="number" class="form-control" name="port1" min="1" max="65535" value="143" required>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100889 <small class="text-muted">1-65535</small>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100890 </div>
891 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100892 <div class="row mb-2">
893 <label class="control-label col-sm-2 text-sm-end" for="user1">{{ lang.add.username }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100894 <div class="col-sm-10">
895 <input type="text" class="form-control" name="user1" required>
896 </div>
897 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100898 <div class="row mb-2">
899 <label class="control-label col-sm-2 text-sm-end" for="password1">{{ lang.add.password }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100900 <div class="col-sm-10">
901 <input type="password" class="form-control" name="password1" required>
902 </div>
903 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100904 <div class="row mb-2">
905 <label class="control-label col-sm-2 text-sm-end" for="enc1">{{ lang.add.enc_method }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100906 <div class="col-sm-10">
907 <select name="enc1" title="{{ lang.add.select }}" required>
908 <option value="SSL" selected>SSL</option>
909 <option value="TLS">STARTTLS</option>
910 <option value="PLAIN">PLAIN</option>
911 </select>
912 </div>
913 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100914 <div class="row mb-2">
915 <label class="control-label col-sm-2 text-sm-end" for="mins_interval">{{ lang.add.mins_interval }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100916 <div class="col-sm-10">
917 <input type="number" class="form-control" name="mins_interval" min="1" max="43800" value="20" required>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100918 <small class="text-muted">1-43800</small>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100919 </div>
920 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100921 <div class="row mb-2">
922 <label class="control-label col-sm-2 text-sm-end" for="subfolder2">{{ lang.edit.subfolder2|raw }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100923 <div class="col-sm-10">
924 <input type="text" class="form-control" name="subfolder2" value="">
925 </div>
926 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100927 <div class="row mb-2">
928 <label class="control-label col-sm-2 text-sm-end" for="maxage">{{ lang.edit.maxage|raw }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100929 <div class="col-sm-10">
930 <input type="number" class="form-control" name="maxage" min="0" max="32000" value="0">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100931 <small class="text-muted">0-32000</small>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100932 </div>
933 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100934 <div class="row mb-2">
935 <label class="control-label col-sm-2 text-sm-end" for="maxbytespersecond">{{ lang.edit.maxbytespersecond|raw }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100936 <div class="col-sm-10">
937 <input type="number" class="form-control" name="maxbytespersecond" min="0" max="125000000" value="0">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100938 <small class="text-muted">0-125000000</small>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100939 </div>
940 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100941 <div class="row mb-2">
942 <label class="control-label col-sm-2 text-sm-end" for="timeout1">{{ lang.edit.timeout1 }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100943 <div class="col-sm-10">
944 <input type="number" class="form-control" name="timeout1" min="1" max="32000" value="600">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100945 <small class="text-muted">1-32000</small>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100946 </div>
947 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100948 <div class="row mb-2">
949 <label class="control-label col-sm-2 text-sm-end" for="timeout2">{{ lang.edit.timeout2 }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100950 <div class="col-sm-10">
951 <input type="number" class="form-control" name="timeout2" min="1" max="32000" value="600">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100952 <small class="text-muted">1-32000</small>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100953 </div>
954 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100955 <div class="row mb-2">
956 <label class="control-label col-sm-2 text-sm-end" for="exclude">{{ lang.add.exclude }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100957 <div class="col-sm-10">
958 <input type="text" class="form-control" name="exclude" value="(?i)spam|(?i)junk">
959 </div>
960 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100961 <div class="row mb-4">
962 <label class="control-label col-sm-2 text-sm-end" for="custom_params">{{ lang.add.custom_params }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100963 <div class="col-sm-10">
964 <input type="text" class="form-control" name="custom_params" placeholder="--dry --some-param=xy --other-param=yx">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100965 <small class="text-muted">{{ lang.add.custom_params_hint }}</small>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100966 </div>
967 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100968 <div class="row mb-2">
969 <div class="offset-sm-2 col-sm-10">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100970 <div class="checkbox">
971 <label><input type="checkbox" value="1" name="delete2duplicates" checked> {{ lang.add.delete2duplicates }} (--delete2duplicates)</label>
972 </div>
973 </div>
974 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100975 <div class="row mb-2">
976 <div class="offset-sm-2 col-sm-10">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100977 <div class="checkbox">
978 <label><input type="checkbox" value="1" name="delete1"> {{ lang.add.delete1 }} (--delete1)</label>
979 </div>
980 </div>
981 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100982 <div class="row mb-2">
983 <div class="offset-sm-2 col-sm-10">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100984 <div class="checkbox">
985 <label><input type="checkbox" value="1" name="delete2"> {{ lang.add.delete2 }} (--delete2)</label>
986 </div>
987 </div>
988 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100989 <div class="row mb-2">
990 <div class="offset-sm-2 col-sm-10">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100991 <div class="checkbox">
992 <label><input type="checkbox" value="1" name="automap" checked> {{ lang.add.automap }} (--automap)</label>
993 </div>
994 </div>
995 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +0100996 <div class="row mb-2">
997 <div class="offset-sm-2 col-sm-10">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +0100998 <div class="checkbox">
999 <label><input type="checkbox" value="1" name="skipcrossduplicates"> {{ lang.add.skipcrossduplicates }} (--skipcrossduplicates)</label>
1000 </div>
1001 </div>
1002 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001003 <div class="row mb-4">
1004 <div class="offset-sm-2 col-sm-10">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001005 <div class="checkbox">
1006 <label><input type="checkbox" value="1" name="subscribeall" checked> {{ lang.add.subscribeall }} (--subscribeall)</label>
1007 </div>
1008 </div>
1009 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001010 <div class="row mb-2">
1011 <div class="offset-sm-2 col-sm-10">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001012 <div class="checkbox">
1013 <label><input type="checkbox" value="1" name="active" checked> {{ lang.add.active }}</label>
1014 </div>
1015 </div>
1016 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001017 <div class="row mb-4">
1018 <div class="offset-sm-2 col-sm-10">
1019 <button class="btn btn-xs-lg d-block d-sm-inline btn-success" data-action="add_item" data-id="add_syncjob" data-api-url='add/syncjob' data-api-attr='{}' href="#">{{ lang.admin.add }}</button>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001020 </div>
1021 </div>
1022 </form>
1023 </div>
1024 </div>
1025 </div>
1026</div><!-- add sync job modal -->
1027<!-- add add_filter modal -->
1028<div class="modal fade" id="addFilterModalAdmin" tabindex="-1" role="dialog" aria-hidden="true">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001029 <div class="modal-dialog modal-xl">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001030 <div class="modal-content">
1031 <div class="modal-header">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001032 <h3 class="modal-title">Filter</h3>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001033 <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001034 </div>
1035 <div class="modal-body">
1036 <form class="form-horizontal" data-cached-form="true" role="form" data-id="add_filter">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001037 <div class="row mb-2">
1038 <label class="control-label col-sm-2 text-sm-end" for="username">{{ lang.add.username }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001039 <div class="col-sm-10">
1040 <select data-live-search="true" name="username" required>
1041 {% for mailbox in mailboxes %}
1042 <option>{{ mailbox }}</option>
1043 {% endfor %}
1044 </select>
1045 </div>
1046 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001047 <div class="row mb-2">
1048 <label class="control-label col-sm-2 text-sm-end" for="filter_type">{{ lang.add.sieve_type }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001049 <div class="col-sm-10">
1050 <select id="addFilterType" name="filter_type" required>
1051 <option value="prefilter">Prefilter</option>
1052 <option value="postfilter">Postfilter</option>
1053 </select>
1054 </div>
1055 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001056 <div class="row mb-2">
1057 <label class="control-label col-sm-2 text-sm-end" for="script_desc">{{ lang.add.sieve_desc }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001058 <div class="col-sm-10">
1059 <input type="text" class="form-control" id="script_desc" name="script_desc" required maxlength="255">
1060 </div>
1061 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001062 <div class="row mb-4">
1063 <label class="control-label col-sm-2 text-sm-end" for="script_data">Script:</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001064 <div class="col-sm-10">
1065 <textarea autocorrect="off" spellcheck="false" autocapitalize="none" class="form-control textarea-code script_data" rows="20" name="script_data" required></textarea>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001066 <p class="text-muted">{{ lang.add.activate_filter_warn }}</p>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001067 </div>
1068 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001069 <div class="row mb-2">
1070 <div class="offset-sm-2 col-sm-10">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001071 <div class="checkbox">
1072 <label><input type="checkbox" value="1" name="active" checked> {{ lang.add.active }}</label>
1073 </div>
1074 </div>
1075 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001076 <div class="row mb-4">
1077 <div class="offset-sm-2 col-sm-10 add_filter_btns btn-group">
1078 <button class="btn btn-xs-lg btn-xs-half d-block d-sm-inline btn-secondary validate_sieve" href="#">{{ lang.add.validate }}</button>
1079 <button class="btn btn-xs-lg btn-xs-half d-block d-sm-inline btn-success add_sieve_script" data-action="add_item" data-id="add_filter" data-api-url='add/filter' data-api-attr='{}' href="#" disabled>{{ lang.admin.add }}</button>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001080 </div>
1081 </div>
1082 </form>
1083 {{ lang.mailbox.sieve_preset_header|raw }}
1084 <ul id="sieve_presets"></ul>
1085 </div>
1086 </div>
1087 </div>
1088</div><!-- add add_filter modal -->
1089<!-- add add_bcc modal -->
1090<div class="modal fade" id="addBCCModalAdmin" tabindex="-1" role="dialog" aria-hidden="true">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001091 <div class="modal-dialog modal-xl">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001092 <div class="modal-content">
1093 <div class="modal-header">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001094 <h3 class="modal-title">{{ lang.mailbox.bcc_maps }}</h3>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001095 <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001096 </div>
1097 <div class="modal-body">
1098 <form class="form-horizontal" data-cached-form="true" role="form" data-id="add_bcc">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001099 <div class="row mb-2">
1100 <label class="control-label col-sm-2 text-sm-end" for="local_dest">{{ lang.mailbox.bcc_local_dest }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001101 <div class="col-sm-10">
1102 <select id="bcc-local-dest" data-live-search="true" data-size="20" name="local_dest" required>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001103 </select>
1104 </div>
1105 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001106 <div class="row mb-2">
1107 <label class="control-label col-sm-2 text-sm-end" for="type">{{ lang.mailbox.bcc_map_type }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001108 <div class="col-sm-10">
1109 <select name="type" required>
1110 <option value="sender">{{ lang.mailbox.bcc_sender_map }}</option>
1111 <option value="rcpt">{{ lang.mailbox.bcc_rcpt_map }}</option>
1112 </select>
1113 </div>
1114 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001115 <div class="row mb-4">
1116 <label class="control-label col-sm-2 text-sm-end" for="bcc_dest">{{ lang.mailbox.bcc_destination }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001117 <div class="col-sm-10">
1118 <input type="text" class="form-control" name="bcc_dest">
1119 <small>{{ lang.add.bcc_dest_format|raw }}</small>
1120 </div>
1121 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001122 <div class="row mb-2">
1123 <div class="offset-sm-2 col-sm-10">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001124 <div class="checkbox">
1125 <label><input type="checkbox" value="1" name="active" checked> {{ lang.add.active }}</label>
1126 </div>
1127 </div>
1128 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001129 <div class="row mb-4">
1130 <div class="offset-sm-2 col-sm-10">
1131 <button class="btn btn-xs-lg d-block d-sm-inline btn-success" data-action="add_item" data-id="add_bcc" data-api-url='add/bcc' data-api-attr='{}' href="#">{{ lang.admin.add }}</button>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001132 </div>
1133 </div>
1134 </form>
1135 </div>
1136 </div>
1137 </div>
1138</div><!-- add add_bcc modal -->
1139<!-- add add_recipient_map modal -->
1140<div class="modal fade" id="addRecipientMapModalAdmin" tabindex="-1" role="dialog" aria-hidden="true">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001141 <div class="modal-dialog modal-xl">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001142 <div class="modal-content">
1143 <div class="modal-header">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001144 <h3 class="modal-title">{{ lang.mailbox.recipient_maps }}</h3>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001145 <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001146 </div>
1147 <div class="modal-body">
1148 <form class="form-horizontal" data-cached-form="true" role="form" data-id="add_recipient_map">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001149 <div class="row mb-2">
1150 <label class="control-label col-sm-2 text-sm-end" for="recipient_map_old">{{ lang.mailbox.recipient_map_old }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001151 <div class="col-sm-10">
1152 <input type="text" class="form-control" name="recipient_map_old">
1153 <small>{{ lang.mailbox.recipient_map_old_info }}</small>
1154 </div>
1155 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001156 <div class="row mb-4">
1157 <label class="control-label col-sm-2 text-sm-end" for="recipient_map_new">{{ lang.mailbox.recipient_map_new }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001158 <div class="col-sm-10">
1159 <input type="text" class="form-control" name="recipient_map_new">
1160 <small>{{ lang.mailbox.recipient_map_new_info }}</small>
1161 </div>
1162 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001163 <div class="row mb-2">
1164 <div class="offset-sm-2 col-sm-10">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001165 <div class="checkbox">
1166 <label><input type="checkbox" value="1" name="active" checked> {{ lang.add.active }}</label>
1167 </div>
1168 </div>
1169 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001170 <div class="row mb-4">
1171 <div class="offset-sm-2 col-sm-10">
1172 <button class="btn btn-xs-lg d-block d-sm-inline btn-success" data-action="add_item" data-id="add_recipient_map" data-api-url='add/recipient_map' data-api-attr='{}' href="#">{{ lang.admin.add }}</button>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001173 </div>
1174 </div>
1175 </form>
1176 </div>
1177 </div>
1178 </div>
1179</div><!-- add add_recipient_map modal -->
1180<!-- add add_tls_policy_map modal -->
1181<div class="modal fade" id="addTLSPolicyMapAdmin" tabindex="-1" role="dialog" aria-hidden="true">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001182 <div class="modal-dialog modal-xl">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001183 <div class="modal-content">
1184 <div class="modal-header">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001185 <h3 class="modal-title">{{ lang.mailbox.tls_policy_maps }}</h3>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001186 <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001187 </div>
1188 <div class="modal-body">
1189 <form class="form-horizontal" data-cached-form="true" role="form" data-id="add_tls_policy_map">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001190 <div class="row mb-2">
1191 <label class="control-label col-sm-2 text-sm-end" for="dest">{{ lang.mailbox.tls_map_dest }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001192 <div class="col-sm-10">
1193 <input type="text" class="form-control" name="dest">
1194 <small>{{ lang.mailbox.tls_map_dest_info }}</small>
1195 </div>
1196 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001197 <div class="row mb-2">
1198 <label class="control-label col-sm-2 text-sm-end" for="policy">{{ lang.mailbox.tls_map_policy }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001199 <div class="col-sm-10">
1200 <select class="full-width-select" name="policy" required>
1201 <option value="none">none</option>
1202 <option value="may">may</option>
1203 <option value="encrypt">encrypt</option>
1204 <option value="dane">dane</option>
1205 <option value="dane-only">dane-only</option>
1206 <option value="fingerprint">fingerprint</option>
1207 <option value="verify">verify</option>
1208 <option value="secure">secure</option>
1209 </select>
1210 </div>
1211 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001212 <div class="row mb-4">
1213 <label class="control-label col-sm-2 text-sm-end" for="parameters">{{ lang.mailbox.tls_map_parameters }}</label>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001214 <div class="col-sm-10">
1215 <input type="text" class="form-control" name="parameters">
1216 <small>{{ lang.mailbox.tls_map_parameters_info }}</small>
1217 </div>
1218 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001219 <div class="row mb-2">
1220 <div class="offset-sm-2 col-sm-10">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001221 <div class="checkbox">
1222 <label><input type="checkbox" value="1" name="active" checked> {{ lang.add.active }}</label>
1223 </div>
1224 </div>
1225 </div>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001226 <div class="row mb-4">
1227 <div class="offset-sm-2 col-sm-10">
1228 <button class="btn btn-xs-lg d-block d-sm-inline btn-success" data-action="add_item" data-id="add_tls_policy_map" data-api-url='add/tls-policy-map' data-api-attr='{}' href="#">{{ lang.admin.add }}</button>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001229 </div>
1230 </div>
1231 </form>
1232 </div>
1233 </div>
1234 </div>
1235</div><!-- add add_tls_policy_map modal -->
1236<!-- log modal -->
1237<div class="modal fade" id="syncjobLogModal" tabindex="-1" role="dialog" aria-labelledby="syncjobLogModalLabel">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001238 <div class="modal-dialog modal-xl" role="document">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001239 <div class="modal-content">
1240 <div class="modal-header">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001241 <h3 class="modal-title">Log</h3>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001242 <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001243 </div>
1244 <div class="modal-body">
1245 <textarea class="form-control" rows="20" id="logText" spellcheck="false"></textarea>
1246 </div>
1247 </div>
1248 </div>
1249</div><!-- log modal -->
1250<!-- DNS info modal -->
1251<div class="modal fade" id="dnsInfoModal" tabindex="-1" role="dialog" aria-labelledby="dnsInfoModalLabel">
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001252 <div class="modal-dialog modal-xl" role="document">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001253 <div class="modal-content">
1254 <div class="modal-header">
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001255 <h3 class="modal-title">{{ lang.diagnostics.dns_records }}</h3>
Matthias Andreas Benkard1ba53812022-12-27 17:32:58 +01001256 <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
Matthias Andreas Benkard12a57352021-12-28 18:02:04 +01001257 </div>
1258 <div class="modal-body">
1259 <p>{{ lang.diagnostics.dns_records_24hours }}</p>
1260 <div class="dns-modal-body"></div>
1261 <p>{{ lang.diagnostics.dns_records_docs|raw }}</p>
1262 </div>
1263 </div>
1264 </div>
1265</div><!-- DNS info modal -->