mirror of
https://github.com/ansible/awx.git
synced 2026-02-28 08:18:43 -03:30
Inventory manage audit
This commit is contained in:
@@ -1086,6 +1086,12 @@ input[type="checkbox"].checkbox-no-label {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.table.table-condensed.flyout {
|
||||||
|
thead>tr>th {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Table info rows */
|
/* Table info rows */
|
||||||
|
|
||||||
|
|||||||
@@ -187,7 +187,7 @@
|
|||||||
|
|
||||||
.Form-formGroup--checkbox{
|
.Form-formGroup--checkbox{
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: flex-start;
|
align-items: flex-end;
|
||||||
}
|
}
|
||||||
|
|
||||||
.Form-checkbox--stacked {
|
.Form-checkbox--stacked {
|
||||||
@@ -510,7 +510,7 @@ input[type='radio']:checked:before {
|
|||||||
border-color: @default-border;
|
border-color: @default-border;
|
||||||
}
|
}
|
||||||
|
|
||||||
.Form-saveButton{
|
.Form-saveButton, .Form-launchButton{
|
||||||
background-color: @submit-button-bg;
|
background-color: @submit-button-bg;
|
||||||
color: @submit-button-text;
|
color: @submit-button-text;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
@@ -519,11 +519,11 @@ input[type='radio']:checked:before {
|
|||||||
padding-right: 15px;
|
padding-right: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.Form-saveButton:disabled{
|
.Form-saveButton:disabled, .Form-launchButton:disabled{
|
||||||
background-color: @submit-button-bg-dis;
|
background-color: @submit-button-bg-dis;
|
||||||
}
|
}
|
||||||
|
|
||||||
.Form-saveButton:hover{
|
.Form-saveButton:hover, .Form-launchButton:hover{
|
||||||
background-color: @submit-button-bg-hov;
|
background-color: @submit-button-bg-hov;
|
||||||
color: @submit-button-text;
|
color: @submit-button-text;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -93,10 +93,6 @@ table.ui-datepicker-calendar {
|
|||||||
background-color: @default-succ-disabled;
|
background-color: @default-succ-disabled;
|
||||||
border-color: @default-succ-disabled;
|
border-color: @default-succ-disabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:first-of-type {
|
|
||||||
margin-right: 24px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
button.btn.btn-default {
|
button.btn.btn-default {
|
||||||
|
|||||||
@@ -203,7 +203,7 @@ table, tbody {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.List-action:not(.ng-hide) ~ .List-action:not(.ng-hide) {
|
.List-action:not(.ng-hide) ~ .List-action:not(.ng-hide) {
|
||||||
margin-left: 10px;
|
margin-left: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.List-buttonSubmit {
|
.List-buttonSubmit {
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
ng-class-odd="'List-tableRow--oddRow'"
|
ng-class-odd="'List-tableRow--oddRow'"
|
||||||
ng-class-even="'List-tableRow--evenRow'"
|
ng-class-even="'List-tableRow--evenRow'"
|
||||||
ng-repeat = "job in jobs">
|
ng-repeat = "job in jobs">
|
||||||
<td class="DashboardList-nameCell">
|
<td class="DashboardList-nameCell">
|
||||||
<a href="{{ job.detailsUrl }}" ng-if="isSuccessful(job.status)" aw-tool-tip="Job successful. Click for details." aw-tip-placement="right">
|
<a href="{{ job.detailsUrl }}" ng-if="isSuccessful(job.status)" aw-tool-tip="Job successful. Click for details." aw-tip-placement="right">
|
||||||
<i class="fa DashboardList-status DashboardList-status--success icon-job-successful"></i>
|
<i class="fa DashboardList-status DashboardList-status--success icon-job-successful"></i>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -83,7 +83,6 @@ export default
|
|||||||
buttons: {
|
buttons: {
|
||||||
cancel: {
|
cancel: {
|
||||||
ngClick: 'formCancel()',
|
ngClick: 'formCancel()',
|
||||||
ngDisabled: true
|
|
||||||
},
|
},
|
||||||
save: {
|
save: {
|
||||||
ngClick: 'formSave()',
|
ngClick: 'formSave()',
|
||||||
|
|||||||
@@ -114,9 +114,10 @@ angular.module('HostsHelper', [ 'RestServices', 'Utilities', listGenerator.name,
|
|||||||
job = jobs[j];
|
job = jobs[j];
|
||||||
html += "<tr>\n";
|
html += "<tr>\n";
|
||||||
|
|
||||||
html += "<td><a href=\"#/jobs/" + job.id + "\" " +
|
// SmartStatus-tooltips are named --success whereas icon-job uses successful
|
||||||
"aw-tool-tip=\"" + job.status.charAt(0).toUpperCase() + job.status.slice(1) +
|
var iconStatus = (job.status === 'successful') ? 'success' : 'failed';
|
||||||
". Click for details\" data-placement=\"top\"><i class=\"fa icon-job-" +
|
|
||||||
|
html += "<td><a href=\"#/jobs/" + job.id + "\"><i class=\"fa DashboardList-status SmartStatus-tooltip--" + iconStatus + " icon-job-" +
|
||||||
job.status + "\"></i></a></td>\n";
|
job.status + "\"></i></a></td>\n";
|
||||||
|
|
||||||
html += "<td>" + ($filter('longDate')(job.finished)).replace(/ /,'<br />') + "</td>\n";
|
html += "<td>" + ($filter('longDate')(job.finished)).replace(/ /,'<br />') + "</td>\n";
|
||||||
|
|||||||
@@ -661,7 +661,8 @@ export default
|
|||||||
scope: scope,
|
scope: scope,
|
||||||
searchSize: (searchSize) ? searchSize : 'col-lg-6 col-md-6 col-sm-6 col-xs-12',
|
searchSize: (searchSize) ? searchSize : 'col-lg-6 col-md-6 col-sm-6 col-xs-12',
|
||||||
showSearch: true,
|
showSearch: true,
|
||||||
title: true
|
title: true,
|
||||||
|
cancelButton: true
|
||||||
});
|
});
|
||||||
|
|
||||||
SearchInit({
|
SearchInit({
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ export default function() {
|
|||||||
label: 'Save',
|
label: 'Save',
|
||||||
ngClick: 'launchJob()',
|
ngClick: 'launchJob()',
|
||||||
ngDisabled: true,
|
ngDisabled: true,
|
||||||
'class': 'btn btn-sm List-buttonSubmit'
|
'class': 'btn btn-sm List-buttonSubmit launchButton'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
}
|
}
|
||||||
.copyMove-buttons{
|
.copyMove-buttons{
|
||||||
height: 30px;
|
height: 30px;
|
||||||
margin-top: 10px;
|
margin-top: 20px;
|
||||||
|
|
||||||
button {
|
button {
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
|
|||||||
@@ -3,12 +3,22 @@
|
|||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<div class="modal-content Modal-content">
|
<div class="modal-content Modal-content">
|
||||||
<div class="Modal-header">
|
<div class="Modal-header">
|
||||||
<div class="Modal-title ng-binding">Delete Group</div>
|
<div class="Modal-title ng-binding">
|
||||||
|
Delete Group
|
||||||
|
<a href="" id="awp-promote" href=""
|
||||||
|
aw-pop-over="<dl><dt>Delete</dt><dd>Deletes groups and hosts associated with the group being deleted. If a group or host is associated with other groups, it will still exist within those groups. Otherwise, the associated groups and hosts will no longer appear in the inventory.</dd>\n<dt style='margin-top: 5px;'>Promote</dt><dd>Groups and hosts associated with the group being removed will be promoted root level. Note: groups already associated with other groups cannot be promoted.</dd></dl>\n" aw-tool-tip="Click for help"
|
||||||
|
data-placement="right"
|
||||||
|
data-container="body"
|
||||||
|
data-title="Delete Group"
|
||||||
|
class="help-link">
|
||||||
|
<i class="fa fa-question-circle"></i>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
<div class="Modal-exitHolder">
|
<div class="Modal-exitHolder">
|
||||||
<button class="close Modal-exit" data-target="#group-delete-modal" data-dismiss="modal" aria-hidden="true"><i class="fa fa-times-circle"></i></button>
|
<button class="close Modal-exit" data-target="#group-delete-modal" data-dismiss="modal" aria-hidden="true"><i class="fa fa-times-circle"></i></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="Modal-body">
|
||||||
<div ng-show="toDelete.total_groups > 0 || toDelete.total_hosts > 0">
|
<div ng-show="toDelete.total_groups > 0 || toDelete.total_hosts > 0">
|
||||||
<div>
|
<div>
|
||||||
<p class="Prompt-bodyQuery">Deleting group <em>{{ toDelete.name }}</em>.
|
<p class="Prompt-bodyQuery">Deleting group <em>{{ toDelete.name }}</em>.
|
||||||
@@ -61,9 +71,6 @@
|
|||||||
<div class="Prompt-bodyTarget">{{ toDelete.name }}</div>
|
<div class="Prompt-bodyTarget">{{ toDelete.name }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="Modal-footer">
|
<div class="Modal-footer">
|
||||||
<div class="GroupDelete-help--container">
|
|
||||||
<a href="" id="awp-promote" href="" aw-pop-over="<dl><dt>Delete</dt><dd>Deletes groups and hosts associated with the group being deleted. If a group or host is associated with other groups, it will still exist within those groups. Otherwise, the associated groups and hosts will no longer appear in the inventory.</dd>\n<dt style='margin-top: 5px;'>Promote</dt><dd>Groups and hosts associated with the group being removed will be promoted root level. Note: groups already associated with other groups cannot be promoted.</dd></dl>\n" aw-tool-tip="Click for help" data-placement="right" data-container="body" data-title="Help" class="help-link"><i class="fa fa-question-circle"></i> Click for help</a>
|
|
||||||
</div>
|
|
||||||
<a href="#" data-target="#group-delete-modal" data-dismiss="modal" id="prompt_cancel_btn_groups_list" class="btn Modal-defaultButton Modal-footerButton">CANCEL</a>
|
<a href="#" data-target="#group-delete-modal" data-dismiss="modal" id="prompt_cancel_btn_groups_list" class="btn Modal-defaultButton Modal-footerButton">CANCEL</a>
|
||||||
<a href="" ng-class="promptActionBtnClass" ng-click="confirmDelete()" id="prompt_action_btn_groups_list" class="btn Modal-footerButton Modal-errorButton">DELETE</a>
|
<a href="" ng-class="promptActionBtnClass" ng-click="confirmDelete()" id="prompt_action_btn_groups_list" class="btn Modal-footerButton Modal-errorButton">DELETE</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,11 +1,8 @@
|
|||||||
.select2-selection.select2-selection--multiple.Form-dropDown{
|
.select2-selection.select2-selection--multiple.Form-dropDown{
|
||||||
height: auto !important;
|
height: auto !important;
|
||||||
}
|
}
|
||||||
.GroupDelete-help--container{
|
|
||||||
margin-right: auto;
|
|
||||||
}
|
|
||||||
.GroupDelete .Modal-header{
|
.GroupDelete .Modal-header{
|
||||||
margin-bottom: 0;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
.GroupDelete .modal-body{
|
.GroupDelete .modal-body{
|
||||||
padding-top: 20px;
|
padding-top: 20px;
|
||||||
@@ -17,3 +14,12 @@
|
|||||||
padding-bottom: 5px;
|
padding-bottom: 5px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#schedule-list-target {
|
||||||
|
.Form-exitHolder {
|
||||||
|
order: 1
|
||||||
|
}
|
||||||
|
.List-actionHolder {
|
||||||
|
margin-top: 40px;
|
||||||
|
margin-right: -18px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -14,11 +14,11 @@
|
|||||||
export default [
|
export default [
|
||||||
'$scope', '$compile', '$location', '$stateParams', 'SchedulesList', 'Rest',
|
'$scope', '$compile', '$location', '$stateParams', 'SchedulesList', 'Rest',
|
||||||
'ProcessErrors', 'ReturnToCaller', 'ClearScope', 'GetBasePath', 'Wait',
|
'ProcessErrors', 'ReturnToCaller', 'ClearScope', 'GetBasePath', 'Wait',
|
||||||
'Find', 'LoadSchedulesScope', 'GetChoices', '$q',
|
'Find', 'LoadSchedulesScope', 'GetChoices', '$q', '$state',
|
||||||
function ($scope, $compile, $location, $stateParams,
|
function ($scope, $compile, $location, $stateParams,
|
||||||
SchedulesList, Rest, ProcessErrors, ReturnToCaller, ClearScope,
|
SchedulesList, Rest, ProcessErrors, ReturnToCaller, ClearScope,
|
||||||
GetBasePath, Wait, Find, LoadSchedulesScope, GetChoices,
|
GetBasePath, Wait, Find, LoadSchedulesScope, GetChoices,
|
||||||
$q) {
|
$q, $state) {
|
||||||
var schedList = _.cloneDeep(SchedulesList);
|
var schedList = _.cloneDeep(SchedulesList);
|
||||||
|
|
||||||
ClearScope();
|
ClearScope();
|
||||||
@@ -66,7 +66,8 @@ export default [
|
|||||||
list: schedList,
|
list: schedList,
|
||||||
id: 'schedule-list-target',
|
id: 'schedule-list-target',
|
||||||
url: url,
|
url: url,
|
||||||
pageSize: 20
|
pageSize: 20,
|
||||||
|
cancelButton: true,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -118,6 +119,10 @@ export default [
|
|||||||
$scope.search(SchedulesList.iterator);
|
$scope.search(SchedulesList.iterator);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
$scope.formCancel = function() {
|
||||||
|
$state.go('^', {}, {reload: true});
|
||||||
|
};
|
||||||
|
|
||||||
Wait('start');
|
Wait('start');
|
||||||
|
|
||||||
GetChoices({
|
GetChoices({
|
||||||
|
|||||||
@@ -686,4 +686,3 @@
|
|||||||
ng-disabled="!schedulerIsValid"> Save</button>
|
ng-disabled="!schedulerIsValid"> Save</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|||||||
@@ -1682,7 +1682,7 @@ angular.module('FormGenerator', [GeneratorHelpers.name, 'Utilities', listGenerat
|
|||||||
}
|
}
|
||||||
if (btn === 'launch') {
|
if (btn === 'launch') {
|
||||||
button.label = 'Launch';
|
button.label = 'Launch';
|
||||||
button['class'] = 'btn-primary';
|
button['class'] = 'Form-launchButton';
|
||||||
}
|
}
|
||||||
if (btn === 'add_survey') {
|
if (btn === 'add_survey') {
|
||||||
button.label = 'Add Survey';
|
button.label = 'Add Survey';
|
||||||
|
|||||||
@@ -796,7 +796,7 @@ angular.module('GeneratorHelpers', [systemStatus.name])
|
|||||||
html += "<!-- Paginate Widget -->\n";
|
html += "<!-- Paginate Widget -->\n";
|
||||||
html += `
|
html += `
|
||||||
<div id=\"${iterator}-pagination\" class=\"List-pagination page-row\"
|
<div id=\"${iterator}-pagination\" class=\"List-pagination page-row\"
|
||||||
ng-hide=\"is_superuser && ${hideOnSuperuser}\">
|
ng-hide=\"is_superuser && ${hideOnSuperuser}\ || ${iterator}.length < 1">
|
||||||
`;
|
`;
|
||||||
html += "<div class=\"List-paginationPagerHolder\">";
|
html += "<div class=\"List-paginationPagerHolder\">";
|
||||||
html += "<div class=\"List-paginationPager\" ng-hide=\"" + iterator + "HidePaginator || " + iterator + "_num_pages <= 1\">";
|
html += "<div class=\"List-paginationPager\" ng-hide=\"" + iterator + "HidePaginator || " + iterator + "_num_pages <= 1\">";
|
||||||
|
|||||||
Reference in New Issue
Block a user