Merge pull request #1575 from mabashian/1522-expand-results

Implemented expand/collapse job results
This commit is contained in:
Jake McDermott
2018-04-25 17:56:53 -04:00
committed by GitHub
6 changed files with 46 additions and 15 deletions

View File

@@ -55,6 +55,10 @@ function JobsIndexController (
up: scrollPageUp up: scrollPageUp
}; };
vm.fullscreen = {
isFullscreen: false
};
render.requestAnimationFrame(() => init()); render.requestAnimationFrame(() => init());
} }

View File

@@ -1,14 +1,17 @@
<div class="container-fluid"> <div class="container-fluid">
<div class="col-md-4"> <div class="col-md-4" ng-show="!vm.fullscreen.isFullscreen">
<at-panel> <at-panel>
<at-job-details resource="vm.resource"></at-job-details> <at-job-details resource="vm.resource"></at-job-details>
</at-panel> </at-panel>
</div> </div>
<div class="col-md-8"> <div ng-class="vm.fullscreen.isFullscreen ? 'col-md-12' : 'col-md-8'">
<at-panel class="at-Stdout"> <at-panel class="at-Stdout">
<div class="at-Panel-headingTitle">{{ vm.title }}</div> <div class="at-Panel-headingTitle">{{ vm.title }}</div>
<at-job-stats resource="vm.resource"></at-job-stats> <at-job-stats
resource="vm.resource"
fullscreen="vm.fullscreen">
</at-job-stats>
<at-job-search></at-job-search> <at-job-search></at-job-search>
<div class="at-Stdout-menuTop"> <div class="at-Stdout-menuTop">

View File

@@ -31,6 +31,11 @@ function JobsStrings (BaseString) {
PROJECT: t.s('View the Project'), PROJECT: t.s('View the Project'),
PROJECT_UPDATE: t.s('View Project checkout results') PROJECT_UPDATE: t.s('View Project checkout results')
}; };
ns.expandCollapse = {
EXPAND: t.s('Expand Output'),
COLLAPSE: t.s('Collapse Output')
};
} }
JobsStrings.$inject = ['BaseStringService']; JobsStrings.$inject = ['BaseStringService'];

View File

@@ -30,8 +30,12 @@ function AtJobStatsController (_strings_, _status_) {
vm.init = scope => { vm.init = scope => {
const { resource } = scope; const { resource } = scope;
vm.fullscreen = scope.fullscreen;
vm.download = resource.model.get('related.stdout'); vm.download = resource.model.get('related.stdout');
vm.toggleStdoutFullscreenTooltip = strings.get('expandCollapse.EXPAND');
vm.setHostStatusCounts(status.getHostStatusCounts()); vm.setHostStatusCounts(status.getHostStatusCounts());
scope.$watch(status.getPlayCount, value => { vm.plays = value; }); scope.$watch(status.getPlayCount, value => { vm.plays = value; });
@@ -55,6 +59,13 @@ function AtJobStatsController (_strings_, _status_) {
vm.statsAreAvailable = Boolean(status.getStatsEvent()); vm.statsAreAvailable = Boolean(status.getStatsEvent());
}; };
vm.toggleFullscreen = () => {
vm.fullscreen.isFullscreen = !vm.fullscreen.isFullscreen;
vm.toggleStdoutFullscreenTooltip = vm.fullscreen.isFullscreen ?
strings.get('expandCollapse.COLLAPSE') :
strings.get('expandCollapse.EXPAND');
};
} }
function atJobStats () { function atJobStats () {
@@ -67,9 +78,13 @@ function atJobStats () {
controller: [ controller: [
'JobStrings', 'JobStrings',
'JobStatusService', 'JobStatusService',
'$scope',
AtJobStatsController AtJobStatsController
], ],
scope: { resource: '=', }, scope: {
resource: '=',
fullscreen: '='
}
}; };
} }

View File

@@ -19,20 +19,20 @@
</span> </span>
<a ng-show="vm.download && !vm.running" href="{{ vm.download }}?format=txt_download"> <a ng-show="vm.download && !vm.running" href="{{ vm.download }}?format=txt_download">
<button class="btn at-Input-button at-u-noBorder" <button class="btn at-Input-button at-u-noBorder"
aw-tool-tip="{{ standardOutTooltip }}" aw-tool-tip="{{ standardOutTooltip }}"
data-tip-watch="standardOutTooltip" data-tip-watch="standardOutTooltip"
data-placement="top"> data-placement="top">
<i class="fa fa-download"></i> <i class="fa fa-download"></i>
</button> </button>
</a> </a>
<button class="btn at-Input-button at-u-noBorder" <button class="btn at-Input-button at-u-noBorder"
aw-tool-tip="{{ toggleStdoutFullscreenTooltip }}" aw-tool-tip="{{ vm.toggleStdoutFullscreenTooltip }}"
data-tip-watch="toggleStdoutFullscreenTooltip" data-tip-watch="vm.toggleStdoutFullscreenTooltip"
data-placement="top" data-placement="top"
ng-class="{'StandardOut-actionButton--active': stdoutFullScreen}" ng-class="{'at-Input-button--active': vm.fullscreen.isFullscreen}"
ng-click="toggleStdoutFullscreen()"> ng-click="vm.toggleFullscreen()">
<i class="fa fa-arrows-alt"></i> <i class="fa fa-arrows-alt"></i>
</button> </button>
</div> </div>

View File

@@ -70,6 +70,10 @@
height: @at-height-textarea; height: @at-height-textarea;
} }
.at-Input-button--active {
.at-mixin-ButtonColor(at-color-info, at-color-default);
}
.at-Input--focus { .at-Input--focus {
border-color: @at-color-input-focus; border-color: @at-color-input-focus;
} }
@@ -269,4 +273,4 @@
cursor: not-allowed; cursor: not-allowed;
} }
} }
} }