Fixed a bunch of styling issues appearing in FireFox post Twitter Bootstrap 3RC1 upgrade.

This commit is contained in:
chouseknecht 2013-08-06 14:43:27 -04:00
parent f787ff8251
commit 54eff92ea3
30 changed files with 176 additions and 145 deletions

View File

@ -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;
}

View File

@ -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
}

View File

@ -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
}
},

View File

@ -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 \}\}')",

View File

@ -238,6 +238,7 @@ angular.module('JobTemplateFormDefinition', [])
ngClick: 'formReset()',
label: 'Reset',
icon: 'icon-trash',
'class': 'btn btn-default',
ngDisabled: true //Disabled when $pristine
}
},

View File

@ -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 &#59; &#58; or &#44;</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'
}

View File

@ -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',

View File

@ -98,6 +98,7 @@ angular.module('PermissionFormDefinition', [])
ngClick: 'formReset()',
label: 'Reset',
icon: 'icon-trash',
'class': 'btn btn-default',
ngDisabled: true //Disabled when $pristine
}
},

View File

@ -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',

View File

@ -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',

View File

@ -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": {

View File

@ -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');

View File

@ -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'
},

View File

@ -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'
},

View File

@ -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'
},

View File

@ -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'
},

View File

@ -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'
}
}

View File

@ -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'
}
},

View File

@ -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',

View File

@ -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: {

View File

@ -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'
},

View File

@ -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'
},

View File

@ -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'
},

View File

@ -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'
},

View File

@ -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'
},

View File

@ -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' });
}
})

View File

@ -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";

View File

@ -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;
}

View File

@ -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"

View File

@ -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">&times;</button>
<h3 ng-bind="formModalHeader"></h3>
</div>