public
nobgit
read
NobMail
Based on mailcow: dockerized
Languages
Repository composition by tracked source files.
PHP
49%
JavaScript
35%
HTML
9%
CSS
4%
Shell
2%
Python
1%
Lua
0%
Perl
0%
Ruby
0%
SCSS
0%
Create file
Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git
Trace
data/web/templates/edit/domain.twig
Trace helps you understand code history line by line. See who changed each line, when it changed, and which commit introduced it.
Author
Date
Commit
Line
Code
1
{% extends 'edit.twig' %}
3
{% block inner_content %}
4
{% if result %}
5
<div id="domain-content" class="responsive-tabs">
6
<ul class="nav nav-tabs" role="tablist">
7
<li role="presentation" class="nav-item"><button class="nav-link active" data-bs-toggle="tab" data-bs-target="#dedit">{{ lang.edit.domain }}</button></li>
8
<li role="presentation" class="nav-item"><button class="nav-link" data-bs-toggle="tab" data-bs-target="#dratelimit">{{ lang.edit.ratelimit }}</button></li>
9
<li role="presentation" class="nav-item"><button class="nav-link" data-bs-toggle="tab" data-bs-target="#dspamfilter">{{ lang.edit.spam_filter }}</button></li>
10
<li role="presentation" class="nav-item"><button class="nav-link" data-bs-toggle="tab" data-bs-target="#dqwbcc">{{ lang.edit.quota_warning_bcc }}</button></li>
11
<li role="presentation" class="nav-item"><button class="nav-link" data-bs-toggle="tab" data-bs-target="#dmtasts">{{ lang.edit.mta_sts }}</button></li>
12
<li role="presentation" class="nav-item"><button class="nav-link" data-bs-toggle="tab" data-bs-target="#dfooter">{{ lang.edit.domain_footer }}</button></li>
13
</ul>
14
<hr class="d-none d-md-block">
15
<div class="tab-content">
16
<div id="dedit" class="tab-pane fade show active" role="tabpanel" aria-labelledby="domain-edit">
17
<div class="card mb-4">
18
<div class="card-header d-flex d-md-none fs-5">
19
<button class="btn flex-grow-1 text-start" data-bs-target="#collapse-tab-dedit" data-bs-toggle="collapse" aria-controls="collapse-tab-dedit">
20
{{ lang.edit.domain }} <span class="badge bg-info table-lines"></span>
21
</button>
22
</div>
23
<div id="collapse-tab-dedit" class="card-body collapse show" data-bs-parent="#domain-content">
24
<form data-id="editdomain" class="form-horizontal" role="form" method="post">
25
<input type="hidden" value="0" name="active">
26
<input type="hidden" value="0" name="backupmx">
27
<input type="hidden" value="0" name="gal">
28
<input type="hidden" value="0" name="relay_all_recipients">
29
<input type="hidden" value="0" name="relay_unknown_only">
30
<div class="row mb-4">
31
<label class="control-label col-sm-2" for="domain">{{ lang.mailbox.domain }}</label>
32
<div class="col-sm-10">
33
<span class="d-block"><strong>{{ result.domain_h_name }}</strong></span>
34
{% if result.domain_h_name != result.domain_name %}
35
<small>{{ result.domain_name }}</small>
36
{% endif %}
37
</div>
38
</div>
39
<div class="row mb-2" data-acl="{{ acl.domain_desc }}">
40
<label class="control-label col-sm-2" for="description">{{ lang.edit.description }}</label>
41
<div class="col-sm-10">
42
<input type="text" class="form-control" name="description" value="{{ result.description }}"{% if acl.domain_desc == '0' %} readonly{% endif %}>
43
</div>
44
</div>
45
<div class="row mb-4">
46
<label class="control-label col-sm-2">{{ lang.add.tags }}</label>
47
<div class="col-sm-10">
48
<div class="form-control tag-box">
49
{% for tag in domain_details.tags %}
50
<span data-action='delete_selected' data-item="{{ tag|url_encode }}" data-id="domain_tag_{{ tag }}" data-api-url='delete/domain/tag/{{ domain }}' class="badge bg-primary tag-badge btn-badge">
51
<i class="bi bi-tag-fill"></i>
52
{{ tag }}
53
</span>
54
{% endfor %}
55
<input type="text" class="tag-input">
56
<span class="btn tag-add"><i class="bi bi-plus-lg"></i></span>
57
<input type="hidden" value="" name="tags" class="tag-values" />
58
</div>
59
</div>
60
</div>
61
{% if acl.domain_relayhost == '1' %}
62
<div class="row mb-2">
63
<label class="control-label col-sm-2" for="relayhost">{{ lang.edit.relayhost }}</label>
64
<div class="col-sm-10">
65
<select data-acl="{{ acl.domain_relayhost }}" data-live-search="true" id="relayhost" name="relayhost" class="form-control">
66
{% for rlyhost in rlyhosts %}
67
<option
68
style="{% if rlyhost.active != '1' %}background: #ff4136; color: #fff{% endif %}"
69
{% if result.relayhost == rlyhost.id %} selected{% endif %}
70
value="{{ rlyhost.id }}">
71
ID {{ rlyhost.id }}: {{ rlyhost.hostname }} ({{ rlyhost.username }})
72
</option>
73
{% endfor %}
74
<option value=""{% if not result.relayhost %} selected{% endif %}>
75
{{ lang.edit.none_inherit }}
76
</option>
77
</select>
78
</div>
79
</div>
80
{% endif %}
81
{% if mailcow_cc_role == 'admin' %}
82
<div class="row mb-2">
83
<label class="control-label col-sm-2" for="aliases">{{ lang.edit.max_aliases }}</label>
84
<div class="col-sm-10">
85
<input type="number" class="form-control" name="aliases" value="{{ result.max_num_aliases_for_domain }}">
86
</div>
87
</div>
88
<div class="row mb-2">
89
<label class="control-label col-sm-2" for="mailboxes">{{ lang.edit.max_mailboxes }}</label>
90
<div class="col-sm-10">
91
<input type="number" class="form-control" name="mailboxes" value="{{ result.max_num_mboxes_for_domain }}">
92
</div>
93
</div>
94
<div class="row mb-2">
95
<label class="control-label col-sm-2" for="defquota">{{ lang.edit.mailbox_quota_def }}</label>
96
<div class="col-sm-10">
97
<input type="number" class="form-control" name="defquota" value="{{ (result.def_quota_for_mbox / 1048576) }}">
98
</div>
99
</div>
100
<div class="row mb-2">
101
<label class="control-label col-sm-2" for="maxquota">{{ lang.edit.max_quota }}</label>
102
<div class="col-sm-10">
103
<input type="number" class="form-control" name="maxquota" value="{{ (result.max_quota_for_mbox / 1048576) }}">
104
</div>
105
</div>
106
<div class="row mb-4">
107
<label class="control-label col-sm-2" for="quota">{{ lang.edit.domain_quota }}</label>
108
<div class="col-sm-10">
109
<input type="number" class="form-control" name="quota" value="{{ (result.max_quota_for_domain / 1048576) }}">
110
</div>
111
</div>
112
<div class="row mb-2">
113
<label class="control-label col-sm-2">{{ lang.edit.backup_mx_options }}</label>
114
<div class="col-sm-10">
115
<div class="form-check">
116
<label><input type="checkbox" class="form-check-input" value="1" name="backupmx"{% if result.backupmx == '1' %} checked{% endif %}> {{ lang.edit.relay_domain }}</label>
117
<br>
118
<label><input type="checkbox" class="form-check-input" value="1" name="relay_all_recipients"{% if result.relay_all_recipients == '1' %} checked{% endif %}> {{ lang.edit.relay_all }}</label>
119
<p>{{ lang.edit.relay_all_info|raw }}</p>
120
<label><input type="checkbox" class="form-check-input" value="1" name="relay_unknown_only"{% if result.relay_unknown_only == '1' %} checked{% endif %}> {{ lang.edit.relay_unknown_only }}</label>
121
<br>
122
<p>{{ lang.edit.relay_transport_info|raw }}</p>
123
<hr style="margin:25px 0px 0px 0px">
124
</div>
125
</div>
126
</div>
127
{% endif %}
128
<div class="row">
129
<div class="offset-sm-2 col-sm-10">
130
<div class="form-check">
131
<label><input type="checkbox" class="form-check-input" value="1" name="gal"{% if result.gal == '1' %} checked{% endif %}> {{ lang.edit.gal }}</label>
132
<small class="text-muted">{{ lang.edit.gal_info|raw }}</small>
133
</div>
134
</div>
135
</div>
136
<hr>
137
<div class="row mb-2">
138
<div class="offset-sm-2 col-sm-10">
139
<div class="form-check">
140
<label><input type="checkbox" class="form-check-input" value="1" name="active"{% if result.active == '1' %} checked{% endif %}{% if mailcow_cc_role != 'admin' %} disabled{% endif %}> {{ lang.edit.active }}</label>
141
</div>
142
</div>
143
</div>
144
<div class="row mb-2">
145
<div class="offset-sm-2 col-sm-10">
146
<button class="btn btn-xs-lg d-block d-sm-inline btn-success" data-action="edit_selected" data-id="editdomain" data-item="{{ domain }}" data-api-url='edit/domain' data-api-attr='{}' href="#">{{ lang.admin.save }}</button>
147
</div>
148
</div>
149
<div class="row">
150
<div class="offset-sm-2 col-sm-10">
151
<small class="fst-italic d-block">{{ lang.edit.created_on }}: {{ result.created }}</small>
152
<small class="fst-italic d-block">{{ lang.edit.last_modified }}: {{ result.modified|default(lang.user.never) }}</small>
153
</div>
154
</div>
155
</form>
156
{% if dkim %}
157
<hr>
158
<div class="row">
159
<div class="col-12 col-sm-2">
160
<p>{{ lang.add.domain }}: <strong>{{ result.domain_name }}</strong> ({{ dkim.dkim_selector }}._domainkey)</p>
161
</div>
162
<div class="col-12 col-sm-10">
163
<pre class="p-2">{{ dkim.dkim_txt }}</pre>
164
</div>
165
</div>
166
{% endif %}
167
</div>
168
</div>
169
</div>
170
<div id="dratelimit" class="tab-pane fade" role="tabpanel" aria-labelledby="domain-ratelimit">
171
<div class="card mb-4">
172
<div class="card-header d-flex d-md-none fs-5">
173
<button class="btn flex-grow-1 text-start" data-bs-target="#collapse-tab-ratelimit" data-bs-toggle="collapse" aria-controls="collapse-tab-ratelimit">
174
{{ lang.edit.ratelimit }} <span class="badge bg-info table-lines"></span>
175
</button>
176
</div>
177
<div id="collapse-tab-ratelimit" class="card-body collapse" data-bs-parent="#domain-content">
178
<form data-id="domratelimit" class="well" method="post">
179
<div class="row mb-2">
180
<label class="control-label col-sm-2">{{ lang.edit.ratelimit }}</label>
181
<div class="col-sm-10">
182
<div class="input-group">
183
<input name="rl_value" type="number" value="{{ rl.value }}" autocomplete="off" class="form-control" placeholder="{{ lang.ratelimit.disabled }}">
184
<select name="rl_frame" class="form-control">
185
{% include 'mailbox/rl-frame.twig' %}
186
</select>
187
</div>
188
</div>
189
</div>
190
<div class="row mb-2">
191
<div class="offset-sm-2 col-sm-10">
192
<button data-acl="{{ acl.ratelimit }}" class="btn btn-xs-lg d-block d-sm-inline btn-secondary" data-action="edit_selected" data-id="domratelimit" data-item="{{ domain }}" data-api-url='edit/rl-domain' data-api-attr='{}' href="#">{{ lang.admin.save }}</button>
193
</div>
194
</div>
195
</form>
196
</div>
197
</div>
198
</div>
199
<div id="dspamfilter" class="tab-pane fade" role="tabpanel" aria-labelledby="domain-spamfilter">
200
<div class="card mb-4">
201
<div class="card-header d-flex d-md-none fs-5">
202
<button class="btn flex-grow-1 text-start" data-bs-target="#collapse-tab-spamfilter" data-bs-toggle="collapse" aria-controls="collapse-tab-spamfilter">
203
{{ lang.edit.spam_filter }} <span class="badge bg-info table-lines"></span>
204
</button>
205
</div>
206
<div id="collapse-tab-spamfilter" class="card-body collapse" data-bs-parent="#domain-content">
207
<div class="row">
208
<div class="col-sm-6">
209
<h4>{{ lang.user.spamfilter_wl }}</h4>
210
<p>{{ lang.user.spamfilter_wl_desc|raw }}</p>
211
<form class="form-inline mb-4" data-id="add_wl_policy_domain">
212
<div class="input-group" data-acl="{{ acl.spam_policy }}">
213
<input type="text" class="form-control" name="object_from" placeholder="*@example.org" required>
214
<button class="btn btn-secondary" data-action="add_item" data-id="add_wl_policy_domain" data-api-url='add/domain-policy' data-api-attr='{"domain":"{{ domain }}","object_list":"wl"}' href="#">{{ lang.user.spamfilter_table_add }}</button>
215
</div>
216
</form>
217
<table id="wl_policy_domain_table" class="table table-striped dt-responsive w-100"></table>
218
<div class="mass-actions-user">
219
<div class="btn-group" data-acl="{{ acl.spam_policy }}">
220
<a class="btn btn-xs-half d-block d-sm-inline btn-sm btn-secondary" id="toggle_multi_select_all" data-id="policy_wl_domain" href="#"><i class="bi bi-check-all"></i> {{ lang.mailbox.toggle_all }}</a>
221
<a class="btn btn-xs-half d-block d-sm-inline btn-sm btn-danger" data-action="delete_selected" data-id="policy_wl_domain" data-api-url='delete/domain-policy' href="#">{{ lang.mailbox.remove }}</a>
222
</div>
223
</div>
224
</div>
225
<div class="col-sm-6">
226
<h4>{{ lang.user.spamfilter_bl }}</h4>
227
<p>{{ lang.user.spamfilter_bl_desc|raw }}</p>
228
<form class="form-inline mb-4" data-id="add_bl_policy_domain">
229
<div class="input-group" data-acl="{{ acl.spam_policy }}">
230
<input type="text" class="form-control" name="object_from" placeholder="*@example.org" required>
231
<button class="btn btn-secondary" data-action="add_item" data-id="add_bl_policy_domain" data-api-url='add/domain-policy' data-api-attr='{"domain":"{{ domain }}","object_list":"bl"}' href="#">{{ lang.user.spamfilter_table_add }}</button>
232
</div>
233
</form>
234
<table id="bl_policy_domain_table" class="table table-striped dt-responsive w-100"></table>
235
<div class="mass-actions-user">
236
<div class="btn-group" data-acl="{{ acl.spam_policy }}">
237
<a class="btn btn-xs-half d-block d-sm-inline btn-sm btn-secondary" id="toggle_multi_select_all" data-id="policy_bl_domain" href="#"><i class="bi bi-check-all"></i> {{ lang.mailbox.toggle_all }}</a>
238
<a class="btn btn-xs-half d-block d-sm-inline btn-sm btn-danger" data-action="delete_selected" data-id="policy_bl_domain" data-api-url='delete/domain-policy' href="#">{{ lang.mailbox.remove }}</a></li>
239
</div>
240
</div>
241
</div>
242
</div>
243
</div>
244
</div>
245
</div>
246
<div id="dqwbcc" class="tab-pane fade" role="tabpanel" aria-labelledby="domain-qwbcc">
247
<div class="card mb-4">
248
<div class="card-header d-flex d-md-none fs-5">
249
<button class="btn flex-grow-1 text-start" data-bs-target="#collapse-tab-qwbcc" data-bs-toggle="collapse" aria-controls="collapse-tab-qwbcc">
250
{{ lang.edit.quota_warning_bcc }} <span class="badge bg-info table-lines"></span>
251
</button>
252
</div>
253
<div id="collapse-tab-qwbcc" class="card-body collapse" data-bs-parent="#domain-content">
254
<div class="row">
255
<div class="col-sm-12">
256
<h4>{{ lang.edit.quota_warning_bcc }}</h4>
257
<p>{{ lang.edit.quota_warning_bcc_info|raw }}</p>
258
<form class="form-horizontal" data-id="quota_bcc">
259
<input type="hidden" value="0" name="active">
260
<div class="row mb-2">
261
<label class="control-label col-sm-2" for="script_data">{{ lang.edit.target_address|raw }}:</label>
262
<div class="col-sm-10">
263
<textarea spellcheck="false" autocorrect="off" autocapitalize="none" class="form-control" rows="10" id="bcc_rcpt" name="bcc_rcpt">{{ quota_notification_bcc.bcc_rcpts|join("\n") }}</textarea>
264
</div>
265
</div>
266
<div class="row mb-4">
267
<div class="offset-sm-2 col-sm-10">
268
<div class="form-check">
269
<label><input type="checkbox" class="form-check-input" value="1" name="active"{% if quota_notification_bcc.active == '1' %} checked{% endif %}> {{ lang.edit.active }}</label>
270
</div>
271
</div>
272
</div>
273
<div class="row">
274
<div class="offset-sm-2 col-sm-10">
275
<button class="btn btn-xs-lg d-block d-sm-inline btn-success" data-action="edit_selected" data-id="quota_bcc" data-item="quota_bcc" data-api-url='edit/quota_notification_bcc' data-api-attr='{"domain":"{{ domain }}"}' href="#">{{ lang.edit.save }}</button>
276
</div>
277
</div>
278
</form>
279
</div>
280
</div>
281
</div>
282
</div>
283
</div>
284
<div id="dmtasts" class="tab-pane fade" role="tabpanel" aria-labelledby="domain-mtasts">
285
<div class="card mb-4">
286
<div class="card-header d-flex d-md-none fs-5">
287
<button class="btn flex-grow-1 text-start" data-bs-target="#collapse-tab-mtasts" data-bs-toggle="collapse" aria-controls="collapse-tab-mtasts">
288
{{ lang.edit.mta_sts }} <span class="badge bg-info table-lines"></span>
289
</button>
290
</div>
291
<div id="collapse-tab-mtasts" class="card-body collapse" data-bs-parent="#domain-content">
292
<h4>{{ lang.edit.mta_sts }}</h4>
293
<p>{{ lang.edit.mta_sts_info|raw }}</p>
294
<form data-id="dommtasts" method="post">
295
<input type="hidden" value="0" name="active">
296
<input type="hidden" value="{{ domain }}" name="domain">
297
<div class="row mb-2">
298
<label class="control-label col-sm-2" for="version">
299
<i style="font-size: 16px; cursor: pointer;" class="bi bi-patch-question-fill m-2 ms-0" data-bs-toggle="tooltip" data-bs-html="true" data-bs-placement="bottom" title="{{ lang.edit.mta_sts_version_info|raw }}"></i>
300
{{ lang.edit.mta_sts_version }}
301
</label>
302
<div class="col-sm-10">
303
<select data-style="btn btn-light" class="form-control" name="version" title="" required>
304
<option value="stsv1"{% if mta_sts.version == 'STSv1' %} selected{% endif %}>STSv1</option>
305
</select>
306
</div>
307
</div>
308
<div class="row mb-2">
309
<label class="control-label col-sm-2" for="mode">
310
<i style="font-size: 16px; cursor: pointer;" class="bi bi-patch-question-fill m-2 ms-0" data-bs-toggle="tooltip" data-bs-html="true" data-bs-placement="bottom" title="{{ lang.edit.mta_sts_mode_info|raw }}"></i>
311
{{ lang.edit.mta_sts_mode }}
312
</label>
313
<div class="col-sm-10">
314
<select data-style="btn btn-light" class="form-control" name="mode" title="" required>
315
<option value="enforce"{% if mta_sts.mode == 'enforce' %} selected{% endif %}>enforce</option>
316
<option value="testing"{% if mta_sts.mode == 'testing' %} selected{% endif %}>testing</option>
317
<option value="none"{% if mta_sts.mode == 'none' %} selected{% endif %}>none</option>
318
</select>
319
</div>
320
</div>
321
<div class="row mb-2">
322
<label class="control-label col-sm-2" for="max_age">
323
<i style="font-size: 16px; cursor: pointer;" class="bi bi-patch-question-fill m-2 ms-0" data-bs-toggle="tooltip" data-bs-html="true" data-bs-placement="bottom" title="{{ lang.edit.mta_sts_max_age_info|raw }}"></i>
324
{{ lang.edit.mta_sts_max_age }}
325
</label>
326
<div class="col-sm-10">
327
<input type="number" class="form-control" name="max_age" value="{{ mta_sts.max_age }}">
328
</div>
329
</div>
330
<div class="row mb-2">
331
<label class="control-label col-sm-2" for="mx">
332
<i style="font-size: 16px; cursor: pointer;" class="bi bi-patch-question-fill m-2 ms-0" data-bs-toggle="tooltip" data-bs-html="true" data-bs-placement="bottom" title="{{ lang.edit.mta_sts_mx_info|raw }}"></i>
333
{{ lang.edit.mta_sts_mx }}
334
</label>
335
<div class="col-sm-10">
336
<textarea autocorrect="off" autocapitalize="none" class="form-control" rows="5" name="mx">{{ mta_sts.mx }}</textarea>
337
<small class="text-muted">{{ lang.edit.mta_sts_mx_notice|raw }}</small>
338
</div>
339
</div>
340
<div class="row mb-4">
341
<div class="offset-sm-2 col-sm-10">
342
<div class="form-check">
343
<label><input type="checkbox" class="form-check-input" value="1" name="active"{% if mta_sts.active == '1' %} checked{% endif %}> {{ lang.edit.active }}</label>
344
</div>
345
</div>
346
</div>
347
<div class="row mb-2">
348
<div class="offset-sm-2 col-sm-10">
349
{% if mta_sts == false %}
350
<button class="btn btn-xs-lg d-block d-sm-inline btn-secondary" data-action="add_item" data-id="dommtasts" data-item="{{ domain }}" data-api-url='add/mta-sts' data-api-attr='{}' href="#">{{ lang.admin.save }}</button>
351
{% else %}
352
<button class="btn btn-xs-lg d-block d-sm-inline btn-secondary" data-action="edit_selected" data-id="dommtasts" data-item="{{ domain }}" data-api-url='edit/mta-sts' data-api-attr='{}' href="#">{{ lang.admin.save }}</button>
353
{% endif %}
354
</div>
355
</div>
356
</form>
357
</div>
358
</div>
359
</div>
360
<div id="dfooter" class="tab-pane fade" role="tabpanel" aria-labelledby="domain-footer">
361
<div class="card mb-4">
362
<div class="card-header d-flex d-md-none fs-5">
363
<button class="btn flex-grow-1 text-start" data-bs-target="#collapse-tab-footer" data-bs-toggle="collapse" aria-controls="collapse-tab-footer">
364
{{ lang.edit.domain_footer }} <span class="badge bg-info table-lines"></span>
365
</button>
366
</div>
367
<div id="collapse-tab-footer" class="card-body collapse" data-bs-parent="#domain-content">
368
<div class="row">
369
<div class="col-sm-12">
370
<h4>{{ lang.edit.domain_footer }}</h4>
371
<p>{{ lang.edit.domain_footer_info|raw }}</p>
372
<pre>{{ lang.edit.domain_footer_info_vars.auth_user }}
373
{{ lang.edit.domain_footer_info_vars.from_user }}
374
{{ lang.edit.domain_footer_info_vars.from_name }}
375
{{ lang.edit.domain_footer_info_vars.from_addr }}
376
{{ lang.edit.domain_footer_info_vars.from_domain }}
377
{{ lang.edit.domain_footer_info_vars.custom }}</pre>
378
<form class="form-horizontal mt-4" data-id="domain_footer">
379
<div class="row mb-4">
380
<label class="control-label col-sm-2" for="exclude">{{ lang.edit.footer_exclude }}</label>
381
<div class="col-sm-10">
382
<select data-live-search="true" data-width="100%" style="width:100%" id="editFooterExclude" name="exclude" size="10" multiple>
383
{% for mailbox in mailboxes %}
384
<option value="{{ mailbox }}" {% if mailbox in domain_footer.mbox_exclude %}selected{% endif %}>
385
{{ mailbox }}
386
</option>
387
{% endfor %}
388
{% for alias in aliases %}
389
<option data-subtext="Alias" value="{{ alias }}" {% if alias in domain_footer.mbox_exclude %}selected{% endif %}>
390
{{ alias }}
391
</option>
392
{% endfor %}
393
{% for alias_domain in alias_domains %}
394
<option data-subtext="Alias-Domain" value="{{ alias_domain }}" {% if alias_domain in domain_footer.alias_domain_exclude %}selected{% endif %}>
395
{{ alias_domain }}
396
</option>
397
{% endfor %}
398
</select>
399
</div>
400
</div>
401
<div class="row mb-4">
402
<label class="control-label col-sm-2" for="domain_footer_skip_replies">{{ lang.edit.domain_footer_skip_replies }}:</label>
403
<div class="col-sm-10">
404
<div class="form-check">
405
<label><input type="checkbox" class="form-check-input" value="1" id="domain_footer_skip_replies" name="skip_replies"{% if domain_footer.skip_replies == '1' %} checked{% endif %}></label>
406
</div>
407
</div>
408
</div>
409
<div class="row mb-2">
410
<label class="control-label col-sm-2" for="domain_footer_html">{{ lang.edit.domain_footer_html }}:</label>
411
<div class="col-sm-10">
412
<textarea spellcheck="false" autocorrect="off" autocapitalize="none" class="form-control" rows="10" id="domain_footer_html" name="html">{{ domain_footer.html }}</textarea>
413
</div>
414
</div>
415
<div class="row mb-4">
416
<label class="control-label col-sm-2" for="domain_footer_plain">{{ lang.edit.domain_footer_plain }}:</label>
417
<div class="col-sm-10">
418
<textarea spellcheck="false" autocorrect="off" autocapitalize="none" class="form-control" rows="10" id="domain_footer_plain" name="plain">{{ domain_footer.plain }}</textarea>
419
</div>
420
</div>
421
<div class="row">
422
<div class="offset-sm-2 col-sm-10">
423
<button class="btn btn-xs-lg d-block d-sm-inline btn-success" data-action="edit_selected" data-id="domain_footer" data-item="{{ domain }}" data-api-url='edit/domain/footer' data-api-attr='{}' href="#">{{ lang.edit.save }}</button>
424
</div>
425
</div>
426
</form>
427
</div>
428
</div>
429
</div>
430
</div>
431
</div>
432
</div>
433
</div>
434
{% else %}
435
{{ parent() }}
436
{% endif %}
437
{% endblock %}