mirror of
https://github.com/ansible/awx.git
synced 2026-01-12 18:40:01 -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:
parent
af5bb93864
commit
44574de083
@ -30,14 +30,15 @@ angular.module('ansible', [
|
||||
'InventoriesListDefinition',
|
||||
'InventoryFormDefinition',
|
||||
'InventoryHelper',
|
||||
'InventoryHostsFormDefinition',
|
||||
'InventoryGroupsFormDefinition',
|
||||
'InventoryGroupsDefinition',
|
||||
'InventoryHostsDefinition',
|
||||
'HostsHelper',
|
||||
'AWFilters',
|
||||
'HostFormDefinition',
|
||||
'HostListDefinition',
|
||||
'GroupFormDefinition',
|
||||
'GroupListDefinition',
|
||||
'GroupsHelper',
|
||||
'TeamsListDefinition',
|
||||
'TeamFormDefinition',
|
||||
'TeamHelper',
|
||||
|
||||
@ -314,31 +314,39 @@ InventoriesAdd.$inject = [ '$scope', '$rootScope', '$compile', '$location', '$lo
|
||||
'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
|
||||
//scope.
|
||||
ClearScope('htmlTemplate'); //Garbage collection. Don't leave behind any listeners/watchers from the prior
|
||||
//scope.
|
||||
|
||||
var generator = GenerateList;
|
||||
var list = InventoryGroups;
|
||||
var base = $location.path().replace(/^\//,'').split('/')[0];
|
||||
var scope = $rootScope.$new();
|
||||
var groupScope;
|
||||
var generator = GenerateList;
|
||||
var list = InventoryGroups;
|
||||
var base = $location.path().replace(/^\//,'').split('/')[0];
|
||||
var scope = $rootScope.$new();
|
||||
var groupScope;
|
||||
|
||||
scope.$on('searchTreeReady', function(e, inventory_name, groups) {
|
||||
// After the tree data loads, generate the groups list
|
||||
groupScope = generator.inject(list, { mode: 'edit', id: 'groups-container', breadCrumbs: false, searchSize: 'col-lg-5' });
|
||||
Wait('stop');
|
||||
groupScope.groups = groups;
|
||||
groupScope.inventory_name = inventory_name;
|
||||
groupScope.inventory_id = $routeParams.inventory_id;
|
||||
});
|
||||
scope.$on('searchTreeReady', function(e, inventory_name, groups) {
|
||||
// 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.groups = groups;
|
||||
for (var i=0; i < groupScope.groups.length; i++) {
|
||||
var stat = UpdateStatusMsg({ status: groupScope.groups[i].status });
|
||||
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',
|
||||
'Wait'
|
||||
InventoriesEdit.$inject = [ '$rootScope','$location', '$routeParams', 'GenerateList', 'ClearScope', 'InventoryGroups', 'InventoryHosts', 'BuildTree',
|
||||
'Wait', 'UpdateStatusMsg', 'InjectHosts'
|
||||
];
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', 'GroupListDefinition',
|
||||
'SearchHelper', 'PaginateHelper', 'ListGenerator', 'AuthService', 'GroupsHelper',
|
||||
'InventoryHelper', 'SelectionHelper', 'JobSubmissionHelper', 'RefreshHelper',
|
||||
'PromptDialog', 'InventorySummaryHelpDefinition', 'TreeSelector', 'CredentialsListDefinition'
|
||||
'PromptDialog', 'InventorySummaryHelpDefinition', 'CredentialsListDefinition'
|
||||
])
|
||||
|
||||
.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',
|
||||
'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,
|
||||
ProcessErrors, GetBasePath, GroupsAdd, SelectionInit, BuildTree) {
|
||||
ProcessErrors, GetBasePath, GroupsAdd, SelectionInit) {
|
||||
return function(params) {
|
||||
|
||||
// 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.$on('modalClosed', function() {
|
||||
BuildTree({
|
||||
/*BuildTree({
|
||||
scope: scope,
|
||||
inventory_id: inventory_id,
|
||||
emit_on_select: 'NodeSelect',
|
||||
target_id: 'search-tree-container',
|
||||
refresh: true,
|
||||
moveable: true
|
||||
});
|
||||
});*/
|
||||
});
|
||||
}
|
||||
}])
|
||||
|
||||
.factory('InventoryStatus', [ '$rootScope', '$routeParams', 'Rest', 'Alert', 'ProcessErrors', 'GetBasePath', 'FormatDate', 'InventorySummary',
|
||||
'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,
|
||||
SearchInit, PaginateInit, Refresh, InventoryUpdate, GroupsEdit, HelpDialog, InventorySummaryHelp, BuildTree, ClickNode,
|
||||
SearchInit, PaginateInit, Refresh, InventoryUpdate, GroupsEdit, HelpDialog, InventorySummaryHelp, ClickNode,
|
||||
HostsStatusMsg, UpdateStatusMsg, ViewUpdateStatus, Wait) {
|
||||
return function(params) {
|
||||
//Build a summary of a given inventory
|
||||
@ -522,7 +522,7 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', '
|
||||
|
||||
// Respond to refresh button
|
||||
scope.refresh = function() {
|
||||
scope.search(list.iterator, false, true);
|
||||
/*scope.search(list.iterator, false, true);
|
||||
BuildTree({
|
||||
scope: scope,
|
||||
inventory_id: scope['inventory_id'],
|
||||
@ -530,7 +530,7 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', '
|
||||
target_id: 'search-tree-container',
|
||||
refresh: true,
|
||||
moveable: true
|
||||
});
|
||||
});*/
|
||||
}
|
||||
|
||||
// Start the update process
|
||||
@ -584,9 +584,9 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', '
|
||||
}])
|
||||
|
||||
.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,
|
||||
GetBasePath, ParseTypeChange, GroupsEdit, BuildTree, ClickNode, Wait) {
|
||||
GetBasePath, ParseTypeChange, GroupsEdit, ClickNode, Wait) {
|
||||
return function(params) {
|
||||
|
||||
var inventory_id = params.inventory_id;
|
||||
@ -664,7 +664,7 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', '
|
||||
scope.formModalActionDisabled = false;
|
||||
scope.showGroupHelp = false; //get rid of the Hint
|
||||
$('#form-modal').modal('hide');
|
||||
BuildTree({
|
||||
/*BuildTree({
|
||||
scope: scope,
|
||||
inventory_id: scope['inventory_id'],
|
||||
emit_on_select: 'NodeSelect',
|
||||
@ -672,7 +672,7 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', '
|
||||
refresh: true,
|
||||
moveable: true,
|
||||
group_id: data.id
|
||||
});
|
||||
});*/
|
||||
})
|
||||
.error( function(data, status, headers, config) {
|
||||
Wait('stop');
|
||||
@ -1158,9 +1158,9 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', '
|
||||
|
||||
|
||||
.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,
|
||||
GetBasePath, BuildTree, Wait, ClickNode) {
|
||||
GetBasePath, Wait, ClickNode) {
|
||||
return function(params) {
|
||||
// Delete the selected group node. Disassociates it from its parent.
|
||||
var scope = params.scope;
|
||||
@ -1183,7 +1183,7 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', '
|
||||
Rest.post({ id: group_id, disassociate: 1 })
|
||||
.success( function(data, status, headers, config) {
|
||||
//DeleteNode({ selector: '#' + obj.attr('id') });
|
||||
BuildTree({
|
||||
/*BuildTree({
|
||||
scope: scope,
|
||||
inventory_id: scope['inventory_id'],
|
||||
emit_on_select: 'NodeSelect',
|
||||
@ -1191,7 +1191,7 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', '
|
||||
refresh: true,
|
||||
id: parent.attr('id'),
|
||||
moveable: true
|
||||
});
|
||||
});*/
|
||||
$('#prompt-modal').off();
|
||||
})
|
||||
.error( function(data, status, headers, config) {
|
||||
|
||||
@ -11,10 +11,37 @@ angular.module('HostsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', 'H
|
||||
'SearchHelper', 'PaginateHelper', 'ListGenerator', 'AuthService', 'HostsHelper',
|
||||
'InventoryHelper', 'RelatedSearchHelper','RelatedPaginateHelper',
|
||||
'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() {
|
||||
return function(host) {
|
||||
// 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',
|
||||
'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',
|
||||
'Prompt', 'ProcessErrors', 'GetBasePath', 'HostsReload', 'ParseTypeChange', 'Wait',
|
||||
function($rootScope, $location, $log, $routeParams, Rest, Alert, GenerateForm, Prompt, ProcessErrors,
|
||||
|
||||
@ -22,8 +22,8 @@ angular.module('InventoryGroupsDefinition', [])
|
||||
|
||||
fields: {
|
||||
name: {
|
||||
label: 'Group',
|
||||
key: true,
|
||||
label: 'name',
|
||||
ngClick: "\{\{ 'GroupsEdit(' + group.id + ')' \}\}",
|
||||
//ngClass: "\{\{ 'level' + group.level \}\}",
|
||||
hasChildren: true
|
||||
@ -103,13 +103,21 @@ angular.module('InventoryGroupsDefinition', [])
|
||||
label: 'Add',
|
||||
mode: 'all',
|
||||
icon: 'icon-plus',
|
||||
'class': "btn-sm",
|
||||
ngClick: "createGroup()",
|
||||
ngHide: "groupCreateHide",
|
||||
ngDisabled: 'grpBtnDisabled',
|
||||
awToolTip: "Create a new top-level group",
|
||||
dataPlacement: 'top',
|
||||
iconSize: 'large'
|
||||
awToolTip: "Create a new group",
|
||||
dataPlacement: 'top'
|
||||
},
|
||||
edit: {
|
||||
label: 'Edit',
|
||||
mode: 'all',
|
||||
icon: 'icon-wrench',
|
||||
'class': "btn-sm",
|
||||
ngHide: "groupEditHide",
|
||||
ngDisabled: 'grpBtnDisabled',
|
||||
awToolTip: "Edit inventory properties",
|
||||
dataPlacement: 'top'
|
||||
},
|
||||
refresh: {
|
||||
label: 'Refresh',
|
||||
@ -118,18 +126,16 @@ angular.module('InventoryGroupsDefinition', [])
|
||||
mode: 'all',
|
||||
'class': 'btn-sm',
|
||||
awToolTip: "Refresh the page",
|
||||
ngClick: "refresh()",
|
||||
iconSize: 'large'
|
||||
ngClick: "refresh()"
|
||||
},
|
||||
stream: {
|
||||
label: 'Activity',
|
||||
'class': "btn-sm activity-btn",
|
||||
'class': "activity-btn",
|
||||
ngClick: "showActivity()",
|
||||
awToolTip: "View Activity Stream",
|
||||
dataPlacement: "top",
|
||||
icon: "icon-comments-alt",
|
||||
mode: 'all',
|
||||
iconSize: 'large',
|
||||
ngShow: "user_is_superuser"
|
||||
},
|
||||
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;\">" +
|
||||
//"<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()",
|
||||
id: "inventory-summary-help"
|
||||
}
|
||||
@ -150,7 +155,7 @@ angular.module('InventoryGroupsDefinition', [])
|
||||
|
||||
fieldActions: {
|
||||
group_update: {
|
||||
label: 'Update',
|
||||
label: 'Sync',
|
||||
icon: 'icon-cloud-download',
|
||||
"class": 'btn-xs btn-primary',
|
||||
ngClick: 'updateGroup(\{\{ group.id \}\})',
|
||||
|
||||
@ -87,19 +87,6 @@ angular.module('JobsListDefinition', [])
|
||||
},
|
||||
|
||||
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: {
|
||||
label: 'Launch',
|
||||
icon: 'icon-rocket',
|
||||
@ -125,6 +112,19 @@ angular.module('JobsListDefinition', [])
|
||||
"class": 'btn-danger btn-xs delete-btn',
|
||||
awToolTip: 'Remove the selected job from the database',
|
||||
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;
|
||||
@white: #FFF;
|
||||
@warning: #FF9900;
|
||||
@red: #da4f49;
|
||||
@red-hover: #AE3F3A;
|
||||
@ -336,49 +337,46 @@ a:hover {
|
||||
}
|
||||
|
||||
.site-footer {
|
||||
width: 100%;
|
||||
padding-top: 20px;
|
||||
padding-bottom: 40px;
|
||||
margin-top: 60px;
|
||||
color: @grey;
|
||||
text-align: center;
|
||||
background-color: @black;
|
||||
|
||||
a,
|
||||
a:active,
|
||||
a:visited {
|
||||
margin-right: 15px;
|
||||
width: 100%;
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
margin-top: 60px;
|
||||
color: @grey;
|
||||
}
|
||||
text-align: center;
|
||||
background-color: @black;
|
||||
|
||||
a:hover {
|
||||
color: @blue;
|
||||
}
|
||||
a,
|
||||
a:active,
|
||||
a:visited {
|
||||
margin-right: 15px;
|
||||
color: @grey;
|
||||
}
|
||||
|
||||
.help {
|
||||
font-weight: normal;
|
||||
fon-size: 12px;
|
||||
}
|
||||
a:hover {
|
||||
color: @white;
|
||||
}
|
||||
|
||||
.social {
|
||||
display: inline-block;
|
||||
}
|
||||
.help {
|
||||
padding-top: 15px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.logo {
|
||||
display: inline-block;
|
||||
}
|
||||
.logo {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.logo img {
|
||||
max-width: 125px;
|
||||
}
|
||||
.logo img {
|
||||
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 {
|
||||
text-align: center;
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
*
|
||||
* 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,
|
||||
event_level: level,
|
||||
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);
|
||||
id++;
|
||||
|
||||
@ -62,8 +62,6 @@
|
||||
<script src="{{ STATIC_URL }}js/forms/Users.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/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/Hosts.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/Inventories.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/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/JobTemplates.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/HomeGroups.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/related-paginate.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/Credentials.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/InventorySyncStatus.js"></script>
|
||||
<script src="{{ STATIC_URL }}js/widgets/SCMSyncStatus.js"></script>
|
||||
@ -361,17 +362,9 @@
|
||||
<div class="site-footer">
|
||||
<div class="container">
|
||||
<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>
|
||||
</div>
|
||||
<div class="copyright">
|
||||
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="copyright"><a href="http://www.ansibleworks.com">Copyright © 2013 AnsibleWorks, Inc. All rights reserved.</a></div>
|
||||
<div class="logo pull-right">
|
||||
<a href="http://www.ansibleworks.com" target="_blank"><img src="{{ STATIC_URL }}img/AWX_logo.png" /></a>
|
||||
</div>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user