Intel® AMT Redirection port or KVM feature is disabled, click here to enable it.
Remote computer is not powered on, click here to issue a power command.
Disconnected
Files -
Disconnected
✓
✗
Intel® AMT -
Events -
Show
General -
General -
Events -
Show
My Server Stats
Log-X
✖
File Selection
Upload File
Agent Remote Desktop
Quality
Scaling
Frame rate
Intel® AMT Hardware KVM
Image Encoding
Other Settings
\ No newline at end of file
diff --git a/views/default-mobile-min.handlebars b/views/default-mobile-min.handlebars
index b188f9bc..edf80fd0 100644
--- a/views/default-mobile-min.handlebars
+++ b/views/default-mobile-min.handlebars
@@ -1 +1 @@
- {{{title}}}
\ No newline at end of file
diff --git a/views/default-mobile.handlebars b/views/default-mobile.handlebars
index 2792b435..f1b18abf 100644
--- a/views/default-mobile.handlebars
+++ b/views/default-mobile.handlebars
@@ -243,7 +243,7 @@
@@ -784,7 +784,7 @@
@@ -1047,6 +1047,7 @@
Q('RealNameCheckBox').checked = showRealNames;
Q('viewselect').value = getstore("_deviceView", 1);
Q('DeskControl').checked = (getstore('DeskControl', 1) == 1);
+ QV('accountChangeEmailAddressSpan', (features & 0x200000) == 0);
// Display the page devices
masterUpdate(3)
@@ -1164,7 +1165,11 @@
}
function getNodeFromId(id) { if (nodes != null) { for (var i in nodes) { if (nodes[i]._id == id) return nodes[i]; } } return null; }
- function reload() { window.location.href = window.location.href; }
+ function reload() {
+ var x = window.location.href;
+ if (x.endsWith('/#')) { x = x.substring(0, x.length - 2); }
+ window.location.href = x;
+ }
function onStateChanged(server, state, prevState, errorCode) {
if (state == 0) {
@@ -2401,11 +2406,11 @@
r += '
';
if (mesh.mtype == 1) {
r += '
No Intel® AMT devices in this mesh';
- if ((meshrights & 4) != 0) { r += ', add one'; }
+ if ((meshrights & 4) != 0) { r += ', add one'; }
}
if (mesh.mtype == 2) {
r += '
No devices in this mesh';
- if ((meshrights & 4) != 0) { r += ', add one'; }
+ if ((meshrights & 4) != 0) { r += ', add one'; }
}
r += '.
';
current = mesh._id;
@@ -2419,11 +2424,11 @@
// Add a "Add Device Group" option
r += '
';
if ((view < 3) && (sort == 0) && (meshcount > 0) && ((userinfo.siteadmin == 0xFFFFFFFF) || ((userinfo.siteadmin & 64) == 0))) {
- r += 'Add Device Group ';
+ r += 'Add Device Group ';
}
if ((userinfo.siteadmin == 0xFFFFFFFF) || ((userinfo.siteadmin & 128) == 0)) {
- r += 'MeshCmd ';
- if (navigator.platform.toLowerCase() == 'win32') { r += 'Router '; }
+ r += 'MeshCmd ';
+ if (navigator.platform.toLowerCase() == 'win32') { r += 'Router '; }
}
r += '
';
@@ -2599,28 +2604,28 @@
if ((meshrights & 4) == 0) return '';
var r = '';
if ((features & 1024) == 0) { // If CIRA is allowed
- r += ' Add CIRA';
+ r += ' Add CIRA';
}
if (mesh.mtype == 1) {
if ((features & 1) == 0) { // If not WAN-Only
- r += ' Add Local';
- r += ' Scan Network';
+ r += ' Add Local';
+ r += ' Scan Network';
}
if (mesh.amt && (mesh.amt.type == 2)) { // CCM activation
- r += ' Activation';
+ r += ' Activation';
} else if (mesh.amt && (mesh.amt.type == 3) && ((features & 0x00100000) != 0)) { // ACM activation
- r += ' Activation';
+ r += ' Activation';
}
}
if (mesh.mtype == 2) {
- r += ' Add Agent';
- r += ' Invite';
+ r += ' Add Agent';
+ r += ' Invite';
}
return r;
}
function addDeviceToMesh(meshid) {
- if (xxdialogMode) return;
+ if (xxdialogMode) return false;
var mesh = meshes[meshid];
var x = "Add a new Intel® AMT device to device group \"" + EscapeHtml(mesh.name) + "\".
";
x += addHtmlValue('Device Name', '');
@@ -2631,11 +2636,12 @@
setDialogMode(2, "Add Intel® AMT device", 3, addDeviceToMeshEx, x, meshid);
validateDeviceToMesh();
Q('dp1devicename').focus();
+ return false;
}
// Intel AMT CCM Activation
function showCcmActivation(meshid) {
- if (xxdialogMode) return;
+ if (xxdialogMode) return false;
var servername = serverinfo.name, mesh = meshes[meshid];
if ((servername.indexOf('.') == -1) || ((features & 2) != 0)) { servername = window.location.hostname; } // If the server name is not set or it's in LAN-only mode, use the URL hostname as server name.
var url, domainUrlNoSlash = domainUrl.substring(0, domainUrl.length - 1);
@@ -2649,11 +2655,13 @@
var x = "Perform Intel AMT client control mode (CCM) activation to group \"" + EscapeHtml(mesh.name) + "\" by downloading the MeshCMD tool and running it like this:
";
x += '';
setDialogMode(2, "Intel® AMT activation", 9, null, x);
+ Q('idx_dlgOkButton').focus();
+ return false;
}
// Intel AMT ACM Activation
function showAcmActivation(meshid) {
- if (xxdialogMode) return;
+ if (xxdialogMode) return false;
var servername = serverinfo.name, mesh = meshes[meshid];
if ((servername.indexOf('.') == -1) || ((features & 2) != 0)) { servername = window.location.hostname; } // If the server name is not set or it's in LAN-only mode, use the URL hostname as server name.
var url, domainUrlNoSlash = domainUrl.substring(0, domainUrl.length - 1);
@@ -2670,11 +2678,13 @@
x += '
Intel AMT will need to be set with a Trusted FQDN in MEBx or have a wired LAN on the network: ' + serverinfo.amtAcmFqdn.join(', ') + '
';
}
setDialogMode(2, "Intel® AMT activation", 9, null, x);
+ Q('idx_dlgOkButton').focus();
+ return false;
}
// Display the Intel AMT scanning dialog box
function addAmtScanToMesh(meshid) {
- if (xxdialogMode) return;
+ if (xxdialogMode) return false;
var x = "Enter a range of IP addresses to scan for Intel AMT devices.
";
x += addHtmlValue('IP Range', '');
x += '';
@@ -2682,6 +2692,7 @@
QE('idx_dlgOkButton', false);
QH('dp1results', '
Sample IP range values 192.168.0.100 192.168.1.0/24 192.167.0.1-192.168.0.100
');
focusTextBox('dp1range');
+ return false;
}
function addAmtScanToMeshKeyUp(e) {
@@ -2716,7 +2727,7 @@
}
function addCiraDeviceToMesh(meshid) {
- if (xxdialogMode) return;
+ if (xxdialogMode) return false;
var mesh = meshes[meshid];
// Replace non alphabetic characters (@ and $) with 'X' because MPS username cannot accept it.
@@ -2754,6 +2765,8 @@
}
setDialogMode(2, "Add Intel® AMT CIRA device", 2, null, x, 'fileDownload');
+ Q('dlgAddCiraSel').focus();
+ return false;
}
function dlgAddCiraSelClick() {
@@ -2772,7 +2785,7 @@
}
function inviteAgentToMesh(meshid) {
- if (xxdialogMode) return;
+ if (xxdialogMode) return false;
var x = '', mesh = meshes[meshid];
if (features & 64) {
x += addHtmlValue('Invitation Type', '') + "";
@@ -2789,10 +2802,11 @@
}
x += '
Invite someone to install the mesh agent by sharing an invitation link. This link points the user to installation instructions for the \"' + EscapeHtml(mesh.name) + '\" device group. The link is public and no account for this server is needed.
';
x += addHtmlValue('Link Expiration', '');
- x += '
';
+ x += '
';
setDialogMode(2, "Invite", 3, performAgentInvite, x, meshid);
- if (features & 64) { d2ChangedInviteType(); } else { validateAgentInvite(); }
+ if (features & 64) { Q('d2InviteType').focus(); d2ChangedInviteType(); } else { Q('d2inviteExpire').focus(); validateAgentInvite(); }
d2RequestInvitationLink();
+ return false;
}
function d2RequestInvitationLink() {
@@ -2825,7 +2839,7 @@
}
function addAgentToMesh(meshid) {
- if (xxdialogMode) return;
+ if (xxdialogMode) return false;
var mesh = meshes[meshid], x = '', installType = 0;
x += addHtmlValue('Operating System', '');
x += '
';
@@ -2902,6 +2916,7 @@
}
Q('aginsSelect').focus();
addAgentToMeshClick();
+ return false;
}
function copyAgentUrl(url,addflag) {
@@ -3839,7 +3854,7 @@
var x = '
';
// Attribute: Mesh
- x += addDeviceAttribute('Group', '' + EscapeHtml(meshes[node.meshid].name) + '');
+ x += addDeviceAttribute('Group', '' + EscapeHtml(meshes[node.meshid].name) + '');
// Attribute: Name
if ((node.rname != null) && (node.name != node.rname)) { x += addDeviceAttribute('Name', '' + EscapeHtml(node.rname) + ''); }
@@ -3964,20 +3979,20 @@
x = '
';
if ((meshrights & 4) != 0) {
// TODO: Show change group only if there is another mesh of the same type.
- x += ' Change Group';
- x += ' Delete Device';
+ x += ' Change Group';
+ x += ' Delete Device';
}
x += '
';
- if (mesh.mtype == 2) x += 'Interfaces ';
- if (xxmap != null) x += 'Location ';
+ if (mesh.mtype == 2) x += 'Interfaces ';
+ if (xxmap != null) x += 'Location ';
if (((meshrights & 8) != 0) && (mesh.mtype == 2)) x += 'Router ';
// RDP link, show this link only of the remote machine is Windows.
if (((connectivity & 1) != 0) && (clickOnce == true) && (mesh.mtype == 2) && ((meshrights & 8) != 0)) {
- if ((node.agent.id > 0) && (node.agent.id < 5)) { x += 'RDP '; }
+ if ((node.agent.id > 0) && (node.agent.id < 5)) { x += 'RDP '; }
if (node.agent.id > 4) {
- x += 'Putty ';
- x += 'WinSCP ';
+ x += 'Putty ';
+ x += 'WinSCP ';
}
}
x += '
'
@@ -4240,7 +4255,7 @@
}
function p10showChangeGroupDialog(nodeids) {
- if (xxdialogMode) return;
+ if (xxdialogMode) return false;
var targetMeshId = null;
if (nodeids.length == 1) { try { targetMeshId = meshes[getNodeFromId(nodeids[0])]._id; } catch (ex) { } }
@@ -4259,6 +4274,7 @@
} else {
setDialogMode(2, "Change Group", 1, null, "No other device group of same type exists.");
}
+ return false;
}
function p10showChangeGroupDialogEx(b, nodeids) {
@@ -4266,11 +4282,12 @@
}
function p10showDeleteNodeDialog(nodeid) {
- if (xxdialogMode) return;
+ if (xxdialogMode) return false;
var x = "Are you sure you want to delete node \"" + EscapeHtml(currentNode.name) + "\"?
";
x += "";
setDialogMode(2, "Delete Node", 3, p10showDeleteNodeDialogEx, x, nodeid);
p10validateDeleteNodeDialog();
+ return false;
}
function p10validateDeleteNodeDialog() {
@@ -4283,12 +4300,13 @@
function p10clickOnce(nodeid, protocol, port) {
meshserver.send({ action: 'getcookie', nodeid: nodeid, tcpport: port, tag: 'clickonce', protocol: protocol });
+ return false;
}
// Show current location
var d2map = null;
function p10showNodeLocationDialog() {
- if ((xxdialogMode != null) && (xxdialogTag == '@xxmap')) { setDialogMode(0); } else { if (xxdialogMode) return; }
+ if ((xxdialogMode != null) && (xxdialogTag == '@xxmap')) { setDialogMode(0); } else { if (xxdialogMode) return false; }
var markers = [], types = ['iploc', 'wifiloc', 'gpsloc', 'userloc'], boundingBox = null;
for (var loctype in types) {
@@ -4330,13 +4348,15 @@
layers: [ new ol.layer.Tile({ source: new ol.source.OSM() }), vectorLayer ],
view: new ol.View({ center: ol.proj.fromLonLat([clng, clat]), zoom: zoom })
});
+ return false;
}
// Show network interfaces
function p10showNodeNetInfoDialog() {
- if (xxdialogMode) return;
+ if (xxdialogMode) return false;
setDialogMode(2, "Network Interfaces", 1, null, "
Loading...
", 'if' + currentNode._id );
meshserver.send({ action: 'getnetworkinfo', nodeid: currentNode._id });
+ return false;
}
// Show MeshCentral Router dialog
@@ -4993,7 +5013,7 @@
for (var pid in processes) { p.push( { p:parseInt(pid), c:processes[pid].cmd, d:processes[pid].cmd.toLowerCase(), u: processes[pid].user } ); }
if (deskTools.sort == 0) { p.sort(sortProcessPid); } else if (deskTools.sort == 1) { p.sort(sortProcessName); }
var x = '';
- for (var i in p) { if (p[i].p != 0) { x += '
' + p[i].p + '
' + (p[i].u?p[i].u:'') + '
' + p[i].c + '
'; } }
+ for (var i in p) { if (p[i].p != 0) { x += '
' + p[i].p + '
' + (p[i].u?p[i].u:'') + '
' + p[i].c + '
'; } }
QH('DeskToolsProcesses', x);
}
}
@@ -5041,7 +5061,7 @@
function dmousemove(e) { setSessionActivity(); e.addx = Q('DeskParent').scrollLeft; e.addy = Q('DeskParent').scrollTop; if (!xxdialogMode && desktop != null && Q('DeskControl').checked) { if ((webRtcDesktop != null) && (webRtcDesktop.softdesktop != null)) { webRtcDesktop.softdesktop.m.mousemove(e); desktop.m.sendKeepAlive(); } else { desktop.m.mousemove(e); } } }
function dmousewheel(e) { setSessionActivity(); e.addx = Q('DeskParent').scrollLeft; e.addy = Q('DeskParent').scrollTop; if (!xxdialogMode && desktop != null && Q('DeskControl').checked) { if ((webRtcDesktop != null) && (webRtcDesktop.softdesktop != null)) { webRtcDesktop.softdesktop.m.mousewheel(e); desktop.m.sendKeepAlive(); } else { if (desktop.m.mousewheel) { desktop.m.mousewheel(e); } } haltEvent(e); return true; } return false; }
function drotate(x) { if (!xxdialogMode && desktop != null) { desktop.m.setRotation(desktop.m.rotation + x); deskAdjust(); deskAdjust(); } }
- function stopProcess(id, name) { setDialogMode(2, "Process Control", 3, stopProcessEx, 'Stop process #' + id + ' "' + name + '"?', id); }
+ function stopProcess(id, name) { setDialogMode(2, "Process Control", 3, stopProcessEx, 'Stop process #' + id + ' "' + name + '"?', id); return false; }
function stopProcessEx(buttons, tag) { meshserver.send({ action: 'msg', type:'pskill', nodeid: currentNode._id, value: tag }); setTimeout(refreshDeskTools, 300); }
//
@@ -5339,13 +5359,13 @@
}
function p13updateFiles(checkedNames) {
- var html1 = '', html2 = '', displayPath = 'Root', fullPath = 'Root';
+ var html1 = '', html2 = '', displayPath = 'Root', fullPath = 'Root';
// Work on parsing the file path
var x = p13filetree.path.split('\\');
p13filetreelocation = [];
for (var i in x) { if (x[i] != '') { p13filetreelocation.push(x[i]); } } // Remove empty spaces
- for (var i in p13filetreelocation) { displayPath += ' / ' + p13filetreelocation[i] + '' } // Setup the path we display
+ for (var i in p13filetreelocation) { displayPath += ' / ' + p13filetreelocation[i] + '' } // Setup the path we display
var newlinkpath = p13filetreelocation.join('/');
// Sort the files
@@ -5370,10 +5390,10 @@
var h = '';
if (f.t < 3) {
var right = '', title = '';
- h = "
";
}
@@ -5401,6 +5421,7 @@
if (x == null) { p13filetreelocation.pop(); } else { while (p13filetreelocation.length > x) { p13filetreelocation.pop(); } }
p13targetpath = p13filetreelocation.join('/');
files.sendText({ action: 'ls', reqid: 1, path: p13targetpath });
+ return false;
}
var p13sortorder;
@@ -5465,8 +5486,8 @@
function p13copyFile(cut) { var checkboxes = document.getElementsByName('fd'); p13clipboard = []; p13clipboardCut = cut, p13clipboardFolder = p13targetpath; for (var i = 0; i < checkboxes.length; i++) { if ((checkboxes[i].checked) && (checkboxes[i].attributes.file.value == "3")) { p13clipboard.push(p13filetree.dir[checkboxes[i].value].n); } } p13updateClipview(); }
function p13pasteFile() { var x = ''; if ((p13clipboard != null) && (p13clipboard.length > 0)) { x = 'Confim ' + (p13clipboardCut == 0?'copy':'move') + ' of ' + p13clipboard.length + ' entrie' + ((p13clipboard.length > 1)?'s':'') + ' to this location?' } setDialogMode(2, "Paste", 3, p13pasteFileEx, x); }
function p13pasteFileEx() { files.sendText({ action: (p13clipboardCut == 0?'copy':'move'), reqid: 1, scpath: p13clipboardFolder, dspath: p13targetpath, names: p13clipboard }); p13folderup(999); if (p13clipboardCut == 1) { p13clipboard = null, p13clipboardFolder = null, p13clipboardCut = 0; p13updateClipview(); } }
- function p13updateClipview() { var x = ''; if ((p13clipboard != null) && (p13clipboard.length > 0)) { x = 'Holding ' + p13clipboard.length + ' entrie' + ((p13clipboard.length > 1)?'s':'') + ' for ' + (p13clipboardCut == 0?'copy':'move') + ', Clear.' } QH('p13bottomstatus', x); p13setActions(); }
- function p13clearClip() { p13clipboard = null; p13clipboardFolder = null; p13clipboardCut = 0; p13updateClipview(); }
+ function p13updateClipview() { var x = ''; if ((p13clipboard != null) && (p13clipboard.length > 0)) { x = 'Holding ' + p13clipboard.length + ' entrie' + ((p13clipboard.length > 1)?'s':'') + ' for ' + (p13clipboardCut == 0?'copy':'move') + ', Clear.' } QH('p13bottomstatus', x); p13setActions(); }
+ function p13clearClip() { p13clipboard = null; p13clipboardFolder = null; p13clipboardCut = 0; p13updateClipview(); return false; }
function p13fileDragDrop(e) {
haltEvent(e);
@@ -5958,6 +5979,7 @@
function account_manageAuthApp() {
if (xxdialogMode || ((features & 4096) == 0)) return;
if (userinfo.otpsecret == 1) { account_removeOtp(); } else { account_addOtp(); }
+ return false;
}
function account_addOtp() {
@@ -5979,14 +6001,16 @@
function account_manageOtp(action) {
if ((xxdialogMode == 2) && (xxdialogTag == 'otpauth-manage')) { dialogclose(0); }
- if (xxdialogMode || ((features & 4096) == 0)) return;
+ if (xxdialogMode || ((features & 4096) == 0)) return false;
if ((userinfo.otpsecret == 1) || (userinfo.otphkeys > 0)) { meshserver.send({ action: 'otpauth-getpasswords', subaction: action }); }
+ return false;
}
function account_manageHardwareOtp() {
if ((xxdialogMode == 2) && (xxdialogTag == 'otpauth-hardware-manage')) { dialogclose(0); }
- if (xxdialogMode || ((features & 4096) == 0)) return;
+ if (xxdialogMode || ((features & 4096) == 0)) return false;
meshserver.send({ action: 'otp-hkey-get' });
+ return false;
}
function account_addhkey(type) {
@@ -6024,12 +6048,14 @@
function account_enableNotifications() {
if (Notification) { Notification.requestPermission().then(function (permission) { QV('accountEnableNotificationsSpan', permission != "granted"); }); }
+ return false;
}
function account_showVerifyEmail() {
- if (xxdialogMode || (userinfo.emailVerified == true) || (serverinfo.emailcheck != true)) return;
+ if (xxdialogMode || (userinfo.emailVerified == true) || (serverinfo.emailcheck != true)) return false;
var x = "Click ok to send a verification mail to:
" + EscapeHtml(userinfo.email) + "
Please wait a few minute to receive the verification.";
setDialogMode(2, "Email Verification", 3, account_showVerifyEmailEx, x);
+ return false;
}
function account_showVerifyEmailEx() {
@@ -6037,13 +6063,14 @@
}
function account_showChangeEmail() {
- if (xxdialogMode) return;
+ if (xxdialogMode) return false;
var x = "Change your account email address here.
";
x += addHtmlValue('Email', '');
setDialogMode(2, "Email Address Change", 3, account_changeEmail, x);
if (userinfo.email != null) { Q('dp2email').value = userinfo.email; }
account_validateEmail();
Q('dp2email').focus();
+ return false;
}
function account_validateEmail(e, email) {
@@ -6056,7 +6083,7 @@
}
function account_showDeleteAccount() {
- if (xxdialogMode) return;
+ if (xxdialogMode) return false;
var x = "To delete this account, type in the account password in both boxes below and hit ok.