mirror of https://github.com/portainer/portainer
- code cleanup by converting functions to error funcs (remove this bindings) (#5595)
- remove redundant checked variable - detect readyState of websocket when closing to prevent redundant errorpull/5276/head
parent
9f179fe3ec
commit
79ca51c92e
|
@ -13,13 +13,14 @@ export default class KubectlShellController {
|
|||
}
|
||||
|
||||
disconnect() {
|
||||
this.state.checked = false;
|
||||
this.state.icon = 'fas fa-window-minimize';
|
||||
this.state.shell.socket.close();
|
||||
this.state.shell.term.dispose();
|
||||
this.state.shell.connected = false;
|
||||
this.TerminalWindow.terminalclose();
|
||||
this.$window.onresize = null;
|
||||
if (this.state.shell.connected) {
|
||||
this.state.shell.connected = false;
|
||||
this.state.icon = 'fas fa-window-minimize';
|
||||
this.state.shell.socket.close();
|
||||
this.state.shell.term.dispose();
|
||||
this.TerminalWindow.terminalclose();
|
||||
this.$window.onresize = null;
|
||||
}
|
||||
}
|
||||
|
||||
screenClear() {
|
||||
|
@ -39,8 +40,7 @@ export default class KubectlShellController {
|
|||
}
|
||||
|
||||
configureSocketAndTerminal(socket, term) {
|
||||
var vm = this;
|
||||
socket.onopen = function () {
|
||||
socket.onopen = () => {
|
||||
const terminal_container = document.getElementById('terminal-container');
|
||||
term.open(terminal_container);
|
||||
term.setOption('cursorBlink', true);
|
||||
|
@ -51,31 +51,32 @@ export default class KubectlShellController {
|
|||
term.writeln('');
|
||||
};
|
||||
|
||||
term.on('data', function (data) {
|
||||
term.on('data', (data) => {
|
||||
socket.send(data);
|
||||
});
|
||||
|
||||
this.$window.onresize = function () {
|
||||
vm.TerminalWindow.terminalresize();
|
||||
};
|
||||
|
||||
socket.onmessage = function (msg) {
|
||||
socket.onmessage = (msg) => {
|
||||
term.write(msg.data);
|
||||
};
|
||||
|
||||
socket.onerror = function (err) {
|
||||
socket.onerror = (err) => {
|
||||
this.disconnect();
|
||||
this.Notifications.error('Failure', err, 'Websocket connection error');
|
||||
}.bind(this);
|
||||
if (err.target.readyState !== WebSocket.CLOSED) {
|
||||
this.Notifications.error('Failure', err, 'Websocket connection error');
|
||||
}
|
||||
};
|
||||
|
||||
this.state.shell.socket.onclose = this.disconnect.bind(this);
|
||||
this.$window.onresize = () => {
|
||||
this.TerminalWindow.terminalresize();
|
||||
};
|
||||
|
||||
socket.onclose = this.disconnect.bind(this);
|
||||
|
||||
this.state.shell.connected = true;
|
||||
}
|
||||
|
||||
connectConsole() {
|
||||
this.TerminalWindow.terminalopen();
|
||||
this.state.checked = true;
|
||||
this.state.css = 'normal';
|
||||
|
||||
const params = {
|
||||
|
@ -101,7 +102,6 @@ export default class KubectlShellController {
|
|||
return this.$async(async () => {
|
||||
this.state = {
|
||||
css: 'normal',
|
||||
checked: false,
|
||||
icon: 'fa-window-minimize',
|
||||
shell: {
|
||||
connected: false,
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
<kube-config-download-button></kube-config-download-button>
|
||||
|
||||
<div ng-if="$ctrl.state.checked" class="{{ $ctrl.state.css }}-kubectl-shell">
|
||||
<div ng-if="$ctrl.state.shell.connected" class="{{ $ctrl.state.css }}-kubectl-shell">
|
||||
<div class="shell-container">
|
||||
<div class="shell-item"><i class="fas fa-terminal" style="margin-right: 5px;"></i>kubectl shell</div>
|
||||
<div class="shell-item-right">
|
||||
|
@ -27,7 +27,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div style="padding: 0px;">
|
||||
<div class="nopadding">
|
||||
<div>
|
||||
<div id="terminal-container" class="terminal-container">
|
||||
<div style="position: fixed; color: #fff;">Loading Terminal...</div>
|
||||
|
|
Loading…
Reference in New Issue