Implement newsletter scheduling features
- Added a background scheduler to manage newsletter dispatch based on user-defined settings. - Enhanced the SMTP settings to include scheduling options such as frequency, time, and specific weekdays. - Updated the dashboard UI to allow users to configure scheduling preferences for automated newsletter sending. - Modified the newsletter generation logic to accommodate new scheduling parameters and ensure proper content delivery.
This commit is contained in:
@@ -263,9 +263,68 @@
|
||||
<label>Verteilerliste (kommagetrennt)
|
||||
<textarea rows="3" name="recipients" placeholder="kollege@firma.de, team@firma.de">{{ smtp.recipients }}</textarea>
|
||||
</label>
|
||||
<label>Geplanter täglicher Versand (HH:MM)
|
||||
<input type="time" name="schedule_time" value="{{ smtp.schedule_time }}">
|
||||
</label>
|
||||
|
||||
<fieldset class="schedule-box">
|
||||
<legend>Geplanter Versand</legend>
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="schedule_enabled" value="true" {% if smtp.schedule_enabled == "true" %}checked{% endif %}>
|
||||
Automatischen Versand aktivieren
|
||||
</label>
|
||||
<p class="hint" style="margin:0 0 0.6rem;">Ausschalten, wenn du vor dem Versenden noch Redaktionsnotiz oder Top-Highlights setzen möchtest – dann manuell über „Newsletter jetzt senden“.</p>
|
||||
<div class="form-row">
|
||||
<label>Häufigkeit
|
||||
<select name="schedule_frequency">
|
||||
<option value="daily" {% if smtp.schedule_frequency == 'daily' %}selected{% endif %}>Täglich</option>
|
||||
<option value="weekly" {% if smtp.schedule_frequency == 'weekly' %}selected{% endif %}>Wöchentlich</option>
|
||||
<option value="monthly" {% if smtp.schedule_frequency == 'monthly' %}selected{% endif %}>Monatlich</option>
|
||||
</select>
|
||||
</label>
|
||||
<label>Uhrzeit (HH:MM)
|
||||
<input type="time" name="schedule_time" value="{{ smtp.schedule_time }}">
|
||||
</label>
|
||||
</div>
|
||||
|
||||
{% set active_days = smtp.schedule_weekdays.split(',') %}
|
||||
<label>Wochentage (nur bei „Wöchentlich“)</label>
|
||||
<div class="weekday-row">
|
||||
{% for value, label in [('0','Mo'), ('1','Di'), ('2','Mi'), ('3','Do'), ('4','Fr'), ('5','Sa'), ('6','So')] %}
|
||||
<label class="weekday-chip">
|
||||
<input type="checkbox" name="schedule_weekdays" value="{{ value }}" {% if value in active_days %}checked{% endif %}>
|
||||
{{ label }}
|
||||
</label>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<label>Tag im Monat (nur bei „Monatlich“, 1–28)
|
||||
<input type="number" name="schedule_dom" min="1" max="28" value="{{ smtp.schedule_dom }}">
|
||||
</label>
|
||||
|
||||
<p class="hint" style="margin:0.5rem 0 0.25rem;">Inhalt des geplanten Newsletters:</p>
|
||||
<div class="form-row">
|
||||
<label>Zeitraum
|
||||
<select name="gen_period">
|
||||
<option value="days" {% if smtp.gen_period != 'last_month' %}selected{% endif %}>Letzte X Tage</option>
|
||||
<option value="last_month" {% if smtp.gen_period == 'last_month' %}selected{% endif %}>Letzter Monat</option>
|
||||
</select>
|
||||
</label>
|
||||
<label>Tage (bei „Letzte X Tage“)
|
||||
<input type="number" name="gen_days" min="1" max="90" value="{{ smtp.gen_days }}">
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<label>Artikel-Auswahl
|
||||
<select name="gen_article_type">
|
||||
<option value="all" {% if smtp.gen_article_type == 'all' %}selected{% endif %}>Alle</option>
|
||||
<option value="new" {% if smtp.gen_article_type == 'new' %}selected{% endif %}>Nur neue</option>
|
||||
<option value="edited" {% if smtp.gen_article_type == 'edited' %}selected{% endif %}>Nur bearbeitete</option>
|
||||
</select>
|
||||
</label>
|
||||
<label>Kategorie (optional)
|
||||
<input type="text" name="gen_category" value="{{ smtp.gen_category }}">
|
||||
</label>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<button type="submit">Einstellungen speichern</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user