More work on user device rights.
Ylian Saint-Hilaire committed
Mar 29, 2020 at 22:40 UTC
5f762550d20dcd6203aa1cdcc96e5957edae548a
7 files changed
+1703
-1572
agents/meshcore.js
+1
-1
@@ -794,7 +794,7 @@ function createMeshCore(agent) {
794
if (process.platform != 'win32') break;
795
var p = require('user-sessions').enumerateUsers();
796
p.sessionid = data.sessionid;
797
- p.then(function (u) { mesh.SendCommand({ action: 'msg', type: 'userSessions', sessionid: u.sessionid, data: u }); });
797
+ p.then(function (u) { mesh.SendCommand({ action: 'msg', type: 'userSessions', sessionid: data.sessionid, data: u }); });
798
break;
799
}
800
default:
db.js
+38
-3
@@ -803,7 +803,17 @@ module.exports.CreateDB = function (parent, func) {
803
obj.GetAll = function (func) { sqlDbQuery('SELECT domain, doc FROM meshcentral.main', null, func); }
804
obj.GetHash = function (id, func) { sqlDbQuery('SELECT doc FROM meshcentral.main WHERE id = ?', [id], func); }
805
obj.GetAllTypeNoTypeField = function (type, domain, func) { sqlDbQuery('SELECT doc FROM meshcentral.main WHERE type = ? AND domain = ?', [type, domain], function (err, docs) { if (err == null) { for (var i in docs) { delete docs[i].type } } func(err, docs); }); };
806
- obj.GetAllTypeNoTypeFieldMeshFiltered = function (meshes, domain, type, id, func) { if (id && (id != '')) { sqlDbQuery('SELECT doc FROM meshcentral.main WHERE id = ? AND type = ? AND domain = ? AND extra IN (?)', [id, type, domain, meshes], function (err, docs) { if (err == null) { for (var i in docs) { delete docs[i].type } } func(err, docs); }); } else { sqlDbQuery('SELECT doc FROM meshcentral.main WHERE type = ? AND domain = ? AND extra IN (?)', [type, domain, meshes], function (err, docs) { if (err == null) { for (var i in docs) { delete docs[i].type } } func(err, docs); }); } };
806
+ obj.GetAllTypeNoTypeFieldMeshFiltered = function (meshes, extrasids, domain, type, id, func) {
807
+ if (id && (id != '')) {
808
+ sqlDbQuery('SELECT doc FROM meshcentral.main WHERE id = ? AND type = ? AND domain = ? AND extra IN (?)', [id, type, domain, meshes], function (err, docs) { if (err == null) { for (var i in docs) { delete docs[i].type } } func(err, docs); });
809
+ } else {
810
+ if (extrasids == null) {
811
+ sqlDbQuery('SELECT doc FROM meshcentral.main WHERE type = ? AND domain = ? AND extra IN (?)', [type, domain, meshes], function (err, docs) { if (err == null) { for (var i in docs) { delete docs[i].type } } func(err, docs); });
812
+ } else {
813
+ sqlDbQuery('SELECT doc FROM meshcentral.main WHERE type = ? AND domain = ? AND (extra IN (?) OR id IN (?))', [type, domain, meshes, extrasids], function (err, docs) { if (err == null) { for (var i in docs) { delete docs[i].type } } func(err, docs); });
814
+ }
815
+ }
816
+ };
817
obj.GetAllType = function (type, func) { sqlDbQuery('SELECT doc FROM meshcentral.main WHERE type = ?', [type], func); }
818
obj.GetAllIdsOfType = function (ids, domain, type, func) { sqlDbQuery('SELECT doc FROM meshcentral.main WHERE id IN (?) AND domain = ? AND type = ?', [ids, domain, type], func); }
819
obj.GetUserWithEmail = function (domain, email, func) { sqlDbQuery('SELECT doc FROM meshcentral.main WHERE domain = ? AND extra = ?', [domain, 'email/' + email], func); }
@@ -952,7 +962,17 @@ module.exports.CreateDB = function (parent, func) {
962
obj.GetAll = function (func) { obj.file.find({}).toArray(function (err, docs) { func(err, performTypedRecordDecrypt(docs)); }); };
963
obj.GetHash = function (id, func) { obj.file.find({ _id: id }).project({ _id: 0, hash: 1 }).toArray(function (err, docs) { func(err, performTypedRecordDecrypt(docs)); }); };
964
obj.GetAllTypeNoTypeField = function (type, domain, func) { obj.file.find({ type: type, domain: domain }).project({ type: 0 }).toArray(function (err, docs) { func(err, performTypedRecordDecrypt(docs)); }); };
955
- obj.GetAllTypeNoTypeFieldMeshFiltered = function (meshes, domain, type, id, func) { var x = { type: type, domain: domain, meshid: { $in: meshes } }; if (id) { x._id = id; } obj.file.find(x, { type: 0 }).toArray(function (err, docs) { func(err, performTypedRecordDecrypt(docs)); }); };
965
+ obj.GetAllTypeNoTypeFieldMeshFiltered = function (meshes, extrasids, domain, type, id, func) {
966
+ if (extrasids == null) {
967
+ var x = { type: type, domain: domain, meshid: { $in: meshes } };
968
+ if (id) { x._id = id; }
969
+ obj.file.find(x, { type: 0 }).toArray(function (err, docs) { func(err, performTypedRecordDecrypt(docs)); });
970
+ } else {
971
+ var x = { type: type, domain: domain, $or: [ { meshid: { $in: meshes } }, { _id: { $in: extrasids } } ] };
972
+ if (id) { x._id = id; }
973
+ obj.file.find(x, { type: 0 }).toArray(function (err, docs) { func(err, performTypedRecordDecrypt(docs)); });
974
+ }
975
+ };
976
obj.GetAllType = function (type, func) { obj.file.find({ type: type }).toArray(function (err, docs) { func(err, performTypedRecordDecrypt(docs)); }); };
977
obj.GetAllIdsOfType = function (ids, domain, type, func) { obj.file.find({ type: type, domain: domain, _id: { $in: ids } }).toArray(function (err, docs) { func(err, performTypedRecordDecrypt(docs)); }); };
978
obj.GetUserWithEmail = function (domain, email, func) { obj.file.find({ type: 'user', domain: domain, email: email }).project({ type: 0 }).toArray(function (err, docs) { func(err, performTypedRecordDecrypt(docs)); }); };
@@ -1090,7 +1110,22 @@ module.exports.CreateDB = function (parent, func) {
1110
obj.GetAll = function (func) { obj.file.find({}, function (err, docs) { func(err, performTypedRecordDecrypt(docs)); }); };
1111
obj.GetHash = function (id, func) { obj.file.find({ _id: id }, { _id: 0, hash: 1 }, func); };
1112
obj.GetAllTypeNoTypeField = function (type, domain, func) { obj.file.find({ type: type, domain: domain }, { type: 0 }, function (err, docs) { func(err, performTypedRecordDecrypt(docs)); }); };
1093
- obj.GetAllTypeNoTypeFieldMeshFiltered = function (meshes, domain, type, id, func) { var x = { type: type, domain: domain, meshid: { $in: meshes } }; if (id) { x._id = id; } obj.file.find(x, { type: 0 }, function (err, docs) { func(err, performTypedRecordDecrypt(docs)); }); };
1113
+ //obj.GetAllTypeNoTypeFieldMeshFiltered = function (meshes, domain, type, id, func) {
1114
+ //var x = { type: type, domain: domain, meshid: { $in: meshes } };
1115
+ //if (id) { x._id = id; }
1116
+ //obj.file.find(x, { type: 0 }, function (err, docs) { func(err, performTypedRecordDecrypt(docs)); });
1117
+ //};
1118
+ obj.GetAllTypeNoTypeFieldMeshFiltered = function (meshes, extrasids, domain, type, id, func) {
1119
+ if (extrasids == null) {
1120
+ var x = { type: type, domain: domain, meshid: { $in: meshes } };
1121
+ if (id) { x._id = id; }
1122
+ obj.file.find(x, { type: 0 }, function (err, docs) { func(err, performTypedRecordDecrypt(docs)); });
1123
+ } else {
1124
+ var x = { type: type, domain: domain, $or: [{ meshid: { $in: meshes } }, { _id: { $in: extrasids } }] };
1125
+ if (id) { x._id = id; }
1126
+ obj.file.find(x, { type: 0 }, function (err, docs) { func(err, performTypedRecordDecrypt(docs)); });
1127
+ }
1128
+ };
1129
obj.GetAllType = function (type, func) { obj.file.find({ type: type }, function (err, docs) { func(err, performTypedRecordDecrypt(docs)); }); };
1130
obj.GetAllIdsOfType = function (ids, domain, type, func) { obj.file.find({ type: type, domain: domain, _id: { $in: ids } }, function (err, docs) { func(err, performTypedRecordDecrypt(docs)); }); };
1131
obj.GetUserWithEmail = function (domain, email, func) { obj.file.find({ type: 'user', domain: domain, email: email }, { type: 0 }, function (err, docs) { func(err, performTypedRecordDecrypt(docs)); }); };
meshcentral.js
+4
-4
@@ -1551,7 +1551,7 @@ function CreateMeshCentralServer(config, args) {
1551
1552
// Event any changes on this server only
1553
if ((newConnectivity != oldPowerState) || (newPowerState != oldPowerState)) {
1554
- obj.DispatchEvent(obj.webserver.CreateMeshDispatchTargets(meshid), obj, { action: 'nodeconnect', meshid: meshid, nodeid: nodeid, conn: newConnectivity, pwr: newPowerState, nolog: 1, nopeers: 1 });
1554
+ obj.DispatchEvent(obj.webserver.CreateMeshDispatchTargets(meshid, [nodeid]), obj, { action: 'nodeconnect', meshid: meshid, nodeid: nodeid, conn: newConnectivity, pwr: newPowerState, nolog: 1, nopeers: 1 });
1555
}
1556
}
1557
};
@@ -1599,8 +1599,8 @@ function CreateMeshCentralServer(config, args) {
1599
}
1600
1601
// Event the node connection change
1602
- if (eventConnectChange == 1) { obj.DispatchEvent(obj.webserver.CreateMeshDispatchTargets(meshid), obj, { action: 'nodeconnect', meshid: meshid, nodeid: nodeid, conn: state.connectivity, pwr: state.powerState, ct: connectTime, nolog: 1, nopeers: 1 }); }
1603
- } else {
1602
+ if (eventConnectChange == 1) { obj.DispatchEvent(obj.webserver.CreateMeshDispatchTargets(meshid, [nodeid]), obj, { action: 'nodeconnect', meshid: meshid, nodeid: nodeid, conn: state.connectivity, pwr: state.powerState, ct: connectTime, nolog: 1, nopeers: 1 }); }
1603
+ } else {nodeid
1604
// Multi server mode
1605
1606
// Change the node connection state
@@ -1672,7 +1672,7 @@ function CreateMeshCentralServer(config, args) {
1672
}
1673
1674
// Event the node connection change
1675
- if (eventConnectChange == 1) { obj.DispatchEvent(obj.webserver.CreateMeshDispatchTargets(meshid), obj, { action: 'nodeconnect', meshid: meshid, nodeid: nodeid, conn: state.connectivity, pwr: state.powerState, nolog: 1, nopeers: 1 }); }
1675
+ if (eventConnectChange == 1) { obj.DispatchEvent(obj.webserver.CreateMeshDispatchTargets(meshid, [nodeid]), obj, { action: 'nodeconnect', meshid: meshid, nodeid: nodeid, conn: state.connectivity, pwr: state.powerState, nolog: 1, nopeers: 1 }); }
1676
} else {
1677
// Multi server mode
1678
meshuser.js
+11
-5
@@ -162,8 +162,9 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
162
var agent = parent.wsagents[command.nodeid];
163
if (agent != null) {
164
// Check if we have permission to send a message to that node
165
- var meshrights = parent.GetMeshRights(user, agent.dbMeshKey); // TODO: We will need to get the rights for this specific node.
165
+ //var meshrights = parent.GetMeshRights(user, agent.dbMeshKey); // TODO: We will need to get the rights for this specific node.
166
var mesh = parent.meshes[agent.dbMeshKey];
167
+ var meshrights = parent.GetNodeRights(user, mesh, agent.dbNodeKey);
168
if ((mesh != null) && ((meshrights & MESHRIGHT_REMOTECONTROL) || (meshrights & MESHRIGHT_REMOTEVIEWONLY))) { // 8 is remote control permission, 256 is desktop read only
169
command.sessionid = ws.sessionId; // Set the session id, required for responses
170
command.rights = meshrights; // Add user rights flags to the message
@@ -181,8 +182,9 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
182
var routing = parent.parent.GetRoutingServerId(command.nodeid, 1); // 1 = MeshAgent routing type
183
if (routing != null) {
184
// Check if we have permission to send a message to that node
184
- var meshrights = parent.GetMeshRights(user, routing.meshid);
185
+ //var meshrights = parent.GetMeshRights(user, routing.meshid); // TODO: We will need to get the rights for this specific node.
186
var mesh = parent.meshes[routing.meshid];
187
+ var meshrights = parent.GetNodeRights(user, mesh, agent.dbNodeKey);
188
if ((mesh != null) && ((meshrights & MESHRIGHT_REMOTECONTROL) || (meshrights & MESHRIGHT_REMOTEVIEWONLY))) { // 8 is remote control permission
189
command.fromSessionid = ws.sessionId; // Set the session id, required for responses
190
command.rights = meshrights; // Add user rights flags to the message
@@ -473,11 +475,14 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
475
}
476
case 'nodes':
477
{
476
- var links = [], err = null;
478
+ var links = [], extraids = null, err = null;
479
try {
480
if (command.meshid == null) {
481
// Request a list of all meshes this user as rights to
482
links = parent.GetAllMeshIdWithRights(user);
483
+
484
+ // Add any nodes with direct rights
485
+ if (obj.user.links != null) { for (var i in obj.user.links) { if (i.startsWith('node/')) { if (extraids == null) { extraids = []; } extraids.push(i); } } }
486
} else {
487
// Request list of all nodes for one specific meshid
488
meshid = command.meshid;
@@ -495,7 +500,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
500
}
501
502
// Request a list of all nodes
498
- db.GetAllTypeNoTypeFieldMeshFiltered(links, domain.id, 'node', command.id, function (err, docs) {
503
+ db.GetAllTypeNoTypeFieldMeshFiltered(links, extraids, domain.id, 'node', command.id, function (err, docs) {
504
if (docs == null) { docs = []; }
505
var r = {};
506
for (i in docs) {
@@ -2500,10 +2505,11 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
2505
2506
// Save the user to the database
2507
db.SetUser(newuser);
2508
+ parent.parent.DispatchEvent([newuser], obj, 'resubscribe');
2509
2510
// Notify user change
2511
var targets = ['*', 'server-users', newuserid];
2506
- var event = { etype: 'user', userid: user._id, username: user.name, action: 'accountchange', msg: (command.rights == 0) ? ('Removed user device rights for ' + newuser.name) : ('Changed user device rights for ' + newuser.name), domain: domain.id, account: parent.CloneSafeUser(newuser) };
2512
+ var event = { etype: 'user', userid: user._id, username: user.name, action: 'accountchange', msg: (command.rights == 0) ? ('Removed user device rights for ' + newuser.name) : ('Changed user device rights for ' + newuser.name), domain: domain.id, account: parent.CloneSafeUser(newuser), nodeListChange: newuserid };
2513
if (db.changeStream) { event.noact = 1; } // If DB change stream is active, don't use this event to change the user. Another event will come.
2514
parent.parent.DispatchEvent(targets, obj, event);
2515
}
translate/translate.json
+1458
-1433
@@ -14,8 +14,8 @@
14
"ru": " + CIRA",
15
"zh-chs": " + CIRA",
16
"xloc": [
17
- "default.handlebars->27->1090",
18
- "default.handlebars->27->1092"
17
+ "default.handlebars->27->1110",
18
+ "default.handlebars->27->1112"
19
]
20
},
21
{
@@ -236,7 +236,7 @@
236
"ru": " Может быть использована подсказка пароля, но не рекоммендуется.",
237
"zh-chs": " 可以使用密碼提示,但不建議使用。",
238
"xloc": [
239
- "default.handlebars->27->1020"
239
+ "default.handlebars->27->1040"
240
]
241
},
242
{
@@ -253,8 +253,8 @@
253
"ru": " Для добавления в группу устройств, пользователь должен зайти на сервер хотя бы один раз.",
254
"zh-chs": " 用戶需要先登錄到該服務器一次,然後才能將其添加到設備組。",
255
"xloc": [
256
- "default.handlebars->27->1166",
257
- "default.handlebars->27->1419"
256
+ "default.handlebars->27->1183",
257
+ "default.handlebars->27->1433"
258
]
259
},
260
{
@@ -271,7 +271,7 @@
271
"ru": " и задайте указанное ниже имя пользователя и любой пароль.",
272
"zh-chs": " 並使用該用戶名和任何密碼對服務器進行身份驗證。",
273
"xloc": [
274
- "default.handlebars->27->249"
274
+ "default.handlebars->27->250"
275
]
276
},
277
{
@@ -288,7 +288,7 @@
288
"ru": " и задайте указанные ниже имя пользователя и пароль.",
289
"zh-chs": " 並使用該用戶名和密碼向服務器驗證身份。",
290
"xloc": [
291
- "default.handlebars->27->248"
291
+ "default.handlebars->27->249"
292
]
293
},
294
{
@@ -388,7 +388,7 @@
388
"ru": "(необязательно)",
389
"zh-chs": "(可選的)",
390
"xloc": [
391
- "default.handlebars->27->286"
391
+ "default.handlebars->27->287"
392
]
393
},
394
{
@@ -420,7 +420,7 @@
420
"ru": "* Для BSD сначала запустите \\\"pkg install wget sudo bash\\\".",
421
"zh-chs": "*對於BSD,首先運行 “pkg install wget sudo bash”。",
422
"xloc": [
423
- "default.handlebars->27->317"
423
+ "default.handlebars->27->318"
424
]
425
},
426
{
@@ -437,7 +437,7 @@
437
"ru": "* Оставьте пустым для установления случайного пароля каждому устройству.",
438
"zh-chs": "*保留空白以為每個設備分配一個隨機密碼。",
439
"xloc": [
440
- "default.handlebars->27->1140"
440
+ "default.handlebars->27->1157"
441
]
442
},
443
{
@@ -470,7 +470,7 @@
470
"zh-chs": ",",
471
"xloc": [
472
"default-mobile.handlebars->9->333",
473
- "default.handlebars->27->1225"
473
+ "default.handlebars->27->1242"
474
]
475
},
476
{
@@ -505,7 +505,7 @@
505
"ru": ", MQTT онлайн",
506
"zh-chs": ",MQTT在線",
507
"xloc": [
508
- "default.handlebars->27->769"
508
+ "default.handlebars->27->789"
509
]
510
},
511
{
@@ -522,7 +522,7 @@
522
"ru": ", Soft-KVM",
523
"zh-chs": ",軟KVM",
524
"xloc": [
525
- "default.handlebars->27->629"
525
+ "default.handlebars->27->649"
526
]
527
},
528
{
@@ -541,9 +541,9 @@
541
"xloc": [
542
"default-mobile.handlebars->9->231",
543
"default-mobile.handlebars->9->241",
544
- "default.handlebars->27->630",
545
- "default.handlebars->27->660",
546
- "default.handlebars->27->672",
544
+ "default.handlebars->27->650",
545
+ "default.handlebars->27->680",
546
+ "default.handlebars->27->692",
547
"xterm.handlebars->9->6"
548
]
549
},
@@ -652,9 +652,9 @@
652
"xloc": [
653
"default-mobile.handlebars->9->246",
654
"default-mobile.handlebars->9->70",
655
- "default.handlebars->27->1262",
656
- "default.handlebars->27->1509",
657
- "default.handlebars->27->674"
655
+ "default.handlebars->27->1279",
656
+ "default.handlebars->27->1520",
657
+ "default.handlebars->27->694"
658
]
659
},
660
{
@@ -703,7 +703,7 @@
703
"ru": "1 активная сессия",
704
"zh-chs": "1個活動會話",
705
"xloc": [
706
- "default.handlebars->27->1460"
706
+ "default.handlebars->27->1474"
707
]
708
},
709
{
@@ -722,7 +722,7 @@
722
"xloc": [
723
"default-mobile.handlebars->9->337",
724
"default-mobile.handlebars->9->80",
725
- "default.handlebars->27->1279"
725
+ "default.handlebars->27->1296"
726
]
727
},
728
{
@@ -740,8 +740,8 @@
740
"zh-chs": "1天",
741
"xloc": [
742
"default.handlebars->27->152",
743
- "default.handlebars->27->277",
744
- "default.handlebars->27->291"
743
+ "default.handlebars->27->278",
744
+ "default.handlebars->27->292"
745
]
746
},
747
{
@@ -758,7 +758,7 @@
758
"ru": "1 группа",
759
"zh-chs": "1組",
760
"xloc": [
761
- "default.handlebars->27->1443"
761
+ "default.handlebars->27->1457"
762
]
763
},
764
{
@@ -776,8 +776,8 @@
776
"zh-chs": "1小時",
777
"xloc": [
778
"default.handlebars->27->150",
779
- "default.handlebars->27->275",
780
- "default.handlebars->27->289"
779
+ "default.handlebars->27->276",
780
+ "default.handlebars->27->290"
781
]
782
},
783
{
@@ -812,8 +812,8 @@
812
"zh-chs": "1個月",
813
"xloc": [
814
"default.handlebars->27->154",
815
- "default.handlebars->27->279",
816
- "default.handlebars->27->293"
815
+ "default.handlebars->27->280",
816
+ "default.handlebars->27->294"
817
]
818
},
819
{
@@ -830,7 +830,7 @@
830
"ru": "Еще 1 пользователь не показан, используйте поиск чтобы найти пользователей...",
831
"zh-chs": "未再顯示1個用戶,請使用搜索框查找用戶...",
832
"xloc": [
833
- "default.handlebars->27->1314"
833
+ "default.handlebars->27->1331"
834
]
835
},
836
{
@@ -847,7 +847,7 @@
847
"ru": "1 устройство",
848
"zh-chs": "1個節點",
849
"xloc": [
850
- "default.handlebars->27->331"
850
+ "default.handlebars->27->332"
851
]
852
},
853
{
@@ -881,7 +881,7 @@
881
"ru": "1 сессия",
882
"zh-chs": "1節",
883
"xloc": [
884
- "default.handlebars->27->1318"
884
+ "default.handlebars->27->1335"
885
]
886
},
887
{
@@ -899,8 +899,8 @@
899
"zh-chs": "1週",
900
"xloc": [
901
"default.handlebars->27->153",
902
- "default.handlebars->27->278",
903
- "default.handlebars->27->292"
902
+ "default.handlebars->27->279",
903
+ "default.handlebars->27->293"
904
]
905
},
906
{
@@ -1146,7 +1146,7 @@
1146
"ru": "двухфакторная аутентификация включена",
1147
"zh-chs": "啟用第二因素身份驗證",
1148
"xloc": [
1149
- "default.handlebars->27->1452"
1149
+ "default.handlebars->27->1466"
1150
]
1151
},
1152
{
@@ -1245,8 +1245,8 @@
1245
"ru": "32-разрядная версия MeshAgent",
1246
"zh-chs": "MeshAgent的32位版本",
1247
"xloc": [
1248
- "default.handlebars->27->309",
1249
- "default.handlebars->27->324"
1248
+ "default.handlebars->27->310",
1249
+ "default.handlebars->27->325"
1250
]
1251
},
1252
{
@@ -1450,7 +1450,7 @@
1450
"pt": "Versão de 64 bits do MacOS Mesh Agent",
1451
"zh-chs": "64位版本的MacOS Mesh Agent",
1452
"xloc": [
1453
- "default.handlebars->27->320"
1453
+ "default.handlebars->27->321"
1454
]
1455
},
1456
{
@@ -1467,8 +1467,8 @@
1467
"ru": "64-разрядная версия MeshAgent",
1468
"zh-chs": "MeshAgent的64位版本",
1469
"xloc": [
1470
- "default.handlebars->27->312",
1471
- "default.handlebars->27->327"
1470
+ "default.handlebars->27->313",
1471
+ "default.handlebars->27->328"
1472
]
1473
},
1474
{
@@ -1499,7 +1499,7 @@
1499
"ru": "7-дневная статистика работы",
1500
"zh-chs": "7天電源狀態",
1501
"xloc": [
1502
- "default.handlebars->27->568"
1502
+ "default.handlebars->27->588"
1503
]
1504
},
1505
{
@@ -1551,8 +1551,8 @@
1551
"ru": "8 часов",
1552
"zh-chs": "8小時",
1553
"xloc": [
1554
- "default.handlebars->27->276",
1555
- "default.handlebars->27->290"
1554
+ "default.handlebars->27->277",
1555
+ "default.handlebars->27->291"
1556
]
1557
},
1558
{
@@ -1738,7 +1738,7 @@
1738
"zh-chs": "ACM",
1739
"xloc": [
1740
"default-mobile.handlebars->9->185",
1741
- "default.handlebars->27->463"
1741
+ "default.handlebars->27->464"
1742
]
1743
},
1744
{
@@ -1755,8 +1755,8 @@
1755
"ru": "AMT",
1756
"zh-chs": "AMT",
1757
"xloc": [
1758
- "default.handlebars->27->170",
1759
- "default.handlebars->27->359"
1758
+ "default.handlebars->27->171",
1759
+ "default.handlebars->27->360"
1760
]
1761
},
1762
{
@@ -1844,7 +1844,7 @@
1844
"ru": "Отказано в доступе",
1845
"zh-chs": "拒絕訪問",
1846
"xloc": [
1847
- "default.handlebars->27->770"
1847
+ "default.handlebars->27->790"
1848
]
1849
},
1850
{
@@ -1879,7 +1879,7 @@
1879
"ru": "Доступ к файлам сервера",
1880
"zh-chs": "訪問服務器文件",
1881
"xloc": [
1882
- "default.handlebars->27->1424"
1882
+ "default.handlebars->27->1438"
1883
]
1884
},
1885
{
@@ -1954,10 +1954,10 @@
1954
"default-mobile.handlebars->9->55",
1955
"default-mobile.handlebars->9->57",
1956
"default-mobile.handlebars->container->page_content->column_l->p3->p3info->1->p3AccountActions->1->0",
1957
- "default.handlebars->27->1029",
1958
- "default.handlebars->27->1031",
1959
- "default.handlebars->27->433",
1960
- "default.handlebars->27->435"
1957
+ "default.handlebars->27->1049",
1958
+ "default.handlebars->27->1051",
1959
+ "default.handlebars->27->434",
1960
+ "default.handlebars->27->436"
1961
]
1962
},
1963
{
@@ -2061,7 +2061,7 @@
2061
"ru": "Действиe",
2062
"zh-chs": "行動",
2063
"xloc": [
2064
- "default.handlebars->27->775",
2064
+ "default.handlebars->27->795",
2065
"default.handlebars->container->column_l->p42->p42tbl->1->0->8"
2066
]
2067
},
@@ -2078,8 +2078,8 @@
2078
"ru": "Файл действий",
2079
"zh-chs": "動作文件",
2080
"xloc": [
2081
- "default.handlebars->27->609",
2082
- "default.handlebars->27->611"
2081
+ "default.handlebars->27->629",
2082
+ "default.handlebars->27->631"
2083
]
2084
},
2085
{
@@ -2097,7 +2097,7 @@
2097
"xloc": [
2098
"default-mobile.handlebars->container->page_content->column_l->p10->p10desktop->deskarea4->1->3",
2099
"default-mobile.handlebars->container->page_content->column_l->p10->p10files->p13toolbar->1->0->1->1",
2100
- "default.handlebars->27->495",
2100
+ "default.handlebars->27->496",
2101
"default.handlebars->container->column_l->p11->deskarea0->deskarea1->1",
2102
"default.handlebars->container->column_l->p12->termTable->1->1->0->1->1",
2103
"default.handlebars->container->column_l->p13->p13toolbar->1->0->1->1"
@@ -2153,9 +2153,9 @@
2153
"xloc": [
2154
"default-mobile.handlebars->9->180",
2155
"default-mobile.handlebars->9->182",
2156
- "default.handlebars->27->456",
2157
- "default.handlebars->27->458",
2158
- "default.handlebars->27->740"
2156
+ "default.handlebars->27->457",
2157
+ "default.handlebars->27->459",
2158
+ "default.handlebars->27->760"
2159
]
2160
},
2161
{
@@ -2171,10 +2171,10 @@
2171
"ru": "Активация",
2172
"zh-chs": "激活",
2173
"xloc": [
2174
- "default.handlebars->27->1103",
2175
- "default.handlebars->27->1105",
2176
- "default.handlebars->27->212",
2177
- "default.handlebars->27->214"
2174
+ "default.handlebars->27->1123",
2175
+ "default.handlebars->27->1125",
2176
+ "default.handlebars->27->213",
2177
+ "default.handlebars->27->215"
2178
]
2179
},
2180
{
@@ -2191,7 +2191,7 @@
2191
"ru": "Активный пользователь",
2192
"zh-chs": "活動用戶{0}",
2193
"xloc": [
2194
- "default.handlebars->27->482"
2194
+ "default.handlebars->27->483"
2195
]
2196
},
2197
{
@@ -2208,7 +2208,7 @@
2208
"ru": "Добавить агент",
2209
"zh-chs": "添加代理",
2210
"xloc": [
2211
- "default.handlebars->27->216"
2211
+ "default.handlebars->27->217"
2212
]
2213
},
2214
{
@@ -2225,7 +2225,7 @@
2225
"ru": "Добавить CIRA",
2226
"zh-chs": "添加CIRA",
2227
"xloc": [
2228
- "default.handlebars->27->206"
2228
+ "default.handlebars->27->207"
2229
]
2230
},
2231
{
@@ -2238,7 +2238,7 @@
2238
"pt": "Adicionar Dispositivo",
2239
"zh-chs": "添加設備",
2240
"xloc": [
2241
- "default.handlebars->27->1476"
2241
+ "default.handlebars->27->1490"
2242
]
2243
},
2244
{
@@ -2255,7 +2255,7 @@
2255
"ru": "Добавить событие к устройству",
2256
"zh-chs": "添加設備事件",
2257
"xloc": [
2258
- "default.handlebars->27->551"
2258
+ "default.handlebars->27->571"
2259
]
2260
},
2261
{
@@ -2272,18 +2272,18 @@
2272
"ru": "Добавить группу устройств",
2273
"zh-chs": "添加設備組",
2274
"xloc": [
2275
- "default.handlebars->27->1194",
2276
- "default.handlebars->27->1196",
2277
- "default.handlebars->27->1398",
2278
- "default.handlebars->27->1482",
2279
- "default.handlebars->27->187"
2275
+ "default.handlebars->27->1211",
2276
+ "default.handlebars->27->1213",
2277
+ "default.handlebars->27->1415",
2278
+ "default.handlebars->27->1496",
2279
+ "default.handlebars->27->188"
2280
]
2281
},
2282
{
2283
"en": "Add Device Permissions",
2284
"nl": "Apparaatrechten toevoegen",
2285
"xloc": [
2286
- "default.handlebars->27->1197"
2286
+ "default.handlebars->27->1214"
2287
]
2288
},
2289
{
@@ -2300,7 +2300,7 @@
2300
"ru": "Добавить Intel® AMT CIRA устройство",
2301
"zh-chs": "添加英特爾®AMT CIRA設備",
2302
"xloc": [
2303
- "default.handlebars->27->262"
2303
+ "default.handlebars->27->263"
2304
]
2305
},
2306
{
@@ -2317,7 +2317,7 @@
2317
"ru": "Добавить Intel® AMT устройство",
2318
"zh-chs": "添加英特爾®AMT設備",
2319
"xloc": [
2320
- "default.handlebars->27->229"
2320
+ "default.handlebars->27->230"
2321
]
2322
},
2323
{
@@ -2350,7 +2350,7 @@
2350
"ru": "Добавить локально",
2351
"zh-chs": "添加本地",
2352
"xloc": [
2353
- "default.handlebars->27->208"
2353
+ "default.handlebars->27->209"
2354
]
2355
},
2356
{
@@ -2367,7 +2367,7 @@
2367
"ru": "Добавить участие",
2368
"zh-chs": "添加會員",
2369
"xloc": [
2370
- "default.handlebars->27->1505"
2370
+ "default.handlebars->27->1516"
2371
]
2372
},
2373
{
@@ -2384,7 +2384,7 @@
2384
"ru": "Добавить Mesh Agent",
2385
"zh-chs": "添加網格代理",
2386
"xloc": [
2387
- "default.handlebars->27->330"
2387
+ "default.handlebars->27->331"
2388
]
2389
},
2390
{
@@ -2405,20 +2405,20 @@
2405
"default.handlebars->27->130",
2406
"default.handlebars->27->133",
2407
"default.handlebars->27->134",
2408
- "default.handlebars->27->797",
2409
- "default.handlebars->27->798"
2408
+ "default.handlebars->27->817",
2409
+ "default.handlebars->27->818"
2410
]
2411
},
2412
{
2413
"en": "Add User",
2414
"xloc": [
2415
- "default.handlebars->27->530"
2415
+ "default.handlebars->27->531"
2416
]
2417
},
2418
{
2419
"en": "Add User Device Permissions",
2420
"xloc": [
2421
- "default.handlebars->27->1200"
2421
+ "default.handlebars->27->1217"
2422
]
2423
},
2424
{
@@ -2435,9 +2435,9 @@
2435
"ru": "Добавить группу пользователей",
2436
"zh-chs": "添加用戶組",
2437
"xloc": [
2438
- "default.handlebars->27->1097",
2439
- "default.handlebars->27->1195",
2440
- "default.handlebars->27->1491"
2438
+ "default.handlebars->27->1117",
2439
+ "default.handlebars->27->1212",
2440
+ "default.handlebars->27->1502"
2441
]
2442
},
2443
{
@@ -2471,8 +2471,8 @@
2471
"ru": "Добавить пользователей",
2472
"zh-chs": "添加用戶",
2473
"xloc": [
2474
- "default.handlebars->27->1096",
2475
- "default.handlebars->27->1393"
2474
+ "default.handlebars->27->1116",
2475
+ "default.handlebars->27->1410"
2476
]
2477
},
2478
{
@@ -2489,7 +2489,7 @@
2489
"ru": "Добавить пользователей в группу устройств",
2490
"zh-chs": "將用戶添加到設備組",
2491
"xloc": [
2492
- "default.handlebars->27->1193"
2492
+ "default.handlebars->27->1210"
2493
]
2494
},
2495
{
@@ -2506,7 +2506,7 @@
2506
"ru": "Добавить пользователей в группу",
2507
"zh-chs": "將用戶添加到用戶組",
2508
"xloc": [
2509
- "default.handlebars->27->1421"
2509
+ "default.handlebars->27->1435"
2510
]
2511
},
2512
{
@@ -2540,7 +2540,7 @@
2540
"ru": "Добавить новый Intel® AMT компьютер сканированием локальной сети.",
2541
"zh-chs": "通過掃描本地網絡添加新的英特爾®AMT計算機。",
2542
"xloc": [
2543
- "default.handlebars->27->209"
2543
+ "default.handlebars->27->210"
2544
]
2545
},
2546
{
@@ -2557,8 +2557,8 @@
2557
"ru": "Добавить новый Intel® AMT компьютер, находящийся в интернете.",
2558
"zh-chs": "添加位於互聯網上的新英特爾®AMT計算機。",
2559
"xloc": [
2560
- "default.handlebars->27->1098",
2561
- "default.handlebars->27->205"
2560
+ "default.handlebars->27->1118",
2561
+ "default.handlebars->27->206"
2562
]
2563
},
2564
{
@@ -2575,8 +2575,8 @@
2575
"ru": "Добавить новый Intel® AMT компьютер, находящийся в локальной сети.",
2576
"zh-chs": "添加位於本地網絡上的新英特爾®AMT計算機。",
2577
"xloc": [
2578
- "default.handlebars->27->1100",
2579
- "default.handlebars->27->207"
2578
+ "default.handlebars->27->1120",
2579
+ "default.handlebars->27->208"
2580
]
2581
},
2582
{
@@ -2593,7 +2593,7 @@
2593
"ru": "Добавить новое Intel® AMT устройство к группе устройств \\\"{0}\\\".",
2594
"zh-chs": "將新的英特爾®AMT設備添加到設備組“{0}”。",
2595
"xloc": [
2596
- "default.handlebars->27->219"
2596
+ "default.handlebars->27->220"
2597
]
2598
},
2599
{
@@ -2610,8 +2610,8 @@
2610
"ru": "Добавить новый компьютер к этой сети установкой Mesh Agent.",
2611
"zh-chs": "通過安裝網格代理將新計算機添加到該網格。",
2612
"xloc": [
2613
- "default.handlebars->27->1106",
2614
- "default.handlebars->27->215"
2613
+ "default.handlebars->27->1126",
2614
+ "default.handlebars->27->216"
2615
]
2616
},
2617
{
@@ -2628,7 +2628,7 @@
2628
"ru": "Адрес",
2629
"zh-chs": "地址",
2630
"xloc": [
2631
- "default.handlebars->27->183"
2631
+ "default.handlebars->27->184"
2632
]
2633
},
2634
{
@@ -2661,7 +2661,7 @@
2661
"pt": "Admin Control Mode (ACM)",
2662
"zh-chs": "管理員控制模式(ACM)",
2663
"xloc": [
2664
- "default.handlebars->27->742"
2664
+ "default.handlebars->27->762"
2665
]
2666
},
2667
{
@@ -2674,7 +2674,7 @@
2674
"pt": "Credenciais de administrador",
2675
"zh-chs": "管理員憑證",
2676
"xloc": [
2677
- "default.handlebars->27->748"
2677
+ "default.handlebars->27->768"
2678
]
2679
},
2680
{
@@ -2708,7 +2708,7 @@
2708
"ru": "Области администратора",
2709
"zh-chs": "管理領域",
2710
"xloc": [
2711
- "default.handlebars->27->1447"
2711
+ "default.handlebars->27->1461"
2712
]
2713
},
2714
{
@@ -2742,7 +2742,7 @@
2742
"ru": "Административные области",
2743
"zh-chs": "行政領域",
2744
"xloc": [
2745
- "default.handlebars->27->1363"
2745
+ "default.handlebars->27->1380"
2746
]
2747
},
2748
{
@@ -2759,7 +2759,7 @@
2759
"ru": "Администратор",
2760
"zh-chs": "管理員",
2761
"xloc": [
2762
- "default.handlebars->27->1325"
2762
+ "default.handlebars->27->1342"
2763
]
2764
},
2765
{
@@ -2775,7 +2775,7 @@
2775
"ru": "Африканский",
2776
"zh-chs": "南非語",
2777
"xloc": [
2778
- "default.handlebars->27->800"
2778
+ "default.handlebars->27->820"
2779
]
2780
},
2781
{
@@ -2795,10 +2795,10 @@
2795
"default-mobile.handlebars->9->124",
2796
"default-mobile.handlebars->9->177",
2797
"default-mobile.handlebars->9->193",
2798
- "default.handlebars->27->1250",
2799
- "default.handlebars->27->1256",
2800
- "default.handlebars->27->166",
2801
- "default.handlebars->27->355",
2798
+ "default.handlebars->27->1267",
2799
+ "default.handlebars->27->1273",
2800
+ "default.handlebars->27->167",
2801
+ "default.handlebars->27->356",
2802
"default.handlebars->container->column_l->p15->consoleTable->1->6->1->1->1->0->p15outputselecttd->p15outputselect->1"
2803
]
2804
},
@@ -2815,8 +2815,8 @@
2815
"ru": "Агент + Intel AMT",
2816
"zh-chs": "代理+英特爾AMT",
2817
"xloc": [
2818
- "default.handlebars->27->1252",
2819
- "default.handlebars->27->1258"
2818
+ "default.handlebars->27->1269",
2819
+ "default.handlebars->27->1275"
2820
]
2821
},
2822
{
@@ -2849,7 +2849,7 @@
2849
"zh-chs": "代理控制台",
2850
"xloc": [
2851
"default-mobile.handlebars->9->318",
2852
- "default.handlebars->27->1208"
2852
+ "default.handlebars->27->1225"
2853
]
2854
},
2855
{
@@ -2865,7 +2865,7 @@
2865
"ru": "Счетчик ошибок агента",
2866
"zh-chs": "座席錯誤計數器",
2867
"xloc": [
2868
- "default.handlebars->27->1518"
2868
+ "default.handlebars->27->1529"
2869
]
2870
},
2871
{
@@ -2931,7 +2931,7 @@
2931
"ru": "Сессии агентов",
2932
"zh-chs": "座席會議",
2933
"xloc": [
2934
- "default.handlebars->27->1534"
2934
+ "default.handlebars->27->1545"
2935
]
2936
},
2937
{
@@ -2948,7 +2948,7 @@
2948
"zh-chs": "代理商標籤",
2949
"xloc": [
2950
"default-mobile.handlebars->9->192",
2951
- "default.handlebars->27->475"
2951
+ "default.handlebars->27->476"
2952
]
2953
},
2954
{
@@ -2965,7 +2965,7 @@
2965
"ru": "Типы агента",
2966
"zh-chs": "代理類型",
2967
"xloc": [
2968
- "default.handlebars->27->1254",
2968
+ "default.handlebars->27->1271",
2969
"default.handlebars->container->column_l->p21->3->1->meshOsChartDiv->1"
2970
]
2971
},
@@ -2984,8 +2984,8 @@
2984
"zh-chs": "代理已連接",
2985
"xloc": [
2986
"default.handlebars->27->136",
2987
- "default.handlebars->27->521",
2988
- "default.handlebars->27->522"
2987
+ "default.handlebars->27->522",
2988
+ "default.handlebars->27->523"
2989
]
2990
},
2991
{
@@ -3019,7 +3019,7 @@
3019
"ru": "Агент оффлайн",
3020
"zh-chs": "代理離線",
3021
"xloc": [
3022
- "default.handlebars->27->768"
3022
+ "default.handlebars->27->788"
3023
]
3024
},
3025
{
@@ -3036,7 +3036,7 @@
3036
"ru": "Агент онлайн",
3037
"zh-chs": "代理在線",
3038
"xloc": [
3039
- "default.handlebars->27->767"
3039
+ "default.handlebars->27->787"
3040
]
3041
},
3042
{
@@ -3053,7 +3053,7 @@
3053
"ru": "Агенты",
3054
"zh-chs": "代理商",
3055
"xloc": [
3056
- "default.handlebars->27->1547"
3056
+ "default.handlebars->27->1558"
3057
]
3058
},
3059
{
@@ -3069,7 +3069,7 @@
3069
"ru": "Албанский",
3070
"zh-chs": "阿爾巴尼亞語",
3071
"xloc": [
3072
- "default.handlebars->27->801"
3072
+ "default.handlebars->27->821"
3073
]
3074
},
3075
{
@@ -3121,9 +3121,9 @@
3121
"ru": "Фокусирование всех",
3122
"zh-chs": "全部聚焦",
3123
"xloc": [
3124
- "default.handlebars->27->631",
3125
- "default.handlebars->27->633",
3126
- "default.handlebars->27->634"
3124
+ "default.handlebars->27->651",
3125
+ "default.handlebars->27->653",
3126
+ "default.handlebars->27->654"
3127
]
3128
},
3129
{
@@ -3140,14 +3140,14 @@
3140
"ru": "Разрешить пользователям управлять этой группой и устройствами этой группы.",
3141
"zh-chs": "允許用戶管理此設備組和該組中的設備。",
3142
"xloc": [
3143
- "default.handlebars->27->1164",
3144
- "default.handlebars->27->1418"
3143
+ "default.handlebars->27->1181",
3144
+ "default.handlebars->27->1432"
3145
]
3146
},
3147
{
3148
"en": "Allow users to manage this device.",
3149
"xloc": [
3150
- "default.handlebars->27->1165"
3150
+ "default.handlebars->27->1182"
3151
]
3152
},
3153
{
@@ -3200,7 +3200,7 @@
3200
"ru": "Поменять (F10 = ESC+0)",
3201
"zh-chs": "備用(F10 = ESC + 0)",
3202
"xloc": [
3203
- "default.handlebars->27->665"
3203
+ "default.handlebars->27->685"
3204
]
3205
},
3206
{
@@ -3232,7 +3232,7 @@
3232
"ru": "Всегда уведомлять",
3233
"zh-chs": "始終通知",
3234
"xloc": [
3235
- "default.handlebars->27->1077"
3235
+ "default.handlebars->27->1097"
3236
]
3237
},
3238
{
@@ -3249,7 +3249,7 @@
3249
"ru": "Всегда запрашивать",
3250
"zh-chs": "總是提示",
3251
"xloc": [
3252
- "default.handlebars->27->1078"
3252
+ "default.handlebars->27->1098"
3253
]
3254
},
3255
{
@@ -3320,7 +3320,7 @@
3320
"ru": "Антивирус",
3321
"zh-chs": "防毒軟件",
3322
"xloc": [
3323
- "default.handlebars->27->481"
3323
+ "default.handlebars->27->482"
3324
]
3325
},
3326
{
@@ -3336,7 +3336,7 @@
3336
"ru": "Любые поддерживаемые",
3337
"zh-chs": "任何支持",
3338
"xloc": [
3339
- "default.handlebars->27->270"
3339
+ "default.handlebars->27->271"
3340
]
3341
},
3342
{
@@ -3353,7 +3353,7 @@
3353
"ru": "Apple MacOS",
3354
"zh-chs": "蘋果MacOS",
3355
"xloc": [
3356
- "default.handlebars->27->300"
3356
+ "default.handlebars->27->301"
3357
]
3358
},
3359
{
@@ -3370,7 +3370,7 @@
3370
"ru": "Только Apple MacOS",
3371
"zh-chs": "僅限Apple MacOS",
3372
"xloc": [
3373
- "default.handlebars->27->272"
3373
+ "default.handlebars->27->273"
3374
]
3375
},
3376
{
@@ -3403,7 +3403,7 @@
3403
"ru": "Арабский (Алжир)",
3404
"zh-chs": "阿拉伯文(阿爾及利亞)",
3405
"xloc": [
3406
- "default.handlebars->27->803"
3406
+ "default.handlebars->27->823"
3407
]
3408
},
3409
{
@@ -3418,7 +3418,7 @@
3418
"ru": "Арабский (Бахрейн)",
3419
"zh-chs": "阿拉伯文(巴林)",
3420
"xloc": [
3421
- "default.handlebars->27->804"
3421
+ "default.handlebars->27->824"
3422
]
3423
},
3424
{
@@ -3434,7 +3434,7 @@
3434
"ru": "Арабский (Египет)",
3435
"zh-chs": "阿拉伯文(埃及)",
3436
"xloc": [
3437
- "default.handlebars->27->805"
3437
+ "default.handlebars->27->825"
3438
]
3439
},
3440
{
@@ -3450,7 +3450,7 @@
3450
"ru": "Арабский (Ирак)",
3451
"zh-chs": "阿拉伯文(伊拉克)",
3452
"xloc": [
3453
- "default.handlebars->27->806"
3453
+ "default.handlebars->27->826"
3454
]
3455
},
3456
{
@@ -3466,7 +3466,7 @@
3466
"ru": "Арабский (Иордания)",
3467
"zh-chs": "阿拉伯語(約旦)",
3468
"xloc": [
3469
- "default.handlebars->27->807"
3469
+ "default.handlebars->27->827"
3470
]
3471
},
3472
{
@@ -3481,7 +3481,7 @@
3481
"ru": "Арабский (Кувейт)",
3482
"zh-chs": "阿拉伯文(科威特)",
3483
"xloc": [
3484
- "default.handlebars->27->808"
3484
+ "default.handlebars->27->828"
3485
]
3486
},
3487
{
@@ -3496,7 +3496,7 @@
3496
"ru": "Арабский (Ливан)",
3497
"zh-chs": "阿拉伯語(黎巴嫩)",
3498
"xloc": [
3499
- "default.handlebars->27->809"
3499
+ "default.handlebars->27->829"
3500
]
3501
},
3502
{
@@ -3512,7 +3512,7 @@
3512
"ru": "Арабский (Ливия)",
3513
"zh-chs": "阿拉伯文(利比亞)",
3514
"xloc": [
3515
- "default.handlebars->27->810"
3515
+ "default.handlebars->27->830"
3516
]
3517
},
3518
{
@@ -3528,7 +3528,7 @@
3528
"ru": "Арабский (Марокко)",
3529
"zh-chs": "阿拉伯文(摩洛哥)",
3530
"xloc": [
3531
- "default.handlebars->27->811"
3531
+ "default.handlebars->27->831"
3532
]
3533
},
3534
{
@@ -3543,7 +3543,7 @@
3543
"ru": "Арабский (Оман)",
3544
"zh-chs": "阿拉伯文(阿曼)",
3545
"xloc": [
3546
- "default.handlebars->27->812"
3546
+ "default.handlebars->27->832"
3547
]
3548
},
3549
{
@@ -3559,7 +3559,7 @@
3559
"ru": "Арабский (Катар)",
3560
"zh-chs": "阿拉伯語(卡塔爾)",
3561
"xloc": [
3562
- "default.handlebars->27->813"
3562
+ "default.handlebars->27->833"
3563
]
3564
},
3565
{
@@ -3575,7 +3575,7 @@
3575
"ru": "Арабский (Саудовская Аравия)",
3576
"zh-chs": "阿拉伯語(沙特阿拉伯)",
3577
"xloc": [
3578
- "default.handlebars->27->814"
3578
+ "default.handlebars->27->834"
3579
]
3580
},
3581
{
@@ -3591,7 +3591,7 @@
3591
"ru": "Арабский (стандартный)",
3592
"zh-chs": "阿拉伯語(標準)",
3593
"xloc": [
3594
- "default.handlebars->27->802"
3594
+ "default.handlebars->27->822"
3595
]
3596
},
3597
{
@@ -3607,7 +3607,7 @@
3607
"ru": "Арабский (Сирия)",
3608
"zh-chs": "阿拉伯語(敘利亞)",
3609
"xloc": [
3610
- "default.handlebars->27->815"
3610
+ "default.handlebars->27->835"
3611
]
3612
},
3613
{
@@ -3623,7 +3623,7 @@
3623
"ru": "Арабский (Тунис)",
3624
"zh-chs": "阿拉伯文(突尼斯)",
3625
"xloc": [
3626
- "default.handlebars->27->816"
3626
+ "default.handlebars->27->836"
3627
]
3628
},
3629
{
@@ -3638,7 +3638,7 @@
3638
"ru": "Арабский (О.А.Э.)",
3639
"zh-chs": "阿拉伯文(阿聯酋)",
3640
"xloc": [
3641
- "default.handlebars->27->817"
3641
+ "default.handlebars->27->837"
3642
]
3643
},
3644
{
@@ -3654,7 +3654,7 @@
3654
"ru": "Арабский (Йемен)",
3655
"zh-chs": "阿拉伯文(也門)",
3656
"xloc": [
3657
- "default.handlebars->27->818"
3657
+ "default.handlebars->27->838"
3658
]
3659
},
3660
{
@@ -3670,7 +3670,7 @@
3670
"ru": "Арагонский",
3671
"zh-chs": "阿拉貢人",
3672
"xloc": [
3673
- "default.handlebars->27->819"
3673
+ "default.handlebars->27->839"
3674
]
3675
},
3676
{
@@ -3687,7 +3687,7 @@
3687
"ru": "Архитектура",
3688
"zh-chs": "建築",
3689
"xloc": [
3690
- "default.handlebars->27->716"
3690
+ "default.handlebars->27->736"
3691
]
3692
},
3693
{
@@ -3704,7 +3704,7 @@
3704
"ru": "Вы действительно хотите подключиться к {0} устройствам?",
3705
"zh-chs": "您確定要連接到{0}設備嗎?",
3706
"xloc": [
3707
- "default.handlebars->27->200"
3707
+ "default.handlebars->27->201"
3708
]
3709
},
3710
{
@@ -3722,7 +3722,7 @@
3722
"zh-chs": "您確定要刪除組{0}嗎?刪除設備組還將刪除該組中有關設備的所有信息。",
3723
"xloc": [
3724
"default-mobile.handlebars->9->289",
3725
- "default.handlebars->27->1144"
3725
+ "default.handlebars->27->1161"
3726
]
3727
},
3728
{
@@ -3739,7 +3739,7 @@
3739
"ru": "Вы действительно хотите удалить устройство \\\"{0}\\\"?",
3740
"zh-chs": "您確定要刪除節點{0}嗎?",
3741
"xloc": [
3742
- "default.handlebars->27->590"
3742
+ "default.handlebars->27->610"
3743
]
3744
},
3745
{
@@ -3756,7 +3756,7 @@
3756
"ru": "Вы действительно хотите деинсталировать выбранного агента?",
3757
"zh-chs": "您確定要卸載所選代理嗎?",
3758
"xloc": [
3759
- "default.handlebars->27->579"
3759
+ "default.handlebars->27->599"
3760
]
3761
},
3762
{
@@ -3773,7 +3773,7 @@
3773
"ru": "Вы действительно хотите деинсталлировать выбранных {0} агентов?",
3774
"zh-chs": "您確定要卸載所選的{0}代理嗎?",
3775
"xloc": [
3776
- "default.handlebars->27->578"
3776
+ "default.handlebars->27->598"
3777
]
3778
},
3779
{
@@ -3790,7 +3790,7 @@
3790
"ru": "Вы уверенны, что {0} плагин: {1}",
3791
"zh-chs": "您確定要{0}插件嗎:{1}",
3792
"xloc": [
3793
- "default.handlebars->27->1584"
3793
+ "default.handlebars->27->1595"
3794
]
3795
},
3796
{
@@ -3806,7 +3806,7 @@
3806
"ru": "Армянский",
3807
"zh-chs": "亞美尼亞人",
3808
"xloc": [
3809
- "default.handlebars->27->820"
3809
+ "default.handlebars->27->840"
3810
]
3811
},
3812
{
@@ -3821,7 +3821,7 @@
3821
"ru": "Ассамский",
3822
"zh-chs": "阿薩姆語",
3823
"xloc": [
3824
- "default.handlebars->27->821"
3824
+ "default.handlebars->27->841"
3825
]
3826
},
3827
{
@@ -3836,7 +3836,7 @@
3836
"ru": "Астурии",
3837
"zh-chs": "阿斯圖里亞斯人",
3838
"xloc": [
3839
- "default.handlebars->27->822"
3839
+ "default.handlebars->27->842"
3840
]
3841
},
3842
{
@@ -3852,7 +3852,7 @@
3852
"ru": "Приложение аутентификации",
3853
"zh-chs": "身份驗證應用",
3854
"xloc": [
3855
- "default.handlebars->27->1448"
3855
+ "default.handlebars->27->1462"
3856
]
3857
},
3858
{
@@ -3875,8 +3875,8 @@
3875
"default-mobile.handlebars->9->35",
3876
"default.handlebars->27->104",
3877
"default.handlebars->27->109",
3878
- "default.handlebars->27->786",
3879
- "default.handlebars->27->788"
3878
+ "default.handlebars->27->806",
3879
+ "default.handlebars->27->808"
3880
]
3881
},
3882
{
@@ -3944,7 +3944,7 @@
3944
"ru": "Автоудаление",
3945
"zh-chs": "自動刪除",
3946
"xloc": [
3947
- "default.handlebars->27->1065"
3947
+ "default.handlebars->27->1085"
3948
]
3949
},
3950
{
@@ -3997,7 +3997,7 @@
3997
"ru": "Азербайджанский",
3998
"zh-chs": "阿塞拜疆",
3999
"xloc": [
4000
- "default.handlebars->27->823"
4000
+ "default.handlebars->27->843"
4001
]
4002
},
4003
{
@@ -4014,7 +4014,7 @@
4014
"ru": "BIOS",
4015
"zh-chs": "的BIOS",
4016
"xloc": [
4017
- "default.handlebars->27->754"
4017
+ "default.handlebars->27->774"
4018
]
4019
},
4020
{
@@ -4092,7 +4092,7 @@
4092
"ru": "Фоновый и интерактивный",
4093
"zh-chs": "背景與互動",
4094
"xloc": [
4095
- "default.handlebars->27->304"
4095
+ "default.handlebars->27->305"
4096
]
4097
},
4098
{
@@ -4109,9 +4109,9 @@
4109
"ru": "Фоновый и интерактивный",
4110
"zh-chs": "背景與互動",
4111
"xloc": [
4112
- "default.handlebars->27->1233",
4113
- "default.handlebars->27->1240",
4114
- "default.handlebars->27->282"
4112
+ "default.handlebars->27->1250",
4113
+ "default.handlebars->27->1257",
4114
+ "default.handlebars->27->283"
4115
]
4116
},
4117
{
@@ -4128,10 +4128,10 @@
4128
"ru": "Только фоновый",
4129
"zh-chs": "僅背景",
4130
"xloc": [
4131
- "default.handlebars->27->1234",
4132
- "default.handlebars->27->1241",
4133
- "default.handlebars->27->283",
4134
- "default.handlebars->27->305"
4131
+ "default.handlebars->27->1251",
4132
+ "default.handlebars->27->1258",
4133
+ "default.handlebars->27->284",
4134
+ "default.handlebars->27->306"
4135
]
4136
},
4137
{
@@ -4165,7 +4165,7 @@
4165
"ru": "Резервные коды",
4166
"zh-chs": "備用碼",
4167
"xloc": [
4168
- "default.handlebars->27->1450"
4168
+ "default.handlebars->27->1464"
4169
]
4170
},
4171
{
@@ -4182,7 +4182,7 @@
4182
"ru": "Плохой ключ",
4183
"zh-chs": "錯誤的簽名",
4184
"xloc": [
4185
- "default.handlebars->27->1525"
4185
+ "default.handlebars->27->1536"
4186
]
4187
},
4188
{
@@ -4199,7 +4199,7 @@
4199
"ru": "Плохой веб-сертификат",
4200
"zh-chs": "錯誤的網絡證書",
4201
"xloc": [
4202
- "default.handlebars->27->1524"
4202
+ "default.handlebars->27->1535"
4203
]
4204
},
4205
{
@@ -4214,7 +4214,7 @@
4214
"ru": "Баскский",
4215
"zh-chs": "巴斯克",
4216
"xloc": [
4217
- "default.handlebars->27->824"
4217
+ "default.handlebars->27->844"
4218
]
4219
},
4220
{
@@ -4247,7 +4247,7 @@
4247
"ru": "Белорусский",
4248
"zh-chs": "白俄羅斯語",
4249
"xloc": [
4250
- "default.handlebars->27->826"
4250
+ "default.handlebars->27->846"
4251
]
4252
},
4253
{
@@ -4263,7 +4263,7 @@
4263
"ru": "Бенгальский",
4264
"zh-chs": "孟加拉",
4265
"xloc": [
4266
- "default.handlebars->27->827"
4266
+ "default.handlebars->27->847"
4267
]
4268
},
4269
{
@@ -4279,7 +4279,7 @@
4279
"ru": "Боснийский",
4280
"zh-chs": "波斯尼亞人",
4281
"xloc": [
4282
- "default.handlebars->27->828"
4282
+ "default.handlebars->27->848"
4283
]
4284
},
4285
{
@@ -4294,7 +4294,7 @@
4294
"ru": "Бретонский",
4295
"zh-chs": "布列塔尼",
4296
"xloc": [
4297
- "default.handlebars->27->829"
4297
+ "default.handlebars->27->849"
4298
]
4299
},
4300
{
@@ -4311,7 +4311,7 @@
4311
"ru": "Отправить сообщение",
4312
"zh-chs": "廣播",
4313
"xloc": [
4314
- "default.handlebars->27->1391",
4314
+ "default.handlebars->27->1408",
4315
"default.handlebars->container->column_l->p4->3->1->0->3->1"
4316
]
4317
},
@@ -4329,7 +4329,7 @@
4329
"ru": "Отправить сообщение",
4330
"zh-chs": "廣播消息",
4331
"xloc": [
4332
- "default.handlebars->27->1348"
4332
+ "default.handlebars->27->1365"
4333
]
4334
},
4335
{
@@ -4346,7 +4346,7 @@
4346
"ru": "Отправить сообщение всем подключенным пользователям.",
4347
"zh-chs": "向所有連接的用戶廣播消息。",
4348
"xloc": [
4349
- "default.handlebars->27->1347"
4349
+ "default.handlebars->27->1364"
4350
]
4351
},
4352
{
@@ -4362,7 +4362,7 @@
4362
"ru": "Болгарский",
4363
"zh-chs": "保加利亞語",
4364
"xloc": [
4365
- "default.handlebars->27->825"
4365
+ "default.handlebars->27->845"
4366
]
4367
},
4368
{
@@ -4378,7 +4378,7 @@
4378
"ru": "Бирманский",
4379
"zh-chs": "緬甸人",
4380
"xloc": [
4381
- "default.handlebars->27->830"
4381
+ "default.handlebars->27->850"
4382
]
4383
},
4384
{
@@ -4396,7 +4396,7 @@
4396
"zh-chs": "CCM",
4397
"xloc": [
4398
"default-mobile.handlebars->9->184",
4399
- "default.handlebars->27->461"
4399
+ "default.handlebars->27->462"
4400
]
4401
},
4402
{
@@ -4414,10 +4414,10 @@
4414
"zh-chs": "CIRA",
4415
"xloc": [
4416
"default-mobile.handlebars->9->125",
4417
- "default.handlebars->27->1132",
4418
- "default.handlebars->27->1137",
4419
- "default.handlebars->27->168",
4420
- "default.handlebars->27->357"
4417
+ "default.handlebars->27->1149",
4418
+ "default.handlebars->27->1154",
4419
+ "default.handlebars->27->169",
4420
+ "default.handlebars->27->358"
4421
]
4422
},
4423
{
@@ -4434,7 +4434,7 @@
4434
"ru": "CIRA Сервер",
4435
"zh-chs": "CIRA服務器",
4436
"xloc": [
4437
- "default.handlebars->27->1575"
4437
+ "default.handlebars->27->1586"
4438
]
4439
},
4440
{
@@ -4451,7 +4451,7 @@
4451
"ru": "CIRA Сервер команды",
4452
"zh-chs": "CIRA服務器命令",
4453
"xloc": [
4454
- "default.handlebars->27->1576"
4454
+ "default.handlebars->27->1587"
4455
]
4456
},
4457
{
@@ -4468,7 +4468,7 @@
4468
"ru": "Загрузка CPU",
4469
"zh-chs": "CPU負載",
4470
"xloc": [
4471
- "default.handlebars->27->1539"
4471
+ "default.handlebars->27->1550"
4472
]
4473
},
4474
{
@@ -4485,7 +4485,7 @@
4485
"ru": "Загрузка CPU за последние 15 минут",
4486
"zh-chs": "最近15分鐘的CPU負載",
4487
"xloc": [
4488
- "default.handlebars->27->1542"
4488
+ "default.handlebars->27->1553"
4489
]
4490
},
4491
{
@@ -4502,7 +4502,7 @@
4502
"ru": "Загрузка CPU за последние 5 минут",
4503
"zh-chs": "最近5分鐘的CPU負載",
4504
"xloc": [
4505
- "default.handlebars->27->1541"
4505
+ "default.handlebars->27->1552"
4506
]
4507
},
4508
{
@@ -4519,7 +4519,7 @@
4519
"ru": "Загрузка CPU за последнюю минуту",
4520
"zh-chs": "最後一分鐘的CPU負載",
4521
"xloc": [
4522
- "default.handlebars->27->1540"
4522
+ "default.handlebars->27->1551"
4523
]
4524
},
4525
{
@@ -4536,8 +4536,8 @@
4536
"ru": "CR+LF",
4537
"zh-chs": "CR +低頻",
4538
"xloc": [
4539
- "default.handlebars->27->658",
4540
- "default.handlebars->27->667",
4539
+ "default.handlebars->27->678",
4540
+ "default.handlebars->27->687",
4541
"default.handlebars->container->column_l->p12->termTable->1->1->6->1->1->terminalSettingsButtons"
4542
]
4543
},
@@ -4555,9 +4555,9 @@
4555
"ru": "Формат CSV",
4556
"zh-chs": "CSV格式",
4557
"xloc": [
4558
- "default.handlebars->27->1300",
4559
- "default.handlebars->27->1339",
4560
- "default.handlebars->27->384"
4558
+ "default.handlebars->27->1317",
4559
+ "default.handlebars->27->1356",
4560
+ "default.handlebars->27->385"
4561
]
4562
},
4563
{
@@ -4574,7 +4574,7 @@
4574
"ru": "Ошибка вызова",
4575
"zh-chs": "通話錯誤",
4576
"xloc": [
4577
- "default.handlebars->27->1585"
4577
+ "default.handlebars->27->1596"
4578
]
4579
},
4580
{
@@ -4593,7 +4593,7 @@
4593
"xloc": [
4594
"default-mobile.handlebars->9->44",
4595
"default-mobile.handlebars->dialog->idx_dlgButtonBar",
4596
- "default.handlebars->27->1050",
4596
+ "default.handlebars->27->1070",
4597
"default.handlebars->container->dialog->idx_dlgButtonBar",
4598
"login-mobile.handlebars->dialog->idx_dlgButtonBar",
4599
"login.handlebars->dialog->idx_dlgButtonBar",
@@ -4615,7 +4615,7 @@
4615
"ru": "Объем / Скорость",
4616
"zh-chs": "容量/速度",
4617
"xloc": [
4618
- "default.handlebars->27->761"
4618
+ "default.handlebars->27->781"
4619
]
4620
},
4621
{
@@ -4631,7 +4631,7 @@
4631
"ru": "Каталонский",
4632
"zh-chs": "加泰羅尼亞語",
4633
"xloc": [
4634
- "default.handlebars->27->831"
4634
+ "default.handlebars->27->851"
4635
]
4636
},
4637
{
@@ -4648,7 +4648,7 @@
4648
"ru": "Установить центр карты здесь",
4649
"zh-chs": "中心地圖在這裡",
4650
"xloc": [
4651
- "default.handlebars->27->424"
4651
+ "default.handlebars->27->425"
4652
]
4653
},
4654
{
@@ -4664,7 +4664,7 @@
4664
"ru": "Чаморро",
4665
"zh-chs": "查莫羅",
4666
"xloc": [
4667
- "default.handlebars->27->832"
4667
+ "default.handlebars->27->852"
4668
]
4669
},
4670
{
@@ -4681,7 +4681,7 @@
4681
"ru": "Смена email для {0}",
4682
"zh-chs": "更改{0}的電子郵件",
4683
"xloc": [
4684
- "default.handlebars->27->1466"
4684
+ "default.handlebars->27->1480"
4685
]
4686
},
4687
{
@@ -4698,9 +4698,9 @@
4698
"ru": "Смена группы",
4699
"zh-chs": "變更組",
4700
"xloc": [
4701
- "default.handlebars->27->502",
4702
- "default.handlebars->27->587",
4703
- "default.handlebars->27->588"
4701
+ "default.handlebars->27->503",
4702
+ "default.handlebars->27->607",
4703
+ "default.handlebars->27->608"
4704
]
4705
},
4706
{
@@ -4718,8 +4718,8 @@
4718
"zh-chs": "更改密碼",
4719
"xloc": [
4720
"default-mobile.handlebars->9->52",
4721
- "default.handlebars->27->1026",
4722
- "default.handlebars->27->1459"
4721
+ "default.handlebars->27->1046",
4722
+ "default.handlebars->27->1473"
4723
]
4724
},
4725
{
@@ -4736,7 +4736,7 @@
4736
"ru": "Смена пароля для {0}",
4737
"zh-chs": "更改{0}的密碼",
4738
"xloc": [
4739
- "default.handlebars->27->1473"
4739
+ "default.handlebars->27->1487"
4740
]
4741
},
4742
{
@@ -4802,7 +4802,7 @@
4802
"pt": "Alterar a senha para este usuário",
4803
"zh-chs": "更改該用戶的密碼",
4804
"xloc": [
4805
- "default.handlebars->27->1458"
4805
+ "default.handlebars->27->1472"
4806
]
4807
},
4808
{
@@ -4836,7 +4836,7 @@
4836
"ru": "Измените адрес электронной почты вашей учетной записи здесь.",
4837
"zh-chs": "在此處更改您的帳戶電子郵件地址。",
4838
"xloc": [
4839
- "default.handlebars->27->1013"
4839
+ "default.handlebars->27->1033"
4840
]
4841
},
4842
{
@@ -4853,7 +4853,7 @@
4853
"ru": "Измените пароль своей учетной записи, введя старый пароль и дважды новый пароль в поля ниже.",
4854
"zh-chs": "在下面的框中兩次輸入舊密碼和新密碼,以更改帳戶密碼。",
4855
"xloc": [
4856
- "default.handlebars->27->1019"
4856
+ "default.handlebars->27->1039"
4857
]
4858
},
4859
{
@@ -4870,7 +4870,7 @@
4870
"ru": "Изменение языка потребует перезагрузить страницу.",
4871
"zh-chs": "更改語言將需要刷新頁面。",
4872
"xloc": [
4873
- "default.handlebars->27->998"
4873
+ "default.handlebars->27->1018"
4874
]
4875
},
4876
{
@@ -4887,8 +4887,9 @@
4887
"ru": "Чат",
4888
"zh-chs": "聊天室",
4889
"xloc": [
4890
- "default.handlebars->27->1317",
4891
- "default.handlebars->27->548"
4890
+ "default.handlebars->27->1334",
4891
+ "default.handlebars->27->549",
4892
+ "default.handlebars->27->568"
4893
]
4894
},
4895
{
@@ -4907,8 +4908,8 @@
4908
"xloc": [
4909
"default-mobile.handlebars->9->310",
4910
"default-mobile.handlebars->9->328",
4910
- "default.handlebars->27->1191",
4911
- "default.handlebars->27->1219"
4911
+ "default.handlebars->27->1208",
4912
+ "default.handlebars->27->1236"
4913
]
4914
},
4915
{
@@ -4925,7 +4926,7 @@
4926
"ru": "Чеченский",
4927
"zh-chs": "車臣",
4928
"xloc": [
4928
- "default.handlebars->27->833"
4929
+ "default.handlebars->27->853"
4930
]
4931
},
4932
{
@@ -4993,8 +4994,8 @@
4994
"ru": "Проверка...",
4995
"zh-chs": "檢查...",
4996
"xloc": [
4996
- "default.handlebars->27->1581",
4997
- "default.handlebars->27->799"
4997
+ "default.handlebars->27->1592",
4998
+ "default.handlebars->27->819"
4999
]
5000
},
5001
{
@@ -5011,7 +5012,7 @@
5012
"ru": "Китайский",
5013
"zh-chs": "中文",
5014
"xloc": [
5014
- "default.handlebars->27->834"
5015
+ "default.handlebars->27->854"
5016
]
5017
},
5018
{
@@ -5027,7 +5028,7 @@
5028
"ru": "Китайский (Гонконг)",
5029
"zh-chs": "中文(香港)",
5030
"xloc": [
5030
- "default.handlebars->27->835"
5031
+ "default.handlebars->27->855"
5032
]
5033
},
5034
{
@@ -5043,7 +5044,7 @@
5044
"ru": "Китайский (КНР)",
5045
"zh-chs": "中文(中國)",
5046
"xloc": [
5046
- "default.handlebars->27->836"
5047
+ "default.handlebars->27->856"
5048
]
5049
},
5050
{
@@ -5052,7 +5053,7 @@
5053
"nl": "Chinees (Vereenvoudigd)",
5054
"pt": "Chinês (simplificado)",
5055
"xloc": [
5055
- "default.handlebars->27->996"
5056
+ "default.handlebars->27->1016"
5057
]
5058
},
5059
{
@@ -5068,7 +5069,7 @@
5069
"ru": "Китайский (Сингапур)",
5070
"zh-chs": "中文(新加坡)",
5071
"xloc": [
5071
- "default.handlebars->27->837"
5072
+ "default.handlebars->27->857"
5073
]
5074
},
5075
{
@@ -5084,7 +5085,7 @@
5085
"ru": "Китайский (Тайвань)",
5086
"zh-chs": "中文(台灣)",
5087
"xloc": [
5087
- "default.handlebars->27->838"
5088
+ "default.handlebars->27->858"
5089
]
5090
},
5091
{
@@ -5117,7 +5118,7 @@
5118
"ru": "Чувашский",
5119
"zh-chs": "楚瓦什",
5120
"xloc": [
5120
- "default.handlebars->27->839"
5121
+ "default.handlebars->27->859"
5122
]
5123
},
5124
{
@@ -5134,7 +5135,7 @@
5135
"ru": "Очистка CIRA",
5136
"zh-chs": "清理CIRA",
5137
"xloc": [
5137
- "default.handlebars->27->246"
5138
+ "default.handlebars->27->247"
5139
]
5140
},
5141
{
@@ -5157,11 +5158,11 @@
5158
"default-mobile.handlebars->9->271",
5159
"default-mobile.handlebars->9->28",
5160
"default-mobile.handlebars->9->94",
5160
- "default.handlebars->27->1294",
5161
- "default.handlebars->27->693",
5162
- "default.handlebars->27->695",
5163
- "default.handlebars->27->697",
5164
- "default.handlebars->27->699",
5161
+ "default.handlebars->27->1311",
5162
+ "default.handlebars->27->713",
5163
+ "default.handlebars->27->715",
5164
+ "default.handlebars->27->717",
5165
+ "default.handlebars->27->719",
5166
"default.handlebars->container->column_l->p15->consoleTable->1->6->1->1->1->0->7",
5167
"default.handlebars->container->column_l->p41->3->1",
5168
"messenger.handlebars->xbottom"
@@ -5198,7 +5199,7 @@
5199
"ru": "Очистить ядро",
5200
"zh-chs": "清除核心",
5201
"xloc": [
5201
- "default.handlebars->27->777"
5202
+ "default.handlebars->27->797"
5203
]
5204
},
5205
{
@@ -5222,7 +5223,7 @@
5223
"en": "Clear this notification",
5224
"nl": "Wis deze melding",
5225
"xloc": [
5225
- "default.handlebars->27->1512"
5226
+ "default.handlebars->27->1523"
5227
]
5228
},
5229
{
@@ -5239,7 +5240,7 @@
5240
"ru": "Для изменения имени устройства на сервере нажмите сюда",
5241
"zh-chs": "單擊此處編輯服務器端設備名稱",
5242
"xloc": [
5242
- "default.handlebars->27->438"
5243
+ "default.handlebars->27->439"
5244
]
5245
},
5246
{
@@ -5257,7 +5258,7 @@
5258
"zh-chs": "單擊確定將驗證郵件發送到:",
5259
"xloc": [
5260
"default-mobile.handlebars->9->37",
5260
- "default.handlebars->27->1010"
5261
+ "default.handlebars->27->1030"
5262
]
5263
},
5264
{
@@ -5290,7 +5291,7 @@
5291
"pt": "Client Control Mode (CCM)",
5292
"zh-chs": "客戶端控制模式(CCM)",
5293
"xloc": [
5293
- "default.handlebars->27->741"
5294
+ "default.handlebars->27->761"
5295
]
5296
},
5297
{
@@ -5307,8 +5308,8 @@
5308
"ru": "Клиент инициировал удаленный доступ",
5309
"zh-chs": "客戶端啟動的遠程訪問",
5310
"xloc": [
5310
- "default.handlebars->27->1131",
5311
- "default.handlebars->27->1136"
5311
+ "default.handlebars->27->1148",
5312
+ "default.handlebars->27->1153"
5313
]
5314
},
5315
{
@@ -5345,7 +5346,7 @@
5346
"default-mobile.handlebars->9->26",
5347
"default.handlebars->27->116",
5348
"default.handlebars->27->124",
5348
- "default.handlebars->27->651"
5349
+ "default.handlebars->27->671"
5350
]
5351
},
5352
{
@@ -5380,8 +5381,8 @@
5381
"ru": "Общие группы устройств",
5382
"zh-chs": "通用設備組",
5383
"xloc": [
5383
- "default.handlebars->27->1399",
5384
- "default.handlebars->27->1483"
5384
+ "default.handlebars->27->1416",
5385
+ "default.handlebars->27->1497"
5386
]
5387
},
5388
{
@@ -5394,7 +5395,7 @@
5395
"pt": "Dispositivos comuns",
5396
"zh-chs": "通用設備",
5397
"xloc": [
5397
- "default.handlebars->27->1477"
5398
+ "default.handlebars->27->1491"
5399
]
5400
},
5401
{
@@ -5411,7 +5412,7 @@
5412
"zh-chs": "將{1}入口{2}中的{0}限製到此位置?",
5413
"xloc": [
5414
"default-mobile.handlebars->9->89",
5414
- "default.handlebars->27->1289"
5415
+ "default.handlebars->27->1306"
5416
]
5417
},
5418
{
@@ -5430,11 +5431,11 @@
5431
"xloc": [
5432
"default-mobile.handlebars->9->223",
5433
"default-mobile.handlebars->9->290",
5433
- "default.handlebars->27->1145",
5434
- "default.handlebars->27->1414",
5435
- "default.handlebars->27->381",
5436
- "default.handlebars->27->582",
5437
- "default.handlebars->27->591"
5434
+ "default.handlebars->27->1162",
5435
+ "default.handlebars->27->1428",
5436
+ "default.handlebars->27->382",
5437
+ "default.handlebars->27->602",
5438
+ "default.handlebars->27->611"
5439
]
5440
},
5441
{
@@ -5451,7 +5452,7 @@
5452
"zh-chs": "確認將1個副本複製到此位置?",
5453
"xloc": [
5454
"default-mobile.handlebars->9->260",
5454
- "default.handlebars->27->688"
5455
+ "default.handlebars->27->708"
5456
]
5457
},
5458
{
@@ -5468,7 +5469,7 @@
5469
"zh-chs": "確認{0}個條目的副本到此位置?",
5470
"xloc": [
5471
"default-mobile.handlebars->9->259",
5471
- "default.handlebars->27->687"
5472
+ "default.handlebars->27->707"
5473
]
5474
},
5475
{
@@ -5485,7 +5486,7 @@
5486
"ru": "Подтвердить удаление выбранных устройств?",
5487
"zh-chs": "確認刪除所選設備?",
5488
"xloc": [
5488
- "default.handlebars->27->380"
5489
+ "default.handlebars->27->381"
5490
]
5491
},
5492
{
@@ -5498,7 +5499,7 @@
5499
"pt": "Confirmar exclusão do usuário {0}?",
5500
"zh-chs": "確認刪除用戶{0}?",
5501
"xloc": [
5501
- "default.handlebars->27->1475"
5502
+ "default.handlebars->27->1489"
5503
]
5504
},
5505
{
@@ -5515,7 +5516,7 @@
5516
"zh-chs": "確認將1個入口移動到此位置?",
5517
"xloc": [
5518
"default-mobile.handlebars->9->262",
5518
- "default.handlebars->27->690"
5519
+ "default.handlebars->27->710"
5520
]
5521
},
5522
{
@@ -5532,7 +5533,7 @@
5533
"zh-chs": "確認將{0}個條目移到此位置?",
5534
"xloc": [
5535
"default-mobile.handlebars->9->261",
5535
- "default.handlebars->27->689"
5536
+ "default.handlebars->27->709"
5537
]
5538
},
5539
{
@@ -5549,7 +5550,7 @@
5550
"ru": "Подтвердить перезапись?",
5551
"zh-chs": "確認覆蓋?",
5552
"xloc": [
5552
- "default.handlebars->27->1288"
5553
+ "default.handlebars->27->1305"
5554
]
5555
},
5556
{
@@ -5567,7 +5568,7 @@
5568
"zh-chs": "確認刪除身份驗證器應用程序兩步登錄?",
5569
"xloc": [
5570
"default-mobile.handlebars->9->36",
5570
- "default.handlebars->27->789"
5571
+ "default.handlebars->27->809"
5572
]
5573
},
5574
{
@@ -5584,15 +5585,15 @@
5585
"ru": "Подтвердить удаление группы устройств {0}?",
5586
"zh-chs": "確認刪除設備組{0}?",
5587
"xloc": [
5587
- "default.handlebars->27->1409",
5588
- "default.handlebars->27->1507"
5588
+ "default.handlebars->27->1423",
5589
+ "default.handlebars->27->1518"
5590
]
5591
},
5592
{
5593
"en": "Confirm removal of device {0}?",
5594
"nl": "Bevestig het verwijderen van apparaat {0}?",
5595
"xloc": [
5595
- "default.handlebars->27->1498"
5596
+ "default.handlebars->27->1509"
5597
]
5598
},
5599
{
@@ -5609,7 +5610,7 @@
5610
"ru": "Подтвердить удаление группы {0}?",
5611
"zh-chs": "確認刪除組{0}?",
5612
"xloc": [
5612
- "default.handlebars->27->1503"
5613
+ "default.handlebars->27->1514"
5614
]
5615
},
5616
{
@@ -5627,9 +5628,9 @@
5628
"zh-chs": "確認刪除用戶{0}?",
5629
"xloc": [
5630
"default-mobile.handlebars->9->336",
5630
- "default.handlebars->27->1228",
5631
- "default.handlebars->27->1417",
5632
- "default.handlebars->27->1500"
5631
+ "default.handlebars->27->1245",
5632
+ "default.handlebars->27->1431",
5633
+ "default.handlebars->27->1511"
5634
]
5635
},
5636
{
@@ -5649,8 +5650,8 @@
5650
"default-mobile.handlebars->9->239",
5651
"default-mobile.handlebars->container->page_content->column_l->p10->p10desktop->deskarea1->1->3",
5652
"default-mobile.handlebars->container->page_content->column_l->p10->p10files->p13toolbar->1->0->1->3",
5652
- "default.handlebars->27->1081",
5653
- "default.handlebars->27->670",
5653
+ "default.handlebars->27->1101",
5654
+ "default.handlebars->27->690",
5655
"default.handlebars->container->column_l->p11->deskarea0->deskarea1->3->connectbutton1span",
5656
"default.handlebars->container->column_l->p12->termTable->1->1->0->1->3->connectbutton2span",
5657
"default.handlebars->container->column_l->p13->p13toolbar->1->0->1->3",
@@ -5671,7 +5672,7 @@
5672
"ru": "Подключиться ко всем",
5673
"zh-chs": "全部連接",
5674
"xloc": [
5674
- "default.handlebars->27->199",
5675
+ "default.handlebars->27->200",
5676
"default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->kvmListToolbar"
5677
]
5678
},
@@ -5689,8 +5690,8 @@
5690
"ru": "Подключиться к серверу",
5691
"zh-chs": "連接到服務器",
5692
"xloc": [
5692
- "default.handlebars->27->1135",
5693
- "default.handlebars->27->1139"
5693
+ "default.handlebars->27->1152",
5694
+ "default.handlebars->27->1156"
5695
]
5696
},
5697
{
@@ -5761,7 +5762,7 @@
5762
"ru": "Подключено Intel® AMT",
5763
"zh-chs": "連接的英特爾®AMT",
5764
"xloc": [
5764
- "default.handlebars->27->1530"
5765
+ "default.handlebars->27->1541"
5766
]
5767
},
5768
{
@@ -5778,7 +5779,7 @@
5779
"ru": "Подключенные пользователи",
5780
"zh-chs": "關聯用戶",
5781
"xloc": [
5781
- "default.handlebars->27->1535"
5782
+ "default.handlebars->27->1546"
5783
]
5784
},
5785
{
@@ -5791,7 +5792,7 @@
5792
"pt": "Conectado agora",
5793
"zh-chs": "現在已連接",
5794
"xloc": [
5794
- "default.handlebars->27->720"
5795
+ "default.handlebars->27->740"
5796
]
5797
},
5798
{
@@ -5828,10 +5829,10 @@
5829
"default-mobile.handlebars->9->2",
5830
"default-mobile.handlebars->9->275",
5831
"default-mobile.handlebars->9->6",
5831
- "default.handlebars->27->193",
5832
- "default.handlebars->27->196",
5833
- "default.handlebars->27->202",
5834
- "default.handlebars->27->711",
5832
+ "default.handlebars->27->194",
5833
+ "default.handlebars->27->197",
5834
+ "default.handlebars->27->203",
5835
+ "default.handlebars->27->731",
5836
"default.handlebars->27->9",
5837
"xterm.handlebars->9->2"
5838
]
@@ -5850,7 +5851,7 @@
5851
"ru": "Подключений ",
5852
"zh-chs": "連接數",
5853
"xloc": [
5853
- "default.handlebars->27->1546"
5854
+ "default.handlebars->27->1557"
5855
]
5856
},
5857
{
@@ -5867,7 +5868,7 @@
5868
"ru": "Ретранслятор подключения",
5869
"zh-chs": "連接繼電器",
5870
"xloc": [
5870
- "default.handlebars->27->1574"
5871
+ "default.handlebars->27->1585"
5872
]
5873
},
5874
{
@@ -5919,9 +5920,9 @@
5920
"zh-chs": "連接性",
5921
"xloc": [
5922
"default-mobile.handlebars->9->198",
5922
- "default.handlebars->27->1259",
5923
- "default.handlebars->27->184",
5924
- "default.handlebars->27->493",
5923
+ "default.handlebars->27->1276",
5924
+ "default.handlebars->27->185",
5925
+ "default.handlebars->27->494",
5926
"default.handlebars->container->column_l->p21->3->1->meshConnChartDiv->1"
5927
]
5928
},
@@ -5939,7 +5940,8 @@
5940
"ru": "Консоль",
5941
"zh-chs": "安慰",
5942
"xloc": [
5942
- "default.handlebars->27->543",
5943
+ "default.handlebars->27->544",
5944
+ "default.handlebars->27->563",
5945
"default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevConsole",
5946
"default.handlebars->container->topbar->1->1->ServerSubMenuSpan->ServerSubMenu->1->0->ServerConsole",
5947
"default.handlebars->contextMenu->cxconsole"
@@ -5959,13 +5961,14 @@
5961
"ru": "Консоль - ",
5962
"zh-chs": "安慰 -",
5963
"xloc": [
5962
- "default.handlebars->27->439"
5964
+ "default.handlebars->27->440"
5965
]
5966
},
5967
{
5968
"en": "Control",
5969
"xloc": [
5968
- "default.handlebars->27->542"
5970
+ "default.handlebars->27->543",
5971
+ "default.handlebars->27->562"
5972
]
5973
},
5974
{
@@ -5981,7 +5984,7 @@
5984
"ru": "Cookie-кодировщик",
5985
"zh-chs": "Cookie編碼器",
5986
"xloc": [
5984
- "default.handlebars->27->1560"
5987
+ "default.handlebars->27->1571"
5988
]
5989
},
5990
{
@@ -6036,7 +6039,7 @@
6039
"ru": "Скопировать ссылку MacOS agent в буфер обмена",
6040
"zh-chs": "將MacOS代理URL複製到剪貼板",
6041
"xloc": [
6039
- "default.handlebars->27->321"
6042
+ "default.handlebars->27->322"
6043
]
6044
},
6045
{
@@ -6074,7 +6077,7 @@
6077
"ru": "Скопировать ссылку в буфер обмена",
6078
"zh-chs": "複製鏈接到剪貼板",
6079
"xloc": [
6077
- "default.handlebars->27->295"
6080
+ "default.handlebars->27->296"
6081
]
6082
},
6083
{
@@ -6241,7 +6244,7 @@
6244
"ru": "Основной сервер",
6245
"zh-chs": "核心服務器",
6246
"xloc": [
6244
- "default.handlebars->27->1559"
6247
+ "default.handlebars->27->1570"
6248
]
6249
},
6250
{
@@ -6257,7 +6260,7 @@
6260
"ru": "Kорсиканский",
6261
"zh-chs": "科西嘉人",
6262
"xloc": [
6260
- "default.handlebars->27->840"
6263
+ "default.handlebars->27->860"
6264
]
6265
},
6266
{
@@ -6274,7 +6277,7 @@
6277
"ru": "Создать учетную запись",
6278
"zh-chs": "創建帳號",
6279
"xloc": [
6277
- "default.handlebars->27->1359",
6280
+ "default.handlebars->27->1376",
6281
"login-mobile.handlebars->container->page_content->column_l->1->1->0->1->createpanel->1->1->9->1->12->1->1",
6282
"login.handlebars->container->column_l->centralTable->1->0->logincell->createpanel->1->9->1->12->1->1"
6283
]
@@ -6310,7 +6313,7 @@
6313
"ru": "Создать группу пользователей",
6314
"zh-chs": "創建用戶組",
6315
"xloc": [
6313
- "default.handlebars->27->1382"
6316
+ "default.handlebars->27->1399"
6317
]
6318
},
6319
{
@@ -6327,7 +6330,7 @@
6330
"ru": "Создайте новую группу устройств, используя параметры ниже.",
6331
"zh-chs": "使用以下選項創建一個新的設備組。",
6332
"xloc": [
6330
- "default.handlebars->27->1033"
6333
+ "default.handlebars->27->1053"
6334
]
6335
},
6336
{
@@ -6344,7 +6347,7 @@
6347
"ru": "Создать новую группу устройств.",
6348
"zh-chs": "創建一個新的設備組。",
6349
"xloc": [
6347
- "default.handlebars->27->186"
6350
+ "default.handlebars->27->187"
6351
]
6352
},
6353
{
@@ -6361,7 +6364,7 @@
6364
"ru": "Создайте сразу несколько учетных записей, импортировав файл JSON в следующем формате:",
6365
"zh-chs": "通過導入以下格式的JSON文件一次創建多個帳戶:",
6366
"xloc": [
6364
- "default.handlebars->27->1330"
6367
+ "default.handlebars->27->1347"
6368
]
6369
},
6370
{
@@ -6396,7 +6399,7 @@
6399
"ru": "Создано",
6400
"zh-chs": "創建",
6401
"xloc": [
6399
- "default.handlebars->27->1436"
6402
+ "default.handlebars->27->1450"
6403
]
6404
},
6405
{
@@ -6428,7 +6431,7 @@
6431
"ru": "Кри (Канадский язык)",
6432
"zh-chs": "克里",
6433
"xloc": [
6431
- "default.handlebars->27->841"
6434
+ "default.handlebars->27->861"
6435
]
6436
},
6437
{
@@ -6443,7 +6446,7 @@
6446
"ru": "Хорватский",
6447
"zh-chs": "克羅地亞語",
6448
"xloc": [
6446
- "default.handlebars->27->842"
6449
+ "default.handlebars->27->862"
6450
]
6451
},
6452
{
@@ -6583,7 +6586,7 @@
6586
"ru": "Чешский",
6587
"zh-chs": "捷克文",
6588
"xloc": [
6586
- "default.handlebars->27->843"
6589
+ "default.handlebars->27->863"
6590
]
6591
},
6592
{
@@ -6616,7 +6619,7 @@
6619
"ru": "Датский",
6620
"zh-chs": "丹麥文",
6621
"xloc": [
6619
- "default.handlebars->27->844"
6622
+ "default.handlebars->27->864"
6623
]
6624
},
6625
{
@@ -6632,7 +6635,7 @@
6635
"ru": "DataChannel",
6636
"zh-chs": "數據通道",
6637
"xloc": [
6635
- "default.handlebars->27->628"
6638
+ "default.handlebars->27->648"
6639
]
6640
},
6641
{
@@ -6649,7 +6652,7 @@
6652
"ru": "Дата & Время",
6653
"zh-chs": "日期和時間",
6654
"xloc": [
6652
- "default.handlebars->27->1001"
6655
+ "default.handlebars->27->1021"
6656
]
6657
},
6658
{
@@ -6666,7 +6669,7 @@
6669
"ru": "День",
6670
"zh-chs": "天",
6671
"xloc": [
6669
- "default.handlebars->27->566"
6672
+ "default.handlebars->27->586"
6673
]
6674
},
6675
{
@@ -6683,7 +6686,7 @@
6686
"ru": "Деактивировать режим управления клиентом (CCM)",
6687
"zh-chs": "停用客戶端控制模式(CCM)",
6688
"xloc": [
6686
- "default.handlebars->27->1123"
6689
+ "default.handlebars->27->1140"
6690
]
6691
},
6692
{
@@ -6701,7 +6704,7 @@
6704
"zh-chs": "沉睡",
6705
"xloc": [
6706
"default-mobile.handlebars->9->113",
6704
- "default.handlebars->27->340"
6707
+ "default.handlebars->27->341"
6708
]
6709
},
6710
{
@@ -6722,9 +6725,9 @@
6725
"default-mobile.handlebars->9->84",
6726
"default-mobile.handlebars->container->page_content->column_l->p10->p10files->p13toolbar->1->2->1->1",
6727
"default-mobile.handlebars->container->page_content->column_l->p5->p5myfiles->p5toolbar->1->0->1->1",
6725
- "default.handlebars->27->1283",
6726
- "default.handlebars->27->411",
6727
- "default.handlebars->27->680",
6728
+ "default.handlebars->27->1300",
6729
+ "default.handlebars->27->412",
6730
+ "default.handlebars->27->700",
6731
"default.handlebars->container->column_l->p13->p13toolbar->1->2->1->3",
6732
"default.handlebars->container->column_l->p5->p5toolbar->1->0->p5filehead->3",
6733
"default.handlebars->container->dialog->idx_dlgButtonBar->5",
@@ -6748,7 +6751,7 @@
6751
"zh-chs": "刪除帳戶",
6752
"xloc": [
6753
"default-mobile.handlebars->9->46",
6751
- "default.handlebars->27->1018"
6754
+ "default.handlebars->27->1038"
6755
]
6756
},
6757
{
@@ -6766,7 +6769,7 @@
6769
"zh-chs": "刪除裝置",
6770
"xloc": [
6771
"default-mobile.handlebars->9->202",
6769
- "default.handlebars->27->504"
6772
+ "default.handlebars->27->505"
6773
]
6774
},
6775
{
@@ -6785,8 +6788,8 @@
6788
"xloc": [
6789
"default-mobile.handlebars->9->288",
6790
"default-mobile.handlebars->9->291",
6788
- "default.handlebars->27->1116",
6789
- "default.handlebars->27->1146"
6791
+ "default.handlebars->27->1133",
6792
+ "default.handlebars->27->1163"
6793
]
6794
},
6795
{
@@ -6804,7 +6807,7 @@
6807
"zh-chs": "刪除節點",
6808
"xloc": [
6809
"default-mobile.handlebars->9->221",
6807
- "default.handlebars->27->592"
6810
+ "default.handlebars->27->612"
6811
]
6812
},
6813
{
@@ -6821,7 +6824,7 @@
6824
"ru": "Удалить устройства",
6825
"zh-chs": "刪除節點",
6826
"xloc": [
6824
- "default.handlebars->27->382"
6827
+ "default.handlebars->27->383"
6828
]
6829
},
6830
{
@@ -6838,7 +6841,7 @@
6841
"ru": "Удалить пользователя",
6842
"zh-chs": "刪除用戶",
6843
"xloc": [
6841
- "default.handlebars->27->1457"
6844
+ "default.handlebars->27->1471"
6845
]
6846
},
6847
{
@@ -6855,8 +6858,8 @@
6858
"ru": "Удалить группу пользователей",
6859
"zh-chs": "刪除用戶組",
6860
"xloc": [
6858
- "default.handlebars->27->1407",
6859
- "default.handlebars->27->1415"
6861
+ "default.handlebars->27->1421",
6862
+ "default.handlebars->27->1429"
6863
]
6864
},
6865
{
@@ -6873,7 +6876,7 @@
6876
"ru": "Удалить пользователя {0}",
6877
"zh-chs": "刪除用戶{0}",
6878
"xloc": [
6876
- "default.handlebars->27->1474"
6879
+ "default.handlebars->27->1488"
6880
]
6881
},
6882
{
@@ -6908,7 +6911,7 @@
6911
"ru": "Удалить устройства",
6912
"zh-chs": "刪除設備",
6913
"xloc": [
6911
- "default.handlebars->27->377"
6914
+ "default.handlebars->27->378"
6915
]
6916
},
6917
{
@@ -6922,7 +6925,7 @@
6925
"pt": "Apagar item?",
6926
"zh-chs": "刪除項目?",
6927
"xloc": [
6925
- "default.handlebars->27->412"
6928
+ "default.handlebars->27->413"
6929
]
6930
},
6931
{
@@ -6941,8 +6944,8 @@
6944
"xloc": [
6945
"default-mobile.handlebars->9->254",
6946
"default-mobile.handlebars->9->86",
6944
- "default.handlebars->27->1285",
6945
- "default.handlebars->27->682"
6947
+ "default.handlebars->27->1302",
6948
+ "default.handlebars->27->702"
6949
]
6950
},
6951
{
@@ -6959,7 +6962,7 @@
6962
"ru": "Удалить группу пользователей {0}?",
6963
"zh-chs": "刪除用戶組{0}?",
6964
"xloc": [
6962
- "default.handlebars->27->1413"
6965
+ "default.handlebars->27->1427"
6966
]
6967
},
6968
{
@@ -6978,8 +6981,8 @@
6981
"xloc": [
6982
"default-mobile.handlebars->9->253",
6983
"default-mobile.handlebars->9->85",
6981
- "default.handlebars->27->1284",
6982
- "default.handlebars->27->681"
6984
+ "default.handlebars->27->1301",
6985
+ "default.handlebars->27->701"
6986
]
6987
},
6988
{
@@ -7079,17 +7082,17 @@
7082
"default-mobile.handlebars->9->280",
7083
"default-mobile.handlebars->9->293",
7084
"default-mobile.handlebars->9->63",
7082
- "default.handlebars->27->1038",
7083
- "default.handlebars->27->1062",
7084
- "default.handlebars->27->1148",
7085
- "default.handlebars->27->1381",
7086
- "default.handlebars->27->1386",
7087
- "default.handlebars->27->1388",
7088
- "default.handlebars->27->1411",
7089
- "default.handlebars->27->451",
7085
+ "default.handlebars->27->1058",
7086
+ "default.handlebars->27->1082",
7087
+ "default.handlebars->27->1165",
7088
+ "default.handlebars->27->1398",
7089
+ "default.handlebars->27->1403",
7090
+ "default.handlebars->27->1405",
7091
+ "default.handlebars->27->1425",
7092
"default.handlebars->27->452",
7091
- "default.handlebars->27->624",
7092
- "default.handlebars->27->726",
7093
+ "default.handlebars->27->453",
7094
+ "default.handlebars->27->644",
7095
+ "default.handlebars->27->746",
7096
"default.handlebars->27->77",
7097
"default.handlebars->container->column_l->p42->p42tbl->1->0->3"
7098
]
@@ -7121,8 +7124,8 @@
7124
"ru": "Рабочий стол",
7125
"zh-chs": "桌面",
7126
"xloc": [
7124
- "default.handlebars->27->1150",
7125
- "default.handlebars->27->417",
7127
+ "default.handlebars->27->1167",
7128
+ "default.handlebars->27->418",
7129
"default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevDesktop",
7130
"default.handlebars->contextMenu->cxdesktop"
7131
]
@@ -7158,7 +7161,7 @@
7161
"ru": "Уведомление на рабочем столе",
7162
"zh-chs": "桌面通知",
7163
"xloc": [
7161
- "default.handlebars->27->1072"
7164
+ "default.handlebars->27->1092"
7165
]
7166
},
7167
{
@@ -7175,7 +7178,7 @@
7178
"ru": "Запрос рабочего стола",
7179
"zh-chs": "桌面提示",
7180
"xloc": [
7178
- "default.handlebars->27->1071"
7181
+ "default.handlebars->27->1091"
7182
]
7183
},
7184
{
@@ -7191,7 +7194,7 @@
7194
"ru": "Запрос рабочего стола + панель инструментов",
7195
"zh-chs": "桌面提示+工具欄",
7196
"xloc": [
7194
- "default.handlebars->27->1069"
7197
+ "default.handlebars->27->1089"
7198
]
7199
},
7200
{
@@ -7207,7 +7210,7 @@
7210
"ru": "Панель инструментов рабочего стола",
7211
"zh-chs": "桌面工具欄",
7212
"xloc": [
7210
- "default.handlebars->27->1070"
7213
+ "default.handlebars->27->1090"
7214
]
7215
},
7216
{
@@ -7274,8 +7277,8 @@
7277
"ru": "Устройство",
7278
"zh-chs": "設備",
7279
"xloc": [
7277
- "default.handlebars->27->1172",
7278
- "default.handlebars->27->1480",
7280
+ "default.handlebars->27->1189",
7281
+ "default.handlebars->27->1494",
7282
"default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->9->devListToolbarSort->sortselect->5"
7283
]
7284
},
@@ -7293,7 +7296,7 @@
7296
"zh-chs": "設備動作",
7297
"xloc": [
7298
"default-mobile.handlebars->9->214",
7296
- "default.handlebars->27->565"
7299
+ "default.handlebars->27->585"
7300
]
7301
},
7302
{
@@ -7310,12 +7313,11 @@
7313
"ru": "Группа устройства",
7314
"zh-chs": "設備組",
7315
"xloc": [
7313
- "default.handlebars->27->1168",
7314
- "default.handlebars->27->1170",
7315
- "default.handlebars->27->1171",
7316
- "default.handlebars->27->1405",
7317
- "default.handlebars->27->1489",
7318
- "default.handlebars->27->1495"
7316
+ "default.handlebars->27->1185",
7317
+ "default.handlebars->27->1187",
7318
+ "default.handlebars->27->1188",
7319
+ "default.handlebars->27->1419",
7320
+ "default.handlebars->27->1500"
7321
]
7322
},
7323
{
@@ -7333,7 +7335,7 @@
7335
"zh-chs": "設備組用戶",
7336
"xloc": [
7337
"default-mobile.handlebars->9->334",
7336
- "default.handlebars->27->1226"
7338
+ "default.handlebars->27->1243"
7339
]
7340
},
7341
{
@@ -7351,10 +7353,10 @@
7353
"zh-chs": "設備組",
7354
"xloc": [
7355
"default-mobile.handlebars->container->page_content->column_l->p3->p3info->1->3",
7354
- "default.handlebars->27->1377",
7355
- "default.handlebars->27->1390",
7356
- "default.handlebars->27->1445",
7357
- "default.handlebars->27->1533",
7356
+ "default.handlebars->27->1394",
7357
+ "default.handlebars->27->1407",
7358
+ "default.handlebars->27->1459",
7359
+ "default.handlebars->27->1544",
7360
"default.handlebars->container->column_l->p2->9"
7361
]
7362
},
@@ -7369,7 +7371,7 @@
7371
"pt": "Exportação de informações do dispositivo",
7372
"zh-chs": "設備信息導出",
7373
"xloc": [
7372
- "default.handlebars->27->388"
7374
+ "default.handlebars->27->389"
7375
]
7376
},
7377
{
@@ -7386,7 +7388,7 @@
7388
"ru": "Местонахождение устройства",
7389
"zh-chs": "設備位置",
7390
"xloc": [
7389
- "default.handlebars->27->593"
7391
+ "default.handlebars->27->613"
7392
]
7393
},
7394
{
@@ -7404,8 +7406,8 @@
7406
"zh-chs": "設備名稱",
7407
"xloc": [
7408
"default-mobile.handlebars->9->225",
7407
- "default.handlebars->27->220",
7408
- "default.handlebars->27->622",
7409
+ "default.handlebars->27->221",
7410
+ "default.handlebars->27->642",
7411
"player.handlebars->3->9"
7412
]
7413
},
@@ -7423,7 +7425,7 @@
7425
"ru": "Уведомление устройства",
7426
"zh-chs": "設備通知",
7427
"xloc": [
7426
- "default.handlebars->27->556"
7428
+ "default.handlebars->27->576"
7429
]
7430
},
7431
{
@@ -7456,8 +7458,8 @@
7458
"ru": "Подключения устройств.",
7459
"zh-chs": "設備連接。",
7460
"xloc": [
7459
- "default.handlebars->27->1006",
7460
- "default.handlebars->27->1245"
7461
+ "default.handlebars->27->1026",
7462
+ "default.handlebars->27->1262"
7463
]
7464
},
7465
{
@@ -7474,8 +7476,8 @@
7476
"ru": "Отключения устройств.",
7477
"zh-chs": "設備斷開連接。",
7478
"xloc": [
7477
- "default.handlebars->27->1007",
7478
- "default.handlebars->27->1246"
7479
+ "default.handlebars->27->1027",
7480
+ "default.handlebars->27->1263"
7481
]
7482
},
7483
{
@@ -7492,7 +7494,7 @@
7494
"ru": "Примечания могут быть просмотрены и изменены другими администраторами.",
7495
"zh-chs": "其他設備組管理員可以查看和更改設備組註釋。",
7496
"xloc": [
7495
- "default.handlebars->27->554"
7497
+ "default.handlebars->27->574"
7498
]
7499
},
7500
{
@@ -7509,7 +7511,7 @@
7511
"ru": "Устройство обнаружено, но состояние питания не может быть получено.",
7512
"zh-chs": "檢測到設備,但無法獲得電源狀態。",
7513
"xloc": [
7512
- "default.handlebars->27->345"
7514
+ "default.handlebars->27->346"
7515
]
7516
},
7517
{
@@ -7527,7 +7529,7 @@
7529
"zh-chs": "設備正在休眠(S4)",
7530
"xloc": [
7531
"default-mobile.handlebars->9->121",
7530
- "default.handlebars->27->351"
7532
+ "default.handlebars->27->352"
7533
]
7534
},
7535
{
@@ -7545,7 +7547,7 @@
7547
"zh-chs": "設備處於深度睡眠狀態(S3)",
7548
"xloc": [
7549
"default-mobile.handlebars->9->120",
7548
- "default.handlebars->27->350"
7550
+ "default.handlebars->27->351"
7551
]
7552
},
7553
{
@@ -7562,7 +7564,7 @@
7564
"ru": "Устройство находится в состоянии глубокого сна (S3).",
7565
"zh-chs": "設備處於深度睡眠狀態(S3)。",
7566
"xloc": [
7565
- "default.handlebars->27->339"
7567
+ "default.handlebars->27->340"
7568
]
7569
},
7570
{
@@ -7579,7 +7581,7 @@
7581
"ru": "Устройство находится в режиме гибернации (S4).",
7582
"zh-chs": "設備處於休眠狀態(S4)。",
7583
"xloc": [
7582
- "default.handlebars->27->341"
7584
+ "default.handlebars->27->342"
7585
]
7586
},
7587
{
@@ -7596,7 +7598,7 @@
7598
"ru": "Устройство находится в выключенном состоянии (S5).",
7599
"zh-chs": "設備處於關機狀態(S5)。",
7600
"xloc": [
7599
- "default.handlebars->27->343"
7601
+ "default.handlebars->27->344"
7602
]
7603
},
7604
{
@@ -7614,7 +7616,7 @@
7616
"zh-chs": "設備處於睡眠狀態(S1)",
7617
"xloc": [
7618
"default-mobile.handlebars->9->118",
7617
- "default.handlebars->27->348"
7619
+ "default.handlebars->27->349"
7620
]
7621
},
7622
{
@@ -7631,7 +7633,7 @@
7633
"ru": "Устройство находится в спящем режиме (S1).",
7634
"zh-chs": "設備處於睡眠狀態(S1)。",
7635
"xloc": [
7634
- "default.handlebars->27->335"
7636
+ "default.handlebars->27->336"
7637
]
7638
},
7639
{
@@ -7649,7 +7651,7 @@
7651
"zh-chs": "設備處於睡眠狀態(S2)",
7652
"xloc": [
7653
"default-mobile.handlebars->9->119",
7652
- "default.handlebars->27->349"
7654
+ "default.handlebars->27->350"
7655
]
7656
},
7657
{
@@ -7666,7 +7668,7 @@
7668
"ru": "Устройство находится в спящем режиме (S2).",
7669
"zh-chs": "設備處於睡眠狀態(S2)。",
7670
"xloc": [
7669
- "default.handlebars->27->337"
7671
+ "default.handlebars->27->338"
7672
]
7673
},
7674
{
@@ -7684,7 +7686,7 @@
7686
"zh-chs": "設備處於軟斷開狀態(S5)",
7687
"xloc": [
7688
"default-mobile.handlebars->9->122",
7687
- "default.handlebars->27->352"
7689
+ "default.handlebars->27->353"
7690
]
7691
},
7692
{
@@ -7702,7 +7704,7 @@
7704
"zh-chs": "設備已上電",
7705
"xloc": [
7706
"default-mobile.handlebars->9->117",
7705
- "default.handlebars->27->347"
7707
+ "default.handlebars->27->348"
7708
]
7709
},
7710
{
@@ -7719,7 +7721,7 @@
7721
"ru": "Устройство включено.",
7722
"zh-chs": "設備上電。",
7723
"xloc": [
7722
- "default.handlebars->27->333"
7724
+ "default.handlebars->27->334"
7725
]
7726
},
7727
{
@@ -7737,7 +7739,7 @@
7739
"zh-chs": "設備存在,但無法確定電源狀態",
7740
"xloc": [
7741
"default-mobile.handlebars->9->123",
7740
- "default.handlebars->27->353"
7742
+ "default.handlebars->27->354"
7743
]
7744
},
7745
{
@@ -7754,7 +7756,7 @@
7756
"ru": "Имя устройства",
7757
"zh-chs": "設備名稱",
7758
"xloc": [
7757
- "default.handlebars->27->429"
7759
+ "default.handlebars->27->430"
7760
]
7761
},
7762
{
@@ -7770,7 +7772,7 @@
7772
"ru": "DeviceCheckbox",
7773
"zh-chs": "設備複選框",
7774
"xloc": [
7773
- "default.handlebars->27->379"
7775
+ "default.handlebars->27->380"
7776
]
7777
},
7778
{
@@ -7787,7 +7789,7 @@
7789
"ru": "Отключено",
7790
"zh-chs": "殘障人士",
7791
"xloc": [
7790
- "default.handlebars->27->478"
7792
+ "default.handlebars->27->479"
7793
]
7794
},
7795
{
@@ -7806,8 +7808,8 @@
7808
"xloc": [
7809
"default-mobile.handlebars->9->240",
7810
"default-mobile.handlebars->container->page_content->column_l->p10->p10desktop->deskarea1->1->3",
7809
- "default.handlebars->27->1082",
7810
- "default.handlebars->27->671",
7811
+ "default.handlebars->27->1102",
7812
+ "default.handlebars->27->691",
7813
"default.handlebars->container->column_l->p11->deskarea0->deskarea1->3->disconnectbutton1span",
7814
"default.handlebars->container->column_l->p12->termTable->1->1->0->1->3->disconnectbutton2span",
7815
"xterm.handlebars->p11->deskarea0->deskarea1->3"
@@ -7847,10 +7849,10 @@
7849
"default-mobile.handlebars->9->1",
7850
"default-mobile.handlebars->container->page_content->column_l->p10->p10desktop->deskarea1->1->3->deskstatus",
7851
"default-mobile.handlebars->container->page_content->column_l->p10->p10files->p13toolbar->1->0->1->3->p13Status",
7850
- "default.handlebars->27->175",
7851
- "default.handlebars->27->192",
7852
- "default.handlebars->27->195",
7853
- "default.handlebars->27->201",
7852
+ "default.handlebars->27->176",
7853
+ "default.handlebars->27->193",
7854
+ "default.handlebars->27->196",
7855
+ "default.handlebars->27->202",
7856
"default.handlebars->27->8",
7857
"default.handlebars->container->column_l->p11->deskarea0->deskarea1->3->deskstatus",
7858
"default.handlebars->container->column_l->p12->termTable->1->1->0->1->3->termstatus",
@@ -7889,7 +7891,7 @@
7891
"ru": "Отобразить имя группы устройств",
7892
"zh-chs": "顯示設備組名稱",
7893
"xloc": [
7892
- "default.handlebars->27->1005"
7894
+ "default.handlebars->27->1025"
7895
]
7896
},
7897
{
@@ -7906,7 +7908,7 @@
7908
"ru": "Отображаемое имя",
7909
"zh-chs": "顯示名稱",
7910
"xloc": [
7909
- "default.handlebars->27->642"
7911
+ "default.handlebars->27->662"
7912
]
7913
},
7914
{
@@ -7923,7 +7925,7 @@
7925
"ru": "Ничего не делать",
7926
"zh-chs": "沒做什麼",
7927
"xloc": [
7926
- "default.handlebars->27->1129"
7928
+ "default.handlebars->27->1146"
7929
]
7930
},
7931
{
@@ -7958,8 +7960,8 @@
7960
"ru": "Не настраивать",
7961
"zh-chs": "不要配置",
7962
"xloc": [
7961
- "default.handlebars->27->1133",
7962
- "default.handlebars->27->1138"
7963
+ "default.handlebars->27->1150",
7964
+ "default.handlebars->27->1155"
7965
]
7966
},
7967
{
@@ -7976,7 +7978,7 @@
7978
"ru": "Не подключаться к серверу",
7979
"zh-chs": "不連接服務器",
7980
"xloc": [
7979
- "default.handlebars->27->1134"
7981
+ "default.handlebars->27->1151"
7982
]
7983
},
7984
{
@@ -8030,7 +8032,7 @@
8032
"zh-chs": "下載文件",
8033
"xloc": [
8034
"default-mobile.handlebars->9->273",
8033
- "default.handlebars->27->700"
8035
+ "default.handlebars->27->720"
8036
]
8037
},
8038
{
@@ -8047,7 +8049,7 @@
8049
"ru": "Скачать MeshCentral Router, инструмент сопоставления TCP портов.",
8050
"zh-chs": "下載MeshCentral Router,一個TCP端口映射工具。",
8051
"xloc": [
8050
- "default.handlebars->27->190"
8052
+ "default.handlebars->27->191"
8053
]
8054
},
8055
{
@@ -8064,7 +8066,7 @@
8066
"ru": "Скачать MeshCmd",
8067
"zh-chs": "下載MeshCmd",
8068
"xloc": [
8067
- "default.handlebars->27->613"
8069
+ "default.handlebars->27->633"
8070
]
8071
},
8072
{
@@ -8081,7 +8083,7 @@
8083
"ru": "Скачать MeshCmd, инструмент командной строки, выполняющий множество функций.",
8084
"zh-chs": "下載MeshCmd,這是一個執行許多功能的命令行工具。",
8085
"xloc": [
8084
- "default.handlebars->27->188"
8086
+ "default.handlebars->27->189"
8087
]
8088
},
8089
{
@@ -8113,7 +8115,7 @@
8115
"ru": "Скачайте \\\"meshcmd\\\" с файлом команд для маршрутизации трафика к этому устройству через сервер. Не забудьте указать пароль от своей учетной записи в meshaction.txt и сделать другие правки при необходимости.",
8116
"zh-chs": "下載帶有動作文件的“ meshcmd”,以將通過此服務器的流量路由到該設備。確保編輯meshaction.txt並添加您的帳戶密碼或進行任何必要的更改。",
8117
"xloc": [
8116
- "default.handlebars->27->606"
8118
+ "default.handlebars->27->626"
8119
]
8120
},
8121
{
@@ -8181,7 +8183,7 @@
8183
"ru": "Скачать события состояния питания",
8184
"zh-chs": "下載電源事件",
8185
"xloc": [
8184
- "default.handlebars->27->567"
8186
+ "default.handlebars->27->587"
8187
]
8188
},
8189
{
@@ -8229,7 +8231,7 @@
8231
"pt": "Faça o download da lista de dispositivos com um dos formatos de arquivo abaixo.",
8232
"zh-chs": "使用以下一種文件格式下載設備列表。",
8233
"xloc": [
8232
- "default.handlebars->27->383"
8234
+ "default.handlebars->27->384"
8235
]
8236
},
8237
{
@@ -8246,7 +8248,7 @@
8248
"ru": "Скачать список событий в одном из форматов ниже.",
8249
"zh-chs": "使用以下一種文件格式下載事件列表。",
8250
"xloc": [
8249
- "default.handlebars->27->1299"
8251
+ "default.handlebars->27->1316"
8252
]
8253
},
8254
{
@@ -8263,7 +8265,7 @@
8265
"ru": "Скачать список пользователей в одном из форматов ниже.",
8266
"zh-chs": "使用以下一種文件格式下載用戶列表。",
8267
"xloc": [
8266
- "default.handlebars->27->1338"
8268
+ "default.handlebars->27->1355"
8269
]
8270
},
8271
{
@@ -8349,7 +8351,7 @@
8351
"ru": "Скопировать агент",
8352
"zh-chs": "代理重複",
8353
"xloc": [
8352
- "default.handlebars->27->1529"
8354
+ "default.handlebars->27->1540"
8355
]
8356
},
8357
{
@@ -8383,7 +8385,7 @@
8385
"ru": "Скопировать группу пользователей",
8386
"zh-chs": "重複的用戶組",
8387
"xloc": [
8386
- "default.handlebars->27->1383"
8388
+ "default.handlebars->27->1400"
8389
]
8390
},
8391
{
@@ -8417,7 +8419,7 @@
8419
"ru": "Во время активации агент будет иметь доступ к паролю администратора.",
8420
"zh-chs": "在激活期間,代理將有權訪問管理員密碼信息。",
8421
"xloc": [
8420
- "default.handlebars->27->1143"
8422
+ "default.handlebars->27->1160"
8423
]
8424
},
8425
{
@@ -8433,7 +8435,7 @@
8435
"ru": "Голландский (Бельгийский)",
8436
"zh-chs": "荷蘭語(比利時)",
8437
"xloc": [
8436
- "default.handlebars->27->846"
8438
+ "default.handlebars->27->866"
8439
]
8440
},
8441
{
@@ -8449,7 +8451,7 @@
8451
"ru": "Голландский (Стандартный)",
8452
"zh-chs": "荷蘭語(標準)",
8453
"xloc": [
8452
- "default.handlebars->27->845"
8454
+ "default.handlebars->27->865"
8455
]
8456
},
8457
{
@@ -8536,7 +8538,7 @@
8538
"zh-chs": "編輯裝置",
8539
"xloc": [
8540
"default-mobile.handlebars->9->230",
8539
- "default.handlebars->27->627"
8541
+ "default.handlebars->27->647"
8542
]
8543
},
8544
{
@@ -8556,9 +8558,9 @@
8558
"default-mobile.handlebars->9->294",
8559
"default-mobile.handlebars->9->296",
8560
"default-mobile.handlebars->9->314",
8559
- "default.handlebars->27->1149",
8560
- "default.handlebars->27->1176",
8561
- "default.handlebars->27->1204"
8561
+ "default.handlebars->27->1166",
8562
+ "default.handlebars->27->1193",
8563
+ "default.handlebars->27->1221"
8564
]
8565
},
8566
{
@@ -8575,7 +8577,7 @@
8577
"ru": "Редактировать функции группы устройств",
8578
"zh-chs": "編輯設備組功能",
8579
"xloc": [
8578
- "default.handlebars->27->1163"
8580
+ "default.handlebars->27->1180"
8581
]
8582
},
8583
{
@@ -8592,7 +8594,7 @@
8594
"ru": "Редактировать права группы устройств",
8595
"zh-chs": "編輯設備組權限",
8596
"xloc": [
8595
- "default.handlebars->27->1201"
8597
+ "default.handlebars->27->1218"
8598
]
8599
},
8600
{
@@ -8609,7 +8611,7 @@
8611
"ru": "Редактировать согласие пользователя группы устройств",
8612
"zh-chs": "編輯設備組用戶同意",
8613
"xloc": [
8612
- "default.handlebars->27->1160"
8614
+ "default.handlebars->27->1177"
8615
]
8616
},
8617
{
@@ -8627,14 +8629,20 @@
8629
"zh-chs": "編輯設備說明",
8630
"xloc": [
8631
"default-mobile.handlebars->9->308",
8630
- "default.handlebars->27->1189"
8632
+ "default.handlebars->27->1206"
8633
]
8634
},
8635
{
8636
"en": "Edit Device Permissions",
8637
"nl": "Bewerk apparaatrechten",
8638
"xloc": [
8637
- "default.handlebars->27->1198"
8639
+ "default.handlebars->27->1215"
8640
+ ]
8641
+ },
8642
+ {
8643
+ "en": "Edit Group",
8644
+ "xloc": [
8645
+ "default.handlebars->27->553"
8646
]
8647
},
8648
{
@@ -8652,9 +8660,9 @@
8660
"zh-chs": "編輯英特爾®AMT憑據",
8661
"xloc": [
8662
"default-mobile.handlebars->9->220",
8655
- "default.handlebars->27->466",
8656
- "default.handlebars->27->469",
8657
- "default.handlebars->27->574"
8663
+ "default.handlebars->27->467",
8664
+ "default.handlebars->27->470",
8665
+ "default.handlebars->27->594"
8666
]
8667
},
8668
{
@@ -8672,7 +8680,7 @@
8680
"zh-chs": "編輯筆記",
8681
"xloc": [
8682
"default-mobile.handlebars->9->321",
8675
- "default.handlebars->27->1211"
8683
+ "default.handlebars->27->1228"
8684
]
8685
},
8686
{
@@ -8689,13 +8697,13 @@
8697
"ru": "Редактировать права пользователя для группы устройств",
8698
"zh-chs": "編輯用戶設備組權限",
8699
"xloc": [
8692
- "default.handlebars->27->1202"
8700
+ "default.handlebars->27->1219"
8701
]
8702
},
8703
{
8704
"en": "Edit User Device Permissions",
8705
"xloc": [
8698
- "default.handlebars->27->1199"
8706
+ "default.handlebars->27->1216"
8707
]
8708
},
8709
{
@@ -8712,7 +8720,7 @@
8720
"ru": "Редактировать группу пользователей",
8721
"zh-chs": "編輯用戶組",
8722
"xloc": [
8715
- "default.handlebars->27->1412"
8723
+ "default.handlebars->27->1426"
8724
]
8725
},
8726
{
@@ -8746,11 +8754,11 @@
8754
"zh-chs": "電子郵件",
8755
"xloc": [
8756
"default-mobile.handlebars->9->40",
8749
- "default.handlebars->27->1350",
8750
- "default.handlebars->27->1432",
8751
- "default.handlebars->27->1433",
8752
- "default.handlebars->27->1462",
8753
- "default.handlebars->27->266",
8757
+ "default.handlebars->27->1367",
8758
+ "default.handlebars->27->1446",
8759
+ "default.handlebars->27->1447",
8760
+ "default.handlebars->27->1476",
8761
+ "default.handlebars->27->267",
8762
"login-mobile.handlebars->container->page_content->column_l->1->1->0->1->tokenpanel->1->7->1->4->1->3",
8763
"login.handlebars->container->column_l->centralTable->1->0->logincell->tokenpanel->1->7->1->4->1->3"
8764
]
@@ -8770,7 +8778,7 @@
8778
"zh-chs": "電郵地址變更",
8779
"xloc": [
8780
"default-mobile.handlebars->9->41",
8773
- "default.handlebars->27->1014"
8781
+ "default.handlebars->27->1034"
8782
]
8783
},
8784
{
@@ -8784,14 +8792,14 @@
8792
"zh-chs": "郵件認證",
8793
"xloc": [
8794
"default-mobile.handlebars->9->30",
8787
- "default.handlebars->27->783"
8795
+ "default.handlebars->27->803"
8796
]
8797
},
8798
{
8799
"en": "Email Traffic",
8800
"nl": "E-mailverkeer",
8801
"xloc": [
8794
- "default.handlebars->27->1568"
8802
+ "default.handlebars->27->1579"
8803
]
8804
},
8805
{
@@ -8809,7 +8817,7 @@
8817
"zh-chs": "電子郵件驗證",
8818
"xloc": [
8819
"default-mobile.handlebars->9->39",
8812
- "default.handlebars->27->1012"
8820
+ "default.handlebars->27->1032"
8821
]
8822
},
8823
{
@@ -8826,7 +8834,7 @@
8834
"ru": "Email подтвержден",
8835
"zh-chs": "電子郵件已驗證",
8836
"xloc": [
8829
- "default.handlebars->27->1429"
8837
+ "default.handlebars->27->1443"
8838
]
8839
},
8840
{
@@ -8843,7 +8851,7 @@
8851
"ru": "Email подтвержден.",
8852
"zh-chs": "電子郵件已驗證。",
8853
"xloc": [
8846
- "default.handlebars->27->1356"
8854
+ "default.handlebars->27->1373"
8855
]
8856
},
8857
{
@@ -8860,7 +8868,7 @@
8868
"ru": "Email не подтвержден",
8869
"zh-chs": "電子郵件未驗證",
8870
"xloc": [
8863
- "default.handlebars->27->1430"
8871
+ "default.handlebars->27->1444"
8872
]
8873
},
8874
{
@@ -8908,7 +8916,7 @@
8916
"pt": "Ativar códigos de convite",
8917
"zh-chs": "啟用邀請代碼",
8918
"xloc": [
8911
- "default.handlebars->27->1230"
8919
+ "default.handlebars->27->1247"
8920
]
8921
},
8922
{
@@ -8939,7 +8947,7 @@
8947
"zh-chs": "啟用電子郵件兩因素驗證。",
8948
"xloc": [
8949
"default-mobile.handlebars->9->32",
8942
- "default.handlebars->27->785"
8950
+ "default.handlebars->27->805"
8951
]
8952
},
8953
{
@@ -8990,7 +8998,7 @@
8998
"ru": "Английский",
8999
"zh-chs": "英語",
9000
"xloc": [
8993
- "default.handlebars->27->847"
9001
+ "default.handlebars->27->867"
9002
]
9003
},
9004
{
@@ -9006,7 +9014,7 @@
9014
"ru": "Английский (Австралия)",
9015
"zh-chs": "英文(澳洲)",
9016
"xloc": [
9009
- "default.handlebars->27->848"
9017
+ "default.handlebars->27->868"
9018
]
9019
},
9020
{
@@ -9022,7 +9030,7 @@
9030
"ru": "Английский (Белиз)",
9031
"zh-chs": "英語(伯利茲)",
9032
"xloc": [
9025
- "default.handlebars->27->849"
9033
+ "default.handlebars->27->869"
9034
]
9035
},
9036
{
@@ -9038,7 +9046,7 @@
9046
"ru": "Английский (Канада)",
9047
"zh-chs": "英文(加拿大)",
9048
"xloc": [
9041
- "default.handlebars->27->850"
9049
+ "default.handlebars->27->870"
9050
]
9051
},
9052
{
@@ -9054,7 +9062,7 @@
9062
"ru": "Английский (Ирландия)",
9063
"zh-chs": "英文(愛爾蘭)",
9064
"xloc": [
9057
- "default.handlebars->27->851"
9065
+ "default.handlebars->27->871"
9066
]
9067
},
9068
{
@@ -9070,7 +9078,7 @@
9078
"ru": "Английский (Ямайка)",
9079
"zh-chs": "英文(牙買加)",
9080
"xloc": [
9073
- "default.handlebars->27->852"
9081
+ "default.handlebars->27->872"
9082
]
9083
},
9084
{
@@ -9086,7 +9094,7 @@
9094
"ru": "Английский (Новая Зеландия)",
9095
"zh-chs": "英文(紐西蘭)",
9096
"xloc": [
9089
- "default.handlebars->27->853"
9097
+ "default.handlebars->27->873"
9098
]
9099
},
9100
{
@@ -9102,7 +9110,7 @@
9110
"ru": "Английский (Филиппины)",
9111
"zh-chs": "英文(菲律賓)",
9112
"xloc": [
9105
- "default.handlebars->27->854"
9113
+ "default.handlebars->27->874"
9114
]
9115
},
9116
{
@@ -9118,7 +9126,7 @@
9126
"ru": "Английский (Южная Африка)",
9127
"zh-chs": "英語(南非)",
9128
"xloc": [
9121
- "default.handlebars->27->855"
9129
+ "default.handlebars->27->875"
9130
]
9131
},
9132
{
@@ -9133,7 +9141,7 @@
9141
"ru": "Английский (Тринидад и Тобаго)",
9142
"zh-chs": "英文(特立尼達和多巴哥)",
9143
"xloc": [
9136
- "default.handlebars->27->856"
9144
+ "default.handlebars->27->876"
9145
]
9146
},
9147
{
@@ -9149,7 +9157,7 @@
9157
"ru": "Английский (Великобритания)",
9158
"zh-chs": "英文(英國)",
9159
"xloc": [
9152
- "default.handlebars->27->857"
9160
+ "default.handlebars->27->877"
9161
]
9162
},
9163
{
@@ -9165,7 +9173,7 @@
9173
"ru": "Английский (Соединенные Штаты)",
9174
"zh-chs": "美國英語)",
9175
"xloc": [
9168
- "default.handlebars->27->858"
9176
+ "default.handlebars->27->878"
9177
]
9178
},
9179
{
@@ -9181,7 +9189,7 @@
9189
"ru": "Английский (Зимбабве)",
9190
"zh-chs": "英文(津巴布韋)",
9191
"xloc": [
9184
- "default.handlebars->27->859"
9192
+ "default.handlebars->27->879"
9193
]
9194
},
9195
{
@@ -9197,8 +9205,8 @@
9205
"ru": "Ввод",
9206
"zh-chs": "輸入",
9207
"xloc": [
9200
- "default.handlebars->27->1040",
9201
- "default.handlebars->27->1041"
9208
+ "default.handlebars->27->1060",
9209
+ "default.handlebars->27->1061"
9210
]
9211
},
9212
{
@@ -9215,7 +9223,7 @@
9223
"ru": "Введите разделенный запятыми список имен административных областей.",
9224
"zh-chs": "輸入管理領域名稱的逗號分隔列表。",
9225
"xloc": [
9218
- "default.handlebars->27->1360"
9226
+ "default.handlebars->27->1377"
9227
]
9228
},
9229
{
@@ -9232,7 +9240,7 @@
9240
"ru": "Введите диапазон IP-адресов для сканирования Intel AMT устройств.",
9241
"zh-chs": "輸入IP地址範圍以掃描Intel AMT設備。",
9242
"xloc": [
9235
- "default.handlebars->27->235"
9243
+ "default.handlebars->27->236"
9244
]
9245
},
9246
{
@@ -9249,7 +9257,7 @@
9257
"ru": "Для удаленного набора введите текст, используя английскую раскладку и нажмите OK. Перед продолжением убедитесь, что курсор на удаленном компьютере установлен в правильное положение.",
9258
"zh-chs": "輸入文本,然後單擊“確定”以使用美式英語鍵盤遠程輸入文本。在繼續操作之前,請確保將遠程光標放置在正確的位置。",
9259
"xloc": [
9252
- "default.handlebars->27->637"
9260
+ "default.handlebars->27->657"
9261
]
9262
},
9263
{
@@ -9333,7 +9341,7 @@
9341
"ru": "Эсперанто",
9342
"zh-chs": "世界語",
9343
"xloc": [
9336
- "default.handlebars->27->860"
9344
+ "default.handlebars->27->880"
9345
]
9346
},
9347
{
@@ -9349,7 +9357,7 @@
9357
"ru": "Эстонский",
9358
"zh-chs": "愛沙尼亞語",
9359
"xloc": [
9352
- "default.handlebars->27->861"
9360
+ "default.handlebars->27->881"
9361
]
9362
},
9363
{
@@ -9366,7 +9374,7 @@
9374
"ru": "Детали события",
9375
"zh-chs": "活動詳情",
9376
"xloc": [
9369
- "default.handlebars->27->713"
9377
+ "default.handlebars->27->733"
9378
]
9379
},
9380
{
@@ -9383,7 +9391,7 @@
9391
"ru": "Экспорт списка событий",
9392
"zh-chs": "活動列表導出",
9393
"xloc": [
9386
- "default.handlebars->27->1304"
9394
+ "default.handlebars->27->1321"
9395
]
9396
},
9397
{
@@ -9452,7 +9460,7 @@
9460
"pt": "Exportar informações do dispositivo",
9461
"zh-chs": "導出設備信息",
9462
"xloc": [
9455
- "default.handlebars->27->375"
9463
+ "default.handlebars->27->376"
9464
]
9465
},
9466
{
@@ -9469,7 +9477,7 @@
9477
"ru": "Расширенный ASCII",
9478
"zh-chs": "擴展ASCII",
9479
"xloc": [
9472
- "default.handlebars->27->662"
9480
+ "default.handlebars->27->682"
9481
]
9482
},
9483
{
@@ -9503,7 +9511,7 @@
9511
"ru": "Внешний",
9512
"zh-chs": "外部",
9513
"xloc": [
9506
- "default.handlebars->27->1553"
9514
+ "default.handlebars->27->1564"
9515
]
9516
},
9517
{
@@ -9519,7 +9527,7 @@
9527
"ru": "Mакедонский (БЮР)",
9528
"zh-chs": "FYRO馬其頓語",
9529
"xloc": [
9522
- "default.handlebars->27->911"
9530
+ "default.handlebars->27->931"
9531
]
9532
},
9533
{
@@ -9535,7 +9543,7 @@
9543
"ru": "Фарерский",
9544
"zh-chs": "法羅語",
9545
"xloc": [
9538
- "default.handlebars->27->862"
9546
+ "default.handlebars->27->882"
9547
]
9548
},
9549
{
@@ -9568,7 +9576,7 @@
9576
"ru": "Фарси (Персидский)",
9577
"zh-chs": "波斯語(波斯語)",
9578
"xloc": [
9571
- "default.handlebars->27->863"
9579
+ "default.handlebars->27->883"
9580
]
9581
},
9582
{
@@ -9603,7 +9611,7 @@
9611
"ru": "Функции",
9612
"zh-chs": "特徵",
9613
"xloc": [
9606
- "default.handlebars->27->1068"
9614
+ "default.handlebars->27->1088"
9615
]
9616
},
9617
{
@@ -9619,7 +9627,7 @@
9627
"ru": "Фиджи",
9628
"zh-chs": "斐濟",
9629
"xloc": [
9622
- "default.handlebars->27->864"
9630
+ "default.handlebars->27->884"
9631
]
9632
},
9633
{
@@ -9637,8 +9645,8 @@
9645
"zh-chs": "文件編輯器",
9646
"xloc": [
9647
"default-mobile.handlebars->9->257",
9640
- "default.handlebars->27->409",
9641
- "default.handlebars->27->685"
9648
+ "default.handlebars->27->410",
9649
+ "default.handlebars->27->705"
9650
]
9651
},
9652
{
@@ -9671,7 +9679,7 @@
9679
"ru": "Драйвер файловой системы",
9680
"zh-chs": "FileSystemDriver",
9681
"xloc": [
9674
- "default.handlebars->27->645"
9682
+ "default.handlebars->27->665"
9683
]
9684
},
9685
{
@@ -9688,7 +9696,7 @@
9696
"ru": "Файлы",
9697
"zh-chs": "檔案",
9698
"xloc": [
9691
- "default.handlebars->27->1157",
9699
+ "default.handlebars->27->1174",
9700
"default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevFiles",
9701
"default.handlebars->contextMenu->cxfiles"
9702
]
@@ -9724,7 +9732,7 @@
9732
"ru": "Уведомление файлов",
9733
"zh-chs": "文件通知",
9734
"xloc": [
9727
- "default.handlebars->27->1076"
9735
+ "default.handlebars->27->1096"
9736
]
9737
},
9738
{
@@ -9740,7 +9748,7 @@
9748
"ru": "Запрос файлов",
9749
"zh-chs": "文件提示",
9750
"xloc": [
9743
- "default.handlebars->27->1075"
9751
+ "default.handlebars->27->1095"
9752
]
9753
},
9754
{
@@ -9775,7 +9783,7 @@
9783
"ru": "Финский",
9784
"zh-chs": "芬蘭",
9785
"xloc": [
9778
- "default.handlebars->27->865"
9786
+ "default.handlebars->27->885"
9787
]
9788
},
9789
{
@@ -9848,8 +9856,8 @@
9856
"ru": "Принудительно сбросить пароль при следующем входе в систему.",
9857
"zh-chs": "下次登錄時強制重置密碼。",
9858
"xloc": [
9851
- "default.handlebars->27->1354",
9852
- "default.handlebars->27->1471"
9859
+ "default.handlebars->27->1371",
9860
+ "default.handlebars->27->1485"
9861
]
9862
},
9863
{
@@ -9935,8 +9943,8 @@
9943
"ru": "Свободно",
9944
"zh-chs": "自由",
9945
"xloc": [
9938
- "default.handlebars->27->1514",
9939
- "default.handlebars->27->1516"
9946
+ "default.handlebars->27->1525",
9947
+ "default.handlebars->27->1527"
9948
]
9949
},
9950
{
@@ -9970,7 +9978,7 @@
9978
"ru": "Французский (Бельгия)",
9979
"zh-chs": "法語(比利時)",
9980
"xloc": [
9973
- "default.handlebars->27->867"
9981
+ "default.handlebars->27->887"
9982
]
9983
},
9984
{
@@ -9986,7 +9994,7 @@
9994
"ru": "Французский (Канада)",
9995
"zh-chs": "法語(加拿大)",
9996
"xloc": [
9989
- "default.handlebars->27->868"
9997
+ "default.handlebars->27->888"
9998
]
9999
},
10000
{
@@ -10002,7 +10010,7 @@
10010
"ru": "Французский (Франция)",
10011
"zh-chs": "法語(法國)",
10012
"xloc": [
10005
- "default.handlebars->27->869"
10013
+ "default.handlebars->27->889"
10014
]
10015
},
10016
{
@@ -10018,7 +10026,7 @@
10026
"ru": "Французский (Люксембург)",
10027
"zh-chs": "法語(盧森堡)",
10028
"xloc": [
10021
- "default.handlebars->27->870"
10029
+ "default.handlebars->27->890"
10030
]
10031
},
10032
{
@@ -10034,7 +10042,7 @@
10042
"ru": "Французский (Монако)",
10043
"zh-chs": "法語(摩納哥)",
10044
"xloc": [
10037
- "default.handlebars->27->871"
10045
+ "default.handlebars->27->891"
10046
]
10047
},
10048
{
@@ -10050,7 +10058,7 @@
10058
"ru": "Французский (Стандартный)",
10059
"zh-chs": "法語(標準)",
10060
"xloc": [
10053
- "default.handlebars->27->866"
10061
+ "default.handlebars->27->886"
10062
]
10063
},
10064
{
@@ -10066,7 +10074,7 @@
10074
"ru": "Французский (Швейцария)",
10075
"zh-chs": "法語(瑞士)",
10076
"xloc": [
10069
- "default.handlebars->27->872"
10077
+ "default.handlebars->27->892"
10078
]
10079
},
10080
{
@@ -10082,7 +10090,7 @@
10090
"ru": "Фризский",
10091
"zh-chs": "弗里斯蘭語",
10092
"xloc": [
10085
- "default.handlebars->27->873"
10093
+ "default.handlebars->27->893"
10094
]
10095
},
10096
{
@@ -10098,7 +10106,7 @@
10106
"ru": "Фриульский",
10107
"zh-chs": "弗留利",
10108
"xloc": [
10101
- "default.handlebars->27->874"
10109
+ "default.handlebars->27->894"
10110
]
10111
},
10112
{
@@ -10119,9 +10127,9 @@
10127
"default-mobile.handlebars->9->295",
10128
"default-mobile.handlebars->9->313",
10129
"default-mobile.handlebars->9->67",
10122
- "default.handlebars->27->1047",
10123
- "default.handlebars->27->1175",
10124
- "default.handlebars->27->1365"
10130
+ "default.handlebars->27->1067",
10131
+ "default.handlebars->27->1192",
10132
+ "default.handlebars->27->1382"
10133
]
10134
},
10135
{
@@ -10138,7 +10146,7 @@
10146
"ru": "Администратор с полным доступом (все права)",
10147
"zh-chs": "正式管理員(保留所有權利)",
10148
"xloc": [
10141
- "default.handlebars->27->1203"
10149
+ "default.handlebars->27->1220"
10150
]
10151
},
10152
{
@@ -10153,12 +10161,7 @@
10161
"nl": "Volledige apparaatgroep beheerder",
10162
"pt": "Administrador de grupo de dispositivos completo",
10163
"ru": "Администратор группы устройств с полным доступом",
10156
- "zh-chs": "完整的設備組管理員",
10157
- "xloc": [
10158
- "default.handlebars->27->1112",
10159
- "default.handlebars->27->1402",
10160
- "default.handlebars->27->1486"
10161
- ]
10164
+ "zh-chs": "完整的設備組管理員"
10165
},
10166
{
10167
"de": "Volle Geräterechte",
@@ -10170,7 +10173,13 @@
10173
"pt": "Direitos completos do dispositivo",
10174
"zh-chs": "完整的設備權限",
10175
"xloc": [
10173
- "default.handlebars->27->535"
10176
+ "default.handlebars->27->536"
10177
+ ]
10178
+ },
10179
+ {
10180
+ "en": "Full Rights",
10181
+ "xloc": [
10182
+ "default.handlebars->27->552"
10183
]
10184
},
10185
{
@@ -10206,7 +10215,7 @@
10215
"ru": "Администратор с полным доступом",
10216
"zh-chs": "正式管理員",
10217
"xloc": [
10209
- "default.handlebars->27->1425"
10218
+ "default.handlebars->27->1439"
10219
]
10220
},
10221
{
@@ -10222,7 +10231,7 @@
10231
"ru": "Гэльский (Ирландский)",
10232
"zh-chs": "蓋爾語(愛爾蘭)",
10233
"xloc": [
10225
- "default.handlebars->27->876"
10234
+ "default.handlebars->27->896"
10235
]
10236
},
10237
{
@@ -10238,7 +10247,7 @@
10247
"ru": "Гэльский (Шотландия)",
10248
"zh-chs": "蓋爾語(蘇格蘭語)",
10249
"xloc": [
10241
- "default.handlebars->27->875"
10250
+ "default.handlebars->27->895"
10251
]
10252
},
10253
{
@@ -10254,7 +10263,7 @@
10263
"ru": "Галицкий",
10264
"zh-chs": "加拉契人",
10265
"xloc": [
10257
- "default.handlebars->27->877"
10266
+ "default.handlebars->27->897"
10267
]
10268
},
10269
{
@@ -10327,7 +10336,7 @@
10336
"ru": "Общая информация",
10337
"zh-chs": "一般信息",
10338
"xloc": [
10330
- "default.handlebars->27->416"
10339
+ "default.handlebars->27->417"
10340
]
10341
},
10342
{
@@ -10360,7 +10369,7 @@
10369
"ru": "Грузинский",
10370
"zh-chs": "格魯吉亞人",
10371
"xloc": [
10363
- "default.handlebars->27->878"
10372
+ "default.handlebars->27->898"
10373
]
10374
},
10375
{
@@ -10376,7 +10385,7 @@
10385
"ru": "Немецкий (Австрия)",
10386
"zh-chs": "德語(奧地利)",
10387
"xloc": [
10379
- "default.handlebars->27->880"
10388
+ "default.handlebars->27->900"
10389
]
10390
},
10391
{
@@ -10392,7 +10401,7 @@
10401
"ru": "Немецкий (Германия)",
10402
"zh-chs": "德文(德國)",
10403
"xloc": [
10395
- "default.handlebars->27->881"
10404
+ "default.handlebars->27->901"
10405
]
10406
},
10407
{
@@ -10408,7 +10417,7 @@
10417
"ru": "Немецкий (Лихтенштейн)",
10418
"zh-chs": "德文(列支敦士登)",
10419
"xloc": [
10411
- "default.handlebars->27->882"
10420
+ "default.handlebars->27->902"
10421
]
10422
},
10423
{
@@ -10424,7 +10433,7 @@
10433
"ru": "Немецкий (Люксембург)",
10434
"zh-chs": "德語(盧森堡)",
10435
"xloc": [
10427
- "default.handlebars->27->883"
10436
+ "default.handlebars->27->903"
10437
]
10438
},
10439
{
@@ -10440,7 +10449,7 @@
10449
"ru": "Немецкий (Стандартный)",
10450
"zh-chs": "德語(標準)",
10451
"xloc": [
10443
- "default.handlebars->27->879"
10452
+ "default.handlebars->27->899"
10453
]
10454
},
10455
{
@@ -10456,7 +10465,7 @@
10465
"ru": "Немецкий (Швейцария)",
10466
"zh-chs": "德語(瑞士)",
10467
"xloc": [
10459
- "default.handlebars->27->884"
10468
+ "default.handlebars->27->904"
10469
]
10470
},
10471
{
@@ -10473,7 +10482,7 @@
10482
"ru": "Получить учетные данные MQTT для этого устройства.",
10483
"zh-chs": "獲取此設備的MQTT登錄憑據。",
10484
"xloc": [
10476
- "default.handlebars->27->519"
10485
+ "default.handlebars->27->520"
10486
]
10487
},
10488
{
@@ -10526,7 +10535,7 @@
10535
"ru": "Хорошо",
10536
"zh-chs": "好",
10537
"xloc": [
10529
- "default.handlebars->27->1043"
10538
+ "default.handlebars->27->1063"
10539
]
10540
},
10541
{
@@ -10562,7 +10571,7 @@
10571
"ru": "Греческий",
10572
"zh-chs": "希臘語",
10573
"xloc": [
10565
- "default.handlebars->27->885"
10574
+ "default.handlebars->27->905"
10575
]
10576
},
10577
{
@@ -10580,7 +10589,7 @@
10589
"zh-chs": "組",
10590
"xloc": [
10591
"default-mobile.handlebars->9->137",
10583
- "default.handlebars->27->441",
10592
+ "default.handlebars->27->442",
10593
"default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->9->devListToolbarSort->sortselect->1"
10594
]
10595
},
@@ -10598,7 +10607,7 @@
10607
"ru": "Групповое действие",
10608
"zh-chs": "集體行動",
10609
"xloc": [
10601
- "default.handlebars->27->378",
10610
+ "default.handlebars->27->379",
10611
"default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->devListToolbar"
10612
]
10613
},
@@ -10616,7 +10625,7 @@
10625
"ru": "Члены группы",
10626
"zh-chs": "小組成員",
10627
"xloc": [
10619
- "default.handlebars->27->1394"
10628
+ "default.handlebars->27->1411"
10629
]
10630
},
10631
{
@@ -10633,7 +10642,7 @@
10642
"ru": "Права на группу для пользователя {0}.",
10643
"zh-chs": "用戶{0}的組權限。",
10644
"xloc": [
10636
- "default.handlebars->27->1174"
10645
+ "default.handlebars->27->1191"
10646
]
10647
},
10648
{
@@ -10649,7 +10658,7 @@
10658
"ru": "Права на группу для {0}.",
10659
"zh-chs": "{0}的組權限。",
10660
"xloc": [
10652
- "default.handlebars->27->1173"
10661
+ "default.handlebars->27->1190"
10662
]
10663
},
10664
{
@@ -10683,7 +10692,7 @@
10692
"ru": "Группы",
10693
"zh-chs": "團體",
10694
"xloc": [
10686
- "default.handlebars->27->1309",
10695
+ "default.handlebars->27->1326",
10696
"default.handlebars->container->topbar->1->1->UsersSubMenuSpan->UsersSubMenu->1->0->UsersGroups"
10697
]
10698
},
@@ -10700,7 +10709,7 @@
10709
"ru": "Гуджарати",
10710
"zh-chs": "古久拉提",
10711
"xloc": [
10703
- "default.handlebars->27->886"
10712
+ "default.handlebars->27->906"
10713
]
10714
},
10715
{
@@ -10735,7 +10744,7 @@
10744
"ru": "Гаитянский",
10745
"zh-chs": "海地",
10746
"xloc": [
10738
- "default.handlebars->27->887"
10747
+ "default.handlebars->27->907"
10748
]
10749
},
10750
{
@@ -10769,7 +10778,7 @@
10778
"ru": "Жесткое отключение агента",
10779
"zh-chs": "硬斷開劑",
10780
"xloc": [
10772
- "default.handlebars->27->781"
10781
+ "default.handlebars->27->801"
10782
]
10783
},
10784
{
@@ -10784,7 +10793,7 @@
10793
"pt": "Total da pilha",
10794
"zh-chs": "堆總數",
10795
"xloc": [
10787
- "default.handlebars->27->1555"
10796
+ "default.handlebars->27->1566"
10797
]
10798
},
10799
{
@@ -10799,7 +10808,7 @@
10808
"pt": "Pilha usada",
10809
"zh-chs": "堆使用",
10810
"xloc": [
10802
- "default.handlebars->27->1554"
10811
+ "default.handlebars->27->1565"
10812
]
10813
},
10814
{
@@ -10816,7 +10825,7 @@
10825
"ru": "Иврит",
10826
"zh-chs": "希伯來語",
10827
"xloc": [
10819
- "default.handlebars->27->888"
10828
+ "default.handlebars->27->908"
10829
]
10830
},
10831
{
@@ -10833,7 +10842,7 @@
10842
"ru": "Помочь перевести MeshCentral",
10843
"zh-chs": "幫助翻譯MeshCentral",
10844
"xloc": [
10836
- "default.handlebars->27->1002"
10845
+ "default.handlebars->27->1022"
10846
]
10847
},
10848
{
@@ -10852,7 +10861,7 @@
10861
"xloc": [
10862
"default-mobile.handlebars->9->107",
10863
"default-mobile.handlebars->9->114",
10855
- "default.handlebars->27->342",
10864
+ "default.handlebars->27->343",
10865
"default.handlebars->27->5"
10866
]
10867
},
@@ -10869,7 +10878,7 @@
10878
"ru": "Хинди",
10879
"zh-chs": "印地語",
10880
"xloc": [
10872
- "default.handlebars->27->889"
10881
+ "default.handlebars->27->909"
10882
]
10883
},
10884
{
@@ -10904,7 +10913,7 @@
10913
"zh-chs": "持有1份副本",
10914
"xloc": [
10915
"default-mobile.handlebars->9->266",
10907
- "default.handlebars->27->694"
10916
+ "default.handlebars->27->714"
10917
]
10918
},
10919
{
@@ -10921,7 +10930,7 @@
10930
"zh-chs": "持有1個搬家公司",
10931
"xloc": [
10932
"default-mobile.handlebars->9->270",
10924
- "default.handlebars->27->698"
10933
+ "default.handlebars->27->718"
10934
]
10935
},
10936
{
@@ -10938,7 +10947,7 @@
10947
"zh-chs": "保留{0}個條目進行複制",
10948
"xloc": [
10949
"default-mobile.handlebars->9->264",
10941
- "default.handlebars->27->692"
10950
+ "default.handlebars->27->712"
10951
]
10952
},
10953
{
@@ -10955,7 +10964,7 @@
10964
"zh-chs": "保留{0}個條目以進行移動",
10965
"xloc": [
10966
"default-mobile.handlebars->9->268",
10958
- "default.handlebars->27->696"
10967
+ "default.handlebars->27->716"
10968
]
10969
},
10970
{
@@ -10972,7 +10981,7 @@
10981
"zh-chs": "保持{2}的{0}入口{1}",
10982
"xloc": [
10983
"default-mobile.handlebars->9->91",
10975
- "default.handlebars->27->1291"
10984
+ "default.handlebars->27->1308"
10985
]
10986
},
10987
{
@@ -10993,11 +11002,11 @@
11002
"default-mobile.handlebars->9->140",
11003
"default-mobile.handlebars->9->142",
11004
"default-mobile.handlebars->9->226",
10996
- "default.handlebars->27->221",
10997
- "default.handlebars->27->446",
11005
+ "default.handlebars->27->222",
11006
"default.handlebars->27->447",
10999
- "default.handlebars->27->449",
11000
- "default.handlebars->27->623"
11007
+ "default.handlebars->27->448",
11008
+ "default.handlebars->27->450",
11009
+ "default.handlebars->27->643"
11010
]
11011
},
11012
{
@@ -11014,7 +11023,7 @@
11023
"ru": "Синхронизация имени хоста",
11024
"zh-chs": "主機名同步",
11025
"xloc": [
11017
- "default.handlebars->27->1066"
11026
+ "default.handlebars->27->1086"
11027
]
11028
},
11029
{
@@ -11030,7 +11039,7 @@
11039
"ru": "Венгерский",
11040
"zh-chs": "匈牙利",
11041
"xloc": [
11033
- "default.handlebars->27->890"
11042
+ "default.handlebars->27->910"
11043
]
11044
},
11045
{
@@ -11047,7 +11056,7 @@
11056
"ru": "Диапазон IP",
11057
"zh-chs": "IP範圍",
11058
"xloc": [
11050
- "default.handlebars->27->236"
11059
+ "default.handlebars->27->237"
11060
]
11061
},
11062
{
@@ -11082,7 +11091,7 @@
11091
"ru": "IP: {0}",
11092
"zh-chs": "IP:{0}",
11093
"xloc": [
11085
- "default.handlebars->27->734"
11094
+ "default.handlebars->27->754"
11095
]
11096
},
11097
{
@@ -11095,7 +11104,7 @@
11104
"pt": "IP: {0}, Máscara: {1}, Gateway: {2}",
11105
"zh-chs": "IP:{0},掩碼:{1},網關:{2}",
11106
"xloc": [
11098
- "default.handlebars->27->732"
11107
+ "default.handlebars->27->752"
11108
]
11109
},
11110
{
@@ -11108,8 +11117,8 @@
11117
"pt": "Camada IPv4",
11118
"zh-chs": "IPv4層",
11119
"xloc": [
11111
- "default.handlebars->27->731",
11112
- "default.handlebars->27->733"
11120
+ "default.handlebars->27->751",
11121
+ "default.handlebars->27->753"
11122
]
11123
},
11124
{
@@ -11176,7 +11185,7 @@
11185
"ru": "Исландский",
11186
"zh-chs": "冰島的",
11187
"xloc": [
11179
- "default.handlebars->27->891"
11188
+ "default.handlebars->27->911"
11189
]
11190
},
11191
{
@@ -11194,7 +11203,7 @@
11203
"zh-chs": "圖標選擇",
11204
"xloc": [
11205
"default-mobile.handlebars->9->224",
11197
- "default.handlebars->27->621"
11206
+ "default.handlebars->27->641"
11207
]
11208
},
11209
{
@@ -11211,7 +11220,7 @@
11220
"ru": "Идентификатор",
11221
"zh-chs": "識別碼",
11222
"xloc": [
11214
- "default.handlebars->27->759"
11223
+ "default.handlebars->27->779"
11224
]
11225
},
11226
{
@@ -11255,6 +11264,12 @@
11264
"player.handlebars->3->17"
11265
]
11266
},
11267
+ {
11268
+ "en": "Indivitual Devices",
11269
+ "xloc": [
11270
+ "default.handlebars->27->163"
11271
+ ]
11272
+ },
11273
{
11274
"cs": "indonézština",
11275
"de": "Indonesisch",
@@ -11268,7 +11283,7 @@
11283
"ru": "Индонезийский",
11284
"zh-chs": "印度尼西亞",
11285
"xloc": [
11271
- "default.handlebars->27->892"
11286
+ "default.handlebars->27->912"
11287
]
11288
},
11289
{
@@ -11337,7 +11352,7 @@
11352
"ru": "Установка",
11353
"zh-chs": "安裝",
11354
"xloc": [
11340
- "default.handlebars->27->1107"
11355
+ "default.handlebars->27->1127"
11356
]
11357
},
11358
{
@@ -11384,7 +11399,7 @@
11399
"ru": "Установка CIRA",
11400
"zh-chs": "安裝CIRA",
11401
"xloc": [
11387
- "default.handlebars->27->1099"
11402
+ "default.handlebars->27->1119"
11403
]
11404
},
11405
{
@@ -11401,7 +11416,7 @@
11416
"ru": "Локальная установка",
11417
"zh-chs": "安裝本地",
11418
"xloc": [
11404
- "default.handlebars->27->1101"
11419
+ "default.handlebars->27->1121"
11420
]
11421
},
11422
{
@@ -11418,10 +11433,10 @@
11433
"ru": "Тип установки",
11434
"zh-chs": "安裝類型",
11435
"xloc": [
11421
- "default.handlebars->27->1232",
11422
- "default.handlebars->27->1239",
11423
- "default.handlebars->27->281",
11424
- "default.handlebars->27->303"
11436
+ "default.handlebars->27->1249",
11437
+ "default.handlebars->27->1256",
11438
+ "default.handlebars->27->282",
11439
+ "default.handlebars->27->304"
11440
]
11441
},
11442
{
@@ -11437,7 +11452,7 @@
11452
"ru": "Intel (F10 = ESC+[OM)",
11453
"zh-chs": "英特爾(F10 = ESC + [OM)",
11454
"xloc": [
11440
- "default.handlebars->27->664",
11455
+ "default.handlebars->27->684",
11456
"default.handlebars->container->column_l->p12->termTable->1->1->6->1->1->terminalSettingsButtons"
11457
]
11458
},
@@ -11455,10 +11470,10 @@
11470
"ru": "Intel AMT",
11471
"zh-chs": "英特爾AMT",
11472
"xloc": [
11458
- "default.handlebars->27->1251",
11459
- "default.handlebars->27->1257",
11460
- "default.handlebars->27->1551",
11461
- "default.handlebars->27->1573"
11473
+ "default.handlebars->27->1268",
11474
+ "default.handlebars->27->1274",
11475
+ "default.handlebars->27->1562",
11476
+ "default.handlebars->27->1584"
11477
]
11478
},
11479
{
@@ -11526,7 +11541,7 @@
11541
"ru": "Intel AMT активирован в режиме администратора",
11542
"zh-chs": "在管理控制模式下激活了Intel AMT",
11543
"xloc": [
11529
- "default.handlebars->27->462"
11544
+ "default.handlebars->27->463"
11545
]
11546
},
11547
{
@@ -11543,7 +11558,7 @@
11558
"ru": "Intel AMT активирован в режиме клиента",
11559
"zh-chs": "英特爾AMT在客戶端控制模式下被激活",
11560
"xloc": [
11546
- "default.handlebars->27->460"
11561
+ "default.handlebars->27->461"
11562
]
11563
},
11564
{
@@ -11560,7 +11575,7 @@
11575
"ru": "Intel AMT настроен с TLS безопасностью сети",
11576
"zh-chs": "英特爾AMT已設置TLS網絡安全性",
11577
"xloc": [
11563
- "default.handlebars->27->464"
11578
+ "default.handlebars->27->465"
11579
]
11580
},
11581
{
@@ -11593,7 +11608,7 @@
11608
"ru": "Intel AMT необходимо установить с доверенным FQDN в MEBx или иметь кабельное подключение к локальной сети:",
11609
"zh-chs": "英特爾AMT將需要在MEBx中設置為受信任的FQDN,或者在網絡上具有有線局域網:",
11610
"xloc": [
11596
- "default.handlebars->27->233"
11611
+ "default.handlebars->27->234"
11612
]
11613
},
11614
{
@@ -11610,7 +11625,7 @@
11625
"ru": "Intel ASCII",
11626
"zh-chs": "英特爾ASCII",
11627
"xloc": [
11613
- "default.handlebars->27->663"
11628
+ "default.handlebars->27->683"
11629
]
11630
},
11631
{
@@ -11630,11 +11645,11 @@
11645
"default-mobile.handlebars->9->126",
11646
"default-mobile.handlebars->9->190",
11647
"default-mobile.handlebars->9->195",
11633
- "default.handlebars->27->1083",
11634
- "default.handlebars->27->1093",
11635
- "default.handlebars->27->419",
11636
- "default.handlebars->27->472",
11637
- "default.handlebars->27->488"
11648
+ "default.handlebars->27->1103",
11649
+ "default.handlebars->27->1113",
11650
+ "default.handlebars->27->420",
11651
+ "default.handlebars->27->473",
11652
+ "default.handlebars->27->489"
11653
]
11654
},
11655
{
@@ -11652,7 +11667,7 @@
11667
"zh-chs": "英特爾®AMT CIRA",
11668
"xloc": [
11669
"default-mobile.handlebars->9->194",
11655
- "default.handlebars->27->486"
11670
+ "default.handlebars->27->487"
11671
]
11672
},
11673
{
@@ -11669,9 +11684,9 @@
11684
"ru": "Intel® AMT CIRA подключен и готов к использованию.",
11685
"zh-chs": "英特爾®AMT CIRA已連接並可以使用。",
11686
"xloc": [
11672
- "default.handlebars->27->167",
11673
- "default.handlebars->27->356",
11674
- "default.handlebars->27->485"
11687
+ "default.handlebars->27->168",
11688
+ "default.handlebars->27->357",
11689
+ "default.handlebars->27->486"
11690
]
11691
},
11692
{
@@ -11707,7 +11722,7 @@
11722
"ru": "Политика Intel® AMT",
11723
"zh-chs": "英特爾®AMT政策",
11724
"xloc": [
11710
- "default.handlebars->27->1125"
11725
+ "default.handlebars->27->1142"
11726
]
11727
},
11728
{
@@ -11739,7 +11754,7 @@
11754
"ru": "Intel® AMT Тег",
11755
"zh-chs": "英特爾®AMT標籤",
11756
"xloc": [
11742
- "default.handlebars->27->476"
11757
+ "default.handlebars->27->477"
11758
]
11759
},
11760
{
@@ -11772,8 +11787,8 @@
11787
"ru": "Активация Intel® AMT",
11788
"zh-chs": "英特爾®AMT激活",
11789
"xloc": [
11775
- "default.handlebars->27->231",
11776
- "default.handlebars->27->234"
11790
+ "default.handlebars->27->232",
11791
+ "default.handlebars->27->235"
11792
]
11793
},
11794
{
@@ -11791,8 +11806,8 @@
11806
"zh-chs": "英特爾®AMT已連接",
11807
"xloc": [
11808
"default-mobile.handlebars->9->204",
11794
- "default.handlebars->27->523",
11795
- "default.handlebars->27->524"
11809
+ "default.handlebars->27->524",
11810
+ "default.handlebars->27->525"
11811
]
11812
},
11813
{
@@ -11808,8 +11823,8 @@
11823
"ru": "События Intel® AMT desktop или serial.",
11824
"zh-chs": "英特爾®AMT桌面和串行事件。",
11825
"xloc": [
11811
- "default.handlebars->27->1008",
11812
- "default.handlebars->27->1247"
11826
+ "default.handlebars->27->1028",
11827
+ "default.handlebars->27->1264"
11828
]
11829
},
11830
{
@@ -11827,8 +11842,8 @@
11842
"zh-chs": "檢測到英特爾®AMT",
11843
"xloc": [
11844
"default-mobile.handlebars->9->205",
11830
- "default.handlebars->27->525",
11831
- "default.handlebars->27->526"
11845
+ "default.handlebars->27->526",
11846
+ "default.handlebars->27->527"
11847
]
11848
},
11849
{
@@ -11844,7 +11859,7 @@
11859
"ru": "Intel® AMT маршрутизируется и готов к использованию.",
11860
"zh-chs": "英特爾®AMT可路由並可以使用。",
11861
"xloc": [
11847
- "default.handlebars->27->487"
11862
+ "default.handlebars->27->488"
11863
]
11864
},
11865
{
@@ -11860,8 +11875,8 @@
11875
"ru": "Intel® AMT маршрутизируется.",
11876
"zh-chs": "英特爾®AMT是可路由的。",
11877
"xloc": [
11863
- "default.handlebars->27->169",
11864
- "default.handlebars->27->358"
11878
+ "default.handlebars->27->170",
11879
+ "default.handlebars->27->359"
11880
]
11881
},
11882
{
@@ -11896,8 +11911,8 @@
11911
"zh-chs": "僅限英特爾®AMT,無代理",
11912
"xloc": [
11913
"default-mobile.handlebars->9->277",
11899
- "default.handlebars->27->1037",
11900
- "default.handlebars->27->1059"
11914
+ "default.handlebars->27->1057",
11915
+ "default.handlebars->27->1079"
11916
]
11917
},
11918
{
@@ -11913,7 +11928,7 @@
11928
"ru": "Технология Intel® Active Management",
11929
"zh-chs": "英特爾®主動管理技術",
11930
"xloc": [
11916
- "default.handlebars->27->471"
11931
+ "default.handlebars->27->472"
11932
]
11933
},
11934
{
@@ -11930,7 +11945,7 @@
11945
"ru": "Intel® Active Management Technology (Intel® AMT)",
11946
"zh-chs": "英特爾®主動管理技術(英特爾®AMT)",
11947
"xloc": [
11933
- "default.handlebars->27->751"
11948
+ "default.handlebars->27->771"
11949
]
11950
},
11951
{
@@ -11948,7 +11963,7 @@
11963
"zh-chs": "英特爾®ME",
11964
"xloc": [
11965
"default-mobile.handlebars->9->189",
11951
- "default.handlebars->27->470"
11966
+ "default.handlebars->27->471"
11967
]
11968
},
11969
{
@@ -11966,7 +11981,7 @@
11981
"zh-chs": "英特爾®SM",
11982
"xloc": [
11983
"default-mobile.handlebars->9->191",
11969
- "default.handlebars->27->474"
11984
+ "default.handlebars->27->475"
11985
]
11986
},
11987
{
@@ -11982,7 +11997,7 @@
11997
"ru": "Intel® Standard Manageability",
11998
"zh-chs": "英特爾®標準可管理性",
11999
"xloc": [
11985
- "default.handlebars->27->473"
12000
+ "default.handlebars->27->474"
12001
]
12002
},
12003
{
@@ -12082,7 +12097,7 @@
12097
"ru": "Интерактивный",
12098
"zh-chs": "互動",
12099
"xloc": [
12085
- "default.handlebars->27->646"
12100
+ "default.handlebars->27->666"
12101
]
12102
},
12103
{
@@ -12099,10 +12114,10 @@
12114
"ru": "Только интерактивный режим",
12115
"zh-chs": "僅限互動",
12116
"xloc": [
12102
- "default.handlebars->27->1235",
12103
- "default.handlebars->27->1242",
12104
- "default.handlebars->27->284",
12105
- "default.handlebars->27->306"
12117
+ "default.handlebars->27->1252",
12118
+ "default.handlebars->27->1259",
12119
+ "default.handlebars->27->285",
12120
+ "default.handlebars->27->307"
12121
]
12122
},
12123
{
@@ -12119,7 +12134,7 @@
12134
"ru": "Интерфейсы",
12135
"zh-chs": "介面",
12136
"xloc": [
12122
- "default.handlebars->27->506"
12137
+ "default.handlebars->27->507"
12138
]
12139
},
12140
{
@@ -12135,7 +12150,7 @@
12150
"ru": "Инуктитут",
12151
"zh-chs": "因紐特人",
12152
"xloc": [
12138
- "default.handlebars->27->893"
12153
+ "default.handlebars->27->913"
12154
]
12155
},
12156
{
@@ -12151,7 +12166,7 @@
12166
"ru": "Некорректный тип группы устройств",
12167
"zh-chs": "無效的設備組類型",
12168
"xloc": [
12154
- "default.handlebars->27->1528"
12169
+ "default.handlebars->27->1539"
12170
]
12171
},
12172
{
@@ -12168,7 +12183,7 @@
12183
"ru": "Некорректный JSON",
12184
"zh-chs": "無效的JSON",
12185
"xloc": [
12171
- "default.handlebars->27->1522"
12186
+ "default.handlebars->27->1533"
12187
]
12188
},
12189
{
@@ -12185,8 +12200,8 @@
12200
"ru": "Некорректный формат файла JSON.",
12201
"zh-chs": "無效的JSON文件格式。",
12202
"xloc": [
12188
- "default.handlebars->27->1335",
12189
- "default.handlebars->27->1337"
12203
+ "default.handlebars->27->1352",
12204
+ "default.handlebars->27->1354"
12205
]
12206
},
12207
{
@@ -12203,7 +12218,7 @@
12218
"ru": "Некорректный файл JSON: {0}.",
12219
"zh-chs": "無效的JSON文件:{0}。",
12220
"xloc": [
12206
- "default.handlebars->27->1333"
12221
+ "default.handlebars->27->1350"
12222
]
12223
},
12224
{
@@ -12220,7 +12235,7 @@
12235
"ru": "Некорректная сигнатура PKCS",
12236
"zh-chs": "無效的PKCS簽名",
12237
"xloc": [
12223
- "default.handlebars->27->1520"
12238
+ "default.handlebars->27->1531"
12239
]
12240
},
12241
{
@@ -12237,7 +12252,7 @@
12252
"ru": "Некорректная сигнатура RSA",
12253
"zh-chs": "無效的RSA密碼",
12254
"xloc": [
12240
- "default.handlebars->27->1521"
12255
+ "default.handlebars->27->1532"
12256
]
12257
},
12258
{
@@ -12338,7 +12353,7 @@
12353
"ru": "Тип приглашения",
12354
"zh-chs": "邀請類型",
12355
"xloc": [
12341
- "default.handlebars->27->263"
12356
+ "default.handlebars->27->264"
12357
]
12358
},
12359
{
@@ -12351,7 +12366,7 @@
12366
"pt": "Os códigos de convite podem ser usados por qualquer pessoa para associar dispositivos a este grupo de dispositivos usando o seguinte link público:",
12367
"zh-chs": "任何人都可以使用邀請代碼通過以下公共鏈接將設備加入該設備組:",
12368
"xloc": [
12354
- "default.handlebars->27->1237"
12369
+ "default.handlebars->27->1254"
12370
]
12371
},
12372
{
@@ -12381,9 +12396,9 @@
12396
"ru": "Пригласить",
12397
"zh-chs": "邀請",
12398
"xloc": [
12384
- "default.handlebars->27->1109",
12385
- "default.handlebars->27->218",
12386
- "default.handlebars->27->296"
12399
+ "default.handlebars->27->1129",
12400
+ "default.handlebars->27->219",
12401
+ "default.handlebars->27->297"
12402
]
12403
},
12404
{
@@ -12396,11 +12411,11 @@
12411
"pt": "Códigos de convite",
12412
"zh-chs": "邀請碼",
12413
"xloc": [
12399
- "default.handlebars->27->1087",
12400
- "default.handlebars->27->1231",
12401
- "default.handlebars->27->1236",
12402
- "default.handlebars->27->1238",
12403
- "default.handlebars->27->1243"
12414
+ "default.handlebars->27->1107",
12415
+ "default.handlebars->27->1248",
12416
+ "default.handlebars->27->1253",
12417
+ "default.handlebars->27->1255",
12418
+ "default.handlebars->27->1260"
12419
]
12420
},
12421
{
@@ -12417,7 +12432,7 @@
12432
"ru": "Пригласите установить Mesh Agent поделившись ссылкой. Эта ссылка ведет на инструкции для установки для группы устройств \\\"{0}\\\". Ссылка общедоступна и не требует наличия учетной записи на сервере.",
12433
"zh-chs": "通過共享邀請鏈接來邀請某人安裝網格代理。該鏈接為用戶提供 “{0}” 設備組的安裝說明。該鏈接是公共的,不需要該服務器的帳戶。",
12434
"xloc": [
12420
- "default.handlebars->27->287"
12435
+ "default.handlebars->27->288"
12436
]
12437
},
12438
{
@@ -12434,8 +12449,8 @@
12449
"ru": "Отправить приглашение на установку Mesh Agent",
12450
"zh-chs": "邀請某人在此網格上安裝網格代理。",
12451
"xloc": [
12437
- "default.handlebars->27->1108",
12438
- "default.handlebars->27->217"
12452
+ "default.handlebars->27->1128",
12453
+ "default.handlebars->27->218"
12454
]
12455
},
12456
{
@@ -12452,7 +12467,7 @@
12467
"ru": "Пригласите установить Mesh Agent. Ссылка на установку для группы \\\"{0}\\\" будет отправлена по электронной почте.",
12468
"zh-chs": "邀請某人安裝網狀代理。將發送一封電子郵件,其中包含指向 “{0}” 設備組的網狀代理安裝的鏈接。",
12469
"xloc": [
12455
- "default.handlebars->27->264"
12470
+ "default.handlebars->27->265"
12471
]
12472
},
12473
{
@@ -12469,7 +12484,7 @@
12484
"ru": "Ирландский",
12485
"zh-chs": "愛爾蘭人",
12486
"xloc": [
12472
- "default.handlebars->27->894"
12487
+ "default.handlebars->27->914"
12488
]
12489
},
12490
{
@@ -12485,7 +12500,7 @@
12500
"ru": "Итальянский (Стандартный)",
12501
"zh-chs": "意大利語(標準)",
12502
"xloc": [
12488
- "default.handlebars->27->895"
12503
+ "default.handlebars->27->915"
12504
]
12505
},
12506
{
@@ -12501,7 +12516,7 @@
12516
"ru": "Итальянский (Швейцария)",
12517
"zh-chs": "義大利文(瑞士)",
12518
"xloc": [
12504
- "default.handlebars->27->896"
12519
+ "default.handlebars->27->916"
12520
]
12521
},
12522
{
@@ -12518,9 +12533,9 @@
12533
"ru": "Формат JSON",
12534
"zh-chs": "JSON格式",
12535
"xloc": [
12521
- "default.handlebars->27->1302",
12522
- "default.handlebars->27->1341",
12523
- "default.handlebars->27->386"
12536
+ "default.handlebars->27->1319",
12537
+ "default.handlebars->27->1358",
12538
+ "default.handlebars->27->387"
12539
]
12540
},
12541
{
@@ -12537,7 +12552,7 @@
12552
"ru": "Японский",
12553
"zh-chs": "日本",
12554
"xloc": [
12540
- "default.handlebars->27->897"
12555
+ "default.handlebars->27->917"
12556
]
12557
},
12558
{
@@ -12552,7 +12567,7 @@
12567
"ru": "Каннада",
12568
"zh-chs": "卡納達語",
12569
"xloc": [
12555
- "default.handlebars->27->898"
12570
+ "default.handlebars->27->918"
12571
]
12572
},
12573
{
@@ -12567,7 +12582,7 @@
12582
"ru": "Кашмирский",
12583
"zh-chs": "克什米爾語",
12584
"xloc": [
12570
- "default.handlebars->27->899"
12585
+ "default.handlebars->27->919"
12586
]
12587
},
12588
{
@@ -12582,7 +12597,7 @@
12597
"ru": "Казахский",
12598
"zh-chs": "哈薩克語",
12599
"xloc": [
12585
- "default.handlebars->27->900"
12600
+ "default.handlebars->27->920"
12601
]
12602
},
12603
{
@@ -12598,7 +12613,7 @@
12613
"ru": "Драйвер ядра",
12614
"zh-chs": "內核驅動程序",
12615
"xloc": [
12601
- "default.handlebars->27->647"
12616
+ "default.handlebars->27->667"
12617
]
12618
},
12619
{
@@ -12615,8 +12630,8 @@
12630
"ru": "Имя ключа",
12631
"zh-chs": "鍵名",
12632
"xloc": [
12618
- "default.handlebars->27->791",
12619
- "default.handlebars->27->794"
12633
+ "default.handlebars->27->811",
12634
+ "default.handlebars->27->814"
12635
]
12636
},
12637
{
@@ -12648,7 +12663,7 @@
12663
"ru": "Кхмерский",
12664
"zh-chs": "高棉語",
12665
"xloc": [
12651
- "default.handlebars->27->901"
12666
+ "default.handlebars->27->921"
12667
]
12668
},
12669
{
@@ -12663,7 +12678,7 @@
12678
"ru": "Киргизский",
12679
"zh-chs": "吉爾吉斯",
12680
"xloc": [
12666
- "default.handlebars->27->902"
12681
+ "default.handlebars->27->922"
12682
]
12683
},
12684
{
@@ -12678,7 +12693,7 @@
12693
"ru": "Клингонский",
12694
"zh-chs": "克林貢",
12695
"xloc": [
12681
- "default.handlebars->27->903"
12696
+ "default.handlebars->27->923"
12697
]
12698
},
12699
{
@@ -12691,7 +12706,7 @@
12706
"pt": "Conhecido",
12707
"zh-chs": "已知的",
12708
"xloc": [
12694
- "default.handlebars->27->750"
12709
+ "default.handlebars->27->770"
12710
]
12711
},
12712
{
@@ -12707,7 +12722,7 @@
12722
"ru": "Korean",
12723
"zh-chs": "韓語",
12724
"xloc": [
12710
- "default.handlebars->27->904"
12725
+ "default.handlebars->27->924"
12726
]
12727
},
12728
{
@@ -12723,7 +12738,7 @@
12738
"ru": "Корейский (Северная Корея)",
12739
"zh-chs": "韓語(朝鮮)",
12740
"xloc": [
12726
- "default.handlebars->27->905"
12741
+ "default.handlebars->27->925"
12742
]
12743
},
12744
{
@@ -12739,7 +12754,7 @@
12754
"ru": "Корейский (Южная Корея)",
12755
"zh-chs": "韓語(韓國)",
12756
"xloc": [
12742
- "default.handlebars->27->906"
12757
+ "default.handlebars->27->926"
12758
]
12759
},
12760
{
@@ -12756,8 +12771,8 @@
12771
"ru": "LF",
12772
"zh-chs": "如果",
12773
"xloc": [
12759
- "default.handlebars->27->659",
12760
- "default.handlebars->27->668"
12774
+ "default.handlebars->27->679",
12775
+ "default.handlebars->27->688"
12776
]
12777
},
12778
{
@@ -12774,7 +12789,7 @@
12789
"ru": "Язык",
12790
"zh-chs": "語言",
12791
"xloc": [
12777
- "default.handlebars->27->1000"
12792
+ "default.handlebars->27->1020"
12793
]
12794
},
12795
{
@@ -12808,7 +12823,7 @@
12823
"ru": "Большой Фокус",
12824
"zh-chs": "大焦點",
12825
"xloc": [
12811
- "default.handlebars->27->636"
12826
+ "default.handlebars->27->656"
12827
]
12828
},
12829
{
@@ -12991,7 +13006,7 @@
13006
"ru": "Последний доступ",
13007
"zh-chs": "最後訪問",
13008
"xloc": [
12994
- "default.handlebars->27->1310"
13009
+ "default.handlebars->27->1327"
13010
]
13011
},
13012
{
@@ -13008,7 +13023,7 @@
13023
"ru": "Последний вход в систему",
13024
"zh-chs": "上次登錄",
13025
"xloc": [
13011
- "default.handlebars->27->1437"
13026
+ "default.handlebars->27->1451"
13027
]
13028
},
13029
{
@@ -13027,10 +13042,10 @@
13042
"xloc": [
13043
"default.handlebars->27->70",
13044
"default.handlebars->27->71",
13030
- "default.handlebars->27->722",
13031
- "default.handlebars->27->723",
13032
- "default.handlebars->27->724",
13033
- "default.handlebars->27->73"
13045
+ "default.handlebars->27->73",
13046
+ "default.handlebars->27->742",
13047
+ "default.handlebars->27->743",
13048
+ "default.handlebars->27->744"
13049
]
13050
},
13051
{
@@ -13048,8 +13063,8 @@
13063
"zh-chs": "上次代理連接",
13064
"xloc": [
13065
"default.handlebars->27->69",
13051
- "default.handlebars->27->719",
13052
- "default.handlebars->27->721"
13066
+ "default.handlebars->27->739",
13067
+ "default.handlebars->27->741"
13068
]
13069
},
13070
{
@@ -13066,7 +13081,7 @@
13081
"ru": "Последнее изменение: {0}",
13082
"zh-chs": "上次更改:{0}",
13083
"xloc": [
13069
- "default.handlebars->27->1441"
13084
+ "default.handlebars->27->1455"
13085
]
13086
},
13087
{
@@ -13117,7 +13132,7 @@
13132
"ru": "Последний вход в систему: {0}",
13133
"zh-chs": "上次登錄:{0}",
13134
"xloc": [
13120
- "default.handlebars->27->1320"
13135
+ "default.handlebars->27->1337"
13136
]
13137
},
13138
{
@@ -13134,7 +13149,7 @@
13149
"ru": "Последнее посещение:",
13150
"zh-chs": "最後一次露面:",
13151
"xloc": [
13137
- "default.handlebars->27->529",
13152
+ "default.handlebars->27->530",
13153
"default.handlebars->27->65"
13154
]
13155
},
@@ -13203,7 +13218,7 @@
13218
"ru": "Латинский",
13219
"zh-chs": "拉丁",
13220
"xloc": [
13206
- "default.handlebars->27->907"
13221
+ "default.handlebars->27->927"
13222
]
13223
},
13224
{
@@ -13219,7 +13234,7 @@
13234
"ru": "Латышский",
13235
"zh-chs": "拉脫維亞語",
13236
"xloc": [
13222
- "default.handlebars->27->908"
13237
+ "default.handlebars->27->928"
13238
]
13239
},
13240
{
@@ -13258,13 +13273,14 @@
13273
"ru": "Меньше",
13274
"zh-chs": "減",
13275
"xloc": [
13261
- "default.handlebars->27->1587"
13276
+ "default.handlebars->27->1598"
13277
]
13278
},
13279
{
13280
"en": "Limit Events",
13281
"xloc": [
13267
- "default.handlebars->27->547"
13282
+ "default.handlebars->27->548",
13283
+ "default.handlebars->27->567"
13284
]
13285
},
13286
{
@@ -13299,8 +13315,9 @@
13315
"zh-chs": "有限輸入",
13316
"xloc": [
13317
"default-mobile.handlebars->9->326",
13302
- "default.handlebars->27->1217",
13303
- "default.handlebars->27->540"
13318
+ "default.handlebars->27->1234",
13319
+ "default.handlebars->27->541",
13320
+ "default.handlebars->27->560"
13321
]
13322
},
13323
{
@@ -13317,7 +13334,7 @@
13334
"zh-chs": "僅限於輸入",
13335
"xloc": [
13336
"default-mobile.handlebars->9->301",
13320
- "default.handlebars->27->1181"
13337
+ "default.handlebars->27->1198"
13338
]
13339
},
13340
{
@@ -13335,7 +13352,7 @@
13352
"zh-chs": "鏈接",
13353
"xloc": [
13354
"default-mobile.handlebars->9->71",
13338
- "default.handlebars->27->1263",
13355
+ "default.handlebars->27->1280",
13356
"default.handlebars->container->column_l->p42->p42tbl->1->0->4"
13357
]
13358
},
@@ -13353,8 +13370,8 @@
13370
"ru": "Срок действия ссылки",
13371
"zh-chs": "鏈接過期",
13372
"xloc": [
13356
- "default.handlebars->27->274",
13357
- "default.handlebars->27->288"
13373
+ "default.handlebars->27->275",
13374
+ "default.handlebars->27->289"
13375
]
13376
},
13377
{
@@ -13389,7 +13406,7 @@
13406
"ru": "Linux / BSD",
13407
"zh-chs": "Linux / BSD",
13408
"xloc": [
13392
- "default.handlebars->27->299"
13409
+ "default.handlebars->27->300"
13410
]
13411
},
13412
{
@@ -13406,7 +13423,7 @@
13423
"ru": "Linux / BSD (Удаление)",
13424
"zh-chs": "Linux / BSD(卸載)",
13425
"xloc": [
13409
- "default.handlebars->27->302"
13426
+ "default.handlebars->27->303"
13427
]
13428
},
13429
{
@@ -13477,7 +13494,7 @@
13494
"ru": "Linux ARM, Raspberry Pi (32bit)",
13495
"zh-chs": "Linux ARM,Raspberry Pi(32位)",
13496
"xloc": [
13480
- "default.handlebars->27->604"
13497
+ "default.handlebars->27->624"
13498
]
13499
},
13500
{
@@ -13566,7 +13583,7 @@
13583
"ru": "Только Linux",
13584
"zh-chs": "僅Linux",
13585
"xloc": [
13569
- "default.handlebars->27->273"
13586
+ "default.handlebars->27->274"
13587
]
13588
},
13589
{
@@ -13583,7 +13600,7 @@
13600
"ru": "Linux x86 (32bit)",
13601
"zh-chs": "Linux x86(32位)",
13602
"xloc": [
13586
- "default.handlebars->27->601"
13603
+ "default.handlebars->27->621"
13604
]
13605
},
13606
{
@@ -13600,7 +13617,7 @@
13617
"ru": "Linux x86 (64bit)",
13618
"zh-chs": "Linux x86(64位)",
13619
"xloc": [
13603
- "default.handlebars->27->602"
13620
+ "default.handlebars->27->622"
13621
]
13622
},
13623
{
@@ -13635,7 +13652,7 @@
13652
"ru": "Литовский",
13653
"zh-chs": "立陶宛語",
13654
"xloc": [
13638
- "default.handlebars->27->909"
13655
+ "default.handlebars->27->929"
13656
]
13657
},
13658
{
@@ -13653,10 +13670,10 @@
13670
"zh-chs": "載入中...",
13671
"xloc": [
13672
"default-mobile.handlebars->9->34",
13656
- "default.handlebars->27->1054",
13657
- "default.handlebars->27->1056",
13658
- "default.handlebars->27->595",
13659
- "default.handlebars->27->787"
13673
+ "default.handlebars->27->1074",
13674
+ "default.handlebars->27->1076",
13675
+ "default.handlebars->27->615",
13676
+ "default.handlebars->27->807"
13677
]
13678
},
13679
{
@@ -13722,7 +13739,7 @@
13739
"ru": "Настройки локализации",
13740
"zh-chs": "本地化設置",
13741
"xloc": [
13725
- "default.handlebars->27->1003",
13742
+ "default.handlebars->27->1023",
13743
"default.handlebars->container->column_l->p2->p2AccountActions->3->5"
13744
]
13745
},
@@ -13740,7 +13757,7 @@
13757
"ru": "Местонахождение",
13758
"zh-chs": "位置",
13759
"xloc": [
13743
- "default.handlebars->27->508"
13760
+ "default.handlebars->27->509"
13761
]
13762
},
13763
{
@@ -13773,7 +13790,7 @@
13790
"ru": "Заблокировать учетную запись",
13791
"zh-chs": "鎖定賬戶",
13792
"xloc": [
13776
- "default.handlebars->27->1371"
13793
+ "default.handlebars->27->1388"
13794
]
13795
},
13796
{
@@ -13790,7 +13807,7 @@
13807
"ru": "Заблокирован",
13808
"zh-chs": "已鎖定",
13809
"xloc": [
13793
- "default.handlebars->27->1321"
13810
+ "default.handlebars->27->1338"
13811
]
13812
},
13813
{
@@ -13807,7 +13824,7 @@
13824
"ru": "Заблокированная учетная запись",
13825
"zh-chs": "賬戶鎖定",
13826
"xloc": [
13810
- "default.handlebars->27->1422"
13827
+ "default.handlebars->27->1436"
13828
]
13829
},
This file is too large to show in full.
views/default.handlebars
+169
-117
@@ -1814,21 +1814,25 @@
1814
case 'nodes': {
1815
nodes = [];
1816
for (var m in message.nodes) {
1817
- if (!meshes[m]) { console.log('Invalid mesh (1): ' + m); continue; }
1817
for (var n in message.nodes[m]) {
1818
if (message.nodes[m][n]._id == null) { console.log('Invalid node (' + n + '): ' + JSON.stringify(message.nodes)); continue; }
1819
message.nodes[m][n].namel = message.nodes[m][n].name.toLowerCase();
1820
if (message.nodes[m][n].rname) { message.nodes[m][n].rnamel = message.nodes[m][n].rname.toLowerCase(); } else { message.nodes[m][n].rnamel = message.nodes[m][n].namel; }
1822
- message.nodes[m][n].meshnamel = meshes[m].name.toLowerCase();
1821
+ if (meshes[m]) { message.nodes[m][n].meshnamel = meshes[m].name.toLowerCase(); }
1822
message.nodes[m][n].meshid = m;
1823
message.nodes[m][n].state = (message.nodes[m][n].state)?(message.nodes[m][n].state):0;
1825
- message.nodes[m][n].desc = message.nodes[m][n].desc;
1826
- message.nodes[m][n].ip = message.nodes[m][n].ip;
1824
if (!message.nodes[m][n].icon) message.nodes[m][n].icon = 1;
1825
message.nodes[m][n].ident = ++nodeShortIdent;
1826
nodes.push(message.nodes[m][n]);
1827
}
1828
}
1829
+
1830
+ // If we are currently looking at a node this is now gone, change the view.
1831
+ if ((currentNode != null) && (getNodeFromId(currentNode._id) == null)) { currentNode = null; go(1); }
1832
+
1833
+ // Change the reference to the current node
1834
+ if (currentNode != null) { currentNode = getNodeFromId(currentNode._id); }
1835
+
1836
masterUpdate(1 | 2 | 4 | 64);
1837
break;
1838
}
@@ -1996,7 +2000,7 @@
2000
break;
2001
}
2002
case 'events': {
1999
- if ((message.nodeid != null) && (message.nodeid == currentNode._id)) {
2003
+ if ((message.nodeid != null) && (currentNode != null) && (message.nodeid == currentNode._id)) {
2004
currentDeviceEvents = message.events;
2005
masterUpdate(1024);
2006
} else if ((message.user != null) && (message.user == currentUser.name)) {
@@ -2232,6 +2236,9 @@
2236
meshserver.send({ action: 'wssessioncount' });
2237
}
2238
}
2239
+
2240
+ // If out list of nodes may have changes, request the new list now.
2241
+ if (message.event.nodeListChange == userinfo._id) { meshserver.send({ action: 'nodes' }); }
2242
}
2243
if (users == null) break;
2244
@@ -2327,9 +2334,9 @@
2334
if ((xxcurrentView == 20) && (currentMesh == meshes[message.event.meshid])) go(2);
2335
delete meshes[message.event.meshid];
2336
2330
- // Delete all nodes in that mesh
2337
+ // Delete all nodes in that mesh, except ones with direct links
2338
var newnodes = [];
2332
- for (var i in nodes) { if (nodes[i].meshid != message.event.meshid) { newnodes.push(nodes[i]); } }
2339
+ for (var i in nodes) { if ((nodes[i].meshid != message.event.meshid) || ((userinfo.links != null) && (userinfo.links[nodes[i]._id] != null))) { newnodes.push(nodes[i]); } }
2340
nodes = newnodes;
2341
2342
// If we are looking at a node in the deleted mesh, move back to "My Devices"
@@ -2926,11 +2933,11 @@
2933
QV('kvmListToolbar', view == 3);
2934
QV('devMapToolbar', view == 4);
2935
QV('devListToolbarSize', view == 3);
2929
- QV('NoMeshesPanel', meshcount == 0);
2936
+ QV('NoMeshesPanel', (nodes.length == 0) && (meshcount == 0));
2937
//QV('devListToolbarView', (meshcount != 0) && (nodes.length > 0));
2931
- QV('devListToolbarViewIcons', (meshcount != 0) && (nodes.length > 0));
2932
- QV('devListToolbarSort', (meshcount != 0) && (nodes.length > 0) && (view < 4));
2933
- if ((meshcount == 0) || (nodes.length == 0)) { view = 1; sort = 0; }
2938
+ QV('devListToolbarViewIcons', nodes.length > 0);
2939
+ QV('devListToolbarSort', (nodes.length > 0) && (view < 4));
2940
+ if (nodes.length == 0) { view = 1; sort = 0; }
2941
if (view == 4) {
2942
setTimeout( function() { if (xxmap.map != null) { xxmap.map.updateSize(); } }, 200);
2943
// TODO
@@ -2964,7 +2971,7 @@
2971
var node = nodes[i];
2972
if (node.v == false) continue;
2973
var mesh2 = meshes[node.meshid];
2967
- if ((view == 3) && (mesh2.mtype == 1)) continue;
2974
+ //if ((view == 3) && (mesh2.mtype == 1)) continue;
2975
var meshrights = GetNodeRights(node);
2976
if (sort == 0) {
2977
// Mesh header
@@ -2973,7 +2980,7 @@
2980
deviceHeaderSet();
2981
var extra = '';
2982
if (view == 2) { r += '<tr><td colspan=5>'; }
2976
- if (meshes[node.meshid].mtype == 1) { extra = '<span class=devHeaderx>' + ", Intel® AMT only" + '</span>'; }
2983
+ if (meshes[node.meshid] && (meshes[node.meshid].mtype == 1)) { extra = '<span class=devHeaderx>' + ", Intel® AMT only" + '</span>'; }
2984
if ((view == 1) && (current != null)) { if (c == 2) { r += '<td><div style=width:301px></div></td>'; } if (r != '') { r += '</tr></table>'; } }
2985
if (view == 2) { r += '<div>'; }
2986
r += '<div class=DevSt style=width:100%;padding-top:4px><span style=float:right>';
@@ -2983,7 +2990,11 @@
2990
var collapsed = CollapsedGroups[node.meshid];
2991
r += '<img class=collapseImage id=\"DevxColImg' + deviceHeaderId + '\" src=images/c' + ((collapsed === true)?'1':'2') + '.png height=8 width=8 style=margin-left:2px;margin-right:2px;cursor:pointer onclick=toggleCollapseGroup(\"' + deviceHeaderId + '\",\"' + node.meshid + '\",' + view + ')></img>'; // Collapse action
2992
}
2986
- r += '<span id=MxMESH cmenu=meshContextMenu tabindex=0 style=cursor:pointer onclick=gotoMesh("' + node.meshid + '") onkeypress="if (event.key==\'Enter\') gotoMesh(\'' + node.meshid + '\')">' + EscapeHtml(meshes[node.meshid].name) + '</span>' + getMeshActions(mesh2, meshrights) + '</div>';
2993
+ if (meshes[node.meshid]) {
2994
+ r += '<span id=MxMESH cmenu=meshContextMenu tabindex=0 style=cursor:pointer onclick=gotoMesh("' + node.meshid + '") onkeypress="if (event.key==\'Enter\') gotoMesh(\'' + node.meshid + '\')">' + EscapeHtml(meshes[node.meshid].name) + '</span>' + getMeshActions(mesh2, meshrights) + '</div>';
2995
+ } else {
2996
+ r += '<span id=MxMESH cmenu=meshContextMenu tabindex=0 style=cursor:pointer><i>' + "Indivitual Devices" + '</i></span></div>';
2997
+ }
2998
if (view == 2) { r += '</div>'; }
2999
current = node.meshid;
3000
displayedMeshes[current] = 1;
@@ -3113,7 +3124,7 @@
3124
}
3125
3126
// If there is nothing to display, explain the problem
3116
- if ((r == '') && (meshcount > 0) && (Q('SearchInput').value != '')) {
3127
+ if ((r == '') && (nodes.length > 0) && (Q('SearchInput').value != '')) {
3128
if (sort == 3) {
3129
r = '<div style="margin:30px">' + "No devices are included in any groups, click on a device\'s \"Groups\" to add to a group." + '</div>';
3130
} else {
@@ -3173,7 +3184,7 @@
3184
3185
// Add a "Add Device Group" option
3186
r += '<div style=border-top-style:solid;border-top-width:1px;border-top-color:#DDDDDD;cursor:pointer;font-size:10px>';
3176
- if ((view < 3) && (sort == 0) && (meshcount > 0) && ((userinfo.siteadmin == 0xFFFFFFFF) || ((userinfo.siteadmin & 64) == 0))) {
3187
+ if ((view < 3) && (sort == 0) && (nodes.length > 0) && ((userinfo.siteadmin == 0xFFFFFFFF) || ((userinfo.siteadmin & 64) == 0))) {
3188
r += '<a href=# onclick="return account_createMesh()" title=\"' + "Create a new group of devices." + '\" style=cursor:pointer>' + "Add Device Group" + '</a> ';
3189
}
3190
if ((userinfo.siteadmin == 0xFFFFFFFF) || ((userinfo.siteadmin & 128) == 0)) {
@@ -4139,6 +4150,8 @@
4150
// DEVICES MAP
4151
//
4152
4153
+ {{{StartGeoLocationJS}}}
4154
+
4155
// Maps code starts from here. Initialize all the variables
4156
var xxmap = {
4157
map: null,
@@ -4151,8 +4164,6 @@
4164
mapView: null, // Sets the initial view
4165
}
4166
4154
- {{{StartGeoLocationJS}}}
4155
-
4167
// Add a feature for every Node and change style if connection status changes
4168
function updateMapMarkers(selectedMesh) {
4169
if ((xxmap != null) && (xxmap.map == null)) { try { loadmap(); } catch (ex) { console.error('loadmap() exception', ex); } }
@@ -4775,7 +4786,7 @@
4786
var nname = EscapeHtml(node.name);
4787
if (nname.length == 0) { nname = '<i>' + "None" + '</i>'; }
4788
if (((meshrights & 4) != 0) && ((!mesh.flags) || ((mesh.flags & 2) == 0))) { nname = '<span tabindex=0 title=\"' + "Click here to edit the server-side device name" + '\" onclick=showEditNodeValueDialog(0) onkeyup="if (event.key == \'Enter\') showEditNodeValueDialog(0)" style=cursor:pointer>' + nname + ' <img class=hoverButton src="images/link5.png" /></span>'; }
4778
- nname += '<span style=color:#AAA;font-size:small> - ' + EscapeHtml(mesh.name) + '</span>';
4789
+ if (mesh) { nname += '<span style=color:#AAA;font-size:small> - ' + EscapeHtml(mesh.name) + '</span>'; }
4790
QH('p10deviceName', nname);
4791
QH('p11deviceName', nname);
4792
QH('p12deviceName', nname);
@@ -4790,7 +4801,7 @@
4801
var x = '<table style=width:100%>';
4802
4803
// Attribute: Mesh
4793
- x += addDeviceAttribute('<span title=\"' + "The name of the device group this computer belong to." + '\">' + "Group" + '</span>', '<a href=# title=\"' + "The name of the device group this computer belong to" + '\" onclick=gotoMesh("' + node.meshid + '") style=cursor:pointer>' + EscapeHtml(meshes[node.meshid].name) + '</a>');
4804
+ if (mesh) { x += addDeviceAttribute('<span title=\"' + "The name of the device group this computer belong to." + '\">' + "Group" + '</span>', '<a href=# title=\"' + "The name of the device group this computer belong to" + '\" onclick=gotoMesh("' + node.meshid + '") style=cursor:pointer>' + EscapeHtml(meshes[node.meshid].name) + '</a>'); }
4805
4806
// Attribute: Name
4807
if ((node.rname != null) && (node.name != node.rname)) { x += addDeviceAttribute('<span title="' + "The name of this computer as set in the operating system" + '">' + "Name" + '</span>', '<span title="' + "The name of this computer as set in the operating system" + '">' + EscapeHtml(node.rname) + '</span>'); }
@@ -4861,20 +4872,16 @@
4872
x += addDeviceAttribute(meName, str);
4873
}
4874
4864
- if (mesh.mtype == 2) {
4875
+ if ((node.agent != null) && (node.agent.tag != null)) {
4876
// Attribute: Mesh Agent Tag
4866
- if ((node.agent != null) && (node.agent.tag != null)) {
4867
- var tag = EscapeHtml(node.agent.tag);
4868
- if (tag.startsWith('mailto:')) { tag = '<a href="' + tag + '">' + tag.substring(7) + '</a>'; }
4869
- x += addDeviceAttribute("Agent Tag", tag);
4870
- }
4871
- } else {
4877
+ var tag = EscapeHtml(node.agent.tag);
4878
+ if (tag.startsWith('mailto:')) { tag = '<a href="' + tag + '">' + tag.substring(7) + '</a>'; }
4879
+ x += addDeviceAttribute("Agent Tag", tag);
4880
+ } else if ((node.intelamt != null) && (node.intelamt.tag != null)) {
4881
// Attribute: Intel AMT Tag
4873
- if ((node.intelamt != null) && (node.intelamt.tag != null)) {
4874
- var tag = EscapeHtml(node.intelamt.tag);
4875
- if (tag.startsWith('mailto:')) { tag = '<a href="' + tag + '">' + tag.substring(7) + '</a>'; }
4876
- x += addDeviceAttribute("Intel® AMT Tag", tag);
4877
- }
4882
+ var tag = EscapeHtml(node.intelamt.tag);
4883
+ if (tag.startsWith('mailto:')) { tag = '<a href="' + tag + '">' + tag.substring(7) + '</a>'; }
4884
+ x += addDeviceAttribute("Intel® AMT Tag", tag);
4885
}
4886
4887
// Attribute: Intel AMT
@@ -4947,13 +4954,15 @@
4954
x += ' <a href=# onclick=p10showDeleteNodeDialog("' + node._id + '") title=\"' + "Remove this device" + '\">' + "Delete Device" + '</a>';
4955
}
4956
x += '</div><div class="p10html3left">';
4950
- if (mesh.mtype == 2) x += '<a href=# onclick=p10showNodeNetInfoDialog("' + node._id + '") title=\"' + "Show device network interface information" + '\">' + "Interfaces" + '</a> ';
4957
+ if (node.agent) x += '<a href=# onclick=p10showNodeNetInfoDialog("' + node._id + '") title=\"' + "Show device network interface information" + '\">' + "Interfaces" + '</a> ';
4958
+ {{{StartGeoLocationJS}}}
4959
if (xxmap != null) x += '<a href=# onclick=p10showNodeLocationDialog("' + node._id + '") title=\"' + "Show device locations information" + '\">' + "Location" + '</a> ';
4952
- if ((terminalAccess) && ((meshrights & 8) != 0) && (mesh.mtype == 2)) x += '<a href=# onclick=p10showMeshCmdDialog(1,"' + node._id + '") title=\"' + "Traffic router used to connect to a device thru this server" + '.\">' + "Router" + '</a> ';
4953
- if ((args.xterm === 0) && (mesh.mtype == 2) && ((node.agent.caps & 2) != 0) && ((meshrights & 8) != 0) && ((meshrights == 0xFFFFFFFF) || ((meshrights & 512) == 0))) { x += '<a href=# onclick=p10openxterm(event,"' + node._id + '") title=\"' + "Open XTerm terminal" + '\">' + "XTerm" + '</a> '; }
4960
+ {{{EndGeoLocationJS}}}
4961
+ if ((terminalAccess) && ((meshrights & 8) != 0) && (node.agent != null)) x += '<a href=# onclick=p10showMeshCmdDialog(1,"' + node._id + '") title=\"' + "Traffic router used to connect to a device thru this server" + '.\">' + "Router" + '</a> ';
4962
+ if ((args.xterm === 0) && (node.agent) && ((node.agent.caps & 2) != 0) && ((meshrights & 8) != 0) && ((meshrights == 0xFFFFFFFF) || ((meshrights & 512) == 0))) { x += '<a href=# onclick=p10openxterm(event,"' + node._id + '") title=\"' + "Open XTerm terminal" + '\">' + "XTerm" + '</a> '; }
4963
4964
// RDP link, show this link only of the remote machine is Windows.
4956
- if (((connectivity & 1) != 0) && (clickOnce == true) && (mesh.mtype == 2) && ((meshrights & 8) != 0)) {
4965
+ if (((connectivity & 1) != 0) && (clickOnce == true) && (node.agent) && ((meshrights & 8) != 0)) {
4966
if ((node.agent.id > 0) && (node.agent.id < 5)) { x += '<a href=# cmenu=altPortContextMenu id=rdpClickOnceLink onclick=p10clickOnce("' + node._id + '","RDP2") title=\"' + "Requires Microsoft ClickOnce support in your browser" + '.\">' + "RDP" + '</a> '; }
4967
if (node.agent.id > 4) {
4968
x += '<a href=# onclick=p10clickOnce("' + node._id + '","PSSH",22) title=\"' + "Requires Microsoft ClickOnce support in your browser." + '\">' + "Putty" + '</a> ';
@@ -4990,14 +4999,14 @@
4999
// Show or hide the tabs
5000
// mesh.mtype: 1 = Intel AMT only, 2 = Mesh Agent
5001
// node.agent.caps (bitmask): 1 = Desktop, 2 = Terminal, 4 = Files, 8 = Console
4993
- QV('MainDevDesktop', desktopAccess && ((((mesh.mtype == 1) && ((typeof node.intelamt.sku !== 'number') || ((node.intelamt.sku & 8) != 0)))
4994
- || ((mesh.mtype == 2) && ((node.agent == null) || (node.agent.caps == null) || ((node.agent.caps & 1) != 0) || (node.intelamt && (node.intelamt.state == 2)))))
5002
+ QV('MainDevDesktop', desktopAccess && ((((node.agent == null) && ((typeof node.intelamt.sku !== 'number') || ((node.intelamt.sku & 8) != 0)))
5003
+ || ((node.agent != null) && ((node.agent.caps == null) || ((node.agent.caps & 1) != 0) || (node.intelamt && (node.intelamt.state == 2)))))
5004
&& ((meshrights & 8) || (meshrights & 256)))
5005
);
4997
- QV('MainDevTerminal', ((mesh.mtype == 1) || (node.agent == null) || (node.agent.caps == null) || ((node.agent.caps & 2) != 0) || (node.intelamt && (node.intelamt.state == 2))) && (meshrights & 8) && terminalAccess);
4998
- QV('MainDevFiles', ((mesh.mtype == 2) && ((node.agent == null) || (node.agent.caps == null) || ((node.agent.caps & 4) != 0))) && (meshrights & 8) && fileAccess);
5006
+ QV('MainDevTerminal', (((node.agent == null) && (node.intelamt != null)) || (node.agent.caps == null) || ((node.agent.caps & 2) != 0) || (node.intelamt && (node.intelamt.state == 2))) && (meshrights & 8) && terminalAccess);
5007
+ QV('MainDevFiles', (node.agent != null) && (node.agent.caps != null) && ((node.agent.caps & 4) != 0) && (meshrights & 8) && fileAccess);
5008
QV('MainDevAmt', (node.intelamt != null) && ((node.intelamt.state == 2) || (node.conn & 2)) && (meshrights & 8) && amtAccess);
5000
- QV('MainDevConsole', (consoleRights && (mesh.mtype == 2) && ((node.agent == null) || (node.agent.caps == null) || ((node.agent.caps & 8) != 0))) && (meshrights & 8));
5009
+ QV('MainDevConsole', (consoleRights && ((node.agent != null) && (node.agent.caps != null) && ((node.agent.caps & 8) != 0))) && (meshrights & 8));
5010
QV('MainDevPlugins', false);
5011
QV('p15uploadCore', (node.agent != null) && (node.agent.caps != null) && ((node.agent.caps & 16) != 0));
5012
QH('p15coreName', ((node.agent != null) && (node.agent.core != null))?node.agent.core:'');
@@ -5035,7 +5044,7 @@
5044
5045
// Update the web page title
5046
if ((currentNode) && (xxcurrentView >= 10) && (xxcurrentView < 20)) {
5038
- document.title = decodeURIComponent('{{{extitle}}}') + ' - ' + currentNode.name + ' - ' + mesh.name;
5047
+ document.title = decodeURIComponent('{{{extitle}}}') + ' - ' + currentNode.name + (mesh?(' - ' + mesh.name):'');
5048
} else {
5049
document.title = decodeURIComponent('{{{extitle}}}');
5050
}
@@ -5055,29 +5064,27 @@
5064
5065
// Show user device permissions
5066
x = '';
5058
- if (urlargs.dp == 1) { // For testing only
5059
- x += '<a href=# onclick="return p20showAddMeshUserDialog(5)" style=cursor:pointer;margin-right:10px><img src=images/icon-addnew.png border=0 height=12 width=12> ' + "Add User" + '</a>';
5060
- x += '<table style="color:black;background-color:#EEE;border-color:#AAA;border-width:1px;border-style:solid;border-collapse:collapse" border=0 cellpadding=2 cellspacing=0 width=100%><tbody><tr style=background-color:#AAAAAA;font-weight:bold><th scope=col style=text-align:left;width:430px>' + "User Permissions" + '</th><th scope=col style=text-align:left></th></tr>';
5061
- var count = 1;
5062
- if (currentNode.links != null) {
5063
- // Sort the list of users to display
5064
- var useridlist = [];
5065
- for (var i in currentNode.links) { if (i.startsWith('user/')) { useridlist.push(i); } }
5066
- useridlist.sort();
5067
- for (var i in useridlist) {
5068
- var trash = '', rights = '', userid = useridlist[i], srights = currentNode.links[userid].rights, username = EscapeHtml(userid.split('/')[2]), rights = makeUserDeviceRightsString(srights);
5069
- if ((users != null) && (users[userid] != null)) { username = EscapeHtml(users[userid].name); }
5070
- if ((meshrights & 2) != 0) {
5071
- rights = '<div style=cursor:pointer onclick=p20showAddMeshUserDialog(5,\"' + encodeURIComponent(userid) + '\")>' + rights + ' <img class=hoverButton style=cursor:pointer src=images/link5.png></div>';
5072
- trash = '<a href=# onclick=\'return p30removeUserFromNode(event,"' + encodeURIComponent(userid) + '")\' title=\"' + "Remove user rights to this device group" + '\" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>';
5073
- }
5074
- if (users != null) { username = '<a href=# onclick=\'gotoUser("' + encodeURIComponent(userid) + '");haltEvent(event);\'>' + username + '</a>'; }
5075
- x += '<tr ' + (((++count % 2) == 0) ? 'style=background-color:#DDD' : '') + '><td style=width:30%><div title=\"' + "User" + '\" class=m2></div><div> ' + username + '<div></div></div></td><td style=width:70%><div style=float:right>' + trash + '</div><div>' + rights + '</div></td></tr>';
5067
+ if (meshrights & 7) { x += '<a href=# onclick="return p20showAddMeshUserDialog(5)" style=cursor:pointer;margin-right:10px><img src=images/icon-addnew.png border=0 height=12 width=12> ' + "Add User" + '</a>'; }
5068
+ x += '<table style="color:black;background-color:#EEE;border-color:#AAA;border-width:1px;border-style:solid;border-collapse:collapse" border=0 cellpadding=2 cellspacing=0 width=100%><tbody><tr style=background-color:#AAAAAA;font-weight:bold><th scope=col style=text-align:left;width:430px>' + "User Authorizations" + '</th><th scope=col style=text-align:left></th></tr>';
5069
+ var count = 1;
5070
+ if (currentNode.links != null) {
5071
+ // Sort the list of users to display
5072
+ var useridlist = [];
5073
+ for (var i in currentNode.links) { if (i.startsWith('user/')) { useridlist.push(i); } }
5074
+ useridlist.sort();
5075
+ for (var i in useridlist) {
5076
+ var trash = '', rights = '', userid = useridlist[i], srights = currentNode.links[userid].rights, username = EscapeHtml(userid.split('/')[2]), rights = makeUserDeviceRightsString(srights);
5077
+ if ((users != null) && (users[userid] != null)) { username = EscapeHtml(users[userid].name); }
5078
+ if ((meshrights & 2) != 0) {
5079
+ trash = '<a href=# onclick=\'return p30removeUserFromNode(event,"' + encodeURIComponent(userid) + '")\' title=\"' + "Remove user rights to this device group" + '\" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>';
5080
+ rights = '<div style=cursor:pointer onclick=p20showAddMeshUserDialog(5,\"' + encodeURIComponent(userid) + '\")>' + rights + ' <img class=hoverButton style=cursor:pointer src=images/link5.png></div>';
5081
}
5082
+ if (users != null) { username = '<a href=# onclick=\'gotoUser("' + encodeURIComponent(userid) + '");haltEvent(event);\'>' + username + '</a>'; }
5083
+ x += '<tr ' + (((++count % 2) == 0) ? 'style=background-color:#DDD' : '') + '><td style=width:30%><div title=\"' + "User" + '\" class=m2></div><div> ' + username + '<div></div></div></td><td style=width:70%><div style=float:right>' + trash + '</div><div>' + rights + '</div></td></tr>';
5084
}
5078
- if (count == 1) { x += '<tr><td><div style=padding:6px> <i>' + "No users with special device permissions" + '</i><div></div></div></td><td></td></tr>'; }
5079
- x += '</tbody></table>';
5085
}
5086
+ if (count == 1) { x += '<tr><td><div style=padding:6px> <i>' + "No users with special device permissions" + '</i><div></div></div></td><td></td></tr>'; }
5087
+ x += '</tbody></table>';
5088
QH('p10html4', x);
5089
5090
// Change the URL
@@ -5117,6 +5124,33 @@
5124
return str.join(', ');
5125
}
5126
5127
+ function makeDeviceGroupRightsString(rights) {
5128
+ if (rights == 0xFFFFFFFF) { return "Full Rights"; }
5129
+ var str = [];
5130
+ if (rights & 1) str.push("Edit Group");
5131
+ if (rights & 2) str.push("Manage Users");
5132
+ if (rights & 4) str.push("Manage Devices");
5133
+ if (rights & 8) {
5134
+ var str1 = [];
5135
+ if (rights & 256) str1.push("No Input");
5136
+ if (rights & 512) str1.push("No Terminal");
5137
+ if (rights & 1024) str1.push("No Files");
5138
+ if (rights & 2048) str1.push("No AMT");
5139
+ if (rights & 4096) str1.push("Limited Input");
5140
+ if (rights & 65536) str1.push("No Desktop");
5141
+ if (str1.length > 0) { str.push('Control (' + str1.join(', ') + ')'); } else { str.push("Control"); }
5142
+ }
5143
+ if (rights & 16) str.push("Console");
5144
+ if (rights & 32) str.push("Server Files");
5145
+ if (rights & 64) str.push("Wake");
5146
+ if (rights & 128) str.push("Notes");
5147
+ if (rights & 8192) str.push("Limit Events");
5148
+ if (rights & 16384) str.push("Chat");
5149
+ if (rights & 32768) str.push("Uninstall");
5150
+ if (str.length == 0) return "No Rights";
5151
+ return str.join(', ');
5152
+ }
5153
+
5154
function writeDeviceEvent(nodeid) {
5155
if (xxdialogMode) return;
5156
setDialogMode(2, "Add Device Event", 3, writeDeviceEventEx, '<textarea id=d2devEvent style=background-color:#fcf3cf;width:100%;height:200px;resize:none;overflow-y:scroll></textarea><span style=font-size:10px>' + "This will add an entry to this device\'s event log." + '<span>', nodeid);
@@ -5273,7 +5307,7 @@
5307
date = new Date(date.getTime() - (1000 * 60 * 60 * 24)); // Substract one day
5308
}
5309
5276
- QH('p10html2', '<table cellpadding=2 cellspacing=0><thead><tr style=><th scope=col style=text-align:center;width:150px>' + "Day" + '</th><th scope=col style=text-align:center><a download href="devicepowerevents.ashx?id=' + currentNode._id + '" onclick="setDialogMode(0)"><img title=\"' + "Download power events" + '\" src="images/link4.png" /></a>' + "7 Day Power State" + '</th></tr></thead><tbody>' + x + '</tbody></table>');
5310
+ QH('p10html2', '<table cellpadding=2 cellspacing=0><thead><tr style=><th scope=col style=text-align:center;width:150px>' + "Day" + '</th><th scope=col style=text-align:center><a download href="devicepowerevents.ashx?id=' + currentNode._id + (urlargs.key?('&key=' + urlargs.key):'') + '" onclick="setDialogMode(0)"><img title=\"' + "Download power events" + '\" src="images/link4.png" /></a>' + "7 Day Power State" + '</th></tr></thead><tbody>' + x + '</tbody></table>');
5311
}
5312
5313
// Return a color for the given power state
@@ -5623,22 +5657,23 @@
5657
5658
// Show the right buttons
5659
QV('disconnectbutton1span', (deskState != 0));
5626
- QV('connectbutton1span', (deskState == 0) && ((rights & 8) || (rights & 256)) && (mesh.mtype == 2) && (currentNode.agent.caps & 1));
5660
+ QV('connectbutton1span', (deskState == 0) && ((rights & 8) || (rights & 256)) && (currentNode.agent != null) && (currentNode.agent.caps & 1));
5661
QV('connectbutton1hspan',
5662
(deskState == 0) &&
5663
(rights & 8) &&
5630
- ((mesh.mtype == 1) ||
5664
+ (
5665
((currentNode.intelamt != null) &&
5666
(currentNode.intelamt.state == 2) &&
5667
(currentNode.intelamt.ver != null) &&
5634
- (typeof currentNode.intelamt.sku == 'number') &&
5635
- ((currentNode.intelamt.sku & 8) != 0))
5668
+ ((currentNode.intelamt.sku == null) ||
5669
+ ((typeof currentNode.intelamt.sku == 'number') &&
5670
+ ((currentNode.intelamt.sku & 8) != 0))))
5671
)
5672
);
5673
5674
// Show the right settings
5640
- QV('d7amtkvm', (currentNode.intelamt != null && ((currentNode.intelamt.ver != null) || (mesh.mtype == 1))) && ((deskState == 0) || (desktop.contype == 2)));
5641
- QV('d7meshkvm', (webRtcDesktop) || ((mesh.mtype == 2) && (currentNode.agent.caps & 1) && ((deskState == false) || (desktop.contype == 1))));
5675
+ QV('d7amtkvm', (currentNode.intelamt != null && ((currentNode.intelamt.ver != null) || (currentNode.agent == null))) && ((deskState == 0) || (desktop.contype == 2)));
5676
+ QV('d7meshkvm', (webRtcDesktop) || ((currentNode.agent != null) && (currentNode.agent.caps & 1) && ((deskState == false) || (desktop.contype == 1))));
5677
5678
// Enable buttons
5679
var inputAllowed = (rights == 0xFFFFFFFF) || (((rights & 8) != 0) && ((rights & 256) == 0) && ((rights & 4096) == 0));
@@ -5657,12 +5692,12 @@
5692
QE('deskkeys', deskState == 3);
5693
5694
// Display this only if we have Chat & Notify permissions
5660
- QV('DeskChatButton', ((rights & 16384) != 0) && (browserfullscreen == false) && (inputAllowed) && (mesh.mtype == 2) && online);
5661
- QV('DeskNotifyButton', ((rights & 16384) != 0) && (browserfullscreen == false) && (currentNode.agent) && (currentNode.agent.id < 5) && (inputAllowed) && (mesh.mtype == 2) && online);
5695
+ QV('DeskChatButton', ((rights & 16384) != 0) && (browserfullscreen == false) && (inputAllowed) && (currentNode.agent) && online);
5696
+ QV('DeskNotifyButton', ((rights & 16384) != 0) && (browserfullscreen == false) && (currentNode.agent) && (currentNode.agent.id < 5) && (inputAllowed) && (currentNode.agent) && online);
5697
5663
- QV('DeskToolsButton', (inputAllowed) && (mesh.mtype == 2) && online);
5664
- QV('DeskOpenWebButton', (browserfullscreen == false) && (inputAllowed) && (mesh.mtype == 2) && online);
5665
- QV('DeskBackgroundButton', (deskState == 3) && (desktop.contype == 1) && (mesh.mtype == 2) && (currentNode.agent.id != 11) && (currentNode.agent.id != 16) && online);
5698
+ QV('DeskToolsButton', (inputAllowed) && (currentNode.agent) && online);
5699
+ QV('DeskOpenWebButton', (browserfullscreen == false) && (inputAllowed) && (currentNode.agent) && online);
5700
+ QV('DeskBackgroundButton', (deskState == 3) && (desktop.contype == 1) && (currentNode.agent) && (currentNode.agent.id != 11) && (currentNode.agent.id != 16) && online);
5701
QV('DeskControlSpan', inputAllowed)
5702
QV('deskActionsBtn', (browserfullscreen == false));
5703
QV('deskActionsSettings', (browserfullscreen == false));
@@ -6431,9 +6466,9 @@
6466
6467
// Show the right buttons
6468
QV('disconnectbutton2span', (termState == true));
6434
- QV('connectbutton2span', (termState == false) && (mesh.mtype == 2) && (currentNode.agent.caps & 2));
6435
- QV('connectbutton2hspan', (termState == false) && ((terminalNode.intelamt != null) && (mesh.mtype == 1 || terminalNode.intelamt.state == 2) && ((terminalNode.intelamt.ver != null) || (mesh.mtype == 1))));
6436
- QV('terminalSizeDropDown', (termState == false) && ((terminalNode.intelamt != null) && (mesh.mtype == 1 || terminalNode.intelamt.state == 2) && ((terminalNode.intelamt.ver != null) || (mesh.mtype == 1))));
6469
+ QV('connectbutton2span', (termState == false) && (currentNode.agent != null) && (currentNode.agent.caps & 2));
6470
+ QV('connectbutton2hspan', (termState == false) && (terminalNode.intelamt != null) && (terminalNode.intelamt.state == 2) && (terminalNode.intelamt.ver != null));
6471
+ QV('terminalSizeDropDown', (termState == false) && (terminalNode.intelamt != null) && (terminalNode.intelamt.state == 2) && (terminalNode.intelamt.ver != null));
6472
6473
// Enable buttons
6474
var online = ((terminalNode.conn & 1) != 0); // If Agent (1) connected, enable Terminal
@@ -8266,13 +8301,17 @@
8301
}
8302
sortedusers.sort(function(a, b) { if (a.name > b.name) return 1; if (a.name < b.name) return -1; return 0; });
8303
8269
- // Display all users for this mesh
8304
+ // Display all users for this device group
8305
for (var i in sortedusers) {
8271
- var trash = '', rights = "Partial Device Group Rights", r = sortedusers[i].rights, icon = 2;
8272
- if (r == 0xFFFFFFFF) rights = "Full Device Group Administrator"; else if (r == 0) rights = "No Rights";
8273
- if ((sortedusers[i].id != userinfo._id) && (meshrights == 0xFFFFFFFF || (((meshrights & 2) != 0)))) { trash = '<a href=# onclick=\'return p20deleteUser(event,"' + encodeURIComponent(sortedusers[i].id) + '")\' title=\"' + "Remove user rights to this device group" + '\" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>'; }
8306
+ var trash = '', r = sortedusers[i].rights, rights = makeDeviceGroupRightsString(r), icon = 2;
8307
+ if ((sortedusers[i].id != userinfo._id) && (meshrights == 0xFFFFFFFF || (((meshrights & 2) != 0)))) {
8308
+ trash = '<a href=# onclick=\'return p20deleteUser(event,"' + encodeURIComponent(sortedusers[i].id) + '")\' title=\"' + "Remove user rights to this device group" + '\" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>';
8309
+ rights = '<div tabindex=0 style=cursor:pointer onclick=p20viewuser("' + encodeURIComponent(sortedusers[i].id) + '") onkeypress="if (event.key==\'Enter\') p20viewuser(\'' + encodeURIComponent(sortedusers[i].id) + '\')">' + rights + ' <img class=hoverButton style=cursor:pointer src=images/link5.png></div>';
8310
+ }
8311
if (sortedusers[i].id.startsWith('ugrp/')) { icon = 4; }
8275
- x += '<tr tabindex=0 onclick=p20viewuser("' + encodeURIComponent(sortedusers[i].id) + '") onkeypress="if (event.key==\'Enter\') p20viewuser(\'' + encodeURIComponent(sortedusers[i].id) + '\')" style=cursor:pointer' + (((count % 2) == 0) ? ';background-color:#DDD' : '') + '><td><div title=\"' + "User" + '\" class=m' + icon + '></div><div> ' + EscapeHtml(decodeURIComponent(sortedusers[i].name)) + '<div></div></div></td><td><div style=float:right>' + trash + '</div><div>' + rights + '</div></td></tr>';
8312
+ var username = EscapeHtml(decodeURIComponent(sortedusers[i].name));
8313
+ if (users != null) { username = '<a tabindex=0 href=# onclick=\'gotoUser("' + encodeURIComponent(sortedusers[i].id) + '");haltEvent(event);\'>' + username + '</a>'; }
8314
+ x += '<tr style=' + (((count % 2) == 0) ? ';background-color:#DDD' : '') + '><td style=width:30%><div title=\"' + "User" + '\" class=m' + icon + '></div><div> ' + username + '<div></div></div></td><td style=width:70%><div style=float:right>' + trash + '</div><div>' + rights + '</div></td></tr>';
8315
++count;
8316
}
8317
@@ -8490,7 +8529,11 @@
8529
} else if (userid === 4) {
8530
var y = '', selectedMeshId = null, selectedNode = null;
8531
if (selected != null) { selectedNode = getNodeFromId(decodeURIComponent(selected)); if (selectedNode != null) { selectedMeshId = selectedNode.meshid; } }
8493
- for (var i in meshes) { if (selectedMeshId == null) { selectedMeshId = meshes[i]._id; } y += '<option value=' + encodeURIComponent(meshes[i]._id) + ((selectedMeshId == meshes[i]._id)?' selected':' ') + '>' + EscapeHtml(meshes[i].name) + '</option>'; }
8532
+ for (var i in meshes) {
8533
+ if ((meshes[i].links[userinfo._id] != null) && (meshes[i].links[userinfo._id].rights & 7)) { // Only show device groups that we have user administrator for.
8534
+ if (selectedMeshId == null) { selectedMeshId = meshes[i]._id; } y += '<option value=' + encodeURIComponent(meshes[i]._id) + ((selectedMeshId == meshes[i]._id)?' selected':' ') + '>' + EscapeHtml(meshes[i].name) + '</option>';
8535
+ }
8536
+ }
8537
x += addHtmlValue("Device Group", '<div style=width:230px;margin:0;padding:0><select onchange=p20changeMeshAddMeshUserDialog(4) id=dp2meshid style=width:100%>' + y + '</select></div>');
8538
y = '';
8539
for (var i in nodes) { if (nodes[i].meshid == selectedMeshId) { y += '<option value=' + encodeURIComponent(nodes[i]._id) + ((selectedNode == nodes[i])?' selected':' ') + '>' + EscapeHtml(nodes[i].name) + '</option>'; } }
@@ -9943,7 +9986,9 @@
9986
// Display all users for this mesh
9987
for (var i in sortedusers) {
9988
var trash = '<a href=# onclick=\'return p51deleteUser(event,"' + encodeURIComponent(sortedusers[i].id) + '")\' title=\"' + "Remove user rights to this device group" + '\" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>';
9946
- x += '<tr ' + (((count % 2) == 0) ? 'style=background-color:#DDD' : '') + '><td><div title=\"' + "User" + '\" class=m2></div><div> ' + EscapeHtml(decodeURIComponent(sortedusers[i].name)) + '<div></div></div></td><td><div style=float:right>' + trash + '</div></td></tr>';
9989
+ var username = EscapeHtml(decodeURIComponent(sortedusers[i].name));
9990
+ if (users != null) { username = '<a href=# onclick=\'gotoUser("' + encodeURIComponent(sortedusers[i].id) + '");haltEvent(event);\'>' + username + '</a>'; }
9991
+ x += '<tr ' + (((count % 2) == 0) ? 'style=background-color:#DDD' : '') + '><td><div title=\"' + "User" + '\" class=m2></div><div> ' + username + '<div></div></div></td><td><div style=float:right>' + trash + '</div></td></tr>';
9992
++count;
9993
}
9994
@@ -9959,13 +10004,18 @@
10004
if (currentUserGroup.links) {
10005
for (var i in currentUserGroup.links) {
10006
if (i.startsWith('mesh/')) {
9962
- var cr = 0, r = currentUserGroup.links[i].rights, mesh = meshes[i], trash = '', rights = "Partial Device Group Rights";
10007
+ var cr = 0, r = currentUserGroup.links[i].rights, mesh = meshes[i], trash = '', rights = makeDeviceGroupRightsString(r);
10008
if (mesh == null) { continue; }
10009
if ((userinfo.links) && (userinfo.links[i] != null) && (userinfo.links[i].rights != null)) { cr = userinfo.links[i].rights; }
9965
- var meshname = mesh?EscapeHtml(mesh.name):('<i>' + "Unknown Device Group" + '</i>');
9966
- if (r == 0xFFFFFFFF) rights = "Full Device Group Administrator"; else if (r == 0) rights = "No Rights";
9967
- if ((cr & 2) != 0) { trash = '<a href=# onclick=\'return p51removeMeshFromUserGroup(event,"' + encodeURIComponent(mesh._id) + '")\' title=\"' + "Remove user group rights to this device group" + '\" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>'; }
9968
- x += '<tr ' + (((++count % 2) == 0) ? 'style=background-color:#DDD' : '') + '><td><div title=\"' + "Device Group" + '\" class=m99></div><div> ' + meshname + '<div></div></div></td><td><div style=float:right>' + trash + '</div><div>' + rights + '</div></td></tr>';
10010
+ var meshname = '<i>' + "Unknown Device Group" + '</i>';
10011
+ if (mesh) { meshname = '<a href=# onclick=\'gotoMesh("' + mesh._id + '");haltEvent(event);\'>' + mesh.name + '</a>'; } else {}
10012
+ if ((cr & 2) != 0) {
10013
+ trash = '<a href=# onclick=\'return p51removeMeshFromUserGroup(event,"' + encodeURIComponent(mesh._id) + '")\' title=\"' + "Remove user group rights to this device group" + '\" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>';
10014
+
10015
+ // TODO
10016
+ //rights = '<div style=cursor:pointer onclick=p20showAddMeshUserDialog(5,\"' + encodeURIComponent(userid) + '\")>' + rights + ' <img class=hoverButton style=cursor:pointer src=images/link5.png></div>';
10017
+ }
10018
+ x += '<tr ' + (((++count % 2) == 0) ? 'style=background-color:#DDD' : '') + '><td style=width:30%><div title=\"' + "Device Group" + '\" class=m99></div><div> ' + meshname + '<div></div></div></td><td style=width:70%><div style=float:right>' + trash + '</div><div>' + rights + '</div></td></tr>';
10019
}
10020
}
10021
}
@@ -10311,30 +10361,28 @@
10361
function drawUserPermissions() {
10362
var count = 1, x = '';
10363
10314
- if (urlargs.dp == 1) { // For testing only
10315
- // Display common devices
10316
- x += '<a href=# onclick="return p20showAddMeshUserDialog(4)" style=cursor:pointer;margin-right:10px><img src=images/icon-addnew.png border=0 height=12 width=12> ' + "Add Device" + '</a>';
10317
- x += '<table style="color:black;background-color:#EEE;border-color:#AAA;border-width:1px;border-style:solid;border-collapse:collapse" border=0 cellpadding=2 cellspacing=0 width=100%><tbody><tr style=background-color:#AAAAAA;font-weight:bold><th scope=col style=text-align:left;width:430px>' + "Common Devices" + '</th><th scope=col style=text-align:left></th></tr>';
10318
- if (currentUser.links) {
10319
- // Sort the list of devices to display
10320
- var nodelist = [];
10321
- for (var i in currentUser.links) { if (i.startsWith('node/')) { var node = getNodeFromId(i); if (node != null) { nodelist.push(node); } } }
10322
- nodelist.sort(nameSort);
10323
- for (var i in nodelist) {
10324
- var node = nodelist[i], r = currentUser.links[node._id].rights, trash = '', cr = GetNodeRights(node);
10325
- if ((userinfo.links) && (userinfo.links[i] != null) && (userinfo.links[i].rights != null)) { cr = userinfo.links[i].rights; }
10326
- var nodename = node?EscapeHtml(node.name):('<i>' + "Unknown Device" + '</i>');
10327
- if ((cr & 2) != 0) {
10328
- rights = '<div style=cursor:pointer onclick=p20showAddMeshUserDialog(4,\"' + encodeURIComponent(node._id) + '\")>' + makeUserDeviceRightsString(r) + ' <img class=hoverButton style=cursor:pointer src=images/link5.png></div>';
10329
- trash = '<a href=# onclick=\'return p30removeNodeFromUser(event,"' + encodeURIComponent(node._id) + '")\' title=\"' + "Remove user rights to this device group" + '\" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>';
10330
- }
10331
- nodename = '<a href=# onclick=\'gotoDevice("' + node._id + '",10);haltEvent(event);\'>' + nodename + '</a>';
10332
- x += '<tr ' + (((++count % 2) == 0) ? 'style=background-color:#DDD' : '') + '><td style=width:30%><div title=\"' + "Device" + '\" class=si' + node.icon + '></div><div> ' + nodename + '<div></div></div></td><td style=width:70%><div style=float:right>' + trash + '</div><div>' + rights + '</div></td></tr>';
10364
+ // Display common devices
10365
+ x += '<a href=# onclick="return p20showAddMeshUserDialog(4)" style=cursor:pointer;margin-right:10px><img src=images/icon-addnew.png border=0 height=12 width=12> ' + "Add Device" + '</a>';
10366
+ x += '<table style="color:black;background-color:#EEE;border-color:#AAA;border-width:1px;border-style:solid;border-collapse:collapse" border=0 cellpadding=2 cellspacing=0 width=100%><tbody><tr style=background-color:#AAAAAA;font-weight:bold><th scope=col style=text-align:left;width:430px>' + "Common Devices" + '</th><th scope=col style=text-align:left></th></tr>';
10367
+ if (currentUser.links) {
10368
+ // Sort the list of devices to display
10369
+ var nodelist = [];
10370
+ for (var i in currentUser.links) { if (i.startsWith('node/')) { var node = getNodeFromId(i); if (node != null) { nodelist.push(node); } } }
10371
+ nodelist.sort(nameSort);
10372
+ for (var i in nodelist) {
10373
+ var node = nodelist[i], r = currentUser.links[node._id].rights, trash = '', cr = GetNodeRights(node);
10374
+ if ((userinfo.links) && (userinfo.links[i] != null) && (userinfo.links[i].rights != null)) { cr = userinfo.links[i].rights; }
10375
+ var nodename = node?EscapeHtml(node.name):('<i>' + "Unknown Device" + '</i>');
10376
+ if ((cr & 2) != 0) {
10377
+ rights = '<div style=cursor:pointer onclick=p20showAddMeshUserDialog(4,\"' + encodeURIComponent(node._id) + '\")>' + makeUserDeviceRightsString(r) + ' <img class=hoverButton style=cursor:pointer src=images/link5.png></div>';
10378
+ trash = '<a href=# onclick=\'return p30removeNodeFromUser(event,"' + encodeURIComponent(node._id) + '")\' title=\"' + "Remove user rights to this device group" + '\" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>';
10379
}
10380
+ nodename = '<a href=# onclick=\'gotoDevice("' + node._id + '",10);haltEvent(event);\'>' + nodename + '</a>';
10381
+ x += '<tr ' + (((++count % 2) == 0) ? 'style=background-color:#DDD' : '') + '><td style=width:30%><div title=\"' + "Device" + '\" class=si' + node.icon + '></div><div> ' + nodename + '<div></div></div></td><td style=width:70%><div style=float:right>' + trash + '</div><div>' + rights + '</div></td></tr>';
10382
}
10335
- if (count == 1) { x += '<tr><td><div style=padding:6px> <i>' + "No devices in common" + '</i><div></div></div></td><td></td></tr>'; }
10336
- x += '</tbody></table><br />';
10383
}
10384
+ if (count == 1) { x += '<tr><td><div style=padding:6px> <i>' + "No devices in common" + '</i><div></div></div></td><td></td></tr>'; }
10385
+ x += '</tbody></table><br />';
10386
10387
// Display common device groups
10388
count = 1;
@@ -10345,13 +10393,13 @@
10393
if (currentUser.links) {
10394
for (var i in currentUser.links) {
10395
if (i.startsWith('mesh/')) {
10348
- var cr = 0, r = currentUser.links[i].rights, mesh = meshes[i], trash = '', rights = "Partial Device Group Rights";
10396
+ var cr = 0, r = currentUser.links[i].rights, mesh = meshes[i], trash = '', rights = makeDeviceGroupRightsString(r);
10397
if (mesh == null) { continue; }
10398
if ((userinfo.links) && (userinfo.links[i] != null) && (userinfo.links[i].rights != null)) { cr = userinfo.links[i].rights; }
10351
- var meshname = mesh?EscapeHtml(mesh.name):('<i>' + "Unknown Device Group" + '</i>');
10352
- if (r == 0xFFFFFFFF) rights = "Full Device Group Administrator"; else if (r == 0) rights = "No Rights";
10399
+ var meshname = '<i>' + "Unknown Device Group" + '</i>';
10400
+ if (mesh) { meshname = '<a href=# onclick=\'gotoMesh("' + mesh._id + '");haltEvent(event);\'>' + EscapeHtml(mesh.name) + '</a>'; } else {}
10401
if ((currentUser._id != userinfo._id) && ((cr & 2) != 0)) { trash = '<a href=# onclick=\'return p30removeMeshFromUser(event,"' + encodeURIComponent(mesh._id) + '")\' title=\"' + "Remove user rights to this device group" + '\" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>'; }
10354
- x += '<tr ' + (((++count % 2) == 0) ? 'style=background-color:#DDD' : '') + '><td><div title=\"' + "Device Group" + '\" class=m99></div><div> ' + meshname + '<div></div></div></td><td><div style=float:right>' + trash + '</div><div>' + rights + '</div></td></tr>';
10402
+ x += '<tr ' + (((++count % 2) == 0) ? 'style=background-color:#DDD' : '') + '><td style=width:30%><div title=\"' + "Device Group" + '\" class=m99></div><div> ' + meshname + '<div></div></div></td><td style=width:70%><div style=float:right>' + trash + '</div><div>' + rights + '</div></td></tr>';
10403
}
10404
}
10405
}
@@ -10372,9 +10420,13 @@
10420
for (var i in currentUser.links) {
10421
if (i.startsWith('ugrp/')) {
10422
var r = currentUser.links[i].rights, group = usergroups[i], trash = '';
10375
- var groupname = (group != null)?EscapeHtml(group.name):('<i>' + "Unknown User Group" + '</i>');
10423
+ var groupname = '<i>' + "Unknown User Group" + '</i>';
10424
+ if (group != null) {
10425
+ groupname = EscapeHtml(group.name);
10426
+ if (usergroups != null) { groupname = '<a href=# onclick=\'gotoUserGroup("' + encodeURIComponent(i) + '");haltEvent(event);\'>' + groupname + '</a>'; }
10427
+ }
10428
if ((userinfo.siteadmin & 256) != 0) { trash = '<a href=# onclick=\'return p30RemoveUserGroup(event,"' + encodeURIComponent(i) + '")\' title=\"' + "Remove user group membership" + '\" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>'; }
10377
- x += '<tr ' + (((++count % 2) == 0) ? 'style=background-color:#DDD' : '') + '><td><div title=\"' + "Device Group" + '\" class=m4></div><div> ' + groupname + '<div></div></div></td><td><div style=float:right>' + trash + '</div></td></tr>';
10429
+ x += '<tr ' + (((++count % 2) == 0) ? 'style=background-color:#DDD' : '') + '><td><div title=\"' + "User Group" + '\" class=m4></div><div> ' + groupname + '<div></div></div></td><td><div style=float:right>' + trash + '</div></td></tr>';
10430
}
10431
}
10432
}
@@ -11193,7 +11245,7 @@
11245
11246
// Update the web page title
11247
if ((currentNode) && (x >= 10) && (x < 20)) {
11196
- document.title = decodeURIComponent('{{{extitle}}}') + ' - ' + currentNode.name + ' - ' + meshes[currentNode.meshid].name;
11248
+ document.title = decodeURIComponent('{{{extitle}}}') + ' - ' + currentNode.name + ((meshes[currentNode.meshid])?(' - ' + meshes[currentNode.meshid].name):'');
11249
} else {
11250
document.title = decodeURIComponent('{{{extitle}}}');
11251
}
webserver.js
+22
-9
@@ -2474,7 +2474,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
2474
if (!node.intelamt) { console.log('ERR: Not AMT node'); try { ws.close(); } catch (e) { } return; } // Disconnect websocket
2475
2476
// Check if this user has permission to manage this computer
2477
- if ((obj.GetMeshRights(user, node.meshid) & MESHRIGHT_REMOTECONTROL) == 0) { console.log('ERR: Access denied (2)'); try { ws.close(); } catch (e) { } return; }
2477
+ if ((obj.GetNodeRights(user, node.meshid, node._id) & MESHRIGHT_REMOTECONTROL) == 0) { console.log('ERR: Access denied (2)'); try { ws.close(); } catch (e) { } return; }
2478
2479
// Check what connectivity is available for this node
2480
var state = parent.GetConnectivityState(req.query.host);
@@ -3494,6 +3494,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
3494
obj.handleDevicePowerEvents = function (req, res) {
3495
const domain = checkUserIpAddress(req, res);
3496
if (domain == null) { return; }
3497
+ if ((domain.loginkey != null) && (domain.loginkey.indexOf(req.query.key) == -1)) { res.sendStatus(404); return; } // Check 3FA URL key
3498
if ((domain.id !== '') || (!req.session) || (req.session == null) || (!req.session.userid) || (req.query.id == null) || (typeof req.query.id != 'string')) { res.sendStatus(401); return; }
3499
var x = req.query.id.split('/');
3500
var user = obj.users[req.session.userid];
@@ -3506,7 +3507,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
3507
var node = docs[0];
3508
3509
// Check if we have right to this node
3509
- if (obj.GetMeshRights(user, node.meshid) == 0) { res.sendStatus(401); return; }
3510
+ if (obj.GetNodeRights(user, node.meshid, node._id) == 0) { res.sendStatus(401); return; }
3511
3512
// Get the list of power events and send them
3513
res.set({ 'Cache-Control': 'no-cache, no-store, must-revalidate', 'Pragma': 'no-cache', 'Expires': '0', 'Content-Type': 'text/csv', 'Content-Disposition': 'attachment; filename="powerevents.csv"' });
@@ -4374,6 +4375,18 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
4375
return false;
4376
}
4377
4378
+ // Return the user rights for a given node
4379
+ obj.GetNodeRights = function (user, mesh, nodeid) {
4380
+ if ((user == null) || (mesh == null) || (nodeid == null)) { return 0; }
4381
+ if (typeof user == 'string') { user = obj.users[user]; }
4382
+ var r = obj.GetMeshRights(user, mesh);
4383
+ if (r == 0xFFFFFFFF) return r;
4384
+
4385
+ // Check direct device rights using device data
4386
+ if ((user.links != null) && (user.links[nodeid] != null)) { r |= user.links[nodeid].rights; } // TODO: Deal with reverse permissions
4387
+ return r;
4388
+ }
4389
+
4390
// Returns a list of displatch targets for a given mesh
4391
// We have to target the meshid and all user groups for this mesh, plus any added targets
4392
obj.CreateMeshDispatchTargets = function (mesh, addedTargets) {
@@ -4510,7 +4523,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
4523
if ((domain.titlepicture == null) && (domain.titlehtml == null)) {
4524
if (domain.title == null) {
4525
xargs.title1 = 'MeshCentral';
4513
- xargs.title2 = '2.0';
4526
+ xargs.title2 = '';
4527
} else {
4528
xargs.title1 = domain.title;
4529
xargs.title2 = domain.title2 ? domain.title2 : '';
@@ -4535,13 +4548,13 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
4548
// Check that we are in the same domain and the user has rights over this node.
4549
if ((splitsessionid.length == 4) && (splitsessionid[0] == 'user') && (splitsessionid[1] == domainid)) {
4550
// Check if this user has rights to get this message
4538
- if (obj.GetMeshRights(splitsessionid[0] + '/' + splitsessionid[1] + '/' + splitsessionid[2], meshid) == 0) return; // TODO: Check if this is ok
4551
+ if (obj.GetNodeRights(splitsessionid[0] + '/' + splitsessionid[1] + '/' + splitsessionid[2], meshid, nodeid) == 0) return; // TODO: Check if this is ok
4552
4553
// See if the session is connected. If so, go ahead and send this message to the target node
4554
var ws = obj.wssessions2[command.sessionid];
4555
if (ws != null) {
4543
- command.nodeid = nodeid; // Set the nodeid, required for responses.
4544
- delete command.sessionid; // Remove the sessionid, since we are sending to that sessionid, so it's implyed.
4556
+ command.nodeid = nodeid; // Set the nodeid, required for responses.
4557
+ delete command.sessionid; // Remove the sessionid, since we are sending to that sessionid, so it's implyed.
4558
try { ws.send(JSON.stringify(command)); } catch (ex) { }
4559
} else if (parent.multiServer != null) {
4560
// See if we can send this to a peer server
@@ -4558,7 +4571,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
4571
// Check that we are in the same domain and the user has rights over this node.
4572
if ((splituserid[0] == 'user') && (splituserid[1] == domainid)) {
4573
// Check if this user has rights to get this message
4561
- if (obj.GetMeshRights(command.userid, meshid) == 0) return; // TODO: Check if this is ok
4574
+ if (obj.GetNodeRights(command.userid, meshid, nodeid) == 0) return; // TODO: Check if this is ok
4575
4576
// See if the session is connected
4577
var sessions = obj.wssessions[command.userid];
@@ -4566,7 +4579,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
4579
// Go ahead and send this message to the target node
4580
if (sessions != null) {
4581
command.nodeid = nodeid; // Set the nodeid, required for responses.
4569
- delete command.userid; // Remove the userid, since we are sending to that userid, so it's implyed.
4582
+ delete command.userid; // Remove the userid, since we are sending to that userid, so it's implyed.
4583
for (i in sessions) { sessions[i].send(JSON.stringify(command)); }
4584
}
4585
@@ -4581,7 +4594,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
4594
// Find all connected user sessions with access to this device
4595
for (var userid in obj.wssessions) {
4596
var xsessions = obj.wssessions[userid];
4584
- if (obj.GetMeshRights(userid, meshid) != 0) {
4597
+ if (obj.GetNodeRights(userid, meshid, nodeid) != 0) {
4598
// Send the message to all sessions for this user on this server
4599
for (i in xsessions) { try { xsessions[i].send(cmdstr); } catch (e) { } }
4600
}