diff --git a/awx/ui/static/js/controllers/JobDetail.js b/awx/ui/static/js/controllers/JobDetail.js index 16503ed795..9e1d435b9d 100644 --- a/awx/ui/static/js/controllers/JobDetail.js +++ b/awx/ui/static/js/controllers/JobDetail.js @@ -876,11 +876,11 @@ export function JobDetailController ($location, $rootScope, $scope, $compile, $r scope.toggleLessStatus = function() { if (!scope.lessStatus) { - $('#job-status-form .toggle-show').hide(400); + $('#job-status-form .toggle-show').slideUp(200); scope.lessStatus = true; } else { - $('#job-status-form .toggle-show').show(400); + $('#job-status-form .toggle-show').slideDown(200); scope.lessStatus = false; } }; diff --git a/awx/ui/static/js/controllers/JobStdout.js b/awx/ui/static/js/controllers/JobStdout.js index b20537c2dd..5f77b3a91d 100644 --- a/awx/ui/static/js/controllers/JobStdout.js +++ b/awx/ui/static/js/controllers/JobStdout.js @@ -31,6 +31,8 @@ export function JobStdoutController ($location, $log, $rootScope, $scope, $compi st, direction; + $scope.isClosed = true; + function openSockets() { status_socket = Socket({ @@ -152,12 +154,39 @@ export function JobStdoutController ($location, $log, $rootScope, $scope, $compi } }); + $scope.toggleClosedStatus = function() { + if (!$scope.isClosed) { + $('.StandardOutDetails-detailRow--closable').slideUp(200); + $scope.isClosed = true; + } + else { + $('.StandardOutDetails-detailRow--closable').slideDown(200); + $scope.isClosed = false; + } + }; + // Note: could be ad_hoc_commands or jobs var jobType = $location.path().replace(/^\//, '').split('/')[0]; Rest.setUrl(GetBasePath(jobType) + job_id + '/'); Rest.get() .success(function(data) { $scope.job = data; + $scope.job_template_name = data.name; + $scope.project_name = (data.summary_fields.project) ? data.summary_fields.project.name : ''; + $scope.inventory_name = (data.summary_fields.inventory) ? data.summary_fields.inventory.name : ''; + $scope.job_template_url = '/#/job_templates/' + data.unified_job_template; + $scope.inventory_url = ($scope.inventory_name && data.inventory) ? '/#/inventories/' + data.inventory : ''; + $scope.project_url = ($scope.project_name && data.project) ? '/#/projects/' + data.project : ''; + $scope.credential_name = (data.summary_fields.credential) ? data.summary_fields.credential.name : ''; + $scope.credential_url = (data.credential) ? '/#/credentials/' + data.credential : ''; + $scope.cloud_credential_url = (data.cloud_credential) ? '/#/credentials/' + data.cloud_credential : ''; + $scope.playbook = data.playbook; + $scope.credential = data.credential; + $scope.cloud_credential = data.cloud_credential; + $scope.forks = data.forks; + $scope.limit = data.limit; + $scope.verbosity = data.verbosity; + $scope.job_tags = data.job_tags; stdout_url = data.related.stdout; if (data.status === 'successful' || data.status === 'failed' || data.status === 'error' || data.status === 'canceled') { live_event_processing = false; diff --git a/awx/ui/static/js/helpers/EventViewer.js b/awx/ui/static/js/helpers/EventViewer.js index 945275ea1c..6e8c13802a 100644 --- a/awx/ui/static/js/helpers/EventViewer.js +++ b/awx/ui/static/js/helpers/EventViewer.js @@ -31,7 +31,7 @@ export default } scope.removeShowNextEvent = scope.$on('ShowNextEvent', function(e, data, show_event) { scope.events = data; - $('#event-next-spinner').hide(400); + $('#event-next-spinner').slideUp(200); if (show_event === 'prev') { showEvent(scope.events.length - 1); } diff --git a/awx/ui/static/js/helpers/Jobs.js b/awx/ui/static/js/helpers/Jobs.js index bbd2b3bff8..c95d593569 100644 --- a/awx/ui/static/js/helpers/Jobs.js +++ b/awx/ui/static/js/helpers/Jobs.js @@ -106,8 +106,14 @@ export default else { $location.url('/jobs/' + job.id); } - } - else { + } else if (job.type === 'ad_hoc_command') { + if(scope.$parent.portalMode===true){ + $window.open('/#/ad_hoc_commands/' + job.id, '_blank'); + } + else { + $location.url('/ad_hoc_commands/' + job.id); + } + } else { LogViewer({ scope: scope, url: job.url diff --git a/awx/ui/static/js/jobs/standard-out-details.block.less b/awx/ui/static/js/jobs/standard-out-details.block.less new file mode 100644 index 0000000000..520465c9f1 --- /dev/null +++ b/awx/ui/static/js/jobs/standard-out-details.block.less @@ -0,0 +1,28 @@ +/** @define StandardOutDetails */ + +// Some of these are left empty as a helpful measure so that you can see how the new +// SuitCSS styling should work. They can be removed once we've done more +// SuitCSS +about +.StandardOutDetails { +} + +.StandardOutDetails-detailRow { + margin-bottom: 15px; +} + +.StandardOutDetails-detailRow--closable { + display: none; +} + +.StandardOutDetails-detailLabel { +} + +.StandardOutDetails-detailContent { +} + +.StandardOutDetails-closedToggle { +} + +.StandardOutDetails-closedToggleLink { +} diff --git a/awx/ui/static/partials/job_stdout_adhoc.html b/awx/ui/static/partials/job_stdout_adhoc.html index 201041374a..07796a5e9a 100644 --- a/awx/ui/static/partials/job_stdout_adhoc.html +++ b/awx/ui/static/partials/job_stdout_adhoc.html @@ -25,21 +25,136 @@ -