mirror of
https://github.com/Ylianst/MeshCentral.git
synced 2024-12-24 06:05:53 -05:00
Improved Czech, Improved Let's Encrypt validation, added --dbstats and --showsmbios.
This commit is contained in:
parent
fb907be4cd
commit
4ca5be4b2e
61
db.js
61
db.js
@ -170,20 +170,39 @@ module.exports.CreateDB = function (parent, func) {
|
|||||||
// Get the number of records in the database for various types, this is the slow NeDB way.
|
// Get the number of records in the database for various types, this is the slow NeDB way.
|
||||||
// WARNING: This is a terrible query for database performance. Only do this when needed. This query will look at almost every document in the database.
|
// WARNING: This is a terrible query for database performance. Only do this when needed. This query will look at almost every document in the database.
|
||||||
obj.getStats = function (func) {
|
obj.getStats = function (func) {
|
||||||
if (obj.databaseType > 1) {
|
if (obj.databaseType == 3) {
|
||||||
// MongoJS or MongoDB version (not tested on MongoDB)
|
// MongoDB
|
||||||
|
obj.file.aggregate([{ "$group": { _id: "$type", count: { $sum: 1 } } }]).toArray(function (err, docs) {
|
||||||
|
var counters = {}, totalCount = 0;
|
||||||
|
for (var i in docs) { if (docs[i]._id != null) { counters[docs[i]._id] = docs[i].count; totalCount += docs[i].count; } }
|
||||||
|
func(counters);
|
||||||
|
});
|
||||||
|
} else if (obj.databaseType == 2) {
|
||||||
|
// MongoJS
|
||||||
obj.file.aggregate([{ "$group": { _id: "$type", count: { $sum: 1 } } }], function (err, docs) {
|
obj.file.aggregate([{ "$group": { _id: "$type", count: { $sum: 1 } } }], function (err, docs) {
|
||||||
var counters = {}, totalCount = 0;
|
var counters = {}, totalCount = 0;
|
||||||
for (var i in docs) { if (docs[i]._id != null) { counters[docs[i]._id] = docs[i].count; totalCount += docs[i].count; } }
|
for (var i in docs) { if (docs[i]._id != null) { counters[docs[i]._id] = docs[i].count; totalCount += docs[i].count; } }
|
||||||
func({ nodes: counters['node'], meshes: counters['mesh'], users: counters['user'], total: totalCount });
|
func(counters);
|
||||||
})
|
});
|
||||||
} else {
|
} else if (obj.databaseType == 1) {
|
||||||
// NeDB version
|
// NeDB version
|
||||||
obj.file.count({ type: 'node' }, function (err, nodeCount) {
|
obj.file.count({ type: 'node' }, function (err, nodeCount) {
|
||||||
obj.file.count({ type: 'mesh' }, function (err, meshCount) {
|
obj.file.count({ type: 'mesh' }, function (err, meshCount) {
|
||||||
obj.file.count({ type: 'user' }, function (err, userCount) {
|
obj.file.count({ type: 'user' }, function (err, userCount) {
|
||||||
obj.file.count({}, function (err, totalCount) {
|
obj.file.count({ type: 'sysinfo' }, function (err, sysinfoCount) {
|
||||||
func({ nodes: nodeCount, meshes: meshCount, users: userCount, total: totalCount });
|
obj.file.count({ type: 'note' }, function (err, noteCount) {
|
||||||
|
obj.file.count({ type: 'iploc' }, function (err, iplocCount) {
|
||||||
|
obj.file.count({ type: 'ifinfo' }, function (err, ifinfoCount) {
|
||||||
|
obj.file.count({ type: 'cfile' }, function (err, cfileCount) {
|
||||||
|
obj.file.count({ type: 'lastconnect' }, function (err, lastconnectCount) {
|
||||||
|
obj.file.count({}, function (err, totalCount) {
|
||||||
|
func({ node: nodeCount, mesh: meshCount, user: userCount, sysinfo: sysinfoCount, iploc: iplocCount, note: noteCount, ifinfo: ifinfoCount, cfile: cfileCount, lastconnect: lastconnectCount, total: totalCount });
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -730,6 +749,7 @@ module.exports.CreateDB = function (parent, func) {
|
|||||||
obj.removeAllPowerEventsForNode = function (nodeid) { obj.powerfile.deleteMany({ nodeid: nodeid }, { multi: true }); };
|
obj.removeAllPowerEventsForNode = function (nodeid) { obj.powerfile.deleteMany({ nodeid: nodeid }, { multi: true }); };
|
||||||
|
|
||||||
// Database actions on the SMBIOS collection
|
// Database actions on the SMBIOS collection
|
||||||
|
obj.GetAllSMBIOS = function (func) { obj.smbiosfile.find({}).toArray(func); };
|
||||||
obj.SetSMBIOS = function (smbios, func) {
|
obj.SetSMBIOS = function (smbios, func) {
|
||||||
checkObjectNames(smbios, 'x7'); // DEBUG CHECKING
|
checkObjectNames(smbios, 'x7'); // DEBUG CHECKING
|
||||||
obj.smbiosfile.updateOne({ _id: smbios._id }, { $set: smbios }, { upsert: true }, func);
|
obj.smbiosfile.updateOne({ _id: smbios._id }, { $set: smbios }, { upsert: true }, func);
|
||||||
@ -767,6 +787,17 @@ module.exports.CreateDB = function (parent, func) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Get database information
|
||||||
|
obj.getDbStats = function (func) {
|
||||||
|
obj.stats = { c: 6 };
|
||||||
|
obj.getStats(function (r) { obj.stats.recordTypes = r; if (--obj.stats.c == 0) { delete obj.stats.c; func(obj.stats); } })
|
||||||
|
obj.file.stats().then(function (stats) { obj.stats[stats.ns] = { size: stats.size, count: stats.count, avgObjSize: stats.avgObjSize, capped: stats.capped }; if (--obj.stats.c == 0) { delete obj.stats.c; func(obj.stats); } }, function () { if (--obj.stats.c == 0) { delete obj.stats.c; func(obj.stats); } }, );
|
||||||
|
obj.eventsfile.stats().then(function (stats) { obj.stats[stats.ns] = { size: stats.size, count: stats.count, avgObjSize: stats.avgObjSize, capped: stats.capped }; if (--obj.stats.c == 0) { delete obj.stats.c; func(obj.stats); } }, function () { if (--obj.stats.c == 0) { delete obj.stats.c; func(obj.stats); } }, );
|
||||||
|
obj.powerfile.stats().then(function (stats) { obj.stats[stats.ns] = { size: stats.size, count: stats.count, avgObjSize: stats.avgObjSize, capped: stats.capped }; if (--obj.stats.c == 0) { delete obj.stats.c; func(obj.stats); } }, function () { if (--obj.stats.c == 0) { delete obj.stats.c; func(obj.stats); } }, );
|
||||||
|
obj.smbiosfile.stats().then(function (stats) { obj.stats[stats.ns] = { size: stats.size, count: stats.count, avgObjSize: stats.avgObjSize, capped: stats.capped }; if (--obj.stats.c == 0) { delete obj.stats.c; func(obj.stats); } }, function () { if (--obj.stats.c == 0) { delete obj.stats.c; func(obj.stats); } }, );
|
||||||
|
obj.serverstatsfile.stats().then(function (stats) { obj.stats[stats.ns] = { size: stats.size, count: stats.count, avgObjSize: stats.avgObjSize, capped: stats.capped }; if (--obj.stats.c == 0) { delete obj.stats.c; func(obj.stats); } }, function () { if (--obj.stats.c == 0) { delete obj.stats.c; func(obj.stats); } }, );
|
||||||
|
}
|
||||||
|
|
||||||
// Plugin operations
|
// Plugin operations
|
||||||
if (parent.config.settings.plugins != null) {
|
if (parent.config.settings.plugins != null) {
|
||||||
obj.addPlugin = function (plugin, func) { plugin.type = "plugin"; obj.pluginsfile.insertOne(plugin, func); }; // Add a plugin
|
obj.addPlugin = function (plugin, func) { plugin.type = "plugin"; obj.pluginsfile.insertOne(plugin, func); }; // Add a plugin
|
||||||
@ -874,6 +905,7 @@ module.exports.CreateDB = function (parent, func) {
|
|||||||
obj.removeAllPowerEventsForNode = function (nodeid) { obj.powerfile.remove({ nodeid: nodeid }, { multi: true }); };
|
obj.removeAllPowerEventsForNode = function (nodeid) { obj.powerfile.remove({ nodeid: nodeid }, { multi: true }); };
|
||||||
|
|
||||||
// Database actions on the SMBIOS collection
|
// Database actions on the SMBIOS collection
|
||||||
|
obj.GetAllSMBIOS = function (func) { obj.smbiosfile.find({}, func); };
|
||||||
obj.SetSMBIOS = function (smbios, func) { obj.smbiosfile.update({ _id: smbios._id }, smbios, { upsert: true }, func); };
|
obj.SetSMBIOS = function (smbios, func) { obj.smbiosfile.update({ _id: smbios._id }, smbios, { upsert: true }, func); };
|
||||||
obj.RemoveSMBIOS = function (id) { obj.smbiosfile.remove({ _id: id }); };
|
obj.RemoveSMBIOS = function (id) { obj.smbiosfile.remove({ _id: id }); };
|
||||||
obj.GetSMBIOS = function (id, func) { obj.smbiosfile.find({ _id: id }, func); };
|
obj.GetSMBIOS = function (id, func) { obj.smbiosfile.find({ _id: id }, func); };
|
||||||
@ -908,10 +940,21 @@ module.exports.CreateDB = function (parent, func) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Get database information
|
||||||
|
obj.getDbStats = function (func) {
|
||||||
|
obj.stats = { c: 6 };
|
||||||
|
obj.getStats(function (r) { obj.stats.recordTypes = r; if (--obj.stats.c == 0) { delete obj.stats.c; func(obj.stats); } })
|
||||||
|
obj.file.count({}, function (err, count) { obj.stats.meshcentral = { count: count }; if (--obj.stats.c == 0) { delete obj.stats.c; func(obj.stats); } });
|
||||||
|
obj.eventsfile.count({}, function (err, count) { obj.stats.events = { count: count }; if (--obj.stats.c == 0) { delete obj.stats.c; func(obj.stats); } });
|
||||||
|
obj.powerfile.count({}, function (err, count) { obj.stats.power = { count: count }; if (--obj.stats.c == 0) { delete obj.stats.c; func(obj.stats); } });
|
||||||
|
obj.smbiosfile.count({}, function (err, count) { obj.stats.smbios = { count: count }; if (--obj.stats.c == 0) { delete obj.stats.c; func(obj.stats); } });
|
||||||
|
obj.serverstatsfile.count({}, function (err, count) { obj.stats.serverstats = { count: count }; if (--obj.stats.c == 0) { delete obj.stats.c; func(obj.stats); } });
|
||||||
|
}
|
||||||
|
|
||||||
// Plugin operations
|
// Plugin operations
|
||||||
if (parent.config.settings.plugins != null) {
|
if (parent.config.settings.plugins != null) {
|
||||||
obj.addPlugin = function (plugin, func) { plugin.type = "plugin"; obj.pluginsfile.insert(plugin, func); }; // Add a plugin
|
obj.addPlugin = function (plugin, func) { plugin.type = 'plugin'; obj.pluginsfile.insert(plugin, func); }; // Add a plugin
|
||||||
obj.getPlugins = function (func) { obj.pluginsfile.find({ "type": "plugin" }, { "type": 0 }).sort({ name: 1 }).exec(func); }; // Get all plugins
|
obj.getPlugins = function (func) { obj.pluginsfile.find({ 'type': 'plugin' }, { 'type': 0 }).sort({ name: 1 }).exec(func); }; // Get all plugins
|
||||||
obj.getPlugin = function (id, func) { obj.pluginsfile.find({ _id: id }).sort({ name: 1 }).exec(func); }; // Get plugin
|
obj.getPlugin = function (id, func) { obj.pluginsfile.find({ _id: id }).sort({ name: 1 }).exec(func); }; // Get plugin
|
||||||
obj.deletePlugin = function (id, func) { obj.pluginsfile.remove({ _id: id }, func); }; // Delete plugin
|
obj.deletePlugin = function (id, func) { obj.pluginsfile.remove({ _id: id }, func); }; // Delete plugin
|
||||||
obj.setPluginStatus = function (id, status, func) { obj.pluginsfile.update({ _id: id }, { $set: { status: status } }, func); };
|
obj.setPluginStatus = function (id, status, func) { obj.pluginsfile.update({ _id: id }, { $set: { status: status } }, func); };
|
||||||
|
@ -118,7 +118,7 @@ function CreateMeshCentralServer(config, args) {
|
|||||||
try { require('./pass').hash('test', function () { }, 0); } catch (e) { console.log('Old version of node, must upgrade.'); return; } // TODO: Not sure if this test works or not.
|
try { require('./pass').hash('test', function () { }, 0); } catch (e) { console.log('Old version of node, must upgrade.'); return; } // TODO: Not sure if this test works or not.
|
||||||
|
|
||||||
// Check for invalid arguments
|
// Check for invalid arguments
|
||||||
var validArguments = ['_', 'notls', 'user', 'port', 'aliasport', 'mpsport', 'mpsaliasport', 'redirport', 'rediraliasport', 'cert', 'mpscert', 'deletedomain', 'deletedefaultdomain', 'showall', 'showusers', 'shownodes', 'showmeshes', 'showevents', 'showpower', 'clearpower', 'showiplocations', 'help', 'exactports', 'xinstall', 'xuninstall', 'install', 'uninstall', 'start', 'stop', 'restart', 'debug', 'filespath', 'datapath', 'noagentupdate', 'launch', 'noserverbackup', 'mongodb', 'mongodbcol', 'wanonly', 'lanonly', 'nousers', 'mpspass', 'ciralocalfqdn', 'dbexport', 'dbexportmin', 'dbimport', 'dbmerge', 'dbencryptkey', 'selfupdate', 'tlsoffload', 'userallowedip', 'userblockedip', 'swarmallowedip', 'agentallowedip', 'agentblockedip', 'fastcert', 'swarmport', 'logintoken', 'logintokenkey', 'logintokengen', 'logintokengen', 'mailtokengen', 'admin', 'unadmin', 'sessionkey', 'sessiontime', 'minify', 'minifycore', 'dblistconfigfiles', 'dbshowconfigfile', 'dbpushconfigfiles', 'dbpullconfigfiles', 'dbdeleteconfigfiles', 'vaultpushconfigfiles', 'vaultpullconfigfiles', 'vaultdeleteconfigfiles', 'configkey', 'loadconfigfromdb', 'npmpath', 'memorytracking', 'serverid', 'recordencryptionrecode', 'vault', 'token', 'unsealkey', 'name', 'log'];
|
var validArguments = ['_', 'notls', 'user', 'port', 'aliasport', 'mpsport', 'mpsaliasport', 'redirport', 'rediraliasport', 'cert', 'mpscert', 'deletedomain', 'deletedefaultdomain', 'showall', 'showusers', 'shownodes', 'showmeshes', 'showevents', 'showsmbios', 'showpower', 'clearpower', 'showiplocations', 'help', 'exactports', 'xinstall', 'xuninstall', 'install', 'uninstall', 'start', 'stop', 'restart', 'debug', 'filespath', 'datapath', 'noagentupdate', 'launch', 'noserverbackup', 'mongodb', 'mongodbcol', 'wanonly', 'lanonly', 'nousers', 'mpspass', 'ciralocalfqdn', 'dbexport', 'dbexportmin', 'dbimport', 'dbmerge', 'dbencryptkey', 'selfupdate', 'tlsoffload', 'userallowedip', 'userblockedip', 'swarmallowedip', 'agentallowedip', 'agentblockedip', 'fastcert', 'swarmport', 'logintoken', 'logintokenkey', 'logintokengen', 'logintokengen', 'mailtokengen', 'admin', 'unadmin', 'sessionkey', 'sessiontime', 'minify', 'minifycore', 'dblistconfigfiles', 'dbshowconfigfile', 'dbpushconfigfiles', 'dbpullconfigfiles', 'dbdeleteconfigfiles', 'vaultpushconfigfiles', 'vaultpullconfigfiles', 'vaultdeleteconfigfiles', 'configkey', 'loadconfigfromdb', 'npmpath', 'memorytracking', 'serverid', 'recordencryptionrecode', 'vault', 'token', 'unsealkey', 'name', 'log', 'dbstats'];
|
||||||
for (var arg in obj.args) { obj.args[arg.toLocaleLowerCase()] = obj.args[arg]; if (validArguments.indexOf(arg.toLocaleLowerCase()) == -1) { console.log('Invalid argument "' + arg + '", use --help.'); return; } }
|
for (var arg in obj.args) { obj.args[arg.toLocaleLowerCase()] = obj.args[arg]; if (validArguments.indexOf(arg.toLocaleLowerCase()) == -1) { console.log('Invalid argument "' + arg + '", use --help.'); return; } }
|
||||||
if (obj.args.mongodb == true) { console.log('Must specify: --mongodb [connectionstring] \r\nSee https://docs.mongodb.com/manual/reference/connection-string/ for MongoDB connection string.'); return; }
|
if (obj.args.mongodb == true) { console.log('Must specify: --mongodb [connectionstring] \r\nSee https://docs.mongodb.com/manual/reference/connection-string/ for MongoDB connection string.'); return; }
|
||||||
for (i in obj.config.settings) { obj.args[i] = obj.config.settings[i]; } // Place all settings into arguments, arguments have already been placed into settings so arguments take precedence.
|
for (i in obj.config.settings) { obj.args[i] = obj.config.settings[i]; } // Place all settings into arguments, arguments have already been placed into settings so arguments take precedence.
|
||||||
@ -431,12 +431,14 @@ function CreateMeshCentralServer(config, args) {
|
|||||||
if (obj.args.shownodes) { obj.db.GetAllType('node', function (err, docs) { console.log(docs); process.exit(); }); return; }
|
if (obj.args.shownodes) { obj.db.GetAllType('node', function (err, docs) { console.log(docs); process.exit(); }); return; }
|
||||||
if (obj.args.showmeshes) { obj.db.GetAllType('mesh', function (err, docs) { console.log(docs); process.exit(); }); return; }
|
if (obj.args.showmeshes) { obj.db.GetAllType('mesh', function (err, docs) { console.log(docs); process.exit(); }); return; }
|
||||||
if (obj.args.showevents) { obj.db.GetAllEvents(function (err, docs) { console.log(docs); process.exit(); }); return; }
|
if (obj.args.showevents) { obj.db.GetAllEvents(function (err, docs) { console.log(docs); process.exit(); }); return; }
|
||||||
|
if (obj.args.showsmbios) { obj.db.GetAllSMBIOS(function (err, docs) { console.log(docs); process.exit(); }); return; }
|
||||||
if (obj.args.showpower) { obj.db.getAllPower(function (err, docs) { console.log(docs); process.exit(); }); return; }
|
if (obj.args.showpower) { obj.db.getAllPower(function (err, docs) { console.log(docs); process.exit(); }); return; }
|
||||||
if (obj.args.clearpower) { obj.db.removeAllPowerEvents(function () { process.exit(); }); return; }
|
if (obj.args.clearpower) { obj.db.removeAllPowerEvents(function () { process.exit(); }); return; }
|
||||||
if (obj.args.showiplocations) { obj.db.GetAllType('iploc', function (err, docs) { console.log(docs); process.exit(); }); return; }
|
if (obj.args.showiplocations) { obj.db.GetAllType('iploc', function (err, docs) { console.log(docs); process.exit(); }); return; }
|
||||||
if (obj.args.logintoken) { obj.getLoginToken(obj.args.logintoken, function (r) { console.log(r); process.exit(); }); return; }
|
if (obj.args.logintoken) { obj.getLoginToken(obj.args.logintoken, function (r) { console.log(r); process.exit(); }); return; }
|
||||||
if (obj.args.logintokenkey) { obj.showLoginTokenKey(function (r) { console.log(r); process.exit(); }); return; }
|
if (obj.args.logintokenkey) { obj.showLoginTokenKey(function (r) { console.log(r); process.exit(); }); return; }
|
||||||
if (obj.args.recordencryptionrecode) { obj.db.performRecordEncryptionRecode(function (count) { console.log('Re-encoded ' + count + ' record(s).'); process.exit(); }); return; }
|
if (obj.args.recordencryptionrecode) { obj.db.performRecordEncryptionRecode(function (count) { console.log('Re-encoded ' + count + ' record(s).'); process.exit(); }); return; }
|
||||||
|
if (obj.args.dbstats) { obj.db.getDbStats(function (stats) { console.log(stats); process.exit(); }); return; }
|
||||||
|
|
||||||
// Show a list of all configuration files in the database
|
// Show a list of all configuration files in the database
|
||||||
if (obj.args.dblistconfigfiles) {
|
if (obj.args.dblistconfigfiles) {
|
||||||
@ -907,7 +909,23 @@ function CreateMeshCentralServer(config, args) {
|
|||||||
if (obj.letsencrypt == null) { addServerWarning("Unable to setup GreenLock module."); leok = false; }
|
if (obj.letsencrypt == null) { addServerWarning("Unable to setup GreenLock module."); leok = false; }
|
||||||
}
|
}
|
||||||
if (leok == true) {
|
if (leok == true) {
|
||||||
obj.letsencrypt.getCertificate(certs, obj.StartEx3); // Use Let's Encrypt
|
// Check that the email address domain MX resolves.
|
||||||
|
require('dns').resolveMx(obj.config.letsencrypt.email.split('@')[1], function (err, addresses) {
|
||||||
|
if (err == null) {
|
||||||
|
// Check that all names resolve
|
||||||
|
checkResolveAll(obj.config.letsencrypt.names.split(','), function (err) {
|
||||||
|
if (err == null) {
|
||||||
|
obj.letsencrypt.getCertificate(certs, obj.StartEx3); // Use Let's Encrypt
|
||||||
|
} else {
|
||||||
|
for (var i in err) { addServerWarning("Invalid Let's Encrypt names, unable to resolve: " + err[i]); }
|
||||||
|
obj.StartEx3(certs); // Let's Encrypt did not load, just use the configured certificates
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
addServerWarning("Invalid Let's Encrypt email address, unable to resolve: " + obj.config.letsencrypt.email.split('@')[1]);
|
||||||
|
obj.StartEx3(certs); // Let's Encrypt did not load, just use the configured certificates
|
||||||
|
}
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
obj.StartEx3(certs); // Let's Encrypt did not load, just use the configured certificates
|
obj.StartEx3(certs); // Let's Encrypt did not load, just use the configured certificates
|
||||||
}
|
}
|
||||||
@ -1976,6 +1994,17 @@ function CreateMeshCentralServer(config, args) {
|
|||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Resolve a list of names, call back with list of failed resolves.
|
||||||
|
function checkResolveAll(names, func) {
|
||||||
|
var dns = require('dns'), state = { func: func, count: names.length, err: null };
|
||||||
|
for (var i in names) {
|
||||||
|
dns.resolve(names[i], function (err, records) {
|
||||||
|
if (err != null) { if (this.state.err == null) { this.state.err = [this.name]; } else { this.state.err.push(this.name); } }
|
||||||
|
if (--this.state.count == 0) { this.state.func(this.state.err); }
|
||||||
|
}.bind({ name: names[i], state: state }))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Return the server configuration
|
// Return the server configuration
|
||||||
function getConfig(createSampleConfig) {
|
function getConfig(createSampleConfig) {
|
||||||
// Figure out the datapath location
|
// Figure out the datapath location
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "meshcentral",
|
"name": "meshcentral",
|
||||||
"version": "0.4.5-j",
|
"version": "0.4.5-l",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"Remote Management",
|
"Remote Management",
|
||||||
"Intel AMT",
|
"Intel AMT",
|
||||||
|
@ -9,8 +9,8 @@ if (!String.prototype.startsWith) { String.prototype.startsWith = function (str)
|
|||||||
if (!String.prototype.endsWith) { String.prototype.endsWith = function (str) { return this.indexOf(str, this.length - str.length) !== -1; }; }
|
if (!String.prototype.endsWith) { String.prototype.endsWith = function (str) { return this.indexOf(str, this.length - str.length) !== -1; }; }
|
||||||
|
|
||||||
// Quick UI functions, a bit of a replacement for jQuery
|
// Quick UI functions, a bit of a replacement for jQuery
|
||||||
function Q(x) { if (document.getElementById(x) == null) { console.log('Invalid element: ' + x); } return document.getElementById(x); } // "Q"
|
//function Q(x) { if (document.getElementById(x) == null) { console.log('Invalid element: ' + x); } return document.getElementById(x); } // "Q"
|
||||||
//function Q(x) { return document.getElementById(x); } // "Q"
|
function Q(x) { return document.getElementById(x); } // "Q"
|
||||||
function QS(x) { try { return Q(x).style; } catch (x) { } } // "Q" style
|
function QS(x) { try { return Q(x).style; } catch (x) { } } // "Q" style
|
||||||
function QE(x, y) { try { Q(x).disabled = !y; } catch (x) { } } // "Q" enable
|
function QE(x, y) { try { Q(x).disabled = !y; } catch (x) { } } // "Q" enable
|
||||||
function QV(x, y) { try { QS(x).display = (y ? '' : 'none'); } catch (x) { } } // "Q" visible
|
function QV(x, y) { try { QS(x).display = (y ? '' : 'none'); } catch (x) { } } // "Q" visible
|
||||||
|
File diff suppressed because one or more lines are too long
@ -51,12 +51,12 @@
|
|||||||
<input id="PauseButton" type="button" value="Pause" disabled="disabled" onclick="pause()">
|
<input id="PauseButton" type="button" value="Pause" disabled="disabled" onclick="pause()">
|
||||||
<input id="RestartButton" type="button" value="Restart" disabled="disabled" onclick="restart()">
|
<input id="RestartButton" type="button" value="Restart" disabled="disabled" onclick="restart()">
|
||||||
<select id="PlaySpeed" onchange="this.blur();">
|
<select id="PlaySpeed" onchange="this.blur();">
|
||||||
<option value="4">1/4 Speed</option>
|
<option value="4">1/4 rychlost</option>
|
||||||
<option value="2">1/2 Speed</option>
|
<option value="2">1/2 rychlost</option>
|
||||||
<option value="1" selected="">Normalní rychlost</option>
|
<option value="1" selected="">Normalní rychlost</option>
|
||||||
<option value="0.5">2x rychlost</option>
|
<option value="0.5">2x rychlost</option>
|
||||||
<option value="0.25">4x Speed</option>
|
<option value="0.25">4x rychlost</option>
|
||||||
<option value="0.1">10x Speed</option>
|
<option value="0.1">10x rychlost</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -168,7 +168,7 @@
|
|||||||
x += addInfo("Uživatel", recFileMetadata.username);
|
x += addInfo("Uživatel", recFileMetadata.username);
|
||||||
x += addInfo("UserID", recFileMetadata.userid);
|
x += addInfo("UserID", recFileMetadata.userid);
|
||||||
x += addInfo("SessionID", recFileMetadata.sessionid);
|
x += addInfo("SessionID", recFileMetadata.sessionid);
|
||||||
if (recFileMetadata.ipaddr1 && recFileMetadata.ipaddr2) { x += addInfo("Addresses", format("{0} to {1}", recFileMetadata.ipaddr1, recFileMetadata.ipaddr2)); }
|
if (recFileMetadata.ipaddr1 && recFileMetadata.ipaddr2) { x += addInfo("Adresy", format("{0} to {1}", recFileMetadata.ipaddr1, recFileMetadata.ipaddr2)); }
|
||||||
if (recFileMetadata.devicename) { x += addInfo("Device Name", recFileMetadata.devicename); }
|
if (recFileMetadata.devicename) { x += addInfo("Device Name", recFileMetadata.devicename); }
|
||||||
x += addInfo("NodeID", recFileMetadata.nodeid);
|
x += addInfo("NodeID", recFileMetadata.nodeid);
|
||||||
if (recFileMetadata.protocol) {
|
if (recFileMetadata.protocol) {
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -8702,4 +8702,5 @@
|
|||||||
function printDateTime(d) { return d.toLocaleString(args.locale); }
|
function printDateTime(d) { return d.toLocaleString(args.locale); }
|
||||||
function addDetailItem(title, value, state) { return '<div><span style=float:right>' + value + '</span><span>' + title + '</span></div>'; }
|
function addDetailItem(title, value, state) { return '<div><span style=float:right>' + value + '</span><span>' + title + '</span></div>'; }
|
||||||
function format(format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); };
|
function format(format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); };
|
||||||
|
function addTextLink(subtext, text, link) { var i = text.toLowerCase().indexOf(subtext.toLowerCase()); if (i == -1) { return text; } return text.substring(0, i) + '<a href=\"' + link + '\">' + subtext + '</a>' + text.substring(i + subtext.length); }
|
||||||
function nobreak(x) { return x.split(' ').join(' '); }</script>
|
function nobreak(x) { return x.split(' ').join(' '); }</script>
|
@ -9713,6 +9713,7 @@
|
|||||||
function printDateTime(d) { return d.toLocaleString(args.locale); }
|
function printDateTime(d) { return d.toLocaleString(args.locale); }
|
||||||
function addDetailItem(title, value, state) { return '<div><span style=float:right>' + value + '</span><span>' + title + '</span></div>'; }
|
function addDetailItem(title, value, state) { return '<div><span style=float:right>' + value + '</span><span>' + title + '</span></div>'; }
|
||||||
function format(format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); };
|
function format(format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); };
|
||||||
|
function addTextLink(subtext, text, link) { var i = text.toLowerCase().indexOf(subtext.toLowerCase()); if (i == -1) { return text; } return text.substring(0, i) + '<a href=\"' + link + '\">' + subtext + '</a>' + text.substring(i + subtext.length); }
|
||||||
function nobreak(x) { return x.split(' ').join(' '); }
|
function nobreak(x) { return x.split(' ').join(' '); }
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
File diff suppressed because one or more lines are too long
@ -31,7 +31,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div id=column_l>
|
<div id=column_l>
|
||||||
<h1>Welcome</h1>
|
<h1>Welcome</h1>
|
||||||
<div id="welcomeText" style="display:none">Connect to your home or office devices from anywhere in the world using <a href="http://www.meshcommander.com/meshcentral2">MeshCentral</a>, the real time, open source remote monitoring and management web site. You will need to download and install a management agent on your computers. Once installed, computers will show up in the "My Devices" section of this web site and you will be able to monitor them and take control of them.</div>
|
<div id="welcomeText" style="display:none">Connect to your home or office devices from anywhere in the world using MeshCentral, the real time, open source remote monitoring and management web site. You will need to download and install a management agent on your computers. Once installed, computers will show up in the "My Devices" section of this web site and you will be able to monitor them and take control of them.</div>
|
||||||
<table id="centralTable" style="">
|
<table id="centralTable" style="">
|
||||||
<tr>
|
<tr>
|
||||||
<td id="welcomeimage">
|
<td id="welcomeimage">
|
||||||
@ -321,6 +321,7 @@
|
|||||||
|
|
||||||
// Display the welcome text
|
// Display the welcome text
|
||||||
if (welcomeText) { QH('welcomeText', welcomeText); }
|
if (welcomeText) { QH('welcomeText', welcomeText); }
|
||||||
|
QH('welcomeText', addTextLink('MeshCentral', Q('welcomeText').innerHTML, 'http://www.meshcommander.com/meshcentral2'));
|
||||||
QV('welcomeText', true);
|
QV('welcomeText', true);
|
||||||
|
|
||||||
window.onresize = center;
|
window.onresize = center;
|
||||||
@ -721,6 +722,7 @@
|
|||||||
function putstore(name, val) { try { if (typeof (localStorage) === 'undefined') return; localStorage.setItem(name, val); } catch (e) { } }
|
function putstore(name, val) { try { if (typeof (localStorage) === 'undefined') return; localStorage.setItem(name, val); } catch (e) { } }
|
||||||
function getstore(name, val) { try { if (typeof (localStorage) === 'undefined') return val; var v = localStorage.getItem(name); if ((v == null) || (v == null)) return val; return v; } catch (e) { return val; } }
|
function getstore(name, val) { try { if (typeof (localStorage) === 'undefined') return val; var v = localStorage.getItem(name); if ((v == null) || (v == null)) return val; return v; } catch (e) { return val; } }
|
||||||
function format(format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); };
|
function format(format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); };
|
||||||
|
function addTextLink(subtext, text, link) { var i = text.toLowerCase().indexOf(subtext.toLowerCase()); if (i == -1) { return text; } return text.substring(0, i) + '<a href=\"' + link + '\">' + subtext + '</a>' + text.substring(i + subtext.length); }
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
File diff suppressed because one or more lines are too long
@ -7646,7 +7646,7 @@
|
|||||||
if (user.otpsecret > 0) { factors.push("Authentication App"); }
|
if (user.otpsecret > 0) { factors.push("Authentication App"); }
|
||||||
if (user.otphkeys > 0) { factors.push("Clef de sécurité"); }
|
if (user.otphkeys > 0) { factors.push("Clef de sécurité"); }
|
||||||
if (user.otpkeys > 0) { factors.push("Backup Codes"); }
|
if (user.otpkeys > 0) { factors.push("Backup Codes"); }
|
||||||
x += addDeviceAttribute("Sécurité", '<img src="images/key12.png" height=12 width=11 title=\"' + "Authentification 2e facteur activée" + '\" style="margin-top:2px" /> ' + factors.join(', '));
|
x += addDeviceAttribute("Sécurité", '<img src="images/key12.png" height=12 width=11 title=\"' + "2nd factor authentication enabled" + '\" style="margin-top:2px" /> ' + factors.join(', '));
|
||||||
}
|
}
|
||||||
|
|
||||||
x += '</table></div><br />';
|
x += '</table></div><br />';
|
||||||
@ -8702,4 +8702,5 @@
|
|||||||
function printDateTime(d) { return d.toLocaleString(args.locale); }
|
function printDateTime(d) { return d.toLocaleString(args.locale); }
|
||||||
function addDetailItem(title, value, state) { return '<div><span style=float:right>' + value + '</span><span>' + title + '</span></div>'; }
|
function addDetailItem(title, value, state) { return '<div><span style=float:right>' + value + '</span><span>' + title + '</span></div>'; }
|
||||||
function format(format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); };
|
function format(format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); };
|
||||||
|
function addTextLink(subtext, text, link) { var i = text.toLowerCase().indexOf(subtext.toLowerCase()); if (i == -1) { return text; } return text.substring(0, i) + '<a href=\"' + link + '\">' + subtext + '</a>' + text.substring(i + subtext.length); }
|
||||||
function nobreak(x) { return x.split(' ').join(' '); }</script>
|
function nobreak(x) { return x.split(' ').join(' '); }</script>
|
File diff suppressed because one or more lines are too long
@ -233,22 +233,22 @@
|
|||||||
<div id="p3info" style="overflow-y:scroll;position:absolute;top:55px;bottom:0px;width:100%">
|
<div id="p3info" style="overflow-y:scroll;position:absolute;top:55px;bottom:0px;width:100%">
|
||||||
<div style="margin-left:8px">
|
<div style="margin-left:8px">
|
||||||
<div id="p3AccountActions">
|
<div id="p3AccountActions">
|
||||||
<p><strong>Account Security</strong></p>
|
<p><strong>Nastavení bezpečnosti</strong></p>
|
||||||
<div style="margin-left:9px;margin-bottom:8px">
|
<div style="margin-left:9px;margin-bottom:8px">
|
||||||
<div id="manageAuthApp" style="margin-top:5px;display:none"><a onclick="account_manageAuthApp()" style="cursor:pointer">Manage authenticator app</a></div>
|
<div id="manageAuthApp" style="margin-top:5px;display:none"><a onclick="account_manageAuthApp()" style="cursor:pointer">Spravovat autentizační aplikace</a></div>
|
||||||
<div id="manageOtp" style="margin-top:5px;display:none"><a onclick="account_manageOtp(0)" style="cursor:pointer">Manage backup codes</a></div>
|
<div id="manageOtp" style="margin-top:5px;display:none"><a onclick="account_manageOtp(0)" style="cursor:pointer">Manage backup codes</a></div>
|
||||||
</div>
|
</div>
|
||||||
<p><strong>Account Actions</strong></p>
|
<p><strong>Akce účtu</strong></p>
|
||||||
<div style="margin-left:9px;margin-bottom:8px">
|
<div style="margin-left:9px;margin-bottom:8px">
|
||||||
<div style="margin-top:5px"><span id="verifyEmailId" style="display:none"><a onclick="account_showVerifyEmail()" style="cursor:pointer">Verify email</a></span></div>
|
<div style="margin-top:5px"><span id="verifyEmailId" style="display:none"><a onclick="account_showVerifyEmail()" style="cursor:pointer">Ověřit email</a></span></div>
|
||||||
<div style="margin-top:5px"><span id="changeEmailId" style="display:none"><a onclick="account_showChangeEmail()" style="cursor:pointer">Change email address</a></span></div>
|
<div style="margin-top:5px"><span id="changeEmailId" style="display:none"><a onclick="account_showChangeEmail()" style="cursor:pointer">Změnit emailovou adresu</a></span></div>
|
||||||
<div style="margin-top:5px"><a onclick="account_showChangePassword()" style="cursor:pointer">Změnit heslo</a><span id="p2nextPasswordUpdateTime"></span></div>
|
<div style="margin-top:5px"><a onclick="account_showChangePassword()" style="cursor:pointer">Změnit heslo</a><span id="p2nextPasswordUpdateTime"></span></div>
|
||||||
<div style="margin-top:5px"><a onclick="account_showDeleteAccount()" style="cursor:pointer">Smazat účet</a></div>
|
<div style="margin-top:5px"><a onclick="account_showDeleteAccount()" style="cursor:pointer">Smazat účet</a></div>
|
||||||
</div>
|
</div>
|
||||||
<br style="clear:both">
|
<br style="clear:both">
|
||||||
</div>
|
</div>
|
||||||
<strong>Device Groups</strong>
|
<strong>Skupiny zařízení</strong>
|
||||||
<span id="p3createMeshLink1">( <a onclick="account_createMesh()" style="cursor:pointer"><img src="images/icon-addnew.png" width="12" height="12" border="0"> New</a> )</span>
|
<span id="p3createMeshLink1">( <a onclick="account_createMesh()" style="cursor:pointer"><img src="images/icon-addnew.png" width="12" height="12" border="0"> Vytvořit</a> )</span>
|
||||||
<br><br>
|
<br><br>
|
||||||
<div id="p3meshes"></div>
|
<div id="p3meshes"></div>
|
||||||
<div id="p3noMeshFound" style="margin-left:9px;display:none">No device groups.<span id="p3createMeshLink2"> <a onclick="account_createMesh()" style="cursor:pointer"><strong>Get started here!</strong></a></span></div>
|
<div id="p3noMeshFound" style="margin-left:9px;display:none">No device groups.<span id="p3createMeshLink2"> <a onclick="account_createMesh()" style="cursor:pointer"><strong>Get started here!</strong></a></span></div>
|
||||||
@ -569,7 +569,7 @@
|
|||||||
<label><input type="checkbox" id="d7showfocus">Show Focus Tool</label><br>
|
<label><input type="checkbox" id="d7showfocus">Show Focus Tool</label><br>
|
||||||
<label><input type="checkbox" id="d7showcursor">Show Local Mouse Cursor</label><br>
|
<label><input type="checkbox" id="d7showcursor">Show Local Mouse Cursor</label><br>
|
||||||
</div>
|
</div>
|
||||||
<div>Other</div>
|
<div>Ostatní</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -692,12 +692,12 @@
|
|||||||
QV('p3createMeshLink2', false);
|
QV('p3createMeshLink2', false);
|
||||||
|
|
||||||
if (typeof userinfo.passchange == 'number') {
|
if (typeof userinfo.passchange == 'number') {
|
||||||
if (userinfo.passchange == -1) { QH('p2nextPasswordUpdateTime', " - Reset on next login."); }
|
if (userinfo.passchange == -1) { QH('p2nextPasswordUpdateTime', " - Reset při příštím přihlášení."); }
|
||||||
else if ((passRequirements != null) && (typeof passRequirements.reset == 'number')) {
|
else if ((passRequirements != null) && (typeof passRequirements.reset == 'number')) {
|
||||||
var seconds = (userinfo.passchange) + (passRequirements.reset * 86400) - Math.floor(Date.now() / 1000);
|
var seconds = (userinfo.passchange) + (passRequirements.reset * 86400) - Math.floor(Date.now() / 1000);
|
||||||
if (seconds < 0) { QH('p2nextPasswordUpdateTime', " - Reset on next login."); }
|
if (seconds < 0) { QH('p2nextPasswordUpdateTime', " - Reset při příštím přihlášení."); }
|
||||||
else if (seconds < 3600) { QH('p2nextPasswordUpdateTime', format(" - Reset in {0} minute{1}.", Math.floor(seconds / 60), addLetterS(Math.floor(seconds / 60)))); }
|
else if (seconds < 3600) { QH('p2nextPasswordUpdateTime', format(" - Reset v {0} minut{1}.", Math.floor(seconds / 60), addLetterS(Math.floor(seconds / 60)))); }
|
||||||
else if (seconds < 86400) { QH('p2nextPasswordUpdateTime', format(" - Reset in {0} hour{1}.", Math.floor(seconds / 3600), addLetterS(Math.floor(seconds / 3600)))); }
|
else if (seconds < 86400) { QH('p2nextPasswordUpdateTime', format(" - Reset v {0} hodin{1}.", Math.floor(seconds / 3600), addLetterS(Math.floor(seconds / 3600)))); }
|
||||||
else { QH('p2nextPasswordUpdateTime', format(" - Reset v {0} den{1}."), Math.floor(seconds / 86400), addLetterS(Math.floor(seconds / 86400))); }
|
else { QH('p2nextPasswordUpdateTime', format(" - Reset v {0} den{1}."), Math.floor(seconds / 86400), addLetterS(Math.floor(seconds / 86400))); }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -799,12 +799,12 @@
|
|||||||
}
|
}
|
||||||
case 'otpauth-setup': {
|
case 'otpauth-setup': {
|
||||||
if (xxdialogMode) return;
|
if (xxdialogMode) return;
|
||||||
setDialogMode(2, "Authenticator App", 1, null, message.success ? "<b style=color:green>2-step login activation successful</b>. You will now need a valid token to login again." : "<b style=color:red>2-step login activation failed</b>. Clear the secret from the application and try again. You only have a few minutes to enter the proper code.");
|
setDialogMode(2, "Authenticator App", 1, null, message.success ? "<b style=color:green>2-faktorová autentizace zapnuta</b>. Je třeba platný token k přihlášení." : "<b style=color:red>2-faktorové přihlášení selhalo</b>. Je třeba smazat tajemství z aplikace a zkusit znovu. Na toto máte již jen pár minut.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'otpauth-clear': {
|
case 'otpauth-clear': {
|
||||||
if (xxdialogMode) return;
|
if (xxdialogMode) return;
|
||||||
setDialogMode(2, "Authenticator App", 1, null, message.success ? "<b style=color:green>2-step login activation removed</b>. You can reactivate this feature at any time." : "<b style=color:red>2-step login activation removal failed</b>. Try again.");
|
setDialogMode(2, "Authenticator App", 1, null, message.success ? "<b style=color:green>2-faktorové přihlášení odstraněno</b>. Lze znovu kdykoliv zapnout." : "<b style=color:red>Odstranění 2-faktorového přihlášení selhalo</b>. Zkuste znovu.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'otpauth-getpasswords': {
|
case 'otpauth-getpasswords': {
|
||||||
@ -1147,7 +1147,7 @@
|
|||||||
|
|
||||||
function account_addOtp() {
|
function account_addOtp() {
|
||||||
if (xxdialogMode || (userinfo.otpsecret == 1) || ((features & 4096) == 0)) return;
|
if (xxdialogMode || (userinfo.otpsecret == 1) || ((features & 4096) == 0)) return;
|
||||||
setDialogMode(2, "Authenticator App", 2, function () { meshserver.send({ action: 'otpauth-setup', secret: Q('d2optsecret').attributes.secret.value, token: Q('d2otpauthinput').value }); }, '<div id=d2optinfo>' + "Loading..." + '</div>', 'otpauth-request');
|
setDialogMode(2, "Authenticator App", 2, function () { meshserver.send({ action: 'otpauth-setup', secret: Q('d2optsecret').attributes.secret.value, token: Q('d2otpauthinput').value }); }, '<div id=d2optinfo>' + "Nahrávání..." + '</div>', 'otpauth-request');
|
||||||
meshserver.send({ action: 'otpauth-request' });
|
meshserver.send({ action: 'otpauth-request' });
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1246,10 +1246,10 @@
|
|||||||
if ((userinfo.siteadmin != 0xFFFFFFFF) && ((userinfo.siteadmin & 64) != 0)) { setDialogMode(2, "Nová skupina zařízení", 1, null, "This account does not have the rights to create a new device group."); return; }
|
if ((userinfo.siteadmin != 0xFFFFFFFF) && ((userinfo.siteadmin & 64) != 0)) { setDialogMode(2, "Nová skupina zařízení", 1, null, "This account does not have the rights to create a new device group."); return; }
|
||||||
|
|
||||||
// Remind the user to verify the email address
|
// Remind the user to verify the email address
|
||||||
if ((userinfo.emailVerified !== true) && (serverinfo.emailcheck == true) && (userinfo.siteadmin != 0xFFFFFFFF)) { setDialogMode(2, "Account Security", 1, null, "Unable to access a device until a email address is verified. This is required for password recovery. Go to the \"My Account\" to change and verify an email address."); return; }
|
if ((userinfo.emailVerified !== true) && (serverinfo.emailcheck == true) && (userinfo.siteadmin != 0xFFFFFFFF)) { setDialogMode(2, "Nastavení bezpečnosti", 1, null, "Unable to access a device until a email address is verified. This is required for password recovery. Go to the \"My Account\" to change and verify an email address."); return; }
|
||||||
|
|
||||||
// Remind the user to add two factor authentication
|
// Remind the user to add two factor authentication
|
||||||
if ((features & 0x00040000) && !((userinfo.otpsecret == 1) || (userinfo.otphkeys > 0) || (userinfo.otpkeys > 0))) { setDialogMode(2, "Account Security", 1, null, "Unable to access a device until two-factor authentication is enabled. This is required for extra security. Go to the \"My Account\" and look at the \"Account Security\" section."); return; }
|
if ((features & 0x00040000) && !((userinfo.otpsecret == 1) || (userinfo.otphkeys > 0) || (userinfo.otpkeys > 0))) { setDialogMode(2, "Nastavení bezpečnosti", 1, null, "Unable to access a device until two-factor authentication is enabled. This is required for extra security. Go to the \"My Account\" and look at the \"Account Security\" section."); return; }
|
||||||
|
|
||||||
// We are allowed, let's prompt to information
|
// We are allowed, let's prompt to information
|
||||||
var x = addHtmlValue("Jméno", '<input id=dp3meshname style=width:170px maxlength=64 onchange=account_validateMeshCreate() onkeyup=account_validateMeshCreate() />');
|
var x = addHtmlValue("Jméno", '<input id=dp3meshname style=width:170px maxlength=64 onchange=account_validateMeshCreate() onkeyup=account_validateMeshCreate() />');
|
||||||
@ -1327,7 +1327,7 @@
|
|||||||
// Mesh rights
|
// Mesh rights
|
||||||
var meshrights = meshes[i].links[userinfo._id].rights;
|
var meshrights = meshes[i].links[userinfo._id].rights;
|
||||||
var rights = "Partial Rights";
|
var rights = "Partial Rights";
|
||||||
if (meshrights == 0xFFFFFFFF) rights = "Full Administrator"; else if (meshrights == 0) rights = "No Rights";
|
if (meshrights == 0xFFFFFFFF) rights = "Hlavní administrátor"; else if (meshrights == 0) rights = "No Rights";
|
||||||
|
|
||||||
// Print the mesh information
|
// Print the mesh information
|
||||||
r += '<div style=cursor:pointer onclick=goForward(\'' + i + '\')>';
|
r += '<div style=cursor:pointer onclick=goForward(\'' + i + '\')>';
|
||||||
@ -1663,7 +1663,7 @@
|
|||||||
if (nodes[i].meshid != current) {
|
if (nodes[i].meshid != current) {
|
||||||
deviceHeaderSet();
|
deviceHeaderSet();
|
||||||
var extra = '';
|
var extra = '';
|
||||||
if (meshes[nodes[i].meshid].mtype == 1) { extra = '<span style=color:lightgray>' + ", Intel® AMT only" + '</span>'; }
|
if (meshes[nodes[i].meshid].mtype == 1) { extra = '<span style=color:lightgray>' + ", Intel® AMT pouze" + '</span>'; }
|
||||||
if (current != null) { if (c == 2) { r += '<td><div style=width:301px></div></td>'; } if (r != '') { r += '</tr></table>'; } }
|
if (current != null) { if (c == 2) { r += '<td><div style=width:301px></div></td>'; } if (r != '') { r += '</tr></table>'; } }
|
||||||
r += '<div class=DevSt style=padding-top:4px><span style=float:right>';
|
r += '<div class=DevSt style=padding-top:4px><span style=float:right>';
|
||||||
//r += getMeshActions(mesh2, meshrights);
|
//r += getMeshActions(mesh2, meshrights);
|
||||||
@ -1788,7 +1788,7 @@
|
|||||||
|
|
||||||
function deviceHeaderSet() {
|
function deviceHeaderSet() {
|
||||||
if (deviceHeaderId == 0) { deviceHeaderId = 1; return; }
|
if (deviceHeaderId == 0) { deviceHeaderId = 1; return; }
|
||||||
deviceHeaders['DevxHeader' + deviceHeaderId] = ', ' + deviceHeaderTotal + ((deviceHeaderTotal == 1) ? " zařízení" : " nodes");
|
deviceHeaders['DevxHeader' + deviceHeaderId] = ', ' + deviceHeaderTotal + ((deviceHeaderTotal == 1) ? " nód" : " nódy");
|
||||||
var title = '';
|
var title = '';
|
||||||
for (var x in deviceHeaderCount) { if (title.length > 0) title += ', '; title += deviceHeaderCount[x] + ' ' + PowerStateStr2(x); }
|
for (var x in deviceHeaderCount) { if (title.length > 0) title += ', '; title += deviceHeaderCount[x] + ' ' + PowerStateStr2(x); }
|
||||||
deviceHeadersTitles['DevxHeader' + deviceHeaderId] = title;
|
deviceHeadersTitles['DevxHeader' + deviceHeaderId] = title;
|
||||||
@ -1826,10 +1826,10 @@
|
|||||||
function gotoDevice(nodeid, panel, refresh) {
|
function gotoDevice(nodeid, panel, refresh) {
|
||||||
|
|
||||||
// Remind the user to verify the email address
|
// Remind the user to verify the email address
|
||||||
if ((userinfo.emailVerified !== true) && (serverinfo.emailcheck == true) && (userinfo.siteadmin != 0xFFFFFFFF)) { setDialogMode(2, "Account Security", 1, null, "Unable to access a device until a email address is verified. This is required for password recovery. Go to the \"My Account\" to change and verify an email address."); return; }
|
if ((userinfo.emailVerified !== true) && (serverinfo.emailcheck == true) && (userinfo.siteadmin != 0xFFFFFFFF)) { setDialogMode(2, "Nastavení bezpečnosti", 1, null, "Unable to access a device until a email address is verified. This is required for password recovery. Go to the \"My Account\" to change and verify an email address."); return; }
|
||||||
|
|
||||||
// Remind the user to add two factor authentication
|
// Remind the user to add two factor authentication
|
||||||
if ((features & 0x00040000) && !((userinfo.otpsecret == 1) || (userinfo.otphkeys > 0) || (userinfo.otpkeys > 0))) { setDialogMode(2, "Account Security", 1, null, "Unable to access a device until two-factor authentication is enabled. This is required for extra security. Go to the \"My Account\" and look at the \"Account Security\" section."); return; }
|
if ((features & 0x00040000) && !((userinfo.otpsecret == 1) || (userinfo.otphkeys > 0) || (userinfo.otpkeys > 0))) { setDialogMode(2, "Nastavení bezpečnosti", 1, null, "Unable to access a device until two-factor authentication is enabled. This is required for extra security. Go to the \"My Account\" and look at the \"Account Security\" section."); return; }
|
||||||
|
|
||||||
var node = getNodeFromId(nodeid);
|
var node = getNodeFromId(nodeid);
|
||||||
if (node == null) { goBack(); return; }
|
if (node == null) { goBack(); return; }
|
||||||
@ -1887,10 +1887,10 @@
|
|||||||
// Attribute: Intel AMT
|
// Attribute: Intel AMT
|
||||||
if (node.intelamt != null) {
|
if (node.intelamt != null) {
|
||||||
var str = '';
|
var str = '';
|
||||||
var provisioningStates = { 0: nobreak("Not Activated (Pre)"), 1: nobreak("Not Activated (In)"), 2: nobreak("Activated") };
|
var provisioningStates = { 0: nobreak("Not Activated (Pre)"), 1: nobreak("Not Activated (In)"), 2: nobreak("Aktivováno") };
|
||||||
if (node.intelamt.ver != null && node.intelamt.state == null) { str += '<i>' + nobreak("Unknown State") + '</i>, v' + node.intelamt.ver; } else
|
if (node.intelamt.ver != null && node.intelamt.state == null) { str += '<i>' + nobreak("Unknown State") + '</i>, v' + node.intelamt.ver; } else
|
||||||
|
|
||||||
if ((node.intelamt.ver == null) && (node.intelamt.state == 2)) { str += '<i>' + "Activated" + '</i>'; }
|
if ((node.intelamt.ver == null) && (node.intelamt.state == 2)) { str += '<i>' + "Aktivováno" + '</i>'; }
|
||||||
else if ((node.intelamt.ver == null) || (node.intelamt.state == null)) { str += '<i>' + "Unknown Version & State" + '</i>'; }
|
else if ((node.intelamt.ver == null) || (node.intelamt.state == null)) { str += '<i>' + "Unknown Version & State" + '</i>'; }
|
||||||
else {
|
else {
|
||||||
str += provisioningStates[node.intelamt.state];
|
str += provisioningStates[node.intelamt.state];
|
||||||
@ -2150,7 +2150,7 @@
|
|||||||
|
|
||||||
function p10showDeleteNodeDialog(nodeid) {
|
function p10showDeleteNodeDialog(nodeid) {
|
||||||
if (xxdialogMode) return;
|
if (xxdialogMode) return;
|
||||||
setDialogMode(2, "Delete Node", 3, p10showDeleteNodeDialogEx, format("Delete {0}?", EscapeHtml(currentNode.name)) + '<br /><br /><input id=p10check type=checkbox onchange=p10validateDeleteNodeDialog() />' + "Confirm", nodeid);
|
setDialogMode(2, "Smazat nod", 3, p10showDeleteNodeDialogEx, format("Smazat {0}?", EscapeHtml(currentNode.name)) + '<br /><br /><input id=p10check type=checkbox onchange=p10validateDeleteNodeDialog() />' + "Confirm", nodeid);
|
||||||
p10validateDeleteNodeDialog();
|
p10validateDeleteNodeDialog();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2592,7 +2592,7 @@
|
|||||||
function deskSetDisplay(e) {
|
function deskSetDisplay(e) {
|
||||||
setSessionActivity();
|
setSessionActivity();
|
||||||
var display = 0, txt = Q('termdisplays').value;
|
var display = 0, txt = Q('termdisplays').value;
|
||||||
if (txt == "All Displays") display = 65535; else display = parseInt(txt.substring(8));
|
if (txt == "Všechny displeje") display = 65535; else display = parseInt(txt.substring(8));
|
||||||
desktop.m.SetDisplay(display);
|
desktop.m.SetDisplay(display);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3108,7 +3108,7 @@
|
|||||||
|
|
||||||
x += '<br style=clear:both><br>';
|
x += '<br style=clear:both><br>';
|
||||||
var currentMeshLinks = currentMesh.links[userinfo._id];
|
var currentMeshLinks = currentMesh.links[userinfo._id];
|
||||||
if (currentMeshLinks && ((currentMeshLinks.rights & 2) != 0)) { x += '<div style=margin-bottom:6px><a onclick=p20showAddMeshUserDialog() style=cursor:pointer><img src=images/icon-addnew.png border=0 height=12 width=12>' + " Add User" + '</a></div>'; }
|
if (currentMeshLinks && ((currentMeshLinks.rights & 2) != 0)) { x += '<div style=margin-bottom:6px><a onclick=p20showAddMeshUserDialog() style=cursor:pointer><img src=images/icon-addnew.png border=0 height=12 width=12>' + " Přidat uživatele" + '</a></div>'; }
|
||||||
|
|
||||||
/*
|
/*
|
||||||
if ((meshrights & 4) != 0) {
|
if ((meshrights & 4) != 0) {
|
||||||
@ -3147,7 +3147,7 @@
|
|||||||
// Display all users for this mesh
|
// Display all users for this mesh
|
||||||
for (var i in sortedusers) {
|
for (var i in sortedusers) {
|
||||||
var trash = '', rights = "Partial Rights", r = sortedusers[i].rights;
|
var trash = '', rights = "Partial Rights", r = sortedusers[i].rights;
|
||||||
if (r == 0xFFFFFFFF) rights = "Full Administrator"; else if (r == 0) rights = "No Rights";
|
if (r == 0xFFFFFFFF) rights = "Hlavní administrátor"; else if (r == 0) rights = "No Rights";
|
||||||
if ((i != userinfo._id) && (meshrights == 0xFFFFFFFF || (((meshrights & 2) != 0)))) { trash = '<a onclick=p20deleteUser(event,"' + encodeURIComponent(sortedusers[i].id) + '") style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>'; }
|
if ((i != userinfo._id) && (meshrights == 0xFFFFFFFF || (((meshrights & 2) != 0)))) { trash = '<a onclick=p20deleteUser(event,"' + encodeURIComponent(sortedusers[i].id) + '") style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>'; }
|
||||||
x += '<tr onclick=p20viewuser("' + encodeURIComponent(sortedusers[i].id) + '") style=height:32px;cursor:pointer' + (((count % 2) == 0) ? ';background-color:#DDD' : '') + '><td>';
|
x += '<tr onclick=p20viewuser("' + encodeURIComponent(sortedusers[i].id) + '") style=height:32px;cursor:pointer' + (((count % 2) == 0) ? ';background-color:#DDD' : '') + '><td>';
|
||||||
x += '<div style=float:right>' + trash + '</div><div style=float:right;padding-right:4px>' + rights + '</div><div class=m2></div><div> ' + EscapeHtml(decodeURIComponent(sortedusers[i].name)) + '<div></div></div>';
|
x += '<div style=float:right>' + trash + '</div><div style=float:right;padding-right:4px>' + rights + '</div><div class=m2></div><div> ' + EscapeHtml(decodeURIComponent(sortedusers[i].name)) + '<div></div></div>';
|
||||||
@ -3158,7 +3158,7 @@
|
|||||||
x += '</tbody></table>';
|
x += '</tbody></table>';
|
||||||
|
|
||||||
// If we are full administrator on this mesh, allow deletion of the mesh
|
// If we are full administrator on this mesh, allow deletion of the mesh
|
||||||
if (meshrights == 0xFFFFFFFF) { x += '<div style=font-size:small;text-align:right;margin-top:6px><span><a onclick=p20showDeleteMeshDialog() style=cursor:pointer>' + "Delete Group" + '</a></span></div>'; }
|
if (meshrights == 0xFFFFFFFF) { x += '<div style=font-size:small;text-align:right;margin-top:6px><span><a onclick=p20showDeleteMeshDialog() style=cursor:pointer>' + "Smazat skupinu" + '</a></span></div>'; }
|
||||||
|
|
||||||
QH('p20info', x);
|
QH('p20info', x);
|
||||||
}
|
}
|
||||||
@ -3167,7 +3167,7 @@
|
|||||||
if (xxdialogMode) return false;
|
if (xxdialogMode) return false;
|
||||||
var x = format("Are you sure you want to delete group {0}? Deleting the device group will also delete all information about devices within this group.", EscapeHtml(currentMesh.name)) + '<br /><br />';
|
var x = format("Are you sure you want to delete group {0}? Deleting the device group will also delete all information about devices within this group.", EscapeHtml(currentMesh.name)) + '<br /><br />';
|
||||||
x += '<label><input id=p20check type=checkbox onchange=p20validateDeleteMeshDialog() />' + "Confirm" + '</label>';
|
x += '<label><input id=p20check type=checkbox onchange=p20validateDeleteMeshDialog() />' + "Confirm" + '</label>';
|
||||||
setDialogMode(2, "Delete Group", 3, p20showDeleteMeshDialogEx, x);
|
setDialogMode(2, "Smazat skupinu", 3, p20showDeleteMeshDialogEx, x);
|
||||||
p20validateDeleteMeshDialog();
|
p20validateDeleteMeshDialog();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -3203,9 +3203,9 @@
|
|||||||
if (xxdialogMode) return;
|
if (xxdialogMode) return;
|
||||||
var x = addHtmlValue('User', '<input id=dp20username style=width:170px maxlength=32 onchange=p20validateAddMeshUserDialog() onkeyup=p20validateAddMeshUserDialog() />');
|
var x = addHtmlValue('User', '<input id=dp20username style=width:170px maxlength=32 onchange=p20validateAddMeshUserDialog() onkeyup=p20validateAddMeshUserDialog() />');
|
||||||
x += '<div style="border:2px groove gray;background-color:white;max-height:120px;overflow-y:scroll">';
|
x += '<div style="border:2px groove gray;background-color:white;max-height:120px;overflow-y:scroll">';
|
||||||
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20fulladmin>' + "Full Administrator" + '</label><br>';
|
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20fulladmin>' + "Hlavní administrátor" + '</label><br>';
|
||||||
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20editmesh>' + "Editovat skupinu zařízení" + '</label><br>';
|
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20editmesh>' + "Editovat skupinu zařízení" + '</label><br>';
|
||||||
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20manageusers>' + "Manage Device Group Users" + '</label><br>';
|
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20manageusers>' + "Spravovat uživatele pro skupinu zařízení" + '</label><br>';
|
||||||
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20managecomputers>' + "Správa skupin zařízení" + '</label><br>';
|
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20managecomputers>' + "Správa skupin zařízení" + '</label><br>';
|
||||||
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20remotecontrol>' + "Remote Control" + '</label><br>';
|
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20remotecontrol>' + "Remote Control" + '</label><br>';
|
||||||
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20remoteview style=margin-left:12px>' + "Remote View Only" + '</label><br>';
|
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20remoteview style=margin-left:12px>' + "Remote View Only" + '</label><br>';
|
||||||
@ -3221,7 +3221,7 @@
|
|||||||
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20chatnotify>' + "Chat & Notify" + '</label><br>';
|
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20chatnotify>' + "Chat & Notify" + '</label><br>';
|
||||||
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20uninstall>' + "Uninstall Agent" + '</label><br>';
|
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20uninstall>' + "Uninstall Agent" + '</label><br>';
|
||||||
x += '</div>';
|
x += '</div>';
|
||||||
setDialogMode(2, "Add User to Mesh", 3, p20showAddMeshUserDialogEx, x);
|
setDialogMode(2, "Přidat uživatele do skupiny", 3, p20showAddMeshUserDialogEx, x);
|
||||||
p20validateAddMeshUserDialog();
|
p20validateAddMeshUserDialog();
|
||||||
Q('dp20username').focus();
|
Q('dp20username').focus();
|
||||||
}
|
}
|
||||||
@ -3277,12 +3277,12 @@
|
|||||||
if (xxdialogMode) return;
|
if (xxdialogMode) return;
|
||||||
userid = decodeURIComponent(userid);
|
userid = decodeURIComponent(userid);
|
||||||
var r = [], cmeshrights = currentMesh.links[userinfo._id].rights, meshrights = currentMesh.links[userid].rights;
|
var r = [], cmeshrights = currentMesh.links[userinfo._id].rights, meshrights = currentMesh.links[userid].rights;
|
||||||
if (meshrights == 0xFFFFFFFF) r.push("Full Administrator"); else {
|
if (meshrights == 0xFFFFFFFF) r.push("Hlavní administrátor"); else {
|
||||||
if ((meshrights & 1) != 0) r.push("Editovat skupinu zařízení");
|
if ((meshrights & 1) != 0) r.push("Editovat skupinu zařízení");
|
||||||
if ((meshrights & 2) != 0) r.push("Manage Device Group Users");
|
if ((meshrights & 2) != 0) r.push("Spravovat uživatele pro skupinu zařízení");
|
||||||
if ((meshrights & 4) != 0) r.push("Správa skupin zařízení");
|
if ((meshrights & 4) != 0) r.push("Správa skupin zařízení");
|
||||||
if ((meshrights & 8) != 0) r.push("Remote Control");
|
if ((meshrights & 8) != 0) r.push("Remote Control");
|
||||||
if ((meshrights & 16) != 0) r.push("Agent Console");
|
if ((meshrights & 16) != 0) r.push("Konzole agenta");
|
||||||
if ((meshrights & 32) != 0) r.push("Server Files");
|
if ((meshrights & 32) != 0) r.push("Server Files");
|
||||||
if ((meshrights & 64) != 0) r.push("Wake Devices");
|
if ((meshrights & 64) != 0) r.push("Wake Devices");
|
||||||
if ((meshrights & 128) != 0) r.push("Edit Notes");
|
if ((meshrights & 128) != 0) r.push("Edit Notes");
|
||||||
@ -3299,7 +3299,7 @@
|
|||||||
var buttons = 1, x = addHtmlValue("User", EscapeHtml(decodeURIComponent(userid.split('/')[2])));
|
var buttons = 1, x = addHtmlValue("User", EscapeHtml(decodeURIComponent(userid.split('/')[2])));
|
||||||
x += addHtmlValue("Práva", r.join(", "));
|
x += addHtmlValue("Práva", r.join(", "));
|
||||||
if (((userinfo._id) != userid) && (cmeshrights == 0xFFFFFFFF || (((cmeshrights & 2) != 0) && (meshrights != 0xFFFFFFFF)))) buttons += 4;
|
if (((userinfo._id) != userid) && (cmeshrights == 0xFFFFFFFF || (((cmeshrights & 2) != 0) && (meshrights != 0xFFFFFFFF)))) buttons += 4;
|
||||||
setDialogMode(2, "Device Group User", buttons, p20viewuserEx, x, userid);
|
setDialogMode(2, "Uživatelé této skupiny zařízení", buttons, p20viewuserEx, x, userid);
|
||||||
}
|
}
|
||||||
|
|
||||||
function p20viewuserEx(button, userid) { if (button != 2) return; setDialogMode(2, "Remote Mesh User", 3, p20viewuserEx2, format("Confirm removal of user {0}?", userid.split('/')[2]), userid); }
|
function p20viewuserEx(button, userid) { if (button != 2) return; setDialogMode(2, "Remote Mesh User", 3, p20viewuserEx2, format("Confirm removal of user {0}?", userid.split('/')[2]), userid); }
|
||||||
|
@ -272,26 +272,26 @@
|
|||||||
<div id="p2AccountSecurity" style="display:none">
|
<div id="p2AccountSecurity" style="display:none">
|
||||||
<p><strong>Nastavení bezpečnosti</strong></p>
|
<p><strong>Nastavení bezpečnosti</strong></p>
|
||||||
<div style="margin-left:25px">
|
<div style="margin-left:25px">
|
||||||
<div id="manageAuthApp"><div class="p2AccountActions"><span id="authAppSetupCheck"><strong>✓</strong></span></div><span><a href="#" onclick="return account_manageAuthApp()">Manage authenticator app</a><br></span></div>
|
<div id="manageAuthApp"><div class="p2AccountActions"><span id="authAppSetupCheck"><strong>✓</strong></span></div><span><a href="#" onclick="return account_manageAuthApp()">Spravovat autentizační aplikace</a><br></span></div>
|
||||||
<div id="manageHardwareOtp"><div class="p2AccountActions"><span id="authKeySetupCheck"><strong>✓</strong></span></div><span><a href="#" onclick="return account_manageHardwareOtp(0)">Manage security keys</a><br></span></div>
|
<div id="manageHardwareOtp"><div class="p2AccountActions"><span id="authKeySetupCheck"><strong>✓</strong></span></div><span><a href="#" onclick="return account_manageHardwareOtp(0)">Spravovat bezpečnostní klíče</a><br></span></div>
|
||||||
<div id="manageOtp"><div class="p2AccountActions"><span id="authCodesSetupCheck"><strong>✓</strong></span></div><span><a href="#" onclick="return account_manageOtp(0)">Manage backup codes</a><br></span></div>
|
<div id="manageOtp"><div class="p2AccountActions"><span id="authCodesSetupCheck"><strong>✓</strong></span></div><span><a href="#" onclick="return account_manageOtp(0)">Manage backup codes</a><br></span></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="p2AccountActions">
|
<div id="p2AccountActions">
|
||||||
<p><strong>Account actions</strong></p>
|
<p><strong>Akce účtu</strong></p>
|
||||||
<p class="mL">
|
<p class="mL">
|
||||||
<span id="verifyEmailId" style="display:none"><a href="#" onclick="return account_showVerifyEmail()">Verify email</a><br></span>
|
<span id="verifyEmailId" style="display:none"><a href="#" onclick="return account_showVerifyEmail()">Ověřit email</a><br></span>
|
||||||
<span id="accountEnableNotificationsSpan" style="display:none"><a href="#" onclick="return account_enableNotifications()">Zapnout notifikace prohlížeče</a><br></span>
|
<span id="accountEnableNotificationsSpan" style="display:none"><a href="#" onclick="return account_enableNotifications()">Zapnout notifikace prohlížeče</a><br></span>
|
||||||
<a href="#" onclick="return account_showLocalizationSettings()">Localization Settings</a><br>
|
<a href="#" onclick="return account_showLocalizationSettings()">Nastavení lokalizace</a><br>
|
||||||
<a href="#" onclick="return account_showAccountNotifySettings()">Notification Settings</a><br>
|
<a href="#" onclick="return account_showAccountNotifySettings()">Nastavení notifikací</a><br>
|
||||||
<span id="accountChangeEmailAddressSpan" style="display:none"><a href="#" onclick="return account_showChangeEmail()">Change email address</a><br></span>
|
<span id="accountChangeEmailAddressSpan" style="display:none"><a href="#" onclick="return account_showChangeEmail()">Změnit emailovou adresu</a><br></span>
|
||||||
<a href="#" onclick="return account_showChangePassword()">Změnit heslo</a><span id="p2nextPasswordUpdateTime"></span><br>
|
<a href="#" onclick="return account_showChangePassword()">Změnit heslo</a><span id="p2nextPasswordUpdateTime"></span><br>
|
||||||
<a href="#" onclick="return account_showDeleteAccount()">Smazat účet</a><br>
|
<a href="#" onclick="return account_showDeleteAccount()">Smazat účet</a><br>
|
||||||
</p>
|
</p>
|
||||||
<br style="clear:both">
|
<br style="clear:both">
|
||||||
</div>
|
</div>
|
||||||
<strong>Device Groups</strong>
|
<strong>Skupiny zařízení</strong>
|
||||||
<span id="p2createMeshLink1">( <a href="#" onclick="return account_createMesh()" class="newMeshBtn"> New</a> )</span>
|
<span id="p2createMeshLink1">( <a href="#" onclick="return account_createMesh()" class="newMeshBtn"> Vytvořit</a> )</span>
|
||||||
<br><br>
|
<br><br>
|
||||||
<div id="p2meshes"></div>
|
<div id="p2meshes"></div>
|
||||||
<div id="p2noMeshFound" style="display:none">No device groups.<span id="p2createMeshLink2"> <a href="#" onclick="return account_createMesh()"><strong>Get started here!</strong></a></span></div>
|
<div id="p2noMeshFound" style="display:none">No device groups.<span id="p2createMeshLink2"> <a href="#" onclick="return account_createMesh()"><strong>Get started here!</strong></a></span></div>
|
||||||
@ -697,7 +697,7 @@
|
|||||||
<td class="areaHead">
|
<td class="areaHead">
|
||||||
<div class="toright2">
|
<div class="toright2">
|
||||||
<div id="p15coreName" title="Information about current core running on this agent"></div>
|
<div id="p15coreName" title="Information about current core running on this agent"></div>
|
||||||
<input type="button" id="p15uploadCore" value="Agent Action" onclick="p15uploadCore(event)" title="Change the agent Java Script code module">
|
<input type="button" id="p15uploadCore" value="Akce agenta" onclick="p15uploadCore(event)" title="Change the agent Java Script code module">
|
||||||
<img onclick="p15downloadConsoleText()" style="cursor:pointer;margin-top:6px" title="Download console text" src="images/link4.png">
|
<img onclick="p15downloadConsoleText()" style="cursor:pointer;margin-top:6px" title="Download console text" src="images/link4.png">
|
||||||
</div>
|
</div>
|
||||||
<div id="p15statetext"></div>
|
<div id="p15statetext"></div>
|
||||||
@ -884,7 +884,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<table id="p42tbl">
|
<table id="p42tbl">
|
||||||
<tbody><tr class="DevSt"><th style="width:26px"></th><th style="width:10px"></th><th class="chName">Jméno</th><th class="chDescription">Popis</th><th class="chSite" style="text-align:center">Link</th><th class="chVersion" style="text-align:center">Version</th><th class="chUpgradeAvail" style="text-align:center">Latest</th><th class="chStatus" style="text-align:center">Status</th><th class="chAction" style="text-align:center">Action</th><th style="width:10px"></th></tr>
|
<tbody><tr class="DevSt"><th style="width:26px"></th><th style="width:10px"></th><th class="chName">Jméno</th><th class="chDescription">Popis</th><th class="chSite" style="text-align:center">Link</th><th class="chVersion" style="text-align:center">Verze</th><th class="chUpgradeAvail" style="text-align:center">Latest</th><th class="chStatus" style="text-align:center">Status</th><th class="chAction" style="text-align:center">Akce</th><th style="width:10px"></th></tr>
|
||||||
</tbody></table>
|
</tbody></table>
|
||||||
<div id="pluginNoneNotice" style="width:100%;text-align:center;padding-top:10px;display:none"><i>No plugins on server.</i></div>
|
<div id="pluginNoneNotice" style="width:100%;text-align:center;padding-top:10px;display:none"><i>No plugins on server.</i></div>
|
||||||
</div>
|
</div>
|
||||||
@ -903,7 +903,7 @@
|
|||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div class="footer1">{{{footer}}}</div>
|
<div class="footer1">{{{footer}}}</div>
|
||||||
<div class="footer2">
|
<div class="footer2">
|
||||||
<a id="verifyEmailId2" style="display:none" href="#" onclick="account_showVerifyEmail()">Ověřit Email</a>
|
<a id="verifyEmailId2" style="display:none" href="#" onclick="account_showVerifyEmail()">Ověřit email</a>
|
||||||
<a href="terms">Terms & Privacy</a>
|
<a href="terms">Terms & Privacy</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -1087,7 +1087,7 @@
|
|||||||
|
|
||||||
// Setup logout control
|
// Setup logout control
|
||||||
var logoutControl = '';
|
var logoutControl = '';
|
||||||
if (logoutControls.name != null) { logoutControl = format("Welcome {0}.", logoutControls.name); }
|
if (logoutControls.name != null) { logoutControl = format("Vítejte {0}.", logoutControls.name); }
|
||||||
if (logoutControls.logoutUrl != null) { logoutControl += format(' <a href=\"' + logoutControls.logoutUrl + '\" style="color:white">' + "Odhlásit" + '</a>'); }
|
if (logoutControls.logoutUrl != null) { logoutControl += format(' <a href=\"' + logoutControls.logoutUrl + '\" style="color:white">' + "Odhlásit" + '</a>'); }
|
||||||
QH('logoutControlSpan', logoutControl);
|
QH('logoutControlSpan', logoutControl);
|
||||||
|
|
||||||
@ -1456,12 +1456,12 @@
|
|||||||
QV('getStarted2', !newGroupsAllowed);
|
QV('getStarted2', !newGroupsAllowed);
|
||||||
|
|
||||||
if (typeof userinfo.passchange == 'number') {
|
if (typeof userinfo.passchange == 'number') {
|
||||||
if (userinfo.passchange == -1) { QH('p2nextPasswordUpdateTime', " - Reset on next login."); }
|
if (userinfo.passchange == -1) { QH('p2nextPasswordUpdateTime', " - Reset při příštím přihlášení."); }
|
||||||
else if ((passRequirements != null) && (typeof passRequirements.reset == 'number')) {
|
else if ((passRequirements != null) && (typeof passRequirements.reset == 'number')) {
|
||||||
var seconds = (userinfo.passchange) + (passRequirements.reset * 86400) - Math.floor(Date.now() / 1000);
|
var seconds = (userinfo.passchange) + (passRequirements.reset * 86400) - Math.floor(Date.now() / 1000);
|
||||||
if (seconds < 0) { QH('p2nextPasswordUpdateTime', " - Reset on next login."); }
|
if (seconds < 0) { QH('p2nextPasswordUpdateTime', " - Reset při příštím přihlášení."); }
|
||||||
else if (seconds < 3600) { QH('p2nextPasswordUpdateTime', format(" - Reset in {0} minute{1}.", Math.floor(seconds / 60), addLetterS(Math.floor(seconds / 60)))); }
|
else if (seconds < 3600) { QH('p2nextPasswordUpdateTime', format(" - Reset v {0} minut{1}.", Math.floor(seconds / 60), addLetterS(Math.floor(seconds / 60)))); }
|
||||||
else if (seconds < 86400) { QH('p2nextPasswordUpdateTime', format(" - Reset in {0} hour{1}.", Math.floor(seconds / 3600), addLetterS(Math.floor(seconds / 3600)))); }
|
else if (seconds < 86400) { QH('p2nextPasswordUpdateTime', format(" - Reset v {0} hodin{1}.", Math.floor(seconds / 3600), addLetterS(Math.floor(seconds / 3600)))); }
|
||||||
else { QH('p2nextPasswordUpdateTime', format(" - Reset v {0} den{1}."), Math.floor(seconds / 86400), addLetterS(Math.floor(seconds / 86400))); }
|
else { QH('p2nextPasswordUpdateTime', format(" - Reset v {0} den{1}."), Math.floor(seconds / 86400), addLetterS(Math.floor(seconds / 86400))); }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1508,7 +1508,7 @@
|
|||||||
case 'serverwarnings': {
|
case 'serverwarnings': {
|
||||||
if ((message.warnings != null) && (message.warnings.length > 0)) {
|
if ((message.warnings != null) && (message.warnings.length > 0)) {
|
||||||
var x = '';
|
var x = '';
|
||||||
for (var i in message.warnings) { x += '<div style=color:red;padding-bottom:6px><b>' + "WARNING: " + message.warnings[i] + '</b></div>'; }
|
for (var i in message.warnings) { x += '<div style=color:red;padding-bottom:6px><b>' + "UPOZORNĚNÍ: " + message.warnings[i] + '</b></div>'; }
|
||||||
QH('serverWarnings', x);
|
QH('serverWarnings', x);
|
||||||
QV('serverWarningsDiv', true);
|
QV('serverWarningsDiv', true);
|
||||||
}
|
}
|
||||||
@ -1604,16 +1604,16 @@
|
|||||||
var ident = message.hardware.identifiers;
|
var ident = message.hardware.identifiers;
|
||||||
// BIOS
|
// BIOS
|
||||||
x += '<div class=DevSt style=margin-bottom:3px><b>' + "BIOS" + '</b></div>';
|
x += '<div class=DevSt style=margin-bottom:3px><b>' + "BIOS" + '</b></div>';
|
||||||
if (ident.bios_vendor) { x += addDetailItem("Vendor", ident.bios_vendor, s); }
|
if (ident.bios_vendor) { x += addDetailItem("Výrobce", ident.bios_vendor, s); }
|
||||||
if (ident.bios_version) { x += addDetailItem("Version", ident.bios_version, s); }
|
if (ident.bios_version) { x += addDetailItem("Verze", ident.bios_version, s); }
|
||||||
x += '<br />';
|
x += '<br />';
|
||||||
|
|
||||||
// Motherboard
|
// Motherboard
|
||||||
x += '<div class=DevSt style=margin-bottom:3px><b>' + "Motherboard" + '</b></div>';
|
x += '<div class=DevSt style=margin-bottom:3px><b>' + "Motherboard" + '</b></div>';
|
||||||
if (ident.board_vendor) { x += addDetailItem("Vendor", ident.board_vendor, s); }
|
if (ident.board_vendor) { x += addDetailItem("Výrobce", ident.board_vendor, s); }
|
||||||
if (ident.board_name) { x += addDetailItem("Jméno", ident.board_name, s); }
|
if (ident.board_name) { x += addDetailItem("Jméno", ident.board_name, s); }
|
||||||
if (ident.board_serial && (ident.board_serial != '')) { x += addDetailItem("Serial", ident.board_serial, s); }
|
if (ident.board_serial && (ident.board_serial != '')) { x += addDetailItem("Serial", ident.board_serial, s); }
|
||||||
if (ident.board_version) { x += addDetailItem("Version", ident.board_version, s); }
|
if (ident.board_version) { x += addDetailItem("Verze", ident.board_version, s); }
|
||||||
if (ident.product_uuid) { x += addDetailItem("Identifier", ident.product_uuid, s); }
|
if (ident.product_uuid) { x += addDetailItem("Identifier", ident.product_uuid, s); }
|
||||||
x += '<br />';
|
x += '<br />';
|
||||||
}
|
}
|
||||||
@ -1645,7 +1645,7 @@
|
|||||||
var m = message.hardware.windows.osinfo;
|
var m = message.hardware.windows.osinfo;
|
||||||
x += '<div class=DevSt style=margin-bottom:3px><b>' + "Operační systém" + '</b></div>';
|
x += '<div class=DevSt style=margin-bottom:3px><b>' + "Operační systém" + '</b></div>';
|
||||||
if (m.Caption) { x += addDetailItem("Jméno", m.Caption, s); }
|
if (m.Caption) { x += addDetailItem("Jméno", m.Caption, s); }
|
||||||
if (m.Version) { x += addDetailItem("Version", m.Version, s); }
|
if (m.Version) { x += addDetailItem("Verze", m.Version, s); }
|
||||||
if (m.OSArchitecture) { x += addDetailItem("Architektura", m.OSArchitecture, s); }
|
if (m.OSArchitecture) { x += addDetailItem("Architektura", m.OSArchitecture, s); }
|
||||||
x += '<br />';
|
x += '<br />';
|
||||||
}
|
}
|
||||||
@ -1835,12 +1835,12 @@
|
|||||||
}
|
}
|
||||||
case 'otpauth-setup': {
|
case 'otpauth-setup': {
|
||||||
if (xxdialogMode) return;
|
if (xxdialogMode) return;
|
||||||
setDialogMode(2, "Authenticator App", 1, null, message.success ? ('<b style=color:green>' + "Authenticator app activation successful." + '</b> ' + "You will now need a valid token to login again.") : ('<b style=color:red>' + "2-step login activation failed." + '</b> ' + "Clear the secret from the application and try again. You only have a few minutes to enter the proper code."));
|
setDialogMode(2, "Authenticator App", 1, null, message.success ? ('<b style=color:green>' + "Authenticator app activation successful." + '</b> ' + "You will now need a valid token to login again.") : ('<b style=color:red>' + "aktivace 2-faktorového přihlašování selhalo." + '</b> ' + "Clear the secret from the application and try again. You only have a few minutes to enter the proper code."));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'otpauth-clear': {
|
case 'otpauth-clear': {
|
||||||
if (xxdialogMode) return;
|
if (xxdialogMode) return;
|
||||||
setDialogMode(2, "Authenticator App", 1, null, message.success ? ('<b>' + "Authenticator application removed." + '</b> ' + "You can reactivate this feature at any time.") : ('<b style=color:red>' + "2-step login activation removal failed." + '</b> ' + "Zkusit znovu."));
|
setDialogMode(2, "Authenticator App", 1, null, message.success ? ('<b>' + "Authenticator application removed." + '</b> ' + "You can reactivate this feature at any time.") : ('<b style=color:red>' + "odstranění 2-faktorového přihlašování selhalo." + '</b> ' + "Zkusit znovu."));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'otpauth-getpasswords': {
|
case 'otpauth-getpasswords': {
|
||||||
@ -1879,7 +1879,7 @@
|
|||||||
if (xxdialogMode && (xxdialogTag != 'otpauth-hardware-manage')) return;
|
if (xxdialogMode && (xxdialogTag != 'otpauth-hardware-manage')) return;
|
||||||
var start = '<div style="border-radius:6px;border:2px solid #CCC;background-color:#BBB;width:100%;box-sizing:border-box;margin-bottom:6px"><div style="margin:3px;font-family:Arial, Helvetica, sans-serif;font-size:16px;font-weight:bold"><table style=width:100%;text-align:left>';
|
var start = '<div style="border-radius:6px;border:2px solid #CCC;background-color:#BBB;width:100%;box-sizing:border-box;margin-bottom:6px"><div style="margin:3px;font-family:Arial, Helvetica, sans-serif;font-size:16px;font-weight:bold"><table style=width:100%;text-align:left>';
|
||||||
var end = '</table></div></div>';
|
var end = '</table></div></div>';
|
||||||
var x = "<a href=\"https://www.yubico.com/\" rel=\"noreferrer noopener\" target=\"_blank\">Hardware keys</a> are used as secondary login authentication.";
|
var x = "<a href=\"https://www.yubico.com/\" rel=\"noreferrer noopener\" target=\"_blank\">Hardwarové klíče</a> jsou použity jako druhá možnost autentizace.";
|
||||||
x += '<div style="max-height:150px;overflow-y:auto;overflow-x:hidden;margin-top:6px;margin-bottom:6px">';
|
x += '<div style="max-height:150px;overflow-y:auto;overflow-x:hidden;margin-top:6px;margin-bottom:6px">';
|
||||||
if (message.keys && message.keys.length > 0) {
|
if (message.keys && message.keys.length > 0) {
|
||||||
for (var i in message.keys) {
|
for (var i in message.keys) {
|
||||||
@ -1891,10 +1891,10 @@
|
|||||||
}
|
}
|
||||||
x += '</div>';
|
x += '</div>';
|
||||||
x += '<div><input type=button value="' + "Close" + '" onclick=setDialogMode(0) style=float:right></input>';
|
x += '<div><input type=button value="' + "Close" + '" onclick=setDialogMode(0) style=float:right></input>';
|
||||||
if ((features & 0x00020000) != 0) { x += '<input id=d2addkey3 type=button value="' + "Add Key" + '" onclick="account_addhkey(3);"></input>'; }
|
if ((features & 0x00020000) != 0) { x += '<input id=d2addkey3 type=button value="' + "Přidat klíč" + '" onclick="account_addhkey(3);"></input>'; }
|
||||||
if ((features & 0x00004000) != 0) { x += '<input id=d2addkey2 type=button value="' + "Add YubiKey® OTP" + '" onclick="account_addhkey(2);"></input>'; }
|
if ((features & 0x00004000) != 0) { x += '<input id=d2addkey2 type=button value="' + "Přidat YubiKey® OTP" + '" onclick="account_addhkey(2);"></input>'; }
|
||||||
x += '</div><br />';
|
x += '</div><br />';
|
||||||
setDialogMode(2, "Manage Security Keys", 8, null, x, 'otpauth-hardware-manage');
|
setDialogMode(2, "Spravovat bezpečnostní klíče", 8, null, x, 'otpauth-hardware-manage');
|
||||||
if (u2fSupported() == false) { QE('d2addkey1', false); }
|
if (u2fSupported() == false) { QE('d2addkey1', false); }
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1902,7 +1902,7 @@
|
|||||||
if (message.result) {
|
if (message.result) {
|
||||||
meshserver.send({ action: 'otp-hkey-get' }); // Success, ask for the full list of keys.
|
meshserver.send({ action: 'otp-hkey-get' }); // Success, ask for the full list of keys.
|
||||||
} else {
|
} else {
|
||||||
setDialogMode(2, "Add Security Key", 1, null, '<br />' + "Error, Unable to add key." + '<br /><br />');
|
setDialogMode(2, "Přidat bezpečnostní klíč", 1, null, '<br />' + "Error, Unable to add key." + '<br /><br />');
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1911,14 +1911,14 @@
|
|||||||
if (message.result == true) {
|
if (message.result == true) {
|
||||||
meshserver.send({ action: 'otp-hkey-get' }); // Success, ask for the full list of keys.
|
meshserver.send({ action: 'otp-hkey-get' }); // Success, ask for the full list of keys.
|
||||||
} else {
|
} else {
|
||||||
setDialogMode(2, "Add Security Key", 1, null, '<br />' + "ERROR: Unable to add key." + '<br /><br />', 'otpauth-hardware-manage');
|
setDialogMode(2, "Přidat bezpečnostní klíč", 1, null, '<br />' + "ERROR: Unable to add key." + '<br /><br />', 'otpauth-hardware-manage');
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'webauthn-startregister': {
|
case 'webauthn-startregister': {
|
||||||
if (xxdialogMode && (xxdialogTag != 'otpauth-hardware-manage')) return;
|
if (xxdialogMode && (xxdialogTag != 'otpauth-hardware-manage')) return;
|
||||||
var x = "Press the key button now." + '<br /><br /><div style=width:100%;text-align:center><img width=120 height=117 src="images/hardware-keypress-120.png" /></div><input id=dp1keyname style=display:none value=' + message.name + ' />';
|
var x = "Press the key button now." + '<br /><br /><div style=width:100%;text-align:center><img width=120 height=117 src="images/hardware-keypress-120.png" /></div><input id=dp1keyname style=display:none value=' + message.name + ' />';
|
||||||
setDialogMode(2, "Add Security Key", 2, null, x);
|
setDialogMode(2, "Přidat bezpečnostní klíč", 2, null, x);
|
||||||
|
|
||||||
var publicKey = message.request;
|
var publicKey = message.request;
|
||||||
message.request.challenge = Uint8Array.from(atob(message.request.challenge), function (c) { return c.charCodeAt(0) })
|
message.request.challenge = Uint8Array.from(atob(message.request.challenge), function (c) { return c.charCodeAt(0) })
|
||||||
@ -1931,7 +1931,7 @@
|
|||||||
setDialogMode(0);
|
setDialogMode(0);
|
||||||
}, function(error) {
|
}, function(error) {
|
||||||
// Error
|
// Error
|
||||||
setDialogMode(2, "Add Security Key", 1, null, "ERROR: " + error);
|
setDialogMode(2, "Přidat bezpečnostní klíč", 1, null, "ERROR: " + error);
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -2244,7 +2244,7 @@
|
|||||||
if (((node.conn & 16) == 0) && ((message.event.conn & 16) != 0)) { addNotification({ text: "MQTT připojeno", title: node.name, icon: node.icon, nodeid: node._id }); }
|
if (((node.conn & 16) == 0) && ((message.event.conn & 16) != 0)) { addNotification({ text: "MQTT připojeno", title: node.name, icon: node.icon, nodeid: node._id }); }
|
||||||
}
|
}
|
||||||
if (n & 4) {
|
if (n & 4) {
|
||||||
if (((node.conn & 1) != 0) && ((message.event.conn & 1) == 0)) { addNotification({ text: "Agent disconnected", title: node.name, icon: node.icon, nodeid: node._id }); }
|
if (((node.conn & 1) != 0) && ((message.event.conn & 1) == 0)) { addNotification({ text: "Agent odpojen", title: node.name, icon: node.icon, nodeid: node._id }); }
|
||||||
if (((node.conn & 2) != 0) && ((message.event.conn & 2) == 0)) { addNotification({ text: "Intel AMT not detected", title: node.name, icon: node.icon, nodeid: node._id }); }
|
if (((node.conn & 2) != 0) && ((message.event.conn & 2) == 0)) { addNotification({ text: "Intel AMT not detected", title: node.name, icon: node.icon, nodeid: node._id }); }
|
||||||
if (((node.conn & 4) != 0) && ((message.event.conn & 4) == 0)) { addNotification({ text: "Intel AMT CIRA disconnected", title: node.name, icon: node.icon, nodeid: node._id }); }
|
if (((node.conn & 4) != 0) && ((message.event.conn & 4) == 0)) { addNotification({ text: "Intel AMT CIRA disconnected", title: node.name, icon: node.icon, nodeid: node._id }); }
|
||||||
if (((node.conn & 16) != 0) && ((message.event.conn & 16) == 0)) { addNotification({ text: "MQTT disconnected", title: node.name, icon: node.icon, nodeid: node._id }); }
|
if (((node.conn & 16) != 0) && ((message.event.conn & 16) == 0)) { addNotification({ text: "MQTT disconnected", title: node.name, icon: node.icon, nodeid: node._id }); }
|
||||||
@ -2293,7 +2293,7 @@
|
|||||||
var r = message.event.results[i], shortname = r.hostname;
|
var r = message.event.results[i], shortname = r.hostname;
|
||||||
if (shortname.length > 20) { shortname = shortname.substring(0, 20) + '...'; }
|
if (shortname.length > 20) { shortname = shortname.substring(0, 20) + '...'; }
|
||||||
var str = '<b title="' + EscapeHtml(r.hostname) + '">' + EscapeHtml(shortname) + '</b> - v' + r.ver;
|
var str = '<b title="' + EscapeHtml(r.hostname) + '">' + EscapeHtml(shortname) + '</b> - v' + r.ver;
|
||||||
if (r.state == 2) { if (r.tls == 1) { str += " with TLS."; } else { str += " bez TLS."; } } else { str += ' not activated.'; }
|
if (r.state == 2) { if (r.tls == 1) { str += " s TLS."; } else { str += " bez TLS."; } } else { str += ' not activated.'; }
|
||||||
x += '<div style=width:100%;margin-bottom:2px;background-color:lightgray><div style=padding:4px><div style=display:inline-block;margin-right:5px><input class=DevScanCheckbox name=dp1checkbox tag="' + EscapeHtml(i) + '" type=checkbox onclick=addAmtScanToMeshCheckbox() /></div><div class=j1 style=display:inline-block></div><div style=display:inline-block;margin-left:5px;overflow-x:auto;white-space:nowrap>' + str + '</div></div></div>';
|
x += '<div style=width:100%;margin-bottom:2px;background-color:lightgray><div style=padding:4px><div style=display:inline-block;margin-right:5px><input class=DevScanCheckbox name=dp1checkbox tag="' + EscapeHtml(i) + '" type=checkbox onclick=addAmtScanToMeshCheckbox() /></div><div class=j1 style=display:inline-block></div><div style=display:inline-block;margin-left:5px;overflow-x:auto;white-space:nowrap>' + str + '</div></div></div>';
|
||||||
}
|
}
|
||||||
// If no results where found, display a nice message
|
// If no results where found, display a nice message
|
||||||
@ -2666,7 +2666,7 @@
|
|||||||
deviceHeaderSet();
|
deviceHeaderSet();
|
||||||
var extra = '';
|
var extra = '';
|
||||||
if (view == 2) { r += '<tr><td colspan=5>'; }
|
if (view == 2) { r += '<tr><td colspan=5>'; }
|
||||||
if (meshes[node.meshid].mtype == 1) { extra = '<span class=devHeaderx>' + ", Intel® AMT only" + '</span>'; }
|
if (meshes[node.meshid].mtype == 1) { extra = '<span class=devHeaderx>' + ", Intel® AMT pouze" + '</span>'; }
|
||||||
if ((view == 1) && (current != null)) { if (c == 2) { r += '<td><div style=width:301px></div></td>'; } if (r != '') { r += '</tr></table>'; } }
|
if ((view == 1) && (current != null)) { if (c == 2) { r += '<td><div style=width:301px></div></td>'; } if (r != '') { r += '</tr></table>'; } }
|
||||||
if (view == 2) { r += '<div>'; }
|
if (view == 2) { r += '<div>'; }
|
||||||
r += '<div class=DevSt style=width:100%;padding-top:4px><span style=float:right>';
|
r += '<div class=DevSt style=width:100%;padding-top:4px><span style=float:right>';
|
||||||
@ -3018,12 +3018,12 @@
|
|||||||
if ((meshrights & 4) == 0) return '';
|
if ((meshrights & 4) == 0) return '';
|
||||||
var r = '';
|
var r = '';
|
||||||
if ((features & 1024) == 0) { // If CIRA is allowed
|
if ((features & 1024) == 0) { // If CIRA is allowed
|
||||||
r += ' <a href=# style=cursor:pointer;font-size:10px title=\"' + "Add a new Intel® AMT computer that is located on the internet." + '\" onclick=\'return addCiraDeviceToMesh(\"' + mesh._id + '\")\'>' + "Přidat CIRA" + '</a>';
|
r += ' <a href=# style=cursor:pointer;font-size:10px title=\"' + "Přidat nový Intel® AMT počítač, který je umístěn v síti Internet." + '\" onclick=\'return addCiraDeviceToMesh(\"' + mesh._id + '\")\'>' + "Přidat CIRA" + '</a>';
|
||||||
}
|
}
|
||||||
if (mesh.mtype == 1) {
|
if (mesh.mtype == 1) {
|
||||||
if ((features & 1) == 0) { // If not WAN-Only
|
if ((features & 1) == 0) { // If not WAN-Only
|
||||||
r += ' <a href=# style=cursor:pointer;font-size:10px title=\"' + "Add a new Intel® AMT computer that is located on the local network." + '\" onclick=\'return addDeviceToMesh(\"' + mesh._id + '\")\'>' + "Add Local" + '</a>';
|
r += ' <a href=# style=cursor:pointer;font-size:10px title=\"' + "Přidat nový Intel® AMT počítač, který je umístěn v lokální síti." + '\" onclick=\'return addDeviceToMesh(\"' + mesh._id + '\")\'>' + "Přidat lokálně" + '</a>';
|
||||||
r += ' <a href=# style=cursor:pointer;font-size:10px title=\"' + "Add a new Intel® AMT computer by scanning the local network." + '\" onclick=\'return addAmtScanToMesh(\"' + mesh._id + '\")\'>' + "Scan Network" + '</a>';
|
r += ' <a href=# style=cursor:pointer;font-size:10px title=\"' + "Přidat nový Intel® AMT počítač pomocí skenu lokální sítě." + '\" onclick=\'return addAmtScanToMesh(\"' + mesh._id + '\")\'>' + "Scan Network" + '</a>';
|
||||||
}
|
}
|
||||||
if (mesh.amt && (mesh.amt.type == 2)) { // CCM activation
|
if (mesh.amt && (mesh.amt.type == 2)) { // CCM activation
|
||||||
r += ' <a href=# style=cursor:pointer;font-size:10px title=\"' + "Perform Intel AMT client control mode (CCM) activation." + '\" onclick=\'return showCcmActivation(\"' + mesh._id + '\")\'>' + "Aktivace" + '</a>';
|
r += ' <a href=# style=cursor:pointer;font-size:10px title=\"' + "Perform Intel AMT client control mode (CCM) activation." + '\" onclick=\'return showCcmActivation(\"' + mesh._id + '\")\'>' + "Aktivace" + '</a>';
|
||||||
@ -3032,7 +3032,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (mesh.mtype == 2) {
|
if (mesh.mtype == 2) {
|
||||||
r += ' <a href=# style=cursor:pointer;font-size:10px title=\"' + "Add a new computer to this mesh by installing the mesh agent." + '\" onclick=\'return addAgentToMesh(\"' + mesh._id + '\")\'>' + "Přidat agenta" + '</a>';
|
r += ' <a href=# style=cursor:pointer;font-size:10px title=\"' + "Přidat nový počítač pomocí agenta." + '\" onclick=\'return addAgentToMesh(\"' + mesh._id + '\")\'>' + "Přidat agenta" + '</a>';
|
||||||
if ((features & 2) == 0) { r += ' <a href=# style=cursor:pointer;font-size:10px title=\"' + "Pozvat kohokoliv k instalaci agenta pro vzdálené ovládání." + '\" onclick=\'return inviteAgentToMesh(\"' + mesh._id + '\")\'>' + "Pozvat" + '</a>'; }
|
if ((features & 2) == 0) { r += ' <a href=# style=cursor:pointer;font-size:10px title=\"' + "Pozvat kohokoliv k instalaci agenta pro vzdálené ovládání." + '\" onclick=\'return inviteAgentToMesh(\"' + mesh._id + '\")\'>' + "Pozvat" + '</a>'; }
|
||||||
}
|
}
|
||||||
return r;
|
return r;
|
||||||
@ -3041,13 +3041,13 @@
|
|||||||
function addDeviceToMesh(meshid) {
|
function addDeviceToMesh(meshid) {
|
||||||
if (xxdialogMode) return false;
|
if (xxdialogMode) return false;
|
||||||
var mesh = meshes[meshid];
|
var mesh = meshes[meshid];
|
||||||
var x = format("Add a new Intel® AMT device to device group \"{0}\".", EscapeHtml(mesh.name)) + '<br /><br />';
|
var x = format("Přidat nové Intel® AMT zařízení do skupiny \"{0}\".", EscapeHtml(mesh.name)) + '<br /><br />';
|
||||||
x += addHtmlValue("Device Name", '<input id=dp1devicename style=width:230px maxlength=32 autocomplete=off onchange=validateDeviceToMesh() onkeyup=validateDeviceToMesh() />');
|
x += addHtmlValue("Device Name", '<input id=dp1devicename style=width:230px maxlength=32 autocomplete=off onchange=validateDeviceToMesh() onkeyup=validateDeviceToMesh() />');
|
||||||
x += addHtmlValue("Hostname", '<input id=dp1hostname style=width:230px maxlength=32 autocomplete=off placeholder=\"' + "Same as device name" + '\" onchange=validateDeviceToMesh() onkeyup=validateDeviceToMesh() />');
|
x += addHtmlValue("Hostname", '<input id=dp1hostname style=width:230px maxlength=32 autocomplete=off placeholder=\"' + "Same as device name" + '\" onchange=validateDeviceToMesh() onkeyup=validateDeviceToMesh() />');
|
||||||
x += addHtmlValue("Uživatel", '<input id=dp1username style=width:230px maxlength=32 autocomplete=off placeholder=\"' + "admin" + '\" onchange=validateDeviceToMesh() onkeyup=validateDeviceToMesh() />');
|
x += addHtmlValue("Uživatel", '<input id=dp1username style=width:230px maxlength=32 autocomplete=off placeholder=\"' + "admin" + '\" onchange=validateDeviceToMesh() onkeyup=validateDeviceToMesh() />');
|
||||||
x += addHtmlValue("Heslo", '<input id=dp1password type=password style=width:230px autocomplete=off maxlength=32 onchange=validateDeviceToMesh() onkeyup=validateDeviceToMesh() />');
|
x += addHtmlValue("Heslo", '<input id=dp1password type=password style=width:230px autocomplete=off maxlength=32 onchange=validateDeviceToMesh() onkeyup=validateDeviceToMesh() />');
|
||||||
x += addHtmlValue("Bezpečnost", '<select id=dp1tls style=width:236px><option value=0>' + "Žádné TLS" + '</option><option value=1>' + "TLS vyžadováno" + '</option></select>');
|
x += addHtmlValue("Bezpečnost", '<select id=dp1tls style=width:236px><option value=0>' + "Žádné TLS" + '</option><option value=1>' + "TLS vyžadováno" + '</option></select>');
|
||||||
setDialogMode(2, "Add Intel® AMT device", 3, addDeviceToMeshEx, x, meshid);
|
setDialogMode(2, "Přidat Intel® AMT zařízení", 3, addDeviceToMeshEx, x, meshid);
|
||||||
validateDeviceToMesh();
|
validateDeviceToMesh();
|
||||||
Q('dp1devicename').focus();
|
Q('dp1devicename').focus();
|
||||||
return false;
|
return false;
|
||||||
@ -3163,7 +3163,7 @@
|
|||||||
|
|
||||||
// Setup CIRA with user/pass authentication (Somewhat difficult)
|
// Setup CIRA with user/pass authentication (Somewhat difficult)
|
||||||
x += '<div id=dlgAddCira1 style=display:none>' + format("To add a new Intel® AMT device to device group \"{0}\" with CIRA, load the following certificate as trusted root within Intel AMT", EscapeHtml(mesh.name));
|
x += '<div id=dlgAddCira1 style=display:none>' + format("To add a new Intel® AMT device to device group \"{0}\" with CIRA, load the following certificate as trusted root within Intel AMT", EscapeHtml(mesh.name));
|
||||||
if (serverinfo.mpspass) { x += (" and authenticate to the server using this username and password." + '<br /><br />'); } else { x += (" and authenticate to the server using this username and any password." + '<br /><br />'); }
|
if (serverinfo.mpspass) { x += (" a autentizovat se na serveru pomocí tohoto uživatelského jména a hesla." + '<br /><br />'); } else { x += (" a autentizovat se na serveru pomocí tohoto uživatelského jména a hesla." + '<br /><br />'); }
|
||||||
x += addHtmlValue("Root Certificate", '<a href=\"' + "MeshServerRootCert.cer" + '\" download>' + "Root Certificate File" + '</a>');
|
x += addHtmlValue("Root Certificate", '<a href=\"' + "MeshServerRootCert.cer" + '\" download>' + "Root Certificate File" + '</a>');
|
||||||
x += addHtmlValue("Uživatel", '<input style=width:230px readonly value="' + meshidx.substring(0, 16) + '" />');
|
x += addHtmlValue("Uživatel", '<input style=width:230px readonly value="' + meshidx.substring(0, 16) + '" />');
|
||||||
if (serverinfo.mpspass) { x += addHtmlValue("Heslo", '<input style=width:230px readonly value="' + EscapeHtml(serverinfo.mpspass) + '" />'); }
|
if (serverinfo.mpspass) { x += addHtmlValue("Heslo", '<input style=width:230px readonly value="' + EscapeHtml(serverinfo.mpspass) + '" />'); }
|
||||||
@ -3174,12 +3174,12 @@
|
|||||||
if ((features & 16) == 0) {
|
if ((features & 16) == 0) {
|
||||||
x += '<div id=dlgAddCira2 style=display:none>' + format("To add a new Intel® AMT device to device group \"{0}\" with CIRA, load the following certificate as trusted root within Intel AMT, authenticate using a client certificate with the following common name and connect to the following server.", EscapeHtml(mesh.name)) + '<br /><br />';
|
x += '<div id=dlgAddCira2 style=display:none>' + format("To add a new Intel® AMT device to device group \"{0}\" with CIRA, load the following certificate as trusted root within Intel AMT, authenticate using a client certificate with the following common name and connect to the following server.", EscapeHtml(mesh.name)) + '<br /><br />';
|
||||||
x += addHtmlValue("Root Certificate", '<a href="MeshServerRootCert.cer" download>' + "Root Certificate File" + '</a>');
|
x += addHtmlValue("Root Certificate", '<a href="MeshServerRootCert.cer" download>' + "Root Certificate File" + '</a>');
|
||||||
x += addHtmlValue("Organization", '<input style=width:230px readonly value="' + meshidx + '" />');
|
x += addHtmlValue("Organizace", '<input style=width:230px readonly value="' + meshidx + '" />');
|
||||||
if (serverinfo != null) { x += addHtmlValue("MPS Server", '<input style=width:230px readonly value="' + EscapeHtml(serverinfo.mpsname) + ':' + serverinfo.mpsport + '" />'); }
|
if (serverinfo != null) { x += addHtmlValue("MPS Server", '<input style=width:230px readonly value="' + EscapeHtml(serverinfo.mpsname) + ':' + serverinfo.mpsport + '" />'); }
|
||||||
x += '</div>';
|
x += '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
setDialogMode(2, "Add Intel® AMT CIRA device", 2, null, x, 'fileDownload');
|
setDialogMode(2, "Přidat Intel® AMT CIRA zařízení", 2, null, x, 'fileDownload');
|
||||||
Q('dlgAddCiraSel').focus();
|
Q('dlgAddCiraSel').focus();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -3268,15 +3268,15 @@
|
|||||||
// Windows agent install
|
// Windows agent install
|
||||||
//x += "<div id=agins_windows>To add a new computer to device group \"" + EscapeHtml(mesh.name) + "\", download the mesh agent and configuration file and install the agent on the computer to manage.<br /><br />";
|
//x += "<div id=agins_windows>To add a new computer to device group \"" + EscapeHtml(mesh.name) + "\", download the mesh agent and configuration file and install the agent on the computer to manage.<br /><br />";
|
||||||
x += '<div id=agins_windows>' + format("Pro přidání nového zařízení do skupiny \"{0}\", si stáhněte agenta a nainstalujte na zařízení, které chcete spravovat. Tento agent již obsahuje veškeré informace pro připojení na server.", EscapeHtml(mesh.name)) + '<br /><br />';
|
x += '<div id=agins_windows>' + format("Pro přidání nového zařízení do skupiny \"{0}\", si stáhněte agenta a nainstalujte na zařízení, které chcete spravovat. Tento agent již obsahuje veškeré informace pro připojení na server.", EscapeHtml(mesh.name)) + '<br /><br />';
|
||||||
x += addHtmlValue("Mesh Agent", '<a id=aginsw32lnk href="meshagents?id=3&meshid=' + meshid.split('/')[2] + '&installflags=0" download onclick="setDialogMode(0)" title=\"' + "32bit version of the MeshAgent" + '\">' + "Windows (.exe)" + '</a> <img src=images/link4.png height=10 width=10 title="Copy Windows 32bit agent URL to clipboard" style=cursor:pointer onclick=copyAgentUrl("meshagents?id=3&meshid=' + meshid.split('/')[2] + '&installflags=",1)>');
|
x += addHtmlValue("Mesh Agent", '<a id=aginsw32lnk href="meshagents?id=3&meshid=' + meshid.split('/')[2] + '&installflags=0" download onclick="setDialogMode(0)" title=\"' + "32bit verze MeshAgent" + '\">' + "Windows (.exe)" + '</a> <img src=images/link4.png height=10 width=10 title="Copy Windows 32bit agent URL to clipboard" style=cursor:pointer onclick=copyAgentUrl("meshagents?id=3&meshid=' + meshid.split('/')[2] + '&installflags=",1)>');
|
||||||
x += addHtmlValue("Mesh Agent", '<a id=aginsw64lnk href="meshagents?id=4&meshid=' + meshid.split('/')[2] + '&installflags=0" download onclick="setDialogMode(0)" title=\"' + "64bit version of the MeshAgent" + '\">' + "Windows x64 (.exe)" + '</a> <img src=images/link4.png height=10 width=10 title="Copy Windows 64bit agent URL to clipboard" style=cursor:pointer onclick=copyAgentUrl("meshagents?id=4&meshid=' + meshid.split('/')[2] + '&installflags=",1)>');
|
x += addHtmlValue("Mesh Agent", '<a id=aginsw64lnk href="meshagents?id=4&meshid=' + meshid.split('/')[2] + '&installflags=0" download onclick="setDialogMode(0)" title=\"' + "64bit verze MeshAgent" + '\">' + "Windows x64 (.exe)" + '</a> <img src=images/link4.png height=10 width=10 title="Copy Windows 64bit agent URL to clipboard" style=cursor:pointer onclick=copyAgentUrl("meshagents?id=4&meshid=' + meshid.split('/')[2] + '&installflags=",1)>');
|
||||||
if (debugmode > 0) { x += addHtmlValue("Settings File", '<a id=aginswmshlnk href="meshsettings?id=' + meshid.split('/')[2] + '&installflags=0" rel="noreferrer noopener" target="_blank">' + format("{0} settings (.msh)", EscapeHtml(mesh.name)) + '</a>'); }
|
if (debugmode > 0) { x += addHtmlValue("Settings File", '<a id=aginswmshlnk href="meshsettings?id=' + meshid.split('/')[2] + '&installflags=0" rel="noreferrer noopener" target="_blank">' + format("{0} settings (.msh)", EscapeHtml(mesh.name)) + '</a>'); }
|
||||||
x += '</div>';
|
x += '</div>';
|
||||||
|
|
||||||
// Linux agent install
|
// Linux agent install
|
||||||
x += '<div id=agins_linux style=display:none>' + format("Pro přidání do {0} spusťte následující příkaz. Je třeba spouštět pod rootem.", EscapeHtml(mesh.name)) + '<br />';
|
x += '<div id=agins_linux style=display:none>' + format("Pro přidání do {0} spusťte následující příkaz. Je třeba spouštět pod rootem.", EscapeHtml(mesh.name)) + '<br />';
|
||||||
x += '<textarea id=agins_linux_area rows=2 cols=20 readonly=readonly style=width:100%;resize:none;height:120px;overflow:scroll;font-size:12px readonly></textarea>';
|
x += '<textarea id=agins_linux_area rows=2 cols=20 readonly=readonly style=width:100%;resize:none;height:120px;overflow:scroll;font-size:12px readonly></textarea>';
|
||||||
x += '<div style=\'font-size:x-small\'>' + "* For BSD, run \"pkg install wget sudo bash\" first." + '</div></div>';
|
x += '<div style=\'font-size:x-small\'>' + "* Pro BSD, spusť \"pkg install wget sudo bash\" nejprve." + '</div></div>';
|
||||||
|
|
||||||
// MacOS agent install
|
// MacOS agent install
|
||||||
x += '<div id=agins_osx style=display:none>' + format("Pro přidání do skupiny \"{0}\", si musíte stáhnout agenta a nainstalovat ho na počítači, který chcete spravovat. Tento agent má všechny potřebné informace pro připojení již v sobě.", EscapeHtml(mesh.name)) + '<br /><br />';
|
x += '<div id=agins_osx style=display:none>' + format("Pro přidání do skupiny \"{0}\", si musíte stáhnout agenta a nainstalovat ho na počítači, který chcete spravovat. Tento agent má všechny potřebné informace pro připojení již v sobě.", EscapeHtml(mesh.name)) + '<br /><br />';
|
||||||
@ -3285,8 +3285,8 @@
|
|||||||
|
|
||||||
// Windows agent uninstall
|
// Windows agent uninstall
|
||||||
x += '<div id=agins_windows_un style=display:none>' + "Pro odstranění agenta si stáhněte soubor níže, spusťte tento soubor a zvolte \"uninstall\"." + '<br /><br />';
|
x += '<div id=agins_windows_un style=display:none>' + "Pro odstranění agenta si stáhněte soubor níže, spusťte tento soubor a zvolte \"uninstall\"." + '<br /><br />';
|
||||||
x += addHtmlValue("Mesh Agent", '<a href="meshagents?id=3" download onclick="setDialogMode(0)" title="' + "32bit version of the MeshAgent" + '">' + "Windows (.exe)" + '</a>');
|
x += addHtmlValue("Mesh Agent", '<a href="meshagents?id=3" download onclick="setDialogMode(0)" title="' + "32bit verze MeshAgent" + '">' + "Windows (.exe)" + '</a>');
|
||||||
x += addHtmlValue("Mesh Agent", '<a href="meshagents?id=4" download onclick="setDialogMode(0)" title="' + "64bit version of the MeshAgent" + '">' + "Windows x64 (.exe)" + '</a>');
|
x += addHtmlValue("Mesh Agent", '<a href="meshagents?id=4" download onclick="setDialogMode(0)" title="' + "64bit verze MeshAgent" + '">' + "Windows x64 (.exe)" + '</a>');
|
||||||
x += '</div>';
|
x += '</div>';
|
||||||
|
|
||||||
// Linux agent uninstall
|
// Linux agent uninstall
|
||||||
@ -3373,7 +3373,7 @@
|
|||||||
|
|
||||||
function deviceHeaderSet() {
|
function deviceHeaderSet() {
|
||||||
if (deviceHeaderId == 0) { deviceHeaderId = 1; return; }
|
if (deviceHeaderId == 0) { deviceHeaderId = 1; return; }
|
||||||
deviceHeaders['DevxHeader' + deviceHeaderId] = ((deviceHeaderTotal == 1) ? "1 node" : format("{0} zařízení", deviceHeaderTotal));
|
deviceHeaders['DevxHeader' + deviceHeaderId] = ((deviceHeaderTotal == 1) ? "1 nód" : format("{0} zařízení", deviceHeaderTotal));
|
||||||
//var title = '';
|
//var title = '';
|
||||||
//for (x in deviceHeaderCount) { if (title.length > 0) title += ', '; title += deviceHeaderCount[x] + ' ' + PowerStateStr2(x); }
|
//for (x in deviceHeaderCount) { if (title.length > 0) title += ', '; title += deviceHeaderCount[x] + ' ' + PowerStateStr2(x); }
|
||||||
//deviceHeadersTitles["DevxHeader" + deviceHeaderId] = title;
|
//deviceHeadersTitles["DevxHeader" + deviceHeaderId] = title;
|
||||||
@ -3839,7 +3839,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
// On right click open the context menu
|
// On right click open the context menu
|
||||||
contextmenu.on("open", function (evt) {
|
contextmenu.on("otevřít", function (evt) {
|
||||||
var feature = xxmap.map.forEachFeatureAtPixel(evt.pixel, function(ft, l){ return ft; });
|
var feature = xxmap.map.forEachFeatureAtPixel(evt.pixel, function(ft, l){ return ft; });
|
||||||
xxmap.contextmenu.clear(); //Clear the context menu
|
xxmap.contextmenu.clear(); //Clear the context menu
|
||||||
if (feature) {
|
if (feature) {
|
||||||
@ -4292,10 +4292,10 @@
|
|||||||
function getCurrentNode() { return currentNode; };
|
function getCurrentNode() { return currentNode; };
|
||||||
function gotoDevice(nodeid, panel, refresh, event) {
|
function gotoDevice(nodeid, panel, refresh, event) {
|
||||||
// Remind the user to verify the email address
|
// Remind the user to verify the email address
|
||||||
if ((userinfo.emailVerified !== true) && (serverinfo.emailcheck == true) && (userinfo.siteadmin != 0xFFFFFFFF)) { setDialogMode(2, "Account Security", 1, null, "Unable to access a device until a email address is verified. This is required for password recovery. Go to the \"My Account\" tab to change and verify an email address."); return; }
|
if ((userinfo.emailVerified !== true) && (serverinfo.emailcheck == true) && (userinfo.siteadmin != 0xFFFFFFFF)) { setDialogMode(2, "Nastavení bezpečnosti", 1, null, "Unable to access a device until a email address is verified. This is required for password recovery. Go to the \"My Account\" tab to change and verify an email address."); return; }
|
||||||
|
|
||||||
// Remind the user to add two factor authentication
|
// Remind the user to add two factor authentication
|
||||||
if ((features & 0x00040000) && !((userinfo.otpsecret == 1) || (userinfo.otphkeys > 0) || (userinfo.otpkeys > 0))) { setDialogMode(2, "Account Security", 1, null, "Unable to access a device until two-factor authentication is enabled. This is required for extra security. Go to the \"My Account\" tab and look at the \"Account Security\" section."); return; }
|
if ((features & 0x00040000) && !((userinfo.otpsecret == 1) || (userinfo.otphkeys > 0) || (userinfo.otpkeys > 0))) { setDialogMode(2, "Nastavení bezpečnosti", 1, null, "Unable to access a device until two-factor authentication is enabled. This is required for extra security. Go to the \"My Account\" tab and look at the \"Account Security\" section."); return; }
|
||||||
|
|
||||||
if (event && (event.shiftKey == true)) {
|
if (event && (event.shiftKey == true)) {
|
||||||
// Open the device in a different tab
|
// Open the device in a different tab
|
||||||
@ -4367,10 +4367,10 @@
|
|||||||
// Attribute: Intel AMT
|
// Attribute: Intel AMT
|
||||||
if (node.intelamt != null) {
|
if (node.intelamt != null) {
|
||||||
var str = '';
|
var str = '';
|
||||||
var provisioningStates = { 0: nobreak("Not Activated (Pre)"), 1: nobreak("Not Activated (In)"), 2: nobreak("Activated") };
|
var provisioningStates = { 0: nobreak("Not Activated (Pre)"), 1: nobreak("Not Activated (In)"), 2: nobreak("Aktivováno") };
|
||||||
if (node.intelamt.ver != null && node.intelamt.state == null) { str += '<i>' + "Unknown State" + '</i>, v' + node.intelamt.ver; } else
|
if (node.intelamt.ver != null && node.intelamt.state == null) { str += '<i>' + "Unknown State" + '</i>, v' + node.intelamt.ver; } else
|
||||||
|
|
||||||
if ((node.intelamt.ver == null) && (node.intelamt.state == 2)) { str += '<i>' + "Activated" + '</i>'; }
|
if ((node.intelamt.ver == null) && (node.intelamt.state == 2)) { str += '<i>' + "Aktivováno" + '</i>'; }
|
||||||
else if ((node.intelamt.ver == null) || (node.intelamt.state == null)) { str += '<i>' + "Unknown Version & State" + '</i>'; }
|
else if ((node.intelamt.ver == null) || (node.intelamt.state == null)) { str += '<i>' + "Unknown Version & State" + '</i>'; }
|
||||||
else {
|
else {
|
||||||
str += provisioningStates[node.intelamt.state];
|
str += provisioningStates[node.intelamt.state];
|
||||||
@ -4439,7 +4439,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Active Users
|
// Active Users
|
||||||
if (node.users && node.conn && (node.users.length > 0) && (node.conn & 1)) { x += addDeviceAttribute(format("Active User{0}", ((node.users.length > 1)?'s':'')), node.users.join(', ')); }
|
if (node.users && node.conn && (node.users.length > 0) && (node.conn & 1)) { x += addDeviceAttribute(format("Aktivní uživatel{0}", ((node.users.length > 1)?'s':'')), node.users.join(', ')); }
|
||||||
|
|
||||||
// Attribute: Connectivity (Only show this if more than just the agent is connected).
|
// Attribute: Connectivity (Only show this if more than just the agent is connected).
|
||||||
var connectivity = node.conn;
|
var connectivity = node.conn;
|
||||||
@ -4592,7 +4592,7 @@
|
|||||||
|
|
||||||
function writeDeviceEvent(nodeid) {
|
function writeDeviceEvent(nodeid) {
|
||||||
if (xxdialogMode) return;
|
if (xxdialogMode) return;
|
||||||
setDialogMode(2, "Add Device Event", 3, writeDeviceEventEx, '<textarea id=d2devEvent style=background-color:#fcf3cf;width:100%;height:200px;resize:none;overflow-y:scroll></textarea><span style=font-size:10px>' + "This will add an entry to this device\'s event log." + '<span>', nodeid);
|
setDialogMode(2, "Přidat událost zařízení", 3, writeDeviceEventEx, '<textarea id=d2devEvent style=background-color:#fcf3cf;width:100%;height:200px;resize:none;overflow-y:scroll></textarea><span style=font-size:10px>' + "This will add an entry to this device\'s event log." + '<span>', nodeid);
|
||||||
}
|
}
|
||||||
|
|
||||||
function writeDeviceEventEx(buttons, tag) { meshserver.send({ action: 'setDeviceEvent', nodeid: decodeURIComponent(tag), msg: encodeURIComponent(Q('d2devEvent').value) }); }
|
function writeDeviceEventEx(buttons, tag) { meshserver.send({ action: 'setDeviceEvent', nodeid: decodeURIComponent(tag), msg: encodeURIComponent(Q('d2devEvent').value) }); }
|
||||||
@ -4858,7 +4858,7 @@
|
|||||||
function p10showDeleteNodeDialog(nodeid) {
|
function p10showDeleteNodeDialog(nodeid) {
|
||||||
if (xxdialogMode) return false;
|
if (xxdialogMode) return false;
|
||||||
var x = format("Are you sure you want to delete node {0}?", EscapeHtml(currentNode.name)) + '<br /><br /><label><input id=p10check type=checkbox onchange=p10validateDeleteNodeDialog() />' + "Confirm" + '</label>';
|
var x = format("Are you sure you want to delete node {0}?", EscapeHtml(currentNode.name)) + '<br /><br /><label><input id=p10check type=checkbox onchange=p10validateDeleteNodeDialog() />' + "Confirm" + '</label>';
|
||||||
setDialogMode(2, "Delete Node", 3, p10showDeleteNodeDialogEx, x, nodeid);
|
setDialogMode(2, "Smazat nod", 3, p10showDeleteNodeDialogEx, x, nodeid);
|
||||||
p10validateDeleteNodeDialog();
|
p10validateDeleteNodeDialog();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -4927,7 +4927,7 @@
|
|||||||
// Show network interfaces
|
// Show network interfaces
|
||||||
function p10showNodeNetInfoDialog() {
|
function p10showNodeNetInfoDialog() {
|
||||||
if (xxdialogMode) return false;
|
if (xxdialogMode) return false;
|
||||||
setDialogMode(2, "Network Interfaces", 1, null, '<div id=d2netinfo>' + "Loading..." + '</div>', 'if' + currentNode._id );
|
setDialogMode(2, "Síťové rozhraní", 1, null, '<div id=d2netinfo>' + "Nahrávání..." + '</div>', 'if' + currentNode._id );
|
||||||
meshserver.send({ action: 'getnetworkinfo', nodeid: currentNode._id });
|
meshserver.send({ action: 'getnetworkinfo', nodeid: currentNode._id });
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -5004,7 +5004,7 @@
|
|||||||
|
|
||||||
var showEditNodeValueDialog_modes = ["Device Name", "Hostname", "Popis", "Tagy"];
|
var showEditNodeValueDialog_modes = ["Device Name", "Hostname", "Popis", "Tagy"];
|
||||||
var showEditNodeValueDialog_modes2 = ['name', 'host', 'desc', 'tags'];
|
var showEditNodeValueDialog_modes2 = ['name', 'host', 'desc', 'tags'];
|
||||||
var showEditNodeValueDialog_modes3 = ['', '', '', "Tag1, Tag2, Tag3"];
|
var showEditNodeValueDialog_modes3 = ['', '', '', "Značka1, Značka2, Značka"];
|
||||||
function showEditNodeValueDialog(mode) {
|
function showEditNodeValueDialog(mode) {
|
||||||
if (xxdialogMode) return;
|
if (xxdialogMode) return;
|
||||||
var x = addHtmlValue(showEditNodeValueDialog_modes[mode], '<input id=dp10devicevalue maxlength=64 placeholder="' + showEditNodeValueDialog_modes3[mode] + '" onchange=p10editdevicevalueValidate(' + mode + ',event) onkeyup=p10editdevicevalueValidate(' + mode + ',event) />');
|
var x = addHtmlValue(showEditNodeValueDialog_modes[mode], '<input id=dp10devicevalue maxlength=64 placeholder="' + showEditNodeValueDialog_modes3[mode] + '" onchange=p10editdevicevalueValidate(' + mode + ',event) onkeyup=p10editdevicevalueValidate(' + mode + ',event) />');
|
||||||
@ -6733,14 +6733,14 @@
|
|||||||
Q('p15agentConsoleText').scrollTop = Q('p15agentConsoleText').scrollHeight;
|
Q('p15agentConsoleText').scrollTop = Q('p15agentConsoleText').scrollHeight;
|
||||||
}
|
}
|
||||||
var online = (((consoleNode.conn & 1) != 0) || ((consoleNode.conn & 16) != 0)) ? true : false;
|
var online = (((consoleNode.conn & 1) != 0) || ((consoleNode.conn & 16) != 0)) ? true : false;
|
||||||
var onlineText = ((consoleNode.conn & 1) != 0) ? "Agent je online" : "Agent is offline"
|
var onlineText = ((consoleNode.conn & 1) != 0) ? "Agent je online" : "Agent je offline"
|
||||||
if ((consoleNode.conn & 16) != 0) { onlineText += ", MQTT is online" }
|
if ((consoleNode.conn & 16) != 0) { onlineText += ", MQTT je online" }
|
||||||
QH('p15statetext', onlineText);
|
QH('p15statetext', onlineText);
|
||||||
QE('p15consoleText', online);
|
QE('p15consoleText', online);
|
||||||
QE('p15uploadCore', ((consoleNode.conn & 1) != 0));
|
QE('p15uploadCore', ((consoleNode.conn & 1) != 0));
|
||||||
QV('p15outputselecttd', (consoleNode.conn & 17) == 17);
|
QV('p15outputselecttd', (consoleNode.conn & 17) == 17);
|
||||||
} else {
|
} else {
|
||||||
QH('p15statetext', "Access Denied");
|
QH('p15statetext', "Přístup zamítnut");
|
||||||
QE('p15consoleText', false);
|
QE('p15consoleText', false);
|
||||||
QE('p15uploadCore', false);
|
QE('p15uploadCore', false);
|
||||||
QV('p15outputselecttd', false);
|
QV('p15outputselecttd', false);
|
||||||
@ -6828,7 +6828,7 @@
|
|||||||
if (e.shiftKey == true) { meshserver.send({ action: 'uploadagentcore', nodeid: consoleNode._id, type: 'default' }); } // Upload default core
|
if (e.shiftKey == true) { meshserver.send({ action: 'uploadagentcore', nodeid: consoleNode._id, type: 'default' }); } // Upload default core
|
||||||
else if (e.altKey == true) { meshserver.send({ action: 'uploadagentcore', nodeid: consoleNode._id, type: 'clear' }); } // Clear the core
|
else if (e.altKey == true) { meshserver.send({ action: 'uploadagentcore', nodeid: consoleNode._id, type: 'clear' }); } // Clear the core
|
||||||
else if (e.ctrlKey == true) { p15uploadCore2(); } // Upload the core from a file
|
else if (e.ctrlKey == true) { p15uploadCore2(); } // Upload the core from a file
|
||||||
else { setDialogMode(2, "Akce agenta", 3, p15uploadCoreEx, addHtmlValue("Action", '<select id=d3coreMode style=width:230px><option value=1>' + "Upload default server core" + '</option><option value=2>' + "Clear the core" + '</option><option value=6>' + "Upload recovery core" + '</option><option value=3>' + "Upload a core file" + '</option><option value=4>' + "Soft disconnect agent" + '</option><option value=5>' + "Hard disconnect agent" + '</option></select>')); }
|
else { setDialogMode(2, "Akce agenta", 3, p15uploadCoreEx, addHtmlValue("Akce", '<select id=d3coreMode style=width:230px><option value=1>' + "Upload default server core" + '</option><option value=2>' + "Clear the core" + '</option><option value=6>' + "Upload recovery core" + '</option><option value=3>' + "Upload a core file" + '</option><option value=4>' + "Soft disconnect agent" + '</option><option value=5>' + "Hard disconnect agent" + '</option></select>')); }
|
||||||
}
|
}
|
||||||
|
|
||||||
function p15uploadCoreEx() {
|
function p15uploadCoreEx() {
|
||||||
@ -6887,7 +6887,7 @@
|
|||||||
|
|
||||||
function account_addOtp() {
|
function account_addOtp() {
|
||||||
if (xxdialogMode || (userinfo.otpsecret == 1) || ((features & 4096) == 0)) return;
|
if (xxdialogMode || (userinfo.otpsecret == 1) || ((features & 4096) == 0)) return;
|
||||||
setDialogMode(2, "Authenticator App", 2, function () { meshserver.send({ action: 'otpauth-setup', secret: Q('d2optsecret').attributes.secret.value, token: Q('d2otpauthinput').value }); }, ('<div id=d2optinfo>' + "Loading..." + '</div>'), 'otpauth-request');
|
setDialogMode(2, "Authenticator App", 2, function () { meshserver.send({ action: 'otpauth-setup', secret: Q('d2optsecret').attributes.secret.value, token: Q('d2otpauthinput').value }); }, ('<div id=d2optinfo>' + "Nahrávání..." + '</div>'), 'otpauth-request');
|
||||||
meshserver.send({ action: 'otpauth-request' });
|
meshserver.send({ action: 'otpauth-request' });
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6925,7 +6925,7 @@
|
|||||||
x += addHtmlValue("Key Name", '<input id=dp1keyname style=width:230px maxlength=20 autocomplete=off placeholder="' + "MyKey" + '" onkeyup=account_addhkeyValidate(event,1) />');
|
x += addHtmlValue("Key Name", '<input id=dp1keyname style=width:230px maxlength=20 autocomplete=off placeholder="' + "MyKey" + '" onkeyup=account_addhkeyValidate(event,1) />');
|
||||||
x += addHtmlValue("YubiKey™ OTP", '<input id=dp1key style=width:230px autocomplete=off onkeyup=account_addhkeyValidate(event,2) />');
|
x += addHtmlValue("YubiKey™ OTP", '<input id=dp1key style=width:230px autocomplete=off onkeyup=account_addhkeyValidate(event,2) />');
|
||||||
}
|
}
|
||||||
setDialogMode(2, "Add Security Key", 3, account_addhkeyEx, x, type);
|
setDialogMode(2, "Přidat bezpečnostní klíč", 3, account_addhkeyEx, x, type);
|
||||||
Q('dp1keyname').focus();
|
Q('dp1keyname').focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6938,7 +6938,7 @@
|
|||||||
if (name == '') { name = 'MyKey'; }
|
if (name == '') { name = 'MyKey'; }
|
||||||
if (type == 2) {
|
if (type == 2) {
|
||||||
meshserver.send({ action: 'otp-hkey-yubikey-add', name: name, otp: Q('dp1key').value });
|
meshserver.send({ action: 'otp-hkey-yubikey-add', name: name, otp: Q('dp1key').value });
|
||||||
setDialogMode(2, "Add Security Key", 0, null, '<br />' + "Kontrola..." + '<br /><br /><br />', 'otpauth-hardware-manage');
|
setDialogMode(2, "Přidat bezpečnostní klíč", 0, null, '<br />' + "Kontrola..." + '<br /><br /><br />', 'otpauth-hardware-manage');
|
||||||
} else if (type == 3) {
|
} else if (type == 3) {
|
||||||
meshserver.send({ action: 'webauthn-startregister', name: name });
|
meshserver.send({ action: 'webauthn-startregister', name: name });
|
||||||
}
|
}
|
||||||
@ -6972,7 +6972,7 @@
|
|||||||
y += '<br /><a rel="noreferrer noopener" target="_blank" href="translator.htm">' + "Help translate MeshCentral" + '</a>';
|
y += '<br /><a rel="noreferrer noopener" target="_blank" href="translator.htm">' + "Help translate MeshCentral" + '</a>';
|
||||||
}
|
}
|
||||||
|
|
||||||
setDialogMode(2, "Localization Settings", 3, account_showLocalizationSettingsEx, y);
|
setDialogMode(2, "Nastavení lokalizace", 3, account_showLocalizationSettingsEx, y);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -7004,7 +7004,7 @@
|
|||||||
x += '<div><label><input id=p2notifyIntelDeviceConnect type=checkbox />' + "Device connections." + '</label></div>';
|
x += '<div><label><input id=p2notifyIntelDeviceConnect type=checkbox />' + "Device connections." + '</label></div>';
|
||||||
x += '<div><label><input id=p2notifyIntelDeviceDisconnect type=checkbox />' + "Device disconnections." + '</label></div>';
|
x += '<div><label><input id=p2notifyIntelDeviceDisconnect type=checkbox />' + "Device disconnections." + '</label></div>';
|
||||||
x += '<div><label><input id=p2notifyIntelAmtKvmActions type=checkbox />' + "Intel® AMT desktop and serial events." + '</label></div>';
|
x += '<div><label><input id=p2notifyIntelAmtKvmActions type=checkbox />' + "Intel® AMT desktop and serial events." + '</label></div>';
|
||||||
setDialogMode(2, "Notification Settings", 3, account_showAccountNotifySettingsEx, x);
|
setDialogMode(2, "Nastavení notifikací", 3, account_showAccountNotifySettingsEx, x);
|
||||||
var n = getstore('notifications', 0);
|
var n = getstore('notifications', 0);
|
||||||
Q('p2notifyPlayNotifySound').checked = (n & 1);
|
Q('p2notifyPlayNotifySound').checked = (n & 1);
|
||||||
Q('p2notifyIntelDeviceConnect').checked = (n & 2);
|
Q('p2notifyIntelDeviceConnect').checked = (n & 2);
|
||||||
@ -7112,10 +7112,10 @@
|
|||||||
if ((userinfo.siteadmin != 0xFFFFFFFF) && ((userinfo.siteadmin & 64) != 0)) { setDialogMode(2, "Nová skupina zařízení", 1, null, "This account does not have the rights to create a new device group."); return false; }
|
if ((userinfo.siteadmin != 0xFFFFFFFF) && ((userinfo.siteadmin & 64) != 0)) { setDialogMode(2, "Nová skupina zařízení", 1, null, "This account does not have the rights to create a new device group."); return false; }
|
||||||
|
|
||||||
// Remind the user to verify the email address
|
// Remind the user to verify the email address
|
||||||
if ((userinfo.emailVerified !== true) && (serverinfo.emailcheck == true) && (userinfo.siteadmin != 0xFFFFFFFF)) { setDialogMode(2, "Account Security", 1, null, "Unable to access a device until a email address is verified. This is required for password recovery. Go to the \"My Account\" tab to change and verify an email address."); return false; }
|
if ((userinfo.emailVerified !== true) && (serverinfo.emailcheck == true) && (userinfo.siteadmin != 0xFFFFFFFF)) { setDialogMode(2, "Nastavení bezpečnosti", 1, null, "Unable to access a device until a email address is verified. This is required for password recovery. Go to the \"My Account\" tab to change and verify an email address."); return false; }
|
||||||
|
|
||||||
// Remind the user to add two factor authentication
|
// Remind the user to add two factor authentication
|
||||||
if ((features & 0x00040000) && !((userinfo.otpsecret == 1) || (userinfo.otphkeys > 0) || (userinfo.otpkeys > 0))) { setDialogMode(2, "Account Security", 1, null, "Unable to access a device until two-factor authentication is enabled. This is required for extra security. Go to the \"My Account\" tab and look at the \"Account Security\" section."); return false; }
|
if ((features & 0x00040000) && !((userinfo.otpsecret == 1) || (userinfo.otphkeys > 0) || (userinfo.otpkeys > 0))) { setDialogMode(2, "Nastavení bezpečnosti", 1, null, "Unable to access a device until two-factor authentication is enabled. This is required for extra security. Go to the \"My Account\" tab and look at the \"Account Security\" section."); return false; }
|
||||||
|
|
||||||
// We are allowed, let's prompt to information
|
// We are allowed, let's prompt to information
|
||||||
var x = "Vytvořit novou skupinu zařízení podle nastavení níže." + '<br /><br />';
|
var x = "Vytvořit novou skupinu zařízení podle nastavení níže." + '<br /><br />';
|
||||||
@ -7202,7 +7202,7 @@
|
|||||||
var meshrights = 0;
|
var meshrights = 0;
|
||||||
if (meshes[i].links[userinfo._id]) { meshrights = meshes[i].links[userinfo._id].rights; }
|
if (meshes[i].links[userinfo._id]) { meshrights = meshes[i].links[userinfo._id].rights; }
|
||||||
var rights = "Partial Rights";
|
var rights = "Partial Rights";
|
||||||
if (meshrights == 0xFFFFFFFF) rights = "Full Administrator"; else if (meshrights == 0) rights = "No Rights";
|
if (meshrights == 0xFFFFFFFF) rights = "Hlavní administrátor"; else if (meshrights == 0) rights = "No Rights";
|
||||||
|
|
||||||
// Print the mesh information
|
// Print the mesh information
|
||||||
r += '<div onmouseover=devMouseHover(this,1) onmouseout=devMouseHover(this,0) style=display:inline-block;width:431px;height:50px;padding-top:1px;padding-bottom:1px;float:left><div style=float:left;width:30px;height:100%></div><div tabindex=0 style=height:100%;cursor:pointer onclick=gotoMesh(\'' + i + '\') onkeypress="if (event.key==\'Enter\') gotoMesh(\'' + i + '\')"><div class=mi style=float:left;width:50px;height:50px></div><div style=height:100%><div class=g1></div><div class=e2 style=width:300px><div class=e1>' + EscapeHtml(meshes[i].name) + '</div><div>' + rights + '</div></div><div class=g2 style=float:left></div></div></div></div>';
|
r += '<div onmouseover=devMouseHover(this,1) onmouseout=devMouseHover(this,0) style=display:inline-block;width:431px;height:50px;padding-top:1px;padding-bottom:1px;float:left><div style=float:left;width:30px;height:100%></div><div tabindex=0 style=height:100%;cursor:pointer onclick=gotoMesh(\'' + i + '\') onkeypress="if (event.key==\'Enter\') gotoMesh(\'' + i + '\')"><div class=mi style=float:left;width:50px;height:50px></div><div style=height:100%><div class=g1></div><div class=e2 style=width:300px><div class=e1>' + EscapeHtml(meshes[i].name) + '</div><div>' + rights + '</div></div><div class=g2 style=float:left></div></div></div></div>';
|
||||||
@ -7240,7 +7240,7 @@
|
|||||||
|
|
||||||
function server_showVersionDlg() {
|
function server_showVersionDlg() {
|
||||||
if (xxdialogMode) return false;
|
if (xxdialogMode) return false;
|
||||||
setDialogMode(2, "MeshCentral Version", 1, null, "Loading...", 'MeshCentralServerUpdate');
|
setDialogMode(2, "MeshCentral Version", 1, null, "Nahrávání...", 'MeshCentralServerUpdate');
|
||||||
meshserver.send({ action: 'serverversion' });
|
meshserver.send({ action: 'serverversion' });
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -7250,7 +7250,7 @@
|
|||||||
|
|
||||||
function server_showErrorsDlg() {
|
function server_showErrorsDlg() {
|
||||||
if (xxdialogMode) return false;
|
if (xxdialogMode) return false;
|
||||||
setDialogMode(2, "MeshCentral Errors", 1, null, "Loading...", 'MeshCentralServerErrors');
|
setDialogMode(2, "MeshCentral Errors", 1, null, "Nahrávání...", 'MeshCentralServerErrors');
|
||||||
meshserver.send({ action: 'servererrors' });
|
meshserver.send({ action: 'servererrors' });
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -7316,7 +7316,7 @@
|
|||||||
if (meshNotify & 4) { meshNotifyStr.push("Disconnect"); }
|
if (meshNotify & 4) { meshNotifyStr.push("Disconnect"); }
|
||||||
if (meshNotify & 8) { meshNotifyStr.push("Intel® AMT"); }
|
if (meshNotify & 8) { meshNotifyStr.push("Intel® AMT"); }
|
||||||
if (meshNotifyStr.length == 0) { meshNotifyStr.push('<i>' + "Nic" + '</i>'); }
|
if (meshNotifyStr.length == 0) { meshNotifyStr.push('<i>' + "Nic" + '</i>'); }
|
||||||
x += addHtmlValue("Notifications", addLink(meshNotifyStr.join(', '), 'p20editMeshNotify()'));
|
x += addHtmlValue("Notifikace", addLink(meshNotifyStr.join(', '), 'p20editMeshNotify()'));
|
||||||
|
|
||||||
// Intel AMT setup
|
// Intel AMT setup
|
||||||
var intelAmtPolicy = "No Policy";
|
var intelAmtPolicy = "No Policy";
|
||||||
@ -7337,12 +7337,12 @@
|
|||||||
|
|
||||||
x += '<br style=clear:both><br>';
|
x += '<br style=clear:both><br>';
|
||||||
var currentMeshLinks = currentMesh.links[userinfo._id];
|
var currentMeshLinks = currentMesh.links[userinfo._id];
|
||||||
if (currentMeshLinks && ((currentMeshLinks.rights & 2) != 0)) { x += '<a href=# onclick="return p20showAddMeshUserDialog()" style=cursor:pointer;margin-right:10px><img src=images/icon-addnew.png border=0 height=12 width=12> ' + "Add Users" + '</a>'; }
|
if (currentMeshLinks && ((currentMeshLinks.rights & 2) != 0)) { x += '<a href=# onclick="return p20showAddMeshUserDialog()" style=cursor:pointer;margin-right:10px><img src=images/icon-addnew.png border=0 height=12 width=12> ' + "Přidat uživatele" + '</a>'; }
|
||||||
|
|
||||||
if ((meshrights & 4) != 0) {
|
if ((meshrights & 4) != 0) {
|
||||||
if (currentMesh.mtype == 1) {
|
if (currentMesh.mtype == 1) {
|
||||||
x += '<a href=# onclick=\'return addCiraDeviceToMesh(\"' + currentMesh._id + '\")\' style=cursor:pointer;margin-right:10px title=\"' + "Add a new Intel® AMT computer that is located on the internet." + '\"><img src=images/icon-installmesh.png border=0 height=12 width=12> ' + "Install CIRA" + '</a>';
|
x += '<a href=# onclick=\'return addCiraDeviceToMesh(\"' + currentMesh._id + '\")\' style=cursor:pointer;margin-right:10px title=\"' + "Přidat nový Intel® AMT počítač, který je umístěn v síti Internet." + '\"><img src=images/icon-installmesh.png border=0 height=12 width=12> ' + "Install CIRA" + '</a>';
|
||||||
x += '<a href=# onclick=\'return addDeviceToMesh(\"' + currentMesh._id + '\")\' style=cursor:pointer;margin-right:10px title=\"' + "Add a new Intel® AMT computer that is located on the local network." + '\"><img src=images/icon-installmesh.png border=0 height=12 width=12> ' + "Install local" + '</a>';
|
x += '<a href=# onclick=\'return addDeviceToMesh(\"' + currentMesh._id + '\")\' style=cursor:pointer;margin-right:10px title=\"' + "Přidat nový Intel® AMT počítač, který je umístěn v lokální síti." + '\"><img src=images/icon-installmesh.png border=0 height=12 width=12> ' + "Install local" + '</a>';
|
||||||
if (currentMesh.amt && (currentMesh.amt.type == 2)) { // CCM activation
|
if (currentMesh.amt && (currentMesh.amt.type == 2)) { // CCM activation
|
||||||
x += '<a href=# onclick=\'return showCcmActivation(\"' + currentMesh._id + '\")\' style=cursor:pointer;margin-right:10px title=\"' + "Perform Intel AMT client control mode (CCM) activation." + '\"><img src=images/icon-installmesh.png border=0 height=12 width=12> ' + "Aktivace" + '</a>';
|
x += '<a href=# onclick=\'return showCcmActivation(\"' + currentMesh._id + '\")\' style=cursor:pointer;margin-right:10px title=\"' + "Perform Intel AMT client control mode (CCM) activation." + '\"><img src=images/icon-installmesh.png border=0 height=12 width=12> ' + "Aktivace" + '</a>';
|
||||||
} else if (currentMesh.amt && (currentMesh.amt.type == 3) && ((features & 0x00100000) != 0)) { // ACM activation
|
} else if (currentMesh.amt && (currentMesh.amt.type == 3) && ((features & 0x00100000) != 0)) { // ACM activation
|
||||||
@ -7350,7 +7350,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (currentMesh.mtype == 2) {
|
if (currentMesh.mtype == 2) {
|
||||||
x += '<a href=# onclick=\'return addAgentToMesh(\"' + currentMesh._id + '\")\' style=cursor:pointer;margin-right:10px title=\"' + "Add a new computer to this mesh by installing the mesh agent." + '\"><img src=images/icon-addnew.png border=0 height=12 width=12> ' + "Instalace" + '</a>';
|
x += '<a href=# onclick=\'return addAgentToMesh(\"' + currentMesh._id + '\")\' style=cursor:pointer;margin-right:10px title=\"' + "Přidat nový počítač pomocí agenta." + '\"><img src=images/icon-addnew.png border=0 height=12 width=12> ' + "Instalace" + '</a>';
|
||||||
x += '<a href=# onclick=\'return inviteAgentToMesh(\"' + currentMesh._id + '\")\' style=cursor:pointer;margin-right:10px title=\"' + "Pozvat kohokoliv k instalaci agenta pro vzdálené ovládání." + '\"><img src=images/icon-addnew.png border=0 height=12 width=12> ' + "Pozvat" + '</a>';
|
x += '<a href=# onclick=\'return inviteAgentToMesh(\"' + currentMesh._id + '\")\' style=cursor:pointer;margin-right:10px title=\"' + "Pozvat kohokoliv k instalaci agenta pro vzdálené ovládání." + '\"><img src=images/icon-addnew.png border=0 height=12 width=12> ' + "Pozvat" + '</a>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -7370,7 +7370,7 @@
|
|||||||
// Display all users for this mesh
|
// Display all users for this mesh
|
||||||
for (var i in sortedusers) {
|
for (var i in sortedusers) {
|
||||||
var trash = '', rights = "Partial Rights", r = sortedusers[i].rights;
|
var trash = '', rights = "Partial Rights", r = sortedusers[i].rights;
|
||||||
if (r == 0xFFFFFFFF) rights = "Full Administrator"; else if (r == 0) rights = "No Rights";
|
if (r == 0xFFFFFFFF) rights = "Hlavní administrátor"; else if (r == 0) rights = "No Rights";
|
||||||
if ((sortedusers[i].id != userinfo._id) && (meshrights == 0xFFFFFFFF || (((meshrights & 2) != 0)))) { trash = '<a href=# onclick=\'return p20deleteUser(event,"' + encodeURIComponent(sortedusers[i].id) + '")\' title=\"' + "Remove user rights to this device group" + '\" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>'; }
|
if ((sortedusers[i].id != userinfo._id) && (meshrights == 0xFFFFFFFF || (((meshrights & 2) != 0)))) { trash = '<a href=# onclick=\'return p20deleteUser(event,"' + encodeURIComponent(sortedusers[i].id) + '")\' title=\"' + "Remove user rights to this device group" + '\" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>'; }
|
||||||
x += '<tr tabindex=0 onclick=p20viewuser("' + encodeURIComponent(sortedusers[i].id) + '") onkeypress="if (event.key==\'Enter\') p20viewuser(\'' + encodeURIComponent(sortedusers[i].id) + '\')" style=cursor:pointer' + (((count % 2) == 0) ? ';background-color:#DDD' : '') + '><td><div title=\"' + "User" + '\" class=m2></div><div> ' + EscapeHtml(decodeURIComponent(sortedusers[i].name)) + '<div></div></div></td><td><div style=float:right>' + trash + '</div><div>' + rights + '</div></td></tr>';
|
x += '<tr tabindex=0 onclick=p20viewuser("' + encodeURIComponent(sortedusers[i].id) + '") onkeypress="if (event.key==\'Enter\') p20viewuser(\'' + encodeURIComponent(sortedusers[i].id) + '\')" style=cursor:pointer' + (((count % 2) == 0) ? ';background-color:#DDD' : '') + '><td><div title=\"' + "User" + '\" class=m2></div><div> ' + EscapeHtml(decodeURIComponent(sortedusers[i].name)) + '<div></div></div></td><td><div style=float:right>' + trash + '</div><div>' + rights + '</div></td></tr>';
|
||||||
++count;
|
++count;
|
||||||
@ -7379,7 +7379,7 @@
|
|||||||
x += '</tbody></table>';
|
x += '</tbody></table>';
|
||||||
|
|
||||||
// If we are full administrator on this mesh, allow deletion of the mesh
|
// If we are full administrator on this mesh, allow deletion of the mesh
|
||||||
if (meshrights == 0xFFFFFFFF) { x += '<div style=font-size:x-small;text-align:right><span><a href=# onclick=p20showDeleteMeshDialog() style=cursor:pointer>' + "Delete Group" + '</a></span></div>'; }
|
if (meshrights == 0xFFFFFFFF) { x += '<div style=font-size:x-small;text-align:right><span><a href=# onclick=p20showDeleteMeshDialog() style=cursor:pointer>' + "Smazat skupinu" + '</a></span></div>'; }
|
||||||
|
|
||||||
QH('p20info', x);
|
QH('p20info', x);
|
||||||
}
|
}
|
||||||
@ -7421,7 +7421,7 @@
|
|||||||
x += addHtmlValue('<span title="' + "Client Initiated Remote Access" + '">' + "CIRA" + '</span>', '<select id=dp20amtcira style=width:230px><option value=0>' + "Don\'t configure" + '</option><option value=2>' + "Připojit se na server" + '</option></select>');
|
x += addHtmlValue('<span title="' + "Client Initiated Remote Access" + '">' + "CIRA" + '</span>', '<select id=dp20amtcira style=width:230px><option value=0>' + "Don\'t configure" + '</option><option value=2>' + "Připojit se na server" + '</option></select>');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
x += '<br/><span style="font-size:10px">' + "* Leave blank to assign a random password to each device." + '</span><br/>';
|
x += '<br/><span style="font-size:10px">' + "* Ponechat prázdné pro vygenerování náhodného hesla každému zařízení." + '</span><br/>';
|
||||||
if (currentMesh.mtype == 2) {
|
if (currentMesh.mtype == 2) {
|
||||||
if (ptype == 2) {
|
if (ptype == 2) {
|
||||||
x += '<span style="font-size:10px">' + "This policy will not impact devices with Intel® AMT in ACM mode." + '</span><br/>';
|
x += '<span style="font-size:10px">' + "This policy will not impact devices with Intel® AMT in ACM mode." + '</span><br/>';
|
||||||
@ -7461,7 +7461,7 @@
|
|||||||
if (xxdialogMode) return false;
|
if (xxdialogMode) return false;
|
||||||
var x = format("Are you sure you want to delete group {0}? Deleting the device group will also delete all information about devices within this group.", EscapeHtml(currentMesh.name)) + '<br /><br />';
|
var x = format("Are you sure you want to delete group {0}? Deleting the device group will also delete all information about devices within this group.", EscapeHtml(currentMesh.name)) + '<br /><br />';
|
||||||
x += '<label><input id=p20check type=checkbox onchange=p20validateDeleteMeshDialog() />' + "Confirm" + '</label>';
|
x += '<label><input id=p20check type=checkbox onchange=p20validateDeleteMeshDialog() />' + "Confirm" + '</label>';
|
||||||
setDialogMode(2, "Delete Group", 3, p20showDeleteMeshDialogEx, x);
|
setDialogMode(2, "Smazat skupinu", 3, p20showDeleteMeshDialogEx, x);
|
||||||
p20validateDeleteMeshDialog();
|
p20validateDeleteMeshDialog();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -7558,7 +7558,7 @@
|
|||||||
var x = '';
|
var x = '';
|
||||||
if (userid == null) {
|
if (userid == null) {
|
||||||
x += "Allow users to manage this device group and devices in this group.";
|
x += "Allow users to manage this device group and devices in this group.";
|
||||||
if (features & 0x00080000) { x += " Users need to login to this server once before they can be added to a device group." }
|
if (features & 0x00080000) { x += " Uživatelé se musí před přidáním do skupiny zařízení jednou přihlásit k tomuto serveru." }
|
||||||
x += '<br /><br /><div style=\'position:relative\'>';
|
x += '<br /><br /><div style=\'position:relative\'>';
|
||||||
x += addHtmlValue("User Names", '<input id=dp20username style=width:230px maxlength=32 onchange=p20validateAddMeshUserDialog() onkeyup=p20validateAddMeshUserDialog() placeholder="user1, user2, user3" />');
|
x += addHtmlValue("User Names", '<input id=dp20username style=width:230px maxlength=32 onchange=p20validateAddMeshUserDialog() onkeyup=p20validateAddMeshUserDialog() placeholder="user1, user2, user3" />');
|
||||||
x += '<div id=dp20usersuggest class=suggestionBox style=\'top:30px;left:130px;display:none\'></div>';
|
x += '<div id=dp20usersuggest class=suggestionBox style=\'top:30px;left:130px;display:none\'></div>';
|
||||||
@ -7571,9 +7571,9 @@
|
|||||||
x += format("Group permissions for user {0}.", uname) + '<br /><br />';
|
x += format("Group permissions for user {0}.", uname) + '<br /><br />';
|
||||||
}
|
}
|
||||||
x += '<div style="height:120px;overflow-y:scroll;border:1px solid gray">';
|
x += '<div style="height:120px;overflow-y:scroll;border:1px solid gray">';
|
||||||
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20fulladmin>' + "Full Administrator" + '</label><br>';
|
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20fulladmin>' + "Hlavní administrátor" + '</label><br>';
|
||||||
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20editmesh>' + "Editovat skupinu zařízení" + '</label><br>';
|
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20editmesh>' + "Editovat skupinu zařízení" + '</label><br>';
|
||||||
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20manageusers>' + "Manage Device Group Users" + '</label><br>';
|
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20manageusers>' + "Spravovat uživatele pro skupinu zařízení" + '</label><br>';
|
||||||
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20managecomputers>' + "Správa skupin zařízení" + '</label><br>';
|
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20managecomputers>' + "Správa skupin zařízení" + '</label><br>';
|
||||||
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20remotecontrol>' + "Remote Control" + '</label><br>';
|
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20remotecontrol>' + "Remote Control" + '</label><br>';
|
||||||
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20remoteview style=margin-left:12px>' + "Remote View Only" + '</label><br>';
|
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20remoteview style=margin-left:12px>' + "Remote View Only" + '</label><br>';
|
||||||
@ -7590,7 +7590,7 @@
|
|||||||
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20uninstall>' + "Uninstall Agent" + '</label><br>';
|
x += '<label><input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20uninstall>' + "Uninstall Agent" + '</label><br>';
|
||||||
x += '</div>';
|
x += '</div>';
|
||||||
if (userid == null) {
|
if (userid == null) {
|
||||||
setDialogMode(2, "Add Users to Device Group", 3, p20showAddMeshUserDialogEx, x);
|
setDialogMode(2, "Přidat uživatele do skupiny zařizení", 3, p20showAddMeshUserDialogEx, x);
|
||||||
Q('dp20username').focus();
|
Q('dp20username').focus();
|
||||||
} else {
|
} else {
|
||||||
setDialogMode(2, "Edit User Device Group Permissions", 7, p20showAddMeshUserDialogEx, x, userid);
|
setDialogMode(2, "Edit User Device Group Permissions", 7, p20showAddMeshUserDialogEx, x, userid);
|
||||||
@ -7727,10 +7727,10 @@
|
|||||||
var r = [];
|
var r = [];
|
||||||
if (meshrights == 0xFFFFFFFF) r.push("Hlavní administrator (všechna práva)"); else {
|
if (meshrights == 0xFFFFFFFF) r.push("Hlavní administrator (všechna práva)"); else {
|
||||||
if ((meshrights & 1) != 0) r.push("Editovat skupinu zařízení");
|
if ((meshrights & 1) != 0) r.push("Editovat skupinu zařízení");
|
||||||
if ((meshrights & 2) != 0) r.push("Manage Device Group Users");
|
if ((meshrights & 2) != 0) r.push("Spravovat uživatele pro skupinu zařízení");
|
||||||
if ((meshrights & 4) != 0) r.push("Správa skupin zařízení");
|
if ((meshrights & 4) != 0) r.push("Správa skupin zařízení");
|
||||||
if ((meshrights & 8) != 0) r.push("Remote Control");
|
if ((meshrights & 8) != 0) r.push("Remote Control");
|
||||||
if ((meshrights & 16) != 0) r.push("Agent Console");
|
if ((meshrights & 16) != 0) r.push("Konzole agenta");
|
||||||
if ((meshrights & 32) != 0) r.push("Server Files");
|
if ((meshrights & 32) != 0) r.push("Server Files");
|
||||||
if ((meshrights & 64) != 0) r.push("Wake Devices");
|
if ((meshrights & 64) != 0) r.push("Wake Devices");
|
||||||
if ((meshrights & 128) != 0) r.push("Edit Notes");
|
if ((meshrights & 128) != 0) r.push("Edit Notes");
|
||||||
@ -7752,7 +7752,7 @@
|
|||||||
|
|
||||||
x += addHtmlValue("Práva", r.join(", "));
|
x += addHtmlValue("Práva", r.join(", "));
|
||||||
if (((userinfo._id) != xuserid) && (cmeshrights == 0xFFFFFFFF || (((cmeshrights & 2) != 0) && (meshrights != 0xFFFFFFFF)))) buttons += 4;
|
if (((userinfo._id) != xuserid) && (cmeshrights == 0xFFFFFFFF || (((cmeshrights & 2) != 0) && (meshrights != 0xFFFFFFFF)))) buttons += 4;
|
||||||
setDialogMode(2, "Device Group User", buttons, p20viewuserEx, x, xuserid);
|
setDialogMode(2, "Uživatelé této skupiny zařízení", buttons, p20viewuserEx, x, xuserid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -7774,7 +7774,7 @@
|
|||||||
x += '<div><label><input id=p20notifyIntelDeviceConnect type=checkbox />Device connections.</label></div>';
|
x += '<div><label><input id=p20notifyIntelDeviceConnect type=checkbox />Device connections.</label></div>';
|
||||||
x += '<div><label><input id=p20notifyIntelDeviceDisconnect type=checkbox />Device disconnections.</label></div>';
|
x += '<div><label><input id=p20notifyIntelDeviceDisconnect type=checkbox />Device disconnections.</label></div>';
|
||||||
x += '<div><label><input id=p20notifyIntelAmtKvmActions type=checkbox />Intel® AMT desktop and serial events.</label></div>';
|
x += '<div><label><input id=p20notifyIntelAmtKvmActions type=checkbox />Intel® AMT desktop and serial events.</label></div>';
|
||||||
setDialogMode(2, "Notification Settings", 3, p20editMeshNotifyEx, x);
|
setDialogMode(2, "Nastavení notifikací", 3, p20editMeshNotifyEx, x);
|
||||||
Q('p20notifyIntelDeviceConnect').checked = (meshNotify & 2);
|
Q('p20notifyIntelDeviceConnect').checked = (meshNotify & 2);
|
||||||
Q('p20notifyIntelDeviceDisconnect').checked = (meshNotify & 4);
|
Q('p20notifyIntelDeviceDisconnect').checked = (meshNotify & 4);
|
||||||
Q('p20notifyIntelAmtKvmActions').checked = (meshNotify & 8);
|
Q('p20notifyIntelAmtKvmActions').checked = (meshNotify & 8);
|
||||||
@ -8257,7 +8257,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
x += '</table>';
|
x += '</table>';
|
||||||
if (hiddenUsers == 1) { x += '<br />' + "1 more user not shown, use search box to look for users..." + '<br />'; }
|
if (hiddenUsers == 1) { x += '<br />' + "1 další uživatel není zobrazen, pomocí vyhledávacího pole vyhledejte uživatele ..." + '<br />'; }
|
||||||
else if (hiddenUsers > 1) { x += '<br />' + format("{0} more users not shown, use search box to look for users...", hiddenUsers) + '<br />'; }
|
else if (hiddenUsers > 1) { x += '<br />' + format("{0} more users not shown, use search box to look for users...", hiddenUsers) + '<br />'; }
|
||||||
if (maxUsers == 100) { x += '<br />' + "Žádný uživatele nalezen." + '<br />'; }
|
if (maxUsers == 100) { x += '<br />' + "Žádný uživatele nalezen." + '<br />'; }
|
||||||
QH('p3users', x);
|
QH('p3users', x);
|
||||||
@ -8495,7 +8495,7 @@
|
|||||||
if (user.groups != null) { groups = user.groups.join(', ') }
|
if (user.groups != null) { groups = user.groups.join(', ') }
|
||||||
var x = "Enter a comma seperate list of administrative realms names." + '<br /><br />';
|
var x = "Enter a comma seperate list of administrative realms names." + '<br /><br />';
|
||||||
x += addHtmlValue("Realms", '<input id=dp4usergroups style=width:230px value="' + groups + '" placeholder=\"' + "Name1, Name2, Name3" + '\" maxlength=256 onchange=p4validateUserGroups() onkeyup=p4validateUserGroups() />');
|
x += addHtmlValue("Realms", '<input id=dp4usergroups style=width:230px value="' + groups + '" placeholder=\"' + "Name1, Name2, Name3" + '\" maxlength=256 onchange=p4validateUserGroups() onkeyup=p4validateUserGroups() />');
|
||||||
setDialogMode(2, "Administrative Realms", 3, showUserGroupDialogEx, x, user);
|
setDialogMode(2, "Administrátorské realmy", 3, showUserGroupDialogEx, x, user);
|
||||||
focusTextBox('dp4usergroups');
|
focusTextBox('dp4usergroups');
|
||||||
p4validateUserGroups();
|
p4validateUserGroups();
|
||||||
return false;
|
return false;
|
||||||
@ -8521,11 +8521,11 @@
|
|||||||
userid = decodeURIComponent(userid);
|
userid = decodeURIComponent(userid);
|
||||||
var x = '<div><div id=d2AdminPermissions>';
|
var x = '<div><div id=d2AdminPermissions>';
|
||||||
x += '<label><input type=checkbox onchange=showUserAdminDialogValidate() id=ua_fileaccess>' + "Server Files" + '</label>, <input type=number onchange=showUserAdminDialogValidate() maxlength=10 id=ua_fileaccessquota>k max, blank for default<br><hr/>';
|
x += '<label><input type=checkbox onchange=showUserAdminDialogValidate() id=ua_fileaccess>' + "Server Files" + '</label>, <input type=number onchange=showUserAdminDialogValidate() maxlength=10 id=ua_fileaccessquota>k max, blank for default<br><hr/>';
|
||||||
x += '<label><input type=checkbox onchange=showUserAdminDialogValidate() id=ua_fulladmin>' + "Full Administrator" + '</label><br>';
|
x += '<label><input type=checkbox onchange=showUserAdminDialogValidate() id=ua_fulladmin>' + "Hlavní administrátor" + '</label><br>';
|
||||||
x += '<label><input type=checkbox onchange=showUserAdminDialogValidate() id=ua_serverbackup>' + "Server Backup" + '</label><br>';
|
x += '<label><input type=checkbox onchange=showUserAdminDialogValidate() id=ua_serverbackup>' + "Server Backup" + '</label><br>';
|
||||||
x += '<label><input type=checkbox onchange=showUserAdminDialogValidate() id=ua_serverrestore>' + "Server Restore" + '</label><br>';
|
x += '<label><input type=checkbox onchange=showUserAdminDialogValidate() id=ua_serverrestore>' + "Server Restore" + '</label><br>';
|
||||||
x += '<label><input type=checkbox onchange=showUserAdminDialogValidate() id=ua_serverupdate>' + "Server Updates" + '</label><br>';
|
x += '<label><input type=checkbox onchange=showUserAdminDialogValidate() id=ua_serverupdate>' + "Server Updates" + '</label><br>';
|
||||||
x += '<label><input type=checkbox onchange=showUserAdminDialogValidate() id=ua_manageusers>' + "Manage Users" + '</label><br>';
|
x += '<label><input type=checkbox onchange=showUserAdminDialogValidate() id=ua_manageusers>' + "Správa uživatelů" + '</label><br>';
|
||||||
x += '<hr/></div><label><input type=checkbox onchange=showUserAdminDialogValidate() id=ua_lockedaccount>' + "Uzamknout účet" + '</label><br>';
|
x += '<hr/></div><label><input type=checkbox onchange=showUserAdminDialogValidate() id=ua_lockedaccount>' + "Uzamknout účet" + '</label><br>';
|
||||||
x += '<label><input type=checkbox onchange=showUserAdminDialogValidate() id=ua_nonewgroups>' + "No New Device Groups" + '</label><br>';
|
x += '<label><input type=checkbox onchange=showUserAdminDialogValidate() id=ua_nonewgroups>' + "No New Device Groups" + '</label><br>';
|
||||||
x += '<label><input type=checkbox onchange=showUserAdminDialogValidate() id=ua_nomeshcmd>' + "Žádné nástroje (MeshCmd/Router)" + '</label><br>';
|
x += '<label><input type=checkbox onchange=showUserAdminDialogValidate() id=ua_nomeshcmd>' + "Žádné nástroje (MeshCmd/Router)" + '</label><br>';
|
||||||
@ -8613,12 +8613,12 @@
|
|||||||
// Server permissions
|
// Server permissions
|
||||||
var msg = [], premsg = '';
|
var msg = [], premsg = '';
|
||||||
if ((user.siteadmin != null) && ((user.siteadmin & 32) != 0) && (user.siteadmin != 0xFFFFFFFF)) { premsg = '<img src="images/padlock12.png" height=12 width=8 title="Account is locked" style="margin-top:2px" /> '; msg.push("Locked account"); }
|
if ((user.siteadmin != null) && ((user.siteadmin & 32) != 0) && (user.siteadmin != 0xFFFFFFFF)) { premsg = '<img src="images/padlock12.png" height=12 width=8 title="Account is locked" style="margin-top:2px" /> '; msg.push("Locked account"); }
|
||||||
if ((user.siteadmin == null) || ((user.siteadmin & (0xFFFFFFFF - 224)) == 0)) { msg.push("No server rights"); } else if (user.siteadmin == 8) { msg.push("Access to server files"); } else if (user.siteadmin == 0xFFFFFFFF) { msg.push("Hlavní administrator"); } else { msg.push("Partial rights"); }
|
if ((user.siteadmin == null) || ((user.siteadmin & (0xFFFFFFFF - 224)) == 0)) { msg.push("No server rights"); } else if (user.siteadmin == 8) { msg.push("Přístup k souborům na serveru"); } else if (user.siteadmin == 0xFFFFFFFF) { msg.push("Hlavní administrator"); } else { msg.push("Partial rights"); }
|
||||||
if ((user.siteadmin != null) && (user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & (64 + 128)) != 0)) { msg.push("Omezení"); }
|
if ((user.siteadmin != null) && (user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & (64 + 128)) != 0)) { msg.push("Omezení"); }
|
||||||
|
|
||||||
// Show user attributes
|
// Show user attributes
|
||||||
var x = '<div style=min-height:80px><table style=width:100%>';
|
var x = '<div style=min-height:80px><table style=width:100%>';
|
||||||
var email = user.email?EscapeHtml(user.email):'<i>' + "Not set" + '</i>', everify = '';
|
var email = user.email?EscapeHtml(user.email):'<i>' + "Nenastaveno" + '</i>', everify = '';
|
||||||
if (serverinfo.emailcheck) { everify = ((user.emailVerified == true) ? '<b style=color:green;cursor:pointer title=\"' + "Email ověřen" + '\">✓</b> ' : '<b style=color:red;cursor:pointer title=\"' + "Email není ověřen" + '\">✗</b> '); }
|
if (serverinfo.emailcheck) { everify = ((user.emailVerified == true) ? '<b style=color:green;cursor:pointer title=\"' + "Email ověřen" + '\">✓</b> ' : '<b style=color:red;cursor:pointer title=\"' + "Email není ověřen" + '\">✗</b> '); }
|
||||||
if (user.name.toLowerCase() != user._id.split('/')[2]) { x += addDeviceAttribute("User Identifier", user._id.split('/')[2]); }
|
if (user.name.toLowerCase() != user._id.split('/')[2]) { x += addDeviceAttribute("User Identifier", user._id.split('/')[2]); }
|
||||||
if (((features & 0x200000) == 0) && ((user.siteadmin != 0xFFFFFFFF) || (userinfo.siteadmin == 0xFFFFFFFF))) { // If we are not site admin, we can't change a admin email.
|
if (((features & 0x200000) == 0) && ((user.siteadmin != 0xFFFFFFFF) || (userinfo.siteadmin == 0xFFFFFFFF))) { // If we are not site admin, we can't change a admin email.
|
||||||
@ -8630,22 +8630,22 @@
|
|||||||
if (user.quota) x += addDeviceAttribute("Server Quota", EscapeHtml(parseInt(user.quota) / 1024) + ' k');
|
if (user.quota) x += addDeviceAttribute("Server Quota", EscapeHtml(parseInt(user.quota) / 1024) + ' k');
|
||||||
x += addDeviceAttribute("Creation", printDateTime(new Date(user.creation * 1000)));
|
x += addDeviceAttribute("Creation", printDateTime(new Date(user.creation * 1000)));
|
||||||
if (user.login) x += addDeviceAttribute("Last Login", printDateTime(new Date(user.login * 1000)));
|
if (user.login) x += addDeviceAttribute("Last Login", printDateTime(new Date(user.login * 1000)));
|
||||||
if (user.passchange == -1) { x += addDeviceAttribute("Heslo", "Will be changed on next login."); }
|
if (user.passchange == -1) { x += addDeviceAttribute("Heslo", "Bude změněno při příštím přihlášení."); }
|
||||||
else if (user.passchange) { x += addDeviceAttribute("Heslo", format("Poslední změna: {0}", printDateTime(new Date(user.passchange * 1000)))); }
|
else if (user.passchange) { x += addDeviceAttribute("Heslo", format("Poslední změna: {0}", printDateTime(new Date(user.passchange * 1000)))); }
|
||||||
|
|
||||||
// Device Groups
|
// Device Groups
|
||||||
var linkCount = 0, linkCountStr = '<i>' + "Nic" + '<i>';
|
var linkCount = 0, linkCountStr = '<i>' + "Nic" + '<i>';
|
||||||
if (user.links) {
|
if (user.links) {
|
||||||
for (var i in user.links) { linkCount++; }
|
for (var i in user.links) { linkCount++; }
|
||||||
if (linkCount == 1) { linkCountStr = "1 group"; } else if (linkCount > 1) { linkCountStr = format("{0} groups", linkCount); }
|
if (linkCount == 1) { linkCountStr = "1 skupina"; } else if (linkCount > 1) { linkCountStr = format("{0} groups", linkCount); }
|
||||||
}
|
}
|
||||||
x += addDeviceAttribute("Device Groups", linkCountStr);
|
x += addDeviceAttribute("Skupiny zařízení", linkCountStr);
|
||||||
|
|
||||||
// Administrative Realms
|
// Administrative Realms
|
||||||
if ((userinfo.siteadmin == 0xFFFFFFFF) || (userinfo.siteadmin & 2)) {
|
if ((userinfo.siteadmin == 0xFFFFFFFF) || (userinfo.siteadmin & 2)) {
|
||||||
var userGroups = '<i>' + "Nic" + '</i>';
|
var userGroups = '<i>' + "Nic" + '</i>';
|
||||||
if (user.groups) { userGroups = ''; for (var i in user.groups) { userGroups += '<span class="tagSpan">' + user.groups[i] + '</span>'; } }
|
if (user.groups) { userGroups = ''; for (var i in user.groups) { userGroups += '<span class="tagSpan">' + user.groups[i] + '</span>'; } }
|
||||||
x += addDeviceAttribute("Admin Realms", addLinkConditional(userGroups, 'showUserGroupDialog(event,\"' + userid + '\")', (userinfo.siteadmin == 0xFFFFFFFF) || ((userinfo.groups == null) && (userinfo._id != user._id) && (user.siteadmin != 0xFFFFFFFF))));
|
x += addDeviceAttribute("Administrátorské realmy", addLinkConditional(userGroups, 'showUserGroupDialog(event,\"' + userid + '\")', (userinfo.siteadmin == 0xFFFFFFFF) || ((userinfo.groups == null) && (userinfo._id != user._id) && (user.siteadmin != 0xFFFFFFFF))));
|
||||||
}
|
}
|
||||||
|
|
||||||
var multiFactor = 0;
|
var multiFactor = 0;
|
||||||
@ -8701,7 +8701,7 @@
|
|||||||
var x = '';
|
var x = '';
|
||||||
x += addHtmlValue("Email", '<input id=dp30email style=width:230px maxlength=32 onchange=p30validateEmail() onkeyup=p30validateEmail() />');
|
x += addHtmlValue("Email", '<input id=dp30email style=width:230px maxlength=32 onchange=p30validateEmail() onkeyup=p30validateEmail() />');
|
||||||
if (serverinfo.emailcheck) { x += addHtmlValue("Status", '<select id=dp30verified style=width:230px onchange=p30validateEmail()><option value=0>Not verified</option><option value=1>Verified</option></select>'); }
|
if (serverinfo.emailcheck) { x += addHtmlValue("Status", '<select id=dp30verified style=width:230px onchange=p30validateEmail()><option value=0>Not verified</option><option value=1>Verified</option></select>'); }
|
||||||
setDialogMode(2, format("Change Email for {0}", EscapeHtml(currentUser.name)), 3, p30showUserEmailChangeDialogEx, x);
|
setDialogMode(2, format("Změnit email pro {0}", EscapeHtml(currentUser.name)), 3, p30showUserEmailChangeDialogEx, x);
|
||||||
Q('dp30email').focus();
|
Q('dp30email').focus();
|
||||||
Q('dp30email').value = (currentUser.email?currentUser.email:'');
|
Q('dp30email').value = (currentUser.email?currentUser.email:'');
|
||||||
if (serverinfo.emailcheck) { Q('dp30verified').value = currentUser.emailVerified?1:0; }
|
if (serverinfo.emailcheck) { Q('dp30verified').value = currentUser.emailVerified?1:0; }
|
||||||
@ -9213,7 +9213,7 @@
|
|||||||
labels: [pastDate(0), timeAfter],
|
labels: [pastDate(0), timeAfter],
|
||||||
datasets: [
|
datasets: [
|
||||||
{ label: "Agenti", data: [], backgroundColor: 'rgba(158, 151, 16, .1)', borderColor: 'rgb(158, 151, 16)', fill: true },
|
{ label: "Agenti", data: [], backgroundColor: 'rgba(158, 151, 16, .1)', borderColor: 'rgb(158, 151, 16)', fill: true },
|
||||||
{ label: "Users", data: [], backgroundColor: 'rgba(16, 84, 158, .1)', borderColor: 'rgb(16, 84, 158)', fill: true },
|
{ label: "Uživatelé", data: [], backgroundColor: 'rgba(16, 84, 158, .1)', borderColor: 'rgb(16, 84, 158)', fill: true },
|
||||||
{ label: "User Sessions", data: [], backgroundColor: 'rgba(255, 99, 132, .1)', borderColor: 'rgb(255, 99, 132)', fill: true },
|
{ label: "User Sessions", data: [], backgroundColor: 'rgba(255, 99, 132, .1)', borderColor: 'rgb(255, 99, 132)', fill: true },
|
||||||
{ label: "Relay Sessions", data: [], backgroundColor: 'rgba(39, 158, 16, .1)', borderColor: 'rgb(39, 158, 16)', fill: true },
|
{ label: "Relay Sessions", data: [], backgroundColor: 'rgba(39, 158, 16, .1)', borderColor: 'rgb(39, 158, 16)', fill: true },
|
||||||
{ label: "Intel AMT", data: [], backgroundColor: 'rgba(134, 16, 158, .1)', borderColor: 'rgb(134, 16, 158)', fill: true }
|
{ label: "Intel AMT", data: [], backgroundColor: 'rgba(134, 16, 158, .1)', borderColor: 'rgb(134, 16, 158)', fill: true }
|
||||||
@ -9711,6 +9711,7 @@
|
|||||||
function printDateTime(d) { return d.toLocaleString(args.locale); }
|
function printDateTime(d) { return d.toLocaleString(args.locale); }
|
||||||
function addDetailItem(title, value, state) { return '<div><span style=float:right>' + value + '</span><span>' + title + '</span></div>'; }
|
function addDetailItem(title, value, state) { return '<div><span style=float:right>' + value + '</span><span>' + title + '</span></div>'; }
|
||||||
function format(format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); };
|
function format(format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); };
|
||||||
|
function addTextLink(subtext, text, link) { var i = text.toLowerCase().indexOf(subtext.toLowerCase()); if (i == -1) { return text; } return text.substring(0, i) + '<a href=\"' + link + '\">' + subtext + '</a>' + text.substring(i + subtext.length); }
|
||||||
function nobreak(x) { return x.split(' ').join(' '); }
|
function nobreak(x) { return x.split(' ').join(' '); }
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
@ -8655,7 +8655,7 @@
|
|||||||
if (user.otpsecret > 0) { factors.push("Authentication App"); }
|
if (user.otpsecret > 0) { factors.push("Authentication App"); }
|
||||||
if (user.otphkeys > 0) { factors.push("Clef de sécurité"); }
|
if (user.otphkeys > 0) { factors.push("Clef de sécurité"); }
|
||||||
if (user.otpkeys > 0) { factors.push("Backup Codes"); }
|
if (user.otpkeys > 0) { factors.push("Backup Codes"); }
|
||||||
x += addDeviceAttribute("Sécurité", '<img src="images/key12.png" height=12 width=11 title=\"' + "Authentification 2e facteur activée" + '\" style="margin-top:2px" /> ' + factors.join(', '));
|
x += addDeviceAttribute("Sécurité", '<img src="images/key12.png" height=12 width=11 title=\"' + "2nd factor authentication enabled" + '\" style="margin-top:2px" /> ' + factors.join(', '));
|
||||||
}
|
}
|
||||||
|
|
||||||
x += '</table></div><br />';
|
x += '</table></div><br />';
|
||||||
@ -9711,6 +9711,7 @@
|
|||||||
function printDateTime(d) { return d.toLocaleString(args.locale); }
|
function printDateTime(d) { return d.toLocaleString(args.locale); }
|
||||||
function addDetailItem(title, value, state) { return '<div><span style=float:right>' + value + '</span><span>' + title + '</span></div>'; }
|
function addDetailItem(title, value, state) { return '<div><span style=float:right>' + value + '</span><span>' + title + '</span></div>'; }
|
||||||
function format(format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); };
|
function format(format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); };
|
||||||
|
function addTextLink(subtext, text, link) { var i = text.toLowerCase().indexOf(subtext.toLowerCase()); if (i == -1) { return text; } return text.substring(0, i) + '<a href=\"' + link + '\">' + subtext + '</a>' + text.substring(i + subtext.length); }
|
||||||
function nobreak(x) { return x.split(' ').join(' '); }
|
function nobreak(x) { return x.split(' ').join(' '); }
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -64,7 +64,7 @@
|
|||||||
</tbody></table>
|
</tbody></table>
|
||||||
<div id="hrAccountDiv" style="display:none"><hr></div>
|
<div id="hrAccountDiv" style="display:none"><hr></div>
|
||||||
<div id="resetAccountDiv" style="display:none;padding:2px">
|
<div id="resetAccountDiv" style="display:none;padding:2px">
|
||||||
<span id="resetAccountSpan">Forgot user/password?</span> <a onclick="xgo(3)" style="cursor:pointer">Reset účtu</a>.
|
<span id="resetAccountSpan">Zapomenuté jméno/heslo?</span> <a onclick="xgo(3)" style="cursor:pointer">Reset účtu</a>.
|
||||||
</div>
|
</div>
|
||||||
<div id="newAccountDiv" style="display:none;padding:2px">
|
<div id="newAccountDiv" style="display:none;padding:2px">
|
||||||
Nemáte účet? <a onclick="xgo(2)" style="cursor:pointer">Vytvořit</a>.
|
Nemáte účet? <a onclick="xgo(2)" style="cursor:pointer">Vytvořit</a>.
|
||||||
@ -78,7 +78,7 @@
|
|||||||
<input type="hidden" name="action" value="createaccount">
|
<input type="hidden" name="action" value="createaccount">
|
||||||
<div id="message2"></div>
|
<div id="message2"></div>
|
||||||
<div>
|
<div>
|
||||||
<b>Account Creation</b>
|
<b>Vytvoření účtu</b>
|
||||||
</div>
|
</div>
|
||||||
<div id="passwordPolicyCallout" style="left:-5px;top:10px;width:100px;position:absolute;background-color:#FFC;border-radius:5px;padding:5px;box-shadow:0px 0px 15px #666;font-size:10px"></div>
|
<div id="passwordPolicyCallout" style="left:-5px;top:10px;width:100px;position:absolute;background-color:#FFC;border-radius:5px;padding:5px;box-shadow:0px 0px 15px #666;font-size:10px"></div>
|
||||||
<table>
|
<table>
|
||||||
@ -275,7 +275,7 @@
|
|||||||
// Display the right server message
|
// Display the right server message
|
||||||
var messageid = parseInt('{{{messageid}}}');
|
var messageid = parseInt('{{{messageid}}}');
|
||||||
var okmessages = ['', "Hold on, reset mail sent."];
|
var okmessages = ['', "Hold on, reset mail sent."];
|
||||||
var failmessages = ["Unable to create account.", "Account limit reached.", "Existing account with this email address.", "Invalid account creation token.", "Username already exists.", "Password rejected, use a different one.", "Invalid email.", "Account not found.", "Invalid token, try again.", "Unable to sent email.", "Account locked.", "Access denied.", "Login failed, check username and password.", "Password change requested.", "IP address blocked, try again later."];
|
var failmessages = ["Unable to create account.", "Maximální počet účtů dosažen.", "Existing account with this email address.", "Invalid account creation token.", "Username already exists.", "Password rejected, use a different one.", "Invalid email.", "Účet nenalezen.", "Invalid token, try again.", "Unable to sent email.", "Účet uzamknut.", "Přístup zamítnut", "Login failed, check username and password.", "Password change requested.", "IP address blocked, try again later."];
|
||||||
if (messageid > 0) {
|
if (messageid > 0) {
|
||||||
var msg = '';
|
var msg = '';
|
||||||
if ((messageid < 100) && (messageid < okmessages.length)) { msg = okmessages[messageid]; }
|
if ((messageid < 100) && (messageid < okmessages.length)) { msg = okmessages[messageid]; }
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div id="column_l">
|
<div id="column_l">
|
||||||
<h1>Vítejte</h1>
|
<h1>Vítejte</h1>
|
||||||
<div id="welcomeText" style="display:none">Přihlašte se na různá svá nebo firemní zařízení odkudkoliv z celého světa <a href="http://www.meshcommander.com/meshcentral2">MeshCentral</a>. Jednoduchá správa přes web. Jediné co potřebujete je agent na daném zařízení. Po instalaci uvidíte zařízení v sekci "Moje zařízení" a můžete toto zařízení ovládat.</div>
|
<div id="welcomeText" style="display:none">Přihlašte se na různá svá nebo firemní zařízení odkudkoliv z celého světa pomocí technologie MeshCentral. Jednoduchá správa přes web. Jediné co potřebujete je agent na daném zařízení. Po instalaci uvidíte zařízení v sekci "Moje zařízení" a můžete toto zařízení ovládat.</div>
|
||||||
<table id="centralTable" style="">
|
<table id="centralTable" style="">
|
||||||
<tbody><tr>
|
<tbody><tr>
|
||||||
<td id="welcomeimage">
|
<td id="welcomeimage">
|
||||||
@ -61,7 +61,7 @@
|
|||||||
</tbody></table>
|
</tbody></table>
|
||||||
<div id="hrAccountDiv" style="display:none"><hr></div>
|
<div id="hrAccountDiv" style="display:none"><hr></div>
|
||||||
<div id="resetAccountDiv" style="display:none;padding:2px">
|
<div id="resetAccountDiv" style="display:none;padding:2px">
|
||||||
<span id="resetAccountSpan">Forgot username/password?</span> <a onclick="return xgo(3,event);" href="#" style="cursor:pointer">Reset účtu</a>.
|
<span id="resetAccountSpan">Zapomenuté jméno/heslo?</span> <a onclick="return xgo(3,event);" href="#" style="cursor:pointer">Reset účtu</a>.
|
||||||
</div>
|
</div>
|
||||||
<div id="newAccountDiv" style="display:none;padding:2px">
|
<div id="newAccountDiv" style="display:none;padding:2px">
|
||||||
Nemáte účet? <a onclick="return xgo(2,event);" href="#" style="cursor:pointer">Vytvořit</a>.
|
Nemáte účet? <a onclick="return xgo(2,event);" href="#" style="cursor:pointer">Vytvořit</a>.
|
||||||
@ -74,7 +74,7 @@
|
|||||||
<input type="hidden" name="action" value="createaccount">
|
<input type="hidden" name="action" value="createaccount">
|
||||||
<div id="message2"></div>
|
<div id="message2"></div>
|
||||||
<div>
|
<div>
|
||||||
<b>Account Creation</b>
|
<b>Vytvoření účtu</b>
|
||||||
</div>
|
</div>
|
||||||
<div id="passwordPolicyCallout" style="display:none"></div>
|
<div id="passwordPolicyCallout" style="display:none"></div>
|
||||||
<table>
|
<table>
|
||||||
@ -271,7 +271,7 @@
|
|||||||
// Display the right server message
|
// Display the right server message
|
||||||
var messageid = parseInt('{{{messageid}}}');
|
var messageid = parseInt('{{{messageid}}}');
|
||||||
var okmessages = ['', "Hold on, reset mail sent."];
|
var okmessages = ['', "Hold on, reset mail sent."];
|
||||||
var failmessages = ["Unable to create account.", "Account limit reached.", "Existing account with this email address.", "Invalid account creation token.", "Username already exists.", "Password rejected, use a different one.", "Invalid email.", "Account not found.", "Invalid token, try again.", "Unable to sent email.", "Account locked.", "Access denied.", "Login failed, check username and password.", "Password change requested.", "IP address blocked, try again later."];
|
var failmessages = ["Unable to create account.", "Maximální počet účtů dosažen.", "Existing account with this email address.", "Invalid account creation token.", "Username already exists.", "Password rejected, use a different one.", "Invalid email.", "Účet nenalezen.", "Invalid token, try again.", "Unable to sent email.", "Účet uzamknut.", "Přístup zamítnut", "Login failed, check username and password.", "Password change requested.", "IP address blocked, try again later."];
|
||||||
if (messageid > 0) {
|
if (messageid > 0) {
|
||||||
var msg = '';
|
var msg = '';
|
||||||
if ((messageid < 100) && (messageid < okmessages.length)) { msg = okmessages[messageid]; }
|
if ((messageid < 100) && (messageid < okmessages.length)) { msg = okmessages[messageid]; }
|
||||||
@ -319,6 +319,7 @@
|
|||||||
|
|
||||||
// Display the welcome text
|
// Display the welcome text
|
||||||
if (welcomeText) { QH('welcomeText', welcomeText); }
|
if (welcomeText) { QH('welcomeText', welcomeText); }
|
||||||
|
QH('welcomeText', addTextLink('MeshCentral', Q('welcomeText').innerHTML, 'http://www.meshcommander.com/meshcentral2'));
|
||||||
QV('welcomeText', true);
|
QV('welcomeText', true);
|
||||||
|
|
||||||
window.onresize = center;
|
window.onresize = center;
|
||||||
@ -719,6 +720,7 @@
|
|||||||
function putstore(name, val) { try { if (typeof (localStorage) === 'undefined') return; localStorage.setItem(name, val); } catch (e) { } }
|
function putstore(name, val) { try { if (typeof (localStorage) === 'undefined') return; localStorage.setItem(name, val); } catch (e) { } }
|
||||||
function getstore(name, val) { try { if (typeof (localStorage) === 'undefined') return val; var v = localStorage.getItem(name); if ((v == null) || (v == null)) return val; return v; } catch (e) { return val; } }
|
function getstore(name, val) { try { if (typeof (localStorage) === 'undefined') return val; var v = localStorage.getItem(name); if ((v == null) || (v == null)) return val; return v; } catch (e) { return val; } }
|
||||||
function format(format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); };
|
function format(format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); };
|
||||||
|
function addTextLink(subtext, text, link) { var i = text.toLowerCase().indexOf(subtext.toLowerCase()); if (i == -1) { return text; } return text.substring(0, i) + '<a href=\"' + link + '\">' + subtext + '</a>' + text.substring(i + subtext.length); }
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div id="column_l">
|
<div id="column_l">
|
||||||
<h1>Bienvenue</h1>
|
<h1>Bienvenue</h1>
|
||||||
<div id="welcomeText" style="display:none">Connect to your home or office devices from anywhere in the world using <a href="http://www.meshcommander.com/meshcentral2">MeshCentral</a>, le site web open source de surveillance et de gestion d’ordinateur à distance en temps réel. Vous devrez télécharger et installer un agent de gestion sur vos ordinateurs. Une fois installés, les ordinateurs apparaîtront dans la section "Mes appareils" de ce site et vous pourrez les surveiller et en prendre le contrôle.</div>
|
<div id="welcomeText" style="display:none">Connectez-vous à vos ordinateurs à la maison ou au bureau depuis n'importe où dans le monde avec MeshCentral, le site web open source de surveillance et de gestion d’ordinateur à distance en temps réel. Vous devrez télécharger et installer un agent de gestion sur vos ordinateurs. Une fois installés, les ordinateurs apparaîtront dans la section "Mes appareils" de ce site et vous pourrez les surveiller et en prendre le contrôle.</div>
|
||||||
<table id="centralTable" style="">
|
<table id="centralTable" style="">
|
||||||
<tbody><tr>
|
<tbody><tr>
|
||||||
<td id="welcomeimage">
|
<td id="welcomeimage">
|
||||||
@ -319,6 +319,7 @@
|
|||||||
|
|
||||||
// Display the welcome text
|
// Display the welcome text
|
||||||
if (welcomeText) { QH('welcomeText', welcomeText); }
|
if (welcomeText) { QH('welcomeText', welcomeText); }
|
||||||
|
QH('welcomeText', addTextLink('MeshCentral', Q('welcomeText').innerHTML, 'http://www.meshcommander.com/meshcentral2'));
|
||||||
QV('welcomeText', true);
|
QV('welcomeText', true);
|
||||||
|
|
||||||
window.onresize = center;
|
window.onresize = center;
|
||||||
@ -719,6 +720,7 @@
|
|||||||
function putstore(name, val) { try { if (typeof (localStorage) === 'undefined') return; localStorage.setItem(name, val); } catch (e) { } }
|
function putstore(name, val) { try { if (typeof (localStorage) === 'undefined') return; localStorage.setItem(name, val); } catch (e) { } }
|
||||||
function getstore(name, val) { try { if (typeof (localStorage) === 'undefined') return val; var v = localStorage.getItem(name); if ((v == null) || (v == null)) return val; return v; } catch (e) { return val; } }
|
function getstore(name, val) { try { if (typeof (localStorage) === 'undefined') return val; var v = localStorage.getItem(name); if ((v == null) || (v == null)) return val; return v; } catch (e) { return val; } }
|
||||||
function format(format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); };
|
function format(format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); };
|
||||||
|
function addTextLink(subtext, text, link) { var i = text.toLowerCase().indexOf(subtext.toLowerCase()); if (i == -1) { return text; } return text.substring(0, i) + '<a href=\"' + link + '\">' + subtext + '</a>' + text.substring(i + subtext.length); }
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
File diff suppressed because one or more lines are too long
@ -13,8 +13,8 @@
|
|||||||
<div style="position:absolute;background-color:#036;right:0;height:38px">
|
<div style="position:absolute;background-color:#036;right:0;height:38px">
|
||||||
<div id="notifyButton" class="icon13 topButton" style="margin-right:4px;display:none" title="Zapnout notifikace v prohlížeči" onclick="enableNotificationsButtonClick()"></div>
|
<div id="notifyButton" class="icon13 topButton" style="margin-right:4px;display:none" title="Zapnout notifikace v prohlížeči" onclick="enableNotificationsButtonClick()"></div>
|
||||||
<div id="fileButton" class="icon4 topButton" title="Share a file" style="display:none" onclick="fileButtonClick()"></div>
|
<div id="fileButton" class="icon4 topButton" title="Share a file" style="display:none" onclick="fileButtonClick()"></div>
|
||||||
<div id="camButton" class="icon2 topButton" title="Activate camera & microphone" style="display:none" onclick="camButtonClick()"></div>
|
<div id="camButton" class="icon2 topButton" title="Aktivovat kameru & mikrofon" style="display:none" onclick="camButtonClick()"></div>
|
||||||
<div id="micButton" class="icon6 topButton" title="Activate microphone" style="display:none" onclick="micButtonClick()"></div>
|
<div id="micButton" class="icon6 topButton" title="Aktivovat mikrofon" style="display:none" onclick="micButtonClick()"></div>
|
||||||
<div id="hangupButton" class="icon11 topRedButton" title="Hang up" style="display:none" onclick="hangUpButtonClick(1)"></div>
|
<div id="hangupButton" class="icon11 topRedButton" title="Hang up" style="display:none" onclick="hangUpButtonClick(1)"></div>
|
||||||
</div>
|
</div>
|
||||||
<div style="padding-top:9px;padding-left:6px;font-size:20px;display:inline-block"><b><span id="xtitle">MeshMessenger</span></b></div>
|
<div style="padding-top:9px;padding-left:6px;font-size:20px;display:inline-block"><b><span id="xtitle">MeshMessenger</span></b></div>
|
||||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -42,7 +42,7 @@
|
|||||||
The following are the required disclosures of open source components and software incorporated into this software.
|
The following are the required disclosures of open source components and software incorporated into this software.
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<b><span>1.AJAX Control Toolkit - New BSD License</span></b><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman""><o:p></o:p></span>
|
<b><span>1.AJAX Control Toolkit - Nová BSD Licence</span></b><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman""><o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>Copyright (c) 2009, CodePlex Foundation. All rights reserved.<o:p></o:p></span>
|
<span>Copyright (c) 2009, CodePlex Foundation. All rights reserved.<o:p></o:p></span>
|
||||||
@ -51,19 +51,19 @@
|
|||||||
<span>Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:<o:p></o:p></span>
|
<span>Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>1.Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.<o:p></o:p></span>
|
<span>1.Redistribuce zdrojového kódu si musí zachovat výše uvedené upozornění o autorských právech, tento seznam podmínek a následující vyloučení odpovědnosti.<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>2.Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.<o:p></o:p></span>
|
<span>2.Redistribuce v binární podobě musí reprodukovat výše uvedené oznámení o autorských právech, tento seznam podmínek a následující vyloučení odpovědnosti v dokumentaci a / nebo jiných materiálech dodávaných s distribucí.<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>3.Neither the name of CodePlex Foundation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.<o:p></o:p></span>
|
<span>3.Název Nadace CodePlex Foundation ani jména jejích přispěvatelů nesmí být bez předchozího písemného svolení použita k podpoře nebo propagaci produktů odvozených od tohoto softwaru.<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<o:p></o:p></span>
|
<span>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<b><span>2.OpenSSL – OpenSSL and SSLeay License</span></b><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman""><o:p></o:p></span>
|
<b><span>2.OpenSSL – OpenSSL a SSLeay licence</span></b><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman""><o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span><a href="http://www.openssl.org/source/license.html">http://www.openssl.org/source/license.html</a> </span>
|
<span><a href="http://www.openssl.org/source/license.html">http://www.openssl.org/source/license.html</a> </span>
|
||||||
@ -75,28 +75,28 @@
|
|||||||
<span>Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:<o:p></o:p></span>
|
<span>Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>1.Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.<o:p></o:p></span>
|
<span>1.Redistribuce zdrojového kódu si musí zachovat výše uvedené upozornění o autorských právech, tento seznam podmínek a následující vyloučení odpovědnosti.<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>2.Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. <o:p></o:p></span>
|
<span>2.Redistribuce v binární podobě musí reprodukovat výše uvedené oznámení o autorských právech, tento seznam podmínek a následující vyloučení odpovědnosti v dokumentaci a / nebo jiných materiálech dodávaných s distribucí. <o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>3.All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)" <o:p></o:p></span>
|
<span>Všechny reklamní materiály uvádějící funkce nebo použití tohoto softwaru musí obsahovat následující potvrzení: "Tento produkt zahrnuje software vyvinutý projektem OpenSSL pro použití v sadě OpenSSL Toolkit. (http://www.openssl.org/)" <o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>4.The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@openssl.org.<o:p></o:p></span>
|
<span>4.Názvy "OpenSSL Toolkit" a "OpenSSL Project" nesmí být bez předchozího písemného souhlasu použity k propagaci nebo propagaci produktů odvozených z tohoto softwaru. Pro písemné povolení nás prosím kontaktujte openssl-core@openssl.org.<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>5.Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project.<o:p></o:p></span>
|
<span>5.Produkty odvozené od tohoto softwaru nesmí být nazývány "OpenSSL" ani se nesmí "OpenSSL" objevit v jejich jménech bez předchozího písemného souhlasu projektu OpenSSL.<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>6.Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)". <o:p></o:p></span>
|
<span>6.Redistribuce jakékoli formy si musí zachovat následující potvrzení: "Tento produkt zahrnuje software vyvinutý v rámci projektu OpenSSL pro použití v sadě OpenSSL Toolkit (http://www.openssl.org/)". <o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<o:p></o:p></span>
|
<span>THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<b><span>3.jQuery Foundation - MIT License</span></b><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman""><o:p></o:p></span>
|
<b><span>3.jQuery Foundation - MIT licence</span></b><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman""><o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>Copyright 2013 jQuery Foundation and other contributors <a href="http://jquery.com/">http://jquery.com/</a></span>
|
<span>Copyright 2013 jQuery Foundation and other contributors <a href="http://jquery.com/">http://jquery.com/</a></span>
|
||||||
@ -105,7 +105,7 @@
|
|||||||
<span>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
|
<span>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<b><span>4.jQuery User Interface - MIT License</span></b><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman""><o:p></o:p></span>
|
<b><span>4.jQuery User Interface - MIT Licence</span></b><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman""><o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>Copyright 2013 jQuery Foundation and other contributors, <a href="http://jqueryui.com/">http://jqueryui.com/</a></span>
|
<span>Copyright 2013 jQuery Foundation and other contributors, <a href="http://jqueryui.com/">http://jqueryui.com/</a></span>
|
||||||
@ -117,7 +117,7 @@
|
|||||||
<span>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.<o:p></o:p></span>
|
<span>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<b><span>5.noVNC - Mozilla Public License 2.0</span></b><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman""><o:p></o:p></span>
|
<b><span>5.noVNC - Mozilla Public licence 2.0</span></b><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman""><o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span><a href="https://github.com/kanaka/noVNC/blob/master/LICENSE.txt">https://github.com/kanaka/noVNC/blob/master/LICENSE.txt</a></span>
|
<span><a href="https://github.com/kanaka/noVNC/blob/master/LICENSE.txt">https://github.com/kanaka/noVNC/blob/master/LICENSE.txt</a></span>
|
||||||
@ -138,7 +138,7 @@
|
|||||||
<span>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.<o:p></o:p></span>
|
<span>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<b><span>7.Webtoolkit Javascript Base 64 – Creative Commons Attribution 2.0 UK License</span></b><span><o:p></o:p></span>
|
<b><span>7.Webtoolkit Javascript Base 64 – Creative Commons Attribution 2.0 UK licence</span></b><span><o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>This software uses code from <a href="http://www.webtoolkit.info/javascript-base64.html">http://www.webtoolkit.info/javascript-base64.html</a> licensed under the <a href="http://creativecommons.org/licenses/by/2.0/uk/legalcode">http://creativecommons.org/licenses/by/2.0/uk/legalcode</a> and its source can be downloaded from <a href="http://www.webtoolkit.info/javascript-base64.html">http://www.webtoolkit.info/javascript-base64.html</a>.<o:p></o:p></span>
|
<span>This software uses code from <a href="http://www.webtoolkit.info/javascript-base64.html">http://www.webtoolkit.info/javascript-base64.html</a> licensed under the <a href="http://creativecommons.org/licenses/by/2.0/uk/legalcode">http://creativecommons.org/licenses/by/2.0/uk/legalcode</a> and its source can be downloaded from <a href="http://www.webtoolkit.info/javascript-base64.html">http://www.webtoolkit.info/javascript-base64.html</a>.<o:p></o:p></span>
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
The following are the required disclosures of open source components and software incorporated into this software.
|
The following are the required disclosures of open source components and software incorporated into this software.
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<b><span>1.AJAX Control Toolkit - New BSD License</span></b><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman""><o:p></o:p></span>
|
<b><span>1.AJAX Control Toolkit - Nová BSD Licence</span></b><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman""><o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>Copyright (c) 2009, CodePlex Foundation. All rights reserved.<o:p></o:p></span>
|
<span>Copyright (c) 2009, CodePlex Foundation. All rights reserved.<o:p></o:p></span>
|
||||||
@ -51,19 +51,19 @@
|
|||||||
<span>Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:<o:p></o:p></span>
|
<span>Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>1.Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.<o:p></o:p></span>
|
<span>1.Redistribuce zdrojového kódu si musí zachovat výše uvedené upozornění o autorských právech, tento seznam podmínek a následující vyloučení odpovědnosti.<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>2.Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.<o:p></o:p></span>
|
<span>2.Redistribuce v binární podobě musí reprodukovat výše uvedené oznámení o autorských právech, tento seznam podmínek a následující vyloučení odpovědnosti v dokumentaci a / nebo jiných materiálech dodávaných s distribucí.<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>3.Neither the name of CodePlex Foundation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.<o:p></o:p></span>
|
<span>3.Název Nadace CodePlex Foundation ani jména jejích přispěvatelů nesmí být bez předchozího písemného svolení použita k podpoře nebo propagaci produktů odvozených od tohoto softwaru.<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<o:p></o:p></span>
|
<span>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<b><span>2.OpenSSL – OpenSSL and SSLeay License</span></b><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman""><o:p></o:p></span>
|
<b><span>2.OpenSSL – OpenSSL a SSLeay licence</span></b><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman""><o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span><a href="http://www.openssl.org/source/license.html">http://www.openssl.org/source/license.html</a> </span>
|
<span><a href="http://www.openssl.org/source/license.html">http://www.openssl.org/source/license.html</a> </span>
|
||||||
@ -75,28 +75,28 @@
|
|||||||
<span>Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:<o:p></o:p></span>
|
<span>Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>1.Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.<o:p></o:p></span>
|
<span>1.Redistribuce zdrojového kódu si musí zachovat výše uvedené upozornění o autorských právech, tento seznam podmínek a následující vyloučení odpovědnosti.<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>2.Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. <o:p></o:p></span>
|
<span>2.Redistribuce v binární podobě musí reprodukovat výše uvedené oznámení o autorských právech, tento seznam podmínek a následující vyloučení odpovědnosti v dokumentaci a / nebo jiných materiálech dodávaných s distribucí. <o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>3.All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)" <o:p></o:p></span>
|
<span>Všechny reklamní materiály uvádějící funkce nebo použití tohoto softwaru musí obsahovat následující potvrzení: "Tento produkt zahrnuje software vyvinutý projektem OpenSSL pro použití v sadě OpenSSL Toolkit. (http://www.openssl.org/)" <o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>4.The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@openssl.org.<o:p></o:p></span>
|
<span>4.Názvy "OpenSSL Toolkit" a "OpenSSL Project" nesmí být bez předchozího písemného souhlasu použity k propagaci nebo propagaci produktů odvozených z tohoto softwaru. Pro písemné povolení nás prosím kontaktujte openssl-core@openssl.org.<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>5.Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project.<o:p></o:p></span>
|
<span>5.Produkty odvozené od tohoto softwaru nesmí být nazývány "OpenSSL" ani se nesmí "OpenSSL" objevit v jejich jménech bez předchozího písemného souhlasu projektu OpenSSL.<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>6.Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)". <o:p></o:p></span>
|
<span>6.Redistribuce jakékoli formy si musí zachovat následující potvrzení: "Tento produkt zahrnuje software vyvinutý v rámci projektu OpenSSL pro použití v sadě OpenSSL Toolkit (http://www.openssl.org/)". <o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<o:p></o:p></span>
|
<span>THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<b><span>3.jQuery Foundation - MIT License</span></b><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman""><o:p></o:p></span>
|
<b><span>3.jQuery Foundation - MIT licence</span></b><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman""><o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>Copyright 2013 jQuery Foundation and other contributors <a href="http://jquery.com/">http://jquery.com/</a></span>
|
<span>Copyright 2013 jQuery Foundation and other contributors <a href="http://jquery.com/">http://jquery.com/</a></span>
|
||||||
@ -105,7 +105,7 @@
|
|||||||
<span>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
|
<span>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<b><span>4.jQuery User Interface - MIT License</span></b><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman""><o:p></o:p></span>
|
<b><span>4.jQuery User Interface - MIT Licence</span></b><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman""><o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>Copyright 2013 jQuery Foundation and other contributors, <a href="http://jqueryui.com/">http://jqueryui.com/</a></span>
|
<span>Copyright 2013 jQuery Foundation and other contributors, <a href="http://jqueryui.com/">http://jqueryui.com/</a></span>
|
||||||
@ -117,7 +117,7 @@
|
|||||||
<span>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.<o:p></o:p></span>
|
<span>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<b><span>5.noVNC - Mozilla Public License 2.0</span></b><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman""><o:p></o:p></span>
|
<b><span>5.noVNC - Mozilla Public licence 2.0</span></b><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman""><o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span><a href="https://github.com/kanaka/noVNC/blob/master/LICENSE.txt">https://github.com/kanaka/noVNC/blob/master/LICENSE.txt</a></span>
|
<span><a href="https://github.com/kanaka/noVNC/blob/master/LICENSE.txt">https://github.com/kanaka/noVNC/blob/master/LICENSE.txt</a></span>
|
||||||
@ -138,7 +138,7 @@
|
|||||||
<span>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.<o:p></o:p></span>
|
<span>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.<o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<b><span>7.Webtoolkit Javascript Base 64 – Creative Commons Attribution 2.0 UK License</span></b><span><o:p></o:p></span>
|
<b><span>7.Webtoolkit Javascript Base 64 – Creative Commons Attribution 2.0 UK licence</span></b><span><o:p></o:p></span>
|
||||||
</p>
|
</p>
|
||||||
<p class="MsoNormal">
|
<p class="MsoNormal">
|
||||||
<span>This software uses code from <a href="http://www.webtoolkit.info/javascript-base64.html">http://www.webtoolkit.info/javascript-base64.html</a> licensed under the <a href="http://creativecommons.org/licenses/by/2.0/uk/legalcode">http://creativecommons.org/licenses/by/2.0/uk/legalcode</a> and its source can be downloaded from <a href="http://www.webtoolkit.info/javascript-base64.html">http://www.webtoolkit.info/javascript-base64.html</a>.<o:p></o:p></span>
|
<span>This software uses code from <a href="http://www.webtoolkit.info/javascript-base64.html">http://www.webtoolkit.info/javascript-base64.html</a> licensed under the <a href="http://creativecommons.org/licenses/by/2.0/uk/legalcode">http://creativecommons.org/licenses/by/2.0/uk/legalcode</a> and its source can be downloaded from <a href="http://www.webtoolkit.info/javascript-base64.html">http://www.webtoolkit.info/javascript-base64.html</a>.<o:p></o:p></span>
|
||||||
@ -169,7 +169,7 @@
|
|||||||
|
|
||||||
// Setup logout control
|
// Setup logout control
|
||||||
var logoutControl = '';
|
var logoutControl = '';
|
||||||
if (logoutControls.name != null) { logoutControl = format("Welcome {0}.", logoutControls.name); }
|
if (logoutControls.name != null) { logoutControl = format("Vítejte {0}.", logoutControls.name); }
|
||||||
if (logoutControls.logoutUrl != null) { logoutControl += format(' <a href=\"' + logoutControls.logoutUrl + '\" style="color:white">' + "Odhlásit" + '</a>'); }
|
if (logoutControls.logoutUrl != null) { logoutControl += format(' <a href=\"' + logoutControls.logoutUrl + '\" style="color:white">' + "Odhlásit" + '</a>'); }
|
||||||
QH('logoutControl', logoutControl);
|
QH('logoutControl', logoutControl);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user