diff --git a/data/interfaces/default/history.html b/data/interfaces/default/history.html
index 327b99b7..acb4d604 100644
--- a/data/interfaces/default/history.html
+++ b/data/interfaces/default/history.html
@@ -31,9 +31,7 @@
% if _session['user_group'] == 'admin':
@@ -121,6 +119,7 @@
%def>
<%def name="javascriptIncludes()">
+
@@ -134,17 +133,40 @@
type: 'GET',
dataType: 'json',
success: function (data) {
- var select = $('#history-user');
+ let select = $('#graph-user');
+ let by_id = {};
data.sort(function (a, b) {
return a.friendly_name.localeCompare(b.friendly_name);
});
data.forEach(function (item) {
select.append('');
+ by_id[item.user_id] = item.friendly_name;
});
+ select.selectpicker({
+ countSelectedText: function(sel, total) {
+ if (sel === 0 || sel === total) {
+ return 'All users';
+ } else if (sel > 1) {
+ return sel + ' users';
+ } else {
+ return select.val().map(function(id) {
+ return by_id[id];
+ }).join(', ');
+ }
+ },
+ style: 'btn-dark',
+ actionsBox: true,
+ selectedTextFormat: 'count',
+ noneSelectedText: 'All users'
+ });
+ select.selectpicker('render');
+ select.selectpicker('selectAll');
}
});
+ let history_user_last_id = undefined;
+
function loadHistoryTable(media_type, transcode_decision, selected_user_id) {
history_table_options.ajax = {
url: 'get_history',
@@ -187,7 +209,16 @@
});
$('#history-user').on('change', function () {
- selected_user_id = $(this).val() || null;
+ let val = $(this).val();
+ if (val.length === 0 || val.length === $(this).children().length) {
+ selected_user_id = null; // if all users are selected, just send an empty list
+ } else {
+ selected_user_id = val.join(",");
+ }
+ if (selected_user_id === graph_user_last_id) {
+ return;
+ }
+ history_user_last_id = selected_user_id;
history_table.draw();
});
}