More user groups improvements.

Ylian Saint-Hilaire committed Jan 2, 2020 at 00:30 UTC 7307152dbb14eae09cfa2fda73c5871137f57812
5 files changed +646 -467
db.js
+28 -2
@@ -349,19 +349,21 @@ module.exports.CreateDB = function (parent, func) {
349 if (typeof obj.file.watch != 'function') {
350 console.log('WARNING: watch() is not a function, MongoDB ChangeStream not supported.');
351 } else {
352 - obj.fileChangeStream = obj.file.watch([{ $match: { $or: [{ 'fullDocument.type': { $in: ['node', 'mesh', 'user'] } }, { 'operationType': 'delete' }] } }], { fullDocument: 'updateLookup' });
352 + obj.fileChangeStream = obj.file.watch([{ $match: { $or: [{ 'fullDocument.type': { $in: ['node', 'mesh', 'user', 'ugrp'] } }, { 'operationType': 'delete' }] } }], { fullDocument: 'updateLookup' });
353 obj.fileChangeStream.on('change', function (change) {
354 if (change.operationType == 'update') {
355 switch (change.fullDocument.type) {
356 case 'node': { dbNodeChange(change, false); break; } // A node has changed
357 case 'mesh': { dbMeshChange(change, false); break; } // A device group has changed
358 case 'user': { dbUserChange(change, false); break; } // A user account has changed
359 + case 'ugrp': { dbUGrpChange(change, false); break; } // A user account has changed
360 }
361 } else if (change.operationType == 'insert') {
362 switch (change.fullDocument.type) {
363 case 'node': { dbNodeChange(change, true); break; } // A node has added
364 case 'mesh': { dbMeshChange(change, true); break; } // A device group has created
365 case 'user': { dbUserChange(change, true); break; } // A user account has created
366 + case 'ugrp': { dbUGrpChange(change, true); break; } // A user account has created
367 }
368 } else if (change.operationType == 'delete') {
369 var splitId = change.documentKey._id.split('/');
@@ -372,7 +374,7 @@ module.exports.CreateDB = function (parent, func) {
374 break;
375 }
376 case 'mesh': {
375 - parent.DispatchEvent(['*', node.meshid], obj, { etype: 'mesh', action: 'deletemesh', meshid: change.documentKey._id, domain: splitId[1] });
377 + parent.DispatchEvent(['*', change.documentKey._id], obj, { etype: 'mesh', action: 'deletemesh', meshid: change.documentKey._id, domain: splitId[1] });
378 break;
379 }
380 case 'user': {
@@ -380,6 +382,10 @@ module.exports.CreateDB = function (parent, func) {
382 //parent.DispatchEvent(['*', 'server-users'], obj, { etype: 'user', action: 'accountremove', userid: change.documentKey._id, domain: splitId[1], username: splitId[2] });
383 break;
384 }
385 + case 'ugrp': {
386 + parent.DispatchEvent(['*', change.documentKey._id], obj, { etype: 'ugrp', action: 'deleteusergroup', ugrpid: change.documentKey._id, domain: splitId[1] });
387 + break;
388 + }
389 }
390 }
391 });
@@ -1096,5 +1102,25 @@ module.exports.CreateDB = function (parent, func) {
1102 parent.DispatchEvent(targets, obj, { etype: 'user', username: user.name, account: parent.webserver.CloneSafeUser(user), action: (added ? 'accountcreate' : 'accountchange'), domain: user.domain, nolog: 1 });
1103 }
1104
1105 + // Called when a user group has changed
1106 + function dbUGrpChange(ugrpChange, added) {
1107 + if (parent.webserver == null) return;
1108 + common.unEscapeLinksFieldName(ugrpChange.fullDocument);
1109 + const usergroup = ugrpChange.fullDocument;
1110 +
1111 + // Update the user group object in memory
1112 + const uusergroup = parent.webserver.usergroups[usergroup._id];
1113 + for (var i in usergroup) { uusergroup[i] = usergroup[i]; }
1114 + for (var i in uusergroup) { if (usergroup[i] == null) { delete uusergroup[i]; } }
1115 +
1116 + // Send the user group update
1117 + usergroup.action = (added ? 'createusergroup' : 'usergroupchange');
1118 + usergroup.ugrpid = usergroup._id;
1119 + usergroup.nolog = 1;
1120 + delete usergroup.type;
1121 + delete usergroup._id;
1122 + parent.DispatchEvent(['*', usergroup.ugrpid], obj, usergroup);
1123 + }
1124 +
1125 return obj;
1126 };
\ No newline at end of file
meshuser.js
+56 -22
@@ -1513,6 +1513,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
1513 // Create the new device group
1514 var ugrp = { type: 'ugrp', _id: ugrpid, name: command.name, desc: command.desc, domain: domain.id, links: {} };
1515 db.Set(common.escapeLinksFieldName(ugrp));
1516 + if (db.changeStream == false) { parent.userGroups[ugrpid] = ugrp; }
1517
1518 // Event the device group creation
1519 var event = { etype: 'ugrp', userid: user._id, username: user.name, ugrpid: ugrpid, name: command.name, desc: command.desc, action: 'createusergroup', links: links, msg: 'User group created: ' + command.name, domain: domain.id };
@@ -1555,6 +1556,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
1556
1557 // Remove the user group from the database
1558 db.Remove(group._id);
1559 + if (db.changeStream == false) { delete parent.userGroups[group._id]; }
1560
1561 // Event the user group being removed
1562 var event = { etype: 'ugrp', userid: user._id, username: user.name, ugrpid: group._id, action: 'deleteusergroup', msg: change, domain: domain.id };
@@ -2059,7 +2061,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
2061 }
2062 case 'editmesh':
2063 {
2062 - // Change the name or description of a mesh
2064 + // Change the name or description of a device group (mesh)
2065 if (common.validateString(command.meshid, 1, 1024) == false) break; // Check the meshid
2066 mesh = parent.meshes[command.meshid];
2067 change = '';
@@ -2084,11 +2086,12 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
2086 }
2087 case 'addmeshuser':
2088 {
2089 + if (typeof command.userid == 'string') { command.userids = [ command.userid ]; }
2090 var err = null;
2091 try {
2092 if (common.validateString(command.meshid, 1, 1024) == false) { err = 'Invalid groupid'; } // Check the meshid
2093 else if (common.validateInt(command.meshadmin) == false) { err = 'Invalid group rights'; } // Mesh rights must be an integer
2091 - else if (common.validateStrArray(command.usernames, 1, 64) == false) { err = 'Invalid usernames'; } // Username is between 1 and 64 characters
2094 + else if ((common.validateStrArray(command.usernames, 1, 64) == false) && (common.validateStrArray(command.userids, 1, 128) == false)) { err = 'Invalid usernames'; } // Username is between 1 and 64 characters
2095 else {
2096 if (command.meshid.indexOf('/') == -1) { command.meshid = 'mesh/' + domain.id + '/' + command.meshid; }
2097 mesh = parent.meshes[command.meshid];
@@ -2104,26 +2107,46 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
2107 break;
2108 }
2109
2110 + // Convert user names to userid's
2111 + if (command.userids == null) {
2112 + command.userids = [];
2113 + for (var i in command.usernames) { command.userids.push('user/' + domain.id + '/' + command.usernames[i].toLowerCase()); }
2114 + }
2115 +
2116 var unknownUsers = [], removedCount = 0, failCount = 0;
2108 - for (var i in command.usernames) {
2117 + for (var i in command.userids) {
2118 // Check if the user exists
2110 - var newuserid = 'user/' + domain.id + '/' + command.usernames[i].toLowerCase(), newuser = parent.users[newuserid];
2111 - if (newuserid == obj.user._id) { continue; } // Can't add or modify self
2119 + var newuserid = command.userids[i], newuser = null;
2120 + if (newuserid.startsWith('user/')) { newuser = parent.users[newuserid]; }
2121 + else if (newuserid.startsWith('ugrp/')) { newuser = parent.userGroups[newuserid]; }
2122 +
2123 if (newuser != null) {
2113 - // Add mesh to user
2124 + // Can't add or modify self
2125 + if (newuserid == obj.user._id) { continue; }
2126 +
2127 + // Add mesh to user or user group
2128 if (newuser.links == null) newuser.links = {};
2129 if (newuser.links[command.meshid]) { newuser.links[command.meshid].rights = command.meshadmin; } else { newuser.links[command.meshid] = { rights: command.meshadmin }; }
2116 - db.SetUser(newuser);
2130 + if (newuserid.startsWith('user/')) { db.SetUser(newuser); }
2131 + else if (newuserid.startsWith('ugrp/')) { db.Set(newuser); }
2132 parent.parent.DispatchEvent([newuser._id], obj, 'resubscribe');
2133
2119 - // Notify user change
2120 - var targets = ['*', 'server-users', user._id, newuser._id];
2121 - var event = { etype: 'user', userid: user._id, username: user.name, account: parent.CloneSafeUser(newuser), action: 'accountchange', msg: 'Device group membership changed: ' + newuser.name, domain: domain.id };
2122 - 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.
2123 - parent.parent.DispatchEvent(targets, obj, event);
2134 + if (newuserid.startsWith('user/')) {
2135 + // Notify user change
2136 + var targets = ['*', 'server-users', user._id, newuser._id];
2137 + var event = { etype: 'user', userid: user._id, username: user.name, account: parent.CloneSafeUser(newuser), action: 'accountchange', msg: 'Device group membership changed: ' + newuser.name, domain: domain.id };
2138 + 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.
2139 + parent.parent.DispatchEvent(targets, obj, event);
2140 + } else if (newuserid.startsWith('ugrp/')) {
2141 + // Notify user group change
2142 + var targets = ['*', 'server-ugroups', user._id, newuser._id];
2143 + var event = { etype: 'ugrp', username: user.name, ugrpid: newuser._id, name: newuser.name, desc: newuser.desc, action: 'usergroupchange', links: newuser.links, msg: 'User group changed: ' + newuser.name, domain: domain.id };
2144 + 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.
2145 + parent.parent.DispatchEvent(targets, obj, event);
2146 + }
2147
2125 - // Add a user to the mesh
2126 - mesh.links[newuserid] = { userid: newuser.id, name: newuser.name, rights: command.meshadmin };
2148 + // Add userid to the mesh
2149 + mesh.links[newuserid] = { name: newuser.name, rights: command.meshadmin };
2150 db.Set(common.escapeLinksFieldName(mesh));
2151
2152 // Notify mesh change
@@ -2132,7 +2155,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
2155 parent.parent.DispatchEvent(['*', mesh._id, user._id, newuserid], obj, event);
2156 removedCount++;
2157 } else {
2135 - unknownUsers.push(command.usernames[i]);
2158 + unknownUsers.push(command.userids[i]);
2159 failCount++;
2160 }
2161 }
@@ -2170,21 +2193,32 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
2193 }
2194
2195 // Check if the user exists - Just in case we need to delete a mesh right for a non-existant user, we do it this way. Technically, it's not possible, but just in case.
2173 - var deluserid = command.userid, deluser = parent.users[deluserid];
2196 + var deluserid = command.userid, deluser = null;
2197 + if (deluserid.startsWith('user/')) { deluser = parent.users[deluserid]; }
2198 + else if (deluserid.startsWith('ugrp/')) { deluser = parent.userGroups[deluserid]; }
2199 if (deluser != null) {
2200 // Remove mesh from user
2201 if (deluser.links != null && deluser.links[command.meshid] != null) {
2202 var delmeshrights = deluser.links[command.meshid].rights;
2203 if ((delmeshrights == 0xFFFFFFFF) && (mesh.links[deluserid].rights != 0xFFFFFFFF)) return; // A non-admin can't kick out an admin
2204 delete deluser.links[command.meshid];
2180 - db.Set(deluser);
2205 + if (deluserid.startsWith('user/')) { db.SetUser(deluser); }
2206 + else if (deluserid.startsWith('ugrp/')) { db.Set(deluser); }
2207 parent.parent.DispatchEvent([deluser._id], obj, 'resubscribe');
2208
2183 - // Notify user change
2184 - var targets = ['*', 'server-users', user._id, deluser._id];
2185 - var event = { etype: 'user', userid: user._id, username: user.name, account: parent.CloneSafeUser(deluser), action: 'accountchange', msg: 'Device group membership changed: ' + deluser.name, domain: domain.id };
2186 - 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.
2187 - parent.parent.DispatchEvent(targets, obj, event);
2209 + if (deluserid.startsWith('user/')) {
2210 + // Notify user change
2211 + var targets = ['*', 'server-users', user._id, deluser._id];
2212 + var event = { etype: 'user', userid: user._id, username: user.name, account: parent.CloneSafeUser(deluser), action: 'accountchange', msg: 'Device group membership changed: ' + deluser.name, domain: domain.id };
2213 + 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.
2214 + parent.parent.DispatchEvent(targets, obj, event);
2215 + } else if (deluserid.startsWith('ugrp/')) {
2216 + // Notify user group change
2217 + var targets = ['*', 'server-ugroups', user._id, deluser._id];
2218 + var event = { etype: 'ugrp', username: user.name, ugrpid: deluser._id, name: deluser.name, desc: deluser.desc, action: 'usergroupchange', links: deluser.links, msg: 'User group changed: ' + deluser.name, domain: domain.id };
2219 + 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.
2220 + parent.parent.DispatchEvent(targets, obj, event);
2221 + }
2222 }
2223 }
2224
translate/translate.json
+463 -427
@@ -166,8 +166,8 @@
166 "ja": " ユーザーは、デバイスグループに追加する前にこのサーバーに1回ログインする必要があります。",
167 "nl": " Gebruikers moeten inloggen bij de server voordat ze kunnen worden toegevoegd aan een apparaatgroep.",
168 "xloc": [
169 - "default.handlebars->23->1058",
170 - "default.handlebars->23->1266"
169 + "default.handlebars->23->1059",
170 + "default.handlebars->23->1287"
171 ]
172 },
173 {
@@ -241,7 +241,7 @@
241 "ja": "*空白のままにして、各デバイスにランダムなパスワードを割り当てます。",
242 "nl": "* Laat leeg om een willekeurig wachtwoord toe te wijzen aan elk apparaat.",
243 "xloc": [
244 - "default.handlebars->23->1033"
244 + "default.handlebars->23->1034"
245 ]
246 },
247 {
@@ -262,7 +262,7 @@
262 "cs": ", ",
263 "nl": ", ",
264 "xloc": [
265 - "default.handlebars->23->1103",
265 + "default.handlebars->23->1110",
266 "default-mobile.handlebars->9->330"
267 ]
268 },
@@ -379,8 +379,8 @@
379 "nl": "...",
380 "xloc": [
381 "default.handlebars->23->626",
382 - "default.handlebars->23->1125",
383 - "default.handlebars->23->1342",
382 + "default.handlebars->23->1132",
383 + "default.handlebars->23->1363",
384 "default-mobile.handlebars->9->67",
385 "default-mobile.handlebars->9->243"
386 ]
@@ -403,7 +403,7 @@
403 "ja": "1つのアクティブなセッション",
404 "nl": "1 actieve sessie",
405 "xloc": [
406 - "default.handlebars->23->1306"
406 + "default.handlebars->23->1327"
407 ]
408 },
409 {
@@ -414,7 +414,7 @@
414 "ja": "1バイト",
415 "nl": "1 byte",
416 "xloc": [
417 - "default.handlebars->23->1142",
417 + "default.handlebars->23->1149",
418 "default-mobile.handlebars->9->77",
419 "default-mobile.handlebars->9->334"
420 ]
@@ -440,7 +440,7 @@
440 "ja": "1グループ",
441 "nl": "1 groep",
442 "xloc": [
443 - "default.handlebars->23->1290"
443 + "default.handlebars->23->1311"
444 ]
445 },
446 {
@@ -476,7 +476,7 @@
476 "ja": "さらに1人のユーザーが表示されていません。検索ボックスを使用してユーザーを検索してください...",
477 "nl": "1 gebruiker niet getoond, gebruik de zoekfunctie om gebruikers te vinden...",
478 "xloc": [
479 - "default.handlebars->23->1177"
479 + "default.handlebars->23->1184"
480 ]
481 },
482 {
@@ -498,7 +498,7 @@
498 "ja": "1セッション",
499 "nl": "1 sessie",
500 "xloc": [
501 - "default.handlebars->23->1181"
501 + "default.handlebars->23->1188"
502 ]
503 },
504 {
@@ -985,7 +985,7 @@
985 "ja": "サーバーファイルへのアクセス",
986 "nl": "Toegang tot de server bestanden",
987 "xloc": [
988 - "default.handlebars->23->1271"
988 + "default.handlebars->23->1292"
989 ]
990 },
991 {
@@ -1170,8 +1170,8 @@
1170 "xloc": [
1171 "default.handlebars->23->230",
1172 "default.handlebars->23->232",
1173 - "default.handlebars->23->996",
1174 - "default.handlebars->23->998"
1173 + "default.handlebars->23->997",
1174 + "default.handlebars->23->999"
1175 ]
1176 },
1177 {
@@ -1192,7 +1192,7 @@
1192 "nl": "Voeg een nieuwe computer toe aan deze mesh door de mesh-agent te installeren.",
1193 "xloc": [
1194 "default.handlebars->23->233",
1195 - "default.handlebars->23->999"
1195 + "default.handlebars->23->1000"
1196 ]
1197 },
1198 {
@@ -1213,7 +1213,7 @@
1213 "nl": "Voeg een nieuwe Intel® AMT computer toe welke zich op het internet bevind.",
1214 "xloc": [
1215 "default.handlebars->23->223",
1216 - "default.handlebars->23->991"
1216 + "default.handlebars->23->992"
1217 ]
1218 },
1219 {
@@ -1224,7 +1224,7 @@
1224 "nl": "Voeg een nieuwe Intel® AMT computer toe welke zich op het lokale netwerk bevind.",
1225 "xloc": [
1226 "default.handlebars->23->225",
1227 - "default.handlebars->23->993"
1227 + "default.handlebars->23->994"
1228 ]
1229 },
1230 {
@@ -1279,8 +1279,10 @@
1279 "nl": "Apparaatgroep toevoegen",
1280 "xloc": [
1281 "default.handlebars->23->205",
1282 - "default.handlebars->23->1080",
1283 - "default.handlebars->23->1319"
1282 + "default.handlebars->23->1084",
1283 + "default.handlebars->23->1086",
1284 + "default.handlebars->23->1266",
1285 + "default.handlebars->23->1340"
1286 ]
1287 },
1288 {
@@ -1381,7 +1383,7 @@
1383 "nl": "Gebruikers toevoegen",
1384 "xloc": [
1385 "default.handlebars->23->990",
1384 - "default.handlebars->23->1251"
1386 + "default.handlebars->23->1261"
1387 ]
1388 },
1389 {
@@ -1391,7 +1393,7 @@
1393 "ja": "ユーザーをデバイスグループに追加する",
1394 "nl": "Gebruikers toevoegen aan apparaatgroep",
1395 "xloc": [
1394 - "default.handlebars->23->1079"
1396 + "default.handlebars->23->1083"
1397 ]
1398 },
1399 {
@@ -1441,7 +1443,7 @@
1443 "ja": "管理レルム",
1444 "nl": "Beheerdersgebied",
1445 "xloc": [
1444 - "default.handlebars->23->1294"
1446 + "default.handlebars->23->1315"
1447 ]
1448 },
1449 {
@@ -1451,7 +1453,7 @@
1453 "ja": "管理レルム",
1454 "nl": "Administratieve gebieden",
1455 "xloc": [
1454 - "default.handlebars->23->1226"
1456 + "default.handlebars->23->1233"
1457 ]
1458 },
1459 {
@@ -1461,7 +1463,7 @@
1463 "cs": "Správce",
1464 "nl": "Beheerder",
1465 "xloc": [
1464 - "default.handlebars->23->1188"
1466 + "default.handlebars->23->1195"
1467 ]
1468 },
1469 {
@@ -1485,8 +1487,8 @@
1487 "default.handlebars->container->column_l->p15->consoleTable->1->6->1->1->1->0->p15outputselecttd->p15outputselect->1",
1488 "default.handlebars->23->184",
1489 "default.handlebars->23->371",
1488 - "default.handlebars->23->1113",
1489 - "default.handlebars->23->1119",
1490 + "default.handlebars->23->1120",
1491 + "default.handlebars->23->1126",
1492 "default-mobile.handlebars->9->121",
1493 "default-mobile.handlebars->9->174",
1494 "default-mobile.handlebars->9->190"
@@ -1521,7 +1523,7 @@
1523 "ja": "エージェントコンソール",
1524 "nl": "Agent console",
1525 "xloc": [
1524 - "default.handlebars->23->1087",
1526 + "default.handlebars->23->1094",
1527 "default-mobile.handlebars->9->315"
1528 ]
1529 },
@@ -1594,7 +1596,7 @@
1596 "ja": "エージェント",
1597 "nl": "Agents",
1598 "xloc": [
1597 - "default.handlebars->23->1379"
1599 + "default.handlebars->23->1400"
1600 ]
1601 },
1602 {
@@ -1650,8 +1652,8 @@
1652 "cs": "Umožnit uživatelům spravovat tuto skupinu a zařízení v této skupině.",
1653 "nl": "Gebruikers toestaan deze apparaatgroep en apparaten in deze groep te beheren.",
1654 "xloc": [
1653 - "default.handlebars->23->1057",
1654 - "default.handlebars->23->1265"
1655 + "default.handlebars->23->1058",
1656 + "default.handlebars->23->1286"
1657 ]
1658 },
1659 {
@@ -2021,7 +2023,7 @@
2023 "cs": "Opravdu smazat skupinu {0}? Smazáním skupiny se smažou také všechny informace o zařízeních v této skupině.",
2024 "nl": "Weet je zeker dat je groep {0} wilt verwijderen? Als u de apparaatgroep verwijdert, wordt ook alle informatie over apparaten binnen deze groep verwijderd.",
2025 "xloc": [
2024 - "default.handlebars->23->1037",
2026 + "default.handlebars->23->1038",
2027 "default-mobile.handlebars->9->286"
2028 ]
2029 },
@@ -2060,7 +2062,7 @@
2062 "cs": "Opravdu chcete {0} zásuvný modul: {1}",
2063 "nl": "Weet u zeker dat u de plug-in {0} wilt gebruiken: {1}",
2064 "xloc": [
2063 - "default.handlebars->23->1414"
2065 + "default.handlebars->23->1435"
2066 ]
2067 },
2068 {
@@ -2144,7 +2146,7 @@
2146 "cs": "Aplikace pro ověřování se",
2147 "nl": "Verificatie-app",
2148 "xloc": [
2147 - "default.handlebars->23->1295"
2149 + "default.handlebars->23->1316"
2150 ]
2151 },
2152 {
@@ -2336,7 +2338,7 @@
2338 "cs": "Záložní kódy",
2339 "nl": "Back-up codes",
2340 "xloc": [
2339 - "default.handlebars->23->1297"
2341 + "default.handlebars->23->1318"
2342 ]
2343 },
2344 {
@@ -2418,7 +2420,7 @@
2420 "nl": "Uitzending",
2421 "xloc": [
2422 "default.handlebars->container->column_l->p4->3->1->0->3->1",
2421 - "default.handlebars->23->1249"
2423 + "default.handlebars->23->1259"
2424 ]
2425 },
2426 {
@@ -2428,7 +2430,7 @@
2430 "cs": "Zaslat hromadnou zprávu všem připojeným uživatelům.",
2431 "nl": "Verzend een bericht naar alle verbonden gebruikers.",
2432 "xloc": [
2431 - "default.handlebars->23->1210"
2433 + "default.handlebars->23->1217"
2434 ]
2435 },
2436 {
@@ -2439,7 +2441,7 @@
2441 "cs": "Hromadná zpráva",
2442 "nl": "Bericht uitzenden",
2443 "xloc": [
2442 - "default.handlebars->23->1211"
2444 + "default.handlebars->23->1218"
2445 ]
2446 },
2447 {
@@ -2470,7 +2472,7 @@
2472 "cs": "Chyba volání",
2473 "nl": "Oproepfout",
2474 "xloc": [
2473 - "default.handlebars->23->1415"
2475 + "default.handlebars->23->1436"
2476 ]
2477 },
2478 {
@@ -2560,7 +2562,7 @@
2562 "ja": "{0}のメールを変更",
2563 "nl": "Verander e-mail voor {0}",
2564 "xloc": [
2563 - "default.handlebars->23->1310"
2565 + "default.handlebars->23->1331"
2566 ]
2567 },
2568 {
@@ -2583,7 +2585,7 @@
2585 "nl": "Verander wachtwoord",
2586 "xloc": [
2587 "default.handlebars->23->922",
2586 - "default.handlebars->23->1305",
2588 + "default.handlebars->23->1326",
2589 "default-mobile.handlebars->9->49"
2590 ]
2591 },
@@ -2605,7 +2607,7 @@
2607 "cs": "Změnit heslo pro {0}",
2608 "nl": "Verander wachtwoord voor {0}",
2609 "xloc": [
2608 - "default.handlebars->23->1317"
2610 + "default.handlebars->23->1338"
2611 ]
2612 },
2613 {
@@ -2665,7 +2667,7 @@
2667 "cs": "Chat",
2668 "nl": "Chat",
2669 "xloc": [
2668 - "default.handlebars->23->1180"
2670 + "default.handlebars->23->1187"
2671 ]
2672 },
2673 {
@@ -2675,8 +2677,8 @@
2677 "cs": "Chat a upozornění",
2678 "nl": "Chat & Melden",
2679 "xloc": [
2678 - "default.handlebars->23->1077",
2679 - "default.handlebars->23->1097",
2680 + "default.handlebars->23->1081",
2681 + "default.handlebars->23->1104",
2682 "default-mobile.handlebars->9->307",
2683 "default-mobile.handlebars->9->325"
2684 ]
@@ -2729,7 +2731,7 @@
2731 "nl": "Controleren...",
2732 "xloc": [
2733 "default.handlebars->23->696",
2732 - "default.handlebars->23->1411"
2734 + "default.handlebars->23->1432"
2735 ]
2736 },
2737 {
@@ -2812,8 +2814,8 @@
2814 "xloc": [
2815 "default.handlebars->23->186",
2816 "default.handlebars->23->373",
2815 - "default.handlebars->23->1025",
2816 - "default.handlebars->23->1030",
2817 + "default.handlebars->23->1026",
2818 + "default.handlebars->23->1031",
2819 "default-mobile.handlebars->9->122"
2820 ]
2821 },
@@ -2824,7 +2826,7 @@
2826 "cs": "CIRA Server",
2827 "nl": "CIRA Server",
2828 "xloc": [
2827 - "default.handlebars->23->1405"
2829 + "default.handlebars->23->1426"
2830 ]
2831 },
2832 {
@@ -2834,7 +2836,7 @@
2836 "cs": "příkazy CIRA serveru",
2837 "nl": "CIRA Server opdrachten",
2838 "xloc": [
2837 - "default.handlebars->23->1406"
2839 + "default.handlebars->23->1427"
2840 ]
2841 },
2842 {
@@ -2860,7 +2862,7 @@
2862 "default.handlebars->23->647",
2863 "default.handlebars->23->649",
2864 "default.handlebars->23->651",
2863 - "default.handlebars->23->1157",
2865 + "default.handlebars->23->1164",
2866 "default-mobile.handlebars->9->28",
2867 "default-mobile.handlebars->9->91",
2868 "default-mobile.handlebars->9->262",
@@ -2959,8 +2961,8 @@
2961 "cs": "Vzdálený přístup iniciováný klientem",
2962 "nl": "Gebruiker geïnitieerde externe toegang",
2963 "xloc": [
2962 - "default.handlebars->23->1024",
2963 - "default.handlebars->23->1029"
2964 + "default.handlebars->23->1025",
2965 + "default.handlebars->23->1030"
2966 ]
2967 },
2968 {
@@ -3004,7 +3006,7 @@
3006 "cs": "Potvrdit {0} z {1} záznam{2} do tohoto umístění?",
3007 "nl": "Bevestig {0} van {1} bestand {2} naar deze locatie?",
3008 "xloc": [
3007 - "default.handlebars->23->1152",
3009 + "default.handlebars->23->1159",
3010 "default-mobile.handlebars->9->86"
3011 ]
3012 },
@@ -3018,8 +3020,8 @@
3020 "default.handlebars->23->396",
3021 "default.handlebars->23->548",
3022 "default.handlebars->23->557",
3021 - "default.handlebars->23->1038",
3022 - "default.handlebars->23->1261",
3023 + "default.handlebars->23->1039",
3024 + "default.handlebars->23->1282",
3025 "default-mobile.handlebars->9->220",
3026 "default-mobile.handlebars->9->287"
3027 ]
@@ -3084,7 +3086,7 @@
3086 "cs": "Potvrdit přepsání?",
3087 "nl": "Bevestig overschrijven?",
3088 "xloc": [
3087 - "default.handlebars->23->1151"
3089 + "default.handlebars->23->1158"
3090 ]
3091 },
3092 {
@@ -3105,8 +3107,8 @@
3107 "cs": "Potvrdit odstranění uživatele {0}?",
3108 "nl": "Bevestig de verwijdering van gebruiker {0}?",
3109 "xloc": [
3108 - "default.handlebars->23->1106",
3109 - "default.handlebars->23->1264",
3110 + "default.handlebars->23->1113",
3111 + "default.handlebars->23->1285",
3112 "default-mobile.handlebars->9->333"
3113 ]
3114 },
@@ -3145,8 +3147,8 @@
3147 "ja": "サーバーに接続する",
3148 "nl": "Verbinden met de server",
3149 "xloc": [
3148 - "default.handlebars->23->1028",
3149 - "default.handlebars->23->1032"
3150 + "default.handlebars->23->1029",
3151 + "default.handlebars->23->1033"
3152 ]
3153 },
3154 {
@@ -3214,7 +3216,7 @@
3216 "cs": "Počitadlo připojení",
3217 "nl": "Aantal verbindingen",
3218 "xloc": [
3217 - "default.handlebars->23->1378"
3219 + "default.handlebars->23->1399"
3220 ]
3221 },
3222 {
@@ -3224,7 +3226,7 @@
3226 "cs": "Předávání (relay) spojení",
3227 "nl": "Verbindings Relay",
3228 "xloc": [
3227 - "default.handlebars->23->1404"
3229 + "default.handlebars->23->1425"
3230 ]
3231 },
3232 {
@@ -3247,7 +3249,7 @@
3249 "default.handlebars->container->column_l->p21->3->1->meshConnChartDiv->1",
3250 "default.handlebars->23->202",
3251 "default.handlebars->23->482",
3250 - "default.handlebars->23->1122",
3252 + "default.handlebars->23->1129",
3253 "default-mobile.handlebars->9->195"
3254 ]
3255 },
@@ -3290,7 +3292,7 @@
3292 "cs": "Cookie enkodér",
3293 "nl": "Cookie encoder",
3294 "xloc": [
3293 - "default.handlebars->23->1392"
3295 + "default.handlebars->23->1413"
3296 ]
3297 },
3298 {
@@ -3313,7 +3315,7 @@
3315 "cs": "kopírovat",
3316 "nl": "kopie",
3317 "xloc": [
3316 - "default.handlebars->23->1155",
3318 + "default.handlebars->23->1162",
3319 "default-mobile.handlebars->9->89"
3320 ]
3321 },
@@ -3466,7 +3468,7 @@
3468 "cs": "Hlavní server",
3469 "nl": "Core Server",
3470 "xloc": [
3469 - "default.handlebars->23->1391"
3471 + "default.handlebars->23->1412"
3472 ]
3473 },
3474 {
@@ -3486,7 +3488,7 @@
3488 "cs": "vytížení procesoru v uplynulých 15 minutách",
3489 "nl": "CPU-belasting in de afgelopen 15 minuten",
3490 "xloc": [
3489 - "default.handlebars->23->1374"
3491 + "default.handlebars->23->1395"
3492 ]
3493 },
3494 {
@@ -3496,7 +3498,7 @@
3498 "cs": "vyžítení procesoru v uplynulých 5 minutách",
3499 "nl": "CPU-belasting in de afgelopen 5 minuten",
3500 "xloc": [
3499 - "default.handlebars->23->1373"
3501 + "default.handlebars->23->1394"
3502 ]
3503 },
3504 {
@@ -3506,7 +3508,7 @@
3508 "ja": "直前のCPU負荷",
3509 "nl": "CPU-belasting in de laatste minuut",
3510 "xloc": [
3509 - "default.handlebars->23->1372"
3511 + "default.handlebars->23->1393"
3512 ]
3513 },
3514 {
@@ -3548,7 +3550,7 @@
3550 "cs": "Vytvořit účet",
3551 "nl": "Account aanmaken",
3552 "xloc": [
3551 - "default.handlebars->23->1222",
3553 + "default.handlebars->23->1229",
3554 "login.handlebars->container->column_l->centralTable->1->0->logincell->createpanel->1->9->1->12->1->1",
3555 "login-mobile.handlebars->container->page_content->column_l->1->1->0->1->createpanel->1->1->9->1->12->1->1"
3556 ]
@@ -3570,7 +3572,7 @@
3572 "cs": "Vytvořit více účtu najednou pomocí importu JSON souboru s následujícím formátem:",
3573 "nl": "Maak meerdere accounts tegelijk door een JSON-bestand met de volgende indeling te importeren:",
3574 "xloc": [
3573 - "default.handlebars->23->1193"
3575 + "default.handlebars->23->1200"
3576 ]
3577 },
3578 {
@@ -3591,7 +3593,7 @@
3593 "cs": "Vytváření",
3594 "nl": "Aanmaken",
3595 "xloc": [
3594 - "default.handlebars->23->1283"
3596 + "default.handlebars->23->1304"
3597 ]
3598 },
3599 {
@@ -3632,8 +3634,8 @@
3634 "cs": "CSV formát",
3635 "nl": "CSV Formaat",
3636 "xloc": [
3635 - "default.handlebars->23->1163",
3636 - "default.handlebars->23->1202"
3637 + "default.handlebars->23->1170",
3638 + "default.handlebars->23->1209"
3639 ]
3640 },
3641 {
@@ -3768,7 +3770,7 @@
3770 "cs": "Deaktivace Client Control Mode (CCM)",
3771 "nl": "Deactiveer Client Control Mode (CCM)",
3772 "xloc": [
3771 - "default.handlebars->23->1016"
3773 + "default.handlebars->23->1017"
3774 ]
3775 },
3776 {
@@ -3793,7 +3795,7 @@
3795 "default.handlebars->container->column_l->p13->p13toolbar->1->2->1->3",
3796 "default.handlebars->container->dialog->idx_dlgButtonBar->5",
3797 "default.handlebars->23->632",
3796 - "default.handlebars->23->1146",
3798 + "default.handlebars->23->1153",
3799 "default-mobile.handlebars->container->page_content->column_l->p5->p5myfiles->p5toolbar->1->0->1->1",
3800 "default-mobile.handlebars->container->page_content->column_l->p10->p10files->p13toolbar->1->2->1->1",
3801 "default-mobile.handlebars->9->81",
@@ -3851,8 +3853,8 @@
3853 "ja": "グループを削除",
3854 "nl": "Verwijder groep",
3855 "xloc": [
3854 - "default.handlebars->23->1009",
3855 - "default.handlebars->23->1039",
3856 + "default.handlebars->23->1010",
3857 + "default.handlebars->23->1040",
3858 "default-mobile.handlebars->9->285",
3859 "default-mobile.handlebars->9->288"
3860 ]
@@ -3886,7 +3888,7 @@
3888 "nl": "Verwijder geselecteerde item?",
3889 "xloc": [
3890 "default.handlebars->23->634",
3889 - "default.handlebars->23->1148",
3891 + "default.handlebars->23->1155",
3892 "default-mobile.handlebars->9->83",
3893 "default-mobile.handlebars->9->251"
3894 ]
@@ -3898,7 +3900,7 @@
3900 "ja": "ユーザーを削除{0}",
3901 "nl": "Verwijder gebruiker {0}",
3902 "xloc": [
3901 - "default.handlebars->23->1318"
3903 + "default.handlebars->23->1339"
3904 ]
3905 },
3906 {
@@ -3909,7 +3911,7 @@
3911 "nl": "Verwijder {0} gelecteerde items?",
3912 "xloc": [
3913 "default.handlebars->23->633",
3912 - "default.handlebars->23->1147",
3914 + "default.handlebars->23->1154",
3915 "default-mobile.handlebars->9->82",
3916 "default-mobile.handlebars->9->250"
3917 ]
@@ -3977,11 +3979,11 @@
3979 "default.handlebars->23->575",
3980 "default.handlebars->23->934",
3981 "default.handlebars->23->958",
3980 - "default.handlebars->23->1041",
3981 - "default.handlebars->23->1242",
3982 - "default.handlebars->23->1246",
3983 - "default.handlebars->23->1248",
3984 - "default.handlebars->23->1258",
3982 + "default.handlebars->23->1042",
3983 + "default.handlebars->23->1250",
3984 + "default.handlebars->23->1254",
3985 + "default.handlebars->23->1256",
3986 + "default.handlebars->23->1279",
3987 "default-mobile.handlebars->9->60",
3988 "default-mobile.handlebars->9->141",
3989 "default-mobile.handlebars->9->142",
@@ -4010,7 +4012,7 @@
4012 "default.handlebars->contextMenu->cxdesktop",
4013 "default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevDesktop",
4014 "default.handlebars->23->409",
4013 - "default.handlebars->23->1043"
4015 + "default.handlebars->23->1044"
4016 ]
4017 },
4018 {
@@ -4123,7 +4125,7 @@
4125 "nl": "Apparaat verbindingen.",
4126 "xloc": [
4127 "default.handlebars->23->902",
4126 - "default.handlebars->23->1108"
4128 + "default.handlebars->23->1115"
4129 ]
4130 },
4131 {
@@ -4134,7 +4136,7 @@
4136 "nl": "Apparaat verbroken.",
4137 "xloc": [
4138 "default.handlebars->23->903",
4137 - "default.handlebars->23->1109"
4139 + "default.handlebars->23->1116"
4140 ]
4141 },
4142 {
@@ -4154,7 +4156,7 @@
4156 "ja": "デバイスグループユーザー",
4157 "nl": "Apparaatgroep gebruiker",
4158 "xloc": [
4157 - "default.handlebars->23->1104",
4159 + "default.handlebars->23->1111",
4160 "default-mobile.handlebars->9->331"
4161 ]
4162 },
@@ -4166,8 +4168,10 @@
4168 "nl": "Apparaatgroepen",
4169 "xloc": [
4170 "default.handlebars->container->column_l->p2->9",
4169 - "default.handlebars->23->1292",
4170 - "default.handlebars->23->1365",
4171 + "default.handlebars->23->1246",
4172 + "default.handlebars->23->1258",
4173 + "default.handlebars->23->1313",
4174 + "default.handlebars->23->1386",
4175 "default-mobile.handlebars->container->page_content->column_l->p3->p3info->1->3"
4176 ]
4177 },
@@ -4474,7 +4478,7 @@
4478 "ja": "何もしない",
4479 "nl": "Doe niets",
4480 "xloc": [
4477 - "default.handlebars->23->1022"
4481 + "default.handlebars->23->1023"
4482 ]
4483 },
4484 {
@@ -4495,8 +4499,8 @@
4499 "cs": "Nenastavovat",
4500 "nl": "Niet configureren",
4501 "xloc": [
4498 - "default.handlebars->23->1026",
4499 - "default.handlebars->23->1031"
4502 + "default.handlebars->23->1027",
4503 + "default.handlebars->23->1032"
4504 ]
4505 },
4506 {
@@ -4506,7 +4510,7 @@
4510 "cs": "Nepřipojovat se k serveru",
4511 "nl": "Maak geen verbinding met de server",
4512 "xloc": [
4509 - "default.handlebars->23->1027"
4513 + "default.handlebars->23->1028"
4514 ]
4515 },
4516 {
@@ -4649,7 +4653,7 @@
4653 "cs": "Stáhnout si seznam událostí v níže uvedeném formátu.",
4654 "nl": "Download de lijst met gebeurtenissen in een van de onderstaande bestandsindelingen.",
4655 "xloc": [
4652 - "default.handlebars->23->1162"
4656 + "default.handlebars->23->1169"
4657 ]
4658 },
4659 {
@@ -4659,7 +4663,7 @@
4663 "cs": "Stáhnout si seznam uživatelů v níže uvedeném formátu.",
4664 "nl": "Download de lijst met gebruikers in een van de onderstaande bestandsindelingen.",
4665 "xloc": [
4662 - "default.handlebars->23->1201"
4666 + "default.handlebars->23->1208"
4667 ]
4668 },
4669 {
@@ -4720,7 +4724,7 @@
4724 "cs": "Během aktivace bude mít agent přístup k heslu správce.",
4725 "nl": "Tijdens activering heeft de agent toegang tot beheerderswachtwoordinformatie.",
4726 "xloc": [
4723 - "default.handlebars->23->1036"
4727 + "default.handlebars->23->1037"
4728 ]
4729 },
4730 {
@@ -4771,9 +4775,9 @@
4775 "ja": "デバイスグループの編集",
4776 "nl": "Bewerk apparaatgroep",
4777 "xloc": [
4774 - "default.handlebars->23->1042",
4775 - "default.handlebars->23->1063",
4776 - "default.handlebars->23->1083",
4778 + "default.handlebars->23->1043",
4779 + "default.handlebars->23->1067",
4780 + "default.handlebars->23->1090",
4781 "default-mobile.handlebars->9->291",
4782 "default-mobile.handlebars->9->293",
4783 "default-mobile.handlebars->9->311"
@@ -4786,7 +4790,7 @@
4790 "cs": "Upravit vlastnosti skupiny zařízení",
4791 "nl": "Functies van apparaatgroep bewerken",
4792 "xloc": [
4789 - "default.handlebars->23->1056"
4793 + "default.handlebars->23->1057"
4794 ]
4795 },
4796 {
@@ -4796,7 +4800,7 @@
4800 "cs": "Upravit souhlas uživatele u skupiny zařízení",
4801 "nl": "Toestemming gebruikersgroep bewerken",
4802 "xloc": [
4799 - "default.handlebars->23->1053"
4803 + "default.handlebars->23->1054"
4804 ]
4805 },
4806 {
@@ -4806,7 +4810,7 @@
4810 "ja": "デバイスノートの編集",
4811 "nl": "Apparaatnotities bewerken",
4812 "xloc": [
4809 - "default.handlebars->23->1075",
4813 + "default.handlebars->23->1079",
4814 "default-mobile.handlebars->9->305"
4815 ]
4816 },
@@ -4831,7 +4835,7 @@
4835 "cs": "Upravit poznámky",
4836 "nl": "Notities bewerken",
4837 "xloc": [
4834 - "default.handlebars->23->1090",
4838 + "default.handlebars->23->1097",
4839 "default-mobile.handlebars->9->318"
4840 ]
4841 },
@@ -4852,7 +4856,7 @@
4856 "cs": "Upravit oprávnění uživatele pro skupinu zařízení",
4857 "nl": "Gebruikersrechten apparaatgroep bewerken",
4858 "xloc": [
4855 - "default.handlebars->23->1081"
4859 + "default.handlebars->23->1088"
4860 ]
4861 },
4862 {
@@ -4863,10 +4867,10 @@
4867 "nl": "E-mail",
4868 "xloc": [
4869 "default.handlebars->23->283",
4866 - "default.handlebars->23->1213",
4867 - "default.handlebars->23->1279",
4868 - "default.handlebars->23->1280",
4869 - "default.handlebars->23->1308",
4870 + "default.handlebars->23->1220",
4871 + "default.handlebars->23->1300",
4872 + "default.handlebars->23->1301",
4873 + "default.handlebars->23->1329",
4874 "default-mobile.handlebars->9->37"
4875 ]
4876 },
@@ -4888,7 +4892,7 @@
4892 "ja": "メールが確認されました",
4893 "nl": "E-mail is geverifieerd",
4894 "xloc": [
4891 - "default.handlebars->23->1276"
4895 + "default.handlebars->23->1297"
4896 ]
4897 },
4898 {
@@ -4898,7 +4902,7 @@
4902 "ja": "メールが確認されました。",
4903 "nl": "E-mail is geverifieerd.",
4904 "xloc": [
4901 - "default.handlebars->23->1219"
4905 + "default.handlebars->23->1226"
4906 ]
4907 },
4908 {
@@ -4908,7 +4912,7 @@
4912 "ja": "メールが確認されていません",
4913 "nl": "E-mail is niet geverifieerd",
4914 "xloc": [
4911 - "default.handlebars->23->1277"
4915 + "default.handlebars->23->1298"
4916 ]
4917 },
4918 {
@@ -5118,7 +5122,7 @@
5122 "cs": "Zadejte seznam správních oblastí (oddělovaných čárkou).",
5123 "nl": "Voer een door komma's gescheiden lijst met beheerdersnamen in.",
5124 "xloc": [
5121 - "default.handlebars->23->1223"
5125 + "default.handlebars->23->1230"
5126 ]
5127 },
5128 {
@@ -5251,7 +5255,7 @@
5255 "cs": "Export seznamu událostí",
5256 "nl": "Gebeurtenissenlijst exporteren",
5257 "xloc": [
5254 - "default.handlebars->23->1167"
5258 + "default.handlebars->23->1174"
5259 ]
5260 },
5261 {
@@ -5286,8 +5290,8 @@
5290 "cs": "eventslist.csv",
5291 "nl": "eventslist.csv",
5292 "xloc": [
5289 - "default.handlebars->23->1164",
5290 - "default.handlebars->23->1169"
5293 + "default.handlebars->23->1171",
5294 + "default.handlebars->23->1176"
5295 ]
5296 },
5297 {
@@ -5297,8 +5301,8 @@
5301 "cs": "eventslist.json",
5302 "nl": "eventslist.json",
5303 "xloc": [
5300 - "default.handlebars->23->1166",
5301 - "default.handlebars->23->1170"
5304 + "default.handlebars->23->1173",
5305 + "default.handlebars->23->1177"
5306 ]
5307 },
5308 {
@@ -5438,7 +5442,7 @@
5442 "xloc": [
5443 "default.handlebars->contextMenu->cxfiles",
5444 "default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevFiles",
5441 - "default.handlebars->23->1050"
5445 + "default.handlebars->23->1051"
5446 ]
5447 },
5448 {
@@ -5549,8 +5553,8 @@
5553 "cs": "Vynutit reset hesla při dalším přihlášení.",
5554 "nl": "Forceer wachtwoord opnieuw instellen bij de volgende aanmelding.",
5555 "xloc": [
5552 - "default.handlebars->23->1217",
5553 - "default.handlebars->23->1315"
5556 + "default.handlebars->23->1224",
5557 + "default.handlebars->23->1336"
5558 ]
5559 },
5560 {
@@ -5603,8 +5607,8 @@
5607 "cs": "Volné",
5608 "nl": "Vrij",
5609 "xloc": [
5606 - "default.handlebars->23->1346",
5607 - "default.handlebars->23->1348"
5610 + "default.handlebars->23->1367",
5611 + "default.handlebars->23->1369"
5612 ]
5613 },
5614 {
@@ -5615,7 +5619,7 @@
5619 "cs": "volné",
5620 "nl": "vrij",
5621 "xloc": [
5618 - "default.handlebars->23->1376"
5622 + "default.handlebars->23->1397"
5623 ]
5624 },
5625 {
@@ -5737,8 +5741,8 @@
5741 "nl": "Volledige beheerder",
5742 "xloc": [
5743 "default.handlebars->23->943",
5740 - "default.handlebars->23->1062",
5741 - "default.handlebars->23->1228",
5744 + "default.handlebars->23->1066",
5745 + "default.handlebars->23->1235",
5746 "default-mobile.handlebars->9->64",
5747 "default-mobile.handlebars->9->283",
5748 "default-mobile.handlebars->9->292",
@@ -5753,7 +5757,7 @@
5757 "ja": "完全な管理者",
5758 "nl": "Volledige beheerder",
5759 "xloc": [
5756 - "default.handlebars->23->1272"
5760 + "default.handlebars->23->1293"
5761 ]
5762 },
5763 {
@@ -5764,7 +5768,7 @@
5768 "ja": "完全な管理者(すべての権利)",
5769 "nl": "Volledige beheerder (met alle rechten)",
5770 "xloc": [
5767 - "default.handlebars->23->1082"
5771 + "default.handlebars->23->1089"
5772 ]
5773 },
5774 {
@@ -6057,7 +6061,7 @@
6061 "cs": "Oprávnění skupiny pro uživatele {0}.",
6062 "nl": "Groepsrechten voor gebruiker {0}.",
6063 "xloc": [
6060 - "default.handlebars->23->1061"
6064 + "default.handlebars->23->1065"
6065 ]
6066 },
6067 {
@@ -6211,7 +6215,7 @@
6215 "cs": "Drží se {0} zaznamů{1} pro {2}",
6216 "nl": "Houd {0} item {1} vast voor {2}",
6217 "xloc": [
6214 - "default.handlebars->23->1154",
6218 + "default.handlebars->23->1161",
6219 "default-mobile.handlebars->9->88"
6220 ]
6221 },
@@ -6375,7 +6379,7 @@
6379 "cs": "identif., jméno, e-mail, vytvoření, poslední přihlášení, skupiny, faktory ověrování",
6380 "nl": "id, naam, e-mail, aanmaken, laatste inlog, groepen, authenticatiefactors",
6381 "xloc": [
6378 - "default.handlebars->23->1207"
6382 + "default.handlebars->23->1214"
6383 ]
6384 },
6385 {
@@ -6450,7 +6454,7 @@
6454 "ja": "インストール",
6455 "nl": "Installeren",
6456 "xloc": [
6453 - "default.handlebars->23->1000"
6457 + "default.handlebars->23->1001"
6458 ]
6459 },
6460 {
@@ -6479,7 +6483,7 @@
6483 "cs": "Instalace CIRA",
6484 "nl": "Installeer CIRA",
6485 "xloc": [
6482 - "default.handlebars->23->992"
6486 + "default.handlebars->23->993"
6487 ]
6488 },
6489 {
@@ -6489,7 +6493,7 @@
6493 "cs": "Lokální instalace",
6494 "nl": "Installeer lokaal",
6495 "xloc": [
6492 - "default.handlebars->23->994"
6496 + "default.handlebars->23->995"
6497 ]
6498 },
6499 {
@@ -6521,10 +6525,10 @@
6525 "cs": "Intel AMT",
6526 "nl": "Intel AMT",
6527 "xloc": [
6524 - "default.handlebars->23->1114",
6525 - "default.handlebars->23->1120",
6526 - "default.handlebars->23->1383",
6527 - "default.handlebars->23->1403"
6528 + "default.handlebars->23->1121",
6529 + "default.handlebars->23->1127",
6530 + "default.handlebars->23->1404",
6531 + "default.handlebars->23->1424"
6532 ]
6533 },
6534 {
@@ -6711,7 +6715,7 @@
6715 "nl": "Intel® AMT desktop- en seriële gebeurtenissen.",
6716 "xloc": [
6717 "default.handlebars->23->904",
6714 - "default.handlebars->23->1110"
6718 + "default.handlebars->23->1117"
6719 ]
6720 },
6721 {
@@ -6776,7 +6780,7 @@
6780 "cs": "Intel® AMT zásada",
6781 "nl": "Intel® AMT beleid",
6782 "xloc": [
6779 - "default.handlebars->23->1018"
6783 + "default.handlebars->23->1019"
6784 ]
6785 },
6786 {
@@ -6950,8 +6954,8 @@
6954 "cs": "Neplatný formát JSON souboru.",
6955 "nl": "Ongeldige JSON-bestandsindeling.",
6956 "xloc": [
6953 - "default.handlebars->23->1198",
6954 - "default.handlebars->23->1200"
6957 + "default.handlebars->23->1205",
6958 + "default.handlebars->23->1207"
6959 ]
6960 },
6961 {
@@ -6961,7 +6965,7 @@
6965 "cs": "Neplatný JSON soubor: {0}.",
6966 "nl": "Ongeldig JSON-bestand: {0}.",
6967 "xloc": [
6964 - "default.handlebars->23->1196"
6968 + "default.handlebars->23->1203"
6969 ]
6970 },
6971 {
@@ -7005,7 +7009,7 @@
7009 "xloc": [
7010 "default.handlebars->23->236",
7011 "default.handlebars->23->313",
7008 - "default.handlebars->23->1002"
7012 + "default.handlebars->23->1003"
7013 ]
7014 },
7015 {
@@ -7028,7 +7032,7 @@
7032 "nl": "Nodig iemand uit om de mesh-agent op deze mesh te installeren.",
7033 "xloc": [
7034 "default.handlebars->23->235",
7031 - "default.handlebars->23->1001"
7035 + "default.handlebars->23->1002"
7036 ]
7037 },
7038 {
@@ -7144,8 +7148,8 @@
7148 "cs": "JSON formát",
7149 "nl": "JSON-indeling",
7150 "xloc": [
7147 - "default.handlebars->23->1165",
7148 - "default.handlebars->23->1204"
7151 + "default.handlebars->23->1172",
7152 + "default.handlebars->23->1211"
7153 ]
7154 },
7155 {
@@ -7427,7 +7431,7 @@
7431 "cs": "Poslední přístup",
7432 "nl": "Laatste toegang",
7433 "xloc": [
7430 - "default.handlebars->23->1173"
7434 + "default.handlebars->23->1180"
7435 ]
7436 },
7437 {
@@ -7462,7 +7466,7 @@
7466 "ja": "最終変更:{0}",
7467 "nl": "Laatst gewijzigd: {0}",
7468 "xloc": [
7465 - "default.handlebars->23->1288"
7469 + "default.handlebars->23->1309"
7470 ]
7471 },
7472 {
@@ -7495,7 +7499,7 @@
7499 "cs": "Poslední přihlášení",
7500 "nl": "Laatste inlog",
7501 "xloc": [
7498 - "default.handlebars->23->1284"
7502 + "default.handlebars->23->1305"
7503 ]
7504 },
7505 {
@@ -7505,7 +7509,7 @@
7509 "cs": "Poslední přihlášení: {0}",
7510 "nl": "Laatste inlog: {0}",
7511 "xloc": [
7508 - "default.handlebars->23->1183"
7512 + "default.handlebars->23->1190"
7513 ]
7514 },
7515 {
@@ -7595,7 +7599,7 @@
7599 "cs": "Méně",
7600 "nl": "Minder",
7601 "xloc": [
7598 - "default.handlebars->23->1417"
7602 + "default.handlebars->23->1438"
7603 ]
7604 },
7605 {
@@ -7638,7 +7642,7 @@
7642 "cs": "Omezený vstup",
7643 "nl": "Beperkte invoer",
7644 "xloc": [
7641 - "default.handlebars->23->1095",
7645 + "default.handlebars->23->1102",
7646 "default-mobile.handlebars->9->323"
7647 ]
7648 },
@@ -7649,7 +7653,7 @@
7653 "cs": "Pouze omezený vstup",
7654 "nl": "Alleen beperkte invoer",
7655 "xloc": [
7652 - "default.handlebars->23->1068",
7656 + "default.handlebars->23->1072",
7657 "default-mobile.handlebars->9->298"
7658 ]
7659 },
@@ -7662,7 +7666,7 @@
7666 "nl": "Link",
7667 "xloc": [
7668 "default.handlebars->container->column_l->p42->p42tbl->1->0->4",
7665 - "default.handlebars->23->1126",
7669 + "default.handlebars->23->1133",
7670 "default-mobile.handlebars->9->68"
7671 ]
7672 },
@@ -7933,7 +7937,7 @@
7937 "ja": "アカウントをロック",
7938 "nl": "Account vergrendelen",
7939 "xloc": [
7936 - "default.handlebars->23->1234"
7940 + "default.handlebars->23->1241"
7941 ]
7942 },
7943 {
@@ -7944,7 +7948,7 @@
7948 "ja": "ロック済み",
7949 "nl": "Vergrendeld",
7950 "xloc": [
7947 - "default.handlebars->23->1184"
7951 + "default.handlebars->23->1191"
7952 ]
7953 },
7954 {
@@ -7955,7 +7959,7 @@
7959 "cs": "Uzamknutý účet",
7960 "nl": "Vergrendeld account",
7961 "xloc": [
7958 - "default.handlebars->23->1269"
7962 + "default.handlebars->23->1290"
7963 ]
7964 },
7965 {
@@ -8111,7 +8115,7 @@
8115 "cs": "Zprávy hlavního serveru",
8116 "nl": "Hoofdserver berichten",
8117 "xloc": [
8114 - "default.handlebars->23->1394"
8118 + "default.handlebars->23->1415"
8119 ]
8120 },
8121 {
@@ -8184,8 +8188,8 @@
8188 "ja": "デバイスグループコンピューターの管理",
8189 "nl": "Beheer apparaatgroep computers",
8190 "xloc": [
8187 - "default.handlebars->23->1065",
8188 - "default.handlebars->23->1085",
8191 + "default.handlebars->23->1069",
8192 + "default.handlebars->23->1092",
8193 "default-mobile.handlebars->9->295",
8194 "default-mobile.handlebars->9->313"
8195 ]
@@ -8197,8 +8201,8 @@
8201 "ja": "デバイスグループユーザーの管理",
8202 "nl": "Beheer apparaatgroep gebruikers",
8203 "xloc": [
8200 - "default.handlebars->23->1064",
8201 - "default.handlebars->23->1084",
8204 + "default.handlebars->23->1068",
8205 + "default.handlebars->23->1091",
8206 "default-mobile.handlebars->9->294",
8207 "default-mobile.handlebars->9->312"
8208 ]
@@ -8231,7 +8235,7 @@
8235 "ja": "ユーザーを管理する",
8236 "nl": "Beheer gebruikers",
8237 "xloc": [
8234 - "default.handlebars->23->1232"
8238 + "default.handlebars->23->1239"
8239 ]
8240 },
8241 {
@@ -8264,7 +8268,7 @@
8268 "cs": "Vedoucí",
8269 "nl": "Beheerder",
8270 "xloc": [
8267 - "default.handlebars->23->1189"
8271 + "default.handlebars->23->1196"
8272 ]
8273 },
8274 {
@@ -8355,7 +8359,7 @@
8359 "ja": "メガバイト",
8360 "nl": "Megabytes",
8361 "xloc": [
8358 - "default.handlebars->23->1384"
8362 + "default.handlebars->23->1405"
8363 ]
8364 },
8365 {
@@ -8368,7 +8372,7 @@
8372 "xloc": [
8373 "default.handlebars->container->column_l->p40->3->1->p40type->3",
8374 "default.handlebars->23->75",
8371 - "default.handlebars->23->1375"
8375 + "default.handlebars->23->1396"
8376 ]
8377 },
8378 {
@@ -8395,7 +8399,7 @@
8399 "ja": "メッシュエージェントコンソール",
8400 "nl": "Mesh Agent Console",
8401 "xloc": [
8398 - "default.handlebars->23->1072",
8402 + "default.handlebars->23->1076",
8403 "default-mobile.handlebars->9->302"
8404 ]
8405 },
@@ -8439,7 +8443,7 @@
8443 "cs": "MeshAgent provoz",
8444 "nl": "MeshAgent verkeer",
8445 "xloc": [
8442 - "default.handlebars->23->1396"
8446 + "default.handlebars->23->1417"
8447 ]
8448 },
8449 {
@@ -8448,7 +8452,7 @@
8452 "cs": "MeshAgent aktualizace",
8453 "nl": "MeshAgent update",
8454 "xloc": [
8451 - "default.handlebars->23->1397"
8455 + "default.handlebars->23->1418"
8456 ]
8457 },
8458 {
@@ -8509,7 +8513,7 @@
8513 "cs": "MeshCentral Server Peering",
8514 "nl": "MeshCentral Server Peering",
8515 "xloc": [
8512 - "default.handlebars->23->1395"
8516 + "default.handlebars->23->1416"
8517 ]
8518 },
8519 {
@@ -8594,7 +8598,7 @@
8598 "cs": "Odesílatel",
8599 "nl": "Bericht Dispatcher",
8600 "xloc": [
8597 - "default.handlebars->23->1393"
8601 + "default.handlebars->23->1414"
8602 ]
8603 },
8604 {
@@ -8667,7 +8671,7 @@
8671 "ja": "もっと",
8672 "nl": "Meer",
8673 "xloc": [
8670 - "default.handlebars->23->1416"
8674 + "default.handlebars->23->1437"
8675 ]
8676 },
8677 {
@@ -8688,7 +8692,7 @@
8692 "cs": "přesun",
8693 "nl": "verplaatsen",
8694 "xloc": [
8691 - "default.handlebars->23->1156",
8695 + "default.handlebars->23->1163",
8696 "default-mobile.handlebars->9->90"
8697 ]
8698 },
@@ -8980,14 +8984,14 @@
8984 "default.handlebars->23->592",
8985 "default.handlebars->23->930",
8986 "default.handlebars->23->957",
8983 - "default.handlebars->23->1040",
8984 - "default.handlebars->23->1171",
8985 - "default.handlebars->23->1212",
8986 - "default.handlebars->23->1238",
8987 - "default.handlebars->23->1241",
8987 + "default.handlebars->23->1041",
8988 + "default.handlebars->23->1178",
8989 + "default.handlebars->23->1219",
8990 "default.handlebars->23->1245",
8989 - "default.handlebars->23->1247",
8990 - "default.handlebars->23->1257",
8991 + "default.handlebars->23->1249",
8992 + "default.handlebars->23->1253",
8993 + "default.handlebars->23->1255",
8994 + "default.handlebars->23->1278",
8995 "default-mobile.handlebars->container->page_content->column_l->p10->p10desktop->deskarea3->deskarea3x->DeskTools->5->1->1",
8996 "default-mobile.handlebars->9->56",
8997 "default-mobile.handlebars->9->135",
@@ -9014,7 +9018,7 @@
9018 "cs": "Jméno1, Jméno2, Jméno3",
9019 "nl": "Naam1, Naam2, Naam3",
9020 "xloc": [
9017 - "default.handlebars->23->1225"
9021 + "default.handlebars->23->1232"
9022 ]
9023 },
9024 {
@@ -9120,7 +9124,7 @@
9124 "default.handlebars->container->column_l->p5->p5toolbar->1->0->p5filehead->3",
9125 "default.handlebars->container->column_l->p13->p13toolbar->1->2->1->3",
9126 "default.handlebars->23->630",
9123 - "default.handlebars->23->1144",
9127 + "default.handlebars->23->1151",
9128 "default-mobile.handlebars->9->79",
9129 "default-mobile.handlebars->9->247"
9130 ]
@@ -9251,8 +9255,8 @@
9255 "nl": "Geen gebeurtenissen gevonden",
9256 "xloc": [
9257 "default.handlebars->23->664",
9254 - "default.handlebars->23->1161",
9255 - "default.handlebars->23->1341"
9258 + "default.handlebars->23->1168",
9259 + "default.handlebars->23->1362"
9260 ]
9261 },
9262 {
@@ -9263,7 +9267,7 @@
9267 "cs": "Žádný přístup k souborům",
9268 "nl": "Geen bestandstoegang",
9269 "xloc": [
9266 - "default.handlebars->23->1070",
9270 + "default.handlebars->23->1074",
9271 "default-mobile.handlebars->9->300"
9272 ]
9273 },
@@ -9275,7 +9279,7 @@
9279 "cs": "Žádné soubory",
9280 "nl": "Geen bestanden",
9281 "xloc": [
9278 - "default.handlebars->23->1093",
9282 + "default.handlebars->23->1100",
9283 "default-mobile.handlebars->9->321"
9284 ]
9285 },
@@ -9296,8 +9300,8 @@
9300 "cs": "Žádné Intel® AMT",
9301 "nl": "Geen Intel® AMT",
9302 "xloc": [
9299 - "default.handlebars->23->1071",
9300 - "default.handlebars->23->1094",
9303 + "default.handlebars->23->1075",
9304 + "default.handlebars->23->1101",
9305 "default-mobile.handlebars->9->301",
9306 "default-mobile.handlebars->9->322"
9307 ]
@@ -9359,7 +9363,7 @@
9363 "cs": "Žádná nová skupina zařízení",
9364 "nl": "Geen nieuwe apparaatgroepen",
9365 "xloc": [
9362 - "default.handlebars->23->1235"
9366 + "default.handlebars->23->1242"
9367 ]
9368 },
9369 {
@@ -9389,8 +9393,8 @@
9393 "nl": "Geen beleid",
9394 "xloc": [
9395 "default.handlebars->23->982",
9392 - "default.handlebars->23->1012",
9393 - "default.handlebars->23->1015"
9396 + "default.handlebars->23->1013",
9397 + "default.handlebars->23->1016"
9398 ]
9399 },
9400 {
@@ -9401,9 +9405,10 @@
9405 "nl": "Geen rechten",
9406 "xloc": [
9407 "default.handlebars->23->944",
9404 - "default.handlebars->23->1006",
9405 - "default.handlebars->23->1099",
9406 - "default.handlebars->23->1324",
9408 + "default.handlebars->23->1007",
9409 + "default.handlebars->23->1106",
9410 + "default.handlebars->23->1271",
9411 + "default.handlebars->23->1345",
9412 "default-mobile.handlebars->9->65",
9413 "default-mobile.handlebars->9->284",
9414 "default-mobile.handlebars->9->327"
@@ -9416,7 +9421,7 @@
9421 "cs": "Žádná práva k serveru",
9422 "nl": "Geen server rechten",
9423 "xloc": [
9419 - "default.handlebars->23->1270"
9424 + "default.handlebars->23->1291"
9425 ]
9426 },
9427 {
@@ -9426,7 +9431,7 @@
9431 "ja": "ターミナルなし",
9432 "nl": "Geen terminal",
9433 "xloc": [
9429 - "default.handlebars->23->1092",
9434 + "default.handlebars->23->1099",
9435 "default-mobile.handlebars->9->320"
9436 ]
9437 },
@@ -9437,7 +9442,7 @@
9442 "cs": "Žádný přístup k terminálu",
9443 "nl": "Geen terminal toegang",
9444 "xloc": [
9440 - "default.handlebars->23->1069",
9445 + "default.handlebars->23->1073",
9446 "default-mobile.handlebars->9->299"
9447 ]
9448 },
@@ -9461,7 +9466,7 @@
9466 "ja": "ツールなし(MeshCmd / Router)",
9467 "nl": "Geen Tools (MeshCmd/Router)",
9468 "xloc": [
9464 - "default.handlebars->23->1236"
9469 + "default.handlebars->23->1243"
9470 ]
9471 },
9472 {
@@ -9471,7 +9476,7 @@
9476 "ja": "ユーザが見つかりませんでした。",
9477 "nl": "Geen gebruikers gevonden",
9478 "xloc": [
9474 - "default.handlebars->23->1179"
9479 + "default.handlebars->23->1186"
9480 ]
9481 },
9482 {
@@ -9516,11 +9521,11 @@
9521 "default.handlebars->23->963",
9522 "default.handlebars->23->975",
9523 "default.handlebars->23->980",
9519 - "default.handlebars->23->1132",
9520 - "default.handlebars->23->1244",
9521 - "default.handlebars->23->1289",
9522 - "default.handlebars->23->1293",
9523 - "default-mobile.handlebars->9->75",
9524 + "default.handlebars->23->1139",
9525 + "default.handlebars->23->1252",
9526 + "default.handlebars->23->1310",
9527 + "default.handlebars->23->1314",
9528 + "default-mobile.handlebars->9->75",
9529 "default-mobile.handlebars->9->93",
9530 "default-mobile.handlebars->9->95",
9531 "default-mobile.handlebars->9->133",
@@ -9604,7 +9609,7 @@
9609 "ja": "設定されていません",
9610 "nl": "Niet ingesteld",
9611 "xloc": [
9607 - "default.handlebars->23->1275"
9612 + "default.handlebars->23->1296"
9613 ]
9614 },
9615 {
@@ -9618,7 +9623,7 @@
9623 "default.handlebars->23->486",
9624 "default.handlebars->23->519",
9625 "default.handlebars->23->988",
9621 - "default.handlebars->23->1300"
9626 + "default.handlebars->23->1321"
9627 ]
9628 },
9629 {
@@ -9639,7 +9644,7 @@
9644 "xloc": [
9645 "default.handlebars->container->column_l->p2->p2AccountActions->3->8",
9646 "default.handlebars->23->905",
9642 - "default.handlebars->23->1111"
9647 + "default.handlebars->23->1118"
9648 ]
9649 },
9650 {
@@ -9669,7 +9674,7 @@
9674 "cs": "Upozornit",
9675 "nl": "Melden",
9676 "xloc": [
9672 - "default.handlebars->23->1302"
9677 + "default.handlebars->23->1323"
9678 ]
9679 },
9680 {
@@ -9680,9 +9685,9 @@
9685 "cs": "Upozornit uživatele",
9686 "nl": "Gebruiker informeren",
9687 "xloc": [
9683 - "default.handlebars->23->1044",
9684 - "default.handlebars->23->1048",
9685 - "default.handlebars->23->1051"
9688 + "default.handlebars->23->1045",
9689 + "default.handlebars->23->1049",
9690 + "default.handlebars->23->1052"
9691 ]
9692 },
9693 {
@@ -9692,7 +9697,7 @@
9697 "cs": "Upozornit {0}",
9698 "nl": "Melden {0}",
9699 "xloc": [
9695 - "default.handlebars->23->1191"
9700 + "default.handlebars->23->1198"
9701 ]
9702 },
9703 {
@@ -9713,7 +9718,7 @@
9718 "cs": "Nastalo na {0}",
9719 "nl": "Heeft plaatsgevonden op {0}",
9720 "xloc": [
9716 - "default.handlebars->23->1344"
9721 + "default.handlebars->23->1365"
9722 ]
9723 },
9724 {
@@ -9724,7 +9729,7 @@
9729 "cs": "Nepřipojení uživatelé",
9730 "nl": "Offline gebruikers",
9731 "xloc": [
9727 - "default.handlebars->23->1176"
9732 + "default.handlebars->23->1183"
9733 ]
9734 },
9735 {
@@ -9775,7 +9780,7 @@
9780 "ja": "オンラインユーザー",
9781 "nl": "Online gebruikers",
9782 "xloc": [
9778 - "default.handlebars->23->1175"
9783 + "default.handlebars->23->1182"
9784 ]
9785 },
9786 {
@@ -9968,7 +9973,7 @@
9973 "cs": "Částečné",
9974 "nl": "Gedeeltelijk",
9975 "xloc": [
9971 - "default.handlebars->23->1190"
9976 + "default.handlebars->23->1197"
9977 ]
9978 },
9979 {
@@ -9990,7 +9995,7 @@
9995 "cs": "Částečná práva",
9996 "nl": "Gedeeltelijke rechten",
9997 "xloc": [
9993 - "default.handlebars->23->1273"
9998 + "default.handlebars->23->1294"
9999 ]
10000 },
10001 {
@@ -10014,12 +10019,12 @@
10019 "default.handlebars->23->243",
10020 "default.handlebars->23->272",
10021 "default.handlebars->23->536",
10017 - "default.handlebars->23->1214",
10018 - "default.handlebars->23->1215",
10019 - "default.handlebars->23->1285",
10020 - "default.handlebars->23->1287",
10021 - "default.handlebars->23->1311",
10022 - "default.handlebars->23->1312",
10022 + "default.handlebars->23->1221",
10023 + "default.handlebars->23->1222",
10024 + "default.handlebars->23->1306",
10025 + "default.handlebars->23->1308",
10026 + "default.handlebars->23->1332",
10027 + "default.handlebars->23->1333",
10028 "default-mobile.handlebars->9->213"
10029 ]
10030 },
@@ -10041,7 +10046,7 @@
10046 "cs": "Nápověda k heslu",
10047 "nl": "wachtwoord hint",
10048 "xloc": [
10044 - "default.handlebars->23->1313"
10049 + "default.handlebars->23->1334"
10050 ]
10051 },
10052 {
@@ -10085,7 +10090,7 @@
10090 "cs": "Zadání hesla se neshodují",
10091 "nl": "Wachtwoord komt niet overeen",
10092 "xloc": [
10088 - "default.handlebars->23->1021"
10093 + "default.handlebars->23->1022"
10094 ]
10095 },
10096 {
@@ -10121,8 +10126,8 @@
10126 "ja": "パスワード*",
10127 "nl": "Wachtwoord*",
10128 "xloc": [
10124 - "default.handlebars->23->1019",
10125 - "default.handlebars->23->1020"
10129 + "default.handlebars->23->1020",
10130 + "default.handlebars->23->1021"
10131 ]
10132 },
10133 {
@@ -10162,7 +10167,7 @@
10167 "default.handlebars->container->column_l->p13->p13toolbar->1->2->1->3",
10168 "default.handlebars->23->621",
10169 "default.handlebars->23->643",
10165 - "default.handlebars->23->1153",
10170 + "default.handlebars->23->1160",
10171 "default-mobile.handlebars->container->page_content->column_l->p5->p5myfiles->p5toolbar->1->0->1->3",
10172 "default-mobile.handlebars->container->page_content->column_l->p10->p10files->p13toolbar->1->2->1->3",
10173 "default-mobile.handlebars->9->87",
@@ -10220,7 +10225,7 @@
10225 "nl": "Voer Intel AMT admin control mode (ACM) activering uit.",
10226 "xloc": [
10227 "default.handlebars->23->231",
10223 - "default.handlebars->23->997"
10228 + "default.handlebars->23->998"
10229 ]
10230 },
10231 {
@@ -10241,7 +10246,7 @@
10246 "nl": "Voer Intel AMT client control mode (CCM) activering uit.",
10247 "xloc": [
10248 "default.handlebars->23->229",
10244 - "default.handlebars->23->995"
10249 + "default.handlebars->23->996"
10250 ]
10251 },
10252 {
@@ -10266,8 +10271,8 @@
10271 "ja": "許可",
10272 "nl": "machtigingen",
10273 "xloc": [
10269 - "default.handlebars->23->1102",
10270 - "default.handlebars->23->1174",
10274 + "default.handlebars->23->1109",
10275 + "default.handlebars->23->1181",
10276 "default-mobile.handlebars->9->329"
10277 ]
10278 },
@@ -10363,7 +10368,7 @@
10368 "nl": "Plugin Actie",
10369 "xloc": [
10370 "default.handlebars->23->177",
10366 - "default.handlebars->23->1413"
10371 + "default.handlebars->23->1434"
10372 ]
10373 },
10374 {
@@ -10586,9 +10591,9 @@
10591 "cs": "Výzva k souhlasu uživatele",
10592 "nl": "Vraag gebruikerstoestemming",
10593 "xloc": [
10589 - "default.handlebars->23->1045",
10590 - "default.handlebars->23->1049",
10591 - "default.handlebars->23->1052"
10594 + "default.handlebars->23->1046",
10595 + "default.handlebars->23->1050",
10596 + "default.handlebars->23->1053"
10597 ]
10598 },
10599 {
@@ -10610,7 +10615,7 @@
10615 "ja": "公開リンク",
10616 "nl": "Publieke link",
10617 "xloc": [
10613 - "default.handlebars->23->1139",
10618 + "default.handlebars->23->1146",
10619 "default-mobile.handlebars->9->74"
10620 ]
10621 },
@@ -10684,7 +10689,7 @@
10689 "cs": "Náhodné heslo",
10690 "nl": "Randomiseer het wachtwoord.",
10691 "xloc": [
10687 - "default.handlebars->23->1216"
10692 + "default.handlebars->23->1223"
10693 ]
10694 },
10695 {
@@ -10738,7 +10743,7 @@
10743 "cs": "Znovu aktivovat Intel® AMT",
10744 "nl": "Heractiveer Intel® AMT",
10745 "xloc": [
10741 - "default.handlebars->23->1023"
10746 + "default.handlebars->23->1024"
10747 ]
10748 },
10749 {
@@ -10748,7 +10753,7 @@
10753 "cs": "Oblasti",
10754 "nl": "Realms",
10755 "xloc": [
10751 - "default.handlebars->23->1224"
10756 + "default.handlebars->23->1231"
10757 ]
10758 },
10759 {
@@ -10760,7 +10765,7 @@
10765 "nl": "Recursieve verwijdering",
10766 "xloc": [
10767 "default.handlebars->23->631",
10763 - "default.handlebars->23->1145",
10768 + "default.handlebars->23->1152",
10769 "default-mobile.handlebars->9->80",
10770 "default-mobile.handlebars->9->248"
10771 ]
@@ -10823,8 +10828,8 @@
10828 "cs": "Předávané relace",
10829 "nl": "Relay Sessies",
10830 "xloc": [
10826 - "default.handlebars->23->1369",
10827 - "default.handlebars->23->1382"
10831 + "default.handlebars->23->1390",
10832 + "default.handlebars->23->1403"
10833 ]
10834 },
10835 {
@@ -10901,8 +10906,8 @@
10906 "cs": "Ovládání na dálku",
10907 "nl": "Extern beheer",
10908 "xloc": [
10904 - "default.handlebars->23->1066",
10905 - "default.handlebars->23->1086",
10909 + "default.handlebars->23->1070",
10910 + "default.handlebars->23->1093",
10911 "default-mobile.handlebars->9->296",
10912 "default-mobile.handlebars->9->314"
10913 ]
@@ -10938,7 +10943,7 @@
10943 "cs": "Vzdálený uživatel",
10944 "nl": "externe Mesh gebruiker",
10945 "xloc": [
10941 - "default.handlebars->23->1105",
10946 + "default.handlebars->23->1112",
10947 "default-mobile.handlebars->9->332"
10948 ]
10949 },
@@ -10949,8 +10954,8 @@
10954 "cs": "Pouze prohlížení na dálku",
10955 "nl": "Alleen extern meekijken",
10956 "xloc": [
10952 - "default.handlebars->23->1067",
10953 - "default.handlebars->23->1091",
10957 + "default.handlebars->23->1071",
10958 + "default.handlebars->23->1098",
10959 "default-mobile.handlebars->9->297",
10960 "default-mobile.handlebars->9->319"
10961 ]
@@ -10973,7 +10978,7 @@
10978 "cs": "Odstranit celé 2-faktorové ověřování.",
10979 "nl": "Verwijder alle Tweestapsverificatie.",
10980 "xloc": [
10976 - "default.handlebars->23->1316"
10981 + "default.handlebars->23->1337"
10982 ]
10983 },
10984 {
@@ -11005,9 +11010,9 @@
11010 "cs": "Odstranit uživatelská práva pro tuto skupinu zařízení",
11011 "nl": "Gebruikersrechten voor deze apparaatgroep verwijderen",
11012 "xloc": [
11008 - "default.handlebars->23->1007",
11009 - "default.handlebars->23->1253",
11010 - "default.handlebars->23->1325"
11013 + "default.handlebars->23->1008",
11014 + "default.handlebars->23->1263",
11015 + "default.handlebars->23->1346"
11016 ]
11017 },
11018 {
@@ -11021,7 +11026,7 @@
11026 "default.handlebars->container->column_l->p5->p5toolbar->1->0->p5filehead->3",
11027 "default.handlebars->container->column_l->p13->p13toolbar->1->2->1->3",
11028 "default.handlebars->23->635",
11024 - "default.handlebars->23->1149",
11029 + "default.handlebars->23->1156",
11030 "default-mobile.handlebars->container->page_content->column_l->p5->p5myfiles->p5toolbar->1->0->1->1",
11031 "default-mobile.handlebars->container->page_content->column_l->p10->p10files->p13toolbar->1->2->1->1",
11032 "default-mobile.handlebars->9->84",
@@ -11047,8 +11052,8 @@
11052 "cs": "Požadavky: {0}.",
11053 "nl": "Vereisten: {0}.",
11054 "xloc": [
11050 - "default.handlebars->23->1221",
11051 - "default.handlebars->23->1314",
11055 + "default.handlebars->23->1228",
11056 + "default.handlebars->23->1335",
11057 "default-mobile.handlebars->9->48"
11058 ]
11059 },
@@ -11198,7 +11203,7 @@
11203 "ja": "制限事項",
11204 "nl": "Beperkingen",
11205 "xloc": [
11201 - "default.handlebars->23->1274"
11206 + "default.handlebars->23->1295"
11207 ]
11208 },
11209 {
@@ -11266,7 +11271,7 @@
11271 "nl": "Root",
11272 "xloc": [
11273 "default.handlebars->23->625",
11269 - "default.handlebars->23->1124",
11274 + "default.handlebars->23->1131",
11275 "default-mobile.handlebars->9->66",
11276 "default-mobile.handlebars->9->242"
11277 ]
@@ -11553,7 +11558,7 @@
11558 "xloc": [
11559 "default.handlebars->23->244",
11560 "default.handlebars->23->537",
11556 - "default.handlebars->23->1298",
11561 + "default.handlebars->23->1319",
11562 "default-mobile.handlebars->9->214"
11563 ]
11564 },
@@ -11565,7 +11570,7 @@
11570 "cs": "Bezpečnostní klíč",
11571 "nl": "Veiligheidssleutel",
11572 "xloc": [
11568 - "default.handlebars->23->1296"
11573 + "default.handlebars->23->1317"
11574 ]
11575 },
11576 {
@@ -11613,7 +11618,7 @@
11618 "default.handlebars->23->382",
11619 "default.handlebars->23->627",
11620 "default.handlebars->23->629",
11616 - "default.handlebars->23->1141"
11621 + "default.handlebars->23->1148"
11622 ]
11623 },
11624 {
@@ -11648,7 +11653,7 @@
11653 "default.handlebars->meshContextMenu->cxselectnone",
11654 "default.handlebars->23->381",
11655 "default.handlebars->23->628",
11651 - "default.handlebars->23->1140"
11656 + "default.handlebars->23->1147"
11657 ]
11658 },
11659 {
@@ -11670,7 +11675,7 @@
11675 "cs": "Pouze vlastní události",
11676 "nl": "Alleen eigen gebeurtenissen",
11677 "xloc": [
11673 - "default.handlebars->23->1096",
11678 + "default.handlebars->23->1103",
11679 "default-mobile.handlebars->9->324"
11680 ]
11681 },
@@ -11695,7 +11700,7 @@
11700 "cs": "Poslat tomuto uživateli textové upozornění.",
11701 "nl": "Stuur een tekstbericht naar deze gebruiker.",
11702 "xloc": [
11698 - "default.handlebars->23->1192"
11703 + "default.handlebars->23->1199"
11704 ]
11705 },
11706 {
@@ -11717,7 +11722,7 @@
11722 "ja": "招待メールを送信します。",
11723 "nl": "Verzend uitnodigingsmail.",
11724 "xloc": [
11720 - "default.handlebars->23->1220"
11725 + "default.handlebars->23->1227"
11726 ]
11727 },
11728 {
@@ -11761,7 +11766,7 @@
11766 "cs": "Poslat upozornění uživateli",
11767 "nl": "Stuur gebruikersmelding",
11768 "xloc": [
11764 - "default.handlebars->23->1303"
11769 + "default.handlebars->23->1324"
11770 ]
11771 },
11772 {
@@ -11801,7 +11806,7 @@
11806 "cs": "Záloha serveru",
11807 "nl": "Server Back-up",
11808 "xloc": [
11804 - "default.handlebars->23->1229"
11809 + "default.handlebars->23->1236"
11810 ]
11811 },
11812 {
@@ -11810,7 +11815,7 @@
11815 "cs": "Certifikát serveru",
11816 "nl": "Server Certificaat",
11817 "xloc": [
11813 - "default.handlebars->23->1398"
11818 + "default.handlebars->23->1419"
11819 ]
11820 },
11821 {
@@ -11841,9 +11846,9 @@
11846 "cs": "Soubory serveru",
11847 "nl": "Serverbestanden",
11848 "xloc": [
11844 - "default.handlebars->23->1073",
11845 - "default.handlebars->23->1088",
11846 - "default.handlebars->23->1227",
11849 + "default.handlebars->23->1077",
11850 + "default.handlebars->23->1095",
11851 + "default.handlebars->23->1234",
11852 "default-mobile.handlebars->9->303",
11853 "default-mobile.handlebars->9->316"
11854 ]
@@ -11877,8 +11882,8 @@
11882 "cs": "Oprávnění serveru",
11883 "nl": "Serverrechten",
11884 "xloc": [
11880 - "default.handlebars->23->1185",
11881 - "default.handlebars->23->1237"
11885 + "default.handlebars->23->1192",
11886 + "default.handlebars->23->1244"
11887 ]
11888 },
11889 {
@@ -11888,7 +11893,7 @@
11893 "cs": "Kvóta serveru",
11894 "nl": "Serverquotum",
11895 "xloc": [
11891 - "default.handlebars->23->1282"
11896 + "default.handlebars->23->1303"
11897 ]
11898 },
11899 {
@@ -11898,7 +11903,7 @@
11903 "cs": "Obnova serveru",
11904 "nl": "Server herstellen",
11905 "xloc": [
11901 - "default.handlebars->23->1230"
11906 + "default.handlebars->23->1237"
11907 ]
11908 },
11909 {
@@ -11909,7 +11914,7 @@
11914 "cs": "Práva serveru",
11915 "nl": "Serverrechten",
11916 "xloc": [
11912 - "default.handlebars->23->1281"
11917 + "default.handlebars->23->1302"
11918 ]
11919 },
11920 {
@@ -11931,7 +11936,7 @@
11936 "cs": "Trasování serveru",
11937 "nl": "Server traceren",
11938 "xloc": [
11934 - "default.handlebars->23->1407"
11939 + "default.handlebars->23->1428"
11940 ]
11941 },
11942 {
@@ -11942,7 +11947,7 @@
11947 "cs": "Aktualizace serveru",
11948 "nl": "Serverupdates",
11949 "xloc": [
11945 - "default.handlebars->23->1231"
11950 + "default.handlebars->23->1238"
11951 ]
11952 },
11953 {
@@ -11972,7 +11977,7 @@
11977 "cs": "ServerStats.csv",
11978 "nl": "ServerStats.csv",
11979 "xloc": [
11975 - "default.handlebars->23->1390"
11980 + "default.handlebars->23->1411"
11981 ]
11982 },
11983 {
@@ -11982,7 +11987,7 @@
11987 "cs": "servertrace.csv",
11988 "nl": "servertrace.csv",
11989 "xloc": [
11985 - "default.handlebars->23->1409"
11990 + "default.handlebars->23->1430"
11991 ]
11992 },
11993 {
@@ -12151,7 +12156,7 @@
12156 "cs": "Zobrazit panel nástrojů připojení",
12157 "nl": "Toon verbindingswerkbalk",
12158 "xloc": [
12154 - "default.handlebars->23->1046"
12159 + "default.handlebars->23->1047"
12160 ]
12161 },
12162 {
@@ -12225,7 +12230,7 @@
12230 "cs": "Zobrazit pouze vlastní události",
12231 "nl": "Toon alleen eigen gebeurtenissen",
12232 "xloc": [
12228 - "default.handlebars->23->1076",
12233 + "default.handlebars->23->1080",
12234 "default-mobile.handlebars->9->306"
12235 ]
12236 },
@@ -12248,7 +12253,7 @@
12253 "nl": "Simple Admin Control Mode (ACM)",
12254 "xloc": [
12255 "default.handlebars->23->985",
12251 - "default.handlebars->23->1010"
12256 + "default.handlebars->23->1011"
12257 ]
12258 },
12259 {
@@ -12259,8 +12264,8 @@
12264 "nl": "Simple Client Control Mode (CCM)",
12265 "xloc": [
12266 "default.handlebars->23->983",
12262 - "default.handlebars->23->1013",
12263 - "default.handlebars->23->1017"
12267 + "default.handlebars->23->1014",
12268 + "default.handlebars->23->1018"
12269 ]
12270 },
12271 {
@@ -12776,7 +12781,7 @@
12781 "nl": "Status",
12782 "xloc": [
12783 "default.handlebars->container->column_l->p42->p42tbl->1->0->7",
12779 - "default.handlebars->23->1309"
12784 + "default.handlebars->23->1330"
12785 ]
12786 },
12787 {
@@ -12819,7 +12824,7 @@
12824 "ja": "ストレージ制限を超えています",
12825 "nl": "Opslaglimiet overschreden",
12826 "xloc": [
12822 - "default.handlebars->23->1127"
12827 + "default.handlebars->23->1134"
12828 ]
12829 },
12830 {
@@ -12982,7 +12987,7 @@
12987 "default.handlebars->contextMenu->cxterminal",
12988 "default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevTerminal",
12989 "default.handlebars->23->410",
12985 - "default.handlebars->23->1047"
12990 + "default.handlebars->23->1048"
12991 ]
12992 },
12993 {
@@ -13107,7 +13112,7 @@
13112 "cs": "V tuto chvíli zde nejsou žádná upozornění",
13113 "nl": "Er zijn momenteel geen meldingen",
13114 "xloc": [
13110 - "default.handlebars->23->1343"
13115 + "default.handlebars->23->1364"
13116 ]
13117 },
13118 {
@@ -13149,7 +13154,7 @@
13154 "cs": "Toto není bezpečná zásada, protože aktivaci budou provádět agenti.",
13155 "nl": "Dit is geen veilig beleid omdat agenten activering zullen uitvoeren.",
13156 "xloc": [
13152 - "default.handlebars->23->1035"
13157 + "default.handlebars->23->1036"
13158 ]
13159 },
13160 {
@@ -13170,7 +13175,7 @@
13175 "cs": "Tato zásada nebude mít vliv na zařízení s Intel® AMT v ACM režimu.",
13176 "nl": "Dit beleid heeft geen invloed op apparaten met Intel® AMT ACM-modus",
13177 "xloc": [
13173 - "default.handlebars->23->1034"
13178 + "default.handlebars->23->1035"
13179 ]
13180 },
13181 {
@@ -13272,7 +13277,7 @@
13277 "cs": "time, conn.agent, conn.users, conn.usersessions, conn.relaysession, conn.intelamt, mem.external, mem.heapused, mem.heaptotal, mem.rss",
13278 "nl": "tijd, conn.agent, conn.gebruikers, conn.gebruikerssessies, conn.relaysessie, conn.intelamt, mem.extern, mem.heapused, mem.heaptotaal, mem.rss",
13279 "xloc": [
13275 - "default.handlebars->23->1389"
13280 + "default.handlebars->23->1410"
13281 ]
13282 },
13283 {
@@ -13282,7 +13287,7 @@
13287 "cs": "time, source, message",
13288 "nl": "tijd, bron, bericht",
13289 "xloc": [
13285 - "default.handlebars->23->1408"
13290 + "default.handlebars->23->1429"
13291 ]
13292 },
13293 {
@@ -13292,7 +13297,7 @@
13297 "cs": "time, type, action, user, message",
13298 "nl": "tijd, type, actie, gebruiker, bericht",
13299 "xloc": [
13295 - "default.handlebars->23->1168"
13300 + "default.handlebars->23->1175"
13301 ]
13302 },
13303 {
@@ -13580,7 +13585,7 @@
13585 "ja": "合計",
13586 "nl": "totaal",
13587 "xloc": [
13583 - "default.handlebars->23->1377"
13588 + "default.handlebars->23->1398"
13589 ]
13590 },
13591 {
@@ -13685,8 +13690,8 @@
13690 "default.handlebars->23->601",
13691 "default.handlebars->23->931",
13692 "default.handlebars->23->960",
13688 - "default.handlebars->23->1011",
13689 - "default.handlebars->23->1014",
13693 + "default.handlebars->23->1012",
13694 + "default.handlebars->23->1015",
13695 "default-mobile.handlebars->9->57",
13696 "default-mobile.handlebars->9->279"
13697 ]
@@ -13823,7 +13828,7 @@
13828 "cs": "Odinstalace",
13829 "nl": "deinstallatie",
13830 "xloc": [
13826 - "default.handlebars->23->1098",
13831 + "default.handlebars->23->1105",
13832 "default-mobile.handlebars->9->326"
13833 ]
13834 },
@@ -13835,7 +13840,7 @@
13840 "xloc": [
13841 "default.handlebars->23->384",
13842 "default.handlebars->23->529",
13838 - "default.handlebars->23->1078",
13843 + "default.handlebars->23->1082",
13844 "default-mobile.handlebars->9->308"
13845 ]
13846 },
@@ -13862,7 +13867,7 @@
13867 "default.handlebars->23->108",
13868 "default.handlebars->23->109",
13869 "default.handlebars->23->380",
13865 - "default.handlebars->23->1334",
13870 + "default.handlebars->23->1355",
13871 "default-mobile.handlebars->9->126",
13872 "default-mobile.handlebars->9->143",
13873 "default-mobile.handlebars->9->171",
@@ -13939,7 +13944,7 @@
13944 "cs": "Aktuální",
13945 "nl": "Bijgewerkt",
13946 "xloc": [
13942 - "default.handlebars->23->1412"
13947 + "default.handlebars->23->1433"
13948 ]
13949 },
13950 {
@@ -13987,8 +13992,8 @@
13992 "default.handlebars->23->636",
13993 "default.handlebars->23->659",
13994 "default.handlebars->23->662",
13990 - "default.handlebars->23->1150",
13991 - "default.handlebars->23->1158",
13995 + "default.handlebars->23->1157",
13996 + "default.handlebars->23->1165",
13997 "default-mobile.handlebars->9->85",
13998 "default-mobile.handlebars->9->253",
13999 "default-mobile.handlebars->9->271"
@@ -14070,8 +14075,8 @@
14075 "ja": "中古",
14076 "nl": "Gebruikt",
14077 "xloc": [
14073 - "default.handlebars->23->1345",
14074 - "default.handlebars->23->1347"
14078 + "default.handlebars->23->1366",
14079 + "default.handlebars->23->1368"
14080 ]
14081 },
14082 {
@@ -14083,9 +14088,9 @@
14088 "nl": "Gebruiker",
14089 "xloc": [
14090 "default.handlebars->23->200",
14086 - "default.handlebars->23->1008",
14087 - "default.handlebars->23->1186",
14088 - "default.handlebars->23->1254",
14091 + "default.handlebars->23->1009",
14092 + "default.handlebars->23->1193",
14093 + "default.handlebars->23->1264",
14094 "default-mobile.handlebars->9->328"
14095 ]
14096 },
@@ -14096,7 +14101,7 @@
14101 "ja": "ユーザー+ファイル",
14102 "nl": "Gebruiker + bestanden",
14103 "xloc": [
14099 - "default.handlebars->23->1187"
14104 + "default.handlebars->23->1194"
14105 ]
14106 },
14107 {
@@ -14106,10 +14111,10 @@
14111 "cs": "Import uživatelských účtů",
14112 "nl": "Gebruikersaccount importeren",
14113 "xloc": [
14109 - "default.handlebars->23->1194",
14110 - "default.handlebars->23->1195",
14111 - "default.handlebars->23->1197",
14112 - "default.handlebars->23->1199"
14114 + "default.handlebars->23->1201",
14115 + "default.handlebars->23->1202",
14116 + "default.handlebars->23->1204",
14117 + "default.handlebars->23->1206"
14118 ]
14119 },
14120 {
@@ -14119,7 +14124,7 @@
14124 "cs": "Uživatelská oprávnění",
14125 "nl": "Gebruikersautorisaties",
14126 "xloc": [
14122 - "default.handlebars->23->1003",
14127 + "default.handlebars->23->1004",
14128 "default-mobile.handlebars->9->281"
14129 ]
14130 },
@@ -14152,8 +14157,8 @@
14157 "cs": "Identifikátor uživatele",
14158 "nl": "gebruikersID",
14159 "xloc": [
14155 - "default.handlebars->23->1101",
14156 - "default.handlebars->23->1278"
14160 + "default.handlebars->23->1108",
14161 + "default.handlebars->23->1299"
14162 ]
14163 },
14164 {
@@ -14177,7 +14182,7 @@
14182 "cs": "Export seznamu uživatelů",
14183 "nl": "Gebruikerslijst exporteren",
14184 "xloc": [
14180 - "default.handlebars->23->1206"
14185 + "default.handlebars->23->1213"
14186 ]
14187 },
14188 {
@@ -14188,7 +14193,7 @@
14193 "ja": "ユーザー名",
14194 "nl": "Gebruikersnaam",
14195 "xloc": [
14191 - "default.handlebars->23->1100"
14196 + "default.handlebars->23->1107"
14197 ]
14198 },
14199 {
@@ -14199,8 +14204,8 @@
14204 "cs": "Uživatelská jména",
14205 "nl": "Gebruikersnamen",
14206 "xloc": [
14202 - "default.handlebars->23->1059",
14203 - "default.handlebars->23->1267"
14207 + "default.handlebars->23->1060",
14208 + "default.handlebars->23->1288"
14209 ]
14210 },
14211 {
@@ -14210,7 +14215,7 @@
14215 "cs": "Relace uživatele",
14216 "nl": "Gebruikerssessie",
14217 "xloc": [
14213 - "default.handlebars->23->1381"
14218 + "default.handlebars->23->1402"
14219 ]
14220 },
14221 {
@@ -14242,8 +14247,8 @@
14247 "cs": "userlist.csv",
14248 "nl": "userlist.csv",
14249 "xloc": [
14245 - "default.handlebars->23->1203",
14246 - "default.handlebars->23->1208"
14250 + "default.handlebars->23->1210",
14251 + "default.handlebars->23->1215"
14252 ]
14253 },
14254 {
@@ -14253,8 +14258,8 @@
14258 "cs": "userlist.json",
14259 "nl": "userlist.json",
14260 "xloc": [
14256 - "default.handlebars->23->1205",
14257 - "default.handlebars->23->1209"
14261 + "default.handlebars->23->1212",
14262 + "default.handlebars->23->1216"
14263 ]
14264 },
14265 {
@@ -14306,8 +14311,9 @@
14311 "nl": "Gebruikers",
14312 "xloc": [
14313 "default.handlebars->container->topbar->1->1->UsersSubMenuSpan->UsersSubMenu->1->0->UsersGeneral",
14309 - "default.handlebars->23->1239",
14310 - "default.handlebars->23->1380"
14314 + "default.handlebars->23->1247",
14315 + "default.handlebars->23->1257",
14316 + "default.handlebars->23->1401"
14317 ]
14318 },
14319 {
@@ -14441,7 +14447,7 @@
14447 "cs": "Zobrazit poznámky o tomto uživateli",
14448 "nl": "Bekijk opmerkingen over deze gebruiker",
14449 "xloc": [
14444 - "default.handlebars->23->1301"
14450 + "default.handlebars->23->1322"
14451 ]
14452 },
14453 {
@@ -14481,8 +14487,8 @@
14487 "cs": "Probudit zařízení",
14488 "nl": "apparaat wekken",
14489 "xloc": [
14484 - "default.handlebars->23->1074",
14485 - "default.handlebars->23->1089",
14490 + "default.handlebars->23->1078",
14491 + "default.handlebars->23->1096",
14492 "default-mobile.handlebars->9->304",
14493 "default-mobile.handlebars->9->317"
14494 ]
@@ -14561,8 +14567,8 @@
14567 "cs": "Webový server",
14568 "nl": "webserver",
14569 "xloc": [
14564 - "default.handlebars->23->1399",
14565 - "default.handlebars->23->1400"
14570 + "default.handlebars->23->1420",
14571 + "default.handlebars->23->1421"
14572 ]
14573 },
14574 {
@@ -14573,7 +14579,7 @@
14579 "cs": "Požadavky webového serveru",
14580 "nl": "Webserver Verzoeken",
14581 "xloc": [
14576 - "default.handlebars->23->1401"
14582 + "default.handlebars->23->1422"
14583 ]
14584 },
14585 {
@@ -14584,7 +14590,7 @@
14590 "cs": "Web Socket Relay",
14591 "nl": "Web Socket Relay",
14592 "xloc": [
14587 - "default.handlebars->23->1402"
14593 + "default.handlebars->23->1423"
14594 ]
14595 },
14596 {
@@ -14628,7 +14634,7 @@
14634 "ja": "次回ログイン時に変更されます。",
14635 "nl": "Wordt bij de volgende aanmelding gewijzigd.",
14636 "xloc": [
14631 - "default.handlebars->23->1286"
14637 + "default.handlebars->23->1307"
14638 ]
14639 },
14640 {
@@ -15031,7 +15037,7 @@
15037 "cs": "{0} aktivních spojení",
15038 "nl": "{0} actieve sessies",
15039 "xloc": [
15034 - "default.handlebars->23->1307"
15040 + "default.handlebars->23->1328"
15041 ]
15042 },
15043 {
@@ -15041,7 +15047,7 @@
15047 "cs": "{0} b",
15048 "nl": "{0} b",
15049 "xloc": [
15044 - "default.handlebars->23->1133"
15050 + "default.handlebars->23->1140"
15051 ]
15052 },
15053 {
@@ -15052,7 +15058,7 @@
15058 "ja": "{0}バイト",
15059 "nl": "{0} bytes",
15060 "xloc": [
15055 - "default.handlebars->23->1143",
15061 + "default.handlebars->23->1150",
15062 "default-mobile.handlebars->9->78"
15063 ]
15064 },
@@ -15064,7 +15070,7 @@
15070 "cs": "{0} bajtů zbývá",
15071 "nl": "{0} resterende bytes",
15072 "xloc": [
15067 - "default.handlebars->23->1128"
15073 + "default.handlebars->23->1135"
15074 ]
15075 },
15076 {
@@ -15074,7 +15080,7 @@
15080 "cs": "{0} Gb",
15081 "nl": "{0} Gb",
15082 "xloc": [
15077 - "default.handlebars->23->1136"
15083 + "default.handlebars->23->1143"
15084 ]
15085 },
15086 {
@@ -15084,7 +15090,7 @@
15090 "ja": "残り{0}ギガバイト",
15091 "nl": "{0} rsterende gigabytes",
15092 "xloc": [
15087 - "default.handlebars->23->1131"
15093 + "default.handlebars->23->1138"
15094 ]
15095 },
15096 {
@@ -15094,7 +15100,7 @@
15100 "cs": "{0} skupin",
15101 "nl": "{0} groepen",
15102 "xloc": [
15097 - "default.handlebars->23->1291"
15103 + "default.handlebars->23->1312"
15104 ]
15105 },
15106 {
@@ -15111,7 +15117,7 @@
15117 "cs": "{0} Kb",
15118 "nl": "{0} Kb",
15119 "xloc": [
15114 - "default.handlebars->23->1134"
15120 + "default.handlebars->23->1141"
15121 ]
15122 },
15123 {
@@ -15121,7 +15127,7 @@
15127 "ja": "残り{0}キロバイト",
15128 "nl": "{0} resterende kilobytes",
15129 "xloc": [
15124 - "default.handlebars->23->1129"
15130 + "default.handlebars->23->1136"
15131 ]
15132 },
15133 {
@@ -15142,7 +15148,7 @@
15148 "cs": "{0} Mb",
15149 "nl": "{0} Mb",
15150 "xloc": [
15145 - "default.handlebars->23->1135"
15151 + "default.handlebars->23->1142"
15152 ]
15153 },
15154 {
@@ -15162,7 +15168,7 @@
15168 "ja": "残り{0}メガバイト",
15169 "nl": "{0} resterende megabytes",
15170 "xloc": [
15165 - "default.handlebars->23->1130"
15171 + "default.handlebars->23->1137"
15172 ]
15173 },
15174 {
@@ -15179,7 +15185,7 @@
15185 "cs": "{0} dalších uživatelů není zobrazeno, vyhledejte je pomocí kolonky pro vyhledávání…",
15186 "nl": "{0} meer gebruikers niet getoond, gebruik zoekvak om gebruikers te zoeken ...",
15187 "xloc": [
15182 - "default.handlebars->23->1178"
15188 + "default.handlebars->23->1185"
15189 ]
15190 },
15191 {
@@ -15239,7 +15245,7 @@
15245 "cs": "{0} relací",
15246 "nl": "{0} sessies",
15247 "xloc": [
15242 - "default.handlebars->23->1182"
15248 + "default.handlebars->23->1189"
15249 ]
15250 },
15251 {
@@ -15310,7 +15316,7 @@
15316 "cs": "{0}k v 1 souboru. {1}k maximum",
15317 "nl": "{0}k in 1 bestand. {1}k maximum",
15318 "xloc": [
15313 - "default.handlebars->23->1138"
15319 + "default.handlebars->23->1145"
15320 ]
15321 },
15322 {
@@ -15320,7 +15326,7 @@
15326 "cs": "{0}k v {1} souborech. {2}k maximum",
15327 "nl": "{0}k in 1 file. {2}k maximum",
15328 "xloc": [
15323 - "default.handlebars->23->1137"
15329 + "default.handlebars->23->1144"
15330 ]
15331 },
15332 {
@@ -15483,7 +15489,7 @@
15489 "cs": "2-faktorové ověřování zapnuto",
15490 "nl": "Tweestapsverificatie ingeschakeld",
15491 "xloc": [
15486 - "default.handlebars->23->1299"
15492 + "default.handlebars->23->1320"
15493 ]
15494 },
15495 {
@@ -15492,7 +15498,7 @@
15498 "cs": "\\\\'",
15499 "nl": "\\\\'",
15500 "xloc": [
15495 - "default.handlebars->23->1410"
15501 + "default.handlebars->23->1431"
15502 ]
15503 },
15504 {
@@ -15534,7 +15540,7 @@
15540 "nl": "Power Status",
15541 "xloc": [
15542 "default.handlebars->container->column_l->p21->3->1->meshPowerChartDiv->1",
15537 - "default.handlebars->23->1116"
15543 + "default.handlebars->23->1123"
15544 ]
15545 },
15546 {
@@ -15543,7 +15549,7 @@
15549 "nl": "Agent Type",
15550 "xloc": [
15551 "default.handlebars->container->column_l->p21->3->1->meshOsChartDiv->1",
15546 - "default.handlebars->23->1117"
15552 + "default.handlebars->23->1124"
15553 ]
15554 },
15555 {
@@ -15625,16 +15631,16 @@
15631 "cs": "Nepřipojeno",
15632 "nl": "Niet verbonden",
15633 "xloc": [
15628 - "default.handlebars->23->1112",
15629 - "default.handlebars->23->1118"
15634 + "default.handlebars->23->1119",
15635 + "default.handlebars->23->1125"
15636 ]
15637 },
15638 {
15639 "en": "Agent + Intel AMT",
15640 "nl": "Agent + Intel AMT",
15641 "xloc": [
15636 - "default.handlebars->23->1115",
15637 - "default.handlebars->23->1121"
15642 + "default.handlebars->23->1122",
15643 + "default.handlebars->23->1128"
15644 ]
15645 },
15646 {
@@ -15642,7 +15648,7 @@
15648 "cs": "V této skupině nejsou žádná zařízení.",
15649 "nl": "Geen apparaten in deze apparaatgroep.",
15650 "xloc": [
15645 - "default.handlebars->23->1123"
15651 + "default.handlebars->23->1130"
15652 ]
15653 },
15654 {
@@ -15658,7 +15664,7 @@
15664 "cs": "Při odpojení zařízení odebrat",
15665 "nl": "Verwijder apparaat bij verbreken",
15666 "xloc": [
15661 - "default.handlebars->23->1054"
15667 + "default.handlebars->23->1055"
15668 ]
15669 },
15670 {
@@ -15666,7 +15672,7 @@
15672 "cs": "Synchronizovat název zařízení na serveru s názvem stroje",
15673 "nl": "Synchroniseer serverapparaatnaam met hostnaam",
15674 "xloc": [
15669 - "default.handlebars->23->1055"
15675 + "default.handlebars->23->1056"
15676 ]
15677 },
15678 {
@@ -15674,7 +15680,7 @@
15680 "cs": "Je třeba, aby nastavení upozorňování byla zapnutá také v nastavení účtu.",
15681 "nl": "Meldingsinstellingen moeten ook worden ingeschakeld in accountinstellingen.",
15682 "xloc": [
15677 - "default.handlebars->23->1107"
15683 + "default.handlebars->23->1114"
15684 ]
15685 },
15686 {
@@ -15683,7 +15689,7 @@
15689 "nl": "Groepen",
15690 "xloc": [
15691 "default.handlebars->container->topbar->1->1->UsersSubMenuSpan->UsersSubMenu->1->0->UsersGroups",
15686 - "default.handlebars->23->1172"
15692 + "default.handlebars->23->1179"
15693 ]
15694 },
15695 {
@@ -15691,7 +15697,7 @@
15697 "cs": "Smazat uživatele",
15698 "nl": "Verwijder gebruiker",
15699 "xloc": [
15694 - "default.handlebars->23->1304"
15700 + "default.handlebars->23->1325"
15701 ]
15702 },
15703 {
@@ -15704,7 +15710,7 @@
15710 "cs": "Vytížení procesoru",
15711 "nl": "CPU gebruik",
15712 "xloc": [
15707 - "default.handlebars->23->1371"
15713 + "default.handlebars->23->1392"
15714 ]
15715 },
15716 {
@@ -15712,14 +15718,14 @@
15718 "cs": "Stav serveru",
15719 "nl": "Server Status",
15720 "xloc": [
15715 - "default.handlebars->23->1349"
15721 + "default.handlebars->23->1370"
15722 ]
15723 },
15724 {
15725 "en": "Agent Error Counters",
15726 "cs": "Počitadla chyb agenta",
15727 "xloc": [
15722 - "default.handlebars->23->1350"
15728 + "default.handlebars->23->1371"
15729 ]
15730 },
15731 {
@@ -15727,7 +15733,7 @@
15733 "cs": "Neznámá skupina",
15734 "nl": "Onbekende groep",
15735 "xloc": [
15730 - "default.handlebars->23->1351"
15736 + "default.handlebars->23->1372"
15737 ]
15738 },
15739 {
@@ -15735,7 +15741,7 @@
15741 "cs": "Neplatný PKCS podpis",
15742 "nl": "Onjuiste PKCS handtekening",
15743 "xloc": [
15738 - "default.handlebars->23->1352"
15744 + "default.handlebars->23->1373"
15745 ]
15746 },
15747 {
@@ -15743,7 +15749,7 @@
15749 "cs": "Neplatný RSA podpis",
15750 "nl": "Ongeldige RSA handtekening",
15751 "xloc": [
15746 - "default.handlebars->23->1353"
15752 + "default.handlebars->23->1374"
15753 ]
15754 },
15755 {
@@ -15751,7 +15757,7 @@
15757 "cs": "Neplatný JSON",
15758 "nl": "Onjuiste JSON",
15759 "xloc": [
15754 - "default.handlebars->23->1354"
15760 + "default.handlebars->23->1375"
15761 ]
15762 },
15763 {
@@ -15759,7 +15765,7 @@
15765 "cs": "Neznámá akce",
15766 "nl": "Onbekende actie",
15767 "xloc": [
15762 - "default.handlebars->23->1355"
15768 + "default.handlebars->23->1376"
15769 ]
15770 },
15771 {
@@ -15767,7 +15773,7 @@
15773 "cs": "Nesprávný certifikát webu",
15774 "nl": "Onjuist webcertificaat",
15775 "xloc": [
15770 - "default.handlebars->23->1356"
15776 + "default.handlebars->23->1377"
15777 ]
15778 },
15779 {
@@ -15775,7 +15781,7 @@
15781 "cs": "Nesprávný podpis",
15782 "nl": "Ongeldige handtening",
15783 "xloc": [
15778 - "default.handlebars->23->1357"
15784 + "default.handlebars->23->1378"
15785 ]
15786 },
15787 {
@@ -15783,7 +15789,7 @@
15789 "cs": "Dosaženo maximálního počtu relací",
15790 "nl": "Max Sessies bereikt",
15791 "xloc": [
15786 - "default.handlebars->23->1358"
15792 + "default.handlebars->23->1379"
15793 ]
15794 },
15795 {
@@ -15791,8 +15797,9 @@
15797 "cs": "Neznámá skupina zařízení",
15798 "nl": "Onbekende apparaatgroep",
15799 "xloc": [
15794 - "default.handlebars->23->1322",
15795 - "default.handlebars->23->1359"
15800 + "default.handlebars->23->1269",
15801 + "default.handlebars->23->1343",
15802 + "default.handlebars->23->1380"
15803 ]
15804 },
15805 {
@@ -15800,7 +15807,7 @@
15807 "cs": "Neplatný typ skupiny zařízení",
15808 "nl": "Ongeldige apparaatgroep type",
15809 "xloc": [
15803 - "default.handlebars->23->1360"
15810 + "default.handlebars->23->1381"
15811 ]
15812 },
15813 {
@@ -15808,7 +15815,7 @@
15815 "cs": "Duplikovat agenta",
15816 "nl": "Duplicaat Agent",
15817 "xloc": [
15811 - "default.handlebars->23->1361"
15818 + "default.handlebars->23->1382"
15819 ]
15820 },
15821 {
@@ -15816,7 +15823,7 @@
15823 "cs": "Připojené Intel® AMT",
15824 "nl": "Verbonden Intel® AMT",
15825 "xloc": [
15819 - "default.handlebars->23->1362"
15826 + "default.handlebars->23->1383"
15827 ]
15828 },
15829 {
@@ -15824,7 +15831,7 @@
15831 "cs": "Chyby předávání (relay)",
15832 "nl": "Relay fouten",
15833 "xloc": [
15827 - "default.handlebars->23->1363"
15834 + "default.handlebars->23->1384"
15835 ]
15836 },
15837 {
@@ -15832,14 +15839,14 @@
15839 "cs": "Uživatelské účty",
15840 "nl": "Gebruikersaccounts",
15841 "xloc": [
15835 - "default.handlebars->23->1364"
15842 + "default.handlebars->23->1385"
15843 ]
15844 },
15845 {
15846 "en": "Agent Sessions",
15847 "cs": "Relace agenta",
15848 "xloc": [
15842 - "default.handlebars->23->1366"
15849 + "default.handlebars->23->1387"
15850 ]
15851 },
15852 {
@@ -15847,7 +15854,7 @@
15854 "cs": "Připojení",
15855 "nl": "Verbonden gebruikers",
15856 "xloc": [
15850 - "default.handlebars->23->1367"
15857 + "default.handlebars->23->1388"
15858 ]
15859 },
15860 {
@@ -15855,7 +15862,7 @@
15862 "cs": "Uživatelské relace",
15863 "nl": "gebruikers Sessies",
15864 "xloc": [
15858 - "default.handlebars->23->1368"
15865 + "default.handlebars->23->1389"
15866 ]
15867 },
15868 {
@@ -15904,28 +15911,28 @@
15911 "cs": "Externí",
15912 "nl": "Extern",
15913 "xloc": [
15907 - "default.handlebars->23->1385"
15914 + "default.handlebars->23->1406"
15915 ]
15916 },
15917 {
15918 "en": "Heap Used",
15919 "nl": "Heap gebruikt",
15920 "xloc": [
15914 - "default.handlebars->23->1386"
15921 + "default.handlebars->23->1407"
15922 ]
15923 },
15924 {
15925 "en": "Heap Total",
15926 "nl": "Heap Totaal",
15927 "xloc": [
15921 - "default.handlebars->23->1387"
15928 + "default.handlebars->23->1408"
15929 ]
15930 },
15931 {
15932 "en": "RSS",
15933 "nl": "RSS",
15934 "xloc": [
15928 - "default.handlebars->23->1388"
15935 + "default.handlebars->23->1409"
15936 ]
15937 },
15938 {
@@ -15946,14 +15953,14 @@
15953 "en": "Remove all previous events for this userid.",
15954 "cs": "Remove all previous events for this userid.",
15955 "xloc": [
15949 - "default.handlebars->23->1218"
15956 + "default.handlebars->23->1225"
15957 ]
15958 },
15959 {
15960 "en": "Relay Count",
15961 "cs": "Počet předávání (relay)",
15962 "xloc": [
15956 - "default.handlebars->23->1370"
15963 + "default.handlebars->23->1391"
15964 ]
15965 },
15966 {
@@ -15983,13 +15990,13 @@
15990 {
15991 "en": "Manage User Groups",
15992 "xloc": [
15986 - "default.handlebars->23->1233"
15993 + "default.handlebars->23->1240"
15994 ]
15995 },
15996 {
15997 "en": "Create User Group",
15998 "xloc": [
15992 - "default.handlebars->23->1243"
15999 + "default.handlebars->23->1251"
16000 ]
16001 },
16002 {
@@ -16001,56 +16008,56 @@
16008 {
16009 "en": "No groups found.",
16010 "xloc": [
16004 - "default.handlebars->23->1240"
16011 + "default.handlebars->23->1248"
16012 ]
16013 },
16014 {
16015 "en": "Send a notice to all users in this group.",
16016 "xloc": [
16010 - "default.handlebars->23->1250"
16017 + "default.handlebars->23->1260"
16018 ]
16019 },
16020 {
16021 "en": "Group Members",
16022 "xloc": [
16016 - "default.handlebars->23->1252"
16023 + "default.handlebars->23->1262"
16024 ]
16025 },
16026 {
16027 "en": "No Members",
16028 "xloc": [
16022 - "default.handlebars->23->1255"
16029 + "default.handlebars->23->1265"
16030 ]
16031 },
16032 {
16033 "en": "Delete User Group",
16034 "xloc": [
16028 - "default.handlebars->23->1256",
16029 - "default.handlebars->23->1262"
16035 + "default.handlebars->23->1275",
16036 + "default.handlebars->23->1283"
16037 ]
16038 },
16039 {
16040 "en": "Edit User Group",
16041 "xloc": [
16035 - "default.handlebars->23->1259"
16042 + "default.handlebars->23->1280"
16043 ]
16044 },
16045 {
16046 "en": "Delete user group {0}?",
16047 "xloc": [
16041 - "default.handlebars->23->1260"
16048 + "default.handlebars->23->1281"
16049 ]
16050 },
16051 {
16052 "en": "Remote User",
16053 "xloc": [
16047 - "default.handlebars->23->1263"
16054 + "default.handlebars->23->1284"
16055 ]
16056 },
16057 {
16058 "en": "Add Users to User Group",
16059 "xloc": [
16053 - "default.handlebars->23->1268"
16060 + "default.handlebars->23->1289"
16061 ]
16062 },
16063 {
@@ -16129,114 +16136,143 @@
16136 "en": "Upload will overwrite 1 file. Continue?",
16137 "xloc": [
16138 "default.handlebars->23->660",
16132 - "default.handlebars->23->1159"
16139 + "default.handlebars->23->1166"
16140 ]
16141 },
16142 {
16143 "en": "Upload will overwrite {0} files. Continue?",
16144 "xloc": [
16145 "default.handlebars->23->661",
16139 - "default.handlebars->23->1160"
16146 + "default.handlebars->23->1167"
16147 ]
16148 },
16149 {
16150 "en": "Partial Device Group Rights",
16151 "xloc": [
16145 - "default.handlebars->23->1004",
16146 - "default.handlebars->23->1321"
16152 + "default.handlebars->23->1005",
16153 + "default.handlebars->23->1268",
16154 + "default.handlebars->23->1342"
16155 ]
16156 },
16157 {
16158 "en": "Full Device Group Administrator",
16159 "xloc": [
16152 - "default.handlebars->23->1005",
16153 - "default.handlebars->23->1323"
16160 + "default.handlebars->23->1006",
16161 + "default.handlebars->23->1270",
16162 + "default.handlebars->23->1344"
16163 ]
16164 },
16165 {
16166 "en": "Device Group",
16167 "xloc": [
16159 - "default.handlebars->23->1060",
16160 - "default.handlebars->23->1326",
16161 - "default.handlebars->23->1332"
16168 + "default.handlebars->23->1061",
16169 + "default.handlebars->23->1063",
16170 + "default.handlebars->23->1273",
16171 + "default.handlebars->23->1347",
16172 + "default.handlebars->23->1353"
16173 ]
16174 },
16175 {
16176 "en": "Common Device Groups",
16177 "xloc": [
16167 - "default.handlebars->23->1320"
16178 + "default.handlebars->23->1267",
16179 + "default.handlebars->23->1341"
16180 ]
16181 },
16182 {
16183 "en": "No device groups in common",
16184 "xloc": [
16173 - "default.handlebars->23->1327"
16185 + "default.handlebars->23->1274",
16186 + "default.handlebars->23->1348"
16187 ]
16188 },
16189 {
16190 "en": "Add User Group",
16191 "xloc": [
16179 - "default.handlebars->23->1328"
16192 + "default.handlebars->23->991",
16193 + "default.handlebars->23->1085",
16194 + "default.handlebars->23->1349"
16195 ]
16196 },
16197 {
16198 "en": "User Group Memberships",
16199 "xloc": [
16185 - "default.handlebars->23->1329"
16200 + "default.handlebars->23->1350"
16201 ]
16202 },
16203 {
16204 "en": "Unknown User Group",
16205 "xloc": [
16191 - "default.handlebars->23->1330"
16206 + "default.handlebars->23->1351"
16207 ]
16208 },
16209 {
16210 "en": "Remove user group membership",
16211 "xloc": [
16197 - "default.handlebars->23->1331"
16212 + "default.handlebars->23->1352"
16213 ]
16214 },
16215 {
16216 "en": "No user group memberships",
16217 "xloc": [
16203 - "default.handlebars->23->1333"
16218 + "default.handlebars->23->1354"
16219 ]
16220 },
16221 {
16222 "en": "Remove User",
16223 "xloc": [
16209 - "default.handlebars->23->1335"
16224 + "default.handlebars->23->1356"
16225 ]
16226 },
16227 {
16228 "en": "Confirm removal of group {0}?",
16229 "xloc": [
16215 - "default.handlebars->23->1336"
16230 + "default.handlebars->23->1357"
16231 ]
16232 },
16233 {
16234 "en": "User Group",
16235 "xloc": [
16221 - "default.handlebars->23->1337"
16236 + "default.handlebars->23->1062",
16237 + "default.handlebars->23->1358"
16238 ]
16239 },
16240 {
16241 "en": "Add Membership",
16242 "xloc": [
16227 - "default.handlebars->23->1338"
16243 + "default.handlebars->23->1359"
16244 ]
16245 },
16246 {
16247 "en": "Remove Device Group",
16248 "xloc": [
16233 - "default.handlebars->23->1339"
16249 + "default.handlebars->23->1276",
16250 + "default.handlebars->23->1360"
16251 ]
16252 },
16253 {
16254 "en": "Confirm removal of device group {0}?",
16255 "xloc": [
16239 - "default.handlebars->23->1340"
16256 + "default.handlebars->23->1277",
16257 + "default.handlebars->23->1361"
16258 + ]
16259 + },
16260 + {
16261 + "en": "Group permissions for {0}.",
16262 + "xloc": [
16263 + "default.handlebars->23->1064"
16264 + ]
16265 + },
16266 + {
16267 + "en": "Edit Device Group Permissions",
16268 + "xloc": [
16269 + "default.handlebars->23->1087"
16270 + ]
16271 + },
16272 + {
16273 + "en": "Remove user group rights to this device group",
16274 + "xloc": [
16275 + "default.handlebars->23->1272"
16276 ]
16277 }
16278 ]
views/default.handlebars
+89 -13
@@ -7648,7 +7648,14 @@
7648 if (meshrights & 1) { x += '<br><input type=button value=' + "Notes" + ' title=\"' + "View notes about this device group" + '\" onclick=showNotes(false,"' + encodeURIComponent(currentMesh._id) + '") />'; }
7649
7650 x += '<br style=clear:both><br>';
7651 - if (meshrights & 2) { x += '<a href=# onclick="return p20showAddMeshUserDialog()" style=cursor:pointer;margin-right:10px><img src=images/icon-addnew.png border=0 height=12 width=12> ' + "Add Users" + '</a>'; }
7651 + if (meshrights & 2) {
7652 + x += '<a href=# onclick="return p20showAddMeshUserDialog()" style=cursor:pointer;margin-right:10px><img src=images/icon-addnew.png border=0 height=12 width=12> ' + "Add Users" + '</a>';
7653 + if ((userinfo.siteadmin & 256) != 0) {
7654 + var userGroupCount = 0, newUserGroup = false;
7655 + for (var i in usergroups) { userGroupCount++; if ((currentMesh.links == null) || (currentMesh.links[i] == null)) { newUserGroup = true; } }
7656 + if ((userGroupCount > 0) && (newUserGroup)) { x += '<a href=# onclick="return p20showAddMeshUserDialog(2)" style=cursor:pointer;margin-right:10px><img src=images/icon-addnew.png border=0 height=12 width=12> ' + "Add User Group" + '</a>'; }
7657 + }
7658 + }
7659
7660 if (meshrights & 4) {
7661 if (currentMesh.mtype == 1) {
@@ -7680,10 +7687,11 @@
7687
7688 // Display all users for this mesh
7689 for (var i in sortedusers) {
7683 - var trash = '', rights = "Partial Device Group Rights", r = sortedusers[i].rights;
7690 + var trash = '', rights = "Partial Device Group Rights", r = sortedusers[i].rights, icon = 2;
7691 if (r == 0xFFFFFFFF) rights = "Full Device Group Administrator"; else if (r == 0) rights = "No Rights";
7692 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>'; }
7686 - 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=m2></div><div>&nbsp;' + EscapeHtml(decodeURIComponent(sortedusers[i].name)) + '<div></div></div></td><td><div style=float:right>' + trash + '</div><div>' + rights + '</div></td></tr>';
7693 + if (sortedusers[i].id.startsWith('ugrp/')) { icon = 4; }
7694 + 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>&nbsp;' + EscapeHtml(decodeURIComponent(sortedusers[i].name)) + '<div></div></div></td><td><div style=float:right>' + trash + '</div><div>' + rights + '</div></td></tr>';
7695 ++count;
7696 }
7697
@@ -7878,12 +7886,26 @@
7886 var y = '';
7887 for (var i in meshes) { if ((currentUser.links == null) || (currentUser.links[i] == null)) { y += '<option value=' + encodeURIComponent(i) + '>' + EscapeHtml(meshes[i].name) + '</option>'; } }
7888 x += addHtmlValue("Device Group", '<div style=width:230px;margin:0;padding:0><select onchange=p20validateAddMeshUserDialog() id=dp2groupid style=width:100%>' + y + '</select></div>');
7889 + } else if (userid === 2) {
7890 + if ((userinfo.siteadmin & 256) == 0) return;
7891 + var y = '';
7892 + for (var i in usergroups) { if ((currentMesh.links == null) || (currentMesh.links[i] == null)) { y += '<option value=' + encodeURIComponent(i) + '>' + EscapeHtml(usergroups[i].name) + '</option>'; } }
7893 + x += addHtmlValue("User Group", '<div style=width:230px;margin:0;padding:0><select onchange=p20validateAddMeshUserDialog() id=dp2groupid style=width:100%>' + y + '</select></div>');
7894 + } else if (userid === 3) {
7895 + var y = '';
7896 + for (var i in meshes) { if ((currentUserGroup.links == null) || (currentUserGroup.links[i] == null)) { y += '<option value=' + encodeURIComponent(i) + '>' + EscapeHtml(meshes[i].name) + '</option>'; } }
7897 + x += addHtmlValue("Device Group", '<div style=width:230px;margin:0;padding:0><select onchange=p20validateAddMeshUserDialog() id=dp2groupid style=width:100%>' + y + '</select></div>');
7898 } else {
7899 userid = decodeURIComponent(userid);
7900 var uname = userid.split('/')[2];
7901 if (users && users[userid]) { uname = users[userid].name; }
7902 + if (usergroups && usergroups[userid]) { uname = usergroups[userid].name; }
7903 if (userinfo._id == userid) { uname = userinfo.name; }
7886 - x += format("Group permissions for user {0}.", uname) + '<br /><br />';
7904 + if (userid.startsWith('ugrp/')) {
7905 + x += format("Group permissions for {0}.", uname) + '<br /><br />';
7906 + } else {
7907 + x += format("Group permissions for user {0}.", uname) + '<br /><br />';
7908 + }
7909 }
7910 x += '<div style="height:120px;overflow-y:scroll;border:1px solid gray">';
7911 x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20fulladmin>' + "Full Administrator" + '</label><br>';
@@ -7909,8 +7931,16 @@
7931 Q('dp20username').focus();
7932 } else if (userid === 1) {
7933 setDialogMode(2, "Add Device Group", 3, p20showAddMeshUserDialogEx, x, userid);
7934 + } else if (userid === 2) {
7935 + setDialogMode(2, "Add User Group", 3, p20showAddMeshUserDialogEx, x, userid);
7936 + } else if (userid === 3) {
7937 + setDialogMode(2, "Add Device Group", 3, p20showAddMeshUserDialogEx, x, userid);
7938 } else {
7913 - setDialogMode(2, "Edit User Device Group Permissions", 7, p20showAddMeshUserDialogEx, x, userid);
7939 + if (userid.startsWith('ugrp/')) {
7940 + setDialogMode(2, "Edit Device Group Permissions", 7, p20showAddMeshUserDialogEx, x, userid);
7941 + } else {
7942 + setDialogMode(2, "Edit User Device Group Permissions", 7, p20showAddMeshUserDialogEx, x, userid);
7943 + }
7944 var cmeshrights = GetMeshRights(currentMesh), meshrights = GetMeshRights(currentMesh, userid);
7945 if (meshrights == 0xFFFFFFFF) {
7946 Q('p20fulladmin').checked = true;
@@ -8031,14 +8061,20 @@
8061
8062 if (t === 1) {
8063 var meshid = decodeURIComponent(Q('dp2groupid').value), mesh = meshes[meshid];
8034 - if (mesh != null) { meshserver.send({ action: 'addmeshuser', meshid: meshid, meshname: mesh.name, usernames: [ currentUser._id.split('/')[2] ], meshadmin: meshadmin }); }
8064 + if (mesh != null) { meshserver.send({ action: 'addmeshuser', meshid: meshid, meshname: mesh.name, userids: [ currentUser._id ], meshadmin: meshadmin }); }
8065 + } else if (t === 2) {
8066 + var ugrpid = decodeURIComponent(Q('dp2groupid').value), mesh = meshes[currentMesh._id];
8067 + if (mesh != null) { meshserver.send({ action: 'addmeshuser', meshid: currentMesh._id, meshname: currentMesh.name, userid: ugrpid, meshadmin: meshadmin }); }
8068 + } else if (t === 3) {
8069 + var meshid = decodeURIComponent(Q('dp2groupid').value), mesh = meshes[meshid];
8070 + if (mesh != null) { meshserver.send({ action: 'addmeshuser', meshid: meshid, meshname: mesh.name, userids: [ currentUserGroup._id ], meshadmin: meshadmin }); }
8071 } else {
8072 if (t == null) {
8073 var users = Q('dp20username').value.split(','), users2 = [];
8074 for (var i in users) { users2.push(users[i].trim()); }
8075 meshserver.send({ action: 'addmeshuser', meshid: currentMesh._id, meshname: currentMesh.name, usernames: users2, meshadmin: meshadmin });
8076 } else {
8041 - meshserver.send({ action: 'addmeshuser', meshid: currentMesh._id, meshname: currentMesh.name, usernames: [ t.split('/')[2] ], meshadmin: meshadmin });
8077 + meshserver.send({ action: 'addmeshuser', meshid: currentMesh._id, meshname: currentMesh.name, userids: [ t ], meshadmin: meshadmin });
8078 }
8079 }
8080 }
@@ -8087,6 +8123,7 @@
8123 if (button != 2) return;
8124 var uname = userid.split('/')[2];
8125 if (users && users[userid]) { uname = users[userid].name; }
8126 + if (usergroups && usergroups[userid]) { uname = usergroups[userid].name; }
8127 if (userinfo._id == userid) { uname = userinfo.name; }
8128 setDialogMode(2, "Remote Mesh User", 3, p20viewuserEx2, format("Confirm removal of user {0}?", EscapeHtml(decodeURIComponent(uname))), userid);
8129 }
@@ -9056,7 +9093,7 @@
9093
9094 // Display the groups using the sorted list
9095 var x = '<table class=p3usersTable cellpadding=0 cellspacing=0>', addHeader = true;
9059 - x += '<th>' + "Name" + '<th style=width:80px>' + "Users";
9096 + x += '<th>' + "Name" + '<th style=width:80px>' + "Device Groups" + '<th style=width:80px>' + "Users";
9097 for (var i in sortedGroups) { x += addUserGroupHtml(sortedGroups[i]); }
9098 x += '</table>';
9099
@@ -9068,13 +9105,13 @@
9105 }
9106
9107 function addUserGroupHtml(group) {
9071 - var usercount = 0;
9072 - if (group.links) { for (var i in group.links) { usercount++; } }
9108 + var usercount = 0, meshcount = 0;
9109 + if (group.links) { for (var i in group.links) { if (i.startsWith('user/')) { usercount++; } if (i.startsWith('mesh/')) { meshcount++; } } }
9110 var x = '<tr tabindex=0 onmouseover=userMouseHover(this,1) onmouseout=userMouseHover(this,0) onkeypress="if (event.key==\'Enter\') gotoUserGroup(\'' + encodeURIComponent(group._id) + '\')"><td style=cursor:pointer onclick=gotoUserGroup(\"' + encodeURIComponent(group._id) + '\")>';
9111 x += '<div class=bar style=width:100%>';
9112 x += '<div class=baricon><div class="m4"></div></div>';
9113 x += '<div class=g1></div><div class=g2></div>';
9077 - x += '<div><span style=font-size:16px>' + group.name + '</span></div></div><td style=text-align:center>' + usercount;
9114 + x += '<div><span style=font-size:16px>' + group.name + '</span></div></div><td style=text-align:center>' + meshcount + '<td style=text-align:center>' + usercount;
9115 return x;
9116 }
9117
@@ -9106,7 +9143,8 @@
9143 var group = currentUserGroup = usergroups[decodeURIComponent(groupid)];
9144 if (group == null) { if (xxcurrentView == 51) { setDialogMode(0); go(50); } return; }
9145 QH('p51groupName', group.name);
9109 -
9146 + var usercount = 0, meshcount = 0;
9147 + if (group.links) { for (var i in group.links) { if (i.startsWith('user/')) { usercount++; } if (i.startsWith('mesh/')) { meshcount++; } } }
9148 var desc = group.desc;
9149 if ((desc == null) || (desc == '')) { desc = '<i>' + "None" + '<i>'; } else { desc = EscapeHtml(desc); }
9150
@@ -9118,6 +9156,9 @@
9156 x += addDeviceAttribute("Name", EscapeHtml(group.name));
9157 x += addDeviceAttribute("Description", desc);
9158 }
9159 + x += addDeviceAttribute("Users", usercount);
9160 + x += addDeviceAttribute("Device Groups", meshcount);
9161 +
9162 x += '</table></div><br />';
9163
9164 if ((userinfo.siteadmin & 256) != 0) {
@@ -9127,14 +9168,16 @@
9168 // Setup the panel
9169 QH('p51group', x);
9170
9171 + x = '<br />';
9172 if ((userinfo.siteadmin & 256) != 0) {
9131 - x = '<a href=# onclick="return p51showAddUserDialog()" style=cursor:pointer;margin-right:10px><img src=images/icon-addnew.png border=0 height=12 width=12> ' + "Add Users" + '</a>';
9173 + x += '<a href=# onclick="return p51showAddUserDialog()" style=cursor:pointer;margin-right:10px><img src=images/icon-addnew.png border=0 height=12 width=12> ' + "Add Users" + '</a>';
9174 }
9175 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>' + "Group Members" + '</th><th scope=col style=text-align:left></th></tr>';
9176
9177 // Sort the users for this mesh
9178 var count = 1, sortedusers = [];
9179 for (var i in currentUserGroup.links) {
9180 + if (i.startsWith('user/') == false) continue;
9181 var uname = i.split('/')[2];
9182 if (currentUserGroup.links[i].name) { uname = currentUserGroup.links[i].name; }
9183 if (i == userinfo._id) { uname = userinfo.name; }
@@ -9151,7 +9194,29 @@
9194
9195 if (count == 1) { x += '<tr><td><div style=padding:6px>&nbsp;<i>' + "No Members" + '</i><div></div></div></td><td></td></tr>'; }
9196
9197 + x += '</tbody></table><br />';
9198 +
9199 + count = 1;
9200 + var deviceGroupCount = 0, newDeviceGroup = false;
9201 + for (var i in meshes) { deviceGroupCount++; if ((currentUserGroup.links == null) || (currentUserGroup.links[i] == null)) { newDeviceGroup = true; } }
9202 + if ((deviceGroupCount > 0) && (newDeviceGroup)) { x += '<a href=# onclick="return p20showAddMeshUserDialog(3)" style=cursor:pointer;margin-right:10px><img src=images/icon-addnew.png border=0 height=12 width=12> ' + "Add Device Group" + '</a>'; }
9203 + 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 Device Groups" + '</th><th scope=col style=text-align:left></th></tr>';
9204 + if (currentUserGroup.links) {
9205 + for (var i in currentUserGroup.links) {
9206 + if (i.startsWith('mesh/')) {
9207 + var cr = 0, r = currentUserGroup.links[i].rights, mesh = meshes[i], trash = '', rights = "Partial Device Group Rights";
9208 + if (mesh == null) { continue; }
9209 + if ((userinfo.links) && (userinfo.links[i] != null) && (userinfo.links[i].rights != null)) { cr = userinfo.links[i].rights; }
9210 + var meshname = mesh?EscapeHtml(mesh.name):('<i>' + "Unknown Device Group" + '</i>');
9211 + if (r == 0xFFFFFFFF) rights = "Full Device Group Administrator"; else if (r == 0) rights = "No Rights";
9212 + 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>'; }
9213 + x += '<tr ' + (((++count % 2) == 0) ? 'style=background-color:#DDD' : '') + '><td><div title=\"' + "Device Group" + '\" class=m99></div><div>&nbsp;' + meshname + '<div></div></div></td><td><div style=float:right>' + trash + '</div><div>' + rights + '</div></td></tr>';
9214 + }
9215 + }
9216 + }
9217 + if (count == 1) { x += '<tr><td><div style=padding:6px>&nbsp;<i>' + "No device groups in common" + '</i><div></div></div></td><td></td></tr>'; }
9218 x += '</tbody></table>';
9219 +
9220 if ((userinfo.siteadmin & 256) != 0) {
9221 x += '<div style=font-size:x-small;text-align:right><span><a href=# onclick=p51showDeleteUserGroupDialog() style=cursor:pointer>' + "Delete User Group" + '</a></span></div>';
9222 }
@@ -9160,6 +9225,17 @@
9225 go(51);
9226 }
9227
9228 + function p51removeMeshFromUserGroup(e, meshid) {
9229 + if (xxdialogMode) return;
9230 + var mesh = meshes[decodeURIComponent(meshid)];
9231 + if (mesh == null) return;
9232 + setDialogMode(2, "Remove Device Group", 3, p51removeMeshFromUserGroupEx, format("Confirm removal of device group {0}?", mesh.name), mesh._id);
9233 + }
9234 +
9235 + function p51removeMeshFromUserGroupEx(b, meshid) {
9236 + meshserver.send({ action: 'removemeshuser', meshid: meshid, userid: currentUserGroup._id });
9237 + }
9238 +
9239 function p51editgroup(focus) {
9240 if (xxdialogMode) return;
9241 var x = addHtmlValue("Name", '<input id=dp51name style=width:230px maxlength=32 onchange=p51editgroupValidate() onkeyup=p51editgroupValidate(event) />');
webserver.js
+10 -3
@@ -77,6 +77,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
77 obj.args = args;
78 obj.users = {}; // UserID --> User
79 obj.meshes = {}; // MeshID --> Mesh (also called device group)
80 + obj.userGroups = {}; // UGrpID --> User Group
81 obj.userAllowedIp = args.userallowedip; // List of allowed IP addresses for users
82 obj.agentAllowedIp = args.agentallowedip; // List of allowed IP addresses for agents
83 obj.agentBlockedIp = args.agentblockedip; // List of blocked IP addresses for agents
@@ -211,13 +212,19 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
212 }
213 }
214
214 - // Fetch all meshes from the database, keep this in memory
215 + // Fetch all device groups (meshes) from the database, keep this in memory
216 obj.db.GetAllType('mesh', function (err, docs) {
217 obj.common.unEscapeAllLinksFieldName(docs);
218 for (var i in docs) { obj.meshes[docs[i]._id] = docs[i]; } // Get all meshes, including deleted ones.
219
219 - // We loaded the users and mesh state, start the server
220 - serverStart();
220 + // Fetch all user groups from the database, keep this in memory
221 + obj.db.GetAllType('ugrp', function (err, docs) {
222 + obj.common.unEscapeAllLinksFieldName(docs);
223 + for (var i in docs) { obj.userGroups[docs[i]._id] = docs[i]; } // Get all user groups
224 +
225 + // We loaded the users, device groups and suer group state, start the server
226 + serverStart();
227 + });
228 });
229 });
230