38 lines
3.6 KiB
HTML
38 lines
3.6 KiB
HTML
{# E-mail opstellen (nieuw, beantwoorden, vanaf een contact). m = {to, cc, subject, body, contact_id, reply_to, next,
|
||
template, mailbox_id}; mailboxes = waarmee de gebruiker mag versturen (Van). Een template zet zijn tekst boven het bericht; velden als {voornaam} vult static/compose.js meteen in met
|
||
vars, wat overblijft vult mail_send bij het versturen in. #}
|
||
{% macro compose(m, templates, vars, mailboxes, id='m', datalist='', button='Versturen') %}
|
||
<form method="post" action="{{ url_for('mail_send') }}" enctype="multipart/form-data" class="compose" data-vars='{{ vars|tojson }}'>
|
||
{% if m.reply_to %}<input type="hidden" name="reply_to" value="{{ m.reply_to }}">{% endif %}
|
||
{% if m.contact_id %}<input type="hidden" name="contact_id" value="{{ m.contact_id }}">{% endif %}
|
||
{% if m.next %}<input type="hidden" name="next" value="{{ m.next }}">{% endif %}
|
||
<div class="row g-3">
|
||
{% if not mailboxes %}
|
||
<div class="col-12"><div class="flash error mb-0">Er is geen mailbox waarmee je mag versturen. Een beheerder stelt die in bij Instellingen › Mailboxen.</div></div>
|
||
{% elif mailboxes|length == 1 %}
|
||
<input type="hidden" name="mailbox_id" value="{{ mailboxes[0].id }}">
|
||
{% else %}
|
||
<div class="col-12"><label class="form-label" for="{{ id }}-from">Van</label>
|
||
<select class="form-select" id="{{ id }}-from" name="mailbox_id">{% for b in mailboxes %}<option value="{{ b.id }}" {{ 'selected' if m.mailbox_id == b.id }}>{{ b.name }}{% if b.smtp_from or b.smtp_user or b.imap_user %} · {{ b.smtp_from or b.smtp_user or b.imap_user }}{% endif %}</option>{% endfor %}</select></div>
|
||
{% endif %}
|
||
{% if templates %}
|
||
<div class="col-12"><label class="form-label" for="{{ id }}-template">Template</label>
|
||
<select class="form-select" id="{{ id }}-template" name="template" autocomplete="off">
|
||
<option value="">Geen template</option>
|
||
{% for t in templates %}<option value="{{ t.id }}" data-subject="{{ t.subject }}" data-body="{{ t.body }}" {{ 'selected' if m.template == t.id }}>{{ t.name }}</option>{% endfor %}
|
||
</select>
|
||
<p class="hint">{% if vars.naam is defined %}Velden als {voornaam} worden ingevuld met de gegevens van {{ vars.naam or 'het contact' }}.{% else %}Velden als {voornaam} worden bij het versturen ingevuld met het contact van het adres in Aan.{% endif %}</p>
|
||
</div>
|
||
{% endif %}
|
||
<div class="col-md-6"><label class="form-label" for="{{ id }}-to">Aan</label><input class="form-control" id="{{ id }}-to" type="email" name="to" value="{{ m.to or '' }}" multiple required {% if datalist %}list="{{ datalist }}" autocomplete="off"{% endif %}></div>
|
||
<div class="col-md-6"><label class="form-label" for="{{ id }}-cc">CC</label><input class="form-control" id="{{ id }}-cc" type="email" name="cc" value="{{ m.cc or '' }}" multiple {% if datalist %}list="{{ datalist }}" autocomplete="off"{% endif %}></div>
|
||
<div class="col-12"><label class="form-label" for="{{ id }}-subject">Onderwerp</label><input class="form-control" id="{{ id }}-subject" name="subject" value="{{ m.subject or '' }}" required></div>
|
||
<div class="col-12"><label class="form-label" for="{{ id }}-body">Bericht</label><textarea class="form-control" id="{{ id }}-body" name="body" rows="10" required>
|
||
{{ m.body or '' }}</textarea></div>
|
||
<div class="col-12"><label class="form-label" for="{{ id }}-files">Bijlagen</label><input class="form-control" id="{{ id }}-files" type="file" name="attachments" multiple></div>
|
||
</div>
|
||
<div class="actions"><button class="btn btn-primary">{{ button }}</button></div>
|
||
</form>
|
||
<script src="{{ url_for('static', filename='compose.js') }}" defer></script>
|
||
{% endmacro %}
|