diff --git a/data/interfaces/default/css/tautulli.css b/data/interfaces/default/css/tautulli.css index 99c7e025..0356a5b8 100644 --- a/data/interfaces/default/css/tautulli.css +++ b/data/interfaces/default/css/tautulli.css @@ -3136,6 +3136,10 @@ div.dataTables_info { bottom: 0; text-shadow: 0 0 2px rgba(0,0,0,.5); } +.sign-out-tooltip:hover { + color: #E5A00D; + cursor: pointer; +} .history-thumbnail-popover { z-index: 2000; padding: 0; diff --git a/data/interfaces/default/js/tables/login_logs.js b/data/interfaces/default/js/tables/login_logs.js index 9440273f..cdd66a96 100644 --- a/data/interfaces/default/js/tables/login_logs.js +++ b/data/interfaces/default/js/tables/login_logs.js @@ -42,7 +42,7 @@ login_log_table_options = { { "targets": [2], "data": "user_group", - "width": "10%", + "width": "7%", "className": "no-wrap" }, { @@ -66,23 +66,42 @@ login_log_table_options = { { "targets": [4], "data": "host", - "width": "20%", + "width": "18%", "className": "no-wrap" }, { "targets": [5], "data": "os", - "width": "20%", + "width": "15%", "className": "no-wrap" }, { "targets": [6], "data": "browser", - "width": "18%", + "width": "15%", "className": "no-wrap" }, { "targets": [7], + "data": "expiry", + "createdCell": function (td, cellData, rowData, row, col) { + var active = ''; + if (rowData['current']) { + active = ' '; + } + if (cellData) { + var signout = ' '; + $(td).html(active + cellData + signout); + } else if (rowData['success']) { + $(td).html('expired'); + } + }, + "searchable": false, + "className": "no-wrap", + "width": "13%" + }, + { + "targets": [8], "data": "success", "createdCell": function (td, cellData, rowData, row, col) { if (cellData == 1) { @@ -113,6 +132,7 @@ login_log_table_options = { "preDrawCallback": function (settings) { var msg = "  Fetching rows..."; showMsg(msg, false, false, 0) + $('[data-toggle="tooltip"]').tooltip('destroy'); } }; @@ -126,4 +146,21 @@ $('.login_log_table').on('click', '> tbody > tr > td.modal-control-ip', function }).then(function (jqXHR) { $("#ip-info-modal").html(jqXHR); }); -}); \ No newline at end of file +}); + +$('.login_log_table').on('click', '> tbody > tr > td> .sign-out-tooltip', function () { + var tr = $(this).closest('tr'); + var row = login_log_table.row(tr); + var rowData = row.data(); + + $.get('logout_user_session', { + row_ids: rowData['row_id'], + current: rowData['current'] + }).then(function () { + if (rowData['current']) { + window.location = 'auth/logout' + } else { + login_log_table.draw(); + } + }); +}); diff --git a/data/interfaces/default/logs.html b/data/interfaces/default/logs.html index b3fa88f0..b3854380 100644 --- a/data/interfaces/default/logs.html +++ b/data/interfaces/default/logs.html @@ -172,6 +172,7 @@ Host Operating System Browser + Expiry diff --git a/data/interfaces/default/user.html b/data/interfaces/default/user.html index ccc3287d..b0289b43 100644 --- a/data/interfaces/default/user.html +++ b/data/interfaces/default/user.html @@ -435,6 +435,7 @@ DOCUMENTATION :: END Host Operating System Browser + Expiry