open-nomad/ui/app/components/exec-terminal.js
Buck Doyle 674da96a59
UI: add exec terminal (#6697)
This connects Xterm.js to a Nomad exec websocket so people
can interact on clients via live sessions. There are buttons on
job, allocation, task group, and task detail pages that open a
popup that lets them edit their shell command and start a
session.

More is to come, as recorded in issues.
2020-03-24 18:22:16 -05:00

25 lines
587 B
JavaScript

import Component from '@ember/component';
import { FitAddon } from 'xterm-addon-fit';
import WindowResizable from '../mixins/window-resizable';
export default Component.extend(WindowResizable, {
classNames: ['terminal-container'],
didInsertElement() {
let fitAddon = new FitAddon();
this.fitAddon = fitAddon;
this.terminal.loadAddon(fitAddon);
this.terminal.open(this.element.querySelector('.terminal'));
fitAddon.fit();
},
windowResizeHandler(e) {
this.fitAddon.fit();
if (this.terminal.resized) {
this.terminal.resized(e);
}
},
});