mirror of
https://github.com/Ylianst/MeshCentral.git
synced 2024-12-24 06:05:53 -05:00
Fixed X11 detect, added browser full screen.
This commit is contained in:
parent
2f7399cd58
commit
1f4816db21
@ -36,11 +36,25 @@
|
||||
<Compile Include="agents\modules_meshcore\amt-lme.js" />
|
||||
<Compile Include="agents\modules_meshcore\amt-mei.js" />
|
||||
<Compile Include="agents\modules_meshcore\amt-scanner.js" />
|
||||
<Compile Include="agents\modules_meshcore\amt-wsman-duk.js" />
|
||||
<Compile Include="agents\modules_meshcore\amt-wsman.js" />
|
||||
<Compile Include="agents\modules_meshcore\amt-xml.js" />
|
||||
<Compile Include="agents\modules_meshcore\amt.js" />
|
||||
<Compile Include="agents\modules_meshcore\linux-dbus.js" />
|
||||
<Compile Include="agents\modules_meshcore\monitor-border.js" />
|
||||
<Compile Include="agents\modules_meshcore\monitor-info.js" />
|
||||
<Compile Include="agents\modules_meshcore\power-monitor.js" />
|
||||
<Compile Include="agents\modules_meshcore\process-manager.js" />
|
||||
<Compile Include="agents\modules_meshcore\promise.js" />
|
||||
<Compile Include="agents\modules_meshcore\service-manager.js" />
|
||||
<Compile Include="agents\modules_meshcore\smbios.js" />
|
||||
<Compile Include="agents\modules_meshcore\toaster.js" />
|
||||
<Compile Include="agents\modules_meshcore\user-sessions.js" />
|
||||
<Compile Include="agents\modules_meshcore\wifi-scanner-windows.js" />
|
||||
<Compile Include="agents\modules_meshcore\wifi-scanner.js" />
|
||||
<Compile Include="agents\modules_meshcore\win-console.js" />
|
||||
<Compile Include="agents\modules_meshcore\win-message-pump.js" />
|
||||
<Compile Include="agents\modules_meshcore\win-registry.js" />
|
||||
<Compile Include="agents\testsuite.js" />
|
||||
<Compile Include="agents\tinycore.js" />
|
||||
<Compile Include="amtevents.js" />
|
||||
|
@ -19,6 +19,7 @@ process.on('uncaughtException', function (ex) {
|
||||
require('MeshAgent').SendCommand({ "action": "msg", "type": "console", "value": "uncaughtException1: " + ex });
|
||||
});
|
||||
|
||||
// NOTE: This seems to cause big problems, don't enable the debugger in the server's meshcore.
|
||||
//attachDebugger({ webport: 9999, wait: 1 }).then(function (prt) { console.log('Point Browser for Debug to port: ' + prt); });
|
||||
|
||||
// Mesh Rights
|
||||
|
File diff suppressed because one or more lines are too long
@ -44,24 +44,18 @@ function monitorinfo()
|
||||
if (info._user32.EnumDisplayMonitors(0, 0, this._monitorinfo.callback, this._monitorinfo.dwData).Val == 0) {
|
||||
rejector('LastError=' + info._kernel32.GetLastError().Val);
|
||||
return;
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
resolver(this._monitorinfo.callback.results);
|
||||
}
|
||||
|
||||
}));
|
||||
}
|
||||
}
|
||||
else if(process.platform == 'linux')
|
||||
else if (process.platform == 'linux')
|
||||
{
|
||||
// First thing we need to do, is determine where the X11 libraries are
|
||||
var askOS = false;
|
||||
try
|
||||
{
|
||||
if (require('user-sessions').isRoot()) { askOS = true; }
|
||||
}
|
||||
catch (e)
|
||||
{ }
|
||||
try { if (require('user-sessions').isRoot()) { askOS = true; } } catch (e) { }
|
||||
|
||||
if (askOS)
|
||||
{
|
||||
@ -74,17 +68,15 @@ function monitorinfo()
|
||||
|
||||
var paths = p.stdout._lines.split('\n');
|
||||
var searchPath = '';
|
||||
for (var i in paths)
|
||||
{
|
||||
if (paths[i].endsWith(':'))
|
||||
{
|
||||
for (var i in paths) {
|
||||
if (paths[i].endsWith(':')) {
|
||||
searchPath = paths[i].substring(0, paths[i].length - 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (paths[i].split('libX11.').length > 1) { Object.defineProperty(this, 'Location_X11LIB', { value: searchPath + '/' + paths[i].split('->')[1].trim() }); }
|
||||
if (paths[i].split('libXtst.').length > 1) { Object.defineProperty(this, 'Location_X11TST', { value: searchPath + '/' + paths[i].split('->')[1].trim() }); }
|
||||
if (paths[i].split('libXext.').length > 1) { Object.defineProperty(this, 'Location_X11EXT', { value: searchPath + '/' + paths[i].split('->')[1].trim() }); }
|
||||
} else {
|
||||
try { // Added by Ylian: Try/catch to fix X11 detection, not sure if this is correct.
|
||||
if (paths[i].split('libX11.').length > 1) { Object.defineProperty(this, 'Location_X11LIB', { value: searchPath + '/' + paths[i].split('->')[1].trim() }); }
|
||||
if (paths[i].split('libXtst.').length > 1) { Object.defineProperty(this, 'Location_X11TST', { value: searchPath + '/' + paths[i].split('->')[1].trim() }); }
|
||||
if (paths[i].split('libXext.').length > 1) { Object.defineProperty(this, 'Location_X11EXT', { value: searchPath + '/' + paths[i].split('->')[1].trim() }); }
|
||||
} catch (ex) { }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "meshcentral",
|
||||
"version": "0.2.3-h",
|
||||
"version": "0.2.3-k",
|
||||
"keywords": [
|
||||
"Remote Management",
|
||||
"Intel AMT",
|
||||
@ -40,7 +40,6 @@
|
||||
"multiparty": "^4.2.1",
|
||||
"nedb": "^1.8.0",
|
||||
"node-forge": "^0.7.6",
|
||||
"node-windows": "^0.1.14",
|
||||
"ws": "^6.1.2",
|
||||
"xmldom": "^0.1.27",
|
||||
"yauzl": "^2.9.1"
|
||||
|
File diff suppressed because one or more lines are too long
@ -383,11 +383,11 @@
|
||||
<div id=p10html2></div>
|
||||
<div id=p10html3></div>
|
||||
</div>
|
||||
<div id=p11 style=display:none>
|
||||
<div id=p11 class=noselect 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>
|
||||
<div style="float:right" id="devListToolbarViewIcons"><div class="viewSelector" onclick=deskToggleFull(event) title="Full Screen. Hold shift to browser full screen."><div class="viewSelector5"></div></div></div>
|
||||
<h1>Desktop - <span id=p11deviceName></span></h1>
|
||||
</div>
|
||||
</div>
|
||||
@ -399,7 +399,7 @@
|
||||
<div class=icon2 style="float:left;margin:7px"></div>
|
||||
<div style='width:auto;border-radius:8px;padding:8px;background-color:lightsalmon'>Remote computer is not powered on, click here to issue a power command.</div>
|
||||
</div>
|
||||
<table cellpadding=0 cellspacing=0 style="width:100%;padding:0px;padding:0px;margin-top:0px">
|
||||
<table id=deskarea0 cellpadding=0 cellspacing=0 style="width:100%;padding:0px;padding:0px;margin-top:0px">
|
||||
<tr id=deskarea1>
|
||||
<td style="padding-top:2px;padding-bottom:2px;background:#C0C0C0">
|
||||
<div style="float:right;text-align:right">
|
||||
@ -409,11 +409,11 @@
|
||||
<input id="deskFocusBtn" type="button" title="Toggle focus mode, when active only the region around the mouse is updated" onkeypress="return false" onkeydown="return false" value="Focus All" onclick="deskToggleFocus()" style="margin-right:3px;display:none">
|
||||
<input id="deskSaveBtn" type="button" title="Save a screenshot of the remote desktop" onkeypress="return false" onkeydown="return false" value="Save..." onclick=deskSaveImage() style=margin-right:3px>
|
||||
<input id="deskActionsBtn" type=button title="Perform power actions on the device" onkeypress="return false" onkeydown="return false" value=Actions onclick=deviceActionFunction() style=margin-right:3px />
|
||||
<input type="button" value="Settings..." title="Edit remote desktop settings" onkeypress="return false" onkeydown="return false" onclick="showDesktopSettings()" style="margin-right:3px">
|
||||
<input id="deskActionsSettings" type="button" value="Settings..." title="Edit remote desktop settings" onkeypress="return false" onkeydown="return false" onclick="showDesktopSettings()" style="margin-right:3px">
|
||||
<input type="button" title="Change the power state of the remote machine" onkeypress="return false" onkeydown="return false" value="Power Actions..." onclick="showPowerActionDlg()" style="margin-right:3px;display:none">
|
||||
</div>
|
||||
<div>
|
||||
<div id="idx_deskFullBtn2" onclick=deskToggleFull() style="float:left;font-size:large;cursor:pointer;display:none"> ✖</div>
|
||||
<div id="idx_deskFullBtn2" onclick=deskToggleFull(event) style="float:left;font-size:large;cursor:pointer;display:none"> ✖</div>
|
||||
<input type="button" id="autoconnectbutton1" value="AutoConnect" onclick=autoConnectDesktop(event) onkeypress="return false" onkeydown="return false" style="display:none">
|
||||
<span id=connectbutton1span> <input type=button id=connectbutton1 value="Connect" onclick=connectDesktop(event,1) onkeypress="return false" onkeydown="return false" disabled="disabled"></span>
|
||||
<span id=connectbutton1hspan> <input type=button id=connectbutton1h value="HW Connect" onclick=connectDesktop(event,2) onkeypress="return false" onkeydown="return false" disabled="disabled"></span>
|
||||
@ -3688,9 +3688,11 @@
|
||||
QE('deskkeys', deskState == 3);
|
||||
QV('DeskToolsButton', meshrights & 8);
|
||||
QE('DeskToolsButton', online);
|
||||
QV('DeskToastButton', (currentNode.agent) && (currentNode.agent.id < 5) && (meshrights & 8));
|
||||
QV('DeskToastButton', (currentNode.agent) && (currentNode.agent.id < 5) && (meshrights & 8) && (browserfullscreen == false));
|
||||
QE('DeskToastButton', online);
|
||||
QV('DeskControlSpan', meshrights & 8)
|
||||
QV('deskActionsBtn', (browserfullscreen == false));
|
||||
QV('deskActionsSettings', (browserfullscreen == false));
|
||||
if (meshrights & 8) { Q('DeskControl').checked = (getstore('DeskControl', 1) == 1); } else { Q('DeskControl').checked = false; }
|
||||
if (online == false) QV('DeskTools', false);
|
||||
}
|
||||
@ -3898,8 +3900,30 @@
|
||||
QV('deskFocusBtn', (desktop != null) && (desktop.contype == 2) && (desktop.state != 0) && (desktopsettings.showfocus));
|
||||
}
|
||||
|
||||
// Enter browser fullscreen
|
||||
function enterBrowserFullscreen(elem) {
|
||||
if (elem.requestFullscreen) { elem.requestFullscreen(); }
|
||||
else if (elem.msRequestFullscreen) { elem.msRequestFullscreen(); }
|
||||
else if (elem.mozRequestFullScreen) { elem.mozRequestFullScreen(); }
|
||||
else if (elem.webkitRequestFullscreen) { elem.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); }
|
||||
}
|
||||
|
||||
// Exit browser fullscreen
|
||||
function exitBrowserFullscreen() {
|
||||
if (document.exitFullscreen) { document.exitFullscreen(); }
|
||||
else if (document.msExitFullscreen) { document.msExitFullscreen(); }
|
||||
else if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); }
|
||||
else if (document.webkitExitFullscreen) { document.webkitExitFullscreen(); }
|
||||
}
|
||||
|
||||
// Return true if the browser is fullscreen. This is a delayed method that will return true/false late. Not very useful.
|
||||
function isBrowserFullscreen() {
|
||||
if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement) { return false; } else { return true; }
|
||||
}
|
||||
|
||||
var fullscreen = false;
|
||||
function deskToggleFull() {
|
||||
var browserfullscreen = false;
|
||||
function deskToggleFull(e) {
|
||||
fullscreen = !fullscreen;
|
||||
QV('mastheadx', !fullscreen);
|
||||
QV('masthead', !fullscreen);
|
||||
@ -3911,6 +3935,8 @@
|
||||
QV('deskFullBtn', !fullscreen);
|
||||
QV('page_leftbar', !fullscreen);
|
||||
if (fullscreen) {
|
||||
// If shift is pressed, enter browser full screen.
|
||||
if (e.shiftKey == true) { enterBrowserFullscreen(Q('deskarea0')); browserfullscreen = true; }
|
||||
QS('column_l').width = '930px';
|
||||
QS('column_l').height = '';
|
||||
QS('column_l')['margin-left'] = '';
|
||||
@ -3925,6 +3951,8 @@
|
||||
QS('column_l').width = '100%';
|
||||
QS('column_l')["max-height"] = '';
|
||||
} else {
|
||||
exitBrowserFullscreen();
|
||||
browserfullscreen = false;
|
||||
QS('container').width = '960px';
|
||||
QS('container')['border-right'] = '1px solid #b7b7b7';
|
||||
QS('container')['border-left'] = '1px solid #b7b7b7';
|
||||
@ -3934,6 +3962,7 @@
|
||||
}
|
||||
deskAdjust();
|
||||
deskAdjust();
|
||||
updateDesktopButtons();
|
||||
}
|
||||
|
||||
function deskToggleFocus() {
|
||||
|
Loading…
Reference in New Issue
Block a user