From 1b8693f666483c6a66d04dd507eb1d3fd8e74ae1 Mon Sep 17 00:00:00 2001 From: Michael Abashian Date: Mon, 27 Jun 2016 15:15:53 -0400 Subject: [PATCH 1/2] Added network credential to job template form --- awx/ui/client/src/forms/JobTemplates.js | 14 ++++++++++++++ awx/ui/client/src/helpers/JobTemplates.js | 19 +++++++++++++++++++ .../add/job-templates-add.controller.js | 19 +++++++++++++++++++ 3 files changed, 52 insertions(+) diff --git a/awx/ui/client/src/forms/JobTemplates.js b/awx/ui/client/src/forms/JobTemplates.js index 297513c1bf..8e287c5500 100644 --- a/awx/ui/client/src/forms/JobTemplates.js +++ b/awx/ui/client/src/forms/JobTemplates.js @@ -154,6 +154,20 @@ export default dataPlacement: 'right', dataContainer: "body" }, + network_credential: { + label: 'Network Credential', + type: 'lookup', + sourceModel: 'network_credential', + sourceField: 'name', + ngClick: 'lookUpNetworkcredential()', + addRequired: false, + editRequired: false, + column: 1, + awPopOver: "

Network credentials are used by Ansible networking modules to connect to and manage networking devices.

", + dataTitle: 'Network Credential', + dataPlacement: 'right', + dataContainer: "body" + }, forks: { label: 'Forks', id: 'forks-number', diff --git a/awx/ui/client/src/helpers/JobTemplates.js b/awx/ui/client/src/helpers/JobTemplates.js index 88087ef44f..1dbbe33584 100644 --- a/awx/ui/client/src/helpers/JobTemplates.js +++ b/awx/ui/client/src/helpers/JobTemplates.js @@ -173,6 +173,25 @@ angular.module('JobTemplatesHelper', ['Utilities']) input_type: "radio" }); + var NetworkCredentialList = {}; + // Clone the CredentialList object for use with network_credential. Cloning + // and changing properties to avoid collision. + jQuery.extend(true, NetworkCredentialList, CredentialList); + NetworkCredentialList.name = 'networkcredentials'; + NetworkCredentialList.iterator = 'networkcredential'; + NetworkCredentialList.basePath = '/api/v1/credentials?kind=net'; + + LookUpInit({ + url: GetBasePath('credentials') + '?kind=net', + scope: scope, + form: form, + current_item: data.network_credential, + list: NetworkCredentialList, + field: 'network_credential', + hdr: 'Select Network Credential', + input_type: "radio" + }); + LookUpInit({ scope: scope, form: form, diff --git a/awx/ui/client/src/job-templates/add/job-templates-add.controller.js b/awx/ui/client/src/job-templates/add/job-templates-add.controller.js index 6d819a0833..369eb2ee0e 100644 --- a/awx/ui/client/src/job-templates/add/job-templates-add.controller.js +++ b/awx/ui/client/src/job-templates/add/job-templates-add.controller.js @@ -28,6 +28,7 @@ generator = GenerateForm, master = {}, CloudCredentialList = {}, + NetworkCredentialList = {}, selectPlaybook, checkSCMStatus, callback, base = $location.path().replace(/^\//, '').split('/')[0], @@ -74,6 +75,13 @@ CloudCredentialList.iterator = 'cloudcredential'; CloudCredentialList.basePath = '/api/v1/credentials?cloud=true'; + // Clone the CredentialList object for use with network_credential. Cloning + // and changing properties to avoid collision. + jQuery.extend(true, NetworkCredentialList, CredentialList); + NetworkCredentialList.name = 'networkcredentials'; + NetworkCredentialList.iterator = 'networkcredential'; + NetworkCredentialList.basePath = '/api/v1/credentials?kind=net'; + SurveyControllerInit({ scope: $scope, parent_scope: $scope @@ -94,6 +102,17 @@ input_type: 'radio' }); + LookUpInit({ + url: GetBasePath('credentials') + '?kind=net', + scope: $scope, + form: form, + current_item: null, + list: NetworkCredentialList, + field: 'network_credential', + hdr: 'Select Network Credential', + input_type: 'radio' + }); + LookUpInit({ url: GetBasePath('credentials') + '?kind=ssh', scope: $scope, From ae8e15fbb3a152b996a973b25b54aa6edd371741 Mon Sep 17 00:00:00 2001 From: Michael Abashian Date: Mon, 27 Jun 2016 16:17:06 -0400 Subject: [PATCH 2/2] Added network credential to the job details summary --- awx/ui/client/src/job-detail/job-detail.controller.js | 8 ++++++++ awx/ui/client/src/job-detail/job-detail.partial.html | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/awx/ui/client/src/job-detail/job-detail.controller.js b/awx/ui/client/src/job-detail/job-detail.controller.js index 362637a821..8aec3184e5 100644 --- a/awx/ui/client/src/job-detail/job-detail.controller.js +++ b/awx/ui/client/src/job-detail/job-detail.controller.js @@ -579,6 +579,14 @@ export default scope.cloud_credential_name = ""; } + if (data.summary_fields.cloud_credential) { + scope.network_credential_name = data.summary_fields.network_credential.name; + scope.network_credential_url = data.related.network_credential + .replace('api/v1', '#'); + } else { + scope.network_credential_name = ""; + } + for (i=0; i < verbosity_options.length; i++) { if (verbosity_options[i].value === data.verbosity) { scope.verbosity = verbosity_options[i].label; diff --git a/awx/ui/client/src/job-detail/job-detail.partial.html b/awx/ui/client/src/job-detail/job-detail.partial.html index f3f1c34e7e..578e17510f 100644 --- a/awx/ui/client/src/job-detail/job-detail.partial.html +++ b/awx/ui/client/src/job-detail/job-detail.partial.html @@ -127,6 +127,13 @@ +
+ + +
+
{{ job.forks }}