move menu content serverside
to control display based on options enabled, better UI experience. still in progress
This commit is contained in:
parent
4fbe42092a
commit
1f88e7c9b1
5 changed files with 28 additions and 30 deletions
|
@ -13,11 +13,7 @@
|
|||
<div id="bottomdiv">
|
||||
<div class="dropup" id="menu">
|
||||
<i class="fas fa-bars fa-fw"></i> Menu
|
||||
<div class="dropup-content">
|
||||
<a id="logBtn" href="javascript:void(0);"><i class="fas fa-clipboard fa-fw"></i> Start Log</a>
|
||||
<a id="downloadLogBtn" href="javascript:void(0);"><i class="fas fa-download fa-fw"></i> Download Log</a>
|
||||
<a id="credentialsBtn" href="javascript:void(0);"><i class="fas fa-key fa-fw"></i> Credentials</a>
|
||||
</div>
|
||||
<div id="dropupContent" class="dropup-content"></div>
|
||||
</div>
|
||||
<div id="footer"></div>
|
||||
<div id="status"></div>
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -7,6 +7,7 @@ var SSH = require('ssh2').Client
|
|||
// var fs = require('fs')
|
||||
// var hostkeys = JSON.parse(fs.readFileSync('./hostkeyhashes.json', 'utf8'))
|
||||
var termCols, termRows
|
||||
var menuData = '<a id="logBtn" href="javascript:void(0);"><i class="fas fa-clipboard fa-fw"></i> Start Log</a><a id="downloadLogBtn" href="javascript:void(0);"><i class="fas fa-download fa-fw"></i> Download Log</a>'
|
||||
|
||||
// public
|
||||
module.exports = function socket (socket) {
|
||||
|
@ -31,6 +32,7 @@ module.exports = function socket (socket) {
|
|||
conn.on('ready', function connOnReady () {
|
||||
console.log('WebSSH2 Login: user=' + socket.request.session.username + ' from=' + socket.handshake.address + ' host=' + socket.request.session.ssh.host + ' port=' + socket.request.session.ssh.port + ' sessionID=' + socket.request.sessionID + '/' + socket.id + ' mrhsession=' + socket.request.session.ssh.mrhsession + ' allowreplay=' + socket.request.session.ssh.allowreplay + ' term=' + socket.request.session.ssh.term)
|
||||
socket.emit('setTerminalOpts', socket.request.session.ssh.terminal)
|
||||
socket.emit('menu', menuData)
|
||||
socket.emit('title', 'ssh://' + socket.request.session.ssh.host)
|
||||
if (socket.request.session.ssh.header.background) socket.emit('headerBackground', socket.request.session.ssh.header.background)
|
||||
if (socket.request.session.ssh.header.name) socket.emit('header', socket.request.session.ssh.header.name)
|
||||
|
|
|
@ -13,11 +13,7 @@
|
|||
<div id="bottomdiv">
|
||||
<div class="dropup" id="menu">
|
||||
<i class="fas fa-bars fa-fw"></i> Menu
|
||||
<div class="dropup-content">
|
||||
<a id="logBtn" href="javascript:void(0);"><i class="fas fa-clipboard fa-fw"></i> Start Log</a>
|
||||
<a id="downloadLogBtn" href="javascript:void(0);"><i class="fas fa-download fa-fw"></i> Download Log</a>
|
||||
<a id="credentialsBtn" href="javascript:void(0);"><i class="fas fa-key fa-fw"></i> Credentials</a>
|
||||
</div>
|
||||
<div id="dropupContent" class="dropup-content"></div>
|
||||
</div>
|
||||
<div id="footer"></div>
|
||||
<div id="status"></div>
|
||||
|
|
|
@ -28,13 +28,9 @@ var sessionLogEnable = false
|
|||
var loggedData = false
|
||||
var sessionLog, sessionFooter, logDate, currentDate, myFile, errorExists
|
||||
|
||||
var downloadLogBtn = document.getElementById('downloadLogBtn')
|
||||
var credentialsBtn = document.getElementById('credentialsBtn')
|
||||
var logBtn = document.getElementById('logBtn')
|
||||
|
||||
logBtn.addEventListener('click', toggleLog)
|
||||
|
||||
logBtn.style.color = '#000'
|
||||
var statusID = document.getElementById('status')
|
||||
var headerID = document.getElementById('header')
|
||||
var menuID = document.getElementById('dropupContent')
|
||||
|
||||
var terminalContainer = document.getElementById('terminal-container')
|
||||
var socket, termid // eslint-disable-line
|
||||
|
@ -74,30 +70,38 @@ term.on('data', function (data) {
|
|||
})
|
||||
socket.on('title', function (data) {
|
||||
document.title = data
|
||||
}).on('menu', function (data) {
|
||||
menuID.innerHTML = data
|
||||
var downloadLogBtn = document.getElementById('downloadLogBtn')
|
||||
var credentialsBtn = document.getElementById('credentialsBtn')
|
||||
var logBtn = document.getElementById('logBtn')
|
||||
logBtn.addEventListener('click', toggleLog)
|
||||
logBtn.style.color = '#000'
|
||||
}).on('status', function (data) {
|
||||
document.getElementById('status').innerHTML = data
|
||||
statusID.innerHTML = data
|
||||
}).on('ssherror', function (data) {
|
||||
document.getElementById('status').innerHTML = data
|
||||
document.getElementById('status').style.backgroundColor = 'red'
|
||||
statusID.innerHTML = data
|
||||
statusID.style.backgroundColor = 'red'
|
||||
errorExists = true
|
||||
}).on('headerBackground', function (data) {
|
||||
document.getElementById('header').style.backgroundColor = data
|
||||
headerID.style.backgroundColor = data
|
||||
}).on('header', function (data) {
|
||||
if (data) {
|
||||
document.getElementById('header').innerHTML = data
|
||||
document.getElementById('header').style.display = 'block'
|
||||
headerID.innerHTML = data
|
||||
headerID.style.display = 'block'
|
||||
// header is 19px and footer is 19px, recaculate new terminal-container and resize
|
||||
document.getElementById('terminal-container').style.height = 'calc(100% - 38px)'
|
||||
terminalContainer.style.height = 'calc(100% - 38px)'
|
||||
resizeScreen()
|
||||
}
|
||||
}).on('footer', function (data) {
|
||||
sessionFooter = data
|
||||
document.getElementById('footer').innerHTML = data
|
||||
}).on('statusBackground', function (data) {
|
||||
document.getElementById('status').style.backgroundColor = data
|
||||
statusID.style.backgroundColor = data
|
||||
}).on('allowreplay', function (data) {
|
||||
if (data === true) {
|
||||
console.log('allowreplay: ' + data)
|
||||
menuID.innerHTML = menuID.innerHTML + '<a id="credentialsBtn" href="javascript:void(0);"><i class="fas fa-key fa-fw"></i> Credentials</a>'
|
||||
credentialsBtn.style.color = '#000'
|
||||
credentialsBtn.addEventListener('click', replayCredentials)
|
||||
} else {
|
||||
|
@ -111,15 +115,15 @@ socket.on('title', function (data) {
|
|||
}
|
||||
}).on('disconnect', function (err) {
|
||||
if (!errorExists) {
|
||||
document.getElementById('status').style.backgroundColor = 'red'
|
||||
document.getElementById('status').innerHTML =
|
||||
statusID.style.backgroundColor = 'red'
|
||||
statusID.innerHTML =
|
||||
'WEBSOCKET SERVER DISCONNECTED: ' + err
|
||||
}
|
||||
socket.io.reconnection(false)
|
||||
}).on('error', function (err) {
|
||||
if (!errorExists) {
|
||||
document.getElementById('status').style.backgroundColor = 'red'
|
||||
document.getElementById('status').innerHTML = 'ERROR: ' + err
|
||||
statusID.style.backgroundColor = 'red'
|
||||
statusID.innerHTML = 'ERROR: ' + err
|
||||
}
|
||||
})
|
||||
|
||||
|
|
Loading…
Reference in a new issue