diff --git a/agents/meshcore.js b/agents/meshcore.js
index f2c95446..cfcbf7f0 100644
--- a/agents/meshcore.js
+++ b/agents/meshcore.js
@@ -2486,6 +2486,7 @@ function createMeshCore(agent) {
// Open a web browser to a specified URL on current user's desktop
function openUserDesktopUrl(url) {
+ if ((url.toLowerCase().startsWith('http://') == false) || (url.toLowerCase().startsWith('https://') == false)) { return null; }
var child = null;
try {
switch (process.platform) {
diff --git a/meshuser.js b/meshuser.js
index c13bbacc..8ec1aab3 100644
--- a/meshuser.js
+++ b/meshuser.js
@@ -2631,7 +2631,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
var url = "http" + (args.notls ? '' : 's') + "://" + parent.getWebServerName(domain) + ":" + httpsPort + "/" + xdomain + "messenger?id=meshmessenger/" + encodeURIComponent(command.nodeid) + "/" + encodeURIComponent(user._id) + "&title=" + encodeURIComponent(user.name);
// Create the notification message
- routeCommandToNode({ "action": "openUrl", "nodeid": command.nodeid, "userid": user._id, "username": user.name, "url": url });
+ routeCommandToNode({ 'action': 'openUrl', 'nodeid': command.nodeid, 'userid': user._id, 'username': user.name, 'url': url });
});
break;
}
diff --git a/translate/translate.json b/translate/translate.json
index d22d8bb9..8884717e 100644
--- a/translate/translate.json
+++ b/translate/translate.json
@@ -495,7 +495,7 @@
"zh-chs": ",",
"zh-cht": ",",
"xloc": [
- "default-mobile.handlebars->9->451",
+ "default-mobile.handlebars->9->455",
"default.handlebars->27->1494"
]
},
@@ -847,7 +847,7 @@
"zh-cht": "1個位元組",
"xloc": [
"default-mobile.handlebars->9->118",
- "default-mobile.handlebars->9->455",
+ "default-mobile.handlebars->9->459",
"default.handlebars->27->1559",
"download.handlebars->3->1",
"download2.handlebars->5->1"
@@ -3455,7 +3455,7 @@
"zh-chs": "将用户添加到设备组",
"zh-cht": "將用戶新增到裝置群",
"xloc": [
- "default-mobile.handlebars->9->429"
+ "default-mobile.handlebars->9->431"
]
},
{
@@ -4070,7 +4070,7 @@
"zh-chs": "代理控制台",
"zh-cht": "代理控制台",
"xloc": [
- "default-mobile.handlebars->9->435",
+ "default-mobile.handlebars->9->437",
"default.handlebars->27->1475"
]
},
@@ -7009,7 +7009,7 @@
"zh-cht": "聊天並通知",
"xloc": [
"default-mobile.handlebars->9->427",
- "default-mobile.handlebars->9->445",
+ "default-mobile.handlebars->9->447",
"default.handlebars->27->1450",
"default.handlebars->27->1486"
]
@@ -7889,6 +7889,7 @@
{
"en": "Commands",
"xloc": [
+ "default-mobile.handlebars->9->449",
"default.handlebars->27->1488",
"default.handlebars->27->690",
"default.handlebars->27->711"
@@ -8517,7 +8518,7 @@
"zh-chs": "确认删除用户{0}?",
"zh-cht": "確認刪除用戶{0}?",
"xloc": [
- "default-mobile.handlebars->9->454"
+ "default-mobile.handlebars->9->458"
]
},
{
@@ -11074,7 +11075,7 @@
"zh-chs": "设备组用户",
"zh-cht": "裝置群用戶",
"xloc": [
- "default-mobile.handlebars->9->452",
+ "default-mobile.handlebars->9->456",
"default.handlebars->27->1495"
]
},
@@ -13178,7 +13179,7 @@
"xloc": [
"default-mobile.handlebars->9->411",
"default-mobile.handlebars->9->413",
- "default-mobile.handlebars->9->431",
+ "default-mobile.handlebars->9->433",
"default.handlebars->27->1403",
"default.handlebars->27->1435",
"default.handlebars->27->1459",
@@ -13388,7 +13389,7 @@
"zh-chs": "编辑笔记",
"zh-cht": "編輯筆記",
"xloc": [
- "default-mobile.handlebars->9->438",
+ "default-mobile.handlebars->9->440",
"default.handlebars->27->1478"
]
},
@@ -15815,7 +15816,7 @@
"default-mobile.handlebars->9->105",
"default-mobile.handlebars->9->403",
"default-mobile.handlebars->9->412",
- "default-mobile.handlebars->9->430",
+ "default-mobile.handlebars->9->432",
"default.handlebars->27->1287",
"default.handlebars->27->1434",
"default.handlebars->27->1791"
@@ -20460,7 +20461,7 @@
"zh-chs": "有限输入",
"zh-cht": "有限輸入",
"xloc": [
- "default-mobile.handlebars->9->443",
+ "default-mobile.handlebars->9->445",
"default.handlebars->27->1484",
"default.handlebars->27->680",
"default.handlebars->27->701"
@@ -21966,7 +21967,7 @@
"zh-cht": "管理裝置群電腦",
"xloc": [
"default-mobile.handlebars->9->415",
- "default-mobile.handlebars->9->433",
+ "default-mobile.handlebars->9->435",
"default.handlebars->27->1437",
"default.handlebars->27->1473"
]
@@ -21989,7 +21990,7 @@
"zh-cht": "管理裝置群用戶",
"xloc": [
"default-mobile.handlebars->9->414",
- "default-mobile.handlebars->9->432",
+ "default-mobile.handlebars->9->434",
"default.handlebars->27->1436",
"default.handlebars->27->1472"
]
@@ -24304,7 +24305,7 @@
"zh-chs": "没有档案",
"zh-cht": "沒有檔案",
"xloc": [
- "default-mobile.handlebars->9->441",
+ "default-mobile.handlebars->9->443",
"default.handlebars->27->1482",
"default.handlebars->27->678",
"default.handlebars->27->699"
@@ -24349,7 +24350,7 @@
"zh-cht": "沒有Intel® AMT",
"xloc": [
"default-mobile.handlebars->9->421",
- "default-mobile.handlebars->9->442",
+ "default-mobile.handlebars->9->444",
"default.handlebars->27->1444",
"default.handlebars->27->1483"
]
@@ -24495,7 +24496,7 @@
"xloc": [
"default-mobile.handlebars->9->106",
"default-mobile.handlebars->9->404",
- "default-mobile.handlebars->9->447",
+ "default-mobile.handlebars->9->451",
"default.handlebars->27->1288",
"default.handlebars->27->1490",
"default.handlebars->27->692",
@@ -24541,7 +24542,7 @@
"zh-chs": "没有终端",
"zh-cht": "沒有終端",
"xloc": [
- "default-mobile.handlebars->9->440",
+ "default-mobile.handlebars->9->442",
"default.handlebars->27->1481",
"default.handlebars->27->677",
"default.handlebars->27->698"
@@ -26929,7 +26930,7 @@
"zh-chs": "权限",
"zh-cht": "權限",
"xloc": [
- "default-mobile.handlebars->9->450",
+ "default-mobile.handlebars->9->454",
"default.handlebars->27->1493",
"default.handlebars->27->1703"
]
@@ -28683,6 +28684,7 @@
{
"en": "Remote Commands",
"xloc": [
+ "default-mobile.handlebars->9->429",
"default.handlebars->27->1452"
]
},
@@ -28704,7 +28706,7 @@
"zh-cht": "遙控",
"xloc": [
"default-mobile.handlebars->9->416",
- "default-mobile.handlebars->9->434",
+ "default-mobile.handlebars->9->436",
"default.handlebars->27->1438",
"default.handlebars->27->1474"
]
@@ -28896,7 +28898,7 @@
"zh-chs": "远程网格用户",
"zh-cht": "遠程網格用戶",
"xloc": [
- "default-mobile.handlebars->9->453"
+ "default-mobile.handlebars->9->457"
]
},
{
@@ -28934,7 +28936,7 @@
"zh-cht": "僅遠程查看",
"xloc": [
"default-mobile.handlebars->9->417",
- "default-mobile.handlebars->9->439",
+ "default-mobile.handlebars->9->441",
"default.handlebars->27->1439",
"default.handlebars->27->1479"
]
@@ -29823,6 +29825,7 @@
{
"en": "Reset / Power Off",
"xloc": [
+ "default-mobile.handlebars->9->430",
"default.handlebars->27->1453"
]
},
@@ -29935,6 +29938,7 @@
{
"en": "Reset/Off",
"xloc": [
+ "default-mobile.handlebars->9->450",
"default.handlebars->27->1489",
"default.handlebars->27->691",
"default.handlebars->27->712"
@@ -31278,7 +31282,7 @@
"zh-chs": "仅自我事件",
"zh-cht": "僅自我事件",
"xloc": [
- "default-mobile.handlebars->9->444",
+ "default-mobile.handlebars->9->446",
"default.handlebars->27->1485"
]
},
@@ -31767,7 +31771,7 @@
"zh-cht": "伺服器檔案",
"xloc": [
"default-mobile.handlebars->9->423",
- "default-mobile.handlebars->9->436",
+ "default-mobile.handlebars->9->438",
"default.handlebars->27->1446",
"default.handlebars->27->1476",
"default.handlebars->27->1789",
@@ -36898,7 +36902,7 @@
"zh-chs": "卸载",
"zh-cht": "卸載",
"xloc": [
- "default-mobile.handlebars->9->446",
+ "default-mobile.handlebars->9->448",
"default.handlebars->27->1487",
"default.handlebars->27->689",
"default.handlebars->27->710"
@@ -37814,7 +37818,7 @@
"zh-chs": "用户识别码",
"zh-cht": "用戶識別碼",
"xloc": [
- "default-mobile.handlebars->9->449"
+ "default-mobile.handlebars->9->453"
]
},
{
@@ -37897,7 +37901,7 @@
"zh-chs": "用户名",
"zh-cht": "用戶名",
"xloc": [
- "default-mobile.handlebars->9->448",
+ "default-mobile.handlebars->9->452",
"default.handlebars->27->1491"
]
},
@@ -38867,7 +38871,7 @@
"zh-cht": "喚醒裝置",
"xloc": [
"default-mobile.handlebars->9->424",
- "default-mobile.handlebars->9->437",
+ "default-mobile.handlebars->9->439",
"default.handlebars->27->1447",
"default.handlebars->27->1477"
]
diff --git a/views/default-mobile.handlebars b/views/default-mobile.handlebars
index 0003bcb9..6c74d956 100644
--- a/views/default-mobile.handlebars
+++ b/views/default-mobile.handlebars
@@ -4162,6 +4162,8 @@
x += '
';
x += '
';
x += '
';
+ x += '
';
+ x += '
';
x += '';
setDialogMode(2, "Add User to Device Group", 3, p20showAddMeshUserDialogEx, x);
p20validateAddMeshUserDialog();
@@ -4188,6 +4190,8 @@
QE('p20noamt', nc && Q('p20remotecontrol').checked);
QE('p20chatnotify', nc);
QE('p20uninstall', nc);
+ QE('p20commands', nc);
+ QE('p20resetoff', nc);
}
function p20showAddMeshUserDialogEx() {
@@ -4209,6 +4213,8 @@
if (Q('p20limitevents').checked == true) meshadmin += 8192;
if (Q('p20chatnotify').checked == true) meshadmin += 16384;
if (Q('p20uninstall').checked == true) meshadmin += 32768;
+ if (Q('p20commands').checked == true) meshadmin += 131072;
+ if (Q('p20resetoff').checked == true) meshadmin += 262144;
}
var users = Q('dp20username').value.split(','), users2 = [];
for (var i in users) { users2.push(users[i].trim()); }
@@ -4236,6 +4242,8 @@
if ((meshrights & 8192) != 0) r.push("Self Events Only");
if ((meshrights & 16384) != 0) r.push("Chat & Notify");
if ((meshrights & 32768) != 0) r.push("Uninstall");
+ if ((meshrights & 131072) != 0) r.push("Commands");
+ if ((meshrights & 262144) != 0) r.push("Reset/Off");
}
if (r.length == 0) { r.push("No Rights"); }
var buttons = 1, uname = userid.split('/')[2];
diff --git a/views/default.handlebars b/views/default.handlebars
index 7628e7e8..2e1c204a 100644
--- a/views/default.handlebars
+++ b/views/default.handlebars
@@ -6039,8 +6039,14 @@
function deviceUrlFunction() {
if (xxdialogMode) return;
- setDialogMode(2, "Open Page on Device", 3, deviceUrlFunctionEx, '');
+ setDialogMode(2, "Open Page on Device", 3, deviceUrlFunctionEx, '');
Q('d2devurl').focus();
+ deviceUrlFunctionValidate();
+ }
+
+ function deviceUrlFunctionValidate() {
+ var x = Q('d2devurl').value.toLowerCase();
+ QE('idx_dlgOkButton', ((x.startsWith('http://') && (x.length > 7)) || (x.startsWith('https://') && (x.length > 8))));
}
function deviceUrlFunctionEx() {