diff --git a/front/css/app.css b/front/css/app.css index 55fbae07c..1af92acfc 100755 --- a/front/css/app.css +++ b/front/css/app.css @@ -20,6 +20,7 @@ --color-red: #dd4b39; --color-gray: #8c8c8c; --color-darkgray: #3f3e3e; + --color-lightgray: #bec5cb; --color-black: #000; } diff --git a/front/css/dark-patch.css b/front/css/dark-patch.css index 87eac858d..ed0317095 100755 --- a/front/css/dark-patch.css +++ b/front/css/dark-patch.css @@ -14,11 +14,19 @@ --color-aqua: #00c0ef; --color-lightblue: #3c8dbc; --color-blue: #0060df; + --color-black: #000; --color-white: #fff; --color-green: #00a65a; --color-yellow: #f39c12; --color-red: #dd4b39; --color-gray: #8c8c8c; + --color-lightgray: #bec5cb; + --skel-base: #353c42; + --skel-shine: #272c30; + --skel-section: #272c30; + --skel-panel-bg: #272c30; + --skel-border: #2a323e; + --skel-bg: #353c42; } :root { @@ -35,13 +43,13 @@ html { body, .bg-yellow, .callout.callout-warning, .alert-warning, .label-warning, .modal-warning .modal-body { background-color: #353c42 !important; - color: #bec5cb !important; + color: var(--color-lightgray) !important; } h4 { color: #44def1; } .content-header > .breadcrumb > li > a { - color: #bec5cb; + color: var(--color-lightgray); } .table > thead > tr.odd, @@ -69,7 +77,7 @@ h4 { .dataTables_wrapper input[type="search"] { background-color: #353c42; border: 0; - color: #bec5cb; + color: var(--color-lightgray); } .dataTables_paginate .pagination li > a { background-color: #353c42; @@ -82,7 +90,7 @@ h4 { .pagination > .disabled > span:focus, .pagination > .disabled > span:hover { cursor: not-allowed; - color: #bec5cb; + color: var(--color-lightgray); background-color: #353c42; border-color: #353c42; } @@ -91,7 +99,7 @@ h4 { .pagination > li > span:focus, .pagination > li > span:hover { z-index: 2; - color: #bec5cb; + color: var(--color-lightgray); background-color: #54606b; border-color: #54606b; } @@ -122,7 +130,7 @@ h4 { background-color: #32393e; } .sidebar a { - color: #bec5cb; + color: var(--color-lightgray); } .sidebar a:hover { text-decoration: none; @@ -172,7 +180,7 @@ h4 { .box-comment, .comment-text, .comment-text .username { - color: #bec5cb; + color: var(--color-lightgray); background-color: #272c30; } .box-comments .box-comment { @@ -190,11 +198,11 @@ h4 { } .box-solid > .box-header, .box > .box-header { - color: #bec5cb; + color: var(--color-lightgray); } .box-solid > .box-header .btn, .box > .box-header .btn { - color: #bec5cb; + color: var(--color-lightgray); } .main-header .navbar { @@ -202,7 +210,7 @@ h4 { } .main-header .navbar .nav > li > a, .main-header .navbar .nav > li > .navbar-text { - color: #bec5cb; + color: var(--color-lightgray); } .main-header .navbar .nav > li > a:hover, .main-header .navbar .nav > li > a:active, @@ -215,14 +223,14 @@ h4 { color: #f6f6f6; } .main-header .navbar .sidebar-toggle { - color: #bec5cb; + color: var(--color-lightgray); } .main-header .navbar .sidebar-toggle:hover { color: #f6f6f6; background-color: rgba(0, 0, 0, 0.1); } .timeline li .timeline-item { - color: #bec5cb; + color: var(--color-lightgray); background-color: #272c30; border-color: #353c42; } @@ -230,7 +238,7 @@ h4 { border-bottom-color: #353c42; } .nav-stacked > li > a { - color: #bec5cb; + color: var(--color-lightgray); } .nav-stacked > li > a:hover { color: white; @@ -244,7 +252,7 @@ h4 { .nav-tabs-custom { background-color: #272c30; border-top-color: #353c42; - color: #bec5cb; + color: var(--color-lightgray); } .main-footer .nav-tabs, .nav-tabs-custom .nav-tabs { @@ -259,14 +267,14 @@ h4 { background: rgba(64, 72, 80, 0.666); } .nav-tabs-custom > .nav-tabs > li { - color: #bec5cb; + color: var(--color-lightgray); } .nav-tabs-custom > .nav-tabs > li.active > a, .nav-tabs-custom > .nav-tabs > li.active:hover > a { border-left-color: #30383f; border-right-color: #30383f; background-color: #30383f; - color: #bec5cb; + color: var(--color-lightgray); } .nav-tabs-custom > .nav-tabs > li:not(.active):hover { border-top-color: #d2d6de; @@ -281,11 +289,11 @@ h4 { .nav-tabs-custom > .nav-tabs > li:hover > a, .nav-tabs-custom > .nav-tabs > li.active:hover > a { background-color: #353c42; - color: #bec5cb; + color: var(--color-lightgray); } .list-group { - color: #bec5cb; + color: var(--color-lightgray); background-color: #272c30; } .list-group .list-group-item { @@ -297,23 +305,23 @@ h4 { } .select2 .select2-selection { background-color: #353c42; - color: #bec5cb; + color: var(--color-lightgray); border: 1px solid #353c42; } .select2 .select2-selection .select2-container--default, .select2 .select2-selection .select2-selection--single, .select2 .select2-selection .select2-selection--multiple, .select2 .select2-selection .select2-selection__rendered { - color: #bec5cb; + color: var(--color-lightgray); } .select2-dropdown { background-color: #353c42; - color: #bec5cb; + color: var(--color-lightgray); border: 1px solid #353c42; } .select2-dropdown .select2-search__field { background-color: #272c30; - color: #bec5cb; + color: var(--color-lightgray); border: 1px solid #353c42; } .select2-container--default.select2-container--open { @@ -367,7 +375,7 @@ h4 { code, pre { - color: #bec5cb; + color: var(--color-lightgray); background-color: #353c42; } @@ -393,7 +401,7 @@ td.highlight { .btn-default { box-shadow: none; background-color: #3e464c; - color: #bec5cb; + color: var(--color-lightgray); border: 1px solid #353c42; } @@ -406,7 +414,7 @@ td.highlight { .btn-outline:hover { border: 1px solid var(--color-black); - background-color: var(--color-black);; + background-color: var(--color-black); color: var(--color-white); } @@ -472,7 +480,7 @@ td.highlight { } .daterangepicker td.in-range { background-color: #1e2226; - color: #bec5cb; + color: var(--color-lightgray); } input, select, @@ -490,7 +498,7 @@ select.form-control, .form-control, div.dataTables_wrapper div.dataTables_length select { background-color: #353c42; - color: #bec5cb; + color: var(--color-lightgray); border: 1px solid #3d444b; } .form-control[disabled], @@ -510,7 +518,7 @@ textarea[readonly], .navbar-custom-menu > .navbar-nav > li > .dropdown-menu { background-color: #4c5761; - color: #bec5cb; + color: var(--color-lightgray); border: 1px solid #171c20; } .table-striped > tbody > tr:nth-of-type(2n + 1) { @@ -522,14 +530,14 @@ textarea[readonly], background-color: #3e464c; border: 1px solid #353c42; - color: #bec5cb; + color: var(--color-lightgray); } #settingsPage .panel-heading:hover { background-color: #272c30; } .box.box-solid.box-info, .box.box-solid.box-info > .box-header { - color: #bec5cb; + color: var(--color-lightgray); background-color: #367fa9 !important; border: 1px solid #367fa9; } @@ -564,7 +572,7 @@ input[type="password"]::-webkit-caps-lock-indicator { .box .overlay > .fa, .overlay-wrapper .overlay > .fa, .navbar-nav > .user-menu > .dropdown-menu > .user-body a { - color: #bec5cb !important; + color: var(--color-lightgray) !important; } .navbar-nav > .user-menu > .dropdown-menu > .user-footer { @@ -643,6 +651,9 @@ input[type="password"]::-webkit-caps-lock-indicator { background-color: #353c42; border-color: #888888; } +#txtRecord:hover { + color: var(--color-lightgray); +} .table-hover tbody tr:hover td, .table-hover tbody tr:hover th { background-color: var(--datatable-bgcolor); color: var(--fbc-white); @@ -663,14 +674,14 @@ table.dataTable tbody tr.selected, table.dataTable tbody tr .selected .nav-tabs-custom > .nav-tabs > li:hover > a, .nav-tabs-custom > .nav-tabs > li.active:hover > a { background-color: #272c30; - color: #bec5cb; + color: var(--color-lightgray); } .nav-tabs-custom > .nav-tabs > li.active > a, .nav-tabs-custom > .nav-tabs > li.active:hover > a { border-left-color: #30383f; border-right-color: #30383f; background-color: #272c30; - color: #bec5cb; + color: var(--color-lightgray); } .nav-tabs-custom > .nav-tabs { background-color: #353c42; @@ -700,7 +711,7 @@ table.dataTable tbody tr.selected, table.dataTable tbody tr .selected } .login-box-body { - color: #bec5cb; + color: var(--color-lightgray); background-color: #272c30; } @@ -716,12 +727,12 @@ table.dataTable tbody tr.selected, table.dataTable tbody tr .selected /* Chevron color */ .select2-container .select2-selection__arrow::after { - color: #bec5cb; + color: var(--color-lightgray); } /* Chevron color */ .select2-selection .select2-selection--single { - color: #bec5cb; + color: var(--color-lightgray); } .select2-container--default .select2-selection--multiple, .select2-container--default .select2-selection--single { @@ -730,12 +741,12 @@ table.dataTable tbody tr.selected, table.dataTable tbody tr .selected .select2-container--default .select2-selection--multiple { background-color: #353c42 !important; - color: #bec5cb; + color: var(--color-lightgray); } .select2-container--default .select2-selection--single .select2-selection__rendered .custom-chip { - color: #bec5cb; + color: var(--color-lightgray); } #hover-box @@ -766,13 +777,3 @@ table.dataTable tbody tr.selected, table.dataTable tbody tr .selected font-size: .85em; cursor: pointer; } - -/* Settings skeleton - dark theme */ -:root { - --skel-base: #353c42; - --skel-shine: #272c30; - --skel-section: #272c30; - --skel-panel-bg: #272c30; - --skel-border: #2a323e; - --skel-bg: #353c42; -} \ No newline at end of file diff --git a/front/css/system-dark-patch.css b/front/css/system-dark-patch.css index e6aea1f83..97a501d04 100755 --- a/front/css/system-dark-patch.css +++ b/front/css/system-dark-patch.css @@ -21,6 +21,7 @@ --color-red: #dd4b39; --color-gray: #8c8c8c; --color-darkgray: #3f3e3e; + --color-lightgray: #bec5cb; --color-white: #fff; --skel-base: #353c42; --skel-shine: #272c30; @@ -634,6 +635,9 @@ background-color: #353c42; border-color: #888888; } + #txtRecord:hover { + color: var(--color-lightgray); + } .table-hover tbody tr:hover td, .table-hover tbody tr:hover th { background-color: var(--datatable-bgcolor); color: var(--fbc-white); diff --git a/front/deviceDetails.php b/front/deviceDetails.php index 2168a5bf9..d8b19363b 100755 --- a/front/deviceDetails.php +++ b/front/deviceDetails.php @@ -269,6 +269,7 @@ function recordSwitch(direction) { '', '', performSwitch, direction); } else { + showSpinner(); performSwitch(direction) } } diff --git a/front/deviceDetailsEdit.php b/front/deviceDetailsEdit.php index ae912cbb4..317de6d73 100755 --- a/front/deviceDetailsEdit.php +++ b/front/deviceDetailsEdit.php @@ -423,6 +423,7 @@ function setDeviceData(direction = '', refreshCallback = '') { } showSpinner(); + showDetailsTabSkeleton(); const apiToken = getSetting("API_TOKEN"); // dynamic token const apiBaseUrl = getApiBase(); @@ -487,6 +488,7 @@ function setDeviceData(direction = '', refreshCallback = '') { if (resp && resp.success) { showMessage(getString("Device_Saved_Success")); + hideDetailsTabSkeleton(); } else { console.log(resp); @@ -669,7 +671,11 @@ function toggleFieldLock(mac, fieldName) { // ----------------------------------------------------------------------------- function hideDetailsTabSkeleton() { - $('#skel-tab-details').fadeOut(50, function() { $(this).remove(); }); + $('#skel-tab-details').fadeOut(50, function() { $(this).hide(); }); +} +function showDetailsTabSkeleton() { + var $skel = $('#skel-tab-details'); + $skel.stop(true, true).fadeIn(10); } diff --git a/front/deviceDetailsEvents.php b/front/deviceDetailsEvents.php index 1791d259a..c8367c549 100755 --- a/front/deviceDetailsEvents.php +++ b/front/deviceDetailsEvents.php @@ -180,9 +180,10 @@ function initDeviceEventsPage() // init page once if (eventsPageInitialized) return; // ENSURE ONCE eventsPageInitialized = true; - + + showEventsTabSkeleton(); showSpinner(); - + var eventsRows = 10; var eventsHide = true; @@ -203,7 +204,11 @@ function deviceEventsPageUpdater() { // ----------------------------------------------------------------------------- function hideEventsTabSkeleton() { - $('#skel-tab-events').fadeOut(50, function() { $(this).remove(); }); + $('#skel-tab-events').fadeOut(50, function() { $(this).hide(); }); +} +function showEventsTabSkeleton() { + var $skel = $('#skel-tab-events'); + $skel.stop(true, true).fadeIn(10); } \ No newline at end of file diff --git a/front/deviceDetailsPresence.php b/front/deviceDetailsPresence.php index e70966062..12f116909 100755 --- a/front/deviceDetailsPresence.php +++ b/front/deviceDetailsPresence.php @@ -195,6 +195,7 @@ function initDevicePresencePage() { if (presencePageInitialized) return; presencePageInitialized = true; + showPresenceTabSkeleton(); showSpinner(); initializeCalendar(); @@ -212,7 +213,12 @@ function devicePresencePageUpdater() { // ----------------------------------------------------------------------------- function hidePresenceTabSkeleton() { - $('#skel-tab-presence').fadeOut(50, function() { $(this).remove(); }); + $('#skel-tab-presence').fadeOut(50, function() { $(this).hide(); }); +} + +function showPresenceTabSkeleton() { + var $skel = $('#skel-tab-presence'); + $skel.stop(true, true).fadeIn(10); } diff --git a/front/deviceDetailsSessions.php b/front/deviceDetailsSessions.php index 450447dbc..a3ef23af1 100755 --- a/front/deviceDetailsSessions.php +++ b/front/deviceDetailsSessions.php @@ -98,6 +98,7 @@ function loadSessionsData() { const table = $('#tableSessions').DataTable(); let period = $("#period").val() + showSessionsTabSkeleton(); showSpinner(); // Build API base @@ -179,7 +180,12 @@ function deviceSessionsPageUpdater() { // ----------------------------------------------------------------------------- function hideSessionsTabSkeleton() { - $('#skel-tab-sessions').fadeOut(50, function() { $(this).remove(); }); + $('#skel-tab-sessions').fadeOut(50, function() { $(this).hide(); }); +} + +function showSessionsTabSkeleton() { + var $skel = $('#skel-tab-sessions'); + $skel.stop(true, true).fadeIn(10); } \ No newline at end of file diff --git a/front/deviceDetailsTools.php b/front/deviceDetailsTools.php index cbe6ebf2d..8560974b4 100755 --- a/front/deviceDetailsTools.php +++ b/front/deviceDetailsTools.php @@ -2,8 +2,8 @@ //------------------------------------------------------------------------------ // check if authenticated require_once $_SERVER['DOCUMENT_ROOT'] . '/php/templates/security.php'; + require $_SERVER['DOCUMENT_ROOT'] . '/php/templates/skel_tab_tools.php'; ?> - @@ -214,6 +214,9 @@ class="btn btn-default pa-btn pa-btn-delete" const apiToken = getSetting("API_TOKEN"); const apiBaseUrl = getApiBase(); + showSpinner(); + showToolsTabSkeleton(); + // ---------------------------------------------------------------- function manualnmapscan(targetip, mode) { $("#scanoutput").empty(); @@ -435,8 +438,6 @@ function initCopyFromDevice() { // ---------------------------------------------------------------- function wakeonlan() { - - const macAddress = getMac(); const ipAddress = getDevDataByMac(macAddress, "devLastIP"); @@ -703,9 +704,10 @@ function initDeviceToolsPage() toolsPageInitialized = true; initNmapButtons(); - initCopyFromDevice(); - + initCopyFromDevice(); + hideSpinner(); + hideToolsTabSkeleton(); } @@ -721,4 +723,18 @@ function deviceToolsPageUpdater() { // start updater deviceToolsPageUpdater(); + window.addEventListener('load', function () { + console.log('Page fully loaded'); + }); + + + function hideToolsTabSkeleton() { + $('#skel-tab-tools').fadeOut(50, function() { $(this).hide(); }); + } + + function showToolsTabSkeleton() { + var $skel = $('#skel-tab-tools'); + $skel.stop(true, true).fadeIn(10); + } + diff --git a/front/devices.php b/front/devices.php index 79f5ff58e..c4f124abc 100755 --- a/front/devices.php +++ b/front/devices.php @@ -921,8 +921,8 @@ function initializeDatatable (status) { ` data-mac="${row[mapIndx(COL.devMac)]}"` + ` data-vendor="${row[mapIndx(COL.devVendor)]}"` + ` data-type="${row[mapIndx(COL.devType)]}"` + - ` data-firstseen="${row[mapIndx(COL.devFirstConnection)]}"` + - ` data-lastseen="${row[mapIndx(COL.devLastConnection)]}"` + + ` data-firstseen="${localizeTimestamp(row[mapIndx(COL.devFirstConnection)])}"` + + ` data-lastseen="${localizeTimestamp(row[mapIndx(COL.devLastConnection)])}"` + ` data-relationship="${row[mapIndx(COL.devParentRelType)]}"` + ` data-status="${row[mapIndx(COL.devStatus)]}"` + ` data-present="${row[mapIndx(COL.devPresentLastScan)]}"` + diff --git a/front/js/common.js b/front/js/common.js index c0df14b32..7ca9a6113 100755 --- a/front/js/common.js +++ b/front/js/common.js @@ -969,34 +969,52 @@ $(document).on('click', 'a', function (e) { } }); -function showSpinner(stringKey = 'Loading') { - let text = isEmpty(stringKey) ? "Loading..." : getString(stringKey || "Loading"); +function resolveSpinnerTarget(explicitTarget = null) { + if (explicitTarget) { + return $(explicitTarget); + } + + // Active tab pane + const activeTab = $(".tab-pane.active .spinnerTarget").first(); + if (activeTab.length) { + return activeTab; + } + + // Visible container fallback + const visibleTarget = $(".spinnerTarget:visible").first(); + if (visibleTarget.length) { + return visibleTarget; + } + + return $(); +} + +function showSpinner(stringKey = "Loading", target = null) { + let text = isEmpty(stringKey) + ? "Loading..." + : getString(stringKey || "Loading"); if (!text || !text.trim()) { - text = "Loading..." + text = "Loading..."; } const spinner = $("#loadingSpinner"); - const target = $(".spinnerTarget").first(); // Only use the first one if multiple exist + const resolvedTarget = resolveSpinnerTarget(target); $("#loadingSpinnerText").text(text); - if (target.length) { - // Position relative to target - const offset = target.offset(); - const width = target.outerWidth(); - const height = target.outerHeight(); + if (resolvedTarget.length) { + const offset = resolvedTarget.offset(); spinner.css({ position: "absolute", top: offset.top, left: offset.left, - width: width, - height: height, + width: resolvedTarget.outerWidth(), + height: resolvedTarget.outerHeight(), zIndex: 9999 }); } else { - // Fullscreen fallback spinner.css({ position: "fixed", top: 0, @@ -1013,6 +1031,12 @@ function showSpinner(stringKey = 'Loading') { }); } +function hideSpinner() { + $("#loadingSpinner") + .removeClass("visible") + .fadeOut(animationTime); +} + function hideSpinner() { clearTimeout(spinnerTimeout); const spinner = $("#loadingSpinner"); diff --git a/front/js/network-tree.js b/front/js/network-tree.js index 0f8f4f2f6..078239d58 100644 --- a/front/js/network-tree.js +++ b/front/js/network-tree.js @@ -284,8 +284,8 @@ function initTree(myHierarchy) data-vendor="${nodeData.data.devVendor}" data-type="${nodeData.data.devType}" data-devIsNetworkNodeDynamic="${nodeData.data.devIsNetworkNodeDynamic}" - data-lastseen="${nodeData.data.devLastConnection}" - data-firstseen="${nodeData.data.devFirstConnection}" + data-lastseen="${localizeTimestamp(nodeData.data.devLastConnection)}" + data-firstseen="${localizeTimestamp(nodeData.data.devFirstConnection)}" data-relationship="${nodeData.data.devParentRelType}" data-flapping="${nodeData.data.devFlapping}" data-sleeping="${nodeData.data.devIsSleeping || 0}" diff --git a/front/js/ui_components.js b/front/js/ui_components.js index 1cd0a863d..917ff8607 100755 --- a/front/js/ui_components.js +++ b/front/js/ui_components.js @@ -980,8 +980,8 @@ function renderDeviceLink(data, container, useName = false) { 'data-mac': device.devMac, 'data-vendor': device.devVendor, 'data-type': device.devType, - 'data-lastseen': device.devLastConnection, - 'data-firstseen': device.devFirstConnection, + 'data-lastseen': localizeTimestamp(device.devLastConnection), + 'data-firstseen': localizeTimestamp(device.devFirstConnection), 'data-relationship': device.devParentRelType, 'data-status': device.devStatus, 'data-flapping': device.devFlapping, diff --git a/front/php/templates/skel_devices.php b/front/php/templates/skel_devices.php index 1fd09de36..6d6638d7f 100644 --- a/front/php/templates/skel_devices.php +++ b/front/php/templates/skel_devices.php @@ -1,5 +1,5 @@ -
+
diff --git a/front/php/templates/skel_events.php b/front/php/templates/skel_events.php index 3b9a9bf25..0ac60b70b 100644 --- a/front/php/templates/skel_events.php +++ b/front/php/templates/skel_events.php @@ -1,4 +1,4 @@ -
+
diff --git a/front/php/templates/skel_notifications.php b/front/php/templates/skel_notifications.php index d4f6fa03f..67b37c2fa 100644 --- a/front/php/templates/skel_notifications.php +++ b/front/php/templates/skel_notifications.php @@ -1,4 +1,4 @@ -
+
diff --git a/front/php/templates/skel_plugins.php b/front/php/templates/skel_plugins.php index a752921da..b61079025 100644 --- a/front/php/templates/skel_plugins.php +++ b/front/php/templates/skel_plugins.php @@ -1,4 +1,4 @@ -
+
diff --git a/front/php/templates/skel_presence.php b/front/php/templates/skel_presence.php index e344d4aa4..eb3be3fdf 100644 --- a/front/php/templates/skel_presence.php +++ b/front/php/templates/skel_presence.php @@ -1,4 +1,4 @@ -
+
diff --git a/front/php/templates/skel_report.php b/front/php/templates/skel_report.php index fa6748c2c..25dd5dc76 100644 --- a/front/php/templates/skel_report.php +++ b/front/php/templates/skel_report.php @@ -1,4 +1,4 @@ -
+
diff --git a/front/php/templates/skel_settings.php b/front/php/templates/skel_settings.php index e06ead88b..0c65db449 100644 --- a/front/php/templates/skel_settings.php +++ b/front/php/templates/skel_settings.php @@ -1,5 +1,5 @@ -
+
diff --git a/front/php/templates/skel_tab_details.php b/front/php/templates/skel_tab_details.php index dcccaf935..c6a964486 100644 --- a/front/php/templates/skel_tab_details.php +++ b/front/php/templates/skel_tab_details.php @@ -1,5 +1,5 @@ -
+
diff --git a/front/php/templates/skel_tab_events.php b/front/php/templates/skel_tab_events.php index 667049b0d..4096af40b 100644 --- a/front/php/templates/skel_tab_events.php +++ b/front/php/templates/skel_tab_events.php @@ -1,5 +1,5 @@ -
+
diff --git a/front/php/templates/skel_tab_maint_backup.php b/front/php/templates/skel_tab_maint_backup.php index 83044e56a..d60902472 100644 --- a/front/php/templates/skel_tab_maint_backup.php +++ b/front/php/templates/skel_tab_maint_backup.php @@ -1,4 +1,4 @@ -
+
+
+
diff --git a/front/php/templates/skel_tab_maint_multiedit.php b/front/php/templates/skel_tab_maint_multiedit.php index d9caa9235..1324239fa 100644 --- a/front/php/templates/skel_tab_maint_multiedit.php +++ b/front/php/templates/skel_tab_maint_multiedit.php @@ -1,4 +1,4 @@ -
+
diff --git a/front/php/templates/skel_tab_plugins_table.php b/front/php/templates/skel_tab_plugins_table.php index cfe163c17..f7d9ca156 100644 --- a/front/php/templates/skel_tab_plugins_table.php +++ b/front/php/templates/skel_tab_plugins_table.php @@ -1,5 +1,5 @@ -
+
diff --git a/front/php/templates/skel_tab_presence.php b/front/php/templates/skel_tab_presence.php index c403b47d5..757be01b9 100644 --- a/front/php/templates/skel_tab_presence.php +++ b/front/php/templates/skel_tab_presence.php @@ -1,5 +1,5 @@ -
+
diff --git a/front/php/templates/skel_tab_sessions.php b/front/php/templates/skel_tab_sessions.php index 80cedbf61..f2e9e619e 100644 --- a/front/php/templates/skel_tab_sessions.php +++ b/front/php/templates/skel_tab_sessions.php @@ -1,5 +1,5 @@ -
+
diff --git a/front/php/templates/skel_tab_sysinfo_initcheck.php b/front/php/templates/skel_tab_sysinfo_initcheck.php index 4c8656d3b..b84b81bfd 100644 --- a/front/php/templates/skel_tab_sysinfo_initcheck.php +++ b/front/php/templates/skel_tab_sysinfo_initcheck.php @@ -1,4 +1,4 @@ -
+
diff --git a/front/php/templates/skel_tab_sysinfo_network.php b/front/php/templates/skel_tab_sysinfo_network.php index 1598d59cd..efdb35266 100644 --- a/front/php/templates/skel_tab_sysinfo_network.php +++ b/front/php/templates/skel_tab_sysinfo_network.php @@ -1,4 +1,4 @@ -
+
diff --git a/front/php/templates/skel_tab_sysinfo_server.php b/front/php/templates/skel_tab_sysinfo_server.php index 1598d59cd..efdb35266 100644 --- a/front/php/templates/skel_tab_sysinfo_server.php +++ b/front/php/templates/skel_tab_sysinfo_server.php @@ -1,4 +1,4 @@ -
+
diff --git a/front/php/templates/skel_tab_sysinfo_storage.php b/front/php/templates/skel_tab_sysinfo_storage.php index bca962020..001bed2a1 100644 --- a/front/php/templates/skel_tab_sysinfo_storage.php +++ b/front/php/templates/skel_tab_sysinfo_storage.php @@ -1,4 +1,4 @@ -
+
diff --git a/front/php/templates/skel_tab_tools.php b/front/php/templates/skel_tab_tools.php new file mode 100644 index 000000000..42d742411 --- /dev/null +++ b/front/php/templates/skel_tab_tools.php @@ -0,0 +1,27 @@ +
+ + +
+
+
+
+ + +
+
+ + + +
+ +
+ + + +
+ +
+
+
+ +
diff --git a/front/php/templates/skel_workflows.php b/front/php/templates/skel_workflows.php index 23a72188e..22d5976fc 100644 --- a/front/php/templates/skel_workflows.php +++ b/front/php/templates/skel_workflows.php @@ -1,4 +1,4 @@ -
+
diff --git a/front/pluginsCore.php b/front/pluginsCore.php index 047f69a8f..a37ac2746 100755 --- a/front/pluginsCore.php +++ b/front/pluginsCore.php @@ -667,7 +667,7 @@ function buildDT(tableId, gqlField, countId, badgeId) { // Fade out the skeleton only after the first draw so there is no gap // between the skeleton disappearing and the table rows appearing. initComplete: function() { - $(skelId).fadeOut(50, function() { $(this).remove(); }); + $(skelId).fadeOut(50, function() { $(this).hide(); }); }, createdRow: function(row, data) { $(row).attr('data-my-index', data.index);