feat: show number of events per type in acp

isekai-main
Barış Soner Uşaklı 3 years ago
parent 9fbb3b11ef
commit b916e42f40

@ -20,15 +20,17 @@ eventsController.get = async function (req, res) {
const currentFilter = req.query.type || ''; const currentFilter = req.query.type || '';
const [eventCount, eventData] = await Promise.all([ const [eventCount, eventData, counts] = await Promise.all([
db.sortedSetCount(`events:time${currentFilter ? `:${currentFilter}` : ''}`, from || '-inf', to), db.sortedSetCount(`events:time${currentFilter ? `:${currentFilter}` : ''}`, from || '-inf', to),
events.getEvents(currentFilter, start, stop, from || '-inf', to), events.getEvents(currentFilter, start, stop, from || '-inf', to),
db.sortedSetsCard([''].concat(events.types).map(type => `events:time${type ? `:${type}` : ''}`)),
]); ]);
const types = [''].concat(events.types).map(type => ({ const types = [''].concat(events.types).map((type, index) => ({
value: type, value: type,
name: type || 'all', name: type || 'all',
selected: type === currentFilter, selected: type === currentFilter,
count: counts[index],
})); }));
const pageCount = Math.max(1, Math.ceil(eventCount / itemsPerPage)); const pageCount = Math.max(1, Math.ceil(eventCount / itemsPerPage));

@ -40,7 +40,7 @@
<label for="type">[[admin/advanced/events:filter-type]]</label> <label for="type">[[admin/advanced/events:filter-type]]</label>
<select id="type" name="type" class="form-control"> <select id="type" name="type" class="form-control">
<!-- BEGIN types --> <!-- BEGIN types -->
<option value="{types.value}" <!-- IF types.selected -->selected<!-- ENDIF types.selected -->>{types.name}</option> <option value="{types.value}" <!-- IF types.selected -->selected<!-- ENDIF types.selected -->>{types.name} - ({types.count}) </option>
<!-- END types --> <!-- END types -->
</select> </select>
</div> </div>

Loading…
Cancel
Save