mirror of
https://github.com/ansible/awx.git
synced 2026-03-26 13:25:02 -02:30
Add support for params to BaseModel.extend
This commit is contained in:
committed by
Jake McDermott
parent
3096a58272
commit
aaec3474b0
@@ -1,7 +1,7 @@
|
|||||||
.at-Stdout {
|
.at-Stdout {
|
||||||
font-family: monospace;
|
font-family: monospace;
|
||||||
|
|
||||||
&-controls {
|
&-menu {
|
||||||
color: @at-gray-dark-4x;
|
color: @at-gray-dark-4x;
|
||||||
border: 1px solid @at-gray-dark-2x;
|
border: 1px solid @at-gray-dark-2x;
|
||||||
border-top-left-radius: 4px;
|
border-top-left-radius: 4px;
|
||||||
@@ -9,12 +9,12 @@
|
|||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
&-controlIcon {
|
&-menuIcon {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&-expand {
|
&-toggle {
|
||||||
color: @at-gray-dark-4x;
|
color: @at-gray-dark-4x;
|
||||||
background-color: @at-gray-light;
|
background-color: @at-gray-light;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
@@ -22,25 +22,38 @@
|
|||||||
padding: 0 20px 0 10px;
|
padding: 0 20px 0 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&-lineNumber {
|
&-line {
|
||||||
color: @at-gray-dark-4x;
|
color: @at-gray-dark-4x;
|
||||||
background-color: @at-gray-light;
|
background-color: @at-gray-light;
|
||||||
|
|
||||||
|
text-align: right;
|
||||||
|
|
||||||
padding-right: 5px;
|
padding-right: 5px;
|
||||||
border-right: 1px solid @at-gray-dark;
|
border-right: 1px solid @at-gray-dark;
|
||||||
}
|
}
|
||||||
|
|
||||||
&-content {
|
&-event {
|
||||||
padding-left: 20px;
|
padding-left: 2ch;
|
||||||
|
width: 83ch;
|
||||||
}
|
}
|
||||||
|
|
||||||
&-timestamp {
|
&-time {
|
||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
&-output {
|
&-container {
|
||||||
|
& > table {
|
||||||
|
table-layout: fixed;
|
||||||
|
|
||||||
|
td {
|
||||||
|
vertical-align: top;
|
||||||
|
word-wrap: break-word;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
border: 1px solid @at-gray-dark-2x;
|
border: 1px solid @at-gray-dark-2x;
|
||||||
background-color: @at-gray-light-3x;
|
background-color: @at-gray-light-3x;
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ function JobsIndexController (job, $sce) {
|
|||||||
function parseEvents (events) {
|
function parseEvents (events) {
|
||||||
events.sort(orderByLineNumber);
|
events.sort(orderByLineNumber);
|
||||||
|
|
||||||
|
console.log(events);
|
||||||
return events.reduce((html, event) => `${html}${parseLine(event)}`, '');
|
return events.reduce((html, event) => `${html}${parseLine(event)}`, '');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -67,20 +68,20 @@ function parseLine (event) {
|
|||||||
const isLastLine = i === lines.length - 1;
|
const isLastLine = i === lines.length - 1;
|
||||||
|
|
||||||
if (isTruncated && isLastLine) {
|
if (isTruncated && isLastLine) {
|
||||||
return `${html}${createRow(ln, line, time, group)}${createTruncatedRow()}`;
|
return `${html}${createRow(ln, line, time, group)}${createTruncatedRow(event.id)}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
return `${html}${createRow(ln, line, time, group)}`;
|
return `${html}${createRow(ln, line, time, group)}`;
|
||||||
}, '');
|
}, '');
|
||||||
}
|
}
|
||||||
|
|
||||||
function createTruncatedRow () {
|
function createTruncatedRow (id) {
|
||||||
return `
|
return `
|
||||||
<tr class="">
|
<tr class="${id}">
|
||||||
<td class="at-Stdout-expand"></td>
|
<td class="at-Stdout-toggle"></td>
|
||||||
<td class="at-Stdout-lineNumber text-center"><i class="fa fa-long-arrow-down"></i></td>
|
<td class="at-Stdout-line text-center">...</td>
|
||||||
<td class="at-Stdout-content"></td>
|
<td class="at-Stdout-event"></td>
|
||||||
<td class="at-Stdout-timestamp"></td>
|
<td class="at-Stdout-time"></td>
|
||||||
</tr>`;
|
</tr>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,10 +95,10 @@ function createRow (ln, content, time, group) {
|
|||||||
|
|
||||||
return `
|
return `
|
||||||
<tr class="${group.classList}">
|
<tr class="${group.classList}">
|
||||||
<td class="at-Stdout-expand">${expand}</td>
|
<td class="at-Stdout-toggle">${expand}</td>
|
||||||
<td class="at-Stdout-lineNumber">${ln}</td>
|
<td class="at-Stdout-line">${ln}</td>
|
||||||
<td class="at-Stdout-content">${content}</td>
|
<td class="at-Stdout-event">${content}</td>
|
||||||
<td class="at-Stdout-timestamp">${time}</td>
|
<td class="at-Stdout-time">${time}</td>
|
||||||
</tr>`;
|
</tr>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -129,13 +130,17 @@ function getTime (event, i) {
|
|||||||
function toggle (id) {
|
function toggle (id) {
|
||||||
console.log(id);
|
console.log(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
*
|
||||||
|
*function getTruncatedEvent () {
|
||||||
|
*
|
||||||
|
*}
|
||||||
|
*
|
||||||
*function addDynamic (start) {
|
*function addDynamic (start) {
|
||||||
* document.getElementsByClassName('parent')
|
* document.getElementsByClassName('parent')
|
||||||
*}
|
*}
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
JobsIndexController.$inject = ['job', '$sce'];
|
JobsIndexController.$inject = ['job', '$sce'];
|
||||||
|
|
||||||
module.exports = JobsIndexController;
|
module.exports = JobsIndexController;
|
||||||
|
|||||||
@@ -28,7 +28,12 @@ function JobsRun ($stateExtender, strings) {
|
|||||||
const { id } = $stateParams;
|
const { id } = $stateParams;
|
||||||
|
|
||||||
return new Jobs('get', id)
|
return new Jobs('get', id)
|
||||||
.then(job => job.extend('job_events'));
|
.then(job => job.extend('job_events', {
|
||||||
|
params: {
|
||||||
|
page_size: 200,
|
||||||
|
order_by: 'start_line'
|
||||||
|
}
|
||||||
|
}));
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -6,26 +6,26 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-md-8">
|
<div class="col-md-8">
|
||||||
<at-panel class="at-Stdout">
|
<at-panel class="at-Stdout">
|
||||||
<div class="at-Stdout-controls">
|
<div class="at-Stdout-menu">
|
||||||
<div class="pull-left"><i class="at-Stdout-controlIcon fa fa-minus"></i></div>
|
<div class="pull-left"><i class="at-Stdout-menuIcon fa fa-minus"></i></div>
|
||||||
<div class="pull-right"><i class="at-Stdout-controlIcon fa fa-arrow-down"></i></div>
|
<div class="pull-right"><i class="at-Stdout-menuIcon fa fa-arrow-down"></i></div>
|
||||||
<div class="at-u-clear"></div>
|
<div class="at-u-clear"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<pre class="at-Stdout-output"><table>
|
<pre class="at-Stdout-container"><table>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="at-Stdout-expand"> </th>
|
<th class="at-Stdout-toggle"> </th>
|
||||||
<th class="at-Stdout-lineNumber"></th>
|
<th class="at-Stdout-line"></th>
|
||||||
<th class="at-Stdout-content"></th>
|
<th class="at-Stdout-event"></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody ng-bind-html="vm.html"></tbody>
|
<tbody ng-bind-html="vm.html"></tbody>
|
||||||
<tfoot>
|
<tfoot>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="at-Stdout-expand"> </td>
|
<td class="at-Stdout-toggle"> </td>
|
||||||
<td class="at-Stdout-lineNumber"></td>
|
<td class="at-Stdout-line"></td>
|
||||||
<td class="at-Stdout-content"></td>
|
<td class="at-Stdout-event"></td>
|
||||||
<td class="at-Stdout-backToTop"><i class="fa fa-caret-up"></i> <span>Back to Top</span></td>
|
<td class="at-Stdout-backToTop"><i class="fa fa-caret-up"></i> <span>Back to Top</span></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tfoot></table></pre>
|
</tfoot></table></pre>
|
||||||
|
|||||||
@@ -327,25 +327,17 @@ function has (method, keys) {
|
|||||||
return value !== undefined && value !== null;
|
return value !== undefined && value !== null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function extend (method, related, config = {}) {
|
function extend (related, config) {
|
||||||
if (!related) {
|
const req = this.parseRequestConfig('GET', config);
|
||||||
related = method;
|
|
||||||
method = 'GET';
|
|
||||||
} else {
|
|
||||||
method = method.toUpperCase();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.has(method, `related.${related}`)) {
|
if (this.has(req.method, `related.${related}`)) {
|
||||||
const req = {
|
req.url = this.get(`related.${related}`);
|
||||||
method,
|
|
||||||
url: this.get(`related.${related}`)
|
|
||||||
};
|
|
||||||
|
|
||||||
Object.assign(req, config);
|
Object.assign(req, config);
|
||||||
|
|
||||||
return $http(req)
|
return $http(req)
|
||||||
.then(({ data }) => {
|
.then(({ data }) => {
|
||||||
this.set(method, `related.${related}`, data);
|
this.set(req.method, `related.${related}`, data);
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user