add filter to url (#5535)

Simon Smith committed Nov 12, 2023 at 18:14 UTC d80a74b9150f865ed9f3007720e417b731442b56
2 files changed +24 -3
public/scripts/common-0.0.1.js
+1 -1
@@ -125,7 +125,7 @@ function parseUriArgs(decodeUrl) {
125 name = arg.substring(0, i);
126 r[name] = arg.substring(i + 1);
127 if (decodeUrl) { r[name] = decodeURIComponent(arg.substring(i + 1)); }
128 - if (!isSafeString(r[name])) { delete r[name]; } else { var x = parseInt(r[name]); if (x == r[name]) { r[name] = x; } }
128 + if (!isSafeString2(r[name])) { delete r[name]; } else { var x = parseInt(r[name]); if (x == r[name]) { r[name] = x; } }
129 }
130 return r;
131 }
views/default.handlebars
+23 -2
@@ -1644,7 +1644,10 @@
1644 QV('DeskESC', browserfullscreen);
1645 if ((xtermfit != null) && (xxcurrentView == 12)) { xtermfit.fit(); }
1646 }
1647 - setTimeout(function() { mainUpdate(512); }, 200);
1647 + setTimeout(function() {
1648 + if (urlargs.filter) { Q('SearchInput').value = urlargs.filter; Q('KvmSearchInput').value = urlargs.filter; }
1649 + mainUpdate(512);
1650 + }, 200);
1651
1652 // Connect to the mesh server
1653 meshserver = MeshServerCreateControl(domainUrl);
@@ -5019,7 +5022,25 @@
5022 }
5023 function disconnectAllKvmFunction() { if (xxdialogMode) return false; for (var nodeid in multiDesktop) { multiDesktop[nodeid].Stop(); } multiDesktop = {}; }
5024 function onMultiDesktopStateChange(desk, state) { try { QH('skvmid_' + desk.shortid, ["Disconnected", "Connecting...", "Setup...", '', ''][state]); } catch (ex) {} }
5022 - function onDeviceSearchChanged(e) { if (e != null) { if (e.target.id == 'SearchInput') { Q('KvmSearchInput').value = Q('SearchInput').value; } else { Q('SearchInput').value = Q('KvmSearchInput').value; } } mainUpdate(5); }
5025 + function onDeviceSearchChanged(e) {
5026 + var url = new URL(window.location.href);
5027 + if (e != null) {
5028 + if (e.target.id == 'SearchInput') {
5029 + Q('KvmSearchInput').value = Q('SearchInput').value;
5030 + } else {
5031 + Q('SearchInput').value = Q('KvmSearchInput').value;
5032 + }
5033 + url.searchParams.set('filter', e.target.value);
5034 + if(urlargs.filter){ urlargs.filter = e.target.value; }
5035 + }else{
5036 + url.searchParams.delete('filter');
5037 + if(urlargs.filter){ delete urlargs.filter; }
5038 + }
5039 + if (((features & 0x10000000) == 0) && (xxcurrentView > 0)) {
5040 + try { window.history.replaceState({}, document.title, decodeURIComponent(url.toString())); } catch(e) { }
5041 + }
5042 + mainUpdate(5);
5043 + }
5044
5045 function showMultiDesktopSettings() {
5046 QV('td7amtkvm', false);