Improved access control dialog boxes.

Ylian Saint-Hilaire committed Apr 14, 2020 at 18:07 UTC 86a823b00a68e80622d6e4b3b91294793329ec9f
2 files changed +311 -296
translate/translate.json
+227 -221
@@ -192,7 +192,7 @@
192 "zh-chs": " 用戶需要先登錄到該服務器一次,然後才能將其添加到設備組。",
193 "xloc": [
194 "default.handlebars->27->1203",
195 - "default.handlebars->27->1495"
195 + "default.handlebars->27->1496"
196 ]
197 },
198 {
@@ -605,7 +605,7 @@
605 "default-mobile.handlebars->9->244",
606 "default-mobile.handlebars->9->70",
607 "default.handlebars->27->1304",
608 - "default.handlebars->27->1599",
608 + "default.handlebars->27->1600",
609 "default.handlebars->27->712"
610 ]
611 },
@@ -654,7 +654,7 @@
654 "ru": "1 активная сессия",
655 "zh-chs": "1個活動會話",
656 "xloc": [
657 - "default.handlebars->27->1550"
657 + "default.handlebars->27->1551"
658 ]
659 },
660 {
@@ -709,7 +709,7 @@
709 "ru": "1 группа",
710 "zh-chs": "1組",
711 "xloc": [
712 - "default.handlebars->27->1520"
712 + "default.handlebars->27->1521"
713 ]
714 },
715 {
@@ -1101,7 +1101,7 @@
1101 "zh-chs": "啟用第二因素身份驗證",
1102 "xloc": [
1103 "default.handlebars->27->1375",
1104 - "default.handlebars->27->1541"
1104 + "default.handlebars->27->1542"
1105 ]
1106 },
1107 {
@@ -1847,7 +1847,7 @@
1847 "ru": "Доступ к файлам сервера",
1848 "zh-chs": "訪問服務器文件",
1849 "xloc": [
1850 - "default.handlebars->27->1501"
1850 + "default.handlebars->27->1502"
1851 ]
1852 },
1853 {
@@ -1957,7 +1957,7 @@
1957 "es": "La cuenta esta bloqueada",
1958 "xloc": [
1959 "default.handlebars->27->1376",
1960 - "default.handlebars->27->1498"
1960 + "default.handlebars->27->1499"
1961 ]
1962 },
1963 {
@@ -2230,8 +2230,8 @@
2230 "zh-chs": "添加設備",
2231 "es": "Agregar Dispositivo",
2232 "xloc": [
2233 - "default.handlebars->27->1475",
2234 - "default.handlebars->27->1567"
2233 + "default.handlebars->27->1476",
2234 + "default.handlebars->27->1568"
2235 ]
2236 },
2237 {
@@ -2267,8 +2267,8 @@
2267 "xloc": [
2268 "default.handlebars->27->1232",
2269 "default.handlebars->27->1234",
2270 - "default.handlebars->27->1469",
2271 - "default.handlebars->27->1573",
2270 + "default.handlebars->27->1470",
2271 + "default.handlebars->27->1574",
2272 "default.handlebars->27->189"
2273 ]
2274 },
@@ -2369,7 +2369,7 @@
2369 "ru": "Добавить участие",
2370 "zh-chs": "添加會員",
2371 "xloc": [
2372 - "default.handlebars->27->1595"
2372 + "default.handlebars->27->1596"
2373 ]
2374 },
2375 {
@@ -2460,7 +2460,7 @@
2460 "xloc": [
2461 "default.handlebars->27->1135",
2462 "default.handlebars->27->1233",
2463 - "default.handlebars->27->1579",
2463 + "default.handlebars->27->1580",
2464 "default.handlebars->27->547"
2465 ]
2466 },
@@ -2500,7 +2500,7 @@
2500 "zh-chs": "添加用戶",
2501 "xloc": [
2502 "default.handlebars->27->1134",
2503 - "default.handlebars->27->1464"
2503 + "default.handlebars->27->1465"
2504 ]
2505 },
2506 {
@@ -2534,7 +2534,7 @@
2534 "ru": "Добавить пользователей в группу",
2535 "zh-chs": "將用戶添加到用戶組",
2536 "xloc": [
2537 - "default.handlebars->27->1497"
2537 + "default.handlebars->27->1498"
2538 ]
2539 },
2540 {
@@ -2732,7 +2732,7 @@
2732 "ru": "Области администратора",
2733 "zh-chs": "管理領域",
2734 "xloc": [
2735 - "default.handlebars->27->1524"
2735 + "default.handlebars->27->1525"
2736 ]
2737 },
2738 {
@@ -2895,7 +2895,7 @@
2895 "ru": "Счетчик ошибок агента",
2896 "zh-chs": "座席錯誤計數器",
2897 "xloc": [
2898 - "default.handlebars->27->1608"
2898 + "default.handlebars->27->1609"
2899 ]
2900 },
2901 {
@@ -2964,7 +2964,7 @@
2964 "ru": "Сессии агентов",
2965 "zh-chs": "座席會議",
2966 "xloc": [
2967 - "default.handlebars->27->1624"
2967 + "default.handlebars->27->1625"
2968 ]
2969 },
2970 {
@@ -3087,7 +3087,7 @@
3087 "ru": "Агенты",
3088 "zh-chs": "代理商",
3089 "xloc": [
3090 - "default.handlebars->27->1637"
3090 + "default.handlebars->27->1638"
3091 ]
3092 },
3093 {
@@ -3177,7 +3177,7 @@
3177 "zh-chs": "允許用戶管理此設備組和該組中的設備。",
3178 "xloc": [
3179 "default.handlebars->27->1201",
3180 - "default.handlebars->27->1494"
3180 + "default.handlebars->27->1495"
3181 ]
3182 },
3183 {
@@ -3279,7 +3279,7 @@
3279 "zh-chs": "始終通知",
3280 "xloc": [
3281 "default.handlebars->27->1115",
3282 - "default.handlebars->27->1533",
3282 + "default.handlebars->27->1534",
3283 "default.handlebars->27->495"
3284 ]
3285 },
@@ -3298,7 +3298,7 @@
3298 "zh-chs": "總是提示",
3299 "xloc": [
3300 "default.handlebars->27->1116",
3301 - "default.handlebars->27->1534",
3301 + "default.handlebars->27->1535",
3302 "default.handlebars->27->496"
3303 ]
3304 },
@@ -3897,7 +3897,7 @@
3897 "ru": "Вы уверенны, что {0} плагин: {1}",
3898 "zh-chs": "您確定要{0}插件嗎:{1}",
3899 "xloc": [
3900 - "default.handlebars->27->1677"
3900 + "default.handlebars->27->1678"
3901 ]
3902 },
3903 {
@@ -3965,7 +3965,7 @@
3965 "ru": "Приложение аутентификации",
3966 "zh-chs": "身份驗證應用",
3967 "xloc": [
3968 - "default.handlebars->27->1537"
3968 + "default.handlebars->27->1538"
3969 ]
3970 },
3971 {
@@ -4279,7 +4279,7 @@
4279 "ru": "Резервные коды",
4280 "zh-chs": "備用碼",
4281 "xloc": [
4282 - "default.handlebars->27->1539"
4282 + "default.handlebars->27->1540"
4283 ]
4284 },
4285 {
@@ -4296,7 +4296,7 @@
4296 "ru": "Плохой ключ",
4297 "zh-chs": "錯誤的簽名",
4298 "xloc": [
4299 - "default.handlebars->27->1615"
4299 + "default.handlebars->27->1616"
4300 ]
4301 },
4302 {
@@ -4313,7 +4313,7 @@
4313 "ru": "Плохой веб-сертификат",
4314 "zh-chs": "錯誤的網絡證書",
4315 "xloc": [
4316 - "default.handlebars->27->1614"
4316 + "default.handlebars->27->1615"
4317 ]
4318 },
4319 {
@@ -4449,7 +4449,7 @@
4449 "ru": "Отправить сообщение",
4450 "zh-chs": "廣播",
4451 "xloc": [
4452 - "default.handlebars->27->1462",
4452 + "default.handlebars->27->1463",
4453 "default.handlebars->container->column_l->p4->3->1->0->3->1"
4454 ]
4455 },
@@ -4574,7 +4574,7 @@
4574 "ru": "CIRA Сервер",
4575 "zh-chs": "CIRA服務器",
4576 "xloc": [
4577 - "default.handlebars->27->1665"
4577 + "default.handlebars->27->1666"
4578 ]
4579 },
4580 {
@@ -4591,7 +4591,7 @@
4591 "ru": "CIRA Сервер команды",
4592 "zh-chs": "CIRA服務器命令",
4593 "xloc": [
4594 - "default.handlebars->27->1666"
4594 + "default.handlebars->27->1667"
4595 ]
4596 },
4597 {
@@ -4608,7 +4608,7 @@
4608 "ru": "Загрузка CPU",
4609 "zh-chs": "CPU負載",
4610 "xloc": [
4611 - "default.handlebars->27->1629"
4611 + "default.handlebars->27->1630"
4612 ]
4613 },
4614 {
@@ -4625,7 +4625,7 @@
4625 "ru": "Загрузка CPU за последние 15 минут",
4626 "zh-chs": "最近15分鐘的CPU負載",
4627 "xloc": [
4628 - "default.handlebars->27->1632"
4628 + "default.handlebars->27->1633"
4629 ]
4630 },
4631 {
@@ -4642,7 +4642,7 @@
4642 "ru": "Загрузка CPU за последние 5 минут",
4643 "zh-chs": "最近5分鐘的CPU負載",
4644 "xloc": [
4645 - "default.handlebars->27->1631"
4645 + "default.handlebars->27->1632"
4646 ]
4647 },
4648 {
@@ -4659,7 +4659,7 @@
4659 "ru": "Загрузка CPU за последнюю минуту",
4660 "zh-chs": "最後一分鐘的CPU負載",
4661 "xloc": [
4662 - "default.handlebars->27->1630"
4662 + "default.handlebars->27->1631"
4663 ]
4664 },
4665 {
@@ -4714,7 +4714,7 @@
4714 "ru": "Ошибка вызова",
4715 "zh-chs": "通話錯誤",
4716 "xloc": [
4717 - "default.handlebars->27->1678"
4717 + "default.handlebars->27->1679"
4718 ]
4719 },
4720 {
@@ -4823,7 +4823,7 @@
4823 "ru": "Смена email для {0}",
4824 "zh-chs": "更改{0}的電子郵件",
4825 "xloc": [
4826 - "default.handlebars->27->1556"
4826 + "default.handlebars->27->1557"
4827 ]
4828 },
4829 {
@@ -4861,7 +4861,7 @@
4861 "xloc": [
4862 "default-mobile.handlebars->9->52",
4863 "default.handlebars->27->1064",
4864 - "default.handlebars->27->1549"
4864 + "default.handlebars->27->1550"
4865 ]
4866 },
4867 {
@@ -4878,7 +4878,7 @@
4878 "ru": "Смена пароля для {0}",
4879 "zh-chs": "更改{0}的密碼",
4880 "xloc": [
4881 - "default.handlebars->27->1563"
4881 + "default.handlebars->27->1564"
4882 ]
4883 },
4884 {
@@ -4948,7 +4948,7 @@
4948 "zh-chs": "更改該用戶的密碼",
4949 "es": "Cambiar la contraseña para este usuario",
4950 "xloc": [
4951 - "default.handlebars->27->1548"
4951 + "default.handlebars->27->1549"
4952 ]
4953 },
4954 {
@@ -5140,7 +5140,7 @@
5140 "ru": "Проверка...",
5141 "zh-chs": "檢查...",
5142 "xloc": [
5143 - "default.handlebars->27->1672",
5143 + "default.handlebars->27->1673",
5144 "default.handlebars->27->837"
5145 ]
5146 },
@@ -5388,7 +5388,7 @@
5388 "zh-chs": "清除此通知",
5389 "es": "Borrar esta notificación",
5390 "xloc": [
5391 - "default.handlebars->27->1602"
5391 + "default.handlebars->27->1603"
5392 ]
5393 },
5394 {
@@ -5603,8 +5603,8 @@
5603 "ru": "Общие группы устройств",
5604 "zh-chs": "通用設備組",
5605 "xloc": [
5606 - "default.handlebars->27->1470",
5607 - "default.handlebars->27->1574"
5606 + "default.handlebars->27->1471",
5607 + "default.handlebars->27->1575"
5608 ]
5609 },
5610 {
@@ -5621,8 +5621,8 @@
5621 "zh-chs": "通用設備",
5622 "es": "Dispositivos comunes",
5623 "xloc": [
5624 - "default.handlebars->27->1476",
5625 - "default.handlebars->27->1568"
5624 + "default.handlebars->27->1477",
5625 + "default.handlebars->27->1569"
5626 ]
5627 },
5628 {
@@ -5662,8 +5662,8 @@
5662 "default.handlebars->27->1180",
5663 "default.handlebars->27->1386",
5664 "default.handlebars->27->1448",
5665 - "default.handlebars->27->1490",
5666 - "default.handlebars->27->1566",
5665 + "default.handlebars->27->1491",
5666 + "default.handlebars->27->1567",
5667 "default.handlebars->27->387",
5668 "default.handlebars->27->620",
5669 "default.handlebars->27->629"
@@ -5750,7 +5750,7 @@
5750 "zh-chs": "確認刪除用戶{0}?",
5751 "es": "Confirmar la eliminación del usuario {0}?",
5752 "xloc": [
5753 - "default.handlebars->27->1565"
5753 + "default.handlebars->27->1566"
5754 ]
5755 },
5756 {
@@ -5838,8 +5838,8 @@
5838 "ru": "Подтвердить удаление группы устройств {0}?",
5839 "zh-chs": "確認刪除設備組{0}?",
5840 "xloc": [
5841 - "default.handlebars->27->1485",
5842 - "default.handlebars->27->1597"
5841 + "default.handlebars->27->1486",
5842 + "default.handlebars->27->1598"
5843 ]
5844 },
5845 {
@@ -5853,8 +5853,8 @@
5853 "zh-chs": "确认移除设备{0}?",
5854 "es": "Confirmar la eliminación del dispositivo {0}?",
5855 "xloc": [
5856 - "default.handlebars->27->1483",
5857 - "default.handlebars->27->1586"
5856 + "default.handlebars->27->1484",
5857 + "default.handlebars->27->1587"
5858 ]
5859 },
5860 {
@@ -5871,14 +5871,14 @@
5871 "ru": "Подтвердить удаление группы {0}?",
5872 "zh-chs": "確認刪除組{0}?",
5873 "xloc": [
5874 - "default.handlebars->27->1593"
5874 + "default.handlebars->27->1594"
5875 ]
5876 },
5877 {
5878 "en": "Confirm removal of user group {0}?",
5879 "nl": "Verwijderen van gebruikersgroep {0} bevestigen?",
5880 "xloc": [
5881 - "default.handlebars->27->1590"
5881 + "default.handlebars->27->1591"
5882 ]
5883 },
5884 {
@@ -5897,8 +5897,8 @@
5897 "xloc": [
5898 "default-mobile.handlebars->9->334",
5899 "default.handlebars->27->1270",
5900 - "default.handlebars->27->1493",
5901 - "default.handlebars->27->1588"
5900 + "default.handlebars->27->1494",
5901 + "default.handlebars->27->1589"
5902 ]
5903 },
5904 {
@@ -6030,7 +6030,7 @@
6030 "ru": "Подключено Intel® AMT",
6031 "zh-chs": "連接的英特爾®AMT",
6032 "xloc": [
6033 - "default.handlebars->27->1620"
6033 + "default.handlebars->27->1621"
6034 ]
6035 },
6036 {
@@ -6047,7 +6047,7 @@
6047 "ru": "Подключенные пользователи",
6048 "zh-chs": "關聯用戶",
6049 "xloc": [
6050 - "default.handlebars->27->1625"
6050 + "default.handlebars->27->1626"
6051 ]
6052 },
6053 {
@@ -6123,7 +6123,7 @@
6123 "ru": "Подключений ",
6124 "zh-chs": "連接數",
6125 "xloc": [
6126 - "default.handlebars->27->1636"
6126 + "default.handlebars->27->1637"
6127 ]
6128 },
6129 {
@@ -6140,7 +6140,7 @@
6140 "ru": "Ретранслятор подключения",
6141 "zh-chs": "連接繼電器",
6142 "xloc": [
6143 - "default.handlebars->27->1664"
6143 + "default.handlebars->27->1665"
6144 ]
6145 },
6146 {
@@ -6265,7 +6265,7 @@
6265 "ru": "Cookie-кодировщик",
6266 "zh-chs": "Cookie編碼器",
6267 "xloc": [
6268 - "default.handlebars->27->1650"
6268 + "default.handlebars->27->1651"
6269 ]
6270 },
6271 {
@@ -6566,7 +6566,7 @@
6566 "ru": "Основной сервер",
6567 "zh-chs": "核心服務器",
6568 "xloc": [
6569 - "default.handlebars->27->1649"
6569 + "default.handlebars->27->1650"
6570 ]
6571 },
6572 {
@@ -6722,7 +6722,7 @@
6722 "ru": "Создано",
6723 "zh-chs": "創建",
6724 "xloc": [
6725 - "default.handlebars->27->1513"
6725 + "default.handlebars->27->1514"
6726 ]
6727 },
6728 {
@@ -7127,8 +7127,7 @@
7127 "default-mobile.handlebars->9->286",
7128 "default-mobile.handlebars->9->289",
7129 "default.handlebars->27->1151",
7130 - "default.handlebars->27->1181",
7131 - "default.handlebars->27->1445"
7130 + "default.handlebars->27->1181"
7131 ]
7132 },
7133 {
@@ -7180,7 +7179,7 @@
7179 "ru": "Удалить пользователя",
7180 "zh-chs": "刪除用戶",
7181 "xloc": [
7183 - "default.handlebars->27->1547"
7182 + "default.handlebars->27->1548"
7183 ]
7184 },
7185 {
@@ -7197,8 +7196,8 @@
7196 "ru": "Удалить группу пользователей",
7197 "zh-chs": "刪除用戶組",
7198 "xloc": [
7200 - "default.handlebars->27->1481",
7201 - "default.handlebars->27->1491"
7199 + "default.handlebars->27->1482",
7200 + "default.handlebars->27->1492"
7201 ]
7202 },
7203 {
@@ -7222,7 +7221,7 @@
7221 "ru": "Удалить пользователя {0}",
7222 "zh-chs": "刪除用戶{0}",
7223 "xloc": [
7225 - "default.handlebars->27->1564"
7224 + "default.handlebars->27->1565"
7225 ]
7226 },
7227 {
@@ -7261,6 +7260,12 @@
7260 "default.handlebars->27->383"
7261 ]
7262 },
7263 + {
7264 + "en": "Delete group",
7265 + "xloc": [
7266 + "default.handlebars->27->1445"
7267 + ]
7268 + },
7269 {
7270 "cs": "Smazat položku?",
7271 "de": "Element löschen?",
@@ -7312,7 +7317,7 @@
7317 "ru": "Удалить группу пользователей {0}?",
7318 "zh-chs": "刪除用戶組{0}?",
7319 "xloc": [
7315 - "default.handlebars->27->1489"
7320 + "default.handlebars->27->1490"
7321 ]
7322 },
7323 {
@@ -7438,7 +7443,7 @@
7443 "default.handlebars->27->1452",
7444 "default.handlebars->27->1457",
7445 "default.handlebars->27->1459",
7441 - "default.handlebars->27->1487",
7446 + "default.handlebars->27->1488",
7447 "default.handlebars->27->455",
7448 "default.handlebars->27->456",
7449 "default.handlebars->27->661",
@@ -7513,7 +7518,7 @@
7518 "zh-chs": "桌面通知",
7519 "xloc": [
7520 "default.handlebars->27->1110",
7516 - "default.handlebars->27->1528",
7521 + "default.handlebars->27->1529",
7522 "default.handlebars->27->490"
7523 ]
7524 },
@@ -7532,7 +7537,7 @@
7537 "zh-chs": "桌面提示",
7538 "xloc": [
7539 "default.handlebars->27->1109",
7535 - "default.handlebars->27->1527",
7540 + "default.handlebars->27->1528",
7541 "default.handlebars->27->489"
7542 ]
7543 },
@@ -7551,7 +7556,7 @@
7556 "zh-chs": "桌面提示+工具欄",
7557 "xloc": [
7558 "default.handlebars->27->1107",
7554 - "default.handlebars->27->1525",
7559 + "default.handlebars->27->1526",
7560 "default.handlebars->27->487"
7561 ]
7562 },
@@ -7577,7 +7582,7 @@
7582 "zh-chs": "桌面工具欄",
7583 "xloc": [
7584 "default.handlebars->27->1108",
7580 - "default.handlebars->27->1526",
7585 + "default.handlebars->27->1527",
7586 "default.handlebars->27->488"
7587 ]
7588 },
@@ -7648,7 +7653,7 @@
7653 "zh-chs": "設備",
7654 "xloc": [
7655 "default.handlebars->27->1210",
7651 - "default.handlebars->27->1571",
7656 + "default.handlebars->27->1572",
7657 "default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->9->devListToolbarSort->sortselect->5"
7658 ]
7659 },
@@ -7687,9 +7692,9 @@
7692 "default.handlebars->27->1205",
7693 "default.handlebars->27->1208",
7694 "default.handlebars->27->1209",
7690 - "default.handlebars->27->1473",
7691 - "default.handlebars->27->1479",
7692 - "default.handlebars->27->1577"
7695 + "default.handlebars->27->1474",
7696 + "default.handlebars->27->1480",
7697 + "default.handlebars->27->1578"
7698 ]
7699 },
7700 {
@@ -7727,8 +7732,8 @@
7732 "default-mobile.handlebars->container->page_content->column_l->p3->p3info->1->3",
7733 "default.handlebars->27->1439",
7734 "default.handlebars->27->1461",
7730 - "default.handlebars->27->1522",
7731 - "default.handlebars->27->1623",
7735 + "default.handlebars->27->1523",
7736 + "default.handlebars->27->1624",
7737 "default.handlebars->container->column_l->p2->9"
7738 ]
7739 },
@@ -8156,7 +8161,8 @@
8161 "en": "Devices",
8162 "nl": "Apparaten",
8163 "xloc": [
8159 - "default.handlebars->27->1438"
8164 + "default.handlebars->27->1438",
8165 + "default.handlebars->27->1462"
8166 ]
8167 },
8168 {
@@ -8754,7 +8760,7 @@
8760 "ru": "Скопировать агент",
8761 "zh-chs": "代理重複",
8762 "xloc": [
8757 - "default.handlebars->27->1619"
8763 + "default.handlebars->27->1620"
8764 ]
8765 },
8766 {
@@ -9164,7 +9170,7 @@
9170 "ru": "Редактировать группу пользователей",
9171 "zh-chs": "編輯用戶組",
9172 "xloc": [
9167 - "default.handlebars->27->1488"
9173 + "default.handlebars->27->1489"
9174 ]
9175 },
9176 {
@@ -9200,9 +9206,9 @@
9206 "xloc": [
9207 "default-mobile.handlebars->9->40",
9208 "default.handlebars->27->1410",
9203 - "default.handlebars->27->1509",
9209 "default.handlebars->27->1510",
9205 - "default.handlebars->27->1552",
9210 + "default.handlebars->27->1511",
9211 + "default.handlebars->27->1553",
9212 "default.handlebars->27->270",
9213 "login-mobile.handlebars->container->page_content->column_l->1->1->0->1->tokenpanel->1->7->1->4->1->3",
9214 "login.handlebars->container->column_l->centralTable->1->0->logincell->tokenpanel->1->7->1->4->1->3"
@@ -9255,7 +9261,7 @@
9261 "zh-chs": "电子邮件流量",
9262 "es": "Tráfico de correo electrónico",
9263 "xloc": [
9258 - "default.handlebars->27->1658"
9264 + "default.handlebars->27->1659"
9265 ]
9266 },
9267 {
@@ -9313,7 +9319,7 @@
9319 "zh-chs": "電子郵件已驗證",
9320 "xloc": [
9321 "default.handlebars->27->1373",
9316 - "default.handlebars->27->1506"
9322 + "default.handlebars->27->1507"
9323 ]
9324 },
9325 {
@@ -9347,7 +9353,7 @@
9353 "ru": "Email не подтвержден",
9354 "zh-chs": "電子郵件未驗證",
9355 "xloc": [
9350 - "default.handlebars->27->1507"
9356 + "default.handlebars->27->1508"
9357 ]
9358 },
9359 {
@@ -10023,7 +10029,7 @@
10029 "ru": "Внешний",
10030 "zh-chs": "外部",
10031 "xloc": [
10026 - "default.handlebars->27->1643"
10032 + "default.handlebars->27->1644"
10033 ]
10034 },
10035 {
@@ -10250,7 +10256,7 @@
10256 "zh-chs": "文件通知",
10257 "xloc": [
10258 "default.handlebars->27->1114",
10253 - "default.handlebars->27->1532",
10259 + "default.handlebars->27->1533",
10260 "default.handlebars->27->494"
10261 ]
10262 },
@@ -10269,7 +10275,7 @@
10275 "zh-chs": "文件提示",
10276 "xloc": [
10277 "default.handlebars->27->1113",
10272 - "default.handlebars->27->1531",
10278 + "default.handlebars->27->1532",
10279 "default.handlebars->27->493"
10280 ]
10281 },
@@ -10423,7 +10429,7 @@
10429 "zh-chs": "下次登錄時強制重置密碼。",
10430 "xloc": [
10431 "default.handlebars->27->1414",
10426 - "default.handlebars->27->1561"
10432 + "default.handlebars->27->1562"
10433 ]
10434 },
10435 {
@@ -10509,8 +10515,8 @@
10515 "ru": "Свободно",
10516 "zh-chs": "自由",
10517 "xloc": [
10512 - "default.handlebars->27->1604",
10513 - "default.handlebars->27->1606"
10518 + "default.handlebars->27->1605",
10519 + "default.handlebars->27->1607"
10520 ]
10521 },
10522 {
@@ -10802,7 +10808,7 @@
10808 "ru": "Администратор с полным доступом",
10809 "zh-chs": "正式管理員",
10810 "xloc": [
10805 - "default.handlebars->27->1502"
10811 + "default.handlebars->27->1503"
10812 ]
10813 },
10814 {
@@ -11227,7 +11233,7 @@
11233 "ru": "Члены группы",
11234 "zh-chs": "小組成員",
11235 "xloc": [
11230 - "default.handlebars->27->1465"
11236 + "default.handlebars->27->1466"
11237 ]
11238 },
11239 {
@@ -11400,7 +11406,7 @@
11406 "ru": "Всего кучи",
11407 "zh-chs": "堆總數",
11408 "xloc": [
11403 - "default.handlebars->27->1645"
11409 + "default.handlebars->27->1646"
11410 ]
11411 },
11412 {
@@ -11417,7 +11423,7 @@
11423 "ru": "Куча используется",
11424 "zh-chs": "堆使用",
11425 "xloc": [
11420 - "default.handlebars->27->1644"
11426 + "default.handlebars->27->1645"
11427 ]
11428 },
11429 {
@@ -12189,8 +12195,8 @@
12195 "xloc": [
12196 "default.handlebars->27->1293",
12197 "default.handlebars->27->1299",
12192 - "default.handlebars->27->1641",
12193 - "default.handlebars->27->1663"
12198 + "default.handlebars->27->1642",
12199 + "default.handlebars->27->1664"
12200 ]
12201 },
12202 {
@@ -12895,7 +12901,7 @@
12901 "ru": "Некорректный тип группы устройств",
12902 "zh-chs": "無效的設備組類型",
12903 "xloc": [
12898 - "default.handlebars->27->1618"
12904 + "default.handlebars->27->1619"
12905 ]
12906 },
12907 {
@@ -12912,7 +12918,7 @@
12918 "ru": "Некорректный JSON",
12919 "zh-chs": "無效的JSON",
12920 "xloc": [
12915 - "default.handlebars->27->1612"
12921 + "default.handlebars->27->1613"
12922 ]
12923 },
12924 {
@@ -12964,7 +12970,7 @@
12970 "ru": "Некорректная сигнатура PKCS",
12971 "zh-chs": "無效的PKCS簽名",
12972 "xloc": [
12967 - "default.handlebars->27->1610"
12973 + "default.handlebars->27->1611"
12974 ]
12975 },
12976 {
@@ -12981,7 +12987,7 @@
12987 "ru": "Некорректная сигнатура RSA",
12988 "zh-chs": "無效的RSA密碼",
12989 "xloc": [
12984 - "default.handlebars->27->1611"
12990 + "default.handlebars->27->1612"
12991 ]
12992 },
12993 {
@@ -13791,7 +13797,7 @@
13797 "ru": "Последний вход в систему",
13798 "zh-chs": "上次登錄",
13799 "xloc": [
13794 - "default.handlebars->27->1514"
13800 + "default.handlebars->27->1515"
13801 ]
13802 },
13803 {
@@ -13849,7 +13855,7 @@
13855 "ru": "Последнее изменение: {0}",
13856 "zh-chs": "上次更改:{0}",
13857 "xloc": [
13852 - "default.handlebars->27->1518"
13858 + "default.handlebars->27->1519"
13859 ]
13860 },
13861 {
@@ -14042,7 +14048,7 @@
14048 "ru": "Меньше",
14049 "zh-chs": "減",
14050 "xloc": [
14045 - "default.handlebars->27->1680"
14051 + "default.handlebars->27->1681"
14052 ]
14053 },
14054 {
@@ -14630,7 +14636,7 @@
14636 "ru": "Заблокированная учетная запись",
14637 "zh-chs": "賬戶鎖定",
14638 "xloc": [
14633 - "default.handlebars->27->1499"
14639 + "default.handlebars->27->1500"
14640 ]
14641 },
14642 {
@@ -15118,7 +15124,7 @@
15124 "ru": "Сообщения главного сервера",
15125 "zh-chs": "主服務器消息",
15126 "xloc": [
15121 - "default.handlebars->27->1652"
15127 + "default.handlebars->27->1653"
15128 ]
15129 },
15130 {
@@ -15519,7 +15525,7 @@
15525 "ru": "Достигнуто максимальное число сессий",
15526 "zh-chs": "達到的會話數上限",
15527 "xloc": [
15522 - "default.handlebars->27->1616"
15528 + "default.handlebars->27->1617"
15529 ]
15530 },
15531 {
@@ -15573,7 +15579,7 @@
15579 "ru": "Мегабайт",
15580 "zh-chs": "兆字節",
15581 "xloc": [
15576 - "default.handlebars->27->1642"
15582 + "default.handlebars->27->1643"
15583 ]
15584 },
15585 {
@@ -15590,7 +15596,7 @@
15596 "ru": "ОЗУ",
15597 "zh-chs": "記憶",
15598 "xloc": [
15593 - "default.handlebars->27->1633",
15599 + "default.handlebars->27->1634",
15600 "default.handlebars->27->802",
15601 "default.handlebars->container->column_l->p40->3->1->p40type->3"
15602 ]
@@ -15726,7 +15732,7 @@
15732 "ru": "Трафик MeshAgent",
15733 "zh-chs": "MeshAgent流量",
15734 "xloc": [
15729 - "default.handlebars->27->1654"
15735 + "default.handlebars->27->1655"
15736 ]
15737 },
15738 {
@@ -15743,7 +15749,7 @@
15749 "ru": "Обновление MeshAgent",
15750 "zh-chs": "MeshAgent更新",
15751 "xloc": [
15746 - "default.handlebars->27->1655"
15752 + "default.handlebars->27->1656"
15753 ]
15754 },
15755 {
@@ -15846,7 +15852,7 @@
15852 "ru": "Соединения сервера MeshCentral",
15853 "zh-chs": "MeshCentral服務器對等",
15854 "xloc": [
15849 - "default.handlebars->27->1653"
15855 + "default.handlebars->27->1654"
15856 ]
15857 },
15858 {
@@ -16109,7 +16115,7 @@
16115 "ru": "Диспетчер сообщения",
16116 "zh-chs": "郵件調度程序",
16117 "xloc": [
16112 - "default.handlebars->27->1651"
16118 + "default.handlebars->27->1652"
16119 ]
16120 },
16121 {
@@ -16240,7 +16246,7 @@
16246 "ru": "Еще",
16247 "zh-chs": "更多",
16248 "xloc": [
16243 - "default.handlebars->27->1679"
16249 + "default.handlebars->27->1680"
16250 ]
16251 },
16252 {
@@ -16575,7 +16581,7 @@
16581 "default.handlebars->27->1451",
16582 "default.handlebars->27->1456",
16583 "default.handlebars->27->1458",
16578 - "default.handlebars->27->1486",
16584 + "default.handlebars->27->1487",
16585 "default.handlebars->27->450",
16586 "default.handlebars->27->679",
16587 "default.handlebars->27->752",
@@ -16969,7 +16975,7 @@
16975 "zh-chs": "找不到活動",
16976 "xloc": [
16977 "default.handlebars->27->1342",
16972 - "default.handlebars->27->1598",
16978 + "default.handlebars->27->1599",
16979 "default.handlebars->27->750"
16980 ]
16981 },
@@ -17111,7 +17117,7 @@
17117 "ru": "Нет членов",
17118 "zh-chs": "沒有會員",
17119 "xloc": [
17114 - "default.handlebars->27->1468"
17120 + "default.handlebars->27->1469"
17121 ]
17122 },
17123 {
@@ -17260,8 +17266,8 @@
17266 "ru": "Нет общих групп устройств",
17267 "zh-chs": "沒有共同的設備組",
17268 "xloc": [
17263 - "default.handlebars->27->1474",
17264 - "default.handlebars->27->1578"
17269 + "default.handlebars->27->1475",
17270 + "default.handlebars->27->1579"
17271 ]
17272 },
17273 {
@@ -17348,8 +17354,8 @@
17354 "zh-chs": "沒有共同的設備",
17355 "es": "Sin dispositivos en común",
17356 "xloc": [
17351 - "default.handlebars->27->1480",
17352 - "default.handlebars->27->1572"
17357 + "default.handlebars->27->1481",
17358 + "default.handlebars->27->1573"
17359 ]
17360 },
17361 {
@@ -17537,7 +17543,7 @@
17543 "ru": "Нет серверных прав",
17544 "zh-chs": "沒有服務器權限",
17545 "xloc": [
17540 - "default.handlebars->27->1500"
17546 + "default.handlebars->27->1501"
17547 ]
17548 },
17549 {
@@ -17554,7 +17560,7 @@
17560 "ru": "Нет членства в группах пользователей",
17561 "zh-chs": "沒有用戶組成員身份",
17562 "xloc": [
17557 - "default.handlebars->27->1584"
17563 + "default.handlebars->27->1585"
17564 ]
17565 },
17566 {
@@ -17654,9 +17660,9 @@
17660 "default.handlebars->27->1312",
17661 "default.handlebars->27->1455",
17662 "default.handlebars->27->149",
17657 - "default.handlebars->27->1519",
17658 - "default.handlebars->27->1523",
17659 - "default.handlebars->27->1535",
17663 + "default.handlebars->27->1520",
17664 + "default.handlebars->27->1524",
17665 + "default.handlebars->27->1536",
17666 "default.handlebars->27->165",
17667 "default.handlebars->27->166",
17668 "default.handlebars->27->443",
@@ -17823,7 +17829,7 @@
17829 "ru": "Не задано",
17830 "zh-chs": "沒有設置",
17831 "xloc": [
17826 - "default.handlebars->27->1505"
17832 + "default.handlebars->27->1506"
17833 ]
17834 },
17835 {
@@ -17840,7 +17846,7 @@
17846 "zh-chs": "未經審核的",
17847 "es": "Sin Verificar",
17848 "xloc": [
17843 - "default.handlebars->27->1554"
17849 + "default.handlebars->27->1555"
17850 ]
17851 },
17852 {
@@ -17858,7 +17864,7 @@
17864 "zh-chs": "筆記",
17865 "xloc": [
17866 "default.handlebars->27->1132",
17861 - "default.handlebars->27->1542",
17867 + "default.handlebars->27->1543",
17868 "default.handlebars->27->513",
17869 "default.handlebars->27->565",
17870 "default.handlebars->27->584",
@@ -17966,7 +17972,7 @@
17972 "ru": "Уведомить",
17973 "zh-chs": "通知",
17974 "xloc": [
17969 - "default.handlebars->27->1544"
17975 + "default.handlebars->27->1545"
17976 ]
17977 },
17978 {
@@ -18078,7 +18084,7 @@
18084 "ru": "Произошло в {0}",
18085 "zh-chs": "發生在{0}",
18086 "xloc": [
18081 - "default.handlebars->27->1601"
18087 + "default.handlebars->27->1602"
18088 ]
18089 },
18090 {
@@ -18531,7 +18537,7 @@
18537 "ru": "Частичные права",
18538 "zh-chs": "部分權利",
18539 "xloc": [
18534 - "default.handlebars->27->1503"
18540 + "default.handlebars->27->1504"
18541 ]
18542 },
18543 {
@@ -18568,10 +18574,10 @@
18574 "default-mobile.handlebars->9->216",
18575 "default.handlebars->27->1411",
18576 "default.handlebars->27->1412",
18571 - "default.handlebars->27->1515",
18572 - "default.handlebars->27->1517",
18573 - "default.handlebars->27->1557",
18577 + "default.handlebars->27->1516",
18578 + "default.handlebars->27->1518",
18579 "default.handlebars->27->1558",
18580 + "default.handlebars->27->1559",
18581 "default.handlebars->27->227",
18582 "default.handlebars->27->256",
18583 "default.handlebars->27->608"
@@ -18667,7 +18673,7 @@
18673 "ru": "Подсказка пароля",
18674 "zh-chs": "密碼提示",
18675 "xloc": [
18670 - "default.handlebars->27->1559"
18676 + "default.handlebars->27->1560"
18677 ]
18678 },
18679 {
@@ -19108,7 +19114,7 @@
19114 "zh-chs": "插件動作",
19115 "xloc": [
19116 "default.handlebars->27->160",
19111 - "default.handlebars->27->1676"
19117 + "default.handlebars->27->1677"
19118 ]
19119 },
19120 {
@@ -19824,7 +19830,7 @@
19830 "ru": "RSS",
19831 "zh-chs": "的RSS",
19832 "xloc": [
19827 - "default.handlebars->27->1646"
19833 + "default.handlebars->27->1647"
19834 ]
19835 },
19836 {
@@ -20008,7 +20014,7 @@
20014 "ru": "Число ретрансляций",
20015 "zh-chs": "中繼計數",
20016 "xloc": [
20011 - "default.handlebars->27->1628"
20017 + "default.handlebars->27->1629"
20018 ]
20019 },
20020 {
@@ -20025,7 +20031,7 @@
20031 "ru": "Ошибки ретранслятора",
20032 "zh-chs": "中繼錯誤",
20033 "xloc": [
20028 - "default.handlebars->27->1621"
20034 + "default.handlebars->27->1622"
20035 ]
20036 },
20037 {
@@ -20042,8 +20048,8 @@
20048 "ru": "Сессии ретранслятора",
20049 "zh-chs": "接力會議",
20050 "xloc": [
20045 - "default.handlebars->27->1627",
20046 - "default.handlebars->27->1640"
20051 + "default.handlebars->27->1628",
20052 + "default.handlebars->27->1641"
20053 ]
20054 },
20055 {
@@ -20234,7 +20240,7 @@
20240 "ru": "Удаленный пользователь",
20241 "zh-chs": "遠程用戶",
20242 "xloc": [
20237 - "default.handlebars->27->1492"
20243 + "default.handlebars->27->1493"
20244 ]
20245 },
20246 {
@@ -20320,8 +20326,8 @@
20326 "zh-chs": "删除设备",
20327 "es": "Dispositivo Remoto",
20328 "xloc": [
20323 - "default.handlebars->27->1482",
20324 - "default.handlebars->27->1585"
20329 + "default.handlebars->27->1483",
20330 + "default.handlebars->27->1586"
20331 ]
20332 },
20333 {
@@ -20338,8 +20344,8 @@
20344 "ru": "Удалить группу устройств.",
20345 "zh-chs": "刪除設備組",
20346 "xloc": [
20341 - "default.handlebars->27->1484",
20342 - "default.handlebars->27->1596"
20347 + "default.handlebars->27->1485",
20348 + "default.handlebars->27->1597"
20349 ]
20350 },
20351 {
@@ -20356,9 +20362,9 @@
20362 "ru": "Удалить пользователя",
20363 "zh-chs": "刪除用戶",
20364 "xloc": [
20359 - "default.handlebars->27->1587",
20360 - "default.handlebars->27->1589",
20361 - "default.handlebars->27->1592"
20365 + "default.handlebars->27->1588",
20366 + "default.handlebars->27->1590",
20367 + "default.handlebars->27->1593"
20368 ]
20369 },
20370 {
@@ -20375,7 +20381,7 @@
20381 "ru": "Удалить все двухфакторные аутентификации.",
20382 "zh-chs": "刪除所有第二因素驗證。",
20383 "xloc": [
20378 - "default.handlebars->27->1562"
20384 + "default.handlebars->27->1563"
20385 ]
20386 },
20387 {
@@ -20457,7 +20463,7 @@
20463 "zh-chs": "删除该用户",
20464 "es": "Eliminar a este usuario",
20465 "xloc": [
20460 - "default.handlebars->27->1546"
20466 + "default.handlebars->27->1547"
20467 ]
20468 },
20469 {
@@ -20474,14 +20480,14 @@
20480 "ru": "Удалить членство пользователя в группе",
20481 "zh-chs": "刪除用戶組成員身份",
20482 "xloc": [
20477 - "default.handlebars->27->1582"
20483 + "default.handlebars->27->1583"
20484 ]
20485 },
20486 {
20487 "en": "Remove user group rights to this device",
20488 "nl": "Gebruikersrechten voor dit apparaat verwijderen",
20489 "xloc": [
20484 - "default.handlebars->27->1478"
20490 + "default.handlebars->27->1479"
20491 ]
20492 },
20493 {
@@ -20498,7 +20504,7 @@
20504 "ru": "Удалить права группы пользователей для этой группы устройств",
20505 "zh-chs": "刪除該設備組的用戶組權限",
20506 "xloc": [
20501 - "default.handlebars->27->1472",
20507 + "default.handlebars->27->1473",
20508 "default.handlebars->27->549"
20509 ]
20510 },
@@ -20517,9 +20523,9 @@
20523 "zh-chs": "刪除此設備組的用戶權限",
20524 "xloc": [
20525 "default.handlebars->27->1149",
20520 - "default.handlebars->27->1466",
20521 - "default.handlebars->27->1570",
20522 - "default.handlebars->27->1576",
20526 + "default.handlebars->27->1467",
20527 + "default.handlebars->27->1571",
20528 + "default.handlebars->27->1577",
20529 "default.handlebars->27->550"
20530 ]
20531 },
@@ -20582,7 +20588,7 @@
20588 "xloc": [
20589 "default-mobile.handlebars->9->51",
20590 "default.handlebars->27->1418",
20585 - "default.handlebars->27->1560"
20591 + "default.handlebars->27->1561"
20592 ]
20593 },
20594 {
@@ -20810,7 +20816,7 @@
20816 "ru": "Ограничения",
20817 "zh-chs": "限制條件",
20818 "xloc": [
20813 - "default.handlebars->27->1504"
20819 + "default.handlebars->27->1505"
20820 ]
20821 },
20822 {
@@ -21364,7 +21370,7 @@
21370 "zh-chs": "安全",
21371 "xloc": [
21372 "default-mobile.handlebars->9->217",
21367 - "default.handlebars->27->1540",
21373 + "default.handlebars->27->1541",
21374 "default.handlebars->27->228",
21375 "default.handlebars->27->609",
21376 "default.handlebars->27->783"
@@ -21384,7 +21390,7 @@
21390 "ru": "Ключ безопасности",
21391 "zh-chs": "安全密鑰",
21392 "xloc": [
21387 - "default.handlebars->27->1538"
21393 + "default.handlebars->27->1539"
21394 ]
21395 },
21396 {
@@ -21652,7 +21658,7 @@
21658 "ru": "Отправить уведомление всем пользователям этой группы.",
21659 "zh-chs": "向該組中的所有用戶發送通知。",
21660 "xloc": [
21655 - "default.handlebars->27->1463"
21661 + "default.handlebars->27->1464"
21662 ]
21663 },
21664 {
@@ -21769,7 +21775,7 @@
21775 "ru": "Отправить уведомление пользователю",
21776 "zh-chs": "發送用戶通知",
21777 "xloc": [
21772 - "default.handlebars->27->1545"
21778 + "default.handlebars->27->1546"
21779 ]
21780 },
21781 {
@@ -21837,7 +21843,7 @@
21843 "ru": "Сертификат сервера",
21844 "zh-chs": "服務器證書",
21845 "xloc": [
21840 - "default.handlebars->27->1656"
21846 + "default.handlebars->27->1657"
21847 ]
21848 },
21849 {
@@ -21854,7 +21860,7 @@
21860 "zh-chs": "服務器數據庫",
21861 "es": "Base de Datos del Servidor",
21862 "xloc": [
21857 - "default.handlebars->27->1657"
21863 + "default.handlebars->27->1658"
21864 ]
21865 },
21866 {
@@ -21912,7 +21918,7 @@
21918 "ru": "Квота сервера",
21919 "zh-chs": "服務器配額",
21920 "xloc": [
21915 - "default.handlebars->27->1512"
21921 + "default.handlebars->27->1513"
21922 ]
21923 },
21924 {
@@ -21946,7 +21952,7 @@
21952 "ru": "Права",
21953 "zh-chs": "服務器權限",
21954 "xloc": [
21949 - "default.handlebars->27->1511"
21955 + "default.handlebars->27->1512"
21956 ]
21957 },
21958 {
@@ -21963,7 +21969,7 @@
21969 "ru": "Состояние сервера",
21970 "zh-chs": "服務器狀態",
21971 "xloc": [
21966 - "default.handlebars->27->1607"
21972 + "default.handlebars->27->1608"
21973 ]
21974 },
21975 {
@@ -21997,7 +22003,7 @@
22003 "ru": "Трассировка сервера",
22004 "zh-chs": "服務器跟踪",
22005 "xloc": [
22000 - "default.handlebars->27->1667"
22006 + "default.handlebars->27->1668"
22007 ]
22008 },
22009 {
@@ -22136,7 +22142,7 @@
22142 "ru": "ServerStats.csv",
22143 "zh-chs": "ServerStats.csv",
22144 "xloc": [
22139 - "default.handlebars->27->1648"
22145 + "default.handlebars->27->1649"
22146 ]
22147 },
22148 {
@@ -23472,7 +23478,7 @@
23478 "ru": "Статус",
23479 "zh-chs": "狀態",
23480 "xloc": [
23475 - "default.handlebars->27->1553",
23481 + "default.handlebars->27->1554",
23482 "default.handlebars->container->column_l->p42->p42tbl->1->0->7"
23483 ]
23484 },
@@ -24036,7 +24042,7 @@
24042 "zh-chs": "終端通知",
24043 "xloc": [
24044 "default.handlebars->27->1112",
24039 - "default.handlebars->27->1530",
24045 + "default.handlebars->27->1531",
24046 "default.handlebars->27->492"
24047 ]
24048 },
@@ -24055,7 +24061,7 @@
24061 "zh-chs": "終端提示",
24062 "xloc": [
24063 "default.handlebars->27->1111",
24058 - "default.handlebars->27->1529",
24064 + "default.handlebars->27->1530",
24065 "default.handlebars->27->491"
24066 ]
24067 },
@@ -24199,7 +24205,7 @@
24205 "ru": "На данный момент уведомлений нет",
24206 "zh-chs": "目前沒有任何通知",
24207 "xloc": [
24202 - "default.handlebars->27->1600"
24208 + "default.handlebars->27->1601"
24209 ]
24210 },
24211 {
@@ -25405,7 +25411,7 @@
25411 "default-mobile.handlebars->9->174",
25412 "default-mobile.handlebars->9->175",
25413 "default.handlebars->27->13",
25408 - "default.handlebars->27->1591",
25414 + "default.handlebars->27->1592",
25415 "default.handlebars->27->370",
25416 "default.handlebars->27->41",
25417 "default.handlebars->27->42",
@@ -25447,7 +25453,7 @@
25453 "ru": "Неизвестное действие",
25454 "zh-chs": "未知動作",
25455 "xloc": [
25450 - "default.handlebars->27->1613"
25456 + "default.handlebars->27->1614"
25457 ]
25458 },
25459 {
@@ -25464,8 +25470,8 @@
25470 "zh-chs": "未知設備",
25471 "es": "Dispositivo desconocido",
25472 "xloc": [
25467 - "default.handlebars->27->1477",
25468 - "default.handlebars->27->1569"
25473 + "default.handlebars->27->1478",
25474 + "default.handlebars->27->1570"
25475 ]
25476 },
25477 {
@@ -25482,9 +25488,9 @@
25488 "ru": "Неизвестная группа устройств",
25489 "zh-chs": "未知設備組",
25490 "xloc": [
25485 - "default.handlebars->27->1471",
25486 - "default.handlebars->27->1575",
25487 - "default.handlebars->27->1617"
25491 + "default.handlebars->27->1472",
25492 + "default.handlebars->27->1576",
25493 + "default.handlebars->27->1618"
25494 ]
25495 },
25496 {
@@ -25501,7 +25507,7 @@
25507 "ru": "Неизвестная группа",
25508 "zh-chs": "未知群組",
25509 "xloc": [
25504 - "default.handlebars->27->1609"
25510 + "default.handlebars->27->1610"
25511 ]
25512 },
25513 {
@@ -25536,7 +25542,7 @@
25542 "ru": "Неизвестная группа пользователей",
25543 "zh-chs": "未知用戶組",
25544 "xloc": [
25539 - "default.handlebars->27->1581"
25545 + "default.handlebars->27->1582"
25546 ]
25547 },
25548 {
@@ -25618,7 +25624,7 @@
25624 "ru": "Актуально",
25625 "zh-chs": "最新",
25626 "xloc": [
25621 - "default.handlebars->27->1674"
25627 + "default.handlebars->27->1675"
25628 ]
25629 },
25630 {
@@ -25867,8 +25873,8 @@
25873 "ru": "Использовано",
25874 "zh-chs": "用過的",
25875 "xloc": [
25870 - "default.handlebars->27->1603",
25871 - "default.handlebars->27->1605"
25876 + "default.handlebars->27->1604",
25877 + "default.handlebars->27->1606"
25878 ]
25879 },
25880 {
@@ -25888,7 +25894,7 @@
25894 "default-mobile.handlebars->9->329",
25895 "default.handlebars->27->1150",
25896 "default.handlebars->27->1367",
25891 - "default.handlebars->27->1467",
25897 + "default.handlebars->27->1468",
25898 "default.handlebars->27->184",
25899 "default.handlebars->27->552"
25900 ]
@@ -25944,7 +25950,7 @@
25950 "ru": "Учетные записи пользователей",
25951 "zh-chs": "用戶帳號",
25952 "xloc": [
25947 - "default.handlebars->27->1622"
25953 + "default.handlebars->27->1623"
25954 ]
25955 },
25956 {
@@ -25981,7 +25987,7 @@
25987 "zh-chs": "用戶同意",
25988 "xloc": [
25989 "default.handlebars->27->1118",
25984 - "default.handlebars->27->1536",
25990 + "default.handlebars->27->1537",
25991 "default.handlebars->27->498"
25992 ]
25993 },
@@ -26002,8 +26008,8 @@
26008 "default.handlebars->27->1206",
26009 "default.handlebars->27->1207",
26010 "default.handlebars->27->1450",
26005 - "default.handlebars->27->1583",
26006 - "default.handlebars->27->1594",
26011 + "default.handlebars->27->1584",
26012 + "default.handlebars->27->1595",
26013 "default.handlebars->27->551"
26014 ]
26015 },
@@ -26038,7 +26044,7 @@
26044 "ru": "Членство в группах пользователей",
26045 "zh-chs": "用戶組成員資格",
26046 "xloc": [
26041 - "default.handlebars->27->1580"
26047 + "default.handlebars->27->1581"
26048 ]
26049 },
26050 {
@@ -26056,7 +26062,7 @@
26062 "zh-chs": "用戶標識",
26063 "xloc": [
26064 "default.handlebars->27->1265",
26059 - "default.handlebars->27->1508"
26065 + "default.handlebars->27->1509"
26066 ]
26067 },
26068 {
@@ -26108,7 +26114,7 @@
26114 "zh-chs": "用戶名",
26115 "xloc": [
26116 "default.handlebars->27->1204",
26111 - "default.handlebars->27->1496"
26117 + "default.handlebars->27->1497"
26118 ]
26119 },
26120 {
@@ -26154,7 +26160,7 @@
26160 "ru": "Сессии пользователя",
26161 "zh-chs": "用戶會話",
26162 "xloc": [
26157 - "default.handlebars->27->1639"
26163 + "default.handlebars->27->1640"
26164 ]
26165 },
26166 {
@@ -26339,7 +26345,7 @@
26345 "xloc": [
26346 "default.handlebars->27->1440",
26347 "default.handlebars->27->1460",
26342 - "default.handlebars->27->1638",
26348 + "default.handlebars->27->1639",
26349 "default.handlebars->container->topbar->1->1->UsersSubMenuSpan->UsersSubMenu->1->0->UsersGeneral"
26350 ]
26351 },
@@ -26357,7 +26363,7 @@
26363 "ru": "Сессии пользователей",
26364 "zh-chs": "用戶會話",
26365 "xloc": [
26360 - "default.handlebars->27->1626"
26366 + "default.handlebars->27->1627"
26367 ]
26368 },
26369 {
@@ -26426,7 +26432,7 @@
26432 "zh-chs": "已驗證",
26433 "es": "Verficado",
26434 "xloc": [
26429 - "default.handlebars->27->1555"
26435 + "default.handlebars->27->1556"
26436 ]
26437 },
26438 {
@@ -26496,7 +26502,7 @@
26502 "zh-chs": "版本不兼容,请先升级您的MeshCentral安装",
26503 "es": "Versión Incompatible, por favor primero actualice su instalación de MeshCentral",
26504 "xloc": [
26499 - "default.handlebars->27->1670"
26505 + "default.handlebars->27->1671"
26506 ]
26507 },
26508 {
@@ -26562,8 +26568,8 @@
26568 "zh-chs": "查看变更日志",
26569 "es": "Ver registro de cambios",
26570 "xloc": [
26565 - "default.handlebars->27->1673",
26566 - "default.handlebars->27->1675"
26571 + "default.handlebars->27->1674",
26572 + "default.handlebars->27->1676"
26573 ]
26574 },
26575 {
@@ -26614,7 +26620,7 @@
26620 "ru": "Посмотреть примечания об этом пользователе",
26621 "zh-chs": "查看有關此用戶的註釋",
26622 "xloc": [
26617 - "default.handlebars->27->1543"
26623 + "default.handlebars->27->1544"
26624 ]
26625 },
26626 {
@@ -26806,8 +26812,8 @@
26812 "ru": "Веб-сервер",
26813 "zh-chs": "網絡服務器",
26814 "xloc": [
26809 - "default.handlebars->27->1659",
26810 - "default.handlebars->27->1660"
26815 + "default.handlebars->27->1660",
26816 + "default.handlebars->27->1661"
26817 ]
26818 },
26819 {
@@ -26824,7 +26830,7 @@
26830 "ru": "Запросы веб-сервера",
26831 "zh-chs": "Web服務器請求",
26832 "xloc": [
26827 - "default.handlebars->27->1661"
26833 + "default.handlebars->27->1662"
26834 ]
26835 },
26836 {
@@ -26841,7 +26847,7 @@
26847 "ru": "Ретранслятор Web Socket",
26848 "zh-chs": "Web套接字中繼",
26849 "xloc": [
26844 - "default.handlebars->27->1662"
26850 + "default.handlebars->27->1663"
26851 ]
26852 },
26853 {
@@ -26946,7 +26952,7 @@
26952 "ru": "Будет изменено при следующем входе в систему.",
26953 "zh-chs": "下次登錄時將更改。",
26954 "xloc": [
26949 - "default.handlebars->27->1516"
26955 + "default.handlebars->27->1517"
26956 ]
26957 },
26958 {
@@ -27862,7 +27868,7 @@
27868 "ru": "\\\\'",
27869 "zh-chs": "\\\\'",
27870 "xloc": [
27865 - "default.handlebars->27->1671"
27871 + "default.handlebars->27->1672"
27872 ]
27873 },
27874 {
@@ -28133,7 +28139,7 @@
28139 "ru": "свободно",
28140 "zh-chs": "自由",
28141 "xloc": [
28136 - "default.handlebars->27->1634"
28142 + "default.handlebars->27->1635"
28143 ]
28144 },
28145 {
@@ -28489,7 +28495,7 @@
28495 "ru": "servertrace.csv",
28496 "zh-chs": "servertrace.csv",
28497 "xloc": [
28492 - "default.handlebars->27->1669"
28498 + "default.handlebars->27->1670"
28499 ]
28500 },
28501 {
@@ -28542,7 +28548,7 @@
28548 "zh-chs": "時間,conn.agent,conn.users,conn.usersessions,conn.relaysession,conn.intelamt,mem.external,mem.heapused,mem.heaptotal,mem.rss",
28549 "es": "time, conn.agent, conn.users, conn.usersessions, conn.relaysession, conn.intelamt, mem.external, mem.heapused, mem.heaptotal, mem.rss",
28550 "xloc": [
28545 - "default.handlebars->27->1647"
28551 + "default.handlebars->27->1648"
28552 ]
28553 },
28554 {
@@ -28559,7 +28565,7 @@
28565 "ru": "time, source, message",
28566 "zh-chs": "時間,來源,訊息",
28567 "xloc": [
28562 - "default.handlebars->27->1668"
28568 + "default.handlebars->27->1669"
28569 ]
28570 },
28571 {
@@ -28590,7 +28596,7 @@
28596 "ru": "всего",
28597 "zh-chs": "總",
28598 "xloc": [
28593 - "default.handlebars->27->1635"
28599 + "default.handlebars->27->1636"
28600 ]
28601 },
28602 {
@@ -28795,7 +28801,7 @@
28801 "ru": "{0} активных сессий",
28802 "zh-chs": "{0}個活動會話",
28803 "xloc": [
28798 - "default.handlebars->27->1551"
28804 + "default.handlebars->27->1552"
28805 ]
28806 },
28807 {
@@ -28881,7 +28887,7 @@
28887 "ru": "{0} групп",
28888 "zh-chs": "{0}個群組",
28889 "xloc": [
28884 - "default.handlebars->27->1521"
28890 + "default.handlebars->27->1522"
28891 ]
28892 },
28893 {
@@ -29439,4 +29445,4 @@
29445 ]
29446 }
29447 ]
29442 -}
29448 +}
\ No newline at end of file
views/default.handlebars
+84 -75
@@ -8579,7 +8579,8 @@
8579 x += addHtmlValue("User Group", '<div style=width:230px;margin:0;padding:0><select onchange=p20validateAddMeshUserDialog() id=dp2groupid style=width:100%' + (selected?' disabled':'') + '>' + y + '</select></div>');
8580 } else if (userid === 3) {
8581 var y = '';
8582 - for (var i in meshes) { if ((currentUserGroup.links == null) || (currentUserGroup.links[i] == null)) { y += '<option value=' + encodeURIComponent(i) + '>' + EscapeHtml(meshes[i].name) + '</option>'; } }
8582 + if (selected) { selected = decodeURIComponent(selected); }
8583 + for (var i in meshes) { if ((selected != null) || (currentUserGroup.links == null) || (currentUserGroup.links[i] == null)) { y += '<option value=' + encodeURIComponent(i) + ((selected == i)?' selected':' ') + '>' + EscapeHtml(meshes[i].name) + '</option>'; } }
8584 x += addHtmlValue("Device Group", '<div style=width:230px;margin:0;padding:0><select onchange=p20validateAddMeshUserDialog() id=dp2groupid style=width:100%>' + y + '</select></div>');
8585 } else if ((userid === 4) || (userid == 7)) {
8586 var y = '', selectedMeshId = null, selectedNode = null;
@@ -8605,8 +8606,11 @@
8606 x += format("Group permissions for user {0}.", uname) + '<br /><br />';
8607 }
8608 }
8609 +
8610 + var urights = -1, meshRightsActive = ((userid != 4) && (userid != 5) && (userid != 6) && (userid != 7));
8611 +
8612 x += '<div style="height:120px;overflow-y:scroll;border:1px solid gray">';
8609 - if ((userid != 4) && (userid != 5) && (userid != 6) && (userid != 7)) {
8613 + if (meshRightsActive) {
8614 x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20fulladmin>' + "Full Administrator" + '</label><br>';
8615 x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20editmesh>' + "Edit Device Group" + '</label><br>';
8616 x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20manageusers>' + "Manage Device Group Users" + '</label><br>';
@@ -8627,6 +8631,7 @@
8631 x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20chatnotify>' + "Chat & Notify" + '</label><br>';
8632 x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20uninstall>' + "Uninstall Agent" + '</label><br>';
8633 x += '</div>';
8634 +
8635 if (userid == null) {
8636 setDialogMode(2, "Add Users to Device Group", 3, p20showAddMeshUserDialogEx, x);
8637 Q('dp20username').focus();
@@ -8636,6 +8641,9 @@
8641 setDialogMode(2, "Add User Group", 3, p20showAddMeshUserDialogEx, x, userid);
8642 } else if (userid === 3) {
8643 setDialogMode(2, "Add Device Group", 3, p20showAddMeshUserDialogEx, x, userid);
8644 + QE('dp2groupid', selected == null);
8645 + if (selected != null) { urights = currentUserGroup.links[decodeURIComponent(selected)].rights; }
8646 + if (urights == 0xFFFFFFFF) { Q('p20fulladmin').checked = true; urights = -1; }
8647 } else if (userid === 4) {
8648 setDialogMode(2, (selected == null)?"Add Device Permissions":"Edit Device Permissions", 3, p20showAddMeshUserDialogEx, x, userid);
8649 QE('dp2meshid', selected == null);
@@ -8644,84 +8652,53 @@
8652 setDialogMode(2, (selected == null)?"Add Device Permissions":"Edit Device Permissions", 3, p20showAddMeshUserDialogEx, x, userid);
8653 QE('dp2meshid', selected == null);
8654 QE('dp2nodeid', selected == null);
8655 + if (selected != null) { urights = currentUserGroup.links[decodeURIComponent(selected)].rights; QE('dp20username', false); }
8656 } else if (userid === 5) {
8657 setDialogMode(2, selected?"Edit User Device Permissions":"Add User Device Permissions", 3, p20showAddMeshUserDialogEx, x, userid);
8658 if (selected != null) {
8659 selected = decodeURIComponent(selected);
8660 if ((users != null) && (users[selected] != null)) { Q('dp20username').value = users[selected].name; } else { Q('dp20username').value = selected.split('/')[2]; }
8652 - var urights = currentNode.links[selected].rights;
8661 + urights = currentNode.links[selected].rights;
8662 QE('dp20username', false);
8654 - if (urights & 8) {
8655 - Q('p20remotecontrol').checked = true;
8656 - if (urights & 65536) { Q('p20nodesktop').checked = true; }
8657 - if (urights & 256) { Q('p20remoteview').checked = true; }
8658 - if (urights & 512) { Q('p20noterminal').checked = true; }
8659 - if (urights & 1024) { Q('p20nofiles').checked = true; }
8660 - if (urights & 2048) { Q('p20noamt').checked = true; }
8661 - if (urights & 4096) { Q('p20remotelimitedinput').checked = true; }
8662 - }
8663 - if (urights & 16) { Q('p20meshagentconsole').checked = true; }
8664 - if (urights & 32) { Q('p20meshserverfiles').checked = true; }
8665 - if (urights & 64) { Q('p20wakedevices').checked = true; }
8666 - if (urights & 128) { Q('p20editnotes').checked = true; }
8667 - if (urights & 8192) { Q('p20limitevents').checked = true; }
8668 - if (urights & 16384) { Q('p20chatnotify').checked = true; }
8669 - if (urights & 32768) { Q('p20uninstall').checked = true; }
8663 }
8664 Q('dp20username').focus();
8665 } else if (userid === 6) {
8666 setDialogMode(2, selected?"Edit User Device Permissions":"Add User Device Permissions", 3, p20showAddMeshUserDialogEx, x, userid);
8674 - if (selected != null) {
8675 - selected = decodeURIComponent(selected);
8676 - var urights = currentNode.links[selected].rights;
8677 - if (urights & 8) {
8678 - Q('p20remotecontrol').checked = true;
8679 - if (urights & 65536) { Q('p20nodesktop').checked = true; }
8680 - if (urights & 256) { Q('p20remoteview').checked = true; }
8681 - if (urights & 512) { Q('p20noterminal').checked = true; }
8682 - if (urights & 1024) { Q('p20nofiles').checked = true; }
8683 - if (urights & 2048) { Q('p20noamt').checked = true; }
8684 - if (urights & 4096) { Q('p20remotelimitedinput').checked = true; }
8685 - }
8686 - if (urights & 16) { Q('p20meshagentconsole').checked = true; }
8687 - if (urights & 32) { Q('p20meshserverfiles').checked = true; }
8688 - if (urights & 64) { Q('p20wakedevices').checked = true; }
8689 - if (urights & 128) { Q('p20editnotes').checked = true; }
8690 - if (urights & 8192) { Q('p20limitevents').checked = true; }
8691 - if (urights & 16384) { Q('p20chatnotify').checked = true; }
8692 - if (urights & 32768) { Q('p20uninstall').checked = true; }
8693 - }
8667 + if (selected != null) { urights = currentNode.links[decodeURIComponent(selected)].rights; }
8668 } else {
8669 if (userid.startsWith('ugrp/')) {
8670 setDialogMode(2, "Edit Device Group Permissions", 7, p20showAddMeshUserDialogEx, x, userid);
8671 } else {
8672 setDialogMode(2, "Edit User Device Group Permissions", 7, p20showAddMeshUserDialogEx, x, userid);
8673 }
8700 - var cmeshrights = GetMeshRights(currentMesh), meshrights = GetMeshRights(currentMesh, userid);
8701 - if (meshrights == 0xFFFFFFFF) {
8702 - Q('p20fulladmin').checked = true;
8703 - } else {
8704 - if (meshrights & 1) { Q('p20editmesh').checked = true; }
8705 - if (meshrights & 2) { Q('p20manageusers').checked = true; }
8706 - if (meshrights & 4) { Q('p20managecomputers').checked = true; }
8707 - if (meshrights & 8) {
8708 - Q('p20remotecontrol').checked = true;
8709 - if (meshrights & 65536) { Q('p20nodesktop').checked = true; }
8710 - if (meshrights & 256) { Q('p20remoteview').checked = true; }
8711 - if (meshrights & 512) { Q('p20noterminal').checked = true; }
8712 - if (meshrights & 1024) { Q('p20nofiles').checked = true; }
8713 - if (meshrights & 2048) { Q('p20noamt').checked = true; }
8714 - if (meshrights & 4096) { Q('p20remotelimitedinput').checked = true; }
8715 - }
8716 - if (meshrights & 16) { Q('p20meshagentconsole').checked = true; }
8717 - if (meshrights & 32) { Q('p20meshserverfiles').checked = true; }
8718 - if (meshrights & 64) { Q('p20wakedevices').checked = true; }
8719 - if (meshrights & 128) { Q('p20editnotes').checked = true; }
8720 - if (meshrights & 8192) { Q('p20limitevents').checked = true; }
8721 - if (meshrights & 16384) { Q('p20chatnotify').checked = true; }
8722 - if (meshrights & 32768) { Q('p20uninstall').checked = true; }
8674 + var cmeshrights = GetMeshRights(currentMesh), urights = GetMeshRights(currentMesh, userid);
8675 + if (urights == 0xFFFFFFFF) { Q('p20fulladmin').checked = true; urights = -1; }
8676 + }
8677 +
8678 + if (urights != -1) {
8679 + if (meshRightsActive) {
8680 + if (urights & 1) { Q('p20editmesh').checked = true; }
8681 + if (urights & 2) { Q('p20manageusers').checked = true; }
8682 + if (urights & 4) { Q('p20managecomputers').checked = true; }
8683 }
8684 + if (urights & 8) {
8685 + Q('p20remotecontrol').checked = true;
8686 + if (urights & 65536) { Q('p20nodesktop').checked = true; }
8687 + if (urights & 256) { Q('p20remoteview').checked = true; }
8688 + if (urights & 512) { Q('p20noterminal').checked = true; }
8689 + if (urights & 1024) { Q('p20nofiles').checked = true; }
8690 + if (urights & 2048) { Q('p20noamt').checked = true; }
8691 + if (urights & 4096) { Q('p20remotelimitedinput').checked = true; }
8692 + }
8693 + if (urights & 16) { Q('p20meshagentconsole').checked = true; }
8694 + if (urights & 32) { Q('p20meshserverfiles').checked = true; }
8695 + if (urights & 64) { Q('p20wakedevices').checked = true; }
8696 + if (urights & 128) { Q('p20editnotes').checked = true; }
8697 + if (urights & 8192) { Q('p20limitevents').checked = true; }
8698 + if (urights & 16384) { Q('p20chatnotify').checked = true; }
8699 + if (urights & 32768) { Q('p20uninstall').checked = true; }
8700 }
8701 +
8702 p20validateAddMeshUserDialog(userid);
8703 return false;
8704 }
@@ -8767,12 +8744,16 @@
8744 ok = (nodeid != '');
8745 }
8746
8747 + /*
8748 var meshrights = null;
8749 if ((xxdialogTag === 1) || (xxdialogTag === 3)) {
8772 - meshrights = GetMeshRights(decodeURIComponent(Q('dp2groupid').value));
8750 + meshrights = meshes[decodeURIComponent(Q('dp2groupid').value)].links[userinfo._id].rights;
8751 + //meshrights = GetMeshRights(decodeURIComponent(Q('dp2groupid').value));
8752 } else {
8774 - meshrights = GetMeshRights(currentMesh);
8753 + meshrights = currentMesh.links[userinfo._id].rights;
8754 + //meshrights = GetMeshRights(currentMesh);
8755 }
8756 + */
8757 if (Q('dp20username')) {
8758 var xusers = Q('dp20username').value.split(',');
8759 for (var i in xusers) {
@@ -8804,8 +8785,10 @@
8785 var nc;
8786 if (Q('p20fulladmin') != null) {
8787 nc = !Q('p20fulladmin').checked;
8807 - QE('p20fulladmin', meshrights == 0xFFFFFFFF);
8808 - QE('p20editmesh', nc && (meshrights == 0xFFFFFFFF));
8788 + //QE('p20fulladmin', meshrights == 0xFFFFFFFF);
8789 + //QE('p20editmesh', nc && (meshrights == 0xFFFFFFFF));
8790 + //QE('p20fulladmin', nc);
8791 + QE('p20editmesh', nc);
8792 QE('p20manageusers', nc);
8793 QE('p20managecomputers', nc);
8794 } else {
@@ -8831,6 +8814,7 @@
8814 if (b == 2) {
8815 p20viewuserEx(b, t);
8816 } else {
8817 + // Get the currently selected rights
8818 var meshadmin = 0;
8819 if ((Q('p20fulladmin') != null) && (Q('p20fulladmin').checked == true)) { meshadmin = 0xFFFFFFFF; } else {
8820 if (Q('p20fulladmin') != null) {
@@ -8854,29 +8838,49 @@
8838 if (Q('p20uninstall').checked == true) meshadmin += 32768;
8839 }
8840
8841 + // Clean up incorrect rights. If Remote Control is not selected, remove flags that don't make sense.
8842 + if ((meshadmin & 8) == 0) {
8843 + // Remove 256, 512, 1024, 2048, 4096, 65536
8844 + if (meshadmin & 256) { meshadmin -= 256; }
8845 + if (meshadmin & 512) { meshadmin -= 512; }
8846 + if (meshadmin & 1024) { meshadmin -= 1024; }
8847 + if (meshadmin & 2048) { meshadmin -= 2048; }
8848 + if (meshadmin & 4096) { meshadmin -= 4096; }
8849 + if (meshadmin & 65536) { meshadmin -= 65536; }
8850 + }
8851 +
8852 + // Send the action to the server
8853 if (t === 1) {
8854 + // Add current user to device group
8855 var meshid = decodeURIComponent(Q('dp2groupid').value), mesh = meshes[meshid];
8856 if (mesh != null) { meshserver.send({ action: 'addmeshuser', meshid: meshid, meshname: mesh.name, userids: [ currentUser._id ], meshadmin: meshadmin }); }
8857 } else if (t === 2) {
8858 + // Add user group to device group
8859 var ugrpid = decodeURIComponent(Q('dp2groupid').value), mesh = meshes[currentMesh._id];
8860 if (mesh != null) { meshserver.send({ action: 'addmeshuser', meshid: currentMesh._id, meshname: currentMesh.name, userid: ugrpid, meshadmin: meshadmin }); }
8861 } else if (t === 3) {
8862 + // Add device group to current user group
8863 var meshid = decodeURIComponent(Q('dp2groupid').value), mesh = meshes[meshid];
8864 if (mesh != null) { meshserver.send({ action: 'addmeshuser', meshid: meshid, meshname: mesh.name, userids: [ currentUserGroup._id ], meshadmin: meshadmin }); }
8865 } else if (t === 4) {
8866 + // Add current user to device
8867 var nodeid = decodeURIComponent(Q('dp2nodeid').value), node = getNodeFromId(nodeid);
8868 if (node != null) { meshserver.send({ action: 'adddeviceuser', nodeid: nodeid, nodename: node.name, userids: [ currentUser._id ], rights: meshadmin }); }
8869 } else if (t === 5) {
8870 + // Add users to device
8871 var users = Q('dp20username').value.split(','), users2 = [];
8872 for (var i in users) { users2.push(users[i].trim()); }
8873 meshserver.send({ action: 'adddeviceuser', nodeid: currentNode._id, nodename: currentNode.name, usernames: users2, rights: meshadmin });
8874 } else if (t === 6) {
8875 + // Add user group to device
8876 var ugrpid = decodeURIComponent(Q('dp2groupid').value);
8877 if (currentNode != null) { meshserver.send({ action: 'adddeviceuser', nodeid: currentNode._id, nodename: currentNode.name, userids: [ ugrpid ], rights: meshadmin }); }
8878 } else if (t === 7) {
8879 + // Add current user group to device
8880 var nodeid = decodeURIComponent(Q('dp2nodeid').value), node = getNodeFromId(nodeid);
8881 if (node != null) { meshserver.send({ action: 'adddeviceuser', nodeid: nodeid, nodename: node.name, userids: [ currentUserGroup._id ], rights: meshadmin }); }
8882 } else {
8883 + // Add user to device group
8884 if (t == null) {
8885 var users = Q('dp20username').value.split(','), users2 = [];
8886 for (var i in users) { users2.push(users[i].trim()); }
@@ -10179,8 +10183,14 @@
10183 var group = currentUserGroup = usergroups?usergroups[decodeURIComponent(groupid)]:null;
10184 if (group == null) { if (xxcurrentView == 51) { setDialogMode(0); go(50); } return; }
10185 QH('p51groupName', group.name);
10182 - var usercount = 0, meshcount = 0;
10183 - if (group.links) { for (var i in group.links) { if (i.startsWith('user/')) { usercount++; } if (i.startsWith('mesh/')) { meshcount++; } } }
10186 + var usercount = 0, meshcount = 0, devicecount = 0;
10187 + if (group.links) {
10188 + for (var i in group.links) {
10189 + if (i.startsWith('user/')) { usercount++; }
10190 + if (i.startsWith('mesh/')) { meshcount++; }
10191 + if (i.startsWith('node/')) { devicecount++; }
10192 + }
10193 + }
10194 var desc = group.desc;
10195 if ((desc == null) || (desc == '')) { desc = '<i>' + "None" + '<i>'; } else { desc = EscapeHtml(desc); }
10196
@@ -10194,6 +10204,7 @@
10204 }
10205 x += addDeviceAttribute("Users", usercount);
10206 x += addDeviceAttribute("Device Groups", meshcount);
10207 + x += addDeviceAttribute("Devices", devicecount);
10208
10209 x += '</table></div><br />';
10210
@@ -10221,7 +10232,7 @@
10232 }
10233 sortedusers.sort(function(a, b) { if (a.name > b.name) return 1; if (a.name < b.name) return -1; return 0; });
10234
10224 - // Display all users for this mesh
10235 + // Display all users for this user group
10236 for (var i in sortedusers) {
10237 var trash = '<a href=# onclick=\'return p51deleteUser(event,"' + encodeURIComponent(sortedusers[i].id) + '")\' title=\"' + "Remove user rights to this device group" + '\" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>';
10238 var username = EscapeHtml(decodeURIComponent(sortedusers[i].name));
@@ -10234,6 +10245,7 @@
10245
10246 x += '</tbody></table><br />';
10247
10248 + // Display all device groups for this user group
10249 count = 1;
10250 var deviceGroupCount = 0, newDeviceGroup = false;
10251 for (var i in meshes) { deviceGroupCount++; if ((currentUserGroup.links == null) || (currentUserGroup.links[i] == null)) { newDeviceGroup = true; } }
@@ -10249,9 +10261,7 @@
10261 if (mesh) { meshname = '<a href=# onclick=\'gotoMesh("' + mesh._id + '");haltEvent(event);\'>' + mesh.name + '</a>'; } else {}
10262 if ((cr & 2) != 0) {
10263 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>';
10252 -
10253 - // TODO
10254 - //rights = '<div style=cursor:pointer onclick=p20showAddMeshUserDialog(5,\"' + encodeURIComponent(userid) + '\")>' + rights + ' <img class=hoverButton style=cursor:pointer src=images/link5.png></div>';
10264 + rights = '<div style=cursor:pointer onclick=p20showAddMeshUserDialog(3,\"' + encodeURIComponent(mesh._id) + '\")>' + rights + ' <img class=hoverButton style=cursor:pointer src=images/link5.png></div>';
10265 }
10266 x += '<tr ' + (((++count % 2) == 0) ? 'style=background-color:#DDD' : '') + '><td style=width:30%><div title=\"' + "Device Group" + '\" class=m99></div><div>&nbsp;' + meshname + '<div></div></div></td><td style=width:70%><div style=float:right>' + trash + '</div><div>' + rights + '</div></td></tr>';
10267 }
@@ -10260,6 +10270,7 @@
10270 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>'; }
10271 x += '</tbody></table>';
10272
10273 + // Display all devices for this user group
10274 count = 1;
10275 x += '<br /><a href=# onclick="return p20showAddMeshUserDialog(7)" style=cursor:pointer;margin-right:10px><img src=images/icon-addnew.png border=0 height=12 width=12> ' + "Add Device" + '</a>';
10276 x += '<table style="color:black;background-color:#EEE;border-color:#AAA;border-width:1px;border-style:solid;border-collapse:collapse" border=0 cellpadding=2 cellspacing=0 width=100%><tbody><tr style=background-color:#AAAAAA;font-weight:bold><th scope=col style=text-align:left;width:430px>' + "Common Devices" + '</th><th scope=col style=text-align:left></th></tr>';
@@ -10272,9 +10283,7 @@
10283 if (node) { nodename = '<a href=# onclick=\'gotoDevice("' + node._id + '");haltEvent(event);\'>' + node.name + '</a>'; } else {}
10284 if ((cr & 2) != 0) {
10285 trash = '<a href=# onclick=\'return p51removeDeviceFromUserGroup(event,"' + encodeURIComponent(node._id) + '")\' title=\"' + "Remove user group rights to this device" + '\" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>';
10275 -
10276 - // TODO
10277 - //rights = '<div style=cursor:pointer onclick=p20showAddMeshUserDialog(5,\"' + encodeURIComponent(userid) + '\")>' + rights + ' <img class=hoverButton style=cursor:pointer src=images/link5.png></div>';
10286 + rights = '<div style=cursor:pointer onclick=p20showAddMeshUserDialog(7,\"' + encodeURIComponent(node._id) + '\")>' + rights + ' <img class=hoverButton style=cursor:pointer src=images/link5.png></div>';
10287 }
10288 x += '<tr ' + (((++count % 2) == 0) ? 'style=background-color:#DDD' : '') + '><td style=width:30%><div title=\"' + "Device Group" + '\" class=m99></div><div>&nbsp;' + nodename + '<div></div></div></td><td style=width:70%><div style=float:right>' + trash + '</div><div>' + rights + '</div></td></tr>';
10289 }