mirror of
https://github.com/ansible/awx.git
synced 2026-02-22 13:36:02 -03:30
Removed address from footer. Made copyright a link. Refactored layout to use TB columns. Added media queries to stack columns and center things on small viewports.
This commit is contained in:
@@ -30,14 +30,15 @@ angular.module('ansible', [
|
|||||||
'InventoriesListDefinition',
|
'InventoriesListDefinition',
|
||||||
'InventoryFormDefinition',
|
'InventoryFormDefinition',
|
||||||
'InventoryHelper',
|
'InventoryHelper',
|
||||||
'InventoryHostsFormDefinition',
|
|
||||||
'InventoryGroupsFormDefinition',
|
|
||||||
'InventoryGroupsDefinition',
|
'InventoryGroupsDefinition',
|
||||||
|
'InventoryHostsDefinition',
|
||||||
|
'HostsHelper',
|
||||||
'AWFilters',
|
'AWFilters',
|
||||||
'HostFormDefinition',
|
'HostFormDefinition',
|
||||||
'HostListDefinition',
|
'HostListDefinition',
|
||||||
'GroupFormDefinition',
|
'GroupFormDefinition',
|
||||||
'GroupListDefinition',
|
'GroupListDefinition',
|
||||||
|
'GroupsHelper',
|
||||||
'TeamsListDefinition',
|
'TeamsListDefinition',
|
||||||
'TeamFormDefinition',
|
'TeamFormDefinition',
|
||||||
'TeamHelper',
|
'TeamHelper',
|
||||||
|
|||||||
@@ -314,31 +314,39 @@ InventoriesAdd.$inject = [ '$scope', '$rootScope', '$compile', '$location', '$lo
|
|||||||
'OrganizationList', 'SearchInit', 'PaginateInit', 'LookUpInit', 'GetBasePath', 'ParseTypeChange', 'Wait'];
|
'OrganizationList', 'SearchInit', 'PaginateInit', 'LookUpInit', 'GetBasePath', 'ParseTypeChange', 'Wait'];
|
||||||
|
|
||||||
|
|
||||||
function InventoriesEdit ($rootScope, $location, $routeParams, GenerateList, ClearScope, InventoryGroups, BuildTree, Wait)
|
function InventoriesEdit ($rootScope, $location, $routeParams, GenerateList, ClearScope, InventoryGroups, InventoryHosts, BuildTree, Wait,
|
||||||
|
UpdateStatusMsg, InjectHosts)
|
||||||
{
|
{
|
||||||
ClearScope('htmlTemplate'); //Garbage collection. Don't leave behind any listeners/watchers from the prior
|
ClearScope('htmlTemplate'); //Garbage collection. Don't leave behind any listeners/watchers from the prior
|
||||||
//scope.
|
//scope.
|
||||||
|
|
||||||
var generator = GenerateList;
|
var generator = GenerateList;
|
||||||
var list = InventoryGroups;
|
var list = InventoryGroups;
|
||||||
var base = $location.path().replace(/^\//,'').split('/')[0];
|
var base = $location.path().replace(/^\//,'').split('/')[0];
|
||||||
var scope = $rootScope.$new();
|
var scope = $rootScope.$new();
|
||||||
var groupScope;
|
var groupScope;
|
||||||
|
|
||||||
scope.$on('searchTreeReady', function(e, inventory_name, groups) {
|
scope.$on('searchTreeReady', function(e, inventory_name, groups) {
|
||||||
// After the tree data loads, generate the groups list
|
// After the tree data loads, generate the groups list
|
||||||
groupScope = generator.inject(list, { mode: 'edit', id: 'groups-container', breadCrumbs: false, searchSize: 'col-lg-5' });
|
groupScope = generator.inject(list, { mode: 'edit', id: 'groups-container', breadCrumbs: false, searchSize: 'col-lg-5' });
|
||||||
Wait('stop');
|
groupScope.groups = groups;
|
||||||
groupScope.groups = groups;
|
for (var i=0; i < groupScope.groups.length; i++) {
|
||||||
groupScope.inventory_name = inventory_name;
|
var stat = UpdateStatusMsg({ status: groupScope.groups[i].status });
|
||||||
groupScope.inventory_id = $routeParams.inventory_id;
|
groupScope.groups[i].status_badge_class = stat['class'];
|
||||||
});
|
groupScope.groups[i].status_badge_tooltip = stat['tooltip'];
|
||||||
|
groupScope.groups[i].status = stat['status'];
|
||||||
|
}
|
||||||
|
groupScope.inventory_name = inventory_name;
|
||||||
|
groupScope.inventory_id = $routeParams.inventory_id;
|
||||||
|
InjectHosts({ scope: groupScope });
|
||||||
|
Wait('stop');
|
||||||
|
});
|
||||||
|
|
||||||
BuildTree({ scope: scope, inventory_id: $routeParams.inventory_id });
|
BuildTree({ scope: scope, inventory_id: $routeParams.inventory_id });
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
InventoriesEdit.$inject = [ '$rootScope','$location', '$routeParams', 'GenerateList', 'ClearScope', 'InventoryGroups', 'BuildTree',
|
InventoriesEdit.$inject = [ '$rootScope','$location', '$routeParams', 'GenerateList', 'ClearScope', 'InventoryGroups', 'InventoryHosts', 'BuildTree',
|
||||||
'Wait'
|
'Wait', 'UpdateStatusMsg', 'InjectHosts'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', 'GroupListDefinition',
|
angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', 'GroupListDefinition',
|
||||||
'SearchHelper', 'PaginateHelper', 'ListGenerator', 'AuthService', 'GroupsHelper',
|
'SearchHelper', 'PaginateHelper', 'ListGenerator', 'AuthService', 'GroupsHelper',
|
||||||
'InventoryHelper', 'SelectionHelper', 'JobSubmissionHelper', 'RefreshHelper',
|
'InventoryHelper', 'SelectionHelper', 'JobSubmissionHelper', 'RefreshHelper',
|
||||||
'PromptDialog', 'InventorySummaryHelpDefinition', 'TreeSelector', 'CredentialsListDefinition'
|
'PromptDialog', 'InventorySummaryHelpDefinition', 'CredentialsListDefinition'
|
||||||
])
|
])
|
||||||
|
|
||||||
.factory('GetSourceTypeOptions', [ 'Rest', 'ProcessErrors', 'GetBasePath', function(Rest, ProcessErrors, GetBasePath) {
|
.factory('GetSourceTypeOptions', [ 'Rest', 'ProcessErrors', 'GetBasePath', function(Rest, ProcessErrors, GetBasePath) {
|
||||||
@@ -209,9 +209,9 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', '
|
|||||||
}])
|
}])
|
||||||
|
|
||||||
.factory('GroupsList', ['$rootScope', '$location', '$log', '$routeParams', 'Rest', 'Alert', 'GroupList', 'GenerateList',
|
.factory('GroupsList', ['$rootScope', '$location', '$log', '$routeParams', 'Rest', 'Alert', 'GroupList', 'GenerateList',
|
||||||
'Prompt', 'SearchInit', 'PaginateInit', 'ProcessErrors', 'GetBasePath', 'GroupsAdd', 'SelectionInit', 'BuildTree',
|
'Prompt', 'SearchInit', 'PaginateInit', 'ProcessErrors', 'GetBasePath', 'GroupsAdd', 'SelectionInit',
|
||||||
function($rootScope, $location, $log, $routeParams, Rest, Alert, GroupList, GenerateList, Prompt, SearchInit, PaginateInit,
|
function($rootScope, $location, $log, $routeParams, Rest, Alert, GroupList, GenerateList, Prompt, SearchInit, PaginateInit,
|
||||||
ProcessErrors, GetBasePath, GroupsAdd, SelectionInit, BuildTree) {
|
ProcessErrors, GetBasePath, GroupsAdd, SelectionInit) {
|
||||||
return function(params) {
|
return function(params) {
|
||||||
|
|
||||||
// build and present the list of groups we can add to an existing group
|
// build and present the list of groups we can add to an existing group
|
||||||
@@ -300,23 +300,23 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', '
|
|||||||
scope.removeModalClosed();
|
scope.removeModalClosed();
|
||||||
}
|
}
|
||||||
scope.removeModalClosed = scope.$on('modalClosed', function() {
|
scope.removeModalClosed = scope.$on('modalClosed', function() {
|
||||||
BuildTree({
|
/*BuildTree({
|
||||||
scope: scope,
|
scope: scope,
|
||||||
inventory_id: inventory_id,
|
inventory_id: inventory_id,
|
||||||
emit_on_select: 'NodeSelect',
|
emit_on_select: 'NodeSelect',
|
||||||
target_id: 'search-tree-container',
|
target_id: 'search-tree-container',
|
||||||
refresh: true,
|
refresh: true,
|
||||||
moveable: true
|
moveable: true
|
||||||
});
|
});*/
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}])
|
}])
|
||||||
|
|
||||||
.factory('InventoryStatus', [ '$rootScope', '$routeParams', 'Rest', 'Alert', 'ProcessErrors', 'GetBasePath', 'FormatDate', 'InventorySummary',
|
.factory('InventoryStatus', [ '$rootScope', '$routeParams', 'Rest', 'Alert', 'ProcessErrors', 'GetBasePath', 'FormatDate', 'InventorySummary',
|
||||||
'GenerateList', 'ClearScope', 'SearchInit', 'PaginateInit', 'Refresh', 'InventoryUpdate', 'GroupsEdit', 'HelpDialog',
|
'GenerateList', 'ClearScope', 'SearchInit', 'PaginateInit', 'Refresh', 'InventoryUpdate', 'GroupsEdit', 'HelpDialog',
|
||||||
'InventorySummaryHelp', 'BuildTree', 'ClickNode', 'HostsStatusMsg', 'UpdateStatusMsg', 'ViewUpdateStatus', 'Wait',
|
'InventorySummaryHelp', 'ClickNode', 'HostsStatusMsg', 'UpdateStatusMsg', 'ViewUpdateStatus', 'Wait',
|
||||||
function($rootScope, $routeParams, Rest, Alert, ProcessErrors, GetBasePath, FormatDate, InventorySummary, GenerateList, ClearScope,
|
function($rootScope, $routeParams, Rest, Alert, ProcessErrors, GetBasePath, FormatDate, InventorySummary, GenerateList, ClearScope,
|
||||||
SearchInit, PaginateInit, Refresh, InventoryUpdate, GroupsEdit, HelpDialog, InventorySummaryHelp, BuildTree, ClickNode,
|
SearchInit, PaginateInit, Refresh, InventoryUpdate, GroupsEdit, HelpDialog, InventorySummaryHelp, ClickNode,
|
||||||
HostsStatusMsg, UpdateStatusMsg, ViewUpdateStatus, Wait) {
|
HostsStatusMsg, UpdateStatusMsg, ViewUpdateStatus, Wait) {
|
||||||
return function(params) {
|
return function(params) {
|
||||||
//Build a summary of a given inventory
|
//Build a summary of a given inventory
|
||||||
@@ -522,7 +522,7 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', '
|
|||||||
|
|
||||||
// Respond to refresh button
|
// Respond to refresh button
|
||||||
scope.refresh = function() {
|
scope.refresh = function() {
|
||||||
scope.search(list.iterator, false, true);
|
/*scope.search(list.iterator, false, true);
|
||||||
BuildTree({
|
BuildTree({
|
||||||
scope: scope,
|
scope: scope,
|
||||||
inventory_id: scope['inventory_id'],
|
inventory_id: scope['inventory_id'],
|
||||||
@@ -530,7 +530,7 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', '
|
|||||||
target_id: 'search-tree-container',
|
target_id: 'search-tree-container',
|
||||||
refresh: true,
|
refresh: true,
|
||||||
moveable: true
|
moveable: true
|
||||||
});
|
});*/
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start the update process
|
// Start the update process
|
||||||
@@ -584,9 +584,9 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', '
|
|||||||
}])
|
}])
|
||||||
|
|
||||||
.factory('GroupsAdd', ['$rootScope', '$location', '$log', '$routeParams', 'Rest', 'Alert', 'GroupForm', 'GenerateForm',
|
.factory('GroupsAdd', ['$rootScope', '$location', '$log', '$routeParams', 'Rest', 'Alert', 'GroupForm', 'GenerateForm',
|
||||||
'Prompt', 'ProcessErrors', 'GetBasePath', 'ParseTypeChange', 'GroupsEdit', 'BuildTree', 'ClickNode', 'Wait',
|
'Prompt', 'ProcessErrors', 'GetBasePath', 'ParseTypeChange', 'GroupsEdit', 'ClickNode', 'Wait',
|
||||||
function($rootScope, $location, $log, $routeParams, Rest, Alert, GroupForm, GenerateForm, Prompt, ProcessErrors,
|
function($rootScope, $location, $log, $routeParams, Rest, Alert, GroupForm, GenerateForm, Prompt, ProcessErrors,
|
||||||
GetBasePath, ParseTypeChange, GroupsEdit, BuildTree, ClickNode, Wait) {
|
GetBasePath, ParseTypeChange, GroupsEdit, ClickNode, Wait) {
|
||||||
return function(params) {
|
return function(params) {
|
||||||
|
|
||||||
var inventory_id = params.inventory_id;
|
var inventory_id = params.inventory_id;
|
||||||
@@ -664,7 +664,7 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', '
|
|||||||
scope.formModalActionDisabled = false;
|
scope.formModalActionDisabled = false;
|
||||||
scope.showGroupHelp = false; //get rid of the Hint
|
scope.showGroupHelp = false; //get rid of the Hint
|
||||||
$('#form-modal').modal('hide');
|
$('#form-modal').modal('hide');
|
||||||
BuildTree({
|
/*BuildTree({
|
||||||
scope: scope,
|
scope: scope,
|
||||||
inventory_id: scope['inventory_id'],
|
inventory_id: scope['inventory_id'],
|
||||||
emit_on_select: 'NodeSelect',
|
emit_on_select: 'NodeSelect',
|
||||||
@@ -672,7 +672,7 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', '
|
|||||||
refresh: true,
|
refresh: true,
|
||||||
moveable: true,
|
moveable: true,
|
||||||
group_id: data.id
|
group_id: data.id
|
||||||
});
|
});*/
|
||||||
})
|
})
|
||||||
.error( function(data, status, headers, config) {
|
.error( function(data, status, headers, config) {
|
||||||
Wait('stop');
|
Wait('stop');
|
||||||
@@ -1158,9 +1158,9 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', '
|
|||||||
|
|
||||||
|
|
||||||
.factory('GroupsDelete', ['$rootScope', '$location', '$log', '$routeParams', 'Rest', 'Alert', 'GroupForm', 'GenerateForm',
|
.factory('GroupsDelete', ['$rootScope', '$location', '$log', '$routeParams', 'Rest', 'Alert', 'GroupForm', 'GenerateForm',
|
||||||
'Prompt', 'ProcessErrors', 'GetBasePath', 'BuildTree', 'Wait', 'ClickNode',
|
'Prompt', 'ProcessErrors', 'GetBasePath', 'Wait', 'ClickNode',
|
||||||
function($rootScope, $location, $log, $routeParams, Rest, Alert, GroupForm, GenerateForm, Prompt, ProcessErrors,
|
function($rootScope, $location, $log, $routeParams, Rest, Alert, GroupForm, GenerateForm, Prompt, ProcessErrors,
|
||||||
GetBasePath, BuildTree, Wait, ClickNode) {
|
GetBasePath, Wait, ClickNode) {
|
||||||
return function(params) {
|
return function(params) {
|
||||||
// Delete the selected group node. Disassociates it from its parent.
|
// Delete the selected group node. Disassociates it from its parent.
|
||||||
var scope = params.scope;
|
var scope = params.scope;
|
||||||
@@ -1183,7 +1183,7 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', '
|
|||||||
Rest.post({ id: group_id, disassociate: 1 })
|
Rest.post({ id: group_id, disassociate: 1 })
|
||||||
.success( function(data, status, headers, config) {
|
.success( function(data, status, headers, config) {
|
||||||
//DeleteNode({ selector: '#' + obj.attr('id') });
|
//DeleteNode({ selector: '#' + obj.attr('id') });
|
||||||
BuildTree({
|
/*BuildTree({
|
||||||
scope: scope,
|
scope: scope,
|
||||||
inventory_id: scope['inventory_id'],
|
inventory_id: scope['inventory_id'],
|
||||||
emit_on_select: 'NodeSelect',
|
emit_on_select: 'NodeSelect',
|
||||||
@@ -1191,7 +1191,7 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', '
|
|||||||
refresh: true,
|
refresh: true,
|
||||||
id: parent.attr('id'),
|
id: parent.attr('id'),
|
||||||
moveable: true
|
moveable: true
|
||||||
});
|
});*/
|
||||||
$('#prompt-modal').off();
|
$('#prompt-modal').off();
|
||||||
})
|
})
|
||||||
.error( function(data, status, headers, config) {
|
.error( function(data, status, headers, config) {
|
||||||
|
|||||||
@@ -11,10 +11,37 @@ angular.module('HostsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', 'H
|
|||||||
'SearchHelper', 'PaginateHelper', 'ListGenerator', 'AuthService', 'HostsHelper',
|
'SearchHelper', 'PaginateHelper', 'ListGenerator', 'AuthService', 'HostsHelper',
|
||||||
'InventoryHelper', 'RelatedSearchHelper','RelatedPaginateHelper',
|
'InventoryHelper', 'RelatedSearchHelper','RelatedPaginateHelper',
|
||||||
'InventoryFormDefinition', 'SelectionHelper', 'HostGroupsFormDefinition',
|
'InventoryFormDefinition', 'SelectionHelper', 'HostGroupsFormDefinition',
|
||||||
'InventoryHostsFormDefinition'
|
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
.factory('HostsReload', [ 'Empty', 'InventoryHosts', 'GetBasePath', 'SearchInit', 'PaginateInit',
|
||||||
|
function(Empty, InventoryHosts, GetBasePath, SearchInit, PaginateInit) {
|
||||||
|
return function(params) {
|
||||||
|
|
||||||
|
var group_id = params.group_id;
|
||||||
|
var scope = params.scope;
|
||||||
|
|
||||||
|
var url = ( !Empty(group_id) ) ? GetBasePath('groups') + group_id + '/all_hosts/' :
|
||||||
|
GetBasePath('inventory') + params.inventory_id + '/hosts/';
|
||||||
|
|
||||||
|
SearchInit({ scope: scope, set: 'hosts', list: InventoryHosts, url: url });
|
||||||
|
PaginateInit({ scope: scope, list: InventoryHosts, url: url });
|
||||||
|
scope.search(InventoryHosts.iterator);
|
||||||
|
}
|
||||||
|
}])
|
||||||
|
|
||||||
|
.factory('InjectHosts', ['GenerateList', 'InventoryHosts', 'HostsReload',
|
||||||
|
function(GenerateList, InventoryHosts, HostsReload) {
|
||||||
|
return function(params) {
|
||||||
|
|
||||||
|
var scope = params.scope;
|
||||||
|
|
||||||
|
var generator = GenerateList;
|
||||||
|
generator.inject(InventoryHosts, { mode: 'edit', id: 'hosts-container', breadCrumbs: false, searchSize: 'col-lg-5' });
|
||||||
|
HostsReload({ scope: scope, group_id: null });
|
||||||
|
}
|
||||||
|
}])
|
||||||
|
|
||||||
.factory('SetHostStatus', [ function() {
|
.factory('SetHostStatus', [ function() {
|
||||||
return function(host) {
|
return function(host) {
|
||||||
// Set status related fields on a host object
|
// Set status related fields on a host object
|
||||||
@@ -496,7 +523,7 @@ angular.module('HostsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', 'H
|
|||||||
}
|
}
|
||||||
}])
|
}])
|
||||||
|
|
||||||
|
/*
|
||||||
.factory('HostsReload', ['$location', '$routeParams', 'SearchInit', 'PaginateInit', 'InventoryHostsForm', 'GetBasePath', 'Wait',
|
.factory('HostsReload', ['$location', '$routeParams', 'SearchInit', 'PaginateInit', 'InventoryHostsForm', 'GetBasePath', 'Wait',
|
||||||
'SetHostStatus',
|
'SetHostStatus',
|
||||||
function($location, $routeParams, SearchInit, PaginateInit, InventoryHostsForm, GetBasePath, Wait, SetHostStatus) {
|
function($location, $routeParams, SearchInit, PaginateInit, InventoryHostsForm, GetBasePath, Wait, SetHostStatus) {
|
||||||
@@ -577,6 +604,8 @@ angular.module('HostsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', 'H
|
|||||||
}
|
}
|
||||||
}])
|
}])
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
.factory('EditHostGroups', ['$rootScope', '$location', '$log', '$routeParams', 'Rest', 'Alert', 'GenerateForm',
|
.factory('EditHostGroups', ['$rootScope', '$location', '$log', '$routeParams', 'Rest', 'Alert', 'GenerateForm',
|
||||||
'Prompt', 'ProcessErrors', 'GetBasePath', 'HostsReload', 'ParseTypeChange', 'Wait',
|
'Prompt', 'ProcessErrors', 'GetBasePath', 'HostsReload', 'ParseTypeChange', 'Wait',
|
||||||
function($rootScope, $location, $log, $routeParams, Rest, Alert, GenerateForm, Prompt, ProcessErrors,
|
function($rootScope, $location, $log, $routeParams, Rest, Alert, GenerateForm, Prompt, ProcessErrors,
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ angular.module('InventoryGroupsDefinition', [])
|
|||||||
|
|
||||||
fields: {
|
fields: {
|
||||||
name: {
|
name: {
|
||||||
|
label: 'Group',
|
||||||
key: true,
|
key: true,
|
||||||
label: 'name',
|
|
||||||
ngClick: "\{\{ 'GroupsEdit(' + group.id + ')' \}\}",
|
ngClick: "\{\{ 'GroupsEdit(' + group.id + ')' \}\}",
|
||||||
//ngClass: "\{\{ 'level' + group.level \}\}",
|
//ngClass: "\{\{ 'level' + group.level \}\}",
|
||||||
hasChildren: true
|
hasChildren: true
|
||||||
@@ -103,13 +103,21 @@ angular.module('InventoryGroupsDefinition', [])
|
|||||||
label: 'Add',
|
label: 'Add',
|
||||||
mode: 'all',
|
mode: 'all',
|
||||||
icon: 'icon-plus',
|
icon: 'icon-plus',
|
||||||
'class': "btn-sm",
|
|
||||||
ngClick: "createGroup()",
|
ngClick: "createGroup()",
|
||||||
ngHide: "groupCreateHide",
|
ngHide: "groupCreateHide",
|
||||||
ngDisabled: 'grpBtnDisabled',
|
ngDisabled: 'grpBtnDisabled',
|
||||||
awToolTip: "Create a new top-level group",
|
awToolTip: "Create a new group",
|
||||||
dataPlacement: 'top',
|
dataPlacement: 'top'
|
||||||
iconSize: 'large'
|
},
|
||||||
|
edit: {
|
||||||
|
label: 'Edit',
|
||||||
|
mode: 'all',
|
||||||
|
icon: 'icon-wrench',
|
||||||
|
'class': "btn-sm",
|
||||||
|
ngHide: "groupEditHide",
|
||||||
|
ngDisabled: 'grpBtnDisabled',
|
||||||
|
awToolTip: "Edit inventory properties",
|
||||||
|
dataPlacement: 'top'
|
||||||
},
|
},
|
||||||
refresh: {
|
refresh: {
|
||||||
label: 'Refresh',
|
label: 'Refresh',
|
||||||
@@ -118,18 +126,16 @@ angular.module('InventoryGroupsDefinition', [])
|
|||||||
mode: 'all',
|
mode: 'all',
|
||||||
'class': 'btn-sm',
|
'class': 'btn-sm',
|
||||||
awToolTip: "Refresh the page",
|
awToolTip: "Refresh the page",
|
||||||
ngClick: "refresh()",
|
ngClick: "refresh()"
|
||||||
iconSize: 'large'
|
|
||||||
},
|
},
|
||||||
stream: {
|
stream: {
|
||||||
label: 'Activity',
|
label: 'Activity',
|
||||||
'class': "btn-sm activity-btn",
|
'class': "activity-btn",
|
||||||
ngClick: "showActivity()",
|
ngClick: "showActivity()",
|
||||||
awToolTip: "View Activity Stream",
|
awToolTip: "View Activity Stream",
|
||||||
dataPlacement: "top",
|
dataPlacement: "top",
|
||||||
icon: "icon-comments-alt",
|
icon: "icon-comments-alt",
|
||||||
mode: 'all',
|
mode: 'all',
|
||||||
iconSize: 'large',
|
|
||||||
ngShow: "user_is_superuser"
|
ngShow: "user_is_superuser"
|
||||||
},
|
},
|
||||||
help: {
|
help: {
|
||||||
@@ -142,7 +148,6 @@ angular.module('InventoryGroupsDefinition', [])
|
|||||||
//"<div style=\"text-align:left;\"><img src=\"/static/img/cow.png\" style=\"width:50px; height:56px; float:left; padding-right:5px;\">" +
|
//"<div style=\"text-align:left;\"><img src=\"/static/img/cow.png\" style=\"width:50px; height:56px; float:left; padding-right:5px;\">" +
|
||||||
//"<p>Need help getting started creating your inventory?</p><p>Click here for help.</p></div>",
|
//"<p>Need help getting started creating your inventory?</p><p>Click here for help.</p></div>",
|
||||||
"<div style=\"text-align:left;\"><p>Need help getting started creating your inventory?</p><p>Click here for help.</p></div>",
|
"<div style=\"text-align:left;\"><p>Need help getting started creating your inventory?</p><p>Click here for help.</p></div>",
|
||||||
iconSize: 'large',
|
|
||||||
ngClick: "showHelp()",
|
ngClick: "showHelp()",
|
||||||
id: "inventory-summary-help"
|
id: "inventory-summary-help"
|
||||||
}
|
}
|
||||||
@@ -150,7 +155,7 @@ angular.module('InventoryGroupsDefinition', [])
|
|||||||
|
|
||||||
fieldActions: {
|
fieldActions: {
|
||||||
group_update: {
|
group_update: {
|
||||||
label: 'Update',
|
label: 'Sync',
|
||||||
icon: 'icon-cloud-download',
|
icon: 'icon-cloud-download',
|
||||||
"class": 'btn-xs btn-primary',
|
"class": 'btn-xs btn-primary',
|
||||||
ngClick: 'updateGroup(\{\{ group.id \}\})',
|
ngClick: 'updateGroup(\{\{ group.id \}\})',
|
||||||
|
|||||||
@@ -87,19 +87,6 @@ angular.module('JobsListDefinition', [])
|
|||||||
},
|
},
|
||||||
|
|
||||||
fieldActions: {
|
fieldActions: {
|
||||||
dropdown: {
|
|
||||||
type: 'DropDown',
|
|
||||||
label: 'View',
|
|
||||||
icon: 'icon-zoom-in',
|
|
||||||
'class': 'btn-default btn-xs',
|
|
||||||
options: [
|
|
||||||
{ ngClick: "editJob(\{\{ job.id \}\}, '\{\{ job.summary_fields.job_template.name \}\}')", label: 'Status' },
|
|
||||||
{ ngClick: "viewEvents(\{{ job.id \}\}, '\{\{ job.summary_fields.job_template.name \}\}')", label: 'Events',
|
|
||||||
ngHide: "job.status == 'new'" },
|
|
||||||
{ ngClick: "viewSummary(\{{ job.id \}\}, '\{\{ job.summary_fields.job_template.name \}\}')", label: 'Host Summary',
|
|
||||||
ngHide: "job.status == 'new'" }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
rerun: {
|
rerun: {
|
||||||
label: 'Launch',
|
label: 'Launch',
|
||||||
icon: 'icon-rocket',
|
icon: 'icon-rocket',
|
||||||
@@ -125,6 +112,19 @@ angular.module('JobsListDefinition', [])
|
|||||||
"class": 'btn-danger btn-xs delete-btn',
|
"class": 'btn-danger btn-xs delete-btn',
|
||||||
awToolTip: 'Remove the selected job from the database',
|
awToolTip: 'Remove the selected job from the database',
|
||||||
ngShow: "job.status != 'pending' && job.status != 'running' && job.status != 'waiting'"
|
ngShow: "job.status != 'pending' && job.status != 'running' && job.status != 'waiting'"
|
||||||
}
|
},
|
||||||
|
dropdown: {
|
||||||
|
type: 'DropDown',
|
||||||
|
label: 'View',
|
||||||
|
icon: 'icon-zoom-in',
|
||||||
|
'class': 'btn-default btn-xs',
|
||||||
|
options: [
|
||||||
|
{ ngClick: "editJob(\{\{ job.id \}\}, '\{\{ job.summary_fields.job_template.name \}\}')", label: 'Status' },
|
||||||
|
{ ngClick: "viewEvents(\{{ job.id \}\}, '\{\{ job.summary_fields.job_template.name \}\}')", label: 'Events',
|
||||||
|
ngHide: "job.status == 'new'" },
|
||||||
|
{ ngClick: "viewSummary(\{{ job.id \}\}, '\{\{ job.summary_fields.job_template.name \}\}')", label: 'Host Summary',
|
||||||
|
ngHide: "job.status == 'new'" }
|
||||||
|
]
|
||||||
|
},
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
@black: #171717;
|
@black: #171717;
|
||||||
|
@white: #FFF;
|
||||||
@warning: #FF9900;
|
@warning: #FF9900;
|
||||||
@red: #da4f49;
|
@red: #da4f49;
|
||||||
@red-hover: #AE3F3A;
|
@red-hover: #AE3F3A;
|
||||||
@@ -336,49 +337,46 @@ a:hover {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.site-footer {
|
.site-footer {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding-top: 20px;
|
padding-top: 20px;
|
||||||
padding-bottom: 40px;
|
padding-bottom: 20px;
|
||||||
margin-top: 60px;
|
margin-top: 60px;
|
||||||
color: @grey;
|
|
||||||
text-align: center;
|
|
||||||
background-color: @black;
|
|
||||||
|
|
||||||
a,
|
|
||||||
a:active,
|
|
||||||
a:visited {
|
|
||||||
margin-right: 15px;
|
|
||||||
color: @grey;
|
color: @grey;
|
||||||
}
|
text-align: center;
|
||||||
|
background-color: @black;
|
||||||
|
|
||||||
a:hover {
|
a,
|
||||||
color: @blue;
|
a:active,
|
||||||
}
|
a:visited {
|
||||||
|
margin-right: 15px;
|
||||||
|
color: @grey;
|
||||||
|
}
|
||||||
|
|
||||||
.help {
|
a:hover {
|
||||||
font-weight: normal;
|
color: @white;
|
||||||
fon-size: 12px;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
.social {
|
.help {
|
||||||
display: inline-block;
|
padding-top: 15px;
|
||||||
}
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
.logo {
|
.logo {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.logo img {
|
.logo img {
|
||||||
max-width: 125px;
|
max-width: 125px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.copyright {
|
||||||
|
padding-top: 15px;
|
||||||
|
display: inline-block;
|
||||||
|
font-weight: normal;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.copyright {
|
|
||||||
display: inline-block;
|
|
||||||
font-size: 11px;
|
|
||||||
font-weight: normal;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.login-header {
|
.login-header {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
*
|
*
|
||||||
* InventoryTree.js
|
* InventoryTree.js
|
||||||
*
|
*
|
||||||
* Build data for the tree selector table used on inventory detail page.
|
* Build data for the tree selector table used on inventory detail page.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -197,7 +197,8 @@ angular.module('InventoryTree', ['Utilities', 'RestServices'])
|
|||||||
id: id,
|
id: id,
|
||||||
event_level: level,
|
event_level: level,
|
||||||
ngicon: (sorted[i].children.length > 0) ? 'icon-collapse-alt' : null,
|
ngicon: (sorted[i].children.length > 0) ? 'icon-collapse-alt' : null,
|
||||||
related: { children: (sorted[i].children.length > 0) ? sorted[i].related.children : '' }
|
related: { children: (sorted[i].children.length > 0) ? sorted[i].related.children : '' },
|
||||||
|
status: sorted[i].summary_fields.inventory_source.status
|
||||||
}
|
}
|
||||||
groups.push(group);
|
groups.push(group);
|
||||||
id++;
|
id++;
|
||||||
|
|||||||
@@ -62,8 +62,6 @@
|
|||||||
<script src="{{ STATIC_URL }}js/forms/Users.js"></script>
|
<script src="{{ STATIC_URL }}js/forms/Users.js"></script>
|
||||||
<script src="{{ STATIC_URL }}js/forms/Organizations.js"></script>
|
<script src="{{ STATIC_URL }}js/forms/Organizations.js"></script>
|
||||||
<script src="{{ STATIC_URL }}js/forms/Inventories.js"></script>
|
<script src="{{ STATIC_URL }}js/forms/Inventories.js"></script>
|
||||||
<script src="{{ STATIC_URL }}js/forms/InventoryHosts.js"></script>
|
|
||||||
<script src="{{ STATIC_URL }}js/forms/InventoryGroups.js"></script>
|
|
||||||
<script src="{{ STATIC_URL }}js/forms/Teams.js"></script>
|
<script src="{{ STATIC_URL }}js/forms/Teams.js"></script>
|
||||||
<script src="{{ STATIC_URL }}js/forms/Hosts.js"></script>
|
<script src="{{ STATIC_URL }}js/forms/Hosts.js"></script>
|
||||||
<script src="{{ STATIC_URL }}js/forms/Groups.js"></script>
|
<script src="{{ STATIC_URL }}js/forms/Groups.js"></script>
|
||||||
@@ -83,9 +81,8 @@
|
|||||||
<script src="{{ STATIC_URL }}js/lists/Admins.js"></script>
|
<script src="{{ STATIC_URL }}js/lists/Admins.js"></script>
|
||||||
<script src="{{ STATIC_URL }}js/lists/Inventories.js"></script>
|
<script src="{{ STATIC_URL }}js/lists/Inventories.js"></script>
|
||||||
<script src="{{ STATIC_URL }}js/lists/Teams.js"></script>
|
<script src="{{ STATIC_URL }}js/lists/Teams.js"></script>
|
||||||
<script src="{{ STATIC_URL }}js/lists/Hosts.js"></script>
|
|
||||||
<script src="{{ STATIC_URL }}js/lists/InventoryGroups.js"></script>
|
<script src="{{ STATIC_URL }}js/lists/InventoryGroups.js"></script>
|
||||||
<script src="{{ STATIC_URL }}js/lists/Groups.js"></script>
|
<script src="{{ STATIC_URL }}js/lists/InventoryHosts.js"></script>
|
||||||
<script src="{{ STATIC_URL }}js/lists/Credentials.js"></script>
|
<script src="{{ STATIC_URL }}js/lists/Credentials.js"></script>
|
||||||
<script src="{{ STATIC_URL }}js/lists/JobTemplates.js"></script>
|
<script src="{{ STATIC_URL }}js/lists/JobTemplates.js"></script>
|
||||||
<script src="{{ STATIC_URL }}js/lists/Projects.js"></script>
|
<script src="{{ STATIC_URL }}js/lists/Projects.js"></script>
|
||||||
@@ -96,6 +93,8 @@
|
|||||||
<script src="{{ STATIC_URL }}js/lists/Streams.js"></script>
|
<script src="{{ STATIC_URL }}js/lists/Streams.js"></script>
|
||||||
<script src="{{ STATIC_URL }}js/lists/HomeGroups.js"></script>
|
<script src="{{ STATIC_URL }}js/lists/HomeGroups.js"></script>
|
||||||
<script src="{{ STATIC_URL }}js/lists/HomeHosts.js"></script>
|
<script src="{{ STATIC_URL }}js/lists/HomeHosts.js"></script>
|
||||||
|
<script src="{{ STATIC_URL }}js/lists/Groups.js"></script>
|
||||||
|
<script src="{{ STATIC_URL }}js/lists/Hosts.js"></script>
|
||||||
<script src="{{ STATIC_URL }}js/helpers/refresh-related.js"></script>
|
<script src="{{ STATIC_URL }}js/helpers/refresh-related.js"></script>
|
||||||
<script src="{{ STATIC_URL }}js/helpers/related-paginate.js"></script>
|
<script src="{{ STATIC_URL }}js/helpers/related-paginate.js"></script>
|
||||||
<script src="{{ STATIC_URL }}js/helpers/related-search.js"></script>
|
<script src="{{ STATIC_URL }}js/helpers/related-search.js"></script>
|
||||||
@@ -118,6 +117,8 @@
|
|||||||
<script src="{{ STATIC_URL }}js/helpers/Jobs.js"></script>
|
<script src="{{ STATIC_URL }}js/helpers/Jobs.js"></script>
|
||||||
<script src="{{ STATIC_URL }}js/helpers/Credentials.js"></script>
|
<script src="{{ STATIC_URL }}js/helpers/Credentials.js"></script>
|
||||||
<script src="{{ STATIC_URL }}js/helpers/Permissions.js"></script>
|
<script src="{{ STATIC_URL }}js/helpers/Permissions.js"></script>
|
||||||
|
<script src="{{ STATIC_URL }}js/helpers/Groups.js"></script>
|
||||||
|
<script src="{{ STATIC_URL }}js/helpers/Hosts.js"></script>
|
||||||
<script src="{{ STATIC_URL }}js/widgets/JobStatus.js"></script>
|
<script src="{{ STATIC_URL }}js/widgets/JobStatus.js"></script>
|
||||||
<script src="{{ STATIC_URL }}js/widgets/InventorySyncStatus.js"></script>
|
<script src="{{ STATIC_URL }}js/widgets/InventorySyncStatus.js"></script>
|
||||||
<script src="{{ STATIC_URL }}js/widgets/SCMSyncStatus.js"></script>
|
<script src="{{ STATIC_URL }}js/widgets/SCMSyncStatus.js"></script>
|
||||||
@@ -361,17 +362,9 @@
|
|||||||
<div class="site-footer">
|
<div class="site-footer">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="help pull-left">
|
<div class="help pull-left">
|
||||||
<!-- <a href="https://github.com/ansible" target="_blank"><i class="icon-github"></i></a>
|
|
||||||
<a href="https://www.facebook.com/pages/Ansibleworks/258737970923512?ref=hl" target="_blank"><i class="icon-facebook"></i></a>
|
|
||||||
<a href="http://www.twitter.com/ansibleworks" target="_blank"><i class="icon-twitter"></i></a>
|
|
||||||
<a href="http://www.linkedin.com/company/ansibleworks" target="_blank"><i class="icon-linkedin"></i></a> -->
|
|
||||||
<a href="https://ansibleworks.zendesk.com/anonymous_requests/new" target="_blank"><i class="icon-question-sign"></i> Contact Support</a>
|
<a href="https://ansibleworks.zendesk.com/anonymous_requests/new" target="_blank"><i class="icon-question-sign"></i> Contact Support</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="copyright">
|
<div class="copyright"><a href="http://www.ansibleworks.com">Copyright © 2013 AnsibleWorks, Inc. All rights reserved.</a></div>
|
||||||
Copyright © 2013 AnsibleWorks, Inc. All rights reserved.<br />
|
|
||||||
1482 East Valley Road, Suite 888 · Santa Barbara, California 93108 · +1-800-825-0212<br />
|
|
||||||
<a href="http://www.ansibleworks.com" target="_blank">www.ansibleworks.com</a>
|
|
||||||
</div>
|
|
||||||
<div class="logo pull-right">
|
<div class="logo pull-right">
|
||||||
<a href="http://www.ansibleworks.com" target="_blank"><img src="{{ STATIC_URL }}img/AWX_logo.png" /></a>
|
<a href="http://www.ansibleworks.com" target="_blank"><img src="{{ STATIC_URL }}img/AWX_logo.png" /></a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user