dark mode and websockets
[kismet-logviewer.git] / logviewer / static / js / kismet.ui.js
index 2c4265e..4f9d447 100644 (file)
@@ -556,6 +556,8 @@ exports.DetailWindow = function(key, title, options, window_cb, close_cb) {
     }
 
     var panel = $.jsPanel({
+        theme: 'dark',
+
         id: dialogid,
         headerTitle: title,
 
@@ -845,6 +847,7 @@ exports.HealthCheck = function() {
             .fail(function() {
                 if (exports.connection_error >= 3 && exports.connection_error_panel == null) {
                     exports.connection_error_panel = $.jsPanel({
+                        theme: 'dark',
                         id: "connection-alert",
                         headerTitle: 'Cannot Connect to Kismet',
                         headerControls: {
@@ -969,21 +972,11 @@ function ScheduleDeviceSummary() {
             kismet.putStorage('kismet.base.devicetable.order', JSON.stringify(dt.order()));
             kismet.putStorage('kismet.base.devicetable.search', JSON.stringify(dt.search()));
 
-            // Snapshot where we are, because the 'don't reset page' in ajax.reload
-            // DOES still reset the scroll position
-            var prev_pos = {
-                'top': $(dt.settings()[0].nScrollBody).scrollTop(),
-                'left': $(dt.settings()[0].nScrollBody).scrollLeft()
-            };
-            dt.ajax.reload(function(d) {
-                // Restore our scroll position
-                $(dt.settings()[0].nScrollBody).scrollTop( prev_pos.top );
-                $(dt.settings()[0].nScrollBody).scrollLeft( prev_pos.left );
-            }, false);
+            dt.ajax.reload(function(d) { }, false);
         }
 
     } catch (error) {
-        ;
+        console.log(error);
     }
     
     // Set our timer outside of the datatable callback so that we get called even
@@ -1000,7 +993,7 @@ function CancelDeviceSummary() {
 /* Create the device table */
 exports.CreateDeviceTable = function(element) {
     devicetableElement = element;
-    var statuselement = $('#' + element.attr('id') + '_status');
+    // var statuselement = $('#' + element.attr('id') + '_status');
 
     var dt = exports.InitializeDeviceTable(element);
 
@@ -1011,7 +1004,7 @@ exports.CreateDeviceTable = function(element) {
 }
 
 exports.InitializeDeviceTable = function(element) {
-    var statuselement = $('#' + element.attr('id') + '_status');
+    // var statuselement = $('#' + element.attr('id') + '_status');
 
     /* Make the fields list json and set the wrapper object to aData to make the DT happy */
     var cols = exports.GetDeviceColumns();
@@ -1033,30 +1026,37 @@ exports.InitializeDeviceTable = function(element) {
         .on('xhr.dt', function (e, settings, json, xhr) {
             json = kismet.sanitizeObject(json);
 
+            /*
             if (json['recordsFiltered'] != json['recordsTotal'])
                 statuselement.html(json['recordsTotal'] + " devices (" + json['recordsFiltered'] + " shown after filter)");
             else
                 statuselement.html(json['recordsTotal'] + " devices");
+                */
         } )
         .DataTable( {
 
         destroy: true,
 
         scrollResize: true,
-        scrollY: 200,
+        // scrollY: 200,
         scrollX: "100%",
 
+        pageResize: true,
         serverSide: true,
         processing: true,
 
-        dom: '<"viewselector">ft',
+        // stateSave: true,
+
+        dom: '<"viewselector">ftip',
 
         deferRender: true,
         lengthChange: false,
 
+            /*
         scroller: {
             loadingIndicator: true,
         },
+        */
 
         // Create a complex post to get our summary fields only
         ajax: {
@@ -1135,6 +1135,10 @@ exports.InitializeDeviceTable = function(element) {
 
     device_dt = element.DataTable();
     // var dt_base_height = element.height();
+
+    try { 
+        device_dt.stateRestore.state.add("AJAX");
+    } catch (_err) { }
     
     // $('div.viewselector').html("View picker");
     exports.BuildDeviceViewSelector($('div.viewselector'));