open-nomad/ui/app/styles/components/exec.scss
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

147 lines
2.4 KiB
SCSS

.tree-and-terminal {
display: flex;
position: absolute;
left: 0;
right: 0;
top: 3.5rem; // nav.navbar.is-popup height
bottom: 0;
.terminal-container {
flex-grow: 1;
background: black;
padding: 16px;
height: 100%;
position: relative;
.terminal {
height: 100%;
.xterm .xterm-viewport {
overflow-y: auto;
}
}
}
}
.task-group-tree {
background-color: $ui-gray-900;
color: white;
padding: 16px;
width: 200px;
flex-shrink: 0;
overflow-y: auto;
.title {
text-transform: uppercase;
color: $grey-lighter;
font-size: 11px;
}
.icon {
color: $ui-gray-500;
}
.toggle-button {
position: relative;
background: transparent;
border: 0;
color: white;
font-size: inherit;
line-height: 1.5;
width: 100%;
text-align: left;
overflow-wrap: break-word;
padding: 6px 0 5px 17px;
.icon {
position: absolute;
left: 0;
padding: 3px 3px 0 0;
margin-left: -3px;
}
}
.task-list {
.task-item {
padding: 0 8px 0 19px;
color: white;
text-decoration: none;
display: flex;
align-items: center;
justify-content: space-between;
.border-and-label {
display: flex;
align-items: center;
height: 100%;
width: 100%;
position: relative;
}
.border {
position: absolute;
border-left: 1px solid $ui-gray-700;
height: 100%;
}
.is-active {
position: absolute;
top: 7.5px;
left: -9.75px;
stroke: $ui-gray-900;
stroke-width: 5px;
fill: white;
}
.task-label {
padding: 6px 0 5px 13px;
overflow-wrap: break-word;
width: 100%;
}
.icon {
visibility: hidden;
width: 16px;
flex-shrink: 0;
}
&:hover .icon.show-on-hover {
visibility: visible;
}
}
}
.toggle-button,
.task-item {
font-weight: 500;
&:hover {
background-color: $ui-gray-800;
border-radius: 4px;
.is-active {
stroke: $ui-gray-800;
}
}
}
}
.exec-button {
color: $ui-gray-800;
border-color: $ui-gray-300;
span {
color: $ui-gray-800;
}
.icon:first-child:not(:last-child) {
width: 0.9rem;
height: 0.9rem;
margin-left: 0;
margin-right: 0.5em;
fill: currentColor;
}
}