@@ -1083,6 +1083,7 @@ height: 50px;
10831083.settingswrap
10841084{
10851085 margin-bottom : 100px ;
1086+ padding-top : 0px ;
10861087}
10871088
10881089.settingswrap .metadata
@@ -1178,8 +1179,10 @@ height: 50px;
11781179/* Settings */
11791180
11801181# settingsPage .overview-setting-value {
1181- display : unset;
1182-
1182+ display : block;
1183+ overflow : hidden;
1184+ text-overflow : ellipsis;
1185+ font-size : smaller;
11831186}
11841187
11851188.overview-setting-value-wrap
@@ -1228,7 +1231,7 @@ height: 50px;
12281231
12291232}
12301233# settingsPage .panel-heading : hover {
1231- background-color : # 272c30 ;
1234+ background-color : # e8e8e8 ;
12321235}
12331236
12341237.settings-expand-icon {
@@ -2256,7 +2259,7 @@ textarea[readonly],
22562259----------------------------------------------------------------------------- */
22572260# loadingSpinner {
22582261 position : fixed;
2259- z-index : 1000 ;
2262+ z-index : 9999 ;
22602263 /* top: 0; */
22612264 /* left: 0; */
22622265 /* width: 100%; */
@@ -2265,7 +2268,6 @@ textarea[readonly],
22652268 transition : opacity 0.3s ease-in-out;
22662269 pointer-events : none;
22672270 display : block;
2268- z-index : 800 ;
22692271}
22702272
22712273.fa-spinner
@@ -2587,4 +2589,182 @@ table.dataTable tbody > tr.selected
25872589.input-group-addon .text-muted {
25882590 color : # 8c8c8c ;
25892591 background-color : rgba (140 , 140 , 140 , 0.05 );
2590- }
2592+ }
2593+
2594+ /* ===== Loading Skeleton ===== */
2595+
2596+ /* Custom properties (overridden in dark-patch.css for Dark/System themes) */
2597+ : root {
2598+ --skel-base : # e2e2e2 ;
2599+ --skel-shine : # f0f0f0 ;
2600+ --skel-section : # d4d4d4 ;
2601+ --skel-panel-bg : # f5f5f5 ;
2602+ --skel-border : # ddd ;
2603+ --skel-bg : # ecf0f5 ;
2604+ }
2605+
2606+ @keyframes settingsShimmer {
2607+ 0% { background-position : -600px 0 ; }
2608+ 100% { background-position : 600px 0 ; }
2609+ }
2610+
2611+ .skel-shimmer {
2612+ background : linear-gradient (
2613+ 90deg ,
2614+ var (--skel-base ) 25% ,
2615+ var (--skel-shine ) 50% ,
2616+ var (--skel-base ) 75%
2617+ );
2618+ background-size : 600px 100% ;
2619+ animation : settingsShimmer 1.5s infinite linear;
2620+ border-radius : 3px ;
2621+ display : inline-block;
2622+ }
2623+
2624+ /* Positioning anchors */
2625+ # settingsPage , # devicesPage , # deviceDetailsPage ,
2626+ # eventsPage , # presencePage , # reportPage , # notifications , # wf-content-wrapper , # pluginsPage ,
2627+ # panDetails , # panSessions , # panPresence , # panEvents {
2628+ position : relative;
2629+ }
2630+ # panDetails , # panSessions , # panPresence , # panEvents { min-height : 420px ; }
2631+ # tab_DBTools , # tab_BackupRestore , # tab_Logging , # tab_multiEdit { position : relative; min-height : 320px ; }
2632+
2633+ /* Page-level overlay base */
2634+ # settings-skeleton , # devices-skeleton , # device-details-skeleton ,
2635+ # events-skeleton , # presence-skeleton , # report-skeleton ,
2636+ # notifications-skeleton , # workflows-skeleton , # plugins-skeleton , .skel-tab-pane {
2637+ position : absolute;
2638+ top : 0 ;
2639+ left : 0 ;
2640+ right : 0 ;
2641+ background-color : var (--skel-bg );
2642+ padding : 15px ;
2643+ }
2644+ # settings-skeleton , # devices-skeleton , # device-details-skeleton ,
2645+ # events-skeleton , # presence-skeleton , # report-skeleton ,
2646+ # notifications-skeleton , # workflows-skeleton , # plugins-skeleton { z-index : 50 ; }
2647+ .skel-tab-pane { z-index : 10 ; min-height : 400px ; }
2648+ # settings-skeleton { padding-top : 50px ; padding-left : 20px ; padding-right : 20px ; min-height : 500px ; }
2649+ # devices-skeleton { top : 50px ; min-height : 500px ; }
2650+ # device-details-skeleton { min-height : 600px ; }
2651+ # events-skeleton { top : 50px ; min-height : 500px ; }
2652+ # presence-skeleton { top : 50px ; min-height : 500px ; }
2653+ # report-skeleton { min-height : 400px ; }
2654+ # notifications-skeleton { min-height : 400px ; }
2655+ # workflows-skeleton { top : 50px ; width : 770px ; margin : 0 auto; min-height : 300px ; }
2656+ # plugins-skeleton { padding : 0 ; min-height : 400px ; }
2657+
2658+ /* Bordered containers */
2659+ .skel-overview-panel , .skel-section , .skel-plugin-block ,
2660+ .skel-chart-box , .skel-table-box ,
2661+ .skel-detail-info-panel , .skel-detail-form , .skel-tabs-bar {
2662+ border : 1px solid var (--skel-border );
2663+ }
2664+
2665+ /* Clipped rounded containers */
2666+ .skel-overview-panel , .skel-section , .skel-plugin-block ,
2667+ .skel-chart-box , .skel-table-box , .skel-tile {
2668+ border-radius : 4px ;
2669+ overflow : hidden;
2670+ }
2671+
2672+ /* Section-toned backgrounds */
2673+ .skel-overview-heading , .skel-section-header , .skel-plugin-header ,
2674+ .skel-box-header , .skel-table-header-row , .skel-tile , .skel-tabs-bar {
2675+ background : var (--skel-section );
2676+ }
2677+
2678+ /* Panel-toned backgrounds */
2679+ .skel-overview-body , .skel-overview-header , .skel-plugin-body ,
2680+ .skel-detail-info-panel , .skel-detail-form {
2681+ background : var (--skel-panel-bg );
2682+ }
2683+
2684+ /* Flex rows with vertical centering */
2685+ .skel-overview-heading , .skel-overview-header , .skel-section-header , .skel-plugin-header ,
2686+ .skel-box-header , .skel-table-header-row , .skel-setting-row , .skel-tr , .skel-form-row ,
2687+ .skel-tile-icon-area {
2688+ display : flex;
2689+ align-items : center;
2690+ }
2691+
2692+ /* Standard header bar height + padding */
2693+ .skel-overview-heading , .skel-overview-header , .skel-section-header , .skel-box-header {
2694+ height : 44px ;
2695+ padding : 0 15px ;
2696+ }
2697+
2698+ /* Row separator borders */
2699+ .skel-setting-row , .skel-tr , .skel-form-row { border-bottom : 1px solid var (--skel-border ); }
2700+ .skel-setting-row : last-child , .skel-tr : last-child , .skel-form-row : last-of-type { border-bottom : none; }
2701+
2702+ /* Standard data row spacing */
2703+ .skel-setting-row , .skel-tr { gap : 10px ; padding : 11px 15px ; }
2704+
2705+ /* Thin-line height (14px) */
2706+ .skel-line , .skel-cell-name , .skel-cell-desc , .skel-th , .skel-form-label { height : 14px ; }
2707+
2708+ /* Non-growing primitives */
2709+ .skel-line , .skel-icon-block , .skel-cell-name , .skel-cell-desc , .skel-form-label { flex-shrink : 0 ; }
2710+
2711+ /* Filling cells (flex: 1) */
2712+ .skel-tile-inner , .skel-th , .skel-td , .skel-cell-input , .skel-form-input { flex : 1 ; }
2713+
2714+ /* ----- Settings --------------------------------------------------------- */
2715+ .skel-overview-panel { margin-bottom : 10px ; }
2716+ .skel-overview-heading { gap : 12px ; }
2717+ .skel-overview-body { padding : 12px ; display : flex; gap : 12px ; flex-wrap : wrap; }
2718+ .skel-overview-card { min-width : 100px ; height : 76px ; border-radius : 4px ; }
2719+ .skel-section { margin-bottom : 8px ; }
2720+ .skel-overview-header { gap : 14px ; }
2721+ .skel-section-header { gap : 14px ; }
2722+ .skel-plugin-block { margin : 8px ; }
2723+ .skel-plugin-header { height : 48px ; padding : 0 15px ; gap : 14px ; }
2724+ .skel-icon-block { width : 22px ; height : 16px ; }
2725+ .skel-cell-name { width : 20% ; }
2726+ .skel-cell-desc { width : 36% ; }
2727+ .skel-cell-input { height : 32px ; }
2728+
2729+ /* ----- Devices ---------------------------------------------------------- */
2730+ .skel-tile { display : flex; height : 80px ; }
2731+ .skel-tile-inner { display : flex; flex-direction : column; padding : 12px 15px ; justify-content : center; gap : 10px ; }
2732+ .skel-tile-num { height : 26px ; width : 55% ; }
2733+ .skel-tile-label { height : 13px ; width : 75% ; }
2734+ .skel-tile-icon-area { width : 70px ; justify-content : center; background : var (--skel-base ); opacity : 0.6 ; }
2735+ .skel-tile-icon-shape { width : 38px ; height : 38px ; border-radius : 50% ; }
2736+ .skel-chart-box { margin-bottom : 12px ; }
2737+ .skel-box-header { gap : 12px ; border-bottom : 1px solid var (--skel-border ); }
2738+ .skel-chart-body { height : 220px ; border-radius : 0 ; display : block; width : 100% ; }
2739+ .skel-table-header-row { gap : 10px ; padding : 10px 15px ; border-bottom : 2px solid var (--skel-border ); }
2740+ .skel-td { height : 13px ; }
2741+
2742+ /* ----- Device Details --------------------------------------------------- */
2743+ .skel-detail-header { margin-bottom : 15px ; }
2744+ .skel-detail-title { height : 26px ; width : 42% ; margin-bottom : 14px ; }
2745+ .skel-detail-info-panel { display : flex; gap : 0 ; padding : 14px ; border-radius : 4px ; margin-bottom : 15px ; max-width : 400px ; }
2746+ .skel-tabs-bar { display : flex; gap : 4px ; padding : 8px 10px 0 ; border-radius : 4px 4px 0 0 ; border-bottom : none; }
2747+ .skel-tab { height : 34px ; width : 100px ; border-radius : 4px 4px 0 0 ; flex-shrink : 0 ; }
2748+ .skel-detail-form { border-top : none; border-radius : 0 0 4px 4px ; padding : 20px 15px ; }
2749+ .skel-form-row { gap : 15px ; padding : 9px 0 ; }
2750+ .skel-form-label { width : 18% ; min-width : 100px ; }
2751+ .skel-form-input { height : 32px ; }
2752+ .skel-form-footer { display : flex; justify-content : flex-end; gap : 10px ; padding-top : 15px ; }
2753+ .skel-form-btn { height : 34px ; width : 100px ; }
2754+
2755+ /* ----- Workflows -------------------------------------------------------- */
2756+ .skel-workflow-card { border : 1px solid var (--skel-border ); border-radius : 4px ; margin-bottom : 8px ; overflow : hidden; }
2757+ .skel-workflow-header { display : flex; align-items : center; height : 48px ; padding : 0 15px ; background : var (--skel-section ); }
2758+
2759+ /* ----- Plugins ---------------------------------------------------------- */
2760+ .skel-plugins-wrap { display : flex; gap : 0 ; min-height : 400px ; }
2761+ .skel-plugins-nav { width : 165px ; flex-shrink : 0 ; border-right : 1px solid var (--skel-border ); padding : 8px 0 ; }
2762+ .skel-plugins-nav-item { display : flex; align-items : center; padding : 9px 15px ; border-bottom : 1px solid var (--skel-border ); }
2763+ .skel-plugins-nav-item : last-child { border-bottom : none; }
2764+ .skel-plugins-body { flex : 1 ; padding : 0 ; }
2765+
2766+ /* ----- Systeminfo tabs -------------------------------------------------- */
2767+ .skel-info-tab { padding : 15px ; min-height : 360px ; }
2768+
2769+ /* ===== /Loading Skeleton ===== */
2770+
0 commit comments