WebApp NightMode and FooterBar are now server side state.
Ylian Saint-Hilaire committed
Feb 27, 2020 at 16:34 UTC
b85e7495a758f43158da5b7574363546596992f4
2 files changed
+12
-8
views/default.handlebars
+11
-7
@@ -1181,8 +1181,8 @@
1181
var uiMode = parseInt(getstore('uiMode', 1));
1182
var webPageStackMenu = false;
1183
var webPageFullScreen = true;
1184
- var nightMode = (getstore('_nightMode', '0') == '1');
1185
- var footerBar = (getstore('_footerBar', '1') == '1');
1184
+ var nightMode = (getstore('nightMode', '0') == '1');
1185
+ var footerBar = (getstore('footerBar', '1') == '1');
1186
var sessionActivity = Date.now();
1187
var updateSessionTimer = null;
1188
var pluginHandlerBuilder = {{{pluginHandler}}};
@@ -1489,12 +1489,12 @@
1489
function toggleNightMode() {
1490
nightMode = !nightMode;
1491
if (nightMode) { QC('body').add('night'); QS('body')['background-color'] = '#000'; } else { QC('body').remove('night'); QS('body')['background-color'] = '#d3d9d6'; }
1492
- putstore('_nightMode', nightMode?'1':'0');
1492
+ putstore('nightMode', nightMode?'1':'0');
1493
}
1494
1495
function toggleFooterBarMode() {
1496
footerBar = !footerBar;
1497
- putstore('_footerBar', footerBar?'1':'0');
1497
+ putstore('footerBar', footerBar?'1':'0');
1498
QS('container')['grid-template-rows'] = null;
1499
QS('container')['-ms-grid-rows'] = null;
1500
adjustPanels();
@@ -2232,6 +2232,8 @@
2232
var oldUiMode = localStorage.getItem('uiMode');
2233
var oldSort = localStorage.getItem('sort');
2234
var oldLoctag = localStorage.getItem('loctag');
2235
+ var oldNightMode = localStorage.getItem('nightMode');
2236
+ var oldFooterBar = localStorage.getItem('footerBar');
2237
2238
var webstate = JSON.parse(message.event.state);
2239
for (var i in webstate) { localStorage.setItem(i, webstate[i]); }
@@ -2242,6 +2244,8 @@
2244
if ((webstate.uiMode != null) && (webstate.uiMode != oldUiMode)) { userInterfaceSelectMenu(parseInt(webstate.uiMode)); }
2245
if ((webstate.sort != null) && (webstate.sort != oldSort)) { document.getElementById('sortselect').selectedIndex = sort = parseInt(webstate.sort); masterUpdate(6); }
2246
if ((webstate.loctag != null) && (webstate.loctag != oldLoctag)) { if (webstate.loctag != null) { args.locale = webstate.loctag; } else { delete args.locale; } masterUpdate(0xFFFFFFFF); }
2247
+ if ((webstate.nightMode != null) && (webstate.nightMode != oldNightMode)) { nightMode = (webstate.nightMode == '1'); if (nightMode) { QC('body').add('night'); QS('body')['background-color'] = '#000'; } else { QC('body').remove('night'); QS('body')['background-color'] = '#d3d9d6'; } }
2248
+ if ((webstate.footerBar != null) && (webstate.footerBar != oldFooterBar)) { footerBar = (webstate.footerBar == '1'); QS('container')['grid-template-rows'] = null; QS('container')['-ms-grid-rows'] = null; adjustPanels(); }
2249
}
2250
} catch (ex) {}
2251
break;
@@ -11050,11 +11054,11 @@
11054
};
11055
TextEncoder.prototype.toString = function(){return '[object TextEncoder]'};
11056
try {
11053
- Object.defineProperty(TextEncoder.prototype,"encoding",{
11054
- get:function(){ if(TextEncoder.prototype.isPrototypeOf(this)) return'utf-8'; else throw TypeError("Illegal invocation"); }
11057
+ Object.defineProperty(TextEncoder.prototype,'encoding',{
11058
+ get:function(){ if(TextEncoder.prototype.isPrototypeOf(this)) return'utf-8'; else throw TypeError('Illegal invocation'); }
11059
});
11060
} catch(e) { TextEncoder.prototype.encoding = 'utf-8'; }
11057
- if (typeof Symbol!=="undefined")TextEncoder.prototype[Symbol.toStringTag]='TextEncoder';
11061
+ if (typeof Symbol!=='undefined')TextEncoder.prototype[Symbol.toStringTag]='TextEncoder';
11062
}
11063
11064
function joinPaths() { var x = []; for (var i in arguments) { var w = arguments[i]; if ((w != null) && (w != '')) { while (w.endsWith('/') || w.endsWith('\\')) { w = w.substring(0, w.length - 1); } while (w.startsWith('/') || w.startsWith('\\')) { w = w.substring(1); } x.push(w); } } return x.join('/'); }
webserver.js
+1
-1
@@ -4230,7 +4230,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
4230
}
4231
4232
// Filter the user web site and only output state that we need to keep
4233
- const acceptableUserWebStateStrings = ['webPageStackMenu', 'notifications', 'deviceView', 'nightMode', 'webPageFullScreen', 'search', 'showRealNames', 'sort', 'deskAspectRatio', 'viewsize', 'DeskControl', 'uiMode'];
4233
+ const acceptableUserWebStateStrings = ['webPageStackMenu', 'notifications', 'deviceView', 'nightMode', 'webPageFullScreen', 'search', 'showRealNames', 'sort', 'deskAspectRatio', 'viewsize', 'DeskControl', 'uiMode', 'footerBar'];
4234
const acceptableUserWebStateDesktopStrings = ['encoding', 'showfocus', 'showmouse', 'showcad', 'limitFrameRate', 'noMouseRotate', 'quality', 'scaling']
4235
obj.filterUserWebState = function (state) {
4236
if (typeof state == 'string') { try { state = JSON.parse(state); } catch (ex) { return null; } }