mirror of
https://github.com/ansible/awx.git
synced 2026-01-11 10:00:01 -03:30
Fixed a bunch of styling issues appearing in FireFox post Twitter Bootstrap 3RC1 upgrade.
This commit is contained in:
parent
f787ff8251
commit
54eff92ea3
@ -16,6 +16,10 @@
|
||||
padding-top: 100px;
|
||||
}
|
||||
|
||||
.tooltip {
|
||||
z-index: 1050;
|
||||
}
|
||||
|
||||
.text-center {
|
||||
text-align: center !important;
|
||||
}
|
||||
@ -33,52 +37,21 @@
|
||||
}
|
||||
|
||||
.btn .caret {
|
||||
border-top-color: #787878;
|
||||
border-top-color: #696969;
|
||||
}
|
||||
|
||||
/* Attempt to make button heights consistent. For some reason success, info, etc. are
|
||||
taller than plain .btn */
|
||||
|
||||
/*
|
||||
.btn-success, .btn-danger, .btn-info, .btn-primary, .btn-warning {
|
||||
padding-top: 1px;
|
||||
padding-bottom: 2px;
|
||||
.dropdown-toggle, .btn-default {
|
||||
background-color: #ccc;
|
||||
border-color: #ccc;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.btn {
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
min-width: 28px;
|
||||
.dropdown-toggle:hover , .btn-default:hover {
|
||||
background-color: #bbb;
|
||||
border-color: #bbb;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.btn-pad {
|
||||
padding-top: 3px;
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
.btn-inventory-edit {
|
||||
padding-top: 2px;
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
|
||||
.modal-footer .btn-success,
|
||||
.modal-footer .btn-danger,
|
||||
.modal-footer .btn-info,
|
||||
.modal-footer .btn-primary {
|
||||
padding-top: 3px;
|
||||
padding-bottom: 4px;
|
||||
}
|
||||
|
||||
.modal-footer .btn {
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
*/
|
||||
|
||||
/* End btn heights */
|
||||
|
||||
/* Use code-breakable in pop-over text to indent and wrap code segments */
|
||||
.code-breakable {
|
||||
word-wrap: break-word;
|
||||
@ -133,7 +106,7 @@
|
||||
.navbar-brand img {
|
||||
max-width: 260px;
|
||||
}
|
||||
ß
|
||||
|
||||
a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
@ -281,13 +254,6 @@
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.search-widget .spin {
|
||||
display: inline-block;
|
||||
font-size: 18px;
|
||||
margin-left: 15px;
|
||||
min-width: 30px;
|
||||
}
|
||||
|
||||
.status-actions {
|
||||
display: inline-block;
|
||||
height: 25px;
|
||||
@ -301,6 +267,10 @@
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
.search-widget {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.search-widget label {
|
||||
display:inline-block;
|
||||
vertical-align: middle;
|
||||
@ -353,7 +323,7 @@
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
#tree-view {
|
||||
.tree-container {
|
||||
padding: 0;
|
||||
margin: 5px 0 15px 0;
|
||||
}
|
||||
@ -364,12 +334,6 @@
|
||||
}
|
||||
|
||||
/* Display list actions next to search widget */
|
||||
.search-widget {
|
||||
display: inline-block;
|
||||
vertical-align: bottom;
|
||||
margin-bottom: 15px;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.list-actions {
|
||||
display: inline-block;
|
||||
@ -382,9 +346,8 @@
|
||||
margin-right: 3px;
|
||||
}
|
||||
|
||||
.list-actions .btn-help {
|
||||
margin-left: 20px;
|
||||
margin-top: 2px;
|
||||
.btn-help {
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
/* End Display list actions */
|
||||
@ -563,23 +526,23 @@
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
#hosts-well {
|
||||
.hosts-well {
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
#hosts-title p {
|
||||
.hosts-title p {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
#hosts-title h4 {
|
||||
.hosts-title h4 {
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
#hosts-well .search-widget {
|
||||
.hosts-well .search-widget {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#hosts-well .list-actions {
|
||||
.hosts-well .list-actions {
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
|
||||
@ -47,7 +47,7 @@ angular.module('GroupFormDefinition', [])
|
||||
"<blockquote>---<br />somevar: somevalue<br />password: magic<br /></blockquote>\n" +
|
||||
'<p>View JSON examples at <a href="http://www.json.org" target="_blank">www.json.org</a></p>' +
|
||||
'<p>View YAML examples at <a href="http://www.ansibleworks.com/docs/YAMLSyntax.html" target="_blank">ansibleworks.com</a></p>',
|
||||
dataContainer: '#form-modal'
|
||||
dataContainer: '#form-modal .modal-content'
|
||||
}
|
||||
},
|
||||
|
||||
@ -62,6 +62,7 @@ angular.module('GroupFormDefinition', [])
|
||||
reset: {
|
||||
ngClick: 'formReset()',
|
||||
label: 'Reset',
|
||||
'class': "btn btn-default",
|
||||
icon: 'icon-trash',
|
||||
ngDisabled: true //Disabled when $pristine
|
||||
}
|
||||
|
||||
@ -31,7 +31,7 @@ angular.module('HostFormDefinition', [])
|
||||
"</blockquote>",
|
||||
dataTitle: 'Host Name',
|
||||
dataPlacement: 'right',
|
||||
dataContainer: '#form-modal'
|
||||
dataContainer: '#form-modal .modal-content'
|
||||
},
|
||||
description: {
|
||||
label: 'Description',
|
||||
@ -61,7 +61,7 @@ angular.module('HostFormDefinition', [])
|
||||
'<p>View YAML examples at <a href="http://www.ansibleworks.com/docs/YAMLSyntax.html" target="_blank">ansibleworks.com</a></p>',
|
||||
dataTitle: 'Host Variables',
|
||||
dataPlacement: 'right',
|
||||
dataContainer: '#form-modal'
|
||||
dataContainer: '#form-modal .modal-content'
|
||||
}
|
||||
},
|
||||
|
||||
@ -77,6 +77,7 @@ angular.module('HostFormDefinition', [])
|
||||
ngClick: 'formReset()',
|
||||
label: 'Reset',
|
||||
icon: 'icon-trash',
|
||||
'class': 'btn btn-default',
|
||||
ngDisabled: true //Disabled when $pristine
|
||||
}
|
||||
},
|
||||
|
||||
@ -76,6 +76,7 @@ angular.module('InventoryFormDefinition', [])
|
||||
'<p>View YAML examples at <a href="http://www.ansibleworks.com/docs/YAMLSyntax.html" target="_blank">ansibleworks.com</a></p>',
|
||||
dataTitle: 'Inventory Variables',
|
||||
dataPlacement: 'bottom',
|
||||
dataContainer: "body",
|
||||
column: 2
|
||||
}
|
||||
},
|
||||
@ -92,6 +93,7 @@ angular.module('InventoryFormDefinition', [])
|
||||
ngClick: 'formReset()',
|
||||
label: 'Reset',
|
||||
icon: 'icon-trash',
|
||||
'class': 'btn btn-default',
|
||||
ngDisabled: true //Disabled when $pristine
|
||||
}
|
||||
},
|
||||
@ -116,7 +118,7 @@ angular.module('InventoryFormDefinition', [])
|
||||
label: 'Add Existing',
|
||||
awToolTip: 'Select existing host',
|
||||
ngHide: 'createButtonShow == false',
|
||||
"class": 'btn btn-pad'
|
||||
"class": 'btn btn-default'
|
||||
},
|
||||
create: {
|
||||
ngClick: "createHost()",
|
||||
@ -154,7 +156,7 @@ angular.module('InventoryFormDefinition', [])
|
||||
icon: 'icon-edit',
|
||||
label: 'Edit',
|
||||
awToolTip: 'Edit host',
|
||||
'class': 'btn-inventory-edit'
|
||||
'class': 'btn-default'
|
||||
},
|
||||
"remove": {
|
||||
ngClick: "removeHost(\{\{ host.id \}\}, '\{\{ host.name \}\}')",
|
||||
|
||||
@ -238,6 +238,7 @@ angular.module('JobTemplateFormDefinition', [])
|
||||
ngClick: 'formReset()',
|
||||
label: 'Reset',
|
||||
icon: 'icon-trash',
|
||||
'class': 'btn btn-default',
|
||||
ngDisabled: true //Disabled when $pristine
|
||||
}
|
||||
},
|
||||
|
||||
@ -43,6 +43,7 @@ angular.module('JobFormDefinition', [])
|
||||
" syntax, test environment setup and report problems.</p>",
|
||||
dataTitle: 'Job Type',
|
||||
dataPlacement: 'right',
|
||||
dataContainer: 'body',
|
||||
column: 1
|
||||
},
|
||||
inventory: {
|
||||
@ -100,6 +101,7 @@ angular.module('JobFormDefinition', [])
|
||||
disabled: true,
|
||||
awPopOver: "<p>The number of parallel or simultaneous processes to use while executing the playbook. Provide a value between 0 and 100. " +
|
||||
"A value of zero will use the ansible default setting of 5 parallel processes.</p>",
|
||||
dataContainer: 'body',
|
||||
dataTitle: 'Forks',
|
||||
dataPlacement: 'right'
|
||||
},
|
||||
@ -113,6 +115,7 @@ angular.module('JobFormDefinition', [])
|
||||
"Multiple patterns can be separated by ; : or ,</p><p>For more information and examples see the " +
|
||||
"<a href=\"http://ansible.cc/docs/patterns.html#selecting-targets\" target=\"_blank\">Selecting Targets section</a> under Inventory and Patterns " +
|
||||
" in the Ansible documentation.</p>",
|
||||
dataContainer: 'body',
|
||||
dataTitle: 'Limit',
|
||||
dataPlacement: 'right'
|
||||
},
|
||||
@ -126,7 +129,8 @@ angular.module('JobFormDefinition', [])
|
||||
column: 1,
|
||||
awPopOver: "<p>Control the level of output ansible will produce as the playbook executes.</p>",
|
||||
dataTitle: 'Verbosity',
|
||||
dataPlacement: 'right'
|
||||
dataPlacement: 'right',
|
||||
dataContainer: 'body'
|
||||
},
|
||||
variables: {
|
||||
label: 'Extra Variables',
|
||||
@ -143,6 +147,7 @@ angular.module('JobFormDefinition', [])
|
||||
"YAML:<br />\n" +
|
||||
"<blockquote>---<br />somevar: somevalue<br />password: magic<br /></blockquote>\n",
|
||||
dataTitle: 'Extra Variables',
|
||||
dataContainer: 'body',
|
||||
dataPlacement: 'left'
|
||||
},
|
||||
job_tags: {
|
||||
@ -161,6 +166,7 @@ angular.module('JobFormDefinition', [])
|
||||
"in the Job Tags field:<\p>\n" +
|
||||
"<blockquote>configuration,packages</blockquote>\n",
|
||||
dataTitle: "Job Tags",
|
||||
dataContainer: 'body',
|
||||
dataPlacement: "left"
|
||||
},
|
||||
allow_callbacks: {
|
||||
@ -183,7 +189,7 @@ angular.module('JobFormDefinition', [])
|
||||
"in one of your defined inventories, the request will be denied.</p>" +
|
||||
"<p>Successful requests will result in an entry on the Jobs tab, where the results and history can be viewed.</p>",
|
||||
detailPlacement: 'left',
|
||||
dataContainer: '#jobs',
|
||||
dataContainer: 'body',
|
||||
dataTitle: 'Callback URL'
|
||||
},
|
||||
callback_url: {
|
||||
@ -203,7 +209,7 @@ angular.module('JobFormDefinition', [])
|
||||
"in one of your defined inventories, the request will be denied.</p>" +
|
||||
"<p>Successful requests will result in an entry on the Jobs tab, where the results and history can be viewed.</p>",
|
||||
detailPlacement: 'left',
|
||||
dataContainer: '#jobs',
|
||||
dataContainer: 'body',
|
||||
dataTitle: 'Callback URL'
|
||||
},
|
||||
host_config_key: {
|
||||
@ -217,7 +223,7 @@ angular.module('JobFormDefinition', [])
|
||||
"<p class=\"code-breakable\">curl --data \"host_config_key=5a8ec154832b780b9bdef1061764ae5a\" " +
|
||||
"http://your.server.com:999/api/v1/job_templates/1/callback/</p>\n",
|
||||
detailPlacement: 'left',
|
||||
dataContainer: '#jobs'
|
||||
dataContainer: 'body'
|
||||
}
|
||||
},
|
||||
|
||||
@ -233,6 +239,7 @@ angular.module('JobFormDefinition', [])
|
||||
ngClick: 'formReset()',
|
||||
label: 'Reset',
|
||||
icon: 'icon-remove',
|
||||
'class': 'btn btn-default',
|
||||
ngDisabled: true //Disabled when $pristine
|
||||
}
|
||||
},
|
||||
@ -282,7 +289,7 @@ angular.module('JobFormDefinition', [])
|
||||
label: 'Hosts',
|
||||
icon: 'icon-th-large',
|
||||
ngClick: "jobSummary()",
|
||||
"class": 'btn btn-small',
|
||||
"class": 'btn btn-default btn-small',
|
||||
awToolTip: 'View host summary',
|
||||
mode: 'all'
|
||||
},
|
||||
@ -290,7 +297,7 @@ angular.module('JobFormDefinition', [])
|
||||
label: 'Events',
|
||||
icon: 'icon-list-ul',
|
||||
ngClick: "jobEvents()",
|
||||
"class": 'btn btn-small',
|
||||
"class": 'btn btn-default btn-small',
|
||||
awToolTip: 'Edit job events',
|
||||
mode: 'all'
|
||||
}
|
||||
|
||||
@ -43,6 +43,7 @@ angular.module('OrganizationFormDefinition', [])
|
||||
ngClick: 'formReset()',
|
||||
label: 'Reset',
|
||||
icon: 'icon-trash',
|
||||
'class': 'btn btn-default',
|
||||
ngDisabled: true //Disabled when $pristine
|
||||
}
|
||||
},
|
||||
@ -82,6 +83,7 @@ angular.module('OrganizationFormDefinition', [])
|
||||
label: 'Edit',
|
||||
ngClick: "edit('users', \{\{ user.id \}\}, '\{\{ user.username \}\}')",
|
||||
icon: 'icon-edit',
|
||||
'class': 'btn btn-default',
|
||||
awToolTip: 'Edit user'
|
||||
},
|
||||
"delete": {
|
||||
@ -125,7 +127,8 @@ angular.module('OrganizationFormDefinition', [])
|
||||
label: 'Edit',
|
||||
ngClick: "edit('users', \{\{ admin.id \}\}, '\{\{ admin.username \}\}')",
|
||||
icon: 'icon-edit',
|
||||
awToolTip: 'Edit administrator'
|
||||
awToolTip: 'Edit administrator',
|
||||
'class': 'btn btn-default'
|
||||
},
|
||||
"delete": {
|
||||
label: 'Delete',
|
||||
|
||||
@ -98,6 +98,7 @@ angular.module('PermissionFormDefinition', [])
|
||||
ngClick: 'formReset()',
|
||||
label: 'Reset',
|
||||
icon: 'icon-trash',
|
||||
'class': 'btn btn-default',
|
||||
ngDisabled: true //Disabled when $pristine
|
||||
}
|
||||
},
|
||||
|
||||
@ -83,6 +83,7 @@ angular.module('ProjectFormDefinition', [])
|
||||
ngClick: 'formReset()',
|
||||
label: 'Reset',
|
||||
icon: 'icon-trash',
|
||||
'class': 'btn btn-default',
|
||||
ngDisabled: true //Disabled when $pristine
|
||||
}
|
||||
},
|
||||
@ -118,7 +119,8 @@ angular.module('ProjectFormDefinition', [])
|
||||
label: 'Edit',
|
||||
ngClick: "edit('organizations', \{\{ organization.id \}\}, '\{\{ organization.name \}\}')",
|
||||
icon: 'icon-edit',
|
||||
awToolTip: 'Edit the organization'
|
||||
awToolTip: 'Edit the organization',
|
||||
'class': 'btn btn-default'
|
||||
},
|
||||
"delete": {
|
||||
label: 'Delete',
|
||||
|
||||
@ -57,6 +57,7 @@ angular.module('TeamFormDefinition', [])
|
||||
ngClick: 'formReset()',
|
||||
label: 'Reset',
|
||||
icon: 'icon-trash',
|
||||
'class': 'btn btn-default',
|
||||
ngDisabled: true //Disabled when $pristine
|
||||
}
|
||||
},
|
||||
@ -93,7 +94,8 @@ angular.module('TeamFormDefinition', [])
|
||||
label: 'Edit',
|
||||
ngClick: "edit('credentials', \{\{ credential.id \}\}, '\{\{ credential.name \}\}')",
|
||||
icon: 'icon-edit',
|
||||
awToolTip: 'Modify the credential'
|
||||
awToolTip: 'Modify the credential',
|
||||
'class': 'btn btn-default'
|
||||
},
|
||||
"delete": {
|
||||
label: 'Delete',
|
||||
@ -148,7 +150,8 @@ angular.module('TeamFormDefinition', [])
|
||||
label: 'Edit',
|
||||
ngClick: "edit('permissions', \{\{ permission.id \}\}, '\{\{ permission.name \}\}')",
|
||||
icon: 'icon-edit',
|
||||
awToolTip: 'Edit the permission'
|
||||
awToolTip: 'Edit the permission',
|
||||
'class': 'btn btn-default'
|
||||
},
|
||||
|
||||
"delete": {
|
||||
@ -191,7 +194,8 @@ angular.module('TeamFormDefinition', [])
|
||||
label: 'Edit',
|
||||
ngClick: "edit('projects', \{\{ project.id \}\}, '\{\{ project.name \}\}')",
|
||||
icon: 'icon-edit',
|
||||
awToolTip: 'Modify the project'
|
||||
awToolTip: 'Modify the project',
|
||||
'class': 'btn btn-default'
|
||||
},
|
||||
"delete": {
|
||||
label: 'Delete',
|
||||
@ -236,7 +240,8 @@ angular.module('TeamFormDefinition', [])
|
||||
label: 'Edit',
|
||||
ngClick: "edit('users', \{\{ user.id \}\}, '\{\{ user.username \}\}')",
|
||||
icon: 'icon-edit',
|
||||
awToolTip: 'Edit user'
|
||||
awToolTip: 'Edit user',
|
||||
'class': 'btn btn-default'
|
||||
},
|
||||
"delete": {
|
||||
label: 'Delete',
|
||||
|
||||
@ -98,6 +98,7 @@ angular.module('UserFormDefinition', [])
|
||||
ngClick: 'formReset()',
|
||||
label: 'Reset',
|
||||
icon: 'icon-trash',
|
||||
'class': 'btn btn-default',
|
||||
ngDisabled: true //Disabled when $pristine
|
||||
}
|
||||
},
|
||||
@ -134,7 +135,8 @@ angular.module('UserFormDefinition', [])
|
||||
label: 'Edit',
|
||||
ngClick: "edit('credentials', \{\{ credential.id \}\}, '\{\{ credential.name \}\}')",
|
||||
icon: 'icon-edit',
|
||||
awToolTip: 'Edit the credential'
|
||||
awToolTip: 'Edit the credential',
|
||||
'class': 'btn btn-default'
|
||||
},
|
||||
"delete": {
|
||||
label: 'Delete',
|
||||
@ -191,7 +193,8 @@ angular.module('UserFormDefinition', [])
|
||||
label: 'Edit',
|
||||
ngClick: "edit('permissions', \{\{ permission.id \}\}, '\{\{ permission.name \}\}')",
|
||||
icon: 'icon-edit',
|
||||
awToolTip: 'Edit the permission'
|
||||
awToolTip: 'Edit the permission',
|
||||
'class': 'btn btn-default'
|
||||
},
|
||||
|
||||
"delete": {
|
||||
|
||||
@ -72,7 +72,7 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', '
|
||||
});
|
||||
|
||||
scope.createGroup = function() {
|
||||
$('#form-modal').modal('hide');
|
||||
$('#form-modal').modal('hide');
|
||||
GroupsAdd({ inventory_id: inventory_id, group_id: group_id });
|
||||
}
|
||||
|
||||
@ -101,6 +101,14 @@ angular.module('GroupsHelper', [ 'RestServices', 'Utilities', 'ListGenerator', '
|
||||
scope.formModalCancelShow = true;
|
||||
scope.parseType = 'yaml';
|
||||
ParseTypeChange(scope);
|
||||
|
||||
$('#form-modal').on('hidden.bs.modal', function() {
|
||||
var me = $(this);
|
||||
$('.modal-backdrop').each(function(index) {
|
||||
$(this).remove();
|
||||
});
|
||||
me.unbind('hidden.bs.modal');
|
||||
});
|
||||
|
||||
$('#form-modal .btn-none').removeClass('btn-none').addClass('btn-success');
|
||||
|
||||
|
||||
@ -59,7 +59,7 @@ angular.module('CredentialsListDefinition', [])
|
||||
ngClick: "editCredential(\{\{ credential.id \}\})",
|
||||
icon: 'icon-edit',
|
||||
label: 'Edit',
|
||||
"class": 'btn-mini',
|
||||
"class": 'btn-mini btn-default',
|
||||
awToolTip: 'View/Edit credential'
|
||||
},
|
||||
|
||||
|
||||
@ -41,10 +41,10 @@ angular.module('GroupListDefinition', [])
|
||||
"or to the selected parent group by clicking the <em>Select</em> button. You can also create a new group by clicking the " +
|
||||
"<em>Create New Group</em> button.",
|
||||
dataPlacement: 'left',
|
||||
dataContainer: "#form-modal",
|
||||
dataContainer: '#form-modal .modal-content',
|
||||
icon: "icon-question-sign",
|
||||
mode: 'all',
|
||||
'class': 'btn-mini btn-info',
|
||||
'class': 'btn-mini btn-info btn-help',
|
||||
awToolTip: 'Click for help',
|
||||
dataTitle: 'Adding Groups',
|
||||
id: 'group-help-button',
|
||||
@ -57,7 +57,7 @@ angular.module('GroupListDefinition', [])
|
||||
label: 'Edit',
|
||||
ngClick: "editGroup(\{\{ group.id \}\})",
|
||||
icon: 'icon-edit',
|
||||
"class": 'btn-mini',
|
||||
"class": 'btn-mini btn-default',
|
||||
awToolTip: 'View/Edit group'
|
||||
},
|
||||
|
||||
|
||||
@ -32,10 +32,10 @@ angular.module('HostListDefinition', [])
|
||||
help: {
|
||||
awPopOver: "Select hosts by clicking on each host you wish to add. Add the selected hosts to the group by clicking the <em>Select</em> button.",
|
||||
dataPlacement: 'left',
|
||||
dataContainer: "#form-modal",
|
||||
dataContainer: '#form-modal .modal-content',
|
||||
icon: "icon-question-sign",
|
||||
mode: 'all',
|
||||
'class': 'btn-mini btn-info',
|
||||
'class': 'btn-mini btn-info btn-help',
|
||||
awToolTip: 'Click for help',
|
||||
dataTitle: 'Selecting Hosts',
|
||||
iconSize: 'large',
|
||||
@ -48,7 +48,7 @@ angular.module('HostListDefinition', [])
|
||||
label: 'Edit',
|
||||
ngClick: "editHost(\{\{ host.id \}\})",
|
||||
icon: 'icon-edit',
|
||||
"class": 'btn-mini',
|
||||
"class": 'btn-mini btn-default',
|
||||
awToolTip: 'View/Edit host'
|
||||
},
|
||||
|
||||
|
||||
@ -64,7 +64,7 @@ angular.module('InventoriesListDefinition', [])
|
||||
label: 'Edit',
|
||||
ngClick: "editInventory(\{\{ inventory.id \}\})",
|
||||
icon: 'icon-edit',
|
||||
"class": 'btn-mini',
|
||||
"class": 'btn-mini btn-default',
|
||||
awToolTip: 'View/Edit inventory'
|
||||
},
|
||||
|
||||
|
||||
@ -70,7 +70,7 @@ angular.module('JobEventsListDefinition', [])
|
||||
label: 'Details',
|
||||
ngClick: "jobDetails()",
|
||||
icon: 'icon-zoom-in',
|
||||
"class": 'btn btn-mini',
|
||||
"class": 'btn btn-default btn-mini',
|
||||
awToolTip: 'Edit job details',
|
||||
mode: 'all'
|
||||
},
|
||||
@ -78,7 +78,7 @@ angular.module('JobEventsListDefinition', [])
|
||||
label: 'Hosts',
|
||||
icon: 'icon-th-large',
|
||||
ngClick: "jobSummary()",
|
||||
"class": 'btn btn-mini',
|
||||
"class": 'btn btn-default btn-mini',
|
||||
awToolTip: 'View host summary',
|
||||
mode: 'all'
|
||||
}
|
||||
@ -89,7 +89,7 @@ angular.module('JobEventsListDefinition', [])
|
||||
label: 'View',
|
||||
ngClick: "viewJobEvent(\{\{ jobevent.id \}\})",
|
||||
icon: 'icon-zoom-in',
|
||||
"class": 'btn-mini',
|
||||
"class": 'btn-default btn-mini',
|
||||
awToolTip: 'View event details'
|
||||
}
|
||||
}
|
||||
|
||||
@ -68,7 +68,7 @@ angular.module('JobHostDefinition', [])
|
||||
label: 'Details',
|
||||
icon: 'icon-edit',
|
||||
ngClick: "jobDetails()",
|
||||
"class": 'btn btn-mini',
|
||||
"class": 'btn btn-default btn-mini',
|
||||
awToolTip: 'Edit job details',
|
||||
mode: 'all'
|
||||
},
|
||||
@ -76,7 +76,7 @@ angular.module('JobHostDefinition', [])
|
||||
label: 'Events',
|
||||
icon: 'icon-list-ul',
|
||||
ngClick: "jobEvents()",
|
||||
"class": 'btn btn-mini',
|
||||
"class": 'btn btn-default btn-mini',
|
||||
awToolTip: 'View job events',
|
||||
mode: 'all'
|
||||
},
|
||||
@ -94,8 +94,8 @@ angular.module('JobHostDefinition', [])
|
||||
'class': 'btn-info btn-mini btn-help',
|
||||
awToolTip: 'Click for help',
|
||||
dataTitle: 'Job Host Summary',
|
||||
iconSize: 'large',
|
||||
id: 'jobhost-help-button'
|
||||
id: 'jobhost-help-button',
|
||||
iconSize: 'large'
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@ -46,7 +46,7 @@ angular.module('JobTemplatesListDefinition', [])
|
||||
ngClick: "editJobTemplate(\{\{ job_template.id \}\})",
|
||||
icon: 'icon-edit',
|
||||
awToolTip: 'Edit template',
|
||||
"class": 'btn-mini'
|
||||
"class": 'btn-default btn-mini'
|
||||
},
|
||||
submit: {
|
||||
label: 'Launch',
|
||||
|
||||
@ -70,7 +70,7 @@ angular.module('JobsListDefinition', [])
|
||||
label: 'Hosts',
|
||||
icon: 'icon-th-large',
|
||||
ngClick: "viewSummary(\{{ job.id \}\}, '\{\{ job.name \}\}')",
|
||||
"class": 'btn btn-mini',
|
||||
"class": 'btn btn-default btn-mini',
|
||||
awToolTip: 'View host summary',
|
||||
ngDisabled: "job.status == 'new'"
|
||||
},
|
||||
@ -79,7 +79,7 @@ angular.module('JobsListDefinition', [])
|
||||
icon: 'icon-list-ul',
|
||||
mode: 'all',
|
||||
ngClick: "viewEvents(\{{ job.id \}\}, '\{\{ job.name \}\}')",
|
||||
"class": 'btn btn-mini',
|
||||
"class": 'btn btn-default btn-mini',
|
||||
awToolTip: 'View events',
|
||||
ngDisabled: "job.status == 'new'"
|
||||
},
|
||||
@ -87,7 +87,7 @@ angular.module('JobsListDefinition', [])
|
||||
label: 'Details',
|
||||
icon: 'icon-zoom-in',
|
||||
ngClick: "editJob(\{\{ job.id \}\}, '\{\{ job.name \}\}')",
|
||||
"class": 'btn btn-mini',
|
||||
"class": 'btn btn-default btn-mini',
|
||||
awToolTip: 'View job details'
|
||||
},
|
||||
rerun: {
|
||||
|
||||
@ -43,7 +43,7 @@ angular.module('OrganizationListDefinition', [])
|
||||
label: 'Edit',
|
||||
ngClick: "editOrganization(\{\{ organization.id \}\})",
|
||||
icon: 'icon-edit',
|
||||
"class": 'btn-mini',
|
||||
"class": 'btn-mini btn-default',
|
||||
awToolTip: 'View/Edit organization'
|
||||
},
|
||||
|
||||
|
||||
@ -57,7 +57,7 @@ angular.module('PermissionListDefinition', [])
|
||||
label: 'Edit',
|
||||
ngClick: "editPermission(\{\{ permission.id \}\})",
|
||||
icon: 'icon-edit',
|
||||
"class": 'btn-mini',
|
||||
"class": 'btn-mini btn-default',
|
||||
awToolTip: 'View/Edit permission'
|
||||
},
|
||||
|
||||
|
||||
@ -45,7 +45,7 @@ angular.module('ProjectsListDefinition', [])
|
||||
label: 'Edit',
|
||||
ngClick: "editProject(\{\{ project.id \}\})",
|
||||
icon: 'icon-edit',
|
||||
"class": 'btn-mini',
|
||||
"class": 'btn-mini btn-default',
|
||||
awToolTip: 'View/edit project'
|
||||
},
|
||||
|
||||
|
||||
@ -50,7 +50,7 @@ angular.module('TeamsListDefinition', [])
|
||||
label: 'Edit',
|
||||
ngClick: "editTeam(\{\{ team.id \}\})",
|
||||
icon: 'icon-edit',
|
||||
"class": 'btn-mini',
|
||||
"class": 'btn-mini btn-default',
|
||||
awToolTip: 'View/Edit team'
|
||||
},
|
||||
|
||||
|
||||
@ -50,7 +50,7 @@ angular.module('UserListDefinition', [])
|
||||
label: 'Edit',
|
||||
ngClick: "editUser(\{\{ user.id \}\})",
|
||||
icon: 'icon-edit',
|
||||
"class": 'btn-mini',
|
||||
"class": 'btn-mini btn-default',
|
||||
awToolTip: 'View/Edit user'
|
||||
},
|
||||
|
||||
|
||||
@ -187,7 +187,15 @@ angular.module('AWDirectives', ['RestServices'])
|
||||
return function(scope, element, attrs) {
|
||||
var delay = (attrs.delay != undefined && attrs.delay != null) ? attrs.delay : $AnsibleConfig.tooltip_delay;
|
||||
var placement = (attrs.placement != undefined && attrs.placement != null) ? attrs.placement : 'left';
|
||||
$(element).tooltip({ placement: placement, delay: delay, title: attrs.awToolTip });
|
||||
$(element).on('hidden.bs.tooltip', function( ) {
|
||||
// TB3RC1 is leaving behind tooltip <div> elements. This will remove them
|
||||
// after a tooltip fades away. If not, they lay overtop of other elements and
|
||||
// honk up the page.
|
||||
$('.tooltip').each(function(index) {
|
||||
$(this).remove();
|
||||
});
|
||||
});
|
||||
$(element).tooltip({ placement: placement, delay: delay, title: attrs.awToolTip, container: 'body' });
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@ -69,6 +69,11 @@ angular.module('FormGenerator', ['GeneratorHelpers', 'ngCookies'])
|
||||
this.applyDefaults();
|
||||
}
|
||||
|
||||
// Remove any lingering tooltip <div> elements
|
||||
$('.tooltip').each( function(index) {
|
||||
$(this).remove();
|
||||
});
|
||||
|
||||
if (options.modal) {
|
||||
this.scope.formHeader = (options.mode == 'add') ? form.addTitle : form.editTitle; //Default title for default modal
|
||||
this.scope.formModalInfo = false //Disable info button for default modal
|
||||
@ -338,7 +343,7 @@ angular.module('FormGenerator', ['GeneratorHelpers', 'ngCookies'])
|
||||
}
|
||||
|
||||
if (field.clear) {
|
||||
html += "<span class=\"input-group-btn\"><button type=\"button\" class=\"btn\" ng-click=\"clear('" + fld + "','" + field.associated + "')\" " +
|
||||
html += "<span class=\"input-group-btn\"><button type=\"button\" class=\"btn btn-default\" ng-click=\"clear('" + fld + "','" + field.associated + "')\" " +
|
||||
"aw-tool-tip=\"Clear " + field.label + "\" id=\"" + fld + "-clear-btn\"><i class=\"icon-undo\"></i></button>\n";
|
||||
if (field.ask) {
|
||||
html += "<label class=\"checkbox-inline ask-checkbox\"><input type=\"checkbox\" ng-model=\"" +
|
||||
@ -348,7 +353,7 @@ angular.module('FormGenerator', ['GeneratorHelpers', 'ngCookies'])
|
||||
}
|
||||
|
||||
if (field.genMD5) {
|
||||
html += "<span class=\"input-group-btn\"><button type=\"button\" class=\"btn\" ng-click=\"genMD5('" + fld + "')\" " +
|
||||
html += "<span class=\"input-group-btn\"><button type=\"button\" class=\"btn btn-default\" ng-click=\"genMD5('" + fld + "')\" " +
|
||||
"aw-tool-tip=\"Generate " + field.label + "\" data-placement=\"top\" id=\"" + fld + "-gen-btn\"><i class=\"icon-repeat\">" +
|
||||
"</i></button></span>\n</div>\n";
|
||||
}
|
||||
@ -564,7 +569,7 @@ angular.module('FormGenerator', ['GeneratorHelpers', 'ngCookies'])
|
||||
html += "class=\"" + getFieldWidth() + "\">\n";
|
||||
html += "<div class=\"input-group\">\n";
|
||||
html += "<span class=\"input-group-btn\">\n";
|
||||
html += "<button type=\"button\" class=\"lookup-btn btn\" " + this.attr(field,'ngClick') + "><i class=\"icon-search\"></i></button>\n";
|
||||
html += "<button type=\"button\" class=\"lookup-btn btn btn-default\" " + this.attr(field,'ngClick') + "><i class=\"icon-search\"></i></button>\n";
|
||||
html += "</span>\n";
|
||||
html += "<input type=\"text\" class=\"form-control input-medium\" ";
|
||||
html += "ng-model=\"" + field.sourceModel + '_' + field.sourceField + "\" ";
|
||||
@ -904,7 +909,7 @@ angular.module('FormGenerator', ['GeneratorHelpers', 'ngCookies'])
|
||||
if (form.related[itm].type == 'tree') {
|
||||
html += "<div class=\"col-lg-5\">";
|
||||
html += "<div class=\"inventory-buttons\">";
|
||||
html += "<button ng-click=\"editGroup()\" ng-hide=\"groupEditHide\" id=\"inv-group-edit\" class=\"btn btn-mini\" " +
|
||||
html += "<button ng-click=\"editGroup()\" ng-hide=\"groupEditHide\" id=\"inv-group-edit\" class=\"btn btn-default btn-mini\" " +
|
||||
"aw-tool-tip=\"Edit the selected group\" data-placement=\"bottom\">" +
|
||||
"<i class=\"icon-edit\"></i> Edit</button>";
|
||||
html += "<button ng-click=\"addGroup()\" ng-hide=\"groupAddHide\" id=\"inv-group-add\" " +
|
||||
@ -915,7 +920,7 @@ angular.module('FormGenerator', ['GeneratorHelpers', 'ngCookies'])
|
||||
"class=\"btn btn-mini btn-danger\">" +
|
||||
"<i class=\"icon-trash\"></i> Delete</button>";
|
||||
html += "</div>\n";
|
||||
html += "<div id=\"tree-view\"></div>\n";
|
||||
html += "<div id=\"tree-view\" class=\"tree-container\"></div>\n";
|
||||
html += "<div class=\" inventory-filter\">";
|
||||
html += "<span ng-show=\"has_active_failures == true\"><label class=\"checkbox inline\">";
|
||||
html += "<input ng-model=\"inventoryFailureFilter\" ng-change=\"filterInventory()\" type=\"checkbox\"" +
|
||||
@ -924,12 +929,13 @@ angular.module('FormGenerator', ['GeneratorHelpers', 'ngCookies'])
|
||||
}
|
||||
else {
|
||||
html += "<div id=\"group-view\" class=\"col-lg-7\">\n";
|
||||
html += "<div id=\"hosts-well\" class=\"well\">\n";
|
||||
html += "<div id=\"hosts-title\" ng-bind-html-unsafe=\"" + form.related[itm].title + "\"></div>\n";
|
||||
html += "<div class=\"hosts-well well\">\n";
|
||||
html += "<div class=\"hosts-title\" ng-bind-html-unsafe=\"" + form.related[itm].title + "\"></div>\n";
|
||||
html += SearchWidget({ iterator: form.related[itm].iterator, template: form.related[itm], mini: true, size: 'col-lg-6'});
|
||||
|
||||
// Add actions(s)
|
||||
html += "<div class=\"list-actions\">\n";
|
||||
//html += "<div class=\"list-actions\">\n";
|
||||
html += "<div class=\"col-lg-5\">\n";
|
||||
for (var action in form.related[itm].actions) {
|
||||
html += "<button type=\"button\" class=\"btn btn-mini ";
|
||||
html += (form.related[itm].actions[action]['class']) ? form.related[itm].actions[action]['class'] : "btn-success";
|
||||
@ -944,6 +950,7 @@ angular.module('FormGenerator', ['GeneratorHelpers', 'ngCookies'])
|
||||
html += "</button>\n";
|
||||
}
|
||||
html += "</div>\n";
|
||||
html += "</div><!-- row -->\n";
|
||||
|
||||
// Start the list
|
||||
html += "<div class=\"list\">\n";
|
||||
@ -1081,7 +1088,9 @@ angular.module('FormGenerator', ['GeneratorHelpers', 'ngCookies'])
|
||||
html += SearchWidget({ iterator: form.related[itm].iterator, template: form.related[itm], mini: true });
|
||||
|
||||
// Add actions(s)
|
||||
html += "<div class=\"list-actions\">\n";
|
||||
//html += "<div class=\"list-actions\">\n";
|
||||
|
||||
html += "<div class=\"col-lg-7\">\n";
|
||||
for (var act in form.related[itm].actions) {
|
||||
var action = form.related[itm].actions[act];
|
||||
html += "<button type=\"button\" class=\"btn btn-mini ";
|
||||
@ -1096,6 +1105,8 @@ angular.module('FormGenerator', ['GeneratorHelpers', 'ngCookies'])
|
||||
html += "</button>\n";
|
||||
}
|
||||
html += "</div>\n";
|
||||
html += "</div><!-- row -->\n"
|
||||
//html += "</div>\n";
|
||||
|
||||
// Start the list
|
||||
html += "<div class=\"list\">\n";
|
||||
|
||||
@ -193,7 +193,8 @@ angular.module('GeneratorHelpers', ['GeneratorHelpers'])
|
||||
var label = (params.label) ? params.label : null;
|
||||
var html= '';
|
||||
|
||||
html += "<div class=\"search-widget ";
|
||||
html += "<div class=\"row search-widget\">\n";
|
||||
html += "<div class=\"";
|
||||
html += (params.size) ? params.size : "col-lg-4";
|
||||
html += "\">\n";
|
||||
html += (label) ? "<label>" + label +"</label>" : "";
|
||||
@ -215,7 +216,7 @@ angular.module('GeneratorHelpers', ['GeneratorHelpers'])
|
||||
}
|
||||
}
|
||||
html += "</ul>\n";
|
||||
html += "</div>\n";
|
||||
html += "</div><!-- input-group-btn -->\n";
|
||||
|
||||
html += "<select ng-show=\"" + iterator + "SelectShow\" ng-model=\""+ iterator + "SearchSelectValue\" ng-change=\"search('" + iterator + "')\" ";
|
||||
html += "ng-options=\"c.name for c in " + iterator + "SearchSelectOpts\" class=\"search-select";
|
||||
@ -234,15 +235,15 @@ angular.module('GeneratorHelpers', ['GeneratorHelpers'])
|
||||
html += "<span ng-bind=\"" + iterator + "SearchTypeLabel\"></span>\n";
|
||||
html += "<span class=\"caret\"></span>\n";
|
||||
html += "</button>\n";
|
||||
html += "<ul class=\"dropdown-menu\">\n";
|
||||
html += "<ul class=\"dropdown-menu pull-right\">\n";
|
||||
html += "<li><a href=\"\" ng-click=\"setSearchType('" + iterator + "','iexact','Exact Match')\">Exact Match</a></li>\n";
|
||||
html += "<li><a href=\"\" ng-click=\"setSearchType('" + iterator + "','icontains','Contains')\">Contains</a></li>\n";
|
||||
html += "</ul>\n";
|
||||
html += "</div>\n";
|
||||
html += "</div>\n";
|
||||
html += "<div class=\"spin\"><i class=\"icon-spinner icon-spin\" ng-show=\"" + iterator + "SearchSpin == true\"></i></div>\n";
|
||||
html += "</div>\n";
|
||||
|
||||
html += "</div><!-- input-group-btn -->\n";
|
||||
html += "</div><!-- input-group -->\n";
|
||||
html += "</div><!-- col-lg-x -->\n";
|
||||
html += "<div class=\"col-lg-1\"><i class=\"icon-spinner icon-spin icon-large\" ng-show=\"" + iterator +
|
||||
"SearchSpin == true\"></i></div>\n";
|
||||
return html;
|
||||
|
||||
}
|
||||
|
||||
@ -85,6 +85,11 @@ angular.module('ListGenerator', ['GeneratorHelpers'])
|
||||
this.scope[list.name] = null;
|
||||
this.scope[list.iterator] = null;
|
||||
|
||||
// Remove any lingering tooltip <div> elements
|
||||
$('.tooltip').each( function(index) {
|
||||
$(this).remove();
|
||||
});
|
||||
|
||||
if (options.mode == 'lookup') {
|
||||
// options should include {hdr: <dialog header>, action: <function...> }
|
||||
this.scope.lookupHeader = options.hdr;
|
||||
@ -138,7 +143,7 @@ angular.module('ListGenerator', ['GeneratorHelpers'])
|
||||
}
|
||||
|
||||
if (options.mode == 'lookup' || options.id != undefined) {
|
||||
html += SearchWidget({ iterator: list.iterator, template: list, mini: true , size: 'col-lg-7' });
|
||||
html += SearchWidget({ iterator: list.iterator, template: list, mini: true , size: 'col-lg-6' });
|
||||
}
|
||||
else {
|
||||
html += SearchWidget({ iterator: list.iterator, template: list, mini: false });
|
||||
@ -147,7 +152,10 @@ angular.module('ListGenerator', ['GeneratorHelpers'])
|
||||
if (options.mode != 'lookup') {
|
||||
//actions
|
||||
var base = $location.path().replace(/^\//,'').split('/')[0];
|
||||
html += "<div class=\"list-actions\">\n";
|
||||
//html += "<div class=\"list-actions\">\n";
|
||||
html += "<div class=\"";
|
||||
html += (options.id != undefined) ? "col-lg-5" : "col-lg-7";
|
||||
html += "\">\n";
|
||||
for (action in list.actions) {
|
||||
if (list.actions[action].mode == 'all' || list.actions[action].mode == options.mode) {
|
||||
if ( (list.actions[action].basePaths == undefined) ||
|
||||
@ -156,24 +164,30 @@ angular.module('ListGenerator', ['GeneratorHelpers'])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//select instructions
|
||||
if (options.mode == 'select' && list.selectInstructions) {
|
||||
var btn = {
|
||||
awPopOver: list.selectInstructions,
|
||||
dataPlacement: 'left',
|
||||
dataContainer: '.container',
|
||||
icon: "icon-question-sign",
|
||||
'class': 'btn-small btn-info',
|
||||
awToolTip: 'Click for help',
|
||||
dataTitle: 'Help',
|
||||
iconSize: 'large'
|
||||
};
|
||||
html += this.button(btn);
|
||||
}
|
||||
|
||||
html += "</div>\n";
|
||||
}
|
||||
else {
|
||||
html += "<div class=\"col-lg-7\"></div>\n";
|
||||
}
|
||||
|
||||
html += "</div>\n";
|
||||
html += "</div><!-- row -->\n";
|
||||
|
||||
//select instructions
|
||||
//if (options.mode == 'select' && list.selectInstructions) {
|
||||
// var btn = {
|
||||
// awPopOver: list.selectInstructions,
|
||||
// dataPlacement: 'left',
|
||||
// dataContainer: '.container',
|
||||
// icon: "icon-question-sign",
|
||||
// 'class': 'btn-small btn-info',
|
||||
// awToolTip: 'Click for help',
|
||||
// dataTitle: 'Help',
|
||||
// iconSize: 'large'
|
||||
// };
|
||||
// html += this.button(btn);
|
||||
// }
|
||||
|
||||
//html += "</div>\n";
|
||||
|
||||
// table header row
|
||||
html += "<table class=\"table table-condensed"
|
||||
|
||||
@ -220,7 +220,7 @@
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-target="#alert-modal"
|
||||
<button type="button" class="close" data-target="#form-modal"
|
||||
data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h3 ng-bind="formModalHeader"></h3>
|
||||
</div>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user