diff --git a/ansibleworks/ui/static/css/ansible-ui.css b/ansibleworks/ui/static/css/ansible-ui.css index 4f87cf4bc5..fcc3e983c3 100644 --- a/ansibleworks/ui/static/css/ansible-ui.css +++ b/ansibleworks/ui/static/css/ansible-ui.css @@ -290,6 +290,7 @@ /* Jobs page */ .job-error, .job-failed, + .active-failures-true, input[type="text"].job-failed, input[type="text"].job-error { @@ -305,6 +306,7 @@ .job-running, .job-success, .job-successful, + .active-failures-false, input[type="text"].job-success, input[type="text"].job-successful { diff --git a/ansibleworks/ui/static/js/forms/Inventories.js b/ansibleworks/ui/static/js/forms/Inventories.js index d3d5929ce2..ffc076e6e0 100644 --- a/ansibleworks/ui/static/js/forms/Inventories.js +++ b/ansibleworks/ui/static/js/forms/Inventories.js @@ -92,6 +92,16 @@ angular.module('InventoryFormDefinition', []) }, description: { label: 'Description' + }, + has_active_failures: { + label: 'Failures', + showValue: false, + ngShow: "\{\{ host.has_active_failures \}\}", + icon: 'icon-circle', + "class": 'active-failures-\{\{ host.has_active_failures \}\}', + searchField: 'has_active_failures', + searchType: 'boolean', + searchOptions: [{ name: "No", value: 0 }, { name: "Yes", value: 1 }] } }, diff --git a/ansibleworks/ui/static/lib/ansible/form-generator.js b/ansibleworks/ui/static/lib/ansible/form-generator.js index b317bf8dc9..b16151be76 100644 --- a/ansibleworks/ui/static/lib/ansible/form-generator.js +++ b/ansibleworks/ui/static/lib/ansible/form-generator.js @@ -753,21 +753,33 @@ angular.module('FormGenerator', ['GeneratorHelpers']) for (var fld in form.related[itm].fields) { cnt++; rfield = form.related[itm].fields[fld]; - html += ""; - if ((rfield.key || rfield.link || rfield.linkTo || rfield.ngClick )) { - if (rfield.linkTo) { - html += ""; - } - else if (rfield.ngClick) { - html += ""; + html += ""; } else { - html += ""; + html += this.attr(rfield,'icon'); } } - html += "{{ " + form.related[itm].iterator + "." + fld + " }}"; - if ((rfield.key || rfield.link || rfield.linkTo || rfield.ngClick )) { - html += ""; + if (rfield.showValue == undefined || rfield.showValue == true) { + if ((rfield.key || rfield.link || rfield.linkTo || rfield.ngClick )) { + if (rfield.linkTo) { + html += ""; + } + else if (rfield.ngClick) { + html += ""; + } + else { + html += ""; + } + } + html += "{{ " + form.related[itm].iterator + "." + fld + " }}"; + if ((rfield.key || rfield.link || rfield.linkTo || rfield.ngClick )) { + html += ""; + } } html += "\n"; } diff --git a/ansibleworks/ui/static/lib/ansible/generator-helpers.js b/ansibleworks/ui/static/lib/ansible/generator-helpers.js index c7277a3e4b..e0d27bfd58 100644 --- a/ansibleworks/ui/static/lib/ansible/generator-helpers.js +++ b/ansibleworks/ui/static/lib/ansible/generator-helpers.js @@ -42,7 +42,9 @@ angular.module('GeneratorHelpers', []) html += "\n"; html += "\n"; + html += "ng-options=\"c.name for c in " + iterator + "SearchSelectOpts\" class=\"search-select"; + html += (useMini) ? " field-mini-height" : ""; + html += "\">\n"; html += "