feat: wip, better digest handling (+ eventual digest resend logic) (#7995)

* feat: wip, better digest handling (+ eventual digest resend logic)

- await emailer.send call in digest.send method
- save send success to a new sorted set digest:{interval}:byUid

* feat: continuing work on digest tools

- Added ACP page to view digest settings and delivery times per user

* feat: added paginator and stub buttons for resending digest

* feat: wrapping up digest revamp

- New language strings in ACP digest page
- Client-side ACP script for digest ACP page
- Websocket call for ACP page to execute digests
- Broke out logic to retrieve user digest settings to getUsersInterval

* fix: minor cleanup

* fix: #8010 and some style suggestions from baris

* fix: resolve confusing comment
This commit is contained in:
Julian Lam
2019-11-02 13:11:02 -04:00
committed by GitHub
parent e3c9dafa08
commit 645d647248
12 changed files with 296 additions and 16 deletions

View File

@@ -0,0 +1,51 @@
<p class="lead">[[admin/manage/digest:lead]]</p>
<p>[[admin/manage/digest:disclaimer]]</p>
<p>[[admin/manage/digest:disclaimer-continued]]</p>
<hr />
<table class="table table-striped">
<thead>
<th>[[admin/manage/digest:user]]</th>
<th>[[admin/manage/digest:subscription]]</th>
<th>[[admin/manage/digest:last-delivery]]</th>
<th></th>
</thead>
<tbody>
<!-- BEGIN delivery -->
<tr>
<td><a href="{config.relative_path}/uid/{../uid}">{buildAvatar(delivery, "sm", true)} {../username}</a></td>
<td>{{{if ../setting}}}{../setting}{{{else}}}<em>[[admin/manage/digest:default]]</em>{{{end}}}</td>
<td>{../lastDelivery}</td>
<td><button class="btn btn-xs btn-default" data-action="resend" data-uid="{../uid}">[[admin/manage/digest:resend]]</button></td>
</tr>
<!-- END delivery -->
<!-- IF !delivery.length -->
<tr>
<td colspan="4">
<div class="alert alert-success">
[[admin/manage/digest:no-delivery-data]]
</div>
</td>
</tr>
<!-- ENDIF !delivery.length -->
</tbody>
<tfoot>
<tr>
<td colspan="4"><!-- IMPORT partials/paginator.tpl --></td>
</tr>
<tr>
<td colspan="4">
<em>[[admin/manage/digest:default-help, {default}]]</em>
</td>
</tr>
<tr>
<td colspan="4">
[[admin/manage/digest:manual-run]]
<button class="btn btn-xs btn-default" data-action="resend-day">[[admin/settings/user:digest-freq.daily]]</button>
<button class="btn btn-xs btn-default" data-action="resend-week">[[admin/settings/user:digest-freq.weekly]]</button>
<button class="btn btn-xs btn-default" data-action="resend-month">[[admin/settings/user:digest-freq.monthly]]</button>
</td>
</tr>
</tfoot>
</table>

View File

@@ -34,6 +34,7 @@
<li><a href="{relative_path}/admin/manage/post-queue">[[admin/menu:manage/post-queue]]</a></li>
<li><a href="{relative_path}/admin/manage/ip-blacklist">[[admin/menu:manage/ip-blacklist]]</a></li>
<li><a href="{relative_path}/admin/manage/uploads">[[admin/menu:manage/uploads]]</a></li>
<li><a href="{relative_path}/admin/manage/digest">[[admin/menu:manage/digest]]</a></li>
</ul>
</section>
@@ -195,6 +196,7 @@
<li><a href="{relative_path}/admin/manage/post-queue">[[admin/menu:manage/post-queue]]</a></li>
<li><a href="{relative_path}/admin/manage/ip-blacklist">[[admin/menu:manage/ip-blacklist]]</a></li>
<li><a href="{relative_path}/admin/manage/uploads">[[admin/menu:manage/uploads]]</a></li>
<li><a href="{relative_path}/admin/manage/digest">[[admin/menu:manage/digest]]</a></li>
</ul>
</li>
<li class="dropdown menu-item">