From 04dfeebe1e39559863aa9ed282bd92385d8f396a Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Wed, 13 May 2020 00:27:31 -0700 Subject: [PATCH] Bug fixes, added AmtWake to MeshCMD. --- agents/MeshCmd-signed.exe | Bin 4698032 -> 4706928 bytes agents/MeshCmd64-signed.exe | Bin 4314032 -> 4322928 bytes agents/meshcmd.js | 162 +++++- meshmail.js | 19 +- meshuser.js | 32 ++ package.json | 2 +- public/scripts/amt-wsman-0.2.0-min.js | 2 +- public/styles/style.css | 16 + translate/translate.json | 687 +++++++++++++------------- views/default.handlebars | 22 +- 10 files changed, 584 insertions(+), 358 deletions(-) diff --git a/agents/MeshCmd-signed.exe b/agents/MeshCmd-signed.exe index 9dedbb4dde0528c80de2fb0dbd5c431340a13e25..c25f64de3e998d5ca757ea9bd2eccc443505100f 100644 GIT binary patch delta 6051 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 delta 1223 zcmZ9_c`%#@9LDk8*AlyI-RH)A6sdTvC4}|vOR*tw#MLNPCxpsoP>GN9`8WF-A;SuQyc zF};0BMlO(%|AYVqKmm$C3G4yNfC^|p1*if#cnhcjb)W$>ffmpPIzSib0exTq3;_e| z1xCOam;h5?2F!s4umo1X8oUi`fGw~C`@lQE9_$AW00oXx8JX#@UzBaHTA+b4ffHZ> zXW#-309W7!4gz=J0oYOv)RVa&4cv>x8WOF1j3V7|!5CrGloO`ur&B&kh$nbL%wFm# z#2z99dKXiZT9;#tM4};-qgjFCbRuXQV-l&Z7>)3t;#$PW5~fI0Y-0h0cPVc6PoYS> z*v72>pV`YXzc+@Ih(bAL^H(Mh!PSXc1g8<|FF6!ZHb;>dkz*Ne^nV}!msam!-UY@8 zM{11VjfK*IV*C?T!Vlr-N*S$qn*(x1g%}yfbI{`PlR+)E(ha^=wz!^lyXZ`KQsm*& z-H`)oyw=j|Hu)pkjAflJrTk9!(Dn~8!zpRb1WwmPJ(yMVF$Tf&=bdLxsp9=AE2Tf| zq`OQhPxtYP#>~vqG#nShVmQpK^@Wx!G0D4|xbqypBsfC~s)*}ID$A)P*7KEFSp9EK zeNpd6tj(^>DX(e|mo9b;JlW9MMM+hIc~2K6+6}D^9tx?yn@wNI;I{OZHN6yBI1A;5 zLDZTHA>0T04|-N>`g$(r=lT2It4`fb8LVX+mDW4?_;#k~`OAG$^sqgnw$U{Ohk`q( z-_=G33Y?5@nms%EddI%FcT{IK3~X>3+_V^|0&BX7(0xr2o}$T5iFO zs%7~`Vnh7XS0S!_`reW6P&H>ye?)2z(8n7oe`Fs}ss%MWGf-RJ+UE z%bRpEmEx#N(T?TD&;Q)}sl|Q9a;2F1XeB|y`Vpo78{q-G38jFxOmLT4r{1Pp(hyzJQExyIK^@gr3t_h~;P=_sxvjd7Wj~4C+p}s_`HR&@!UGSunT~JI zO3nt=Z5>zOHm@BU%8OUCr`2|^L{5&U4Z0V98^*5tDn1;GJ)YScNREm$H8JJj6wTQ} zmx%Y;UkTlhUTC^CeZu!YeuV@' + id + '' + start + '' + interval + '' + del + ''; +} + +function performAmtWakeConfig(args) { + if ((settings.hostname == '127.0.0.1') || (settings.hostname.toLowerCase() == 'localhost')) { + settings.noconsole = true; startLms(performAmtWakeConfig0, false, args); + } else { + performAmtWakeConfig0(1, args); + } +} + +function performAmtWakeConfig0(state, args) { + var transport = require('amt-wsman-duk'); + var wsman = require('amt-wsman'); + var amt = require('amt'); + wsstack = new wsman(transport, settings.hostname, settings.tls ? 16993 : 16992, settings.username, settings.password, settings.tls); + amtstack = new amt(wsstack); + amtstack.BatchEnum(null, ['IPS_AlarmClockOccurrence'], performAmtWakeConfig1, args); +} + +function performAmtWakeConfig1(stack, name, response, status, args) { + if (status == 200) { + var response = response['IPS_AlarmClockOccurrence'].responses; + if (!args) { process.exit(0); return; } + if (args.list) { + if (response.length == 0) { + console.log('No wake alarms.'); + } else { + for (var i = 0; i < response.length; i++) { + var waketime = convertAmtDataStr(response[i]['StartTime']['Datetime']); + var t = waketime.toLocaleString(), tx = t.indexOf('.'); + if (tx >= 0) { t = t.substring(0, tx); } + var details = response[i]['ElementName'] + ', wake on ' + t.replace(' ', ' at '); + if (response[i]['Interval'] != null) { details += ' and each' + _fmtinterval(response[i]['Interval']['Interval']); } + if (response[i]['DeleteOnCompletion'] == true) { details += ", delete when done"; } + console.log(details); + } + } + process.exit(0); + } else if (args.del) { + // Remove a wake alarm, start by looking to see if it exists + var alarmFound = false; + for (var i = 0; i < response.length; i++) { if (response[i]['ElementName'] == args.del) { alarmFound = true; } } + if (alarmFound == false) { console.log("Wake alarm " + args.del + " could not be found."); process.exit(0); return; } + // Remote the alarm + stack.Delete('IPS_AlarmClockOccurrence', { InstanceID: args.del }, + function (stck, nm, resp, sts) { + if (sts == 200) { console.log("Done."); } else { console.log("Failed to delete wake alarm " + args.del + "."); } + process.exit(0); + }, + 0, 1); + } else if (args.add) { + // Add a wake alarm + var alarmFound = false; + for (var i = 0; i < response.length; i++) { if (response[i]['ElementName'] == args.add) { alarmFound = true; } } + if (alarmFound) { console.log("Wake alarm " + args.add + " already exists."); process.exit(0); return; } + if (typeof args.time != 'string') { args.time = '00:00:00'; } + if (typeof args.interval != 'string') { args.interval = ''; } + var alarm_name = args.add; + var x1 = args.date.split('-'); + var x2 = args.time.split(':'); + 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. + var alarm_starttime = _fmttimepad(t.getFullYear()) + '-' + _fmttimepad(t.getMonth() + 1) + '-' + _fmttimepad(t.getDate()) + 'T' + _fmttimepad(t.getHours()) + ':' + _fmttimepad(t.getMinutes()) + ':' + _fmttimepad(t.getSeconds()) + 'Z'; + var x = args.interval.split('-'); + if (x.length != 3) { x = [0, 0, 0]; } + var alarm_interval = 'P' + x[0] + 'DT' + x[1] + 'H' + x[2] + 'M'; + var alarm_doc = (args.deletewhendone != null); + var tpl = prepareAlarmOccurenceTemplate(alarm_name, alarm_name, alarm_starttime, alarm_interval, alarm_doc); + stack.wsman.ExecMethodXml(amtstack.CompleteName('AMT_AlarmClockService'), 'AddAlarm', tpl, + function (ws, resuri, response, status) { + if (status != 200) { console.log("Failed to add alarm. Status: " + status + ". Verify the alarm is for a future time."); } + else if (response.Body['ReturnValue'] != 0) { console.log("Failed to add alarm " + response.Body['ReturnValueStr'] + ". Verify the alarm is for a future time."); } + else { console.log("Done."); } + process.exit(0); + } + ); + } else { + console.log("Unknown action, specify --list, --del or --add."); + process.exit(0); + } + } else { + console.log("Error, status " + status + "."); + process.exit(1); + } +} + // // Intel AMT feature configuration action // diff --git a/meshmail.js b/meshmail.js index 87ae89f5..36b9eac3 100644 --- a/meshmail.js +++ b/meshmail.js @@ -300,14 +300,25 @@ module.exports.CreateMeshMail = function (parent) { parent.debug('email', 'SMTP response: ' + JSON.stringify(err) + ', ' + JSON.stringify(info)); obj.sendingMail = false; if (err == null) { + // Send the next mail obj.pendingMails.shift(); obj.retry = 0; - sendNextMail(); // Send the next mail + sendNextMail(); } else { obj.retry++; - parent.debug('email', 'SMTP server failed: ' + JSON.stringify(err)); - console.log('SMTP server failed: ' + JSON.stringify(err)); - if (obj.retry < 6) { setTimeout(sendNextMail, 60000); } // Wait and try again + parent.debug('email', 'SMTP server failed (Retry:' + obj.retry + '): ' + JSON.stringify(err)); + console.log('SMTP server failed (Retry:' + obj.retry + '/3): ' + JSON.stringify(err)); + // Wait and try again + if (obj.retry < 3) { + setTimeout(sendNextMail, 10000); + } else { + // Failed, send the next mail + parent.debug('email', 'SMTP server failed (Skipping): ' + JSON.stringify(err)); + console.log('SMTP server failed (Skipping): ' + JSON.stringify(err)); + obj.pendingMails.shift(); + obj.retry = 0; + sendNextMail(); + } } }); } diff --git a/meshuser.js b/meshuser.js index b838425c..01ef9861 100644 --- a/meshuser.js +++ b/meshuser.js @@ -812,6 +812,19 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use } break; } + case 'email': { + if (parent.parent.mailserver == null) { + r = "No email service enabled."; + } else { + if (cmdargs['_'].length != 3) { + r = "Usage: email \"user@sample.com\" \"Subject\" \"Message\"."; + } else { + parent.parent.mailserver.sendMail(cmdargs['_'][0], cmdargs['_'][1], cmdargs['_'][2]); + r = "Done."; + } + } + break; + } case 'le': { if (parent.parent.letsencrypt == null) { r = "Let's Encrypt not in use."; @@ -3871,6 +3884,25 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use }); break; } + case 'emailuser': { // Send a email message to a user + var errMsg = null, emailuser = null; + if (parent.parent.mailserver == null) { errMsg = 'Email server not enabled'; } + else if ((user.siteadmin & 2) == 0) { errMsg = 'No user management rights'; } + else if (common.validateString(command.userid, 1, 2048) == false) { errMsg = 'Invalid userid'; } + else if (common.validateString(command.subject, 1, 1000) == false) { errMsg = 'Invalid subject message'; } + else if (common.validateString(command.msg, 1, 10000) == false) { errMsg = 'Invalid message'; } + else { + emailuser = parent.users[command.userid]; + if (emailuser == null) { errMsg = 'Invalid userid'; } + else if (emailuser.email == null) { errMsg = 'No validated email address for this user'; } + else if (emailuser.emailVerified !== true) { errMsg = 'No validated email address for this user'; } + } + + if (errMsg != null) { displayNotificationMessage(errMsg); break; } + parent.parent.mailserver.sendMail(emailuser.email, command.subject, command.msg); + displayNotificationMessage("Email sent."); + break; + } case 'getClip': { if (common.validateString(command.nodeid, 1, 1024) == false) break; // Check nodeid diff --git a/package.json b/package.json index 33fceaba..14d3ab16 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "meshcentral", - "version": "0.5.31", + "version": "0.5.32", "keywords": [ "Remote Management", "Intel AMT", diff --git a/public/scripts/amt-wsman-0.2.0-min.js b/public/scripts/amt-wsman-0.2.0-min.js index 389c6296..293387e7 100644 --- a/public/scripts/amt-wsman-0.2.0-min.js +++ b/public/scripts/amt-wsman-0.2.0-min.js @@ -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''+e.InstanceID+"";var s="";for(var r in e)if(e.hasOwnProperty(r)){if(s+='',e[r].ReferenceParameters){s+="",s+=""+e[r].Address+""+e[r].ReferenceParameters.ResourceURI+"";var a=e[r].ReferenceParameters.SelectorSet.Selector;if(Array.isArray(a))for(var o=0;o"+a[o].Value+"";else s+=""+a.Value+"";s+=""}else s+=e[r];s+=""}return s+=""}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('
"+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="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken"+c+''+d+"",i=''),l=null!=l&&null!=l?""+l+"":"";var u="http://schemas.xmlsoap.org/ws/2004/08/eventing/Subscribe"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous"+w(n)+m+'
'+r+""+i+"PT0.000000S";p.PerformAjax(u+"
",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"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous"+w(o)+"";p.PerformAjax(t+"",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"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60.000S"+w(t)+""+function(e,s){if(!e||null==s)return"";var r=p.GetNameFromUrl(e),a="';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+=""+s[o].Address+""+s[o].ReferenceParameters.ResourceURI+"";var t=s[o].ReferenceParameters.SelectorSet.Selector;if(Array.isArray(t))for(var n=0;n"+t[n].Value+"";else a+=""+t.Value+"";a+=""}else if(Array.isArray(s[o]))for(n=0;n"+s[o][n].toString()+"";else a+=""+s[o].toString()+"";return a+=""}(e,s);p.PerformAjax(n+"",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"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S"+w(t)+"';for(var c in s)l+=""+s[c]+"";p.PerformAjax(l+"",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"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60.000S'+s+"",r,a,o)},p.ExecDelete=function(e,s,r,a,o){var t="http://schemas.xmlsoap.org/ws/2004/09/transfer/Delete"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S"+w(s)+"";p.PerformAjax(t,r,a,o)},p.ExecGet=function(e,s,r,a){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/transfer/Get"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S",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][d]+"";else l+=""+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+""+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S"+w(n)+"'+r+"",a,o,t)},p.ExecEnum=function(e,s,r,a){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/enumeration/Enumerate"+p.Address+""+e+""+p.NextMessageId+++'http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S',s,r,a)},p.ExecPull=function(e,s,r,a,o){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/enumeration/Pull"+p.Address+""+e+""+p.NextMessageId+++'http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S'+s+"99999999",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'+e.InstanceID+"";var s="";for(var r in e)if(e.hasOwnProperty(r)){if(s+='',e[r].ReferenceParameters){s+="",s+=""+e[r].Address+""+e[r].ReferenceParameters.ResourceURI+"";var a=e[r].ReferenceParameters.SelectorSet.Selector;if(Array.isArray(a))for(var o=0;o"+a[o].Value+"";else s+=""+a.Value+"";s+=""}else s+=e[r];s+=""}return s+=""}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('
"+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="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken"+d+''+c+"",i=''),l=null!=l&&null!=l?""+l+"":"";var u="http://schemas.xmlsoap.org/ws/2004/08/eventing/Subscribe"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous"+w(n)+m+'
'+r+""+i+"PT0.000000S";p.PerformAjax(u+"
",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"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous"+w(o)+"";p.PerformAjax(t+"",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"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60.000S"+w(t)+""+function(e,s){if(!e||null==s)return"";var r=p.GetNameFromUrl(e),a="';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+=""+s[o].Address+""+s[o].ReferenceParameters.ResourceURI+"";var t=s[o].ReferenceParameters.SelectorSet.Selector;if(Array.isArray(t))for(var n=0;n"+t[n].Value+"";else a+=""+t.Value+"";a+=""}else if(Array.isArray(s[o]))for(n=0;n"+s[o][n].toString()+"";else a+=""+s[o].toString()+"";return a+=""}(e,s);p.PerformAjax(n+"",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"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S"+w(t)+"';for(var d in s)l+=""+s[d]+"";p.PerformAjax(l+"",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"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60.000S'+s+"",r,a,o)},p.ExecDelete=function(e,s,r,a,o){var t="http://schemas.xmlsoap.org/ws/2004/09/transfer/Delete"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S"+w(s)+"";p.PerformAjax(t,r,a,o)},p.ExecGet=function(e,s,r,a){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/transfer/Get"+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S",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][c]+"";else l+=""+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+""+p.Address+""+e+""+p.NextMessageId+++"http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S"+w(n)+"'+r+"",a,o,t)},p.ExecEnum=function(e,s,r,a){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/enumeration/Enumerate"+p.Address+""+e+""+p.NextMessageId+++'http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S',s,r,a)},p.ExecPull=function(e,s,r,a,o){p.PerformAjax("http://schemas.xmlsoap.org/ws/2004/09/enumeration/Pull"+p.Address+""+e+""+p.NextMessageId+++'http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymousPT60S'+s+"99999999",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;o25->1253", - "default.handlebars->25->1557" + "default.handlebars->25->1559" ] }, { @@ -614,7 +614,7 @@ "default-mobile.handlebars->9->262", "default-mobile.handlebars->9->77", "default.handlebars->25->1360", - "default.handlebars->25->1700", + "default.handlebars->25->1704", "default.handlebars->25->747" ] }, @@ -663,7 +663,7 @@ "ru": "1 активная сессия", "zh-chs": "1個活動會話", "xloc": [ - "default.handlebars->25->1618" + "default.handlebars->25->1622" ] }, { @@ -725,7 +725,7 @@ "ru": "1 группа", "zh-chs": "1組", "xloc": [ - "default.handlebars->25->1585" + "default.handlebars->25->1587" ] }, { @@ -1125,7 +1125,7 @@ "zh-chs": "啟用第二因素身份驗證", "xloc": [ "default.handlebars->25->1431", - "default.handlebars->25->1607" + "default.handlebars->25->1609" ] }, { @@ -1871,7 +1871,7 @@ "ru": "Доступ к файлам сервера", "zh-chs": "訪問服務器文件", "xloc": [ - "default.handlebars->25->1563" + "default.handlebars->25->1565" ] }, { @@ -1996,7 +1996,7 @@ "zh-chs": "帐户已被锁定", "xloc": [ "default.handlebars->25->1433", - "default.handlebars->25->1560" + "default.handlebars->25->1562" ] }, { @@ -2269,8 +2269,8 @@ "ru": "Добавить устройство", "zh-chs": "添加設備", "xloc": [ - "default.handlebars->25->1537", - "default.handlebars->25->1651" + "default.handlebars->25->1539", + "default.handlebars->25->1655" ] }, { @@ -2305,8 +2305,8 @@ "zh-chs": "添加設備組", "xloc": [ "default.handlebars->25->1285", - "default.handlebars->25->1531", - "default.handlebars->25->1639", + "default.handlebars->25->1533", + "default.handlebars->25->1643", "default.handlebars->25->198" ] }, @@ -2423,7 +2423,7 @@ "ru": "Добавить участие", "zh-chs": "添加會員", "xloc": [ - "default.handlebars->25->1669" + "default.handlebars->25->1673" ] }, { @@ -2515,7 +2515,7 @@ "xloc": [ "default.handlebars->25->1185", "default.handlebars->25->1284", - "default.handlebars->25->1645", + "default.handlebars->25->1649", "default.handlebars->25->571" ] }, @@ -2576,7 +2576,7 @@ "zh-chs": "添加用戶", "xloc": [ "default.handlebars->25->1184", - "default.handlebars->25->1526" + "default.handlebars->25->1528" ] }, { @@ -2610,7 +2610,7 @@ "ru": "Добавить пользователей в группу", "zh-chs": "將用戶添加到用戶組", "xloc": [ - "default.handlebars->25->1559" + "default.handlebars->25->1561" ] }, { @@ -2815,7 +2815,7 @@ "ru": "Области администратора", "zh-chs": "管理領域", "xloc": [ - "default.handlebars->25->1589" + "default.handlebars->25->1591" ] }, { @@ -2850,7 +2850,7 @@ "ru": "Административные области", "zh-chs": "行政領域", "xloc": [ - "default.handlebars->25->1482" + "default.handlebars->25->1484" ] }, { @@ -2978,7 +2978,7 @@ "ru": "Счетчик ошибок агента", "zh-chs": "座席錯誤計數器", "xloc": [ - "default.handlebars->25->1710" + "default.handlebars->25->1714" ] }, { @@ -3047,7 +3047,7 @@ "ru": "Сессии агентов", "zh-chs": "座席會議", "xloc": [ - "default.handlebars->25->1726" + "default.handlebars->25->1730" ] }, { @@ -3170,7 +3170,7 @@ "ru": "Агенты", "zh-chs": "代理商", "xloc": [ - "default.handlebars->25->1739" + "default.handlebars->25->1743" ] }, { @@ -3257,7 +3257,7 @@ "zh-chs": "允許用戶管理此設備組和該組中的設備。", "xloc": [ "default.handlebars->25->1251", - "default.handlebars->25->1556" + "default.handlebars->25->1558" ] }, { @@ -3361,7 +3361,7 @@ "zh-chs": "始終通知", "xloc": [ "default.handlebars->25->1165", - "default.handlebars->25->1598", + "default.handlebars->25->1600", "default.handlebars->25->519" ] }, @@ -3380,7 +3380,7 @@ "zh-chs": "總是提示", "xloc": [ "default.handlebars->25->1166", - "default.handlebars->25->1599", + "default.handlebars->25->1601", "default.handlebars->25->520" ] }, @@ -3989,7 +3989,7 @@ "ru": "Вы уверенны, что {0} плагин: {1}", "zh-chs": "您確定要{0}插件嗎:{1}", "xloc": [ - "default.handlebars->25->1779" + "default.handlebars->25->1783" ] }, { @@ -4085,7 +4085,7 @@ "ru": "Приложение аутентификации", "zh-chs": "身份驗證應用", "xloc": [ - "default.handlebars->25->1602" + "default.handlebars->25->1604" ] }, { @@ -4401,7 +4401,7 @@ "ru": "Резервные коды", "zh-chs": "備用碼", "xloc": [ - "default.handlebars->25->1604" + "default.handlebars->25->1606" ] }, { @@ -4418,7 +4418,7 @@ "ru": "Плохой ключ", "zh-chs": "錯誤的簽名", "xloc": [ - "default.handlebars->25->1717" + "default.handlebars->25->1721" ] }, { @@ -4435,7 +4435,7 @@ "ru": "Плохой веб-сертификат", "zh-chs": "錯誤的網絡證書", "xloc": [ - "default.handlebars->25->1716" + "default.handlebars->25->1720" ] }, { @@ -4573,7 +4573,7 @@ "ru": "Отправить сообщение", "zh-chs": "廣播", "xloc": [ - "default.handlebars->25->1524", + "default.handlebars->25->1526", "default.handlebars->container->column_l->p4->3->1->0->3->1" ] }, @@ -4591,7 +4591,7 @@ "ru": "Отправить сообщение", "zh-chs": "廣播消息", "xloc": [ - "default.handlebars->25->1466" + "default.handlebars->25->1468" ] }, { @@ -4608,7 +4608,7 @@ "ru": "Отправить сообщение всем подключенным пользователям.", "zh-chs": "向所有連接的用戶廣播消息。", "xloc": [ - "default.handlebars->25->1465" + "default.handlebars->25->1467" ] }, { @@ -4698,7 +4698,7 @@ "ru": "CIRA Сервер", "zh-chs": "CIRA服務器", "xloc": [ - "default.handlebars->25->1767" + "default.handlebars->25->1771" ] }, { @@ -4715,7 +4715,7 @@ "ru": "CIRA Сервер команды", "zh-chs": "CIRA服務器命令", "xloc": [ - "default.handlebars->25->1768" + "default.handlebars->25->1772" ] }, { @@ -4748,7 +4748,7 @@ "ru": "Загрузка CPU", "zh-chs": "CPU負載", "xloc": [ - "default.handlebars->25->1731" + "default.handlebars->25->1735" ] }, { @@ -4765,7 +4765,7 @@ "ru": "Загрузка CPU за последние 15 минут", "zh-chs": "最近15分鐘的CPU負載", "xloc": [ - "default.handlebars->25->1734" + "default.handlebars->25->1738" ] }, { @@ -4782,7 +4782,7 @@ "ru": "Загрузка CPU за последние 5 минут", "zh-chs": "最近5分鐘的CPU負載", "xloc": [ - "default.handlebars->25->1733" + "default.handlebars->25->1737" ] }, { @@ -4799,7 +4799,7 @@ "ru": "Загрузка CPU за последнюю минуту", "zh-chs": "最後一分鐘的CPU負載", "xloc": [ - "default.handlebars->25->1732" + "default.handlebars->25->1736" ] }, { @@ -4836,7 +4836,7 @@ "zh-chs": "CSV格式", "xloc": [ "default.handlebars->25->1400", - "default.handlebars->25->1457", + "default.handlebars->25->1459", "default.handlebars->25->412" ] }, @@ -4854,7 +4854,7 @@ "ru": "Ошибка вызова", "zh-chs": "通話錯誤", "xloc": [ - "default.handlebars->25->1780" + "default.handlebars->25->1784" ] }, { @@ -4991,7 +4991,7 @@ "ru": "Смена email для {0}", "zh-chs": "更改{0}的電子郵件", "xloc": [ - "default.handlebars->25->1628" + "default.handlebars->25->1632" ] }, { @@ -5029,7 +5029,7 @@ "xloc": [ "default-mobile.handlebars->9->59", "default.handlebars->25->1112", - "default.handlebars->25->1617" + "default.handlebars->25->1621" ] }, { @@ -5046,7 +5046,7 @@ "ru": "Смена пароля для {0}", "zh-chs": "更改{0}的密碼", "xloc": [ - "default.handlebars->25->1635" + "default.handlebars->25->1639" ] }, { @@ -5116,7 +5116,7 @@ "ru": "Изменить пароль для этого пользователя", "zh-chs": "更改該用戶的密碼", "xloc": [ - "default.handlebars->25->1616" + "default.handlebars->25->1620" ] }, { @@ -5321,7 +5321,7 @@ "ru": "Проверка...", "zh-chs": "檢查...", "xloc": [ - "default.handlebars->25->1774", + "default.handlebars->25->1778", "default.handlebars->25->885" ] }, @@ -5537,7 +5537,7 @@ "nl": "Wis alle meldingen", "zh-chs": "全部清除", "xloc": [ - "default.handlebars->25->1704" + "default.handlebars->25->1708" ] }, { @@ -5587,7 +5587,7 @@ "ru": "Очистить это уведомление", "zh-chs": "清除此通知", "xloc": [ - "default.handlebars->25->1703" + "default.handlebars->25->1707" ] }, { @@ -5663,7 +5663,7 @@ "nl": "Klik hier om de gebruikersgroepsnaam te bewerken", "zh-chs": "单击此处编辑用户组名称", "xloc": [ - "default.handlebars->25->1516" + "default.handlebars->25->1518" ] }, { @@ -5837,8 +5837,8 @@ "ru": "Общие группы устройств", "zh-chs": "通用設備組", "xloc": [ - "default.handlebars->25->1532", - "default.handlebars->25->1640" + "default.handlebars->25->1534", + "default.handlebars->25->1644" ] }, { @@ -5855,8 +5855,8 @@ "ru": "Общие устройства", "zh-chs": "通用設備", "xloc": [ - "default.handlebars->25->1538", - "default.handlebars->25->1652" + "default.handlebars->25->1540", + "default.handlebars->25->1656" ] }, { @@ -5895,9 +5895,9 @@ "default-mobile.handlebars->9->306", "default.handlebars->25->1230", "default.handlebars->25->1443", - "default.handlebars->25->1508", - "default.handlebars->25->1552", - "default.handlebars->25->1638", + "default.handlebars->25->1510", + "default.handlebars->25->1554", + "default.handlebars->25->1642", "default.handlebars->25->409", "default.handlebars->25->644", "default.handlebars->25->653" @@ -5981,7 +5981,7 @@ "nl": "Bevestig verwijdering geselecteerde gebruikersgroep(en)?", "zh-chs": "确认删除选定的用户组?", "xloc": [ - "default.handlebars->25->1507" + "default.handlebars->25->1509" ] }, { @@ -5998,7 +5998,7 @@ "ru": "Подтвердить удаление пользователя {0}?", "zh-chs": "確認刪除用戶{0}?", "xloc": [ - "default.handlebars->25->1637" + "default.handlebars->25->1641" ] }, { @@ -6012,7 +6012,7 @@ "nl": "Bevestig lidmaatschap verwijderen van gebruiker \\\"{0}\\\"?", "zh-chs": "确认删除用户\\“ {0} \\”的成员身份?", "xloc": [ - "default.handlebars->25->1555" + "default.handlebars->25->1557" ] }, { @@ -6026,7 +6026,7 @@ "nl": "Bevestig lidmaatschap verwijdering van gebruikergroep \\\"{0}\\\"?", "zh-chs": "确认删除用户组 “{0}” 的成员身份?", "xloc": [ - "default.handlebars->25->1667" + "default.handlebars->25->1671" ] }, { @@ -6093,8 +6093,8 @@ "nl": "Bevestig verwijdering van toegangsrechten voor apparaat \\\"{0}\\\"?", "zh-chs": "确认删除设备“ {0} ”的访问权限?", "xloc": [ - "default.handlebars->25->1545", - "default.handlebars->25->1658" + "default.handlebars->25->1547", + "default.handlebars->25->1662" ] }, { @@ -6108,8 +6108,8 @@ "nl": "Bevestig verwijdering van toegangsrechten voor apparaatgroep \\\"{0}\\\"?", "zh-chs": "是否确认删除设备组“ {0}”的访问权限?", "xloc": [ - "default.handlebars->25->1547", - "default.handlebars->25->1671" + "default.handlebars->25->1549", + "default.handlebars->25->1675" ] }, { @@ -6123,7 +6123,7 @@ "nl": "Bevestig verwijdering van toegangsrechten voor gebruiker \\\"{0}\\\"?", "zh-chs": "确认删除用户\\“ {0} \\”的访问权限?", "xloc": [ - "default.handlebars->25->1660" + "default.handlebars->25->1664" ] }, { @@ -6137,7 +6137,7 @@ "nl": "Bevestig verwijdering van toegangsrechten voor gebruikergroep \\\"{0}\\\"?", "zh-chs": "确认删除用户组“ {0}”的访问权限?", "xloc": [ - "default.handlebars->25->1663" + "default.handlebars->25->1667" ] }, { @@ -6151,8 +6151,8 @@ "nl": "Verwijdering van toegangsrechten bevestigen?", "zh-chs": "确认删除访问权限?", "xloc": [ - "default.handlebars->25->1661", - "default.handlebars->25->1664" + "default.handlebars->25->1665", + "default.handlebars->25->1668" ] }, { @@ -6399,7 +6399,7 @@ "ru": "Подключено Intel® AMT", "zh-chs": "連接的英特爾®AMT", "xloc": [ - "default.handlebars->25->1722" + "default.handlebars->25->1726" ] }, { @@ -6416,7 +6416,7 @@ "ru": "Подключенные пользователи", "zh-chs": "關聯用戶", "xloc": [ - "default.handlebars->25->1727" + "default.handlebars->25->1731" ] }, { @@ -6492,7 +6492,7 @@ "ru": "Подключений ", "zh-chs": "連接數", "xloc": [ - "default.handlebars->25->1738" + "default.handlebars->25->1742" ] }, { @@ -6509,7 +6509,7 @@ "ru": "Ретранслятор подключения", "zh-chs": "連接繼電器", "xloc": [ - "default.handlebars->25->1766" + "default.handlebars->25->1770" ] }, { @@ -6636,7 +6636,7 @@ "ru": "Cookie-кодировщик", "zh-chs": "Cookie編碼器", "xloc": [ - "default.handlebars->25->1752" + "default.handlebars->25->1756" ] }, { @@ -6941,7 +6941,7 @@ "ru": "Основной сервер", "zh-chs": "核心服務器", "xloc": [ - "default.handlebars->25->1751" + "default.handlebars->25->1755" ] }, { @@ -6975,7 +6975,7 @@ "ru": "Создать учетную запись", "zh-chs": "創建帳號", "xloc": [ - "default.handlebars->25->1478", + "default.handlebars->25->1480", "login-mobile.handlebars->container->page_content->column_l->1->1->0->1->createpanel->1->1->9->1->12->1->1", "login.handlebars->container->column_l->centralTable->1->0->logincell->createpanel->1->9->1->12->1->1" ] @@ -7011,7 +7011,7 @@ "ru": "Создать группу пользователей", "zh-chs": "創建用戶組", "xloc": [ - "default.handlebars->25->1513" + "default.handlebars->25->1515" ] }, { @@ -7062,7 +7062,7 @@ "ru": "Создайте сразу несколько учетных записей, импортировав файл JSON в следующем формате:", "zh-chs": "通過導入以下格式的JSON文件一次創建多個帳戶:", "xloc": [ - "default.handlebars->25->1448" + "default.handlebars->25->1450" ] }, { @@ -7097,7 +7097,7 @@ "ru": "Создано", "zh-chs": "創建", "xloc": [ - "default.handlebars->25->1578" + "default.handlebars->25->1580" ] }, { @@ -7561,7 +7561,7 @@ "ru": "Удалить пользователя", "zh-chs": "刪除用戶", "xloc": [ - "default.handlebars->25->1615" + "default.handlebars->25->1619" ] }, { @@ -7578,8 +7578,8 @@ "ru": "Удалить группу пользователей", "zh-chs": "刪除用戶組", "xloc": [ - "default.handlebars->25->1543", - "default.handlebars->25->1553" + "default.handlebars->25->1545", + "default.handlebars->25->1555" ] }, { @@ -7593,7 +7593,7 @@ "nl": "Gebruikersgroepen verwijderen", "zh-chs": "删除用户组", "xloc": [ - "default.handlebars->25->1509" + "default.handlebars->25->1511" ] }, { @@ -7610,7 +7610,7 @@ "ru": "Удалить пользователя {0}", "zh-chs": "刪除用戶{0}", "xloc": [ - "default.handlebars->25->1636" + "default.handlebars->25->1640" ] }, { @@ -7660,7 +7660,7 @@ "nl": "Verwijder groep", "zh-chs": "删除群组", "xloc": [ - "default.handlebars->25->1505" + "default.handlebars->25->1507" ] }, { @@ -7714,7 +7714,7 @@ "ru": "Удалить группу пользователей {0}?", "zh-chs": "刪除用戶組{0}?", "xloc": [ - "default.handlebars->25->1551" + "default.handlebars->25->1553" ] }, { @@ -7850,10 +7850,10 @@ "default.handlebars->25->1124", "default.handlebars->25->1150", "default.handlebars->25->1233", - "default.handlebars->25->1512", - "default.handlebars->25->1519", - "default.handlebars->25->1520", - "default.handlebars->25->1549", + "default.handlebars->25->1514", + "default.handlebars->25->1521", + "default.handlebars->25->1522", + "default.handlebars->25->1551", "default.handlebars->25->478", "default.handlebars->25->479", "default.handlebars->25->685", @@ -7891,7 +7891,7 @@ "zh-chs": "桌面", "xloc": [ "default.handlebars->25->1238", - "default.handlebars->25->1681", + "default.handlebars->25->1685", "default.handlebars->25->445", "default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevDesktop", "default.handlebars->contextMenu->cxdesktop" @@ -7929,7 +7929,7 @@ "zh-chs": "桌面通知", "xloc": [ "default.handlebars->25->1160", - "default.handlebars->25->1593", + "default.handlebars->25->1595", "default.handlebars->25->514" ] }, @@ -7948,7 +7948,7 @@ "zh-chs": "桌面提示", "xloc": [ "default.handlebars->25->1159", - "default.handlebars->25->1592", + "default.handlebars->25->1594", "default.handlebars->25->513" ] }, @@ -7967,7 +7967,7 @@ "zh-chs": "桌面提示+工具欄", "xloc": [ "default.handlebars->25->1157", - "default.handlebars->25->1590", + "default.handlebars->25->1592", "default.handlebars->25->511" ] }, @@ -8000,7 +8000,7 @@ "zh-chs": "桌面工具欄", "xloc": [ "default.handlebars->25->1158", - "default.handlebars->25->1591", + "default.handlebars->25->1593", "default.handlebars->25->512" ] }, @@ -8072,7 +8072,7 @@ "zh-chs": "設備", "xloc": [ "default.handlebars->25->1260", - "default.handlebars->25->1655", + "default.handlebars->25->1659", "default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->9->devListToolbarSort->sortselect->5" ] }, @@ -8111,10 +8111,10 @@ "default.handlebars->25->1255", "default.handlebars->25->1258", "default.handlebars->25->1259", - "default.handlebars->25->1535", - "default.handlebars->25->1541", - "default.handlebars->25->1643", - "default.handlebars->25->1690" + "default.handlebars->25->1537", + "default.handlebars->25->1543", + "default.handlebars->25->1647", + "default.handlebars->25->1694" ] }, { @@ -8151,10 +8151,10 @@ "xloc": [ "default-mobile.handlebars->container->page_content->column_l->p3->p3info->1->3", "default.handlebars->25->1409", - "default.handlebars->25->1499", - "default.handlebars->25->1522", - "default.handlebars->25->1587", - "default.handlebars->25->1725", + "default.handlebars->25->1501", + "default.handlebars->25->1524", + "default.handlebars->25->1589", + "default.handlebars->25->1729", "default.handlebars->container->column_l->p2->p2info->7" ] }, @@ -8207,7 +8207,7 @@ "zh-chs": "設備名稱", "xloc": [ "default-mobile.handlebars->9->245", - "default.handlebars->25->1689", + "default.handlebars->25->1693", "default.handlebars->25->244", "default.handlebars->25->683", "player.handlebars->3->9" @@ -8590,8 +8590,8 @@ "nl": "Apparaten", "zh-chs": "设备", "xloc": [ - "default.handlebars->25->1500", - "default.handlebars->25->1523" + "default.handlebars->25->1502", + "default.handlebars->25->1525" ] }, { @@ -9125,7 +9125,7 @@ "ru": "Скачать список пользователей в одном из форматов ниже.", "zh-chs": "使用以下一種文件格式下載用戶列表。", "xloc": [ - "default.handlebars->25->1456" + "default.handlebars->25->1458" ] }, { @@ -9208,7 +9208,7 @@ "nl": "Dubbele agent", "zh-chs": "代理重复", "xloc": [ - "default.handlebars->25->1721" + "default.handlebars->25->1725" ] }, { @@ -9242,7 +9242,7 @@ "ru": "Скопировать группу пользователей", "zh-chs": "重複的用戶組", "xloc": [ - "default.handlebars->25->1514" + "default.handlebars->25->1516" ] }, { @@ -9273,8 +9273,8 @@ "ru": "Длительность", "zh-chs": "持續時間", "xloc": [ - "default.handlebars->25->1675", - "default.handlebars->25->1695", + "default.handlebars->25->1679", + "default.handlebars->25->1699", "player.handlebars->3->2" ] }, @@ -9759,7 +9759,7 @@ "ru": "Редактировать группу пользователей", "zh-chs": "編輯用戶組", "xloc": [ - "default.handlebars->25->1550" + "default.handlebars->25->1552" ] }, { @@ -9808,10 +9808,11 @@ "zh-chs": "電子郵件", "xloc": [ "default-mobile.handlebars->9->47", - "default.handlebars->25->1468", - "default.handlebars->25->1572", - "default.handlebars->25->1573", - "default.handlebars->25->1624", + "default.handlebars->25->1470", + "default.handlebars->25->1574", + "default.handlebars->25->1575", + "default.handlebars->25->1614", + "default.handlebars->25->1628", "default.handlebars->25->292", "login-mobile.handlebars->5->42", "login-mobile.handlebars->container->page_content->column_l->1->1->0->1->tokenpanel->1->7->1->4->1->3", @@ -9945,7 +9946,7 @@ "zh-chs": "電子郵件已驗證", "xloc": [ "default.handlebars->25->1429", - "default.handlebars->25->1569" + "default.handlebars->25->1571" ] }, { @@ -9962,7 +9963,7 @@ "ru": "Email подтвержден.", "zh-chs": "電子郵件已驗證。", "xloc": [ - "default.handlebars->25->1474" + "default.handlebars->25->1476" ] }, { @@ -9979,7 +9980,7 @@ "ru": "Email не подтвержден", "zh-chs": "電子郵件未驗證", "xloc": [ - "default.handlebars->25->1570" + "default.handlebars->25->1572" ] }, { @@ -10018,7 +10019,7 @@ "en": "Email verified and forced password reset required.", "nl": "E-mail geverifieerd en geforceerd opnieuw instellen van wachtwoord vereist.", "xloc": [ - "default.handlebars->25->1475" + "default.handlebars->25->1477" ] }, { @@ -10031,7 +10032,7 @@ "nl": "Email/SMS verkeer", "zh-chs": "电子邮件/短信流量", "xloc": [ - "default.handlebars->25->1760" + "default.handlebars->25->1764" ] }, { @@ -10129,7 +10130,7 @@ "en": "Enabled", "nl": "Ingeschakeld", "xloc": [ - "default.handlebars->25->1697" + "default.handlebars->25->1701" ] }, { @@ -10153,7 +10154,7 @@ "en": "End Time", "nl": "Eindtijd", "xloc": [ - "default.handlebars->25->1694" + "default.handlebars->25->1698" ] }, { @@ -10409,7 +10410,7 @@ "ru": "Введите разделенный запятыми список имен административных областей.", "zh-chs": "輸入管理領域名稱的逗號分隔列表。", "xloc": [ - "default.handlebars->25->1479" + "default.handlebars->25->1481" ] }, { @@ -10716,7 +10717,7 @@ "ru": "Внешний", "zh-chs": "外部", "xloc": [ - "default.handlebars->25->1745" + "default.handlebars->25->1749" ] }, { @@ -10921,7 +10922,7 @@ "xloc": [ "default-mobile.handlebars->9->119", "default.handlebars->25->1245", - "default.handlebars->25->1682", + "default.handlebars->25->1686", "default.handlebars->25->218", "default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevFiles", "default.handlebars->contextMenu->cxfiles" @@ -10959,7 +10960,7 @@ "zh-chs": "文件通知", "xloc": [ "default.handlebars->25->1164", - "default.handlebars->25->1597", + "default.handlebars->25->1599", "default.handlebars->25->518" ] }, @@ -10978,7 +10979,7 @@ "zh-chs": "文件提示", "xloc": [ "default.handlebars->25->1163", - "default.handlebars->25->1596", + "default.handlebars->25->1598", "default.handlebars->25->517" ] }, @@ -11138,8 +11139,8 @@ "ru": "Принудительно сбросить пароль при следующем входе в систему.", "zh-chs": "下次登錄時強制重置密碼。", "xloc": [ - "default.handlebars->25->1473", - "default.handlebars->25->1633" + "default.handlebars->25->1475", + "default.handlebars->25->1637" ] }, { @@ -11225,8 +11226,8 @@ "ru": "Свободно", "zh-chs": "自由", "xloc": [ - "default.handlebars->25->1706", - "default.handlebars->25->1708" + "default.handlebars->25->1710", + "default.handlebars->25->1712" ] }, { @@ -11420,7 +11421,7 @@ "default-mobile.handlebars->9->74", "default.handlebars->25->1133", "default.handlebars->25->1263", - "default.handlebars->25->1485" + "default.handlebars->25->1487" ] }, { @@ -11520,7 +11521,7 @@ "ru": "Администратор с полным доступом", "zh-chs": "正式管理員", "xloc": [ - "default.handlebars->25->1564" + "default.handlebars->25->1566" ] }, { @@ -11950,7 +11951,7 @@ "zh-chs": "集體行動", "xloc": [ "default.handlebars->25->1441", - "default.handlebars->25->1506", + "default.handlebars->25->1508", "default.handlebars->25->406", "default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->devListToolbar", "default.handlebars->container->column_l->p4->3->1->0->3->3", @@ -11971,7 +11972,7 @@ "ru": "Члены группы", "zh-chs": "小組成員", "xloc": [ - "default.handlebars->25->1527" + "default.handlebars->25->1529" ] }, { @@ -12143,7 +12144,7 @@ "ru": "Всего кучи", "zh-chs": "堆總數", "xloc": [ - "default.handlebars->25->1747" + "default.handlebars->25->1751" ] }, { @@ -12160,7 +12161,7 @@ "ru": "Куча используется", "zh-chs": "堆使用", "xloc": [ - "default.handlebars->25->1746" + "default.handlebars->25->1750" ] }, { @@ -12946,8 +12947,8 @@ "xloc": [ "default.handlebars->25->1347", "default.handlebars->25->1355", - "default.handlebars->25->1743", - "default.handlebars->25->1765" + "default.handlebars->25->1747", + "default.handlebars->25->1769" ] }, { @@ -12988,14 +12989,14 @@ "en": "Intel AMT Redirection", "nl": "Intel AMT omleiding", "xloc": [ - "default.handlebars->25->1684" + "default.handlebars->25->1688" ] }, { "en": "Intel AMT WSMAN", "nl": "Intel AMT WSMAN", "xloc": [ - "default.handlebars->25->1683" + "default.handlebars->25->1687" ] }, { @@ -13679,7 +13680,7 @@ "ru": "Некорректный тип группы устройств", "zh-chs": "無效的設備組類型", "xloc": [ - "default.handlebars->25->1720" + "default.handlebars->25->1724" ] }, { @@ -13696,7 +13697,7 @@ "ru": "Некорректный JSON", "zh-chs": "無效的JSON", "xloc": [ - "default.handlebars->25->1714" + "default.handlebars->25->1718" ] }, { @@ -13713,8 +13714,8 @@ "ru": "Некорректный формат файла JSON.", "zh-chs": "無效的JSON文件格式。", "xloc": [ - "default.handlebars->25->1453", - "default.handlebars->25->1455" + "default.handlebars->25->1455", + "default.handlebars->25->1457" ] }, { @@ -13731,7 +13732,7 @@ "ru": "Некорректный файл JSON: {0}.", "zh-chs": "無效的JSON文件:{0}。", "xloc": [ - "default.handlebars->25->1451" + "default.handlebars->25->1453" ] }, { @@ -13748,7 +13749,7 @@ "ru": "Некорректная сигнатура PKCS", "zh-chs": "無效的PKCS簽名", "xloc": [ - "default.handlebars->25->1712" + "default.handlebars->25->1716" ] }, { @@ -13765,7 +13766,7 @@ "ru": "Некорректная сигнатура RSA", "zh-chs": "無效的RSA密碼", "xloc": [ - "default.handlebars->25->1713" + "default.handlebars->25->1717" ] }, { @@ -14075,7 +14076,7 @@ "zh-chs": "JSON格式", "xloc": [ "default.handlebars->25->1402", - "default.handlebars->25->1459", + "default.handlebars->25->1461", "default.handlebars->25->414" ] }, @@ -14591,7 +14592,7 @@ "ru": "Последний вход в систему", "zh-chs": "上次登錄", "xloc": [ - "default.handlebars->25->1579" + "default.handlebars->25->1581" ] }, { @@ -14649,7 +14650,7 @@ "ru": "Последнее изменение: {0}", "zh-chs": "上次更改:{0}", "xloc": [ - "default.handlebars->25->1583" + "default.handlebars->25->1585" ] }, { @@ -14816,7 +14817,7 @@ "nl": "Leeg laten voor geen.", "zh-chs": "一无所有。", "xloc": [ - "default.handlebars->25->1621" + "default.handlebars->25->1625" ] }, { @@ -14855,7 +14856,7 @@ "ru": "Меньше", "zh-chs": "減", "xloc": [ - "default.handlebars->25->1782" + "default.handlebars->25->1786" ] }, { @@ -15400,7 +15401,7 @@ "ru": "Заблокировать учетную запись", "zh-chs": "鎖定賬戶", "xloc": [ - "default.handlebars->25->1492" + "default.handlebars->25->1494" ] }, { @@ -15451,7 +15452,7 @@ "ru": "Заблокированная учетная запись", "zh-chs": "賬戶鎖定", "xloc": [ - "default.handlebars->25->1561" + "default.handlebars->25->1563" ] }, { @@ -15952,7 +15953,7 @@ "ru": "Сообщения главного сервера", "zh-chs": "主服務器消息", "xloc": [ - "default.handlebars->25->1754" + "default.handlebars->25->1758" ] }, { @@ -16084,7 +16085,7 @@ "en": "Manage Recordings", "nl": "Beheeer opnames", "xloc": [ - "default.handlebars->25->1491" + "default.handlebars->25->1493" ] }, { @@ -16118,7 +16119,7 @@ "ru": "Управление группами пользователя", "zh-chs": "管理用戶組", "xloc": [ - "default.handlebars->25->1490" + "default.handlebars->25->1492" ] }, { @@ -16135,7 +16136,7 @@ "ru": "Управление пользователями", "zh-chs": "管理用戶", "xloc": [ - "default.handlebars->25->1489", + "default.handlebars->25->1491", "default.handlebars->25->596" ] }, @@ -16378,7 +16379,7 @@ "ru": "Достигнуто максимальное число сессий", "zh-chs": "達到的會話數上限", "xloc": [ - "default.handlebars->25->1718" + "default.handlebars->25->1722" ] }, { @@ -16432,7 +16433,7 @@ "ru": "Мегабайт", "zh-chs": "兆字節", "xloc": [ - "default.handlebars->25->1744" + "default.handlebars->25->1748" ] }, { @@ -16449,7 +16450,7 @@ "ru": "ОЗУ", "zh-chs": "記憶", "xloc": [ - "default.handlebars->25->1735", + "default.handlebars->25->1739", "default.handlebars->25->839", "default.handlebars->container->column_l->p40->3->1->p40type->3" ] @@ -16585,7 +16586,7 @@ "ru": "Трафик MeshAgent", "zh-chs": "MeshAgent流量", "xloc": [ - "default.handlebars->25->1756" + "default.handlebars->25->1760" ] }, { @@ -16602,7 +16603,7 @@ "ru": "Обновление MeshAgent", "zh-chs": "MeshAgent更新", "xloc": [ - "default.handlebars->25->1757" + "default.handlebars->25->1761" ] }, { @@ -16705,7 +16706,7 @@ "ru": "Соединения сервера MeshCentral", "zh-chs": "MeshCentral服務器對等", "xloc": [ - "default.handlebars->25->1755" + "default.handlebars->25->1759" ] }, { @@ -16968,7 +16969,7 @@ "ru": "Диспетчер сообщения", "zh-chs": "郵件調度程序", "xloc": [ - "default.handlebars->25->1753" + "default.handlebars->25->1757" ] }, { @@ -17116,7 +17117,7 @@ "ru": "Еще", "zh-chs": "更多", "xloc": [ - "default.handlebars->25->1781" + "default.handlebars->25->1785" ] }, { @@ -17191,7 +17192,7 @@ "en": "Multiplexor", "nl": "Multiplexor", "xloc": [ - "default.handlebars->25->1696" + "default.handlebars->25->1700" ] }, { @@ -17461,11 +17462,11 @@ "default.handlebars->25->1149", "default.handlebars->25->1232", "default.handlebars->25->1408", - "default.handlebars->25->1497", - "default.handlebars->25->1511", - "default.handlebars->25->1518", - "default.handlebars->25->1548", - "default.handlebars->25->1567", + "default.handlebars->25->1499", + "default.handlebars->25->1513", + "default.handlebars->25->1520", + "default.handlebars->25->1550", + "default.handlebars->25->1569", "default.handlebars->25->468", "default.handlebars->25->714", "default.handlebars->25->77", @@ -17507,7 +17508,7 @@ "ru": "Имя1, Имя2, Имя3", "zh-chs": "名稱1,名稱2,名稱3", "xloc": [ - "default.handlebars->25->1481" + "default.handlebars->25->1483" ] }, { @@ -17860,7 +17861,7 @@ "zh-chs": "找不到活動", "xloc": [ "default.handlebars->25->1398", - "default.handlebars->25->1672", + "default.handlebars->25->1676", "default.handlebars->25->785" ] }, @@ -18004,7 +18005,7 @@ "ru": "Нет членов", "zh-chs": "沒有會員", "xloc": [ - "default.handlebars->25->1530" + "default.handlebars->25->1532" ] }, { @@ -18021,7 +18022,7 @@ "ru": "Запретить создание групп устройств", "zh-chs": "沒有新的設備組", "xloc": [ - "default.handlebars->25->1493" + "default.handlebars->25->1495" ] }, { @@ -18137,7 +18138,7 @@ "ru": "Нет инструментов (MeshCmd/Router)", "zh-chs": "沒有工具(MeshCmd /路由器)", "xloc": [ - "default.handlebars->25->1494" + "default.handlebars->25->1496" ] }, { @@ -18154,8 +18155,8 @@ "ru": "Нет общих групп устройств", "zh-chs": "沒有共同的設備組", "xloc": [ - "default.handlebars->25->1536", - "default.handlebars->25->1644" + "default.handlebars->25->1538", + "default.handlebars->25->1648" ] }, { @@ -18251,8 +18252,8 @@ "ru": "Нет общих устройств", "zh-chs": "沒有共同的設備", "xloc": [ - "default.handlebars->25->1542", - "default.handlebars->25->1656" + "default.handlebars->25->1544", + "default.handlebars->25->1660" ] }, { @@ -18338,7 +18339,7 @@ "ru": "Группы не найдены.", "zh-chs": "找不到群組。", "xloc": [ - "default.handlebars->25->1496" + "default.handlebars->25->1498" ] }, { @@ -18440,7 +18441,7 @@ "ru": "Нет серверных прав", "zh-chs": "沒有服務器權限", "xloc": [ - "default.handlebars->25->1562" + "default.handlebars->25->1564" ] }, { @@ -18457,7 +18458,7 @@ "ru": "Нет членства в группах пользователей", "zh-chs": "沒有用戶組成員身份", "xloc": [ - "default.handlebars->25->1650" + "default.handlebars->25->1654" ] }, { @@ -18559,13 +18560,13 @@ "default.handlebars->25->1174", "default.handlebars->25->1349", "default.handlebars->25->1368", - "default.handlebars->25->1515", "default.handlebars->25->1517", - "default.handlebars->25->1575", + "default.handlebars->25->1519", + "default.handlebars->25->1577", "default.handlebars->25->158", - "default.handlebars->25->1584", - "default.handlebars->25->1588", - "default.handlebars->25->1600", + "default.handlebars->25->1586", + "default.handlebars->25->1590", + "default.handlebars->25->1602", "default.handlebars->25->174", "default.handlebars->25->175", "default.handlebars->25->465", @@ -18722,7 +18723,7 @@ "en": "Not on server", "nl": "Niet op de server", "xloc": [ - "default.handlebars->25->1688" + "default.handlebars->25->1692" ] }, { @@ -18739,7 +18740,7 @@ "ru": "Не задано", "zh-chs": "沒有設置", "xloc": [ - "default.handlebars->25->1568" + "default.handlebars->25->1570" ] }, { @@ -18756,7 +18757,7 @@ "ru": "не подтверждено", "zh-chs": "未經審核的", "xloc": [ - "default.handlebars->25->1626" + "default.handlebars->25->1630" ] }, { @@ -18774,7 +18775,7 @@ "zh-chs": "筆記", "xloc": [ "default.handlebars->25->1182", - "default.handlebars->25->1608", + "default.handlebars->25->1610", "default.handlebars->25->537", "default.handlebars->25->589", "default.handlebars->25->608", @@ -18882,7 +18883,7 @@ "ru": "Уведомить", "zh-chs": "通知", "xloc": [ - "default.handlebars->25->1612" + "default.handlebars->25->1616" ] }, { @@ -18918,7 +18919,7 @@ "ru": "Уведомить {0}", "zh-chs": "通知{0}", "xloc": [ - "default.handlebars->25->1446" + "default.handlebars->25->1448" ] }, { @@ -18995,7 +18996,7 @@ "ru": "Произошло в {0}", "zh-chs": "發生在{0}", "xloc": [ - "default.handlebars->25->1702" + "default.handlebars->25->1706" ] }, { @@ -19238,7 +19239,7 @@ "xloc": [ "default-mobile.handlebars->9->233", "default.handlebars->25->1437", - "default.handlebars->25->1504", + "default.handlebars->25->1506", "default.handlebars->25->398", "default.handlebars->25->626" ] @@ -19476,7 +19477,7 @@ "ru": "Частичные права", "zh-chs": "部分權利", "xloc": [ - "default.handlebars->25->1565" + "default.handlebars->25->1567" ] }, { @@ -19511,12 +19512,12 @@ "zh-chs": "密碼", "xloc": [ "default-mobile.handlebars->9->236", - "default.handlebars->25->1469", - "default.handlebars->25->1470", - "default.handlebars->25->1580", + "default.handlebars->25->1471", + "default.handlebars->25->1472", "default.handlebars->25->1582", - "default.handlebars->25->1629", - "default.handlebars->25->1630", + "default.handlebars->25->1584", + "default.handlebars->25->1633", + "default.handlebars->25->1634", "default.handlebars->25->249", "default.handlebars->25->278", "default.handlebars->25->632" @@ -19625,7 +19626,7 @@ "ru": "Подсказка пароля", "zh-chs": "密碼提示", "xloc": [ - "default.handlebars->25->1631" + "default.handlebars->25->1635" ] }, { @@ -19947,7 +19948,7 @@ "default-mobile.handlebars->9->34", "default-mobile.handlebars->9->36", "default.handlebars->25->143", - "default.handlebars->25->1623", + "default.handlebars->25->1627", "default.handlebars->25->865", "default.handlebars->25->868" ] @@ -19962,7 +19963,7 @@ "nl": "Telefoonnummer", "zh-chs": "电话号码", "xloc": [ - "default.handlebars->25->1574" + "default.handlebars->25->1576" ] }, { @@ -19976,7 +19977,7 @@ "zh-chs": "电话号码:", "xloc": [ "default-mobile.handlebars->9->35", - "default.handlebars->25->1622", + "default.handlebars->25->1626", "default.handlebars->25->867" ] }, @@ -20113,7 +20114,7 @@ "zh-chs": "插件動作", "xloc": [ "default.handlebars->25->169", - "default.handlebars->25->1778" + "default.handlebars->25->1782" ] }, { @@ -20424,7 +20425,7 @@ "en": "Present on server", "nl": "Aanwezig op de server", "xloc": [ - "default.handlebars->25->1687" + "default.handlebars->25->1691" ] }, { @@ -20531,7 +20532,7 @@ "ru": "Протокол", "zh-chs": "協議", "xloc": [ - "default.handlebars->25->1685", + "default.handlebars->25->1689", "player.handlebars->3->15" ] }, @@ -20838,7 +20839,7 @@ "ru": "RSS", "zh-chs": "的RSS", "xloc": [ - "default.handlebars->25->1748" + "default.handlebars->25->1752" ] }, { @@ -20855,7 +20856,7 @@ "ru": "Случайный пароль.", "zh-chs": "隨機化密碼。", "xloc": [ - "default.handlebars->25->1471" + "default.handlebars->25->1473" ] }, { @@ -20906,7 +20907,7 @@ "ru": "Области", "zh-chs": "境界", "xloc": [ - "default.handlebars->25->1480" + "default.handlebars->25->1482" ] }, { @@ -20933,7 +20934,7 @@ "en": "Recording Details", "nl": "Opname details", "xloc": [ - "default.handlebars->25->1699" + "default.handlebars->25->1703" ] }, { @@ -21057,7 +21058,7 @@ "ru": "Число ретрансляций", "zh-chs": "中繼計數", "xloc": [ - "default.handlebars->25->1730" + "default.handlebars->25->1734" ] }, { @@ -21074,7 +21075,7 @@ "ru": "Ошибки ретранслятора", "zh-chs": "中繼錯誤", "xloc": [ - "default.handlebars->25->1723" + "default.handlebars->25->1727" ] }, { @@ -21091,8 +21092,8 @@ "ru": "Сессии ретранслятора", "zh-chs": "接力會議", "xloc": [ - "default.handlebars->25->1729", - "default.handlebars->25->1742" + "default.handlebars->25->1733", + "default.handlebars->25->1746" ] }, { @@ -21412,8 +21413,8 @@ "nl": "Apparaatgroepmachtigingen verwijderen", "zh-chs": "删除设备组权限", "xloc": [ - "default.handlebars->25->1546", - "default.handlebars->25->1670" + "default.handlebars->25->1548", + "default.handlebars->25->1674" ] }, { @@ -21427,8 +21428,8 @@ "nl": "Apparaatmachtigingen verwijderen", "zh-chs": "删除设备权限", "xloc": [ - "default.handlebars->25->1544", - "default.handlebars->25->1657" + "default.handlebars->25->1546", + "default.handlebars->25->1661" ] }, { @@ -21456,7 +21457,7 @@ "nl": "Lidmaatschap van gebruikersgroep verwijderen", "zh-chs": "删除用户组成员身份", "xloc": [ - "default.handlebars->25->1666" + "default.handlebars->25->1670" ] }, { @@ -21471,7 +21472,7 @@ "zh-chs": "删除用户组权限", "xloc": [ "default.handlebars->25->1323", - "default.handlebars->25->1662" + "default.handlebars->25->1666" ] }, { @@ -21485,7 +21486,7 @@ "nl": "Gebruikerslidmaatschap verwijderen", "zh-chs": "删除用户成员资格", "xloc": [ - "default.handlebars->25->1554" + "default.handlebars->25->1556" ] }, { @@ -21500,7 +21501,7 @@ "zh-chs": "删除用户权限", "xloc": [ "default.handlebars->25->1321", - "default.handlebars->25->1659" + "default.handlebars->25->1663" ] }, { @@ -21517,7 +21518,7 @@ "ru": "Удалить все двухфакторные аутентификации.", "zh-chs": "刪除所有第二因素驗證。", "xloc": [ - "default.handlebars->25->1634" + "default.handlebars->25->1638" ] }, { @@ -21534,7 +21535,7 @@ "ru": "Удалить все прошлые события для этого userid.", "zh-chs": "刪除此用戶標識的所有先前事件。", "xloc": [ - "default.handlebars->25->1472" + "default.handlebars->25->1474" ] }, { @@ -21615,7 +21616,7 @@ "ru": "Удалить этого пользователя", "zh-chs": "删除该用户", "xloc": [ - "default.handlebars->25->1614" + "default.handlebars->25->1618" ] }, { @@ -21632,7 +21633,7 @@ "ru": "Удалить членство пользователя в группе", "zh-chs": "刪除用戶組成員身份", "xloc": [ - "default.handlebars->25->1648" + "default.handlebars->25->1652" ] }, { @@ -21646,7 +21647,7 @@ "nl": "Gebruikersrechten voor dit apparaat verwijderen", "zh-chs": "删除此设备的用户组权限", "xloc": [ - "default.handlebars->25->1540" + "default.handlebars->25->1542" ] }, { @@ -21663,7 +21664,7 @@ "ru": "Удалить права группы пользователей для этой группы устройств", "zh-chs": "刪除該設備組的用戶組權限", "xloc": [ - "default.handlebars->25->1534", + "default.handlebars->25->1536", "default.handlebars->25->573" ] }, @@ -21682,9 +21683,9 @@ "zh-chs": "刪除此設備組的用戶權限", "xloc": [ "default.handlebars->25->1199", - "default.handlebars->25->1528", - "default.handlebars->25->1642", - "default.handlebars->25->1654", + "default.handlebars->25->1530", + "default.handlebars->25->1646", + "default.handlebars->25->1658", "default.handlebars->25->574" ] }, @@ -21746,8 +21747,8 @@ "zh-chs": "要求:{0}。", "xloc": [ "default-mobile.handlebars->9->58", - "default.handlebars->25->1477", - "default.handlebars->25->1632" + "default.handlebars->25->1479", + "default.handlebars->25->1636" ] }, { @@ -21989,7 +21990,7 @@ "ru": "Ограничения", "zh-chs": "限制條件", "xloc": [ - "default.handlebars->25->1566" + "default.handlebars->25->1568" ] }, { @@ -22212,8 +22213,8 @@ "nl": "SMS", "zh-chs": "短信", "xloc": [ - "default.handlebars->25->1605", - "default.handlebars->25->1610", + "default.handlebars->25->1607", + "default.handlebars->25->1612", "login-mobile.handlebars->container->page_content->column_l->1->1->0->1->tokenpanel->1->7->1->4->1->3", "login.handlebars->container->column_l->centralTable->1->0->logincell->tokenpanel->1->7->1->4->1->3" ] @@ -22228,7 +22229,7 @@ "nl": "SMS geschikt telefoonnummer voor deze gebruiker.", "zh-chs": "此用户的短信功能电话号码。", "xloc": [ - "default.handlebars->25->1620" + "default.handlebars->25->1624" ] }, { @@ -22630,7 +22631,7 @@ "zh-chs": "安全", "xloc": [ "default-mobile.handlebars->9->237", - "default.handlebars->25->1606", + "default.handlebars->25->1608", "default.handlebars->25->250", "default.handlebars->25->633", "default.handlebars->25->818" @@ -22650,7 +22651,7 @@ "ru": "Ключ безопасности", "zh-chs": "安全密鑰", "xloc": [ - "default.handlebars->25->1603" + "default.handlebars->25->1605" ] }, { @@ -22686,7 +22687,7 @@ "xloc": [ "default.handlebars->25->1378", "default.handlebars->25->1435", - "default.handlebars->25->1502", + "default.handlebars->25->1504", "default.handlebars->25->394", "default.handlebars->25->748", "default.handlebars->25->750", @@ -22714,7 +22715,7 @@ "xloc": [ "default.handlebars->25->1377", "default.handlebars->25->1434", - "default.handlebars->25->1501", + "default.handlebars->25->1503", "default.handlebars->25->393", "default.handlebars->25->749", "default.handlebars->meshContextMenu->cxselectnone" @@ -22800,7 +22801,7 @@ "zh-chs": "选择要对所有选定用户执行的操作。", "xloc": [ "default.handlebars->25->1436", - "default.handlebars->25->1503" + "default.handlebars->25->1505" ] }, { @@ -22876,6 +22877,12 @@ "messenger.handlebars->xbottom" ] }, + { + "en": "Send Email", + "xloc": [ + "default.handlebars->25->1447" + ] + }, { "cs": "Poslat MQTT zprávu", "de": "Sende MQTT-Nachricht", @@ -22934,7 +22941,13 @@ "nl": "Stuur een SMS bericht naar deze gebruiker", "zh-chs": "发送短信给该用户", "xloc": [ - "default.handlebars->25->1611" + "default.handlebars->25->1613" + ] + }, + { + "en": "Send a email message to this user", + "xloc": [ + "default.handlebars->25->1615" ] }, { @@ -22951,7 +22964,7 @@ "ru": "Отправить уведомление всем пользователям этой группы.", "zh-chs": "向該組中的所有用戶發送通知。", "xloc": [ - "default.handlebars->25->1525" + "default.handlebars->25->1527" ] }, { @@ -22968,7 +22981,7 @@ "ru": "Отправить текстовое уведомление этому пользователю.", "zh-chs": "向該用戶發送文本通知。", "xloc": [ - "default.handlebars->25->1447" + "default.handlebars->25->1449" ] }, { @@ -23018,7 +23031,7 @@ "ru": "Отправить приглашение по email.", "zh-chs": "發送邀請電子郵件。", "xloc": [ - "default.handlebars->25->1476" + "default.handlebars->25->1478" ] }, { @@ -23084,7 +23097,7 @@ "ru": "Отправить уведомление пользователю", "zh-chs": "發送用戶通知", "xloc": [ - "default.handlebars->25->1613" + "default.handlebars->25->1617" ] }, { @@ -23135,7 +23148,7 @@ "ru": "Резервное копирование сервера", "zh-chs": "服務器備份", "xloc": [ - "default.handlebars->25->1486" + "default.handlebars->25->1488" ] }, { @@ -23152,7 +23165,7 @@ "ru": "Сертификат сервера", "zh-chs": "服務器證書", "xloc": [ - "default.handlebars->25->1758" + "default.handlebars->25->1762" ] }, { @@ -23169,7 +23182,7 @@ "ru": "База данных сервера", "zh-chs": "服務器數據庫", "xloc": [ - "default.handlebars->25->1759" + "default.handlebars->25->1763" ] }, { @@ -23190,7 +23203,7 @@ "default-mobile.handlebars->9->335", "default.handlebars->25->1275", "default.handlebars->25->1303", - "default.handlebars->25->1483", + "default.handlebars->25->1485", "default.handlebars->25->587", "default.handlebars->25->606" ] @@ -23210,7 +23223,7 @@ "zh-chs": "服務器權限", "xloc": [ "default.handlebars->25->1422", - "default.handlebars->25->1495" + "default.handlebars->25->1497" ] }, { @@ -23227,7 +23240,7 @@ "ru": "Квота сервера", "zh-chs": "服務器配額", "xloc": [ - "default.handlebars->25->1577" + "default.handlebars->25->1579" ] }, { @@ -23244,7 +23257,7 @@ "ru": "Восстановление сервера", "zh-chs": "服務器還原", "xloc": [ - "default.handlebars->25->1487" + "default.handlebars->25->1489" ] }, { @@ -23261,7 +23274,7 @@ "ru": "Права", "zh-chs": "服務器權限", "xloc": [ - "default.handlebars->25->1576" + "default.handlebars->25->1578" ] }, { @@ -23278,7 +23291,7 @@ "ru": "Состояние сервера", "zh-chs": "服務器狀態", "xloc": [ - "default.handlebars->25->1709" + "default.handlebars->25->1713" ] }, { @@ -23312,7 +23325,7 @@ "ru": "Трассировка сервера", "zh-chs": "服務器跟踪", "xloc": [ - "default.handlebars->25->1769" + "default.handlebars->25->1773" ] }, { @@ -23329,7 +23342,7 @@ "ru": "Обновление сервера", "zh-chs": "服務器更新", "xloc": [ - "default.handlebars->25->1488" + "default.handlebars->25->1490" ] }, { @@ -23451,7 +23464,7 @@ "ru": "ServerStats.csv", "zh-chs": "ServerStats.csv", "xloc": [ - "default.handlebars->25->1750" + "default.handlebars->25->1754" ] }, { @@ -23492,7 +23505,7 @@ "en": "Session", "nl": "Sessie", "xloc": [ - "default.handlebars->25->1673" + "default.handlebars->25->1677" ] }, { @@ -23967,8 +23980,8 @@ "ru": "Размер", "zh-chs": "尺寸", "xloc": [ - "default.handlebars->25->1676", - "default.handlebars->25->1691", + "default.handlebars->25->1680", + "default.handlebars->25->1695", "default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->9->devListToolbarSize" ] }, @@ -24779,8 +24792,8 @@ "en": "Start Time", "nl": "Start tijd", "xloc": [ - "default.handlebars->25->1674", - "default.handlebars->25->1693", + "default.handlebars->25->1678", + "default.handlebars->25->1697", "default.handlebars->25->697" ] }, @@ -24833,8 +24846,8 @@ "ru": "Статус", "zh-chs": "狀態", "xloc": [ - "default.handlebars->25->1625", - "default.handlebars->25->1686", + "default.handlebars->25->1629", + "default.handlebars->25->1690", "default.handlebars->container->column_l->p42->p42tbl->1->0->7" ] }, @@ -24973,6 +24986,12 @@ "login.handlebars->5->32" ] }, + { + "en": "Subject", + "xloc": [ + "default.handlebars->25->1446" + ] + }, { "cs": "Předložit", "de": "einreichen", @@ -25377,7 +25396,7 @@ "xloc": [ "default-mobile.handlebars->9->116", "default.handlebars->25->1242", - "default.handlebars->25->1680", + "default.handlebars->25->1684", "default.handlebars->25->215", "default.handlebars->25->446", "default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevTerminal", @@ -25416,7 +25435,7 @@ "zh-chs": "終端通知", "xloc": [ "default.handlebars->25->1162", - "default.handlebars->25->1595", + "default.handlebars->25->1597", "default.handlebars->25->516" ] }, @@ -25435,7 +25454,7 @@ "zh-chs": "終端提示", "xloc": [ "default.handlebars->25->1161", - "default.handlebars->25->1594", + "default.handlebars->25->1596", "default.handlebars->25->515" ] }, @@ -25579,7 +25598,7 @@ "ru": "На данный момент уведомлений нет", "zh-chs": "目前沒有任何通知", "xloc": [ - "default.handlebars->25->1701" + "default.handlebars->25->1705" ] }, { @@ -26808,9 +26827,9 @@ "default-mobile.handlebars->9->194", "default-mobile.handlebars->9->195", "default.handlebars->25->13", - "default.handlebars->25->1665", - "default.handlebars->25->1678", - "default.handlebars->25->1679", + "default.handlebars->25->1669", + "default.handlebars->25->1682", + "default.handlebars->25->1683", "default.handlebars->25->392", "default.handlebars->25->41", "default.handlebars->25->42", @@ -26855,7 +26874,7 @@ "ru": "Неизвестное действие", "zh-chs": "未知動作", "xloc": [ - "default.handlebars->25->1715" + "default.handlebars->25->1719" ] }, { @@ -26872,8 +26891,8 @@ "ru": "Неизвестное устройство", "zh-chs": "未知設備", "xloc": [ - "default.handlebars->25->1539", - "default.handlebars->25->1653" + "default.handlebars->25->1541", + "default.handlebars->25->1657" ] }, { @@ -26890,9 +26909,9 @@ "ru": "Неизвестная группа устройств", "zh-chs": "未知設備組", "xloc": [ - "default.handlebars->25->1533", - "default.handlebars->25->1641", - "default.handlebars->25->1719" + "default.handlebars->25->1535", + "default.handlebars->25->1645", + "default.handlebars->25->1723" ] }, { @@ -26909,7 +26928,7 @@ "ru": "Неизвестная группа", "zh-chs": "未知群組", "xloc": [ - "default.handlebars->25->1711" + "default.handlebars->25->1715" ] }, { @@ -26944,7 +26963,7 @@ "ru": "Неизвестная группа пользователей", "zh-chs": "未知用戶組", "xloc": [ - "default.handlebars->25->1647" + "default.handlebars->25->1651" ] }, { @@ -27033,7 +27052,7 @@ "ru": "Актуально", "zh-chs": "最新", "xloc": [ - "default.handlebars->25->1776" + "default.handlebars->25->1780" ] }, { @@ -27282,8 +27301,8 @@ "ru": "Использовано", "zh-chs": "用過的", "xloc": [ - "default.handlebars->25->1705", - "default.handlebars->25->1707" + "default.handlebars->25->1709", + "default.handlebars->25->1711" ] }, { @@ -27303,8 +27322,8 @@ "default-mobile.handlebars->9->347", "default.handlebars->25->1200", "default.handlebars->25->1423", - "default.handlebars->25->1529", - "default.handlebars->25->1698", + "default.handlebars->25->1531", + "default.handlebars->25->1702", "default.handlebars->25->193", "default.handlebars->25->576" ] @@ -27340,10 +27359,10 @@ "ru": "Импорт учетной записи пользователя", "zh-chs": "用戶帳戶導入", "xloc": [ - "default.handlebars->25->1449", - "default.handlebars->25->1450", + "default.handlebars->25->1451", "default.handlebars->25->1452", - "default.handlebars->25->1454" + "default.handlebars->25->1454", + "default.handlebars->25->1456" ] }, { @@ -27360,7 +27379,7 @@ "ru": "Учетные записи пользователей", "zh-chs": "用戶帳號", "xloc": [ - "default.handlebars->25->1724" + "default.handlebars->25->1728" ] }, { @@ -27397,7 +27416,7 @@ "zh-chs": "用戶同意", "xloc": [ "default.handlebars->25->1168", - "default.handlebars->25->1601", + "default.handlebars->25->1603", "default.handlebars->25->522" ] }, @@ -27417,9 +27436,9 @@ "xloc": [ "default.handlebars->25->1256", "default.handlebars->25->1257", - "default.handlebars->25->1510", - "default.handlebars->25->1649", - "default.handlebars->25->1668", + "default.handlebars->25->1512", + "default.handlebars->25->1653", + "default.handlebars->25->1672", "default.handlebars->25->575" ] }, @@ -27454,7 +27473,7 @@ "ru": "Членство в группах пользователей", "zh-chs": "用戶組成員資格", "xloc": [ - "default.handlebars->25->1646" + "default.handlebars->25->1650" ] }, { @@ -27472,7 +27491,7 @@ "zh-chs": "用戶標識", "xloc": [ "default.handlebars->25->1317", - "default.handlebars->25->1571" + "default.handlebars->25->1573" ] }, { @@ -27489,7 +27508,7 @@ "ru": "Экспортировать список пользователей", "zh-chs": "用戶列表導出", "xloc": [ - "default.handlebars->25->1461" + "default.handlebars->25->1463" ] }, { @@ -27524,7 +27543,7 @@ "zh-chs": "用戶名", "xloc": [ "default.handlebars->25->1254", - "default.handlebars->25->1558" + "default.handlebars->25->1560" ] }, { @@ -27572,7 +27591,7 @@ "ru": "Сессии пользователя", "zh-chs": "用戶會話", "xloc": [ - "default.handlebars->25->1741" + "default.handlebars->25->1745" ] }, { @@ -27706,7 +27725,7 @@ "zh-chs": "用戶名", "xloc": [ "default-mobile.handlebars->9->235", - "default.handlebars->25->1467", + "default.handlebars->25->1469", "default.handlebars->25->247", "default.handlebars->25->277", "default.handlebars->25->631", @@ -27766,9 +27785,9 @@ "ru": "Пользователи", "zh-chs": "用戶數", "xloc": [ - "default.handlebars->25->1498", - "default.handlebars->25->1521", - "default.handlebars->25->1740", + "default.handlebars->25->1500", + "default.handlebars->25->1523", + "default.handlebars->25->1744", "default.handlebars->container->topbar->1->1->UsersSubMenuSpan->UsersSubMenu->1->0->UsersGeneral" ] }, @@ -27786,7 +27805,7 @@ "ru": "Сессии пользователей", "zh-chs": "用戶會話", "xloc": [ - "default.handlebars->25->1728" + "default.handlebars->25->1732" ] }, { @@ -27869,7 +27888,7 @@ "ru": "Проверенный", "zh-chs": "已驗證", "xloc": [ - "default.handlebars->25->1627" + "default.handlebars->25->1631" ] }, { @@ -27969,7 +27988,7 @@ "ru": "Версия несовместима, пожалуйста, сначала обновите установку MeshCentral", "zh-chs": "版本不兼容,请先升级您的MeshCentral安装", "xloc": [ - "default.handlebars->25->1772" + "default.handlebars->25->1776" ] }, { @@ -28037,8 +28056,8 @@ "ru": "Просмотр журнала изменений", "zh-chs": "查看变更日志", "xloc": [ - "default.handlebars->25->1775", - "default.handlebars->25->1777" + "default.handlebars->25->1779", + "default.handlebars->25->1781" ] }, { @@ -28089,7 +28108,7 @@ "ru": "Посмотреть примечания об этом пользователе", "zh-chs": "查看有關此用戶的註釋", "xloc": [ - "default.handlebars->25->1609" + "default.handlebars->25->1611" ] }, { @@ -28296,8 +28315,8 @@ "ru": "Веб-сервер", "zh-chs": "網絡服務器", "xloc": [ - "default.handlebars->25->1761", - "default.handlebars->25->1762" + "default.handlebars->25->1765", + "default.handlebars->25->1766" ] }, { @@ -28314,7 +28333,7 @@ "ru": "Запросы веб-сервера", "zh-chs": "Web服務器請求", "xloc": [ - "default.handlebars->25->1763" + "default.handlebars->25->1767" ] }, { @@ -28331,7 +28350,7 @@ "ru": "Ретранслятор Web Socket", "zh-chs": "Web套接字中繼", "xloc": [ - "default.handlebars->25->1764" + "default.handlebars->25->1768" ] }, { @@ -28436,7 +28455,7 @@ "ru": "Будет изменено при следующем входе в систему.", "zh-chs": "下次登錄時將更改。", "xloc": [ - "default.handlebars->25->1581" + "default.handlebars->25->1583" ] }, { @@ -29396,7 +29415,7 @@ "ru": "\\\\'", "zh-chs": "\\\\'", "xloc": [ - "default.handlebars->25->1773" + "default.handlebars->25->1777" ] }, { @@ -29671,7 +29690,7 @@ "ru": "свободно", "zh-chs": "自由", "xloc": [ - "default.handlebars->25->1736" + "default.handlebars->25->1740" ] }, { @@ -29852,7 +29871,7 @@ "ru": "id, name, email, creation, lastlogin, groups, authfactors", "zh-chs": "id,名稱,電子郵件,創建,lastlogin,組,authfactors", "xloc": [ - "default.handlebars->25->1462" + "default.handlebars->25->1464" ] }, { @@ -29951,7 +29970,7 @@ "ru": "k max, пусто по умолчанию", "zh-chs": "k max,默认为空白", "xloc": [ - "default.handlebars->25->1484" + "default.handlebars->25->1486" ] }, { @@ -30035,7 +30054,7 @@ "ru": "servertrace.csv", "zh-chs": "servertrace.csv", "xloc": [ - "default.handlebars->25->1771" + "default.handlebars->25->1775" ] }, { @@ -30088,7 +30107,7 @@ "ru": "time, conn.agent, conn.users, conn.usersessions, conn.relaysession, conn.intelamt, mem.external, mem.heapused, mem.heaptotal, mem.rss", "zh-chs": "時間,conn.agent,conn.users,conn.usersessions,conn.relaysession,conn.intelamt,mem.external,mem.heapused,mem.heaptotal,mem.rss", "xloc": [ - "default.handlebars->25->1749" + "default.handlebars->25->1753" ] }, { @@ -30105,7 +30124,7 @@ "ru": "time, source, message", "zh-chs": "時間,來源,訊息", "xloc": [ - "default.handlebars->25->1770" + "default.handlebars->25->1774" ] }, { @@ -30136,7 +30155,7 @@ "ru": "всего", "zh-chs": "總", "xloc": [ - "default.handlebars->25->1737" + "default.handlebars->25->1741" ] }, { @@ -30203,8 +30222,8 @@ "ru": "userlist.csv", "zh-chs": "userlist.csv", "xloc": [ - "default.handlebars->25->1458", - "default.handlebars->25->1463" + "default.handlebars->25->1460", + "default.handlebars->25->1465" ] }, { @@ -30221,8 +30240,8 @@ "ru": "userlist.json", "zh-chs": "userlist.json", "xloc": [ - "default.handlebars->25->1460", - "default.handlebars->25->1464" + "default.handlebars->25->1462", + "default.handlebars->25->1466" ] }, { @@ -30291,7 +30310,7 @@ "zh-chs": "{0} Kb", "xloc": [ "default.handlebars->25->1370", - "default.handlebars->25->1677" + "default.handlebars->25->1681" ] }, { @@ -30343,7 +30362,7 @@ "ru": "{0} активных сессий", "zh-chs": "{0}個活動會話", "xloc": [ - "default.handlebars->25->1619" + "default.handlebars->25->1623" ] }, { @@ -30379,7 +30398,7 @@ "xloc": [ "default-mobile.handlebars->9->88", "default.handlebars->25->1380", - "default.handlebars->25->1692" + "default.handlebars->25->1696" ] }, { @@ -30437,7 +30456,7 @@ "ru": "{0} групп", "zh-chs": "{0}個群組", "xloc": [ - "default.handlebars->25->1586" + "default.handlebars->25->1588" ] }, { diff --git a/views/default.handlebars b/views/default.handlebars index 79d43989..caa167db 100644 --- a/views/default.handlebars +++ b/views/default.handlebars @@ -4982,6 +4982,7 @@ if (node == null) return; var mesh = meshes[node.meshid]; var meshrights = GetNodeRights(node); + var deviceSwitch = ((currentNode == null) || (currentNode._id != nodeid)); if (!currentNode || currentNode._id != node._id || refresh == true) { currentNode = node; @@ -5269,9 +5270,11 @@ } // Clear user consent status if present - p11clearConsoleMsg(); - p12clearConsoleMsg(); - p13clearConsoleMsg(); + if (deviceSwitch) { + p11clearConsoleMsg(); + p12clearConsoleMsg(); + p13clearConsoleMsg(); + } // Device refresh plugin handler if (pluginHandler != null) { @@ -10159,6 +10162,18 @@ function showSendSMSValidate() { QE('idx_dlgOkButton', Q('d2smsText').value.length > 0); } function showSendSMSEx(b, tag) { if (Q('d2smsText').value.length > 0) { meshserver.send({ action: 'smsuser', userid: decodeURIComponent(tag), msg: Q('d2smsText').value }); } } + function showSendEmail(userid) { + if (xxdialogMode) return; + var x = ''; + x += ''; + setDialogMode(2, "Send Email", 3, showSendEmailEx, x, userid); + Q('d2emailSubject').focus(); + showSendEmailValidate(); + } + + function showSendEmailValidate() { QE('idx_dlgOkButton', (Q('d2emailSubject').value.length > 0) && (Q('d2emailText').value.length > 0)); } + 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 }); } } + function showUserAlertDialog(e, userid) { if (xxdialogMode) return; haltEvent(e); @@ -10916,6 +10931,7 @@ // Add action buttons x += ''; if (user.phone && (features & 0x02000000)) { x += ''; } + if ((typeof user.email == 'string') && (user.emailVerified === true) && (features & 0x00000040)) { x += ''; } if (!self && (activeSessions > 0)) { x += ''; } // Setup the panel