mirror of
https://github.com/Ylianst/MeshCentral.git
synced 2024-11-22 22:17:31 +03:00
UI improvements
This commit is contained in:
parent
dcab344df6
commit
0cbd98e7d6
@ -128,7 +128,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain) {
|
||||
obj.db.getStats(function (data) {
|
||||
var os = require('os');
|
||||
var stats = { action: 'serverstats', totalmem: os.totalmem(), freemem: os.freemem() };
|
||||
if (obj.parent.parent.platform != 'win32') { stats.cpuavg = os.loadavg(); } //else { stats.cpuavg = [ 0.2, 0.5, 0.6 ]; }
|
||||
if (obj.parent.parent.platform != 'win32') { stats.cpuavg = os.loadavg(); } // else { stats.cpuavg = [ 0.2435345, 0.523234234, 0.6435345345 ]; }
|
||||
var serverStats = { "User Accounts": Object.keys(obj.parent.users).length, "Device Groups": Object.keys(obj.parent.meshes).length, "Connected Agents": Object.keys(obj.parent.wsagents).length, "Connected Users": Object.keys(obj.parent.wssessions2).length };
|
||||
if (obj.parent.parent.mpsserver != null) { serverStats['Connected Intel® AMT'] = Object.keys(obj.parent.parent.mpsserver.ciraConnections).length; }
|
||||
stats.values = { "Server State": serverStats, "Database": { "Records": data.total, "Users": data.users, "Device Groups": data.meshes, "Devices": data.nodes, "Device NetInfo": data.nodeInterfaces, "Device Power Event": data.powerEvents, "Notes": data.notes, "Connection Records": data.connectEvents } }
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "meshcentral",
|
||||
"version": "0.2.1-x",
|
||||
"version": "0.2.1-z",
|
||||
"keywords": [
|
||||
"Remote Management",
|
||||
"Intel AMT",
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.8 KiB |
@ -674,6 +674,29 @@ a {
|
||||
width: 28px;
|
||||
}
|
||||
|
||||
.backButtonEx {
|
||||
margin-left:2px;
|
||||
margin-top:2px;
|
||||
background: url(../images/views.png) -140px 0px;
|
||||
height: 28px;
|
||||
width: 28px;
|
||||
}
|
||||
|
||||
.backButton {
|
||||
width:32px;
|
||||
height:32px;
|
||||
background-color:#DDD;
|
||||
border-radius:3px;
|
||||
float:left;
|
||||
margin-right:5px;
|
||||
cursor: pointer;
|
||||
opacity: 0.3;
|
||||
}
|
||||
.backButton:hover {
|
||||
opacity: 0.5;
|
||||
background-color:#AAA;
|
||||
}
|
||||
|
||||
.hoverButton {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -243,11 +243,11 @@
|
||||
</div>
|
||||
</div>
|
||||
<br style=clear:both />
|
||||
<strong>Meshes</strong>
|
||||
<strong>Device Groups</strong>
|
||||
( <a onclick=account_createMesh() style=cursor:pointer><img height=12 src="images/icon-addnew.png" width=12 border=0 /> New</a> )
|
||||
<br /><br />
|
||||
<div id=p3meshes></div>
|
||||
<div id=p3noMeshFound style=margin-left:9px;display:none>No meshes. <a onclick=account_createMesh() style=cursor:pointer><strong>Get started here!</strong></a></div>
|
||||
<div id=p3noMeshFound style=margin-left:9px;display:none>No device groups. <a onclick=account_createMesh() style=cursor:pointer><strong>Get started here!</strong></a></div>
|
||||
<br style=clear:both />
|
||||
</div>
|
||||
</div>
|
||||
@ -953,9 +953,9 @@
|
||||
function account_createMesh() {
|
||||
if (xxdialogMode) return;
|
||||
var x = addHtmlValue('Name', '<input id=dp3meshname style=width:170px maxlength=64 onchange=account_validateMeshCreate() onkeyup=account_validateMeshCreate() />');
|
||||
x += addHtmlValue('Type', '<div style=width:170px;margin:0;padding:0><select id=dp3meshtype style=width:100% onchange=account_validateMeshCreate() ><option value=2>Mesh Agent Policy</option><option value=1>Intel® AMT Agent-less Policy</option></select></div>');
|
||||
x += addHtmlValue('Type', '<div style=width:170px;margin:0;padding:0><select id=dp3meshtype style=width:100% onchange=account_validateMeshCreate() ><option value=2>Software Agent Group</option><option value=1>Intel® AMT only</option></select></div>');
|
||||
x += addHtmlValue('Description', '<div style=width:170px;margin:0;padding:0><textarea id=dp3meshdesc maxlength=1024 style=width:100%;resize:none></textarea></div>');
|
||||
setDialogMode(2, "Create Mesh", 3, account_createMeshEx, x);
|
||||
setDialogMode(2, "Create Device Group", 3, account_createMeshEx, x);
|
||||
account_validateMeshCreate();
|
||||
Q('dp3meshname').focus();
|
||||
}
|
||||
@ -1472,7 +1472,7 @@
|
||||
var x = '<table style=width:100%>';
|
||||
|
||||
// Attribute: Mesh
|
||||
x += addDeviceAttribute('<span title="The name of the administrative group this computer belong to">Mesh</span>', '<a title="The name of the group this computer belong to" onclick=goForward("' + node.meshid + '") style=cursor:pointer>' + EscapeHtml(meshes[node.meshid].name) + '</a>');
|
||||
x += addDeviceAttribute('<span title="The name of the device group this computer belong to">Group</span>', '<a title="The name of the device group this computer belong to" onclick=goForward("' + node.meshid + '") style=cursor:pointer>' + EscapeHtml(meshes[node.meshid].name) + '</a>');
|
||||
|
||||
// Attribute: Name
|
||||
if (node.rname != null) { x += addDeviceAttribute('<span title="The name of this computer as set in the operating system">Name</span>', '<span title="The name of this computer as set in the operating system">' + EscapeHtml(node.rname) + '</span>'); }
|
||||
@ -1504,7 +1504,7 @@
|
||||
var str = '';
|
||||
if (node.agent.id <= agentsStr.length) { str = agentsStr[node.agent.id]; } else { str = agentsStr[0]; }
|
||||
if (node.agent.ver != 0) { str += ' v' + node.agent.ver; }
|
||||
x += addDeviceAttribute('Mesh Agent', str);
|
||||
x += addDeviceAttribute('Agent', str);
|
||||
}
|
||||
|
||||
// Attribute: Intel AMT
|
||||
@ -1552,17 +1552,17 @@
|
||||
var connectivity = node.conn;
|
||||
if (connectivity && connectivity > 1) {
|
||||
var cstate = [];
|
||||
if ((node.conn & 1) != 0) cstate.push('<span title="Mesh agent is connected and ready for use.">Mesh Agent</span>');
|
||||
if ((node.conn & 1) != 0) cstate.push('<span title="Software agent is connected and ready for use.">Agent</span>');
|
||||
if ((node.conn & 2) != 0) cstate.push('<span title="Intel® AMT CIRA is connected and ready for use.">Intel® AMT CIRA</span>');
|
||||
if ((node.conn & 4) != 0) cstate.push('<span title="Intel® AMT is routable and ready for use.">Intel® AMT</span>');
|
||||
if ((node.conn & 8) != 0) cstate.push('<span title="Mesh agent is reachable using another agent as relay.">Mesh Relay</span>');
|
||||
if ((node.conn & 8) != 0) cstate.push('<span title="Software agent is reachable using another agent as relay.">Agent Relay</span>');
|
||||
x += addDeviceAttribute('Connectivity', cstate.join(', '));
|
||||
}
|
||||
|
||||
// Node grouping tags
|
||||
// Node tags
|
||||
var groupingTags = '<i>None</i>';
|
||||
if (node.tags != null) { groupingTags = ''; for (var i in node.tags) { groupingTags += '<span style="background-color:lightgray;padding:3px;margin-right:4px;border-radius:5px">' + node.tags[i] + '</span>'; } }
|
||||
x += addDeviceAttribute('Groups', '<span onclick=showEditNodeValueDialog(3) style=cursor:pointer>' + groupingTags + '</span>');
|
||||
x += addDeviceAttribute('Tags', '<span onclick=showEditNodeValueDialog(3) style=cursor:pointer>' + groupingTags + '</span>');
|
||||
|
||||
x += '</table><br />';
|
||||
// Show action button, only show if we have permissions 4, 8, 64
|
||||
@ -1792,7 +1792,7 @@
|
||||
meshserver.send({ action: 'changedevice', nodeid: currentNode._id, icon: icon });
|
||||
}
|
||||
|
||||
var showEditNodeValueDialog_modes = ['Device Name', 'Hostname', 'Description', 'Groups'];
|
||||
var showEditNodeValueDialog_modes = ['Device Name', 'Hostname', 'Description', 'Tags'];
|
||||
var showEditNodeValueDialog_modes2 = ['name', 'host', 'desc', 'tags'];
|
||||
var showEditNodeValueDialog_modes3 = ['', '', '', 'Group1, Group2, Group3'];
|
||||
function showEditNodeValueDialog(mode) {
|
||||
@ -2577,7 +2577,7 @@
|
||||
var meshtype = 'Unknown #' + currentMesh.mtype;
|
||||
var meshrights = currentMesh.links['user/' + domain + '/' + userinfo.name.toLowerCase()].rights;
|
||||
if (currentMesh.mtype == 1) meshtype = 'Intel® AMT group';
|
||||
if (currentMesh.mtype == 2) meshtype = 'Mesh agent group';
|
||||
if (currentMesh.mtype == 2) meshtype = 'Software agent group';
|
||||
|
||||
var x = '';
|
||||
x += addHtmlValue('Name', addLinkConditional(EscapeHtml(currentMesh.name), 'p20editmesh(1)', (meshrights & 1) != 0));
|
||||
@ -2665,7 +2665,7 @@
|
||||
if (xxdialogMode) return;
|
||||
var x = addHtmlValue('Name', '<input id=dp20meshname style=width:170px maxlength=32 onchange=p20editmeshValidate() onkeyup=p20editmeshValidate() />');
|
||||
x += addHtmlValue('Description', '<input id=dp20meshdesc style=width:170px maxlength=1024 onkeyup=p20editmeshValidate() />');
|
||||
setDialogMode(2, "Edit Mesh", 3, p20editmeshEx, x);
|
||||
setDialogMode(2, "Edit Device Group", 3, p20editmeshEx, x);
|
||||
Q('dp20meshname').value = currentMesh.name;
|
||||
if (currentMesh.desc) Q('dp20meshdesc').value = currentMesh.desc;
|
||||
p20editmeshValidate();
|
||||
@ -2685,9 +2685,9 @@
|
||||
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:80px;overflow-y:scroll">';
|
||||
x += '<input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20fulladmin>Full Administrator<br>';
|
||||
x += '<input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20editmesh>Edit Mesh<br>';
|
||||
x += '<input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20manageusers>Manage Mesh Users<br>';
|
||||
x += '<input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20managecomputers>Manage Mesh Computers<br>';
|
||||
x += '<input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20editmesh>Edit Device Group<br>';
|
||||
x += '<input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20manageusers>Manage Device Group Users<br>';
|
||||
x += '<input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20managecomputers>Manage Device Group Computers<br>';
|
||||
x += '<input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20remotecontrol>Remote Control<br>';
|
||||
x += '<input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20meshagentconsole>Mesh Agent Console<br>';
|
||||
x += '<input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20meshserverfiles>Server Files<br>';
|
||||
@ -2733,9 +2733,9 @@
|
||||
userid = decodeURIComponent(userid);
|
||||
var r = '', cmeshrights = currentMesh.links['user/' + domain + '/' + userinfo.name.toLowerCase()].rights, meshrights = currentMesh.links[userid].rights;
|
||||
if (meshrights == 0xFFFFFFFF) r = ', Full Administrator'; else {
|
||||
if ((meshrights & 1) != 0) r += ', Edit Mesh';
|
||||
if ((meshrights & 2) != 0) r += ', Manage Mesh Users';
|
||||
if ((meshrights & 4) != 0) r += ', Manage Mesh Computers';
|
||||
if ((meshrights & 1) != 0) r += ', Edit Device Group';
|
||||
if ((meshrights & 2) != 0) r += ', Manage Device Group Users';
|
||||
if ((meshrights & 4) != 0) r += ', Manage Device Group Computers';
|
||||
if ((meshrights & 8) != 0) r += ', Remote Control';
|
||||
if ((meshrights & 16) != 0) r += ', Agent Console';
|
||||
if ((meshrights & 32) != 0) r += ', Server Files';
|
||||
|
@ -367,7 +367,8 @@
|
||||
<table style="width:100%" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td style=width:auto valign=top>
|
||||
<div id="p10title">
|
||||
<div id=p10title>
|
||||
<div style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
|
||||
<h1>General - <span id=p10deviceName></span></h1>
|
||||
</div>
|
||||
<div id=p10html></div>
|
||||
@ -385,6 +386,7 @@
|
||||
<div id=p11 style=display:none>
|
||||
<div id="p11title">
|
||||
<div id=p11deviceNameHeader>
|
||||
<div style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
|
||||
<div style="float:right" id="devListToolbarViewIcons"><div class="viewSelector" onclick=deskToggleFull() title="Full Screen"><div class="viewSelector5"></div></div></div>
|
||||
<h1>Desktop - <span id=p11deviceName></span></h1>
|
||||
</div>
|
||||
@ -466,7 +468,10 @@
|
||||
</table>
|
||||
</div>
|
||||
<div id=p12 style="display:none">
|
||||
<div id="p12title"><h1>Terminal - <span id=p12deviceName></span></h1></div>
|
||||
<div id="p12title">
|
||||
<div style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
|
||||
<h1>Terminal - <span id=p12deviceName></span></h1>
|
||||
</div>
|
||||
<div id="p12warning" style='max-width:100%;display:none;cursor:pointer;margin-bottom:5px' onclick=showFeaturesDlg()>
|
||||
<div class="icon2" style="float:left;margin:7px"></div>
|
||||
<div style='width:auto;border-radius:8px;padding:8px;background-color:lightsalmon'>Intel® AMT Redirection port or KVM feature is disabled<span id="p14warninga">, click here to enable it.</span></div>
|
||||
@ -524,7 +529,10 @@
|
||||
</table>
|
||||
</div>
|
||||
<div id=p13 style=display:none>
|
||||
<div id="p13title"><h1>Files - <span id=p13deviceName></span></h1></div>
|
||||
<div id="p13title">
|
||||
<div style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
|
||||
<h1>Files - <span id=p13deviceName></span></h1>
|
||||
</div>
|
||||
<table id="p13toolbar" style="width: 100%" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td style="background-color:#C0C0C0;border-bottom:2px solid black;padding:2px">
|
||||
@ -581,11 +589,17 @@
|
||||
</table>
|
||||
</div>
|
||||
<div id=p14 style=display:none>
|
||||
<div id="p14title"><h1>Intel® AMT - <span id=p14deviceName></span></h1></div>
|
||||
<div id="p14title">
|
||||
<div style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
|
||||
<h1>Intel® AMT - <span id=p14deviceName></span></h1>
|
||||
</div>
|
||||
<iframe id=p14iframe style="width:100%;height:calc(100vh - 242px);border:0;overflow:hidden" src="/commander.htm"></iframe>
|
||||
</div>
|
||||
<div id=p15 style=display:none>
|
||||
<div id="p15title"><h1>Console - <span id=p15deviceName></span></h1></div>
|
||||
<div id="p15title">
|
||||
<div style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
|
||||
<h1>Console - <span id=p15deviceName></span></h1>
|
||||
</div>
|
||||
<table cellpadding=0 cellspacing=0 style="width:100%;padding:0px;padding:0px;margin-top:0px">
|
||||
<tr>
|
||||
<td style=background:#C0C0C0>
|
||||
@ -622,7 +636,10 @@
|
||||
</table>
|
||||
</div>
|
||||
<div id=p16 style=display:none>
|
||||
<div id="p16title"><h1>Events - <span id=p16deviceName></span></h1></div>
|
||||
<div id="p16title">
|
||||
<div style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
|
||||
<h1>Events - <span id=p16deviceName></span></h1>
|
||||
</div>
|
||||
<div style=width:100%;height:24px;background-color:#d3d9d6;margin-bottom:4px>
|
||||
<div class=style7 style=width:16px;height:100%;float:left> </div>
|
||||
<div class=h1 style=height:100%;float:left> </div>
|
||||
@ -645,7 +662,8 @@
|
||||
</div>
|
||||
<div id=p20 style="display:none">
|
||||
<img id=MainMeshImage src="images/mesh-200.png" style=border-width:0px;height:200px;width:200px;float:right>
|
||||
<h1><span id=p20meshName></span> - General</h1>
|
||||
<div style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
|
||||
<h1>General - <span id=p20meshName></span></h1>
|
||||
<p id=p20info></p>
|
||||
</div>
|
||||
<div id=p30 style=display:none>
|
||||
@ -653,7 +671,8 @@
|
||||
<tr>
|
||||
<td style=width:auto valign=top>
|
||||
<div id="p30title">
|
||||
<h1><span id=p30userName></span> - General</h1>
|
||||
<div style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
|
||||
<h1>General - <span id=p30userName></span></h1>
|
||||
</div>
|
||||
<div id=p30html></div>
|
||||
</td>
|
||||
@ -668,7 +687,8 @@
|
||||
<div id=p30html3></div>
|
||||
</div>
|
||||
<div id=p31 style=display:none>
|
||||
<h1><span id=p31userName></span> - Events</h1>
|
||||
<div style="float:left"><div class="backButton" onclick=goBack() title="Back"><div class="backButtonEx"></div></div></div>
|
||||
<h1>Events - <span id=p31userName></span></h1>
|
||||
<div style=width:100%;height:24px;background-color:#d3d9d6;margin-bottom:4px>
|
||||
<div class=style7 style=width:16px;height:100%;float:left> </div>
|
||||
<div class=h1 style=height:100%;float:left> </div>
|
||||
@ -3523,9 +3543,9 @@
|
||||
meshserver.send({ action: 'changedevice', nodeid: currentNode._id, icon: icon });
|
||||
}
|
||||
|
||||
var showEditNodeValueDialog_modes = ['Device Name', 'Hostname', 'Description', 'Groups'];
|
||||
var showEditNodeValueDialog_modes = ['Device Name', 'Hostname', 'Description', 'Tags'];
|
||||
var showEditNodeValueDialog_modes2 = ['name', 'host', 'desc', 'tags'];
|
||||
var showEditNodeValueDialog_modes3 = ['', '', '', 'Group1, Group2, Group3'];
|
||||
var showEditNodeValueDialog_modes3 = ['', '', '', 'Tag1, Tag2, Tag3'];
|
||||
function showEditNodeValueDialog(mode) {
|
||||
if (xxdialogMode) return;
|
||||
var x = addHtmlValue(showEditNodeValueDialog_modes[mode], '<input id=dp10devicevalue style=width:230px maxlength=64 placeholder="' + showEditNodeValueDialog_modes3[mode] + '" onchange=p10editdevicevalueValidate(' + mode + ',event) onkeyup=p10editdevicevalueValidate(' + mode + ',event) />');
|
||||
@ -4651,7 +4671,7 @@
|
||||
Q('p15agentConsoleText').scrollTop = Q('p15agentConsoleText').scrollHeight;
|
||||
}
|
||||
var online = ((consoleNode.conn & 1) != 0)?true:false;
|
||||
QH('p15statetext', online?"Mesh Agent is online":"Mesh Agent is offline");
|
||||
QH('p15statetext', online?"Agent is online":"Agent is offline");
|
||||
QE('p15consoleText', online);
|
||||
QE('p15uploadCore', online);
|
||||
} else {
|
||||
@ -4993,7 +5013,7 @@
|
||||
var trash = '', rights = 'Partial Rights', r = sortedusers[i].rights;
|
||||
if (r == 0xFFFFFFFF) rights = 'Full Administrator'; 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) + '") title="Remote user rights to this mesh" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>'; }
|
||||
x += '<tr onclick=p20viewuser("' + encodeURIComponent(sortedusers[i].id) + '") style=cursor:pointer' + (((count % 2) == 0)?';background-color:#DDD':'') + '><td><div title="Mesh User" class=m2></div><div> ' + sortedusers[i].name + '<div></div></div></td><td><div style=float:right>' + trash + '</div><div>' + rights + '</div></td></tr>';
|
||||
x += '<tr onclick=p20viewuser("' + encodeURIComponent(sortedusers[i].id) + '") style=cursor:pointer' + (((count % 2) == 0)?';background-color:#DDD':'') + '><td><div title="User" class=m2></div><div> ' + sortedusers[i].name + '<div></div></div></td><td><div style=float:right>' + trash + '</div><div>' + rights + '</div></td></tr>';
|
||||
++count;
|
||||
}
|
||||
|
||||
@ -5059,9 +5079,9 @@
|
||||
x += addHtmlValue('User Name', '<input id=dp20username style=width:230px maxlength=32 onchange=p20validateAddMeshUserDialog() onkeyup=p20validateAddMeshUserDialog() />');
|
||||
x += '<br><div>';
|
||||
x += '<input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20fulladmin>Full Administrator<br>';
|
||||
x += '<input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20editmesh>Edit Mesh<br>';
|
||||
x += '<input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20manageusers>Manage Mesh Users<br>';
|
||||
x += '<input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20managecomputers>Manage Mesh Computers<br>';
|
||||
x += '<input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20editmesh>Edit Device Group<br>';
|
||||
x += '<input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20manageusers>Manage Device Group Users<br>';
|
||||
x += '<input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20managecomputers>Manage Device Group Computers<br>';
|
||||
x += '<input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20remotecontrol>Remote Control<br>';
|
||||
x += '<input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20meshagentconsole>Mesh Agent Console<br>';
|
||||
x += '<input type=checkbox onchange=p20validateAddMeshUserDialog() id=p20meshserverfiles>Server Files<br>';
|
||||
@ -5107,9 +5127,9 @@
|
||||
userid = decodeURIComponent(userid);
|
||||
var r = '', cmeshrights = currentMesh.links['user/' + domain + '/' + userinfo.name.toLowerCase()].rights, meshrights = currentMesh.links[userid].rights;
|
||||
if (meshrights == 0xFFFFFFFF) r = ', Full Administrator (all rights)'; else {
|
||||
if ((meshrights & 1) != 0) r += ', Edit Mesh';
|
||||
if ((meshrights & 2) != 0) r += ', Manage Mesh Users';
|
||||
if ((meshrights & 4) != 0) r += ', Manage Mesh Computers';
|
||||
if ((meshrights & 1) != 0) r += ', Edit Device Group';
|
||||
if ((meshrights & 2) != 0) r += ', Manage Device Group Users';
|
||||
if ((meshrights & 4) != 0) r += ', Manage Device Group Computers';
|
||||
if ((meshrights & 8) != 0) r += ', Remote Control';
|
||||
if ((meshrights & 16) != 0) r += ', Agent Console';
|
||||
if ((meshrights & 32) != 0) r += ', Server Files';
|
||||
@ -6041,7 +6061,7 @@
|
||||
if (typeof message.cpuavg == 'object') {
|
||||
var m = Math.min(message.cpuavg[0], 1);
|
||||
window.serverStatCpu.config.data.datasets[0].data = [m, 1 - m];
|
||||
QH('serverCpuChartText', '<div style=margin-bottom:5px>CPU Load</div><div><b title="CPU load in the last minute">' + message.cpuavg[0] + '</b>%, <b title="CPU load in the last 5 minutes">' + message.cpuavg[1] + '</b>%, <b title="CPU load in the 15 minutes">' + message.cpuavg[2] + '</b>%</div>');
|
||||
QH('serverCpuChartText', '<div style=margin-bottom:5px>CPU Load</div><div><b title="CPU load in the last minute">' + (Math.round(message.cpuavg[0] * 100.0) / 100.0) + '</b>, <b title="CPU load in the last 5 minutes">' + (Math.round(message.cpuavg[1] * 100.0) / 100.0) + '</b>, <b title="CPU load in the 15 minutes">' + (Math.round(message.cpuavg[2] * 100.0) / 100.0) + '</b></div>');
|
||||
QS('serverCpuChartView')['display'] = 'inline-block';
|
||||
window.serverStatCpu.update();
|
||||
}
|
||||
@ -6110,6 +6130,13 @@
|
||||
function statusbox(t, m) { QH('id_dialogMessage', m); setDialogMode(1, t); }
|
||||
function getDocWidth() { if (window.innerWidth) return window.innerWidth; if (document.documentElement && document.documentElement.clientWidth && document.documentElement.clientWidth != 0) return document.documentElement.clientWidth; return document.getElementsByTagName('body')[0].clientWidth; }
|
||||
|
||||
function goBack() {
|
||||
if (xxdialogMode) return;
|
||||
if ((xxcurrentView >= 10) && (xxcurrentView < 20)) { go(1); } // Return to My Devices
|
||||
if ((xxcurrentView >= 20) && (xxcurrentView < 30)) { go(2); } // Return to My Account
|
||||
if ((xxcurrentView >= 30) && (xxcurrentView < 40)) { go(4); } // Return to My Users
|
||||
}
|
||||
|
||||
function go(x) {
|
||||
if (xxdialogMode || xxcurrentView == x) return;
|
||||
// Edit this line when adding a new screen
|
||||
|
Loading…
Reference in New Issue
Block a user