Bug fixes, added AmtWake to MeshCMD.
Ylian Saint-Hilaire committed
May 13, 2020 at 00:27 UTC
04dfeebe1e39559863aa9ed282bd92385d8f396a
10 files changed
+584
-358
agents/MeshCmd-signed.exe
Binary files a/agents/MeshCmd-signed.exe and b/agents/MeshCmd-signed.exe differ
agents/MeshCmd64-signed.exe
Binary files a/agents/MeshCmd64-signed.exe and b/agents/MeshCmd64-signed.exe differ
agents/meshcmd.js
+147
-15
@@ -114,7 +114,7 @@ function run(argv) {
114
//console.log('addedModules = ' + JSON.stringify(addedModules));
115
var actionpath = 'meshaction.txt';
116
if (args.actionfile != null) { actionpath = args.actionfile; }
117
- var actions = ['HELP', 'ROUTE', 'MICROLMS', 'AMTSCAN', 'AMTPOWER', 'AMTFEATURES', 'AMTNETWORK', 'AMTLOADWEBAPP', 'AMTLOADSMALLWEBAPP', 'AMTLOADLARGEWEBAPP', 'AMTCLEARWEBAPP', 'AMTSTORAGESTATE', 'AMTINFO', 'AMTINFODEBUG', 'AMTVERSIONS', 'AMTHASHES', 'AMTSAVESTATE', 'AMTSCRIPT', 'AMTUUID', 'AMTCCM', 'AMTACM', 'AMTDEACTIVATE', 'AMTACMDEACTIVATE', 'SMBIOS', 'RAWSMBIOS', 'MESHCOMMANDER', 'AMTAUDITLOG', 'AMTEVENTLOG', 'AMTPRESENCE', 'AMTWIFI'];
117
+ var actions = ['HELP', 'ROUTE', 'MICROLMS', 'AMTSCAN', 'AMTPOWER', 'AMTFEATURES', 'AMTNETWORK', 'AMTLOADWEBAPP', 'AMTLOADSMALLWEBAPP', 'AMTLOADLARGEWEBAPP', 'AMTCLEARWEBAPP', 'AMTSTORAGESTATE', 'AMTINFO', 'AMTINFODEBUG', 'AMTVERSIONS', 'AMTHASHES', 'AMTSAVESTATE', 'AMTSCRIPT', 'AMTUUID', 'AMTCCM', 'AMTACM', 'AMTDEACTIVATE', 'AMTACMDEACTIVATE', 'SMBIOS', 'RAWSMBIOS', 'MESHCOMMANDER', 'AMTAUDITLOG', 'AMTEVENTLOG', 'AMTPRESENCE', 'AMTWIFI', 'AMTWAKE'];
118
119
// Load the action file
120
var actionfile = null;
@@ -201,6 +201,7 @@ function run(argv) {
201
console.log(' AmtNetwork - Intel AMT network interface settings.');
202
console.log(' AmtScan - Search local network for Intel AMT devices.');
203
console.log(' AmtWifi - Intel AMT Wifi interface settings.');
204
+ console.log(' AmtWake - Intel AMT Wake Alarms.');
205
console.log('\r\nHelp on a specific action using:\r\n');
206
console.log(' meshcmd help [action]');
207
exit(1); return;
@@ -395,7 +396,7 @@ function run(argv) {
396
console.log('\r\nOptional arguments:\r\n');
397
console.log(' --user [username] The Intel AMT login username, admin is default.');
398
console.log(' --tls Specifies that TLS must be used.');
398
- console.log(' --list List of stored Wifi profile');
399
+ console.log(' --list List Wifi profiles');
400
console.log(' --add Add new Wifi profile');
401
console.log(' --name New Wifi profile name');
402
console.log(' --priority Priority of this profile - default 0');
@@ -404,6 +405,22 @@ function run(argv) {
405
console.log(' --enc Wifi Encryption type (3 - TKIP, 4 - CCMP) - default 3');
406
console.log(' --psk Wifi password/pre-shared key');
407
console.log(' --del [profile-name] Delete new Wifi profile');
408
+ } else if (action == 'amtwake') {
409
+ console.log('AmtWake is used to view/set/remote Intel AMT Wake Alarms. Example usage:\r\n\r\n meshcmd amtwake --host 1.2.3.4 --user admin --pass mypassword --list');
410
+ console.log('\r\nRequired arguments:\r\n');
411
+ console.log(' --host [hostname] The IP address or DNS name of Intel AMT, 127.0.0.1 is default.');
412
+ console.log(' --pass [password] The Intel AMT login password.');
413
+ console.log(' --[action] Action options are list, add, del.');
414
+ console.log('\r\nOptional arguments:\r\n');
415
+ console.log(' --user [username] The Intel AMT login username, admin is default.');
416
+ console.log(' --tls Specifies that TLS must be used.');
417
+ console.log(' --list List wake alarms profile');
418
+ console.log(' --add [alarm-name] Add new wake alarm');
419
+ console.log(' --date [yyyy-mm-dd] Alarm date in year-month-day format');
420
+ console.log(' --time (hh:mm:ss) Optional alarm time in hours:minutes:seconds format, default is 00:00:00.');
421
+ console.log(' --interval (dd-hh-mm) Optional alarm interval in days-hours-minutes format, default is alarm once.');
422
+ console.log(' --deletewhendone Indicates alarm is removed once triggered, default is to no remove.');
423
+ console.log(' --del [alarm-name] Remove a wake alarm');
424
} else {
425
actions.shift();
426
console.log('Invalid action, usage:\r\n\r\n meshcmd help [action]\r\n\r\nValid actions are: ' + actions.join(', ') + '.');
@@ -714,22 +731,24 @@ function run(argv) {
731
if ((settings.password == null) || (typeof settings.password != 'string') || (settings.password == '')) { console.log('No or invalid \"password\" specified, use --password [password].'); exit(1); return; }
732
if ((settings.username == null) || (typeof settings.username != 'string') || (settings.username == '')) { settings.username = 'admin'; }
733
if (args.add != null) {
717
- if ((args.name == null) || (typeof args.name != 'string') || args.name == '') {
718
- console.log("Wifi profile name is required."); exit(1); return;
719
- }
720
- if ((args.ssid == null) || (typeof args.ssid != 'string') || args.ssid == '') {
721
- console.log("Wifi SSID is required."); exit(1); return;
722
- }
723
- if ((args.psk == null) || (typeof args.psk != 'string') || args.psk == '') {
724
- console.log("Wifi password is required."); exit(1); return;
725
- }
734
+ if ((args.name == null) || (typeof args.name != 'string') || args.name == '') { console.log("Wifi profile name is required."); exit(1); return; }
735
+ if ((args.ssid == null) || (typeof args.ssid != 'string') || args.ssid == '') { console.log("Wifi SSID is required."); exit(1); return; }
736
+ if ((args.psk == null) || (typeof args.psk != 'string') || args.psk == '') { console.log("Wifi password is required."); exit(1); return; }
737
}
738
if (args.del !=null) {
728
- if ((settings.name == null) || (typeof settings.name != 'string') || settings.name == '') {
729
- console.log("Wifi profile name is required."); exit(1); return;
730
- }
739
+ if ((settings.name == null) || (typeof settings.name != 'string') || settings.name == '') { console.log("Wifi profile name is required."); exit(1); return; }
740
}
741
performAmtWifiConfig(args);
742
+ } else if (settings.action == 'amtwake') { // Perform remote Intel AMT wake alarm operations
743
+ if (settings.hostname == null) { settings.hostname = '127.0.0.1'; }
744
+ if ((settings.password == null) || (typeof settings.password != 'string') || (settings.password == '')) { console.log('No or invalid \"password\" specified, use --password [password].'); exit(1); return; }
745
+ if ((settings.username == null) || (typeof settings.username != 'string') || (settings.username == '')) { settings.username = 'admin'; }
746
+ if ((args.del != null) && ((typeof args.del != 'string') || args.del == '')) { console.log("Alarm name is required (--del [name])."); exit(1); return; }
747
+ if (args.add != null) {
748
+ if (((typeof args.add != 'string') || args.add == '')) { console.log("Wake alarm name is required (--add [name])."); exit(1); return; }
749
+ if (((typeof args.date != 'string') || args.data == '')) { console.log("Wake alarm date is required (--date [yyyy-mm-dd])."); exit(1); return; }
750
+ }
751
+ performAmtWakeConfig(args);
752
} else if (settings.action == 'amtfeatures') { // Perform remote Intel AMT feature configuration operation
753
if (settings.hostname == null) { settings.hostname = '127.0.0.1'; }
754
if ((settings.password == null) || (typeof settings.password != 'string') || (settings.password == '')) { console.log('No or invalid \"password\" specified, use --password [password].'); exit(1); return; }
@@ -2546,7 +2565,7 @@ function performAmtWifiConfig1(stack, name, response, status, args) {
2565
2566
if (args) {
2567
if (args.list) {
2549
- console.log('List of AMT Wifi profiles:');
2568
+ console.log('List of Intel AMT Wifi profiles:');
2569
if (wifiProfiles.length==0) {
2570
console.log('No Wifi profiles is stored.');
2571
}
@@ -2611,6 +2630,119 @@ function performAmtWifiConfig1(stack, name, response, status, args) {
2630
}
2631
}
2632
2633
+//
2634
+// Intel AMT wake alarm configuration
2635
+//
2636
+
2637
+function _fmtdatetime(str) {
2638
+ return str.replace('T', ' ').replace('Z', '');
2639
+}
2640
+
2641
+function _fmtinterval(str) {
2642
+ var cl = str.replace('T', '').substring(str.indexOf('P') + 1);
2643
+ cl = ' ' + cl.replace('D', " days ").replace('H', " hours ").replace('M', " minutes ");
2644
+ cl = cl.replace(" 1 days ", " 1 day ").replace(" 1 hours ", " 1 hour ").replace(" 1 minutes ", " 1 minute ");
2645
+ return cl.substring(0, cl.length - 1);
2646
+}
2647
+
2648
+function _fmttimepad(str) {
2649
+ str = '' + str;
2650
+ while (str.length < 2) { str = '0' + str; }
2651
+ return str;
2652
+}
2653
+
2654
+function convertAmtDataStr(str) {
2655
+ var timeArray = str.split('Z').join('').split('T').join('-').split(':').join('-').split('-');
2656
+ return new Date(timeArray[0], timeArray[1] - 1, timeArray[2], timeArray[3], timeArray[4], timeArray[5]);
2657
+}
2658
+
2659
+function prepareAlarmOccurenceTemplate(id, nm, start, interval, del) {
2660
+ return '<d:AlarmTemplate xmlns:d=\"http://intel.com/wbem/wscim/1/amt-schema/1/AMT_AlarmClockService\" xmlns:s=\"http://intel.com/wbem/wscim/1/ips-schema/1/IPS_AlarmClockOccurrence\"><s:InstanceID>' + id + '</s:InstanceID><s:StartTime><p:Datetime xmlns:p=\"http://schemas.dmtf.org/wbem/wscim/1/common\">' + start + '</p:Datetime></s:StartTime><s:Interval><p:Interval xmlns:p=\"http://schemas.dmtf.org/wbem/wscim/1/common\">' + interval + '</p:Interval></s:Interval><s:DeleteOnCompletion>' + del + '</s:DeleteOnCompletion></d:AlarmTemplate>';
2661
+}
2662
+
2663
+function performAmtWakeConfig(args) {
2664
+ if ((settings.hostname == '127.0.0.1') || (settings.hostname.toLowerCase() == 'localhost')) {
2665
+ settings.noconsole = true; startLms(performAmtWakeConfig0, false, args);
2666
+ } else {
2667
+ performAmtWakeConfig0(1, args);
2668
+ }
2669
+}
2670
+
2671
+function performAmtWakeConfig0(state, args) {
2672
+ var transport = require('amt-wsman-duk');
2673
+ var wsman = require('amt-wsman');
2674
+ var amt = require('amt');
2675
+ wsstack = new wsman(transport, settings.hostname, settings.tls ? 16993 : 16992, settings.username, settings.password, settings.tls);
2676
+ amtstack = new amt(wsstack);
2677
+ amtstack.BatchEnum(null, ['IPS_AlarmClockOccurrence'], performAmtWakeConfig1, args);
2678
+}
2679
+
2680
+function performAmtWakeConfig1(stack, name, response, status, args) {
2681
+ if (status == 200) {
2682
+ var response = response['IPS_AlarmClockOccurrence'].responses;
2683
+ if (!args) { process.exit(0); return; }
2684
+ if (args.list) {
2685
+ if (response.length == 0) {
2686
+ console.log('No wake alarms.');
2687
+ } else {
2688
+ for (var i = 0; i < response.length; i++) {
2689
+ var waketime = convertAmtDataStr(response[i]['StartTime']['Datetime']);
2690
+ var t = waketime.toLocaleString(), tx = t.indexOf('.');
2691
+ if (tx >= 0) { t = t.substring(0, tx); }
2692
+ var details = response[i]['ElementName'] + ', wake on ' + t.replace(' ', ' at ');
2693
+ if (response[i]['Interval'] != null) { details += ' and each' + _fmtinterval(response[i]['Interval']['Interval']); }
2694
+ if (response[i]['DeleteOnCompletion'] == true) { details += ", delete when done"; }
2695
+ console.log(details);
2696
+ }
2697
+ }
2698
+ process.exit(0);
2699
+ } else if (args.del) {
2700
+ // Remove a wake alarm, start by looking to see if it exists
2701
+ var alarmFound = false;
2702
+ for (var i = 0; i < response.length; i++) { if (response[i]['ElementName'] == args.del) { alarmFound = true; } }
2703
+ if (alarmFound == false) { console.log("Wake alarm " + args.del + " could not be found."); process.exit(0); return; }
2704
+ // Remote the alarm
2705
+ stack.Delete('IPS_AlarmClockOccurrence', { InstanceID: args.del },
2706
+ function (stck, nm, resp, sts) {
2707
+ if (sts == 200) { console.log("Done."); } else { console.log("Failed to delete wake alarm " + args.del + "."); }
2708
+ process.exit(0);
2709
+ },
2710
+ 0, 1);
2711
+ } else if (args.add) {
2712
+ // Add a wake alarm
2713
+ var alarmFound = false;
2714
+ for (var i = 0; i < response.length; i++) { if (response[i]['ElementName'] == args.add) { alarmFound = true; } }
2715
+ if (alarmFound) { console.log("Wake alarm " + args.add + " already exists."); process.exit(0); return; }
2716
+ if (typeof args.time != 'string') { args.time = '00:00:00'; }
2717
+ if (typeof args.interval != 'string') { args.interval = ''; }
2718
+ var alarm_name = args.add;
2719
+ var x1 = args.date.split('-');
2720
+ var x2 = args.time.split(':');
2721
+ var t = new Date(x1[0], x1[1] - 1, x1[2], x2[0], x2[1], 0, 0); // Not sure why, but month is 0 = JAN, 11 = DEC, seconds must be 00.
2722
+ var alarm_starttime = _fmttimepad(t.getFullYear()) + '-' + _fmttimepad(t.getMonth() + 1) + '-' + _fmttimepad(t.getDate()) + 'T' + _fmttimepad(t.getHours()) + ':' + _fmttimepad(t.getMinutes()) + ':' + _fmttimepad(t.getSeconds()) + 'Z';
2723
+ var x = args.interval.split('-');
2724
+ if (x.length != 3) { x = [0, 0, 0]; }
2725
+ var alarm_interval = 'P' + x[0] + 'DT' + x[1] + 'H' + x[2] + 'M';
2726
+ var alarm_doc = (args.deletewhendone != null);
2727
+ var tpl = prepareAlarmOccurenceTemplate(alarm_name, alarm_name, alarm_starttime, alarm_interval, alarm_doc);
2728
+ stack.wsman.ExecMethodXml(amtstack.CompleteName('AMT_AlarmClockService'), 'AddAlarm', tpl,
2729
+ function (ws, resuri, response, status) {
2730
+ if (status != 200) { console.log("Failed to add alarm. Status: " + status + ". Verify the alarm is for a future time."); }
2731
+ else if (response.Body['ReturnValue'] != 0) { console.log("Failed to add alarm " + response.Body['ReturnValueStr'] + ". Verify the alarm is for a future time."); }
2732
+ else { console.log("Done."); }
2733
+ process.exit(0);
2734
+ }
2735
+ );
2736
+ } else {
2737
+ console.log("Unknown action, specify --list, --del or --add.");
2738
+ process.exit(0);
2739
+ }
2740
+ } else {
2741
+ console.log("Error, status " + status + ".");
2742
+ process.exit(1);
2743
+ }
2744
+}
2745
+
2746
//
2747
// Intel AMT feature configuration action
2748
//
meshmail.js
+15
-4
@@ -300,14 +300,25 @@ module.exports.CreateMeshMail = function (parent) {
300
parent.debug('email', 'SMTP response: ' + JSON.stringify(err) + ', ' + JSON.stringify(info));
301
obj.sendingMail = false;
302
if (err == null) {
303
+ // Send the next mail
304
obj.pendingMails.shift();
305
obj.retry = 0;
305
- sendNextMail(); // Send the next mail
306
+ sendNextMail();
307
} else {
308
obj.retry++;
308
- parent.debug('email', 'SMTP server failed: ' + JSON.stringify(err));
309
- console.log('SMTP server failed: ' + JSON.stringify(err));
310
- if (obj.retry < 6) { setTimeout(sendNextMail, 60000); } // Wait and try again
309
+ parent.debug('email', 'SMTP server failed (Retry:' + obj.retry + '): ' + JSON.stringify(err));
310
+ console.log('SMTP server failed (Retry:' + obj.retry + '/3): ' + JSON.stringify(err));
311
+ // Wait and try again
312
+ if (obj.retry < 3) {
313
+ setTimeout(sendNextMail, 10000);
314
+ } else {
315
+ // Failed, send the next mail
316
+ parent.debug('email', 'SMTP server failed (Skipping): ' + JSON.stringify(err));
317
+ console.log('SMTP server failed (Skipping): ' + JSON.stringify(err));
318
+ obj.pendingMails.shift();
319
+ obj.retry = 0;
320
+ sendNextMail();
321
+ }
322
}
323
});
324
}
meshuser.js
+32
@@ -812,6 +812,19 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
812
}
813
break;
814
}
815
+ case 'email': {
816
+ if (parent.parent.mailserver == null) {
817
+ r = "No email service enabled.";
818
+ } else {
819
+ if (cmdargs['_'].length != 3) {
820
+ r = "Usage: email \"user@sample.com\" \"Subject\" \"Message\".";
821
+ } else {
822
+ parent.parent.mailserver.sendMail(cmdargs['_'][0], cmdargs['_'][1], cmdargs['_'][2]);
823
+ r = "Done.";
824
+ }
825
+ }
826
+ break;
827
+ }
828
case 'le': {
829
if (parent.parent.letsencrypt == null) {
830
r = "Let's Encrypt not in use.";
@@ -3871,6 +3884,25 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
3884
});
3885
break;
3886
}
3887
+ case 'emailuser': { // Send a email message to a user
3888
+ var errMsg = null, emailuser = null;
3889
+ if (parent.parent.mailserver == null) { errMsg = 'Email server not enabled'; }
3890
+ else if ((user.siteadmin & 2) == 0) { errMsg = 'No user management rights'; }
3891
+ else if (common.validateString(command.userid, 1, 2048) == false) { errMsg = 'Invalid userid'; }
3892
+ else if (common.validateString(command.subject, 1, 1000) == false) { errMsg = 'Invalid subject message'; }
3893
+ else if (common.validateString(command.msg, 1, 10000) == false) { errMsg = 'Invalid message'; }
3894
+ else {
3895
+ emailuser = parent.users[command.userid];
3896
+ if (emailuser == null) { errMsg = 'Invalid userid'; }
3897
+ else if (emailuser.email == null) { errMsg = 'No validated email address for this user'; }
3898
+ else if (emailuser.emailVerified !== true) { errMsg = 'No validated email address for this user'; }
3899
+ }
3900
+
3901
+ if (errMsg != null) { displayNotificationMessage(errMsg); break; }
3902
+ parent.parent.mailserver.sendMail(emailuser.email, command.subject, command.msg);
3903
+ displayNotificationMessage("Email sent.");
3904
+ break;
3905
+ }
3906
case 'getClip': {
3907
if (common.validateString(command.nodeid, 1, 1024) == false) break; // Check nodeid
3908
package.json
+1
-1
@@ -1,6 +1,6 @@
1
{
2
"name": "meshcentral",
3
- "version": "0.5.31",
3
+ "version": "0.5.32",
4
"keywords": [
5
"Remote Management",
6
"Intel AMT",
public/scripts/amt-wsman-0.2.0-min.js
+1
-1
@@ -1 +1 @@
1
-var WsmanStackCreateService=function(e,s,r,a,o,t){var p={};function l(e){if(!e)return"";var s=" ";for(var r in e)e.hasOwnProperty(r)&&0===r.indexOf("@")&&(s+=r.substring(1)+'="'+e[r]+'" ');return s}function w(e){if(!e)return"";if("string"==typeof e)return e;if(e.InstanceID)return'<w:SelectorSet><w:Selector Name="InstanceID">'+e.InstanceID+"</w:Selector></w:SelectorSet>";var s="<w:SelectorSet>";for(var r in e)if(e.hasOwnProperty(r)){if(s+='<w:Selector Name="'+r+'">',e[r].ReferenceParameters){s+="<a:EndpointReference>",s+="<a:Address>"+e[r].Address+"</a:Address><a:ReferenceParameters><w:ResourceURI>"+e[r].ReferenceParameters.ResourceURI+"</w:ResourceURI><w:SelectorSet>";var a=e[r].ReferenceParameters.SelectorSet.Selector;if(Array.isArray(a))for(var o=0;o<a.length;o++)s+="<w:Selector"+l(a[o])+">"+a[o].Value+"</w:Selector>";else s+="<w:Selector"+l(a)+">"+a.Value+"</w:Selector>";s+="</w:SelectorSet></a:ReferenceParameters></a:EndpointReference>"}else s+=e[r];s+="</w:Selector>"}return s+="</w:SelectorSet>"}return p.NextMessageId=1,p.Address="/wsman",p.comm=CreateWsmanComm(e,s,r,a,o,t),p.PerformAjax=function(e,o,s,r,a){null==a&&(a=""),p.comm.PerformAjax('<?xml version=\"1.0\" encoding=\"utf-8\"?><Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:w="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd" xmlns="http://www.w3.org/2003/05/soap-envelope" '+a+"><Header><a:Action>"+e,function(e,s,r){if(200==s){var a=p.ParseWsman(e);a&&null!=a?o(p,a.Header.ResourceURI,a,200,r):o(p,null,{Header:{HttpError:s}},601,r)}else o(p,null,{Header:{HttpError:s}},s,r)},s,r)},p.CancelAllQueries=function(e){p.comm.CancelAllQueries(e)},p.GetNameFromUrl=function(e){var s=e.lastIndexOf("/");return-1==s?e:e.substring(s+1)},p.ExecSubscribe=function(e,s,r,a,o,t,n,l,c,d){var m="",i="";null!=c&&null!=d&&(m="<t:IssuedTokens><t:RequestSecurityTokenResponse><t:TokenType>http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken</t:TokenType><t:RequestedSecurityToken><se:UsernameToken><se:Username>"+c+'</se:Username><se:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd#PasswordText">'+d+"</se:Password></se:UsernameToken></t:RequestedSecurityToken></t:RequestSecurityTokenResponse></t:IssuedTokens>",i='<Auth Profile="http://schemas.xmlsoap.org/ws/2004/08/eventing/DeliveryModes/secprofile/http/digest"/>'),l=null!=l&&null!=l?"<a:ReferenceParameters>"+l+"</a:ReferenceParameters>":"";var u="http://schemas.xmlsoap.org/ws/2004/08/eventing/Subscribe</a:Action><a:To>"+p.Address+"</a:To><w:ResourceURI>"+e+"</w:ResourceURI><a:MessageID>"+p.NextMessageId+++"</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo>"+w(n)+m+'</Header><Body><e:Subscribe><e:Delivery Mode="http://schemas.dmtf.org/wbem/wsman/1/wsman/'+s+'"><e:NotifyTo><a:Address>'+r+"</a:Address></e:NotifyTo>"+i+"</e:Delivery><e:Expires>PT0.000000S</e:Expires></e:Subscribe>";p.PerformAjax(u+"</Body></Envelope>",a,o,t,'xmlns:e="http://schemas.xmlsoap.org/ws/2004/08/eventing" xmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust" xmlns:se="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:m="http://x.com"')},p.ExecUnSubscribe=function(e,s,r,a,o){var t="http://schemas.xmlsoap.org/ws/2004/08/eventing/Unsubscribe</a:Action><a:To>"+p.Address+"</a:To><w:ResourceURI>"+e+"</w:ResourceURI><a:MessageID>"+p.NextMessageId+++"</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo>"+w(o)+"</Header><Body><e:Unsubscribe/>";p.PerformAjax(t+"</Body></Envelope>",s,r,a,'xmlns:e="http://schemas.xmlsoap.org/ws/2004/08/eventing"')},p.ExecPut=function(e,s,r,a,o,t){var n="http://schemas.xmlsoap.org/ws/2004/09/transfer/Put</a:Action><a:To>"+p.Address+"</a:To><w:ResourceURI>"+e+"</w:ResourceURI><a:MessageID>"+p.NextMessageId+++"</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><w:OperationTimeout>PT60.000S</w:OperationTimeout>"+w(t)+"</Header><Body>"+function(e,s){if(!e||null==s)return"";var r=p.GetNameFromUrl(e),a="<r:"+r+' xmlns:r="'+e+'">';for(var o in s)if(s.hasOwnProperty(o)&&0!==o.indexOf("__")&&0!==o.indexOf("@")&&void 0!==s[o]&&null!==s[o]&&"function"!=typeof s[o])if("object"==typeof s[o]&&s[o].ReferenceParameters){a+="<r:"+o+"><a:Address>"+s[o].Address+"</a:Address><a:ReferenceParameters><w:ResourceURI>"+s[o].ReferenceParameters.ResourceURI+"</w:ResourceURI><w:SelectorSet>";var t=s[o].ReferenceParameters.SelectorSet.Selector;if(Array.isArray(t))for(var n=0;n<t.length;n++)a+="<w:Selector"+l(t[n])+">"+t[n].Value+"</w:Selector>";else a+="<w:Selector"+l(t)+">"+t.Value+"</w:Selector>";a+="</w:SelectorSet></a:ReferenceParameters></r:"+o+">"}else if(Array.isArray(s[o]))for(n=0;n<s[o].length;n++)a+="<r:"+o+">"+s[o][n].toString()+"</r:"+o+">";else a+="<r:"+o+">"+s[o].toString()+"</r:"+o+">";return a+="</r:"+r+">"}(e,s);p.PerformAjax(n+"</Body></Envelope>",r,a,o)},p.ExecCreate=function(e,s,r,a,o,t){var n=p.GetNameFromUrl(e),l="http://schemas.xmlsoap.org/ws/2004/09/transfer/Create</a:Action><a:To>"+p.Address+"</a:To><w:ResourceURI>"+e+"</w:ResourceURI><a:MessageID>"+p.NextMessageId+++"</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><w:OperationTimeout>PT60S</w:OperationTimeout>"+w(t)+"</Header><Body><g:"+n+' xmlns:g="'+e+'">';for(var c in s)l+="<g:"+c+">"+s[c]+"</g:"+c+">";p.PerformAjax(l+"</g:"+n+"></Body></Envelope>",r,a,o)},p.ExecCreateXml=function(e,s,r,a,o){var t=p.GetNameFromUrl(e);p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/transfer/Create</a:Action><a:To>"+p.Address+"</a:To><w:ResourceURI>"+e+"</w:ResourceURI><a:MessageID>"+p.NextMessageId+++"</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><w:OperationTimeout>PT60.000S</w:OperationTimeout></Header><Body><r:"+t+' xmlns:r="'+e+'">'+s+"</r:"+t+"></Body></Envelope>",r,a,o)},p.ExecDelete=function(e,s,r,a,o){var t="http://schemas.xmlsoap.org/ws/2004/09/transfer/Delete</a:Action><a:To>"+p.Address+"</a:To><w:ResourceURI>"+e+"</w:ResourceURI><a:MessageID>"+p.NextMessageId+++"</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><w:OperationTimeout>PT60S</w:OperationTimeout>"+w(s)+"</Header><Body /></Envelope>";p.PerformAjax(t,r,a,o)},p.ExecGet=function(e,s,r,a){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/transfer/Get</a:Action><a:To>"+p.Address+"</a:To><w:ResourceURI>"+e+"</w:ResourceURI><a:MessageID>"+p.NextMessageId+++"</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><w:OperationTimeout>PT60S</w:OperationTimeout></Header><Body /></Envelope>",s,r,a)},p.ExecMethod=function(e,s,r,a,o,t,n){var l="";for(var c in r)if(null!=r[c])if(Array.isArray(r[c]))for(var d in r[c])l+="<r:"+c+">"+r[c][d]+"</r:"+c+">";else l+="<r:"+c+">"+r[c]+"</r:"+c+">";p.ExecMethodXml(e,s,l,a,o,t,n)},p.ExecMethodXml=function(e,s,r,a,o,t,n){p.PerformAjax(e+"/"+s+"</a:Action><a:To>"+p.Address+"</a:To><w:ResourceURI>"+e+"</w:ResourceURI><a:MessageID>"+p.NextMessageId+++"</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><w:OperationTimeout>PT60S</w:OperationTimeout>"+w(n)+"</Header><Body><r:"+s+'_INPUT xmlns:r="'+e+'">'+r+"</r:"+s+"_INPUT></Body></Envelope>",a,o,t)},p.ExecEnum=function(e,s,r,a){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/enumeration/Enumerate</a:Action><a:To>"+p.Address+"</a:To><w:ResourceURI>"+e+"</w:ResourceURI><a:MessageID>"+p.NextMessageId+++'</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><w:OperationTimeout>PT60S</w:OperationTimeout></Header><Body><Enumerate xmlns="http://schemas.xmlsoap.org/ws/2004/09/enumeration" /></Body></Envelope>',s,r,a)},p.ExecPull=function(e,s,r,a,o){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/enumeration/Pull</a:Action><a:To>"+p.Address+"</a:To><w:ResourceURI>"+e+"</w:ResourceURI><a:MessageID>"+p.NextMessageId+++'</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><w:OperationTimeout>PT60S</w:OperationTimeout></Header><Body><Pull xmlns="http://schemas.xmlsoap.org/ws/2004/09/enumeration"><EnumerationContext>'+s+"</EnumerationContext><MaxElements>999</MaxElements><MaxCharacters>99999</MaxCharacters></Pull></Body></Envelope>",r,a,o)},p.ParseWsman=function(s){try{s.childNodes||(s=function(e){{if(window.DOMParser)return(new DOMParser).parseFromString(e,"text/xml");var s=new ActiveXObject("Microsoft.XMLDOM");return s.async=!1,s.loadXML(e),s}}(s));var e,r={Header:{}},a=s.getElementsByTagName("Header")[0];if(!(a=a||s.getElementsByTagName("a:Header")[0]))return null;for(var o=0;o<a.childNodes.length;o++){var t=a.childNodes[o];r.Header[t.localName]=t.textContent}var n=s.getElementsByTagName("Body")[0];return(n=n||s.getElementsByTagName("a:Body")[0])?(0<n.childNodes.length&&((e=n.childNodes[0].localName).indexOf("_OUTPUT")==e.length-7&&(e=e.substring(0,e.length-7)),r.Header.Method=e,r.Body=function e(s){var r,a={};for(var o=0;o<s.childNodes.length;o++){var t=s.childNodes[o];"true"==(r=0==t.childElementCount?t.textContent:e(t))&&(r=!0),"false"==r&&(r=!1);var n=r;if(0<t.attributes.length){n={Value:r};for(var l=0;l<t.attributes.length;l++)n["@"+t.attributes[l].name]=t.attributes[l].value}a[t.localName]instanceof Array?a[t.localName].push(n):null==a[t.localName]?a[t.localName]=n:a[t.localName]=[a[t.localName],n]}return a}(n.childNodes[0])),r):null}catch(e){return console.log("Unable to parse XML: "+s),null}},p}
\ No newline at end of file
1
+var WsmanStackCreateService=function(e,s,r,a,o,t){var p={};function l(e){if(!e)return"";var s=" ";for(var r in e)e.hasOwnProperty(r)&&0===r.indexOf("@")&&(s+=r.substring(1)+'="'+e[r]+'" ');return s}function w(e){if(!e)return"";if("string"==typeof e)return e;if(e.InstanceID)return'<w:SelectorSet><w:Selector Name="InstanceID">'+e.InstanceID+"</w:Selector></w:SelectorSet>";var s="<w:SelectorSet>";for(var r in e)if(e.hasOwnProperty(r)){if(s+='<w:Selector Name="'+r+'">',e[r].ReferenceParameters){s+="<a:EndpointReference>",s+="<a:Address>"+e[r].Address+"</a:Address><a:ReferenceParameters><w:ResourceURI>"+e[r].ReferenceParameters.ResourceURI+"</w:ResourceURI><w:SelectorSet>";var a=e[r].ReferenceParameters.SelectorSet.Selector;if(Array.isArray(a))for(var o=0;o<a.length;o++)s+="<w:Selector"+l(a[o])+">"+a[o].Value+"</w:Selector>";else s+="<w:Selector"+l(a)+">"+a.Value+"</w:Selector>";s+="</w:SelectorSet></a:ReferenceParameters></a:EndpointReference>"}else s+=e[r];s+="</w:Selector>"}return s+="</w:SelectorSet>"}return p.NextMessageId=1,p.Address="/wsman",p.comm=CreateWsmanComm(e,s,r,a,o,t),p.PerformAjax=function(e,o,s,r,a){null==a&&(a=""),p.comm.PerformAjax('<?xml version=\"1.0\" encoding=\"utf-8\"?><Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:w="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd" xmlns="http://www.w3.org/2003/05/soap-envelope" '+a+"><Header><a:Action>"+e,function(e,s,r){if(200==s){var a=p.ParseWsman(e);a&&null!=a?o(p,a.Header.ResourceURI,a,200,r):o(p,null,{Header:{HttpError:s}},601,r)}else o(p,null,{Header:{HttpError:s}},s,r)},s,r)},p.CancelAllQueries=function(e){p.comm.CancelAllQueries(e)},p.GetNameFromUrl=function(e){var s=e.lastIndexOf("/");return-1==s?e:e.substring(s+1)},p.ExecSubscribe=function(e,s,r,a,o,t,n,l,d,c){var m="",i="";null!=d&&null!=c&&(m="<t:IssuedTokens><t:RequestSecurityTokenResponse><t:TokenType>http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken</t:TokenType><t:RequestedSecurityToken><se:UsernameToken><se:Username>"+d+'</se:Username><se:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd#PasswordText">'+c+"</se:Password></se:UsernameToken></t:RequestedSecurityToken></t:RequestSecurityTokenResponse></t:IssuedTokens>",i='<Auth Profile="http://schemas.xmlsoap.org/ws/2004/08/eventing/DeliveryModes/secprofile/http/digest"/>'),l=null!=l&&null!=l?"<a:ReferenceParameters>"+l+"</a:ReferenceParameters>":"";var u="http://schemas.xmlsoap.org/ws/2004/08/eventing/Subscribe</a:Action><a:To>"+p.Address+"</a:To><w:ResourceURI>"+e+"</w:ResourceURI><a:MessageID>"+p.NextMessageId+++"</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo>"+w(n)+m+'</Header><Body><e:Subscribe><e:Delivery Mode="http://schemas.dmtf.org/wbem/wsman/1/wsman/'+s+'"><e:NotifyTo><a:Address>'+r+"</a:Address></e:NotifyTo>"+i+"</e:Delivery><e:Expires>PT0.000000S</e:Expires></e:Subscribe>";p.PerformAjax(u+"</Body></Envelope>",a,o,t,'xmlns:e="http://schemas.xmlsoap.org/ws/2004/08/eventing" xmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust" xmlns:se="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:m="http://x.com"')},p.ExecUnSubscribe=function(e,s,r,a,o){var t="http://schemas.xmlsoap.org/ws/2004/08/eventing/Unsubscribe</a:Action><a:To>"+p.Address+"</a:To><w:ResourceURI>"+e+"</w:ResourceURI><a:MessageID>"+p.NextMessageId+++"</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo>"+w(o)+"</Header><Body><e:Unsubscribe/>";p.PerformAjax(t+"</Body></Envelope>",s,r,a,'xmlns:e="http://schemas.xmlsoap.org/ws/2004/08/eventing"')},p.ExecPut=function(e,s,r,a,o,t){var n="http://schemas.xmlsoap.org/ws/2004/09/transfer/Put</a:Action><a:To>"+p.Address+"</a:To><w:ResourceURI>"+e+"</w:ResourceURI><a:MessageID>"+p.NextMessageId+++"</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><w:OperationTimeout>PT60.000S</w:OperationTimeout>"+w(t)+"</Header><Body>"+function(e,s){if(!e||null==s)return"";var r=p.GetNameFromUrl(e),a="<r:"+r+' xmlns:r="'+e+'">';for(var o in s)if(s.hasOwnProperty(o)&&0!==o.indexOf("__")&&0!==o.indexOf("@")&&void 0!==s[o]&&null!==s[o]&&"function"!=typeof s[o])if("object"==typeof s[o]&&s[o].ReferenceParameters){a+="<r:"+o+"><a:Address>"+s[o].Address+"</a:Address><a:ReferenceParameters><w:ResourceURI>"+s[o].ReferenceParameters.ResourceURI+"</w:ResourceURI><w:SelectorSet>";var t=s[o].ReferenceParameters.SelectorSet.Selector;if(Array.isArray(t))for(var n=0;n<t.length;n++)a+="<w:Selector"+l(t[n])+">"+t[n].Value+"</w:Selector>";else a+="<w:Selector"+l(t)+">"+t.Value+"</w:Selector>";a+="</w:SelectorSet></a:ReferenceParameters></r:"+o+">"}else if(Array.isArray(s[o]))for(n=0;n<s[o].length;n++)a+="<r:"+o+">"+s[o][n].toString()+"</r:"+o+">";else a+="<r:"+o+">"+s[o].toString()+"</r:"+o+">";return a+="</r:"+r+">"}(e,s);p.PerformAjax(n+"</Body></Envelope>",r,a,o)},p.ExecCreate=function(e,s,r,a,o,t){var n=p.GetNameFromUrl(e),l="http://schemas.xmlsoap.org/ws/2004/09/transfer/Create</a:Action><a:To>"+p.Address+"</a:To><w:ResourceURI>"+e+"</w:ResourceURI><a:MessageID>"+p.NextMessageId+++"</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><w:OperationTimeout>PT60S</w:OperationTimeout>"+w(t)+"</Header><Body><g:"+n+' xmlns:g="'+e+'">';for(var d in s)l+="<g:"+d+">"+s[d]+"</g:"+d+">";p.PerformAjax(l+"</g:"+n+"></Body></Envelope>",r,a,o)},p.ExecCreateXml=function(e,s,r,a,o){var t=p.GetNameFromUrl(e);p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/transfer/Create</a:Action><a:To>"+p.Address+"</a:To><w:ResourceURI>"+e+"</w:ResourceURI><a:MessageID>"+p.NextMessageId+++"</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><w:OperationTimeout>PT60.000S</w:OperationTimeout></Header><Body><r:"+t+' xmlns:r="'+e+'">'+s+"</r:"+t+"></Body></Envelope>",r,a,o)},p.ExecDelete=function(e,s,r,a,o){var t="http://schemas.xmlsoap.org/ws/2004/09/transfer/Delete</a:Action><a:To>"+p.Address+"</a:To><w:ResourceURI>"+e+"</w:ResourceURI><a:MessageID>"+p.NextMessageId+++"</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><w:OperationTimeout>PT60S</w:OperationTimeout>"+w(s)+"</Header><Body /></Envelope>";p.PerformAjax(t,r,a,o)},p.ExecGet=function(e,s,r,a){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/transfer/Get</a:Action><a:To>"+p.Address+"</a:To><w:ResourceURI>"+e+"</w:ResourceURI><a:MessageID>"+p.NextMessageId+++"</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><w:OperationTimeout>PT60S</w:OperationTimeout></Header><Body /></Envelope>",s,r,a)},p.ExecMethod=function(e,s,r,a,o,t,n){var l="";for(var d in r)if(null!=r[d])if(Array.isArray(r[d]))for(var c in r[d])l+="<r:"+d+">"+r[d][c]+"</r:"+d+">";else l+="<r:"+d+">"+r[d]+"</r:"+d+">";p.ExecMethodXml(e,s,l,a,o,t,n)},p.ExecMethodXml=function(e,s,r,a,o,t,n){p.PerformAjax(e+"/"+s+"</a:Action><a:To>"+p.Address+"</a:To><w:ResourceURI>"+e+"</w:ResourceURI><a:MessageID>"+p.NextMessageId+++"</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><w:OperationTimeout>PT60S</w:OperationTimeout>"+w(n)+"</Header><Body><r:"+s+'_INPUT xmlns:r="'+e+'">'+r+"</r:"+s+"_INPUT></Body></Envelope>",a,o,t)},p.ExecEnum=function(e,s,r,a){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/enumeration/Enumerate</a:Action><a:To>"+p.Address+"</a:To><w:ResourceURI>"+e+"</w:ResourceURI><a:MessageID>"+p.NextMessageId+++'</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><w:OperationTimeout>PT60S</w:OperationTimeout></Header><Body><Enumerate xmlns="http://schemas.xmlsoap.org/ws/2004/09/enumeration" /></Body></Envelope>',s,r,a)},p.ExecPull=function(e,s,r,a,o){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/enumeration/Pull</a:Action><a:To>"+p.Address+"</a:To><w:ResourceURI>"+e+"</w:ResourceURI><a:MessageID>"+p.NextMessageId+++'</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><w:OperationTimeout>PT60S</w:OperationTimeout></Header><Body><Pull xmlns="http://schemas.xmlsoap.org/ws/2004/09/enumeration"><EnumerationContext>'+s+"</EnumerationContext><MaxElements>999</MaxElements><MaxCharacters>99999</MaxCharacters></Pull></Body></Envelope>",r,a,o)},p.ParseWsman=function(s){try{s.childNodes||(s=function(e){{if(window.DOMParser)return(new DOMParser).parseFromString(e,"text/xml");var s=new ActiveXObject("Microsoft.XMLDOM");return s.async=!1,s.loadXML(e),s}}(s));var e,r={Header:{}},a=s.getElementsByTagName("Header")[0];if(!(a=a||s.getElementsByTagName("a:Header")[0]))return null;for(var o=0;o<a.childNodes.length;o++){var t=a.childNodes[o];r.Header[t.localName]=t.textContent}var n=s.getElementsByTagName("Body")[0];return(n=n||s.getElementsByTagName("a:Body")[0])?(0<n.childNodes.length&&((e=n.childNodes[0].localName).indexOf("_OUTPUT")==e.length-7&&(e=e.substring(0,e.length-7)),r.Header.Method=e,r.Body=function e(s){var r,a={};for(var o=0;o<s.childNodes.length;o++){var t=s.childNodes[o];"true"==(r=0==t.childElementCount?t.textContent:e(t))&&(r=!0),"false"==r&&(r=!1);var n=r;if(0<t.attributes.length){n={Value:r};for(var l=0;l<t.attributes.length;l++)n["@"+t.attributes[l].name]=t.attributes[l].value}a[t.localName]instanceof Array?a[t.localName].push(n):null==a[t.localName]?a[t.localName]=n:a[t.localName]=[a[t.localName],n]}return a}(n.childNodes[0])),r):null}catch(e){return console.log("Unable to parse XML: "+s),null}},p}
\ No newline at end of file
public/styles/style.css
+16
@@ -2332,6 +2332,10 @@ a {
2332
background-color: gray;
2333
}
2334
2335
+ .night #deskToolsAreaTop {
2336
+ background-color: #222;
2337
+ }
2338
+
2339
#deskToolsArea {
2340
position: absolute;
2341
top: 26px;
@@ -2342,6 +2346,10 @@ a {
2346
text-align: left;
2347
}
2348
2349
+.night #deskToolsArea {
2350
+ background-color: #222;
2351
+}
2352
+
2353
#deskToolsHeader {
2354
border-bottom: 1px solid darkgray;
2355
padding: 3px;
@@ -2389,6 +2397,14 @@ a {
2397
.deskToolsBar:hover {
2398
background-color: #EFE8B6;
2399
}
2400
+
2401
+ .night .deskToolsBar {
2402
+ color: #ddd;
2403
+ }
2404
+
2405
+ .night .deskToolsBar:hover {
2406
+ background-color: #444;
2407
+ }
2408
2409
#deskarea4 {
2410
grid-area: deskarea4;
translate/translate.json
+353
-334
@@ -192,7 +192,7 @@
192
"zh-chs": " 用戶需要先登錄到該服務器一次,然後才能將其添加到設備組。",
193
"xloc": [
194
"default.handlebars->25->1253",
195
- "default.handlebars->25->1557"
195
+ "default.handlebars->25->1559"
196
]
197
},
198
{
@@ -614,7 +614,7 @@
614
"default-mobile.handlebars->9->262",
615
"default-mobile.handlebars->9->77",
616
"default.handlebars->25->1360",
617
- "default.handlebars->25->1700",
617
+ "default.handlebars->25->1704",
618
"default.handlebars->25->747"
619
]
620
},
@@ -663,7 +663,7 @@
663
"ru": "1 активная сессия",
664
"zh-chs": "1個活動會話",
665
"xloc": [
666
- "default.handlebars->25->1618"
666
+ "default.handlebars->25->1622"
667
]
668
},
669
{
@@ -725,7 +725,7 @@
725
"ru": "1 группа",
726
"zh-chs": "1組",
727
"xloc": [
728
- "default.handlebars->25->1585"
728
+ "default.handlebars->25->1587"
729
]
730
},
731
{
@@ -1125,7 +1125,7 @@
1125
"zh-chs": "啟用第二因素身份驗證",
1126
"xloc": [
1127
"default.handlebars->25->1431",
1128
- "default.handlebars->25->1607"
1128
+ "default.handlebars->25->1609"
1129
]
1130
},
1131
{
@@ -1871,7 +1871,7 @@
1871
"ru": "Доступ к файлам сервера",
1872
"zh-chs": "訪問服務器文件",
1873
"xloc": [
1874
- "default.handlebars->25->1563"
1874
+ "default.handlebars->25->1565"
1875
]
1876
},
1877
{
@@ -1996,7 +1996,7 @@
1996
"zh-chs": "帐户已被锁定",
1997
"xloc": [
1998
"default.handlebars->25->1433",
1999
- "default.handlebars->25->1560"
1999
+ "default.handlebars->25->1562"
2000
]
2001
},
2002
{
@@ -2269,8 +2269,8 @@
2269
"ru": "Добавить устройство",
2270
"zh-chs": "添加設備",
2271
"xloc": [
2272
- "default.handlebars->25->1537",
2273
- "default.handlebars->25->1651"
2272
+ "default.handlebars->25->1539",
2273
+ "default.handlebars->25->1655"
2274
]
2275
},
2276
{
@@ -2305,8 +2305,8 @@
2305
"zh-chs": "添加設備組",
2306
"xloc": [
2307
"default.handlebars->25->1285",
2308
- "default.handlebars->25->1531",
2309
- "default.handlebars->25->1639",
2308
+ "default.handlebars->25->1533",
2309
+ "default.handlebars->25->1643",
2310
"default.handlebars->25->198"
2311
]
2312
},
@@ -2423,7 +2423,7 @@
2423
"ru": "Добавить участие",
2424
"zh-chs": "添加會員",
2425
"xloc": [
2426
- "default.handlebars->25->1669"
2426
+ "default.handlebars->25->1673"
2427
]
2428
},
2429
{
@@ -2515,7 +2515,7 @@
2515
"xloc": [
2516
"default.handlebars->25->1185",
2517
"default.handlebars->25->1284",
2518
- "default.handlebars->25->1645",
2518
+ "default.handlebars->25->1649",
2519
"default.handlebars->25->571"
2520
]
2521
},
@@ -2576,7 +2576,7 @@
2576
"zh-chs": "添加用戶",
2577
"xloc": [
2578
"default.handlebars->25->1184",
2579
- "default.handlebars->25->1526"
2579
+ "default.handlebars->25->1528"
2580
]
2581
},
2582
{
@@ -2610,7 +2610,7 @@
2610
"ru": "Добавить пользователей в группу",
2611
"zh-chs": "將用戶添加到用戶組",
2612
"xloc": [
2613
- "default.handlebars->25->1559"
2613
+ "default.handlebars->25->1561"
2614
]
2615
},
2616
{
@@ -2815,7 +2815,7 @@
2815
"ru": "Области администратора",
2816
"zh-chs": "管理領域",
2817
"xloc": [
2818
- "default.handlebars->25->1589"
2818
+ "default.handlebars->25->1591"
2819
]
2820
},
2821
{
@@ -2850,7 +2850,7 @@
2850
"ru": "Административные области",
2851
"zh-chs": "行政領域",
2852
"xloc": [
2853
- "default.handlebars->25->1482"
2853
+ "default.handlebars->25->1484"
2854
]
2855
},
2856
{
@@ -2978,7 +2978,7 @@
2978
"ru": "Счетчик ошибок агента",
2979
"zh-chs": "座席錯誤計數器",
2980
"xloc": [
2981
- "default.handlebars->25->1710"
2981
+ "default.handlebars->25->1714"
2982
]
2983
},
2984
{
@@ -3047,7 +3047,7 @@
3047
"ru": "Сессии агентов",
3048
"zh-chs": "座席會議",
3049
"xloc": [
3050
- "default.handlebars->25->1726"
3050
+ "default.handlebars->25->1730"
3051
]
3052
},
3053
{
@@ -3170,7 +3170,7 @@
3170
"ru": "Агенты",
3171
"zh-chs": "代理商",
3172
"xloc": [
3173
- "default.handlebars->25->1739"
3173
+ "default.handlebars->25->1743"
3174
]
3175
},
3176
{
@@ -3257,7 +3257,7 @@
3257
"zh-chs": "允許用戶管理此設備組和該組中的設備。",
3258
"xloc": [
3259
"default.handlebars->25->1251",
3260
- "default.handlebars->25->1556"
3260
+ "default.handlebars->25->1558"
3261
]
3262
},
3263
{
@@ -3361,7 +3361,7 @@
3361
"zh-chs": "始終通知",
3362
"xloc": [
3363
"default.handlebars->25->1165",
3364
- "default.handlebars->25->1598",
3364
+ "default.handlebars->25->1600",
3365
"default.handlebars->25->519"
3366
]
3367
},
@@ -3380,7 +3380,7 @@
3380
"zh-chs": "總是提示",
3381
"xloc": [
3382
"default.handlebars->25->1166",
3383
- "default.handlebars->25->1599",
3383
+ "default.handlebars->25->1601",
3384
"default.handlebars->25->520"
3385
]
3386
},
@@ -3989,7 +3989,7 @@
3989
"ru": "Вы уверенны, что {0} плагин: {1}",
3990
"zh-chs": "您確定要{0}插件嗎:{1}",
3991
"xloc": [
3992
- "default.handlebars->25->1779"
3992
+ "default.handlebars->25->1783"
3993
]
3994
},
3995
{
@@ -4085,7 +4085,7 @@
4085
"ru": "Приложение аутентификации",
4086
"zh-chs": "身份驗證應用",
4087
"xloc": [
4088
- "default.handlebars->25->1602"
4088
+ "default.handlebars->25->1604"
4089
]
4090
},
4091
{
@@ -4401,7 +4401,7 @@
4401
"ru": "Резервные коды",
4402
"zh-chs": "備用碼",
4403
"xloc": [
4404
- "default.handlebars->25->1604"
4404
+ "default.handlebars->25->1606"
4405
]
4406
},
4407
{
@@ -4418,7 +4418,7 @@
4418
"ru": "Плохой ключ",
4419
"zh-chs": "錯誤的簽名",
4420
"xloc": [
4421
- "default.handlebars->25->1717"
4421
+ "default.handlebars->25->1721"
4422
]
4423
},
4424
{
@@ -4435,7 +4435,7 @@
4435
"ru": "Плохой веб-сертификат",
4436
"zh-chs": "錯誤的網絡證書",
4437
"xloc": [
4438
- "default.handlebars->25->1716"
4438
+ "default.handlebars->25->1720"
4439
]
4440
},
4441
{
@@ -4573,7 +4573,7 @@
4573
"ru": "Отправить сообщение",
4574
"zh-chs": "廣播",
4575
"xloc": [
4576
- "default.handlebars->25->1524",
4576
+ "default.handlebars->25->1526",
4577
"default.handlebars->container->column_l->p4->3->1->0->3->1"
4578
]
4579
},
@@ -4591,7 +4591,7 @@
4591
"ru": "Отправить сообщение",
4592
"zh-chs": "廣播消息",
4593
"xloc": [
4594
- "default.handlebars->25->1466"
4594
+ "default.handlebars->25->1468"
4595
]
4596
},
4597
{
@@ -4608,7 +4608,7 @@
4608
"ru": "Отправить сообщение всем подключенным пользователям.",
4609
"zh-chs": "向所有連接的用戶廣播消息。",
4610
"xloc": [
4611
- "default.handlebars->25->1465"
4611
+ "default.handlebars->25->1467"
4612
]
4613
},
4614
{
@@ -4698,7 +4698,7 @@
4698
"ru": "CIRA Сервер",
4699
"zh-chs": "CIRA服務器",
4700
"xloc": [
4701
- "default.handlebars->25->1767"
4701
+ "default.handlebars->25->1771"
4702
]
4703
},
4704
{
@@ -4715,7 +4715,7 @@
4715
"ru": "CIRA Сервер команды",
4716
"zh-chs": "CIRA服務器命令",
4717
"xloc": [
4718
- "default.handlebars->25->1768"
4718
+ "default.handlebars->25->1772"
4719
]
4720
},
4721
{
@@ -4748,7 +4748,7 @@
4748
"ru": "Загрузка CPU",
4749
"zh-chs": "CPU負載",
4750
"xloc": [
4751
- "default.handlebars->25->1731"
4751
+ "default.handlebars->25->1735"
4752
]
4753
},
4754
{
@@ -4765,7 +4765,7 @@
4765
"ru": "Загрузка CPU за последние 15 минут",
4766
"zh-chs": "最近15分鐘的CPU負載",
4767
"xloc": [
4768
- "default.handlebars->25->1734"
4768
+ "default.handlebars->25->1738"
4769
]
4770
},
4771
{
@@ -4782,7 +4782,7 @@
4782
"ru": "Загрузка CPU за последние 5 минут",
4783
"zh-chs": "最近5分鐘的CPU負載",
4784
"xloc": [
4785
- "default.handlebars->25->1733"
4785
+ "default.handlebars->25->1737"
4786
]
4787
},
4788
{
@@ -4799,7 +4799,7 @@
4799
"ru": "Загрузка CPU за последнюю минуту",
4800
"zh-chs": "最後一分鐘的CPU負載",
4801
"xloc": [
4802
- "default.handlebars->25->1732"
4802
+ "default.handlebars->25->1736"
4803
]
4804
},
4805
{
@@ -4836,7 +4836,7 @@
4836
"zh-chs": "CSV格式",
4837
"xloc": [
4838
"default.handlebars->25->1400",
4839
- "default.handlebars->25->1457",
4839
+ "default.handlebars->25->1459",
4840
"default.handlebars->25->412"
4841
]
4842
},
@@ -4854,7 +4854,7 @@
4854
"ru": "Ошибка вызова",
4855
"zh-chs": "通話錯誤",
4856
"xloc": [
4857
- "default.handlebars->25->1780"
4857
+ "default.handlebars->25->1784"
4858
]
4859
},
4860
{
@@ -4991,7 +4991,7 @@
4991
"ru": "Смена email для {0}",
4992
"zh-chs": "更改{0}的電子郵件",
4993
"xloc": [
4994
- "default.handlebars->25->1628"
4994
+ "default.handlebars->25->1632"
4995
]
4996
},
4997
{
@@ -5029,7 +5029,7 @@
5029
"xloc": [
5030
"default-mobile.handlebars->9->59",
5031
"default.handlebars->25->1112",
5032
- "default.handlebars->25->1617"
5032
+ "default.handlebars->25->1621"
5033
]
5034
},
5035
{
@@ -5046,7 +5046,7 @@
5046
"ru": "Смена пароля для {0}",
5047
"zh-chs": "更改{0}的密碼",
5048
"xloc": [
5049
- "default.handlebars->25->1635"
5049
+ "default.handlebars->25->1639"
5050
]
5051
},
5052
{
@@ -5116,7 +5116,7 @@
5116
"ru": "Изменить пароль для этого пользователя",
5117
"zh-chs": "更改該用戶的密碼",
5118
"xloc": [
5119
- "default.handlebars->25->1616"
5119
+ "default.handlebars->25->1620"
5120
]
5121
},
5122
{
@@ -5321,7 +5321,7 @@
5321
"ru": "Проверка...",
5322
"zh-chs": "檢查...",
5323
"xloc": [
5324
- "default.handlebars->25->1774",
5324
+ "default.handlebars->25->1778",
5325
"default.handlebars->25->885"
5326
]
5327
},
@@ -5537,7 +5537,7 @@
5537
"nl": "Wis alle meldingen",
5538
"zh-chs": "全部清除",
5539
"xloc": [
5540
- "default.handlebars->25->1704"
5540
+ "default.handlebars->25->1708"
5541
]
5542
},
5543
{
@@ -5587,7 +5587,7 @@
5587
"ru": "Очистить это уведомление",
5588
"zh-chs": "清除此通知",
5589
"xloc": [
5590
- "default.handlebars->25->1703"
5590
+ "default.handlebars->25->1707"
5591
]
5592
},
5593
{
@@ -5663,7 +5663,7 @@
5663
"nl": "Klik hier om de gebruikersgroepsnaam te bewerken",
5664
"zh-chs": "单击此处编辑用户组名称",
5665
"xloc": [
5666
- "default.handlebars->25->1516"
5666
+ "default.handlebars->25->1518"
5667
]
5668
},
5669
{
@@ -5837,8 +5837,8 @@
5837
"ru": "Общие группы устройств",
5838
"zh-chs": "通用設備組",
5839
"xloc": [
5840
- "default.handlebars->25->1532",
5841
- "default.handlebars->25->1640"
5840
+ "default.handlebars->25->1534",
5841
+ "default.handlebars->25->1644"
5842
]
5843
},
5844
{
@@ -5855,8 +5855,8 @@
5855
"ru": "Общие устройства",
5856
"zh-chs": "通用設備",
5857
"xloc": [
5858
- "default.handlebars->25->1538",
5859
- "default.handlebars->25->1652"
5858
+ "default.handlebars->25->1540",
5859
+ "default.handlebars->25->1656"
5860
]
5861
},
5862
{
@@ -5895,9 +5895,9 @@
5895
"default-mobile.handlebars->9->306",
5896
"default.handlebars->25->1230",
5897
"default.handlebars->25->1443",
5898
- "default.handlebars->25->1508",
5899
- "default.handlebars->25->1552",
5900
- "default.handlebars->25->1638",
5898
+ "default.handlebars->25->1510",
5899
+ "default.handlebars->25->1554",
5900
+ "default.handlebars->25->1642",
5901
"default.handlebars->25->409",
5902
"default.handlebars->25->644",
5903
"default.handlebars->25->653"
@@ -5981,7 +5981,7 @@
5981
"nl": "Bevestig verwijdering geselecteerde gebruikersgroep(en)?",
5982
"zh-chs": "确认删除选定的用户组?",
5983
"xloc": [
5984
- "default.handlebars->25->1507"
5984
+ "default.handlebars->25->1509"
5985
]
5986
},
5987
{
@@ -5998,7 +5998,7 @@
5998
"ru": "Подтвердить удаление пользователя {0}?",
5999
"zh-chs": "確認刪除用戶{0}?",
6000
"xloc": [
6001
- "default.handlebars->25->1637"
6001
+ "default.handlebars->25->1641"
6002
]
6003
},
6004
{
@@ -6012,7 +6012,7 @@
6012
"nl": "Bevestig lidmaatschap verwijderen van gebruiker \\\"{0}\\\"?",
6013
"zh-chs": "确认删除用户\\“ {0} \\”的成员身份?",
6014
"xloc": [
6015
- "default.handlebars->25->1555"
6015
+ "default.handlebars->25->1557"
6016
]
6017
},
6018
{
@@ -6026,7 +6026,7 @@
6026
"nl": "Bevestig lidmaatschap verwijdering van gebruikergroep \\\"{0}\\\"?",
6027
"zh-chs": "确认删除用户组 “{0}” 的成员身份?",
6028
"xloc": [
6029
- "default.handlebars->25->1667"
6029
+ "default.handlebars->25->1671"
6030
]
6031
},
6032
{
@@ -6093,8 +6093,8 @@
6093
"nl": "Bevestig verwijdering van toegangsrechten voor apparaat \\\"{0}\\\"?",
6094
"zh-chs": "确认删除设备“ {0} ”的访问权限?",
6095
"xloc": [
6096
- "default.handlebars->25->1545",
6097
- "default.handlebars->25->1658"
6096
+ "default.handlebars->25->1547",
6097
+ "default.handlebars->25->1662"
6098
]
6099
},
6100
{
@@ -6108,8 +6108,8 @@
6108
"nl": "Bevestig verwijdering van toegangsrechten voor apparaatgroep \\\"{0}\\\"?",
6109
"zh-chs": "是否确认删除设备组“ {0}”的访问权限?",
6110
"xloc": [
6111
- "default.handlebars->25->1547",
6112
- "default.handlebars->25->1671"
6111
+ "default.handlebars->25->1549",
6112
+ "default.handlebars->25->1675"
6113
]
6114
},
6115
{
@@ -6123,7 +6123,7 @@
6123
"nl": "Bevestig verwijdering van toegangsrechten voor gebruiker \\\"{0}\\\"?",
6124
"zh-chs": "确认删除用户\\“ {0} \\”的访问权限?",
6125
"xloc": [
6126
- "default.handlebars->25->1660"
6126
+ "default.handlebars->25->1664"
6127
]
6128
},
6129
{
@@ -6137,7 +6137,7 @@
6137
"nl": "Bevestig verwijdering van toegangsrechten voor gebruikergroep \\\"{0}\\\"?",
6138
"zh-chs": "确认删除用户组“ {0}”的访问权限?",
6139
"xloc": [
6140
- "default.handlebars->25->1663"
6140
+ "default.handlebars->25->1667"
6141
]
6142
},
6143
{
@@ -6151,8 +6151,8 @@
6151
"nl": "Verwijdering van toegangsrechten bevestigen?",
6152
"zh-chs": "确认删除访问权限?",
6153
"xloc": [
6154
- "default.handlebars->25->1661",
6155
- "default.handlebars->25->1664"
6154
+ "default.handlebars->25->1665",
6155
+ "default.handlebars->25->1668"
6156
]
6157
},
6158
{
@@ -6399,7 +6399,7 @@
6399
"ru": "Подключено Intel® AMT",
6400
"zh-chs": "連接的英特爾®AMT",
6401
"xloc": [
6402
- "default.handlebars->25->1722"
6402
+ "default.handlebars->25->1726"
6403
]
6404
},
6405
{
@@ -6416,7 +6416,7 @@
6416
"ru": "Подключенные пользователи",
6417
"zh-chs": "關聯用戶",
6418
"xloc": [
6419
- "default.handlebars->25->1727"
6419
+ "default.handlebars->25->1731"
6420
]
6421
},
6422
{
@@ -6492,7 +6492,7 @@
6492
"ru": "Подключений ",
6493
"zh-chs": "連接數",
6494
"xloc": [
6495
- "default.handlebars->25->1738"
6495
+ "default.handlebars->25->1742"
6496
]
6497
},
6498
{
@@ -6509,7 +6509,7 @@
6509
"ru": "Ретранслятор подключения",
6510
"zh-chs": "連接繼電器",
6511
"xloc": [
6512
- "default.handlebars->25->1766"
6512
+ "default.handlebars->25->1770"
6513
]
6514
},
6515
{
@@ -6636,7 +6636,7 @@
6636
"ru": "Cookie-кодировщик",
6637
"zh-chs": "Cookie編碼器",
6638
"xloc": [
6639
- "default.handlebars->25->1752"
6639
+ "default.handlebars->25->1756"
6640
]
6641
},
6642
{
@@ -6941,7 +6941,7 @@
6941
"ru": "Основной сервер",
6942
"zh-chs": "核心服務器",
6943
"xloc": [
6944
- "default.handlebars->25->1751"
6944
+ "default.handlebars->25->1755"
6945
]
6946
},
6947
{
@@ -6975,7 +6975,7 @@
6975
"ru": "Создать учетную запись",
6976
"zh-chs": "創建帳號",
6977
"xloc": [
6978
- "default.handlebars->25->1478",
6978
+ "default.handlebars->25->1480",
6979
"login-mobile.handlebars->container->page_content->column_l->1->1->0->1->createpanel->1->1->9->1->12->1->1",
6980
"login.handlebars->container->column_l->centralTable->1->0->logincell->createpanel->1->9->1->12->1->1"
6981
]
@@ -7011,7 +7011,7 @@
7011
"ru": "Создать группу пользователей",
7012
"zh-chs": "創建用戶組",
7013
"xloc": [
7014
- "default.handlebars->25->1513"
7014
+ "default.handlebars->25->1515"
7015
]
7016
},
7017
{
@@ -7062,7 +7062,7 @@
7062
"ru": "Создайте сразу несколько учетных записей, импортировав файл JSON в следующем формате:",
7063
"zh-chs": "通過導入以下格式的JSON文件一次創建多個帳戶:",
7064
"xloc": [
7065
- "default.handlebars->25->1448"
7065
+ "default.handlebars->25->1450"
7066
]
7067
},
7068
{
@@ -7097,7 +7097,7 @@
7097
"ru": "Создано",
7098
"zh-chs": "創建",
7099
"xloc": [
7100
- "default.handlebars->25->1578"
7100
+ "default.handlebars->25->1580"
7101
]
7102
},
7103
{
@@ -7561,7 +7561,7 @@
7561
"ru": "Удалить пользователя",
7562
"zh-chs": "刪除用戶",
7563
"xloc": [
7564
- "default.handlebars->25->1615"
7564
+ "default.handlebars->25->1619"
7565
]
7566
},
7567
{
@@ -7578,8 +7578,8 @@
7578
"ru": "Удалить группу пользователей",
7579
"zh-chs": "刪除用戶組",
7580
"xloc": [
7581
- "default.handlebars->25->1543",
7582
- "default.handlebars->25->1553"
7581
+ "default.handlebars->25->1545",
7582
+ "default.handlebars->25->1555"
7583
]
7584
},
7585
{
@@ -7593,7 +7593,7 @@
7593
"nl": "Gebruikersgroepen verwijderen",
7594
"zh-chs": "删除用户组",
7595
"xloc": [
7596
- "default.handlebars->25->1509"
7596
+ "default.handlebars->25->1511"
7597
]
7598
},
7599
{
@@ -7610,7 +7610,7 @@
7610
"ru": "Удалить пользователя {0}",
7611
"zh-chs": "刪除用戶{0}",
7612
"xloc": [
7613
- "default.handlebars->25->1636"
7613
+ "default.handlebars->25->1640"
7614
]
7615
},
7616
{
@@ -7660,7 +7660,7 @@
7660
"nl": "Verwijder groep",
7661
"zh-chs": "删除群组",
7662
"xloc": [
7663
- "default.handlebars->25->1505"
7663
+ "default.handlebars->25->1507"
7664
]
7665
},
7666
{
@@ -7714,7 +7714,7 @@
7714
"ru": "Удалить группу пользователей {0}?",
7715
"zh-chs": "刪除用戶組{0}?",
7716
"xloc": [
7717
- "default.handlebars->25->1551"
7717
+ "default.handlebars->25->1553"
7718
]
7719
},
7720
{
@@ -7850,10 +7850,10 @@
7850
"default.handlebars->25->1124",
7851
"default.handlebars->25->1150",
7852
"default.handlebars->25->1233",
7853
- "default.handlebars->25->1512",
7854
- "default.handlebars->25->1519",
7855
- "default.handlebars->25->1520",
7856
- "default.handlebars->25->1549",
7853
+ "default.handlebars->25->1514",
7854
+ "default.handlebars->25->1521",
7855
+ "default.handlebars->25->1522",
7856
+ "default.handlebars->25->1551",
7857
"default.handlebars->25->478",
7858
"default.handlebars->25->479",
7859
"default.handlebars->25->685",
@@ -7891,7 +7891,7 @@
7891
"zh-chs": "桌面",
7892
"xloc": [
7893
"default.handlebars->25->1238",
7894
- "default.handlebars->25->1681",
7894
+ "default.handlebars->25->1685",
7895
"default.handlebars->25->445",
7896
"default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevDesktop",
7897
"default.handlebars->contextMenu->cxdesktop"
@@ -7929,7 +7929,7 @@
7929
"zh-chs": "桌面通知",
7930
"xloc": [
7931
"default.handlebars->25->1160",
7932
- "default.handlebars->25->1593",
7932
+ "default.handlebars->25->1595",
7933
"default.handlebars->25->514"
7934
]
7935
},
@@ -7948,7 +7948,7 @@
7948
"zh-chs": "桌面提示",
7949
"xloc": [
7950
"default.handlebars->25->1159",
7951
- "default.handlebars->25->1592",
7951
+ "default.handlebars->25->1594",
7952
"default.handlebars->25->513"
7953
]
7954
},
@@ -7967,7 +7967,7 @@
7967
"zh-chs": "桌面提示+工具欄",
7968
"xloc": [
7969
"default.handlebars->25->1157",
7970
- "default.handlebars->25->1590",
7970
+ "default.handlebars->25->1592",
7971
"default.handlebars->25->511"
7972
]
7973
},
@@ -8000,7 +8000,7 @@
8000
"zh-chs": "桌面工具欄",
8001
"xloc": [
8002
"default.handlebars->25->1158",
8003
- "default.handlebars->25->1591",
8003
+ "default.handlebars->25->1593",
8004
"default.handlebars->25->512"
8005
]
8006
},
@@ -8072,7 +8072,7 @@
8072
"zh-chs": "設備",
8073
"xloc": [
8074
"default.handlebars->25->1260",
8075
- "default.handlebars->25->1655",
8075
+ "default.handlebars->25->1659",
8076
"default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->9->devListToolbarSort->sortselect->5"
8077
]
8078
},
@@ -8111,10 +8111,10 @@
8111
"default.handlebars->25->1255",
8112
"default.handlebars->25->1258",
8113
"default.handlebars->25->1259",
8114
- "default.handlebars->25->1535",
8115
- "default.handlebars->25->1541",
8116
- "default.handlebars->25->1643",
8117
- "default.handlebars->25->1690"
8114
+ "default.handlebars->25->1537",
8115
+ "default.handlebars->25->1543",
8116
+ "default.handlebars->25->1647",
8117
+ "default.handlebars->25->1694"
8118
]
8119
},
8120
{
@@ -8151,10 +8151,10 @@
8151
"xloc": [
8152
"default-mobile.handlebars->container->page_content->column_l->p3->p3info->1->3",
8153
"default.handlebars->25->1409",
8154
- "default.handlebars->25->1499",
8155
- "default.handlebars->25->1522",
8156
- "default.handlebars->25->1587",
8157
- "default.handlebars->25->1725",
8154
+ "default.handlebars->25->1501",
8155
+ "default.handlebars->25->1524",
8156
+ "default.handlebars->25->1589",
8157
+ "default.handlebars->25->1729",
8158
"default.handlebars->container->column_l->p2->p2info->7"
8159
]
8160
},
@@ -8207,7 +8207,7 @@
8207
"zh-chs": "設備名稱",
8208
"xloc": [
8209
"default-mobile.handlebars->9->245",
8210
- "default.handlebars->25->1689",
8210
+ "default.handlebars->25->1693",
8211
"default.handlebars->25->244",
8212
"default.handlebars->25->683",
8213
"player.handlebars->3->9"
@@ -8590,8 +8590,8 @@
8590
"nl": "Apparaten",
8591
"zh-chs": "设备",
8592
"xloc": [
8593
- "default.handlebars->25->1500",
8594
- "default.handlebars->25->1523"
8593
+ "default.handlebars->25->1502",
8594
+ "default.handlebars->25->1525"
8595
]
8596
},
8597
{
@@ -9125,7 +9125,7 @@
9125
"ru": "Скачать список пользователей в одном из форматов ниже.",
9126
"zh-chs": "使用以下一種文件格式下載用戶列表。",
9127
"xloc": [
9128
- "default.handlebars->25->1456"
9128
+ "default.handlebars->25->1458"
9129
]
9130
},
9131
{
@@ -9208,7 +9208,7 @@
9208
"nl": "Dubbele agent",
9209
"zh-chs": "代理重复",
9210
"xloc": [
9211
- "default.handlebars->25->1721"
9211
+ "default.handlebars->25->1725"
9212
]
9213
},
9214
{
@@ -9242,7 +9242,7 @@
9242
"ru": "Скопировать группу пользователей",
9243
"zh-chs": "重複的用戶組",
9244
"xloc": [
9245
- "default.handlebars->25->1514"
9245
+ "default.handlebars->25->1516"
9246
]
9247
},
9248
{
@@ -9273,8 +9273,8 @@
9273
"ru": "Длительность",
9274
"zh-chs": "持續時間",
9275
"xloc": [
9276
- "default.handlebars->25->1675",
9277
- "default.handlebars->25->1695",
9276
+ "default.handlebars->25->1679",
9277
+ "default.handlebars->25->1699",
9278
"player.handlebars->3->2"
9279
]
9280
},
@@ -9759,7 +9759,7 @@
9759
"ru": "Редактировать группу пользователей",
9760
"zh-chs": "編輯用戶組",
9761
"xloc": [
9762
- "default.handlebars->25->1550"
9762
+ "default.handlebars->25->1552"
9763
]
9764
},
9765
{
@@ -9808,10 +9808,11 @@
9808
"zh-chs": "電子郵件",
9809
"xloc": [
9810
"default-mobile.handlebars->9->47",
9811
- "default.handlebars->25->1468",
9812
- "default.handlebars->25->1572",
9813
- "default.handlebars->25->1573",
9814
- "default.handlebars->25->1624",
9811
+ "default.handlebars->25->1470",
9812
+ "default.handlebars->25->1574",
9813
+ "default.handlebars->25->1575",
9814
+ "default.handlebars->25->1614",
9815
+ "default.handlebars->25->1628",
9816
"default.handlebars->25->292",
9817
"login-mobile.handlebars->5->42",
9818
"login-mobile.handlebars->container->page_content->column_l->1->1->0->1->tokenpanel->1->7->1->4->1->3",
@@ -9945,7 +9946,7 @@
9946
"zh-chs": "電子郵件已驗證",
9947
"xloc": [
9948
"default.handlebars->25->1429",
9948
- "default.handlebars->25->1569"
9949
+ "default.handlebars->25->1571"
9950
]
9951
},
9952
{
@@ -9962,7 +9963,7 @@
9963
"ru": "Email подтвержден.",
9964
"zh-chs": "電子郵件已驗證。",
9965
"xloc": [
9965
- "default.handlebars->25->1474"
9966
+ "default.handlebars->25->1476"
9967
]
9968
},
9969
{
@@ -9979,7 +9980,7 @@
9980
"ru": "Email не подтвержден",
9981
"zh-chs": "電子郵件未驗證",
9982
"xloc": [
9982
- "default.handlebars->25->1570"
9983
+ "default.handlebars->25->1572"
9984
]
9985
},
9986
{
@@ -10018,7 +10019,7 @@
10019
"en": "Email verified and forced password reset required.",
10020
"nl": "E-mail geverifieerd en geforceerd opnieuw instellen van wachtwoord vereist.",
10021
"xloc": [
10021
- "default.handlebars->25->1475"
10022
+ "default.handlebars->25->1477"
10023
]
10024
},
10025
{
@@ -10031,7 +10032,7 @@
10032
"nl": "Email/SMS verkeer",
10033
"zh-chs": "电子邮件/短信流量",
10034
"xloc": [
10034
- "default.handlebars->25->1760"
10035
+ "default.handlebars->25->1764"
10036
]
10037
},
10038
{
@@ -10129,7 +10130,7 @@
10130
"en": "Enabled",
10131
"nl": "Ingeschakeld",
10132
"xloc": [
10132
- "default.handlebars->25->1697"
10133
+ "default.handlebars->25->1701"
10134
]
10135
},
10136
{
@@ -10153,7 +10154,7 @@
10154
"en": "End Time",
10155
"nl": "Eindtijd",
10156
"xloc": [
10156
- "default.handlebars->25->1694"
10157
+ "default.handlebars->25->1698"
10158
]
10159
},
10160
{
@@ -10409,7 +10410,7 @@
10410
"ru": "Введите разделенный запятыми список имен административных областей.",
10411
"zh-chs": "輸入管理領域名稱的逗號分隔列表。",
10412
"xloc": [
10412
- "default.handlebars->25->1479"
10413
+ "default.handlebars->25->1481"
10414
]
10415
},
10416
{
@@ -10716,7 +10717,7 @@
10717
"ru": "Внешний",
10718
"zh-chs": "外部",
10719
"xloc": [
10719
- "default.handlebars->25->1745"
10720
+ "default.handlebars->25->1749"
10721
]
10722
},
10723
{
@@ -10921,7 +10922,7 @@
10922
"xloc": [
10923
"default-mobile.handlebars->9->119",
10924
"default.handlebars->25->1245",
10924
- "default.handlebars->25->1682",
10925
+ "default.handlebars->25->1686",
10926
"default.handlebars->25->218",
10927
"default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevFiles",
10928
"default.handlebars->contextMenu->cxfiles"
@@ -10959,7 +10960,7 @@
10960
"zh-chs": "文件通知",
10961
"xloc": [
10962
"default.handlebars->25->1164",
10962
- "default.handlebars->25->1597",
10963
+ "default.handlebars->25->1599",
10964
"default.handlebars->25->518"
10965
]
10966
},
@@ -10978,7 +10979,7 @@
10979
"zh-chs": "文件提示",
10980
"xloc": [
10981
"default.handlebars->25->1163",
10981
- "default.handlebars->25->1596",
10982
+ "default.handlebars->25->1598",
10983
"default.handlebars->25->517"
10984
]
10985
},
@@ -11138,8 +11139,8 @@
11139
"ru": "Принудительно сбросить пароль при следующем входе в систему.",
11140
"zh-chs": "下次登錄時強制重置密碼。",
11141
"xloc": [
11141
- "default.handlebars->25->1473",
11142
- "default.handlebars->25->1633"
11142
+ "default.handlebars->25->1475",
11143
+ "default.handlebars->25->1637"
11144
]
11145
},
11146
{
@@ -11225,8 +11226,8 @@
11226
"ru": "Свободно",
11227
"zh-chs": "自由",
11228
"xloc": [
11228
- "default.handlebars->25->1706",
11229
- "default.handlebars->25->1708"
11229
+ "default.handlebars->25->1710",
11230
+ "default.handlebars->25->1712"
11231
]
11232
},
11233
{
@@ -11420,7 +11421,7 @@
11421
"default-mobile.handlebars->9->74",
11422
"default.handlebars->25->1133",
11423
"default.handlebars->25->1263",
11423
- "default.handlebars->25->1485"
11424
+ "default.handlebars->25->1487"
11425
]
11426
},
11427
{
@@ -11520,7 +11521,7 @@
11521
"ru": "Администратор с полным доступом",
11522
"zh-chs": "正式管理員",
11523
"xloc": [
11523
- "default.handlebars->25->1564"
11524
+ "default.handlebars->25->1566"
11525
]
11526
},
11527
{
@@ -11950,7 +11951,7 @@
11951
"zh-chs": "集體行動",
11952
"xloc": [
11953
"default.handlebars->25->1441",
11953
- "default.handlebars->25->1506",
11954
+ "default.handlebars->25->1508",
11955
"default.handlebars->25->406",
11956
"default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->devListToolbar",
11957
"default.handlebars->container->column_l->p4->3->1->0->3->3",
@@ -11971,7 +11972,7 @@
11972
"ru": "Члены группы",
11973
"zh-chs": "小組成員",
11974
"xloc": [
11974
- "default.handlebars->25->1527"
11975
+ "default.handlebars->25->1529"
11976
]
11977
},
11978
{
@@ -12143,7 +12144,7 @@
12144
"ru": "Всего кучи",
12145
"zh-chs": "堆總數",
12146
"xloc": [
12146
- "default.handlebars->25->1747"
12147
+ "default.handlebars->25->1751"
12148
]
12149
},
12150
{
@@ -12160,7 +12161,7 @@
12161
"ru": "Куча используется",
12162
"zh-chs": "堆使用",
12163
"xloc": [
12163
- "default.handlebars->25->1746"
12164
+ "default.handlebars->25->1750"
12165
]
12166
},
12167
{
@@ -12946,8 +12947,8 @@
12947
"xloc": [
12948
"default.handlebars->25->1347",
12949
"default.handlebars->25->1355",
12949
- "default.handlebars->25->1743",
12950
- "default.handlebars->25->1765"
12950
+ "default.handlebars->25->1747",
12951
+ "default.handlebars->25->1769"
12952
]
12953
},
12954
{
@@ -12988,14 +12989,14 @@
12989
"en": "Intel AMT Redirection",
12990
"nl": "Intel AMT omleiding",
12991
"xloc": [
12991
- "default.handlebars->25->1684"
12992
+ "default.handlebars->25->1688"
12993
]
12994
},
12995
{
12996
"en": "Intel AMT WSMAN",
12997
"nl": "Intel AMT WSMAN",
12998
"xloc": [
12998
- "default.handlebars->25->1683"
12999
+ "default.handlebars->25->1687"
13000
]
13001
},
13002
{
@@ -13679,7 +13680,7 @@
13680
"ru": "Некорректный тип группы устройств",
13681
"zh-chs": "無效的設備組類型",
13682
"xloc": [
13682
- "default.handlebars->25->1720"
13683
+ "default.handlebars->25->1724"
13684
]
13685
},
13686
{
@@ -13696,7 +13697,7 @@
13697
"ru": "Некорректный JSON",
13698
"zh-chs": "無效的JSON",
13699
"xloc": [
13699
- "default.handlebars->25->1714"
13700
+ "default.handlebars->25->1718"
13701
]
13702
},
13703
{
@@ -13713,8 +13714,8 @@
13714
"ru": "Некорректный формат файла JSON.",
13715
"zh-chs": "無效的JSON文件格式。",
13716
"xloc": [
13716
- "default.handlebars->25->1453",
13717
- "default.handlebars->25->1455"
13717
+ "default.handlebars->25->1455",
13718
+ "default.handlebars->25->1457"
13719
]
13720
},
13721
{
@@ -13731,7 +13732,7 @@
13732
"ru": "Некорректный файл JSON: {0}.",
13733
"zh-chs": "無效的JSON文件:{0}。",
13734
"xloc": [
13734
- "default.handlebars->25->1451"
13735
+ "default.handlebars->25->1453"
13736
]
13737
},
13738
{
@@ -13748,7 +13749,7 @@
13749
"ru": "Некорректная сигнатура PKCS",
13750
"zh-chs": "無效的PKCS簽名",
13751
"xloc": [
13751
- "default.handlebars->25->1712"
13752
+ "default.handlebars->25->1716"
13753
]
13754
},
13755
{
@@ -13765,7 +13766,7 @@
13766
"ru": "Некорректная сигнатура RSA",
13767
"zh-chs": "無效的RSA密碼",
13768
"xloc": [
13768
- "default.handlebars->25->1713"
13769
+ "default.handlebars->25->1717"
13770
]
13771
},
13772
{
@@ -14075,7 +14076,7 @@
14076
"zh-chs": "JSON格式",
14077
"xloc": [
14078
"default.handlebars->25->1402",
14078
- "default.handlebars->25->1459",
14079
+ "default.handlebars->25->1461",
14080
"default.handlebars->25->414"
14081
]
14082
},
@@ -14591,7 +14592,7 @@
14592
"ru": "Последний вход в систему",
14593
"zh-chs": "上次登錄",
14594
"xloc": [
14594
- "default.handlebars->25->1579"
14595
+ "default.handlebars->25->1581"
14596
]
14597
},
14598
{
@@ -14649,7 +14650,7 @@
14650
"ru": "Последнее изменение: {0}",
14651
"zh-chs": "上次更改:{0}",
14652
"xloc": [
14652
- "default.handlebars->25->1583"
14653
+ "default.handlebars->25->1585"
14654
]
14655
},
14656
{
@@ -14816,7 +14817,7 @@
14817
"nl": "Leeg laten voor geen.",
14818
"zh-chs": "一无所有。",
14819
"xloc": [
14819
- "default.handlebars->25->1621"
14820
+ "default.handlebars->25->1625"
14821
]
14822
},
14823
{
@@ -14855,7 +14856,7 @@
14856
"ru": "Меньше",
14857
"zh-chs": "減",
14858
"xloc": [
14858
- "default.handlebars->25->1782"
14859
+ "default.handlebars->25->1786"
14860
]
14861
},
14862
{
@@ -15400,7 +15401,7 @@
15401
"ru": "Заблокировать учетную запись",
15402
"zh-chs": "鎖定賬戶",
15403
"xloc": [
15403
- "default.handlebars->25->1492"
15404
+ "default.handlebars->25->1494"
15405
]
15406
},
15407
{
@@ -15451,7 +15452,7 @@
15452
"ru": "Заблокированная учетная запись",
15453
"zh-chs": "賬戶鎖定",
15454
"xloc": [
15454
- "default.handlebars->25->1561"
15455
+ "default.handlebars->25->1563"
15456
]
15457
},
15458
{
@@ -15952,7 +15953,7 @@
15953
"ru": "Сообщения главного сервера",
15954
"zh-chs": "主服務器消息",
15955
"xloc": [
15955
- "default.handlebars->25->1754"
15956
+ "default.handlebars->25->1758"
15957
]
15958
},
15959
{
@@ -16084,7 +16085,7 @@
16085
"en": "Manage Recordings",
16086
"nl": "Beheeer opnames",
16087
"xloc": [
16087
- "default.handlebars->25->1491"
16088
+ "default.handlebars->25->1493"
16089
]
16090
},
16091
{
@@ -16118,7 +16119,7 @@
16119
"ru": "Управление группами пользователя",
16120
"zh-chs": "管理用戶組",
16121
"xloc": [
16121
- "default.handlebars->25->1490"
16122
+ "default.handlebars->25->1492"
16123
]
16124
},
16125
{
@@ -16135,7 +16136,7 @@
16136
"ru": "Управление пользователями",
16137
"zh-chs": "管理用戶",
16138
"xloc": [
16138
- "default.handlebars->25->1489",
16139
+ "default.handlebars->25->1491",
16140
"default.handlebars->25->596"
16141
]
16142
},
@@ -16378,7 +16379,7 @@
16379
"ru": "Достигнуто максимальное число сессий",
16380
"zh-chs": "達到的會話數上限",
16381
"xloc": [
16381
- "default.handlebars->25->1718"
16382
+ "default.handlebars->25->1722"
16383
]
16384
},
16385
{
@@ -16432,7 +16433,7 @@
16433
"ru": "Мегабайт",
16434
"zh-chs": "兆字節",
16435
"xloc": [
16435
- "default.handlebars->25->1744"
16436
+ "default.handlebars->25->1748"
16437
]
16438
},
16439
{
@@ -16449,7 +16450,7 @@
16450
"ru": "ОЗУ",
16451
"zh-chs": "記憶",
16452
"xloc": [
16452
- "default.handlebars->25->1735",
16453
+ "default.handlebars->25->1739",
16454
"default.handlebars->25->839",
16455
"default.handlebars->container->column_l->p40->3->1->p40type->3"
16456
]
@@ -16585,7 +16586,7 @@
16586
"ru": "Трафик MeshAgent",
16587
"zh-chs": "MeshAgent流量",
16588
"xloc": [
16588
- "default.handlebars->25->1756"
16589
+ "default.handlebars->25->1760"
16590
]
16591
},
16592
{
@@ -16602,7 +16603,7 @@
16603
"ru": "Обновление MeshAgent",
16604
"zh-chs": "MeshAgent更新",
16605
"xloc": [
16605
- "default.handlebars->25->1757"
16606
+ "default.handlebars->25->1761"
16607
]
16608
},
16609
{
@@ -16705,7 +16706,7 @@
16706
"ru": "Соединения сервера MeshCentral",
16707
"zh-chs": "MeshCentral服務器對等",
16708
"xloc": [
16708
- "default.handlebars->25->1755"
16709
+ "default.handlebars->25->1759"
16710
]
16711
},
16712
{
@@ -16968,7 +16969,7 @@
16969
"ru": "Диспетчер сообщения",
16970
"zh-chs": "郵件調度程序",
16971
"xloc": [
16971
- "default.handlebars->25->1753"
16972
+ "default.handlebars->25->1757"
16973
]
16974
},
16975
{
@@ -17116,7 +17117,7 @@
17117
"ru": "Еще",
17118
"zh-chs": "更多",
17119
"xloc": [
17119
- "default.handlebars->25->1781"
17120
+ "default.handlebars->25->1785"
17121
]
17122
},
17123
{
@@ -17191,7 +17192,7 @@
17192
"en": "Multiplexor",
17193
"nl": "Multiplexor",
17194
"xloc": [
17194
- "default.handlebars->25->1696"
17195
+ "default.handlebars->25->1700"
17196
]
17197
},
17198
{
@@ -17461,11 +17462,11 @@
17462
"default.handlebars->25->1149",
17463
"default.handlebars->25->1232",
17464
"default.handlebars->25->1408",
17464
- "default.handlebars->25->1497",
17465
- "default.handlebars->25->1511",
17466
- "default.handlebars->25->1518",
17467
- "default.handlebars->25->1548",
17468
- "default.handlebars->25->1567",
17465
+ "default.handlebars->25->1499",
17466
+ "default.handlebars->25->1513",
17467
+ "default.handlebars->25->1520",
17468
+ "default.handlebars->25->1550",
17469
+ "default.handlebars->25->1569",
17470
"default.handlebars->25->468",
17471
"default.handlebars->25->714",
17472
"default.handlebars->25->77",
@@ -17507,7 +17508,7 @@
17508
"ru": "Имя1, Имя2, Имя3",
17509
"zh-chs": "名稱1,名稱2,名稱3",
17510
"xloc": [
17510
- "default.handlebars->25->1481"
17511
+ "default.handlebars->25->1483"
17512
]
17513
},
17514
{
@@ -17860,7 +17861,7 @@
17861
"zh-chs": "找不到活動",
17862
"xloc": [
17863
"default.handlebars->25->1398",
17863
- "default.handlebars->25->1672",
17864
+ "default.handlebars->25->1676",
17865
"default.handlebars->25->785"
17866
]
17867
},
@@ -18004,7 +18005,7 @@
18005
"ru": "Нет членов",
18006
"zh-chs": "沒有會員",
18007
"xloc": [
18007
- "default.handlebars->25->1530"
18008
+ "default.handlebars->25->1532"
18009
]
18010
},
18011
{
@@ -18021,7 +18022,7 @@
18022
"ru": "Запретить создание групп устройств",
18023
"zh-chs": "沒有新的設備組",
18024
"xloc": [
18024
- "default.handlebars->25->1493"
18025
+ "default.handlebars->25->1495"
18026
]
18027
},
18028
{
@@ -18137,7 +18138,7 @@
18138
"ru": "Нет инструментов (MeshCmd/Router)",
18139
"zh-chs": "沒有工具(MeshCmd /路由器)",
18140
"xloc": [
18140
- "default.handlebars->25->1494"
18141
+ "default.handlebars->25->1496"
18142
]
18143
},
18144
{
@@ -18154,8 +18155,8 @@
18155
"ru": "Нет общих групп устройств",
18156
"zh-chs": "沒有共同的設備組",
18157
"xloc": [
18157
- "default.handlebars->25->1536",
18158
- "default.handlebars->25->1644"
18158
+ "default.handlebars->25->1538",
18159
+ "default.handlebars->25->1648"
18160
]
18161
},
18162
{
@@ -18251,8 +18252,8 @@
18252
"ru": "Нет общих устройств",
18253
"zh-chs": "沒有共同的設備",
18254
"xloc": [
18254
- "default.handlebars->25->1542",
18255
- "default.handlebars->25->1656"
18255
+ "default.handlebars->25->1544",
18256
+ "default.handlebars->25->1660"
18257
]
18258
},
18259
{
@@ -18338,7 +18339,7 @@
18339
"ru": "Группы не найдены.",
18340
"zh-chs": "找不到群組。",
18341
"xloc": [
18341
- "default.handlebars->25->1496"
18342
+ "default.handlebars->25->1498"
18343
]
18344
},
18345
{
@@ -18440,7 +18441,7 @@
18441
"ru": "Нет серверных прав",
18442
"zh-chs": "沒有服務器權限",
18443
"xloc": [
18443
- "default.handlebars->25->1562"
18444
+ "default.handlebars->25->1564"
18445
]
18446
},
18447
{
@@ -18457,7 +18458,7 @@
18458
"ru": "Нет членства в группах пользователей",
18459
"zh-chs": "沒有用戶組成員身份",
18460
"xloc": [
18460
- "default.handlebars->25->1650"
18461
+ "default.handlebars->25->1654"
18462
]
18463
},
18464
{
@@ -18559,13 +18560,13 @@
18560
"default.handlebars->25->1174",
18561
"default.handlebars->25->1349",
18562
"default.handlebars->25->1368",
18562
- "default.handlebars->25->1515",
18563
"default.handlebars->25->1517",
18564
- "default.handlebars->25->1575",
18564
+ "default.handlebars->25->1519",
18565
+ "default.handlebars->25->1577",
18566
"default.handlebars->25->158",
18566
- "default.handlebars->25->1584",
18567
- "default.handlebars->25->1588",
18568
- "default.handlebars->25->1600",
18567
+ "default.handlebars->25->1586",
18568
+ "default.handlebars->25->1590",
18569
+ "default.handlebars->25->1602",
18570
"default.handlebars->25->174",
18571
"default.handlebars->25->175",
18572
"default.handlebars->25->465",
@@ -18722,7 +18723,7 @@
18723
"en": "Not on server",
18724
"nl": "Niet op de server",
18725
"xloc": [
18725
- "default.handlebars->25->1688"
18726
+ "default.handlebars->25->1692"
18727
]
18728
},
18729
{
@@ -18739,7 +18740,7 @@
18740
"ru": "Не задано",
18741
"zh-chs": "沒有設置",
18742
"xloc": [
18742
- "default.handlebars->25->1568"
18743
+ "default.handlebars->25->1570"
18744
]
18745
},
18746
{
@@ -18756,7 +18757,7 @@
18757
"ru": "не подтверждено",
18758
"zh-chs": "未經審核的",
18759
"xloc": [
18759
- "default.handlebars->25->1626"
18760
+ "default.handlebars->25->1630"
18761
]
18762
},
18763
{
@@ -18774,7 +18775,7 @@
18775
"zh-chs": "筆記",
18776
"xloc": [
18777
"default.handlebars->25->1182",
18777
- "default.handlebars->25->1608",
18778
+ "default.handlebars->25->1610",
18779
"default.handlebars->25->537",
18780
"default.handlebars->25->589",
18781
"default.handlebars->25->608",
@@ -18882,7 +18883,7 @@
18883
"ru": "Уведомить",
18884
"zh-chs": "通知",
18885
"xloc": [
18885
- "default.handlebars->25->1612"
18886
+ "default.handlebars->25->1616"
18887
]
18888
},
18889
{
@@ -18918,7 +18919,7 @@
18919
"ru": "Уведомить {0}",
18920
"zh-chs": "通知{0}",
18921
"xloc": [
18921
- "default.handlebars->25->1446"
18922
+ "default.handlebars->25->1448"
18923
]
18924
},
18925
{
@@ -18995,7 +18996,7 @@
18996
"ru": "Произошло в {0}",
18997
"zh-chs": "發生在{0}",
18998
"xloc": [
18998
- "default.handlebars->25->1702"
18999
+ "default.handlebars->25->1706"
19000
]
19001
},
19002
{
@@ -19238,7 +19239,7 @@
19239
"xloc": [
19240
"default-mobile.handlebars->9->233",
19241
"default.handlebars->25->1437",
19241
- "default.handlebars->25->1504",
19242
+ "default.handlebars->25->1506",
19243
"default.handlebars->25->398",
19244
"default.handlebars->25->626"
19245
]
@@ -19476,7 +19477,7 @@
19477
"ru": "Частичные права",
19478
"zh-chs": "部分權利",
19479
"xloc": [
19479
- "default.handlebars->25->1565"
19480
+ "default.handlebars->25->1567"
19481
]
19482
},
19483
{
@@ -19511,12 +19512,12 @@
19512
"zh-chs": "密碼",
19513
"xloc": [
19514
"default-mobile.handlebars->9->236",
19514
- "default.handlebars->25->1469",
19515
- "default.handlebars->25->1470",
19516
- "default.handlebars->25->1580",
19515
+ "default.handlebars->25->1471",
19516
+ "default.handlebars->25->1472",
19517
"default.handlebars->25->1582",
19518
- "default.handlebars->25->1629",
19519
- "default.handlebars->25->1630",
19518
+ "default.handlebars->25->1584",
19519
+ "default.handlebars->25->1633",
19520
+ "default.handlebars->25->1634",
19521
"default.handlebars->25->249",
19522
"default.handlebars->25->278",
19523
"default.handlebars->25->632"
@@ -19625,7 +19626,7 @@
19626
"ru": "Подсказка пароля",
19627
"zh-chs": "密碼提示",
19628
"xloc": [
19628
- "default.handlebars->25->1631"
19629
+ "default.handlebars->25->1635"
19630
]
19631
},
19632
{
@@ -19947,7 +19948,7 @@
19948
"default-mobile.handlebars->9->34",
19949
"default-mobile.handlebars->9->36",
19950
"default.handlebars->25->143",
19950
- "default.handlebars->25->1623",
19951
+ "default.handlebars->25->1627",
19952
"default.handlebars->25->865",
19953
"default.handlebars->25->868"
19954
]
@@ -19962,7 +19963,7 @@
19963
"nl": "Telefoonnummer",
19964
"zh-chs": "电话号码",
19965
"xloc": [
19965
- "default.handlebars->25->1574"
19966
+ "default.handlebars->25->1576"
19967
]
19968
},
19969
{
@@ -19976,7 +19977,7 @@
19977
"zh-chs": "电话号码:",
19978
"xloc": [
19979
"default-mobile.handlebars->9->35",
19979
- "default.handlebars->25->1622",
19980
+ "default.handlebars->25->1626",
19981
"default.handlebars->25->867"
19982
]
19983
},
@@ -20113,7 +20114,7 @@
20114
"zh-chs": "插件動作",
20115
"xloc": [
20116
"default.handlebars->25->169",
20116
- "default.handlebars->25->1778"
20117
+ "default.handlebars->25->1782"
20118
]
20119
},
20120
{
@@ -20424,7 +20425,7 @@
20425
"en": "Present on server",
20426
"nl": "Aanwezig op de server",
20427
"xloc": [
20427
- "default.handlebars->25->1687"
20428
+ "default.handlebars->25->1691"
20429
]
20430
},
20431
{
@@ -20531,7 +20532,7 @@
20532
"ru": "Протокол",
20533
"zh-chs": "協議",
20534
"xloc": [
20534
- "default.handlebars->25->1685",
20535
+ "default.handlebars->25->1689",
20536
"player.handlebars->3->15"
20537
]
20538
},
@@ -20838,7 +20839,7 @@
20839
"ru": "RSS",
20840
"zh-chs": "的RSS",
20841
"xloc": [
20841
- "default.handlebars->25->1748"
20842
+ "default.handlebars->25->1752"
20843
]
20844
},
20845
{
@@ -20855,7 +20856,7 @@
20856
"ru": "Случайный пароль.",
20857
"zh-chs": "隨機化密碼。",
20858
"xloc": [
20858
- "default.handlebars->25->1471"
20859
+ "default.handlebars->25->1473"
20860
]
20861
},
20862
{
@@ -20906,7 +20907,7 @@
20907
"ru": "Области",
20908
"zh-chs": "境界",
20909
"xloc": [
20909
- "default.handlebars->25->1480"
20910
+ "default.handlebars->25->1482"
20911
]
20912
},
20913
{
@@ -20933,7 +20934,7 @@
20934
"en": "Recording Details",
20935
"nl": "Opname details",
20936
"xloc": [
20936
- "default.handlebars->25->1699"
20937
+ "default.handlebars->25->1703"
20938
]
20939
},
20940
{
@@ -21057,7 +21058,7 @@
21058
"ru": "Число ретрансляций",
21059
"zh-chs": "中繼計數",
21060
"xloc": [
21060
- "default.handlebars->25->1730"
21061
+ "default.handlebars->25->1734"
21062
]
21063
},
21064
{
@@ -21074,7 +21075,7 @@
21075
"ru": "Ошибки ретранслятора",
21076
"zh-chs": "中繼錯誤",
21077
"xloc": [
21077
- "default.handlebars->25->1723"
21078
+ "default.handlebars->25->1727"
21079
]
21080
},
21081
{
@@ -21091,8 +21092,8 @@
21092
"ru": "Сессии ретранслятора",
21093
"zh-chs": "接力會議",
21094
"xloc": [
21094
- "default.handlebars->25->1729",
21095
- "default.handlebars->25->1742"
21095
+ "default.handlebars->25->1733",
21096
+ "default.handlebars->25->1746"
21097
]
21098
},
21099
{
@@ -21412,8 +21413,8 @@
21413
"nl": "Apparaatgroepmachtigingen verwijderen",
21414
"zh-chs": "删除设备组权限",
21415
"xloc": [
21415
- "default.handlebars->25->1546",
21416
- "default.handlebars->25->1670"
21416
+ "default.handlebars->25->1548",
21417
+ "default.handlebars->25->1674"
21418
]
21419
},
21420
{
@@ -21427,8 +21428,8 @@
21428
"nl": "Apparaatmachtigingen verwijderen",
21429
"zh-chs": "删除设备权限",
21430
"xloc": [
21430
- "default.handlebars->25->1544",
21431
- "default.handlebars->25->1657"
21431
+ "default.handlebars->25->1546",
21432
+ "default.handlebars->25->1661"
21433
]
21434
},
21435
{
@@ -21456,7 +21457,7 @@
21457
"nl": "Lidmaatschap van gebruikersgroep verwijderen",
21458
"zh-chs": "删除用户组成员身份",
21459
"xloc": [
21459
- "default.handlebars->25->1666"
21460
+ "default.handlebars->25->1670"
21461
]
21462
},
21463
{
@@ -21471,7 +21472,7 @@
21472
"zh-chs": "删除用户组权限",
21473
"xloc": [
21474
"default.handlebars->25->1323",
21474
- "default.handlebars->25->1662"
21475
+ "default.handlebars->25->1666"
21476
]
21477
},
21478
{
@@ -21485,7 +21486,7 @@
21486
"nl": "Gebruikerslidmaatschap verwijderen",
21487
"zh-chs": "删除用户成员资格",
21488
"xloc": [
21488
- "default.handlebars->25->1554"
21489
+ "default.handlebars->25->1556"
21490
]
21491
},
21492
{
@@ -21500,7 +21501,7 @@
21501
"zh-chs": "删除用户权限",
21502
"xloc": [
21503
"default.handlebars->25->1321",
21503
- "default.handlebars->25->1659"
21504
+ "default.handlebars->25->1663"
21505
]
21506
},
21507
{
@@ -21517,7 +21518,7 @@
21518
"ru": "Удалить все двухфакторные аутентификации.",
21519
"zh-chs": "刪除所有第二因素驗證。",
21520
"xloc": [
21520
- "default.handlebars->25->1634"
21521
+ "default.handlebars->25->1638"
21522
]
21523
},
21524
{
@@ -21534,7 +21535,7 @@
21535
"ru": "Удалить все прошлые события для этого userid.",
21536
"zh-chs": "刪除此用戶標識的所有先前事件。",
21537
"xloc": [
21537
- "default.handlebars->25->1472"
21538
+ "default.handlebars->25->1474"
21539
]
21540
},
21541
{
@@ -21615,7 +21616,7 @@
21616
"ru": "Удалить этого пользователя",
21617
"zh-chs": "删除该用户",
21618
"xloc": [
21618
- "default.handlebars->25->1614"
21619
+ "default.handlebars->25->1618"
21620
]
21621
},
21622
{
@@ -21632,7 +21633,7 @@
21633
"ru": "Удалить членство пользователя в группе",
21634
"zh-chs": "刪除用戶組成員身份",
21635
"xloc": [
21635
- "default.handlebars->25->1648"
21636
+ "default.handlebars->25->1652"
21637
]
21638
},
21639
{
@@ -21646,7 +21647,7 @@
21647
"nl": "Gebruikersrechten voor dit apparaat verwijderen",
21648
"zh-chs": "删除此设备的用户组权限",
21649
"xloc": [
21649
- "default.handlebars->25->1540"
21650
+ "default.handlebars->25->1542"
21651
]
21652
},
21653
{
@@ -21663,7 +21664,7 @@
21664
"ru": "Удалить права группы пользователей для этой группы устройств",
21665
"zh-chs": "刪除該設備組的用戶組權限",
21666
"xloc": [
21666
- "default.handlebars->25->1534",
21667
+ "default.handlebars->25->1536",
21668
"default.handlebars->25->573"
21669
]
21670
},
@@ -21682,9 +21683,9 @@
21683
"zh-chs": "刪除此設備組的用戶權限",
21684
"xloc": [
21685
"default.handlebars->25->1199",
21685
- "default.handlebars->25->1528",
21686
- "default.handlebars->25->1642",
21687
- "default.handlebars->25->1654",
21686
+ "default.handlebars->25->1530",
21687
+ "default.handlebars->25->1646",
21688
+ "default.handlebars->25->1658",
21689
"default.handlebars->25->574"
21690
]
21691
},
@@ -21746,8 +21747,8 @@
21747
"zh-chs": "要求:{0}。",
21748
"xloc": [
21749
"default-mobile.handlebars->9->58",
21749
- "default.handlebars->25->1477",
21750
- "default.handlebars->25->1632"
21750
+ "default.handlebars->25->1479",
21751
+ "default.handlebars->25->1636"
21752
]
21753
},
21754
{
@@ -21989,7 +21990,7 @@
21990
"ru": "Ограничения",
21991
"zh-chs": "限制條件",
21992
"xloc": [
21992
- "default.handlebars->25->1566"
21993
+ "default.handlebars->25->1568"
21994
]
21995
},
21996
{
@@ -22212,8 +22213,8 @@
22213
"nl": "SMS",
22214
"zh-chs": "短信",
22215
"xloc": [
22215
- "default.handlebars->25->1605",
22216
- "default.handlebars->25->1610",
22216
+ "default.handlebars->25->1607",
22217
+ "default.handlebars->25->1612",
22218
"login-mobile.handlebars->container->page_content->column_l->1->1->0->1->tokenpanel->1->7->1->4->1->3",
22219
"login.handlebars->container->column_l->centralTable->1->0->logincell->tokenpanel->1->7->1->4->1->3"
22220
]
@@ -22228,7 +22229,7 @@
22229
"nl": "SMS geschikt telefoonnummer voor deze gebruiker.",
22230
"zh-chs": "此用户的短信功能电话号码。",
22231
"xloc": [
22231
- "default.handlebars->25->1620"
22232
+ "default.handlebars->25->1624"
22233
]
22234
},
22235
{
@@ -22630,7 +22631,7 @@
22631
"zh-chs": "安全",
22632
"xloc": [
22633
"default-mobile.handlebars->9->237",
22633
- "default.handlebars->25->1606",
22634
+ "default.handlebars->25->1608",
22635
"default.handlebars->25->250",
22636
"default.handlebars->25->633",
22637
"default.handlebars->25->818"
@@ -22650,7 +22651,7 @@
22651
"ru": "Ключ безопасности",
22652
"zh-chs": "安全密鑰",
22653
"xloc": [
22653
- "default.handlebars->25->1603"
22654
+ "default.handlebars->25->1605"
22655
]
22656
},
22657
{
@@ -22686,7 +22687,7 @@
22687
"xloc": [
22688
"default.handlebars->25->1378",
22689
"default.handlebars->25->1435",
22689
- "default.handlebars->25->1502",
22690
+ "default.handlebars->25->1504",
22691
"default.handlebars->25->394",
22692
"default.handlebars->25->748",
22693
"default.handlebars->25->750",
@@ -22714,7 +22715,7 @@
22715
"xloc": [
22716
"default.handlebars->25->1377",
22717
"default.handlebars->25->1434",
22717
- "default.handlebars->25->1501",
22718
+ "default.handlebars->25->1503",
22719
"default.handlebars->25->393",
22720
"default.handlebars->25->749",
22721
"default.handlebars->meshContextMenu->cxselectnone"
@@ -22800,7 +22801,7 @@
22801
"zh-chs": "选择要对所有选定用户执行的操作。",
22802
"xloc": [
22803
"default.handlebars->25->1436",
22803
- "default.handlebars->25->1503"
22804
+ "default.handlebars->25->1505"
22805
]
22806
},
22807
{
@@ -22876,6 +22877,12 @@
22877
"messenger.handlebars->xbottom"
22878
]
22879
},
22880
+ {
22881
+ "en": "Send Email",
22882
+ "xloc": [
22883
+ "default.handlebars->25->1447"
22884
+ ]
22885
+ },
22886
{
22887
"cs": "Poslat MQTT zprávu",
22888
"de": "Sende MQTT-Nachricht",
@@ -22934,7 +22941,13 @@
22941
"nl": "Stuur een SMS bericht naar deze gebruiker",
22942
"zh-chs": "发送短信给该用户",
22943
"xloc": [
22937
- "default.handlebars->25->1611"
22944
+ "default.handlebars->25->1613"
22945
+ ]
22946
+ },
22947
+ {
22948
+ "en": "Send a email message to this user",
22949
+ "xloc": [
22950
+ "default.handlebars->25->1615"
22951
]
22952
},
22953
{
@@ -22951,7 +22964,7 @@
22964
"ru": "Отправить уведомление всем пользователям этой группы.",
22965
"zh-chs": "向該組中的所有用戶發送通知。",
22966
"xloc": [
22954
- "default.handlebars->25->1525"
22967
+ "default.handlebars->25->1527"
22968
]
22969
},
22970
{
@@ -22968,7 +22981,7 @@
22981
"ru": "Отправить текстовое уведомление этому пользователю.",
22982
"zh-chs": "向該用戶發送文本通知。",
22983
"xloc": [
22971
- "default.handlebars->25->1447"
22984
+ "default.handlebars->25->1449"
22985
]
22986
},
22987
{
@@ -23018,7 +23031,7 @@
23031
"ru": "Отправить приглашение по email.",
23032
"zh-chs": "發送邀請電子郵件。",
23033
"xloc": [
23021
- "default.handlebars->25->1476"
23034
+ "default.handlebars->25->1478"
23035
]
23036
},
23037
{
@@ -23084,7 +23097,7 @@
23097
"ru": "Отправить уведомление пользователю",
23098
"zh-chs": "發送用戶通知",
23099
"xloc": [
23087
- "default.handlebars->25->1613"
23100
+ "default.handlebars->25->1617"
23101
]
23102
},
23103
{
@@ -23135,7 +23148,7 @@
23148
"ru": "Резервное копирование сервера",
23149
"zh-chs": "服務器備份",
23150
"xloc": [
23138
- "default.handlebars->25->1486"
23151
+ "default.handlebars->25->1488"
23152
]
23153
},
23154
{
@@ -23152,7 +23165,7 @@
23165
"ru": "Сертификат сервера",
23166
"zh-chs": "服務器證書",
23167
"xloc": [
23155
- "default.handlebars->25->1758"
23168
+ "default.handlebars->25->1762"
23169
]
23170
},
23171
{
@@ -23169,7 +23182,7 @@
23182
"ru": "База данных сервера",
23183
"zh-chs": "服務器數據庫",
23184
"xloc": [
23172
- "default.handlebars->25->1759"
23185
+ "default.handlebars->25->1763"
23186
]
23187
},
23188
{
@@ -23190,7 +23203,7 @@
23203
"default-mobile.handlebars->9->335",
23204
"default.handlebars->25->1275",
23205
"default.handlebars->25->1303",
23193
- "default.handlebars->25->1483",
23206
+ "default.handlebars->25->1485",
23207
"default.handlebars->25->587",
23208
"default.handlebars->25->606"
23209
]
@@ -23210,7 +23223,7 @@
23223
"zh-chs": "服務器權限",
23224
"xloc": [
23225
"default.handlebars->25->1422",
23213
- "default.handlebars->25->1495"
23226
+ "default.handlebars->25->1497"
23227
]
23228
},
23229
{
@@ -23227,7 +23240,7 @@
23240
"ru": "Квота сервера",
23241
"zh-chs": "服務器配額",
23242
"xloc": [
23230
- "default.handlebars->25->1577"
23243
+ "default.handlebars->25->1579"
23244
]
23245
},
23246
{
@@ -23244,7 +23257,7 @@
23257
"ru": "Восстановление сервера",
23258
"zh-chs": "服務器還原",
23259
"xloc": [
23247
- "default.handlebars->25->1487"
23260
+ "default.handlebars->25->1489"
23261
]
23262
},
23263
{
@@ -23261,7 +23274,7 @@
23274
"ru": "Права",
23275
"zh-chs": "服務器權限",
23276
"xloc": [
23264
- "default.handlebars->25->1576"
23277
+ "default.handlebars->25->1578"
23278
]
23279
},
23280
{
@@ -23278,7 +23291,7 @@
23291
"ru": "Состояние сервера",
23292
"zh-chs": "服務器狀態",
23293
"xloc": [
23281
- "default.handlebars->25->1709"
23294
+ "default.handlebars->25->1713"
23295
]
23296
},
23297
{
@@ -23312,7 +23325,7 @@
23325
"ru": "Трассировка сервера",
23326
"zh-chs": "服務器跟踪",
23327
"xloc": [
23315
- "default.handlebars->25->1769"
23328
+ "default.handlebars->25->1773"
23329
]
23330
},
23331
{
@@ -23329,7 +23342,7 @@
23342
"ru": "Обновление сервера",
23343
"zh-chs": "服務器更新",
23344
"xloc": [
23332
- "default.handlebars->25->1488"
23345
+ "default.handlebars->25->1490"
23346
]
23347
},
23348
{
@@ -23451,7 +23464,7 @@
23464
"ru": "ServerStats.csv",
23465
"zh-chs": "ServerStats.csv",
23466
"xloc": [
23454
- "default.handlebars->25->1750"
23467
+ "default.handlebars->25->1754"
23468
]
23469
},
23470
{
@@ -23492,7 +23505,7 @@
23505
"en": "Session",
23506
"nl": "Sessie",
23507
"xloc": [
23495
- "default.handlebars->25->1673"
23508
+ "default.handlebars->25->1677"
23509
]
23510
},
23511
{
@@ -23967,8 +23980,8 @@
23980
"ru": "Размер",
23981
"zh-chs": "尺寸",
23982
"xloc": [
23970
- "default.handlebars->25->1676",
23971
- "default.handlebars->25->1691",
23983
+ "default.handlebars->25->1680",
23984
+ "default.handlebars->25->1695",
23985
"default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->9->devListToolbarSize"
23986
]
23987
},
@@ -24779,8 +24792,8 @@
24792
"en": "Start Time",
24793
"nl": "Start tijd",
24794
"xloc": [
24782
- "default.handlebars->25->1674",
24783
- "default.handlebars->25->1693",
24795
+ "default.handlebars->25->1678",
24796
+ "default.handlebars->25->1697",
24797
"default.handlebars->25->697"
24798
]
24799
},
@@ -24833,8 +24846,8 @@
24846
"ru": "Статус",
24847
"zh-chs": "狀態",
24848
"xloc": [
24836
- "default.handlebars->25->1625",
24837
- "default.handlebars->25->1686",
24849
+ "default.handlebars->25->1629",
24850
+ "default.handlebars->25->1690",
24851
"default.handlebars->container->column_l->p42->p42tbl->1->0->7"
24852
]
24853
},
@@ -24973,6 +24986,12 @@
24986
"login.handlebars->5->32"
24987
]
24988
},
24989
+ {
24990
+ "en": "Subject",
24991
+ "xloc": [
24992
+ "default.handlebars->25->1446"
24993
+ ]
24994
+ },
24995
{
24996
"cs": "Předložit",
24997
"de": "einreichen",
@@ -25377,7 +25396,7 @@
25396
"xloc": [
25397
"default-mobile.handlebars->9->116",
25398
"default.handlebars->25->1242",
25380
- "default.handlebars->25->1680",
25399
+ "default.handlebars->25->1684",
25400
"default.handlebars->25->215",
25401
"default.handlebars->25->446",
25402
"default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevTerminal",
@@ -25416,7 +25435,7 @@
25435
"zh-chs": "終端通知",
25436
"xloc": [
25437
"default.handlebars->25->1162",
25419
- "default.handlebars->25->1595",
25438
+ "default.handlebars->25->1597",
25439
"default.handlebars->25->516"
25440
]
25441
},
@@ -25435,7 +25454,7 @@
25454
"zh-chs": "終端提示",
25455
"xloc": [
25456
"default.handlebars->25->1161",
25438
- "default.handlebars->25->1594",
25457
+ "default.handlebars->25->1596",
25458
"default.handlebars->25->515"
25459
]
25460
},
@@ -25579,7 +25598,7 @@
25598
"ru": "На данный момент уведомлений нет",
25599
"zh-chs": "目前沒有任何通知",
25600
"xloc": [
25582
- "default.handlebars->25->1701"
25601
+ "default.handlebars->25->1705"
25602
]
25603
},
25604
{
@@ -26808,9 +26827,9 @@
26827
"default-mobile.handlebars->9->194",
26828
"default-mobile.handlebars->9->195",
26829
"default.handlebars->25->13",
26811
- "default.handlebars->25->1665",
26812
- "default.handlebars->25->1678",
26813
- "default.handlebars->25->1679",
26830
+ "default.handlebars->25->1669",
26831
+ "default.handlebars->25->1682",
26832
+ "default.handlebars->25->1683",
26833
"default.handlebars->25->392",
26834
"default.handlebars->25->41",
26835
"default.handlebars->25->42",
@@ -26855,7 +26874,7 @@
26874
"ru": "Неизвестное действие",
26875
"zh-chs": "未知動作",
26876
"xloc": [
26858
- "default.handlebars->25->1715"
26877
+ "default.handlebars->25->1719"
26878
]
26879
},
26880
{
@@ -26872,8 +26891,8 @@
26891
"ru": "Неизвестное устройство",
26892
"zh-chs": "未知設備",
26893
"xloc": [
26875
- "default.handlebars->25->1539",
26876
- "default.handlebars->25->1653"
26894
+ "default.handlebars->25->1541",
26895
+ "default.handlebars->25->1657"
26896
]
26897
},
26898
{
@@ -26890,9 +26909,9 @@
26909
"ru": "Неизвестная группа устройств",
26910
"zh-chs": "未知設備組",
26911
"xloc": [
26893
- "default.handlebars->25->1533",
26894
- "default.handlebars->25->1641",
26895
- "default.handlebars->25->1719"
26912
+ "default.handlebars->25->1535",
26913
+ "default.handlebars->25->1645",
26914
+ "default.handlebars->25->1723"
26915
]
26916
},
26917
{
@@ -26909,7 +26928,7 @@
26928
"ru": "Неизвестная группа",
26929
"zh-chs": "未知群組",
26930
"xloc": [
26912
- "default.handlebars->25->1711"
26931
+ "default.handlebars->25->1715"
26932
]
26933
},
26934
{
@@ -26944,7 +26963,7 @@
26963
"ru": "Неизвестная группа пользователей",
26964
"zh-chs": "未知用戶組",
26965
"xloc": [
26947
- "default.handlebars->25->1647"
26966
+ "default.handlebars->25->1651"
26967
]
26968
},
26969
{
@@ -27033,7 +27052,7 @@
27052
"ru": "Актуально",
27053
"zh-chs": "最新",
27054
"xloc": [
27036
- "default.handlebars->25->1776"
27055
+ "default.handlebars->25->1780"
27056
]
27057
},
27058
{
@@ -27282,8 +27301,8 @@
27301
"ru": "Использовано",
27302
"zh-chs": "用過的",
27303
"xloc": [
27285
- "default.handlebars->25->1705",
27286
- "default.handlebars->25->1707"
27304
+ "default.handlebars->25->1709",
27305
+ "default.handlebars->25->1711"
27306
]
27307
},
27308
{
@@ -27303,8 +27322,8 @@
27322
"default-mobile.handlebars->9->347",
27323
"default.handlebars->25->1200",
27324
"default.handlebars->25->1423",
27306
- "default.handlebars->25->1529",
27307
- "default.handlebars->25->1698",
27325
+ "default.handlebars->25->1531",
27326
+ "default.handlebars->25->1702",
27327
"default.handlebars->25->193",
27328
"default.handlebars->25->576"
27329
]
@@ -27340,10 +27359,10 @@
27359
"ru": "Импорт учетной записи пользователя",
27360
"zh-chs": "用戶帳戶導入",
27361
"xloc": [
27343
- "default.handlebars->25->1449",
27344
- "default.handlebars->25->1450",
27362
+ "default.handlebars->25->1451",
27363
"default.handlebars->25->1452",
27346
- "default.handlebars->25->1454"
27364
+ "default.handlebars->25->1454",
27365
+ "default.handlebars->25->1456"
27366
]
27367
},
27368
{
@@ -27360,7 +27379,7 @@
27379
"ru": "Учетные записи пользователей",
27380
"zh-chs": "用戶帳號",
27381
"xloc": [
27363
- "default.handlebars->25->1724"
27382
+ "default.handlebars->25->1728"
27383
]
27384
},
27385
{
@@ -27397,7 +27416,7 @@
27416
"zh-chs": "用戶同意",
27417
"xloc": [
27418
"default.handlebars->25->1168",
27400
- "default.handlebars->25->1601",
27419
+ "default.handlebars->25->1603",
27420
"default.handlebars->25->522"
27421
]
27422
},
@@ -27417,9 +27436,9 @@
27436
"xloc": [
27437
"default.handlebars->25->1256",
27438
"default.handlebars->25->1257",
27420
- "default.handlebars->25->1510",
27421
- "default.handlebars->25->1649",
27422
- "default.handlebars->25->1668",
27439
+ "default.handlebars->25->1512",
27440
+ "default.handlebars->25->1653",
27441
+ "default.handlebars->25->1672",
27442
"default.handlebars->25->575"
27443
]
27444
},
@@ -27454,7 +27473,7 @@
27473
"ru": "Членство в группах пользователей",
27474
"zh-chs": "用戶組成員資格",
27475
"xloc": [
27457
- "default.handlebars->25->1646"
27476
+ "default.handlebars->25->1650"
27477
]
27478
},
27479
{
@@ -27472,7 +27491,7 @@
27491
"zh-chs": "用戶標識",
27492
"xloc": [
27493
"default.handlebars->25->1317",
27475
- "default.handlebars->25->1571"
27494
+ "default.handlebars->25->1573"
27495
]
27496
},
27497
{
@@ -27489,7 +27508,7 @@
27508
"ru": "Экспортировать список пользователей",
27509
"zh-chs": "用戶列表導出",
27510
"xloc": [
27492
- "default.handlebars->25->1461"
27511
+ "default.handlebars->25->1463"
27512
]
27513
},
27514
{
@@ -27524,7 +27543,7 @@
27543
"zh-chs": "用戶名",
27544
"xloc": [
27545
"default.handlebars->25->1254",
27527
- "default.handlebars->25->1558"
27546
+ "default.handlebars->25->1560"
27547
]
27548
},
27549
{
@@ -27572,7 +27591,7 @@
27591
"ru": "Сессии пользователя",
27592
"zh-chs": "用戶會話",
27593
"xloc": [
27575
- "default.handlebars->25->1741"
27594
+ "default.handlebars->25->1745"
27595
]
27596
},
27597
{
@@ -27706,7 +27725,7 @@
27725
"zh-chs": "用戶名",
27726
"xloc": [
27727
"default-mobile.handlebars->9->235",
27709
- "default.handlebars->25->1467",
27728
+ "default.handlebars->25->1469",
27729
"default.handlebars->25->247",
27730
"default.handlebars->25->277",
27731
"default.handlebars->25->631",
@@ -27766,9 +27785,9 @@
27785
"ru": "Пользователи",
27786
"zh-chs": "用戶數",
27787
"xloc": [
27769
- "default.handlebars->25->1498",
27770
- "default.handlebars->25->1521",
27771
- "default.handlebars->25->1740",
27788
+ "default.handlebars->25->1500",
27789
+ "default.handlebars->25->1523",
27790
+ "default.handlebars->25->1744",
27791
"default.handlebars->container->topbar->1->1->UsersSubMenuSpan->UsersSubMenu->1->0->UsersGeneral"
27792
]
27793
},
@@ -27786,7 +27805,7 @@
27805
"ru": "Сессии пользователей",
27806
"zh-chs": "用戶會話",
27807
"xloc": [
27789
- "default.handlebars->25->1728"
27808
+ "default.handlebars->25->1732"
27809
]
27810
},
27811
{
@@ -27869,7 +27888,7 @@
27888
"ru": "Проверенный",
27889
"zh-chs": "已驗證",
27890
"xloc": [
27872
- "default.handlebars->25->1627"
27891
+ "default.handlebars->25->1631"
27892
]
27893
},
27894
{
@@ -27969,7 +27988,7 @@
27988
"ru": "Версия несовместима, пожалуйста, сначала обновите установку MeshCentral",
27989
"zh-chs": "版本不兼容,请先升级您的MeshCentral安装",
27990
"xloc": [
27972
- "default.handlebars->25->1772"
27991
+ "default.handlebars->25->1776"
27992
]
27993
},
27994
{
@@ -28037,8 +28056,8 @@
28056
"ru": "Просмотр журнала изменений",
28057
"zh-chs": "查看变更日志",
28058
"xloc": [
28040
- "default.handlebars->25->1775",
28041
- "default.handlebars->25->1777"
28059
+ "default.handlebars->25->1779",
28060
+ "default.handlebars->25->1781"
28061
]
28062
},
28063
{
@@ -28089,7 +28108,7 @@
28108
"ru": "Посмотреть примечания об этом пользователе",
28109
"zh-chs": "查看有關此用戶的註釋",
28110
"xloc": [
28092
- "default.handlebars->25->1609"
28111
+ "default.handlebars->25->1611"
28112
]
28113
},
28114
{
@@ -28296,8 +28315,8 @@
28315
"ru": "Веб-сервер",
28316
"zh-chs": "網絡服務器",
28317
"xloc": [
28299
- "default.handlebars->25->1761",
28300
- "default.handlebars->25->1762"
28318
+ "default.handlebars->25->1765",
28319
+ "default.handlebars->25->1766"
28320
]
28321
},
28322
{
@@ -28314,7 +28333,7 @@
28333
"ru": "Запросы веб-сервера",
28334
"zh-chs": "Web服務器請求",
28335
"xloc": [
28317
- "default.handlebars->25->1763"
28336
+ "default.handlebars->25->1767"
28337
]
28338
},
28339
{
@@ -28331,7 +28350,7 @@
28350
"ru": "Ретранслятор Web Socket",
28351
"zh-chs": "Web套接字中繼",
28352
"xloc": [
28334
- "default.handlebars->25->1764"
28353
+ "default.handlebars->25->1768"
28354
]
28355
},
28356
{
@@ -28436,7 +28455,7 @@
28455
"ru": "Будет изменено при следующем входе в систему.",
28456
"zh-chs": "下次登錄時將更改。",
28457
"xloc": [
28439
- "default.handlebars->25->1581"
28458
+ "default.handlebars->25->1583"
28459
]
28460
},
28461
{
@@ -29396,7 +29415,7 @@
29415
"ru": "\\\\'",
29416
"zh-chs": "\\\\'",
29417
"xloc": [
29399
- "default.handlebars->25->1773"
29418
+ "default.handlebars->25->1777"
29419
]
29420
},
29421
{
@@ -29671,7 +29690,7 @@
29690
"ru": "свободно",
29691
"zh-chs": "自由",
29692
"xloc": [
29674
- "default.handlebars->25->1736"
29693
+ "default.handlebars->25->1740"
29694
]
29695
},
29696
{
@@ -29852,7 +29871,7 @@
29871
"ru": "id, name, email, creation, lastlogin, groups, authfactors",
29872
"zh-chs": "id,名稱,電子郵件,創建,lastlogin,組,authfactors",
29873
"xloc": [
29855
- "default.handlebars->25->1462"
29874
+ "default.handlebars->25->1464"
29875
]
29876
},
29877
{
@@ -29951,7 +29970,7 @@
29970
"ru": "k max, пусто по умолчанию",
29971
"zh-chs": "k max,默认为空白",
29972
"xloc": [
29954
- "default.handlebars->25->1484"
29973
+ "default.handlebars->25->1486"
29974
]
29975
},
29976
{
@@ -30035,7 +30054,7 @@
30054
"ru": "servertrace.csv",
30055
"zh-chs": "servertrace.csv",
30056
"xloc": [
30038
- "default.handlebars->25->1771"
30057
+ "default.handlebars->25->1775"
30058
]
30059
},
30060
{
@@ -30088,7 +30107,7 @@
30107
"ru": "time, conn.agent, conn.users, conn.usersessions, conn.relaysession, conn.intelamt, mem.external, mem.heapused, mem.heaptotal, mem.rss",
30108
"zh-chs": "時間,conn.agent,conn.users,conn.usersessions,conn.relaysession,conn.intelamt,mem.external,mem.heapused,mem.heaptotal,mem.rss",
30109
"xloc": [
30091
- "default.handlebars->25->1749"
30110
+ "default.handlebars->25->1753"
30111
]
30112
},
30113
{
@@ -30105,7 +30124,7 @@
30124
"ru": "time, source, message",
30125
"zh-chs": "時間,來源,訊息",
30126
"xloc": [
30108
- "default.handlebars->25->1770"
30127
+ "default.handlebars->25->1774"
30128
]
30129
},
30130
{
@@ -30136,7 +30155,7 @@
30155
"ru": "всего",
30156
"zh-chs": "總",
30157
"xloc": [
30139
- "default.handlebars->25->1737"
30158
+ "default.handlebars->25->1741"
30159
]
30160
},
30161
{
@@ -30203,8 +30222,8 @@
30222
"ru": "userlist.csv",
30223
"zh-chs": "userlist.csv",
30224
"xloc": [
30206
- "default.handlebars->25->1458",
30207
- "default.handlebars->25->1463"
30225
+ "default.handlebars->25->1460",
30226
+ "default.handlebars->25->1465"
30227
]
30228
},
30229
{
@@ -30221,8 +30240,8 @@
30240
"ru": "userlist.json",
30241
"zh-chs": "userlist.json",
30242
"xloc": [
30224
- "default.handlebars->25->1460",
30225
- "default.handlebars->25->1464"
30243
+ "default.handlebars->25->1462",
30244
+ "default.handlebars->25->1466"
30245
]
30246
},
30247
{
@@ -30291,7 +30310,7 @@
30310
"zh-chs": "{0} Kb",
30311
"xloc": [
30312
"default.handlebars->25->1370",
30294
- "default.handlebars->25->1677"
30313
+ "default.handlebars->25->1681"
30314
]
30315
},
30316
{
@@ -30343,7 +30362,7 @@
30362
"ru": "{0} активных сессий",
30363
"zh-chs": "{0}個活動會話",
30364
"xloc": [
30346
- "default.handlebars->25->1619"
30365
+ "default.handlebars->25->1623"
30366
]
30367
},
30368
{
@@ -30379,7 +30398,7 @@
30398
"xloc": [
30399
"default-mobile.handlebars->9->88",
30400
"default.handlebars->25->1380",
30382
- "default.handlebars->25->1692"
30401
+ "default.handlebars->25->1696"
30402
]
30403
},
30404
{
@@ -30437,7 +30456,7 @@
30456
"ru": "{0} групп",
30457
"zh-chs": "{0}個群組",
30458
"xloc": [
30440
- "default.handlebars->25->1586"
30459
+ "default.handlebars->25->1588"
30460
]
30461
},
30462
{
views/default.handlebars
+19
-3
@@ -4982,6 +4982,7 @@
4982
if (node == null) return;
4983
var mesh = meshes[node.meshid];
4984
var meshrights = GetNodeRights(node);
4985
+ var deviceSwitch = ((currentNode == null) || (currentNode._id != nodeid));
4986
if (!currentNode || currentNode._id != node._id || refresh == true) {
4987
currentNode = node;
4988
@@ -5269,9 +5270,11 @@
5270
}
5271
5272
// Clear user consent status if present
5272
- p11clearConsoleMsg();
5273
- p12clearConsoleMsg();
5274
- p13clearConsoleMsg();
5273
+ if (deviceSwitch) {
5274
+ p11clearConsoleMsg();
5275
+ p12clearConsoleMsg();
5276
+ p13clearConsoleMsg();
5277
+ }
5278
5279
// Device refresh plugin handler
5280
if (pluginHandler != null) {
@@ -10159,6 +10162,18 @@
10162
function showSendSMSValidate() { QE('idx_dlgOkButton', Q('d2smsText').value.length > 0); }
10163
function showSendSMSEx(b, tag) { if (Q('d2smsText').value.length > 0) { meshserver.send({ action: 'smsuser', userid: decodeURIComponent(tag), msg: Q('d2smsText').value }); } }
10164
10165
+ function showSendEmail(userid) {
10166
+ if (xxdialogMode) return;
10167
+ var x = '<input id=d2emailSubject style=background-color:#fcf3cf;width:100% placeholder="' + "Subject" + '"></input>';
10168
+ x += '<textarea id=d2emailText maxlength=10000 style="background-color:#fcf3cf;width:100%;height:200px;resize:none;overflow-y:auto" onKeyUp=showSendEmailValidate()></textarea>';
10169
+ setDialogMode(2, "Send Email", 3, showSendEmailEx, x, userid);
10170
+ Q('d2emailSubject').focus();
10171
+ showSendEmailValidate();
10172
+ }
10173
+
10174
+ function showSendEmailValidate() { QE('idx_dlgOkButton', (Q('d2emailSubject').value.length > 0) && (Q('d2emailText').value.length > 0)); }
10175
+ function showSendEmailEx(b, tag) { if (Q('d2emailText').value.length > 0) { meshserver.send({ action: 'emailuser', userid: decodeURIComponent(tag), subject: Q('d2emailSubject').value, msg: Q('d2emailText').value }); } }
10176
+
10177
function showUserAlertDialog(e, userid) {
10178
if (xxdialogMode) return;
10179
haltEvent(e);
@@ -10916,6 +10931,7 @@
10931
// Add action buttons
10932
x += '<input type=button value="' + "Notes" + '" title="' + "View notes about this user" + '" onclick=showNotes(false,"' + userid + '") />';
10933
if (user.phone && (features & 0x02000000)) { x += '<input type=button value="' + "SMS" + '" title="' + "Send a SMS message to this user" + '" onclick=showSendSMS("' + userid + '") />'; }
10934
+ if ((typeof user.email == 'string') && (user.emailVerified === true) && (features & 0x00000040)) { x += '<input type=button value="' + "Email" + '" title="' + "Send a email message to this user" + '" onclick=showSendEmail("' + userid + '") />'; }
10935
if (!self && (activeSessions > 0)) { x += '<input type=button value="' + "Notify" + '" title="' + "Send user notification" + '" onclick=showUserAlertDialog(event,"' + userid + '") />'; }
10936
10937
// Setup the panel