From 4e9e341819dbf7886f0220a0f44a426fb0f5b79d Mon Sep 17 00:00:00 2001 From: Akita Noek Date: Fri, 20 May 2016 14:53:36 -0400 Subject: [PATCH] Disable custom inventory script input when you have no access Also show 'Script contents hidden' #1503 --- awx/ui/client/src/inventory-scripts/add/add.controller.js | 3 ++- awx/ui/client/src/inventory-scripts/edit/edit.controller.js | 4 ++++ awx/ui/client/src/inventory-scripts/inventory-scripts.form.js | 3 ++- awx/ui/client/src/shared/form-generator.js | 1 + 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/awx/ui/client/src/inventory-scripts/add/add.controller.js b/awx/ui/client/src/inventory-scripts/add/add.controller.js index e005515215..522dbe1129 100644 --- a/awx/ui/client/src/inventory-scripts/add/add.controller.js +++ b/awx/ui/client/src/inventory-scripts/add/add.controller.js @@ -20,6 +20,8 @@ export default form = inventoryScriptsFormObject, url = GetBasePath('inventory_scripts'); + $scope.canEdit = true; + generator.inject(form, { mode: 'add' , scope:scope, @@ -38,7 +40,6 @@ export default // Save scope.formSave = function () { - generator.clearApiErrors(); Wait('start'); Rest.setUrl(url); diff --git a/awx/ui/client/src/inventory-scripts/edit/edit.controller.js b/awx/ui/client/src/inventory-scripts/edit/edit.controller.js index 7ed84066b8..a9515d60a5 100644 --- a/awx/ui/client/src/inventory-scripts/edit/edit.controller.js +++ b/awx/ui/client/src/inventory-scripts/edit/edit.controller.js @@ -61,6 +61,10 @@ export default data.summary_fields[form.fields[fld].sourceModel][form.fields[fld].sourceField]; } } + $scope.canEdit = data['script'] !== null; + if (!$scope.canEdit) { + $scope.script = "Script contents hidden"; + } Wait('stop'); }) .error(function (data, status) { diff --git a/awx/ui/client/src/inventory-scripts/inventory-scripts.form.js b/awx/ui/client/src/inventory-scripts/inventory-scripts.form.js index b9a2160a8a..67778ce50f 100644 --- a/awx/ui/client/src/inventory-scripts/inventory-scripts.form.js +++ b/awx/ui/client/src/inventory-scripts/inventory-scripts.form.js @@ -52,6 +52,7 @@ export default function() { addRequired: true, editRequired: true, awDropFile: true, + ngDisabled: '!canEdit', rows: 10, awPopOver: "

Drag and drop your custom inventory script file here or create one in the field to import your custom inventory. " + "

Script must begin with a hashbang sequence: i.e.... #!/usr/bin/env python

", @@ -67,7 +68,7 @@ export default function() { }, save: { ngClick: 'formSave()', //$scope.function to call on click, optional - ngDisabled: true //Disable when $pristine or $invalid, optional + ngDisabled: 'custom_inventory_form.$pristine || custom_inventory_form.$invalid || !canEdit' //Disable when $pristine or $invalid, optional } } }; diff --git a/awx/ui/client/src/shared/form-generator.js b/awx/ui/client/src/shared/form-generator.js index 60e6f1e7a9..70e0d97710 100644 --- a/awx/ui/client/src/shared/form-generator.js +++ b/awx/ui/client/src/shared/form-generator.js @@ -1053,6 +1053,7 @@ angular.module('FormGenerator', [GeneratorHelpers.name, 'Utilities', listGenerat html += (field.ngChange) ? this.attr(field, 'ngChange') : ""; html += buildId(field, fld, this.form); html += (field.placeholder) ? this.attr(field, 'placeholder') : ""; + html += (field.ngDisabled) ? this.attr(field, 'ngDisabled'): ""; html += (options.mode === 'edit' && field.editRequired) ? "required " : ""; html += (options.mode === 'add' && field.addRequired) ? "required " : ""; html += (field.ngRequired) ? "ng-required=\"" + field.ngRequired +"\"" : "";