Merge pull request #2236 from kensible/2030-inventoryAudit

Inventory manage audit.
This commit is contained in:
kensible
2016-06-09 09:08:03 -04:00
10 changed files with 47 additions and 20 deletions

View File

@@ -182,6 +182,12 @@
align-items: flex-start; align-items: flex-start;
} }
.Form-checkbox--stacked {
label {
display: block;
}
}
.Form-textUneditable { .Form-textUneditable {
.Form-textInput { .Form-textInput {
border: none; border: none;

View File

@@ -249,6 +249,7 @@ export default
label: 'Update Options', label: 'Update Options',
type: 'checkbox_group', type: 'checkbox_group',
ngShow: "source && (source.value !== 'manual' && source.value !== null)", ngShow: "source && (source.value !== 'manual' && source.value !== null)",
class: 'Form-checkbox--stacked',
fields: [{ fields: [{
name: 'overwrite', name: 'overwrite',

View File

@@ -3,7 +3,7 @@
* *
* All Rights Reserved * All Rights Reserved
*************************************************/ *************************************************/
/** /**
* @ngdoc function * @ngdoc function
* @name help.function:InventoryGroups * @name help.function:InventoryGroups
@@ -53,7 +53,7 @@ angular.module('InventoryGroupsHelpDefinition', [])
maxWidth: 187, maxWidth: 187,
maxHeight: 175 maxHeight: 175
}, },
box: "To import a cloud inventory into Tower, initiate an inventory sync by clicking <i class=\"fa fa-exchange\"></i>." box: "To import a cloud inventory into Tower, initiate an inventory sync by clicking <i class=\"fa fa-refresh\"></i>."
}, { }, {
intro: "Add subgroups:", intro: "Add subgroups:",
img: { img: {

View File

@@ -90,7 +90,7 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', listGenerator.name
// do nothing // do nothing
} else if (Empty(group.status) || group.status === "never updated") { } else if (Empty(group.status) || group.status === "never updated") {
Alert('No Status Available', 'An inventory sync has not been performed for the selected group. Start the process by ' + Alert('No Status Available', 'An inventory sync has not been performed for the selected group. Start the process by ' +
'clicking the <i class="fa fa-exchange"></i> button.', 'alert-info', null, null, null, null, true); 'clicking the <i class="fa fa-refresh"></i> button.', 'alert-info', null, null, null, null, true);
} else { } else {
Wait('start'); Wait('start');
Rest.setUrl(group.related.inventory_source); Rest.setUrl(group.related.inventory_source);
@@ -174,7 +174,7 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', listGenerator.name
case 'never updated': case 'never updated':
stat = 'never'; stat = 'never';
stat_class = 'na'; stat_class = 'na';
status_tip = 'Sync not performed. Click <i class="fa fa-exchange"></i> to start it now.'; status_tip = 'Sync not performed. Click <i class="fa fa-refresh"></i> to start it now.';
break; break;
case 'none': case 'none':
case 'ok': case 'ok':

View File

@@ -10,7 +10,7 @@
* @description This controller controls the adhoc form creation, command launching and navigating to standard out after command has been succesfully ran. * @description This controller controls the adhoc form creation, command launching and navigating to standard out after command has been succesfully ran.
*/ */
function adhocController($q, $scope, $location, $stateParams, function adhocController($q, $scope, $location, $stateParams,
$state, CheckPasswords, PromptForPasswords, CreateLaunchDialog, adhocForm, $state, CheckPasswords, PromptForPasswords, CreateLaunchDialog, CreateSelect2, adhocForm,
GenerateForm, Rest, ProcessErrors, ClearScope, GetBasePath, GetChoices, GenerateForm, Rest, ProcessErrors, ClearScope, GetBasePath, GetChoices,
KindChange, LookUpInit, CredentialList, Empty, Wait) { KindChange, LookUpInit, CredentialList, Empty, Wait) {
@@ -68,6 +68,17 @@ function adhocController($q, $scope, $location, $stateParams,
if (formReadyPromise === 2) { if (formReadyPromise === 2) {
privateFn.setFieldDefaults($scope.adhoc_verbosity_options, privateFn.setFieldDefaults($scope.adhoc_verbosity_options,
$scope.forks_field.default); $scope.forks_field.default);
CreateSelect2({
element: '#adhoc_module_name',
multiple: false
});
CreateSelect2({
element: '#adhoc_verbosity',
multiple: false
});
Wait('stop'); Wait('stop');
} }
} }
@@ -295,7 +306,7 @@ function adhocController($q, $scope, $location, $stateParams,
} }
export default ['$q', '$scope', '$location', '$stateParams', export default ['$q', '$scope', '$location', '$stateParams',
'$state', 'CheckPasswords', 'PromptForPasswords', 'CreateLaunchDialog', 'adhocForm', '$state', 'CheckPasswords', 'PromptForPasswords', 'CreateLaunchDialog', 'CreateSelect2',
'GenerateForm', 'Rest', 'ProcessErrors', 'ClearScope', 'GetBasePath', 'adhocForm', 'GenerateForm', 'Rest', 'ProcessErrors', 'ClearScope', 'GetBasePath',
'GetChoices', 'KindChange', 'LookUpInit', 'CredentialList', 'Empty', 'Wait', 'GetChoices', 'KindChange', 'LookUpInit', 'CredentialList', 'Empty', 'Wait',
adhocController]; adhocController];

View File

@@ -123,17 +123,17 @@ export default function() {
}, },
}, },
buttons: { buttons: {
launch: {
label: 'Save',
ngClick: 'launchJob()',
ngDisabled: true,
'class': 'btn btn-sm List-buttonSubmit'
},
reset: { reset: {
ngClick: 'formReset()', ngClick: 'formReset()',
ngDisabled: true, ngDisabled: true,
label: 'Reset', label: 'Reset',
'class': 'btn btn-sm Form-cancelButton' 'class': 'btn btn-sm Form-cancelButton'
},
launch: {
label: 'Save',
ngClick: 'launchJob()',
ngDisabled: true,
'class': 'btn btn-sm List-buttonSubmit'
} }
}, },

View File

@@ -3,7 +3,7 @@
* *
* All Rights Reserved * All Rights Reserved
*************************************************/ *************************************************/
@@ -15,7 +15,8 @@ export default
iterator: 'group', iterator: 'group',
selectTitle: 'Copy Groups', selectTitle: 'Copy Groups',
index: false, index: false,
well: false, well: false,
emptyListText: 'PLEASE CREATE ADDITIONAL GROUPS / HOSTS TO PERFORM THIS ACTION',
fields: { fields: {
name: { name: {
key: true, key: true,

View File

@@ -129,7 +129,7 @@ angular.module('GeneratorHelpers', [systemStatus.name])
icon = "fa-trash-o"; icon = "fa-trash-o";
break; break;
case 'group_update': case 'group_update':
icon = 'fa-exchange'; icon = 'fa-refresh';
break; break;
case 'scm_update': case 'scm_update':
icon = 'fa-cloud-download'; icon = 'fa-cloud-download';

View File

@@ -85,11 +85,19 @@
justify-content: center; justify-content: center;
&-message { &-message {
font-size: 1.5em; font-size: 14px;
line-height: 1.5; line-height: 1.5;
text-align: center;
width: 75%;
margin-bottom: 2em; margin-bottom: 2em;
color: @default-interface-txt;
text-transform: uppercase;
width: 100%;
height: 200px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 5px;
border: 1px solid @default-no-items-bord;
background-color: @default-no-items-bord;
} }
&-note { &-note {

View File

@@ -8,7 +8,7 @@
</section> </section>
<section class="SystemTrackingContainer Panel" ng-hide="noModuleData"> <section class="SystemTrackingContainer Panel" ng-hide="noModuleData">
<div class="row"> <div class="row">
<div class="Form-title ng-binding col-md-3">SYSTEM TRACKING | {{inventory.name}}</div> <div class="Form-title ng-binding col-md-3">SYSTEM TRACKING <div class="List-titleLockup"></div>{{inventory.name}}</div>
<div class="FactModulePickers row col-md-8 col-md-offset-1"> <div class="FactModulePickers row col-md-8 col-md-offset-1">
<div class="row"> <div class="row">
<div class="FactModulePickers-dateContainer FactModulePickers-dateContainer--left col-md-6"> <div class="FactModulePickers-dateContainer FactModulePickers-dateContainer--left col-md-6">