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);