From ed5fb05c177b4a7454f8e11b6efb01602f9e2468 Mon Sep 17 00:00:00 2001 From: Leigh Johnson Date: Thu, 3 Nov 2016 18:07:41 -0400 Subject: [PATCH] WIP working base case: inventory lookup state --- awx/ui/client/src/forms/WorkflowMaker.js | 2 +- awx/ui/client/src/job-templates/main.js | 15 ++--- .../workflow-maker/workflow-help.service.js | 66 +++++++++---------- .../workflow-maker.controller.js | 18 ++--- .../workflow-maker.directive.js | 36 +++++++++- 5 files changed, 84 insertions(+), 53 deletions(-) diff --git a/awx/ui/client/src/forms/WorkflowMaker.js b/awx/ui/client/src/forms/WorkflowMaker.js index f5dda52c0a..a9992342c6 100644 --- a/awx/ui/client/src/forms/WorkflowMaker.js +++ b/awx/ui/client/src/forms/WorkflowMaker.js @@ -50,7 +50,7 @@ export default sourceField: 'name', list: 'OrganizationList', basePath: 'organization', - //ngClick: 'lookUpInventory()', + ngClick: 'lookUpInventory()', requiredErrorMsg: "Please select an Inventory.", column: 1, class: 'Form-formGroup--fullWidth', diff --git a/awx/ui/client/src/job-templates/main.js b/awx/ui/client/src/job-templates/main.js index 7170a504a6..3ff23a97c9 100644 --- a/awx/ui/client/src/job-templates/main.js +++ b/awx/ui/client/src/job-templates/main.js @@ -136,11 +136,11 @@ angular.module('jobTemplates', [surveyMaker.name, jobTemplatesList.name, jobTemp } }, views: { - 'modal@templates.editWorkflowJobTemplate.workflowMaker': { - templateProvider: function(ListDefinition, generateList) { + 'related': { + templateProvider: function(InventoryList, generateList) { let list_html = generateList.build({ mode: 'lookup', - list: ListDefinition, + list: InventoryList, input_type: 'radio' }); return `${list_html}`; @@ -149,10 +149,9 @@ angular.module('jobTemplates', [surveyMaker.name, jobTemplatesList.name, jobTemp } }, resolve: { - // ListDefinition: [InventoryList, function(list) { - // list.iterator = field.sourceModel; - // return list; - // }], + ListDefinition: ['InventoryList', function(list) { + return list; + }], Dataset: ['InventoryList', 'QuerySet', '$stateParams', 'GetBasePath', (list, qs, $stateParams, GetBasePath) => { let path = GetBasePath(list.name) || GetBasePath(list.basePath); @@ -184,7 +183,7 @@ angular.module('jobTemplates', [surveyMaker.name, jobTemplatesList.name, jobTemp }, [ stateExtender.buildDefinition(jobTemplatesListRoute), workflowMaker, - //inventoryLookup + inventoryLookup ]) }; }); diff --git a/awx/ui/client/src/job-templates/workflow-maker/workflow-help.service.js b/awx/ui/client/src/job-templates/workflow-maker/workflow-help.service.js index 48cca0ac58..24c7fd9679 100644 --- a/awx/ui/client/src/job-templates/workflow-maker/workflow-help.service.js +++ b/awx/ui/client/src/job-templates/workflow-maker/workflow-help.service.js @@ -3,44 +3,44 @@ export default ['CreateDialog', 'Wait', '$q', function(CreateDialog, Wait, $q){ openDialog: function(params){ // params.scope - let deferred = $q.defer(); + // let deferred = $q.defer(); - if (params.scope.removeWorkflowDialogReady) { - params.scope.removeWorkflowDialogReady(); - } - params.scope.removeWorkflowDialogReady = params.scope.$on('WorkflowDialogReady', function() { - $('#workflow-modal-dialog').dialog('open'); + // if (params.scope.removeWorkflowDialogReady) { + // params.scope.removeWorkflowDialogReady(); + // } + // params.scope.removeWorkflowDialogReady = params.scope.$on('WorkflowDialogReady', function() { + // $('#workflow-modal-dialog').dialog('open'); - deferred.resolve(); - }); - Wait('start'); - debugger; - CreateDialog({ - id: 'workflow-modal-dialog', - scope: params.scope, - width: 1400, - height: 720, - draggable: false, - dialogClass: 'SurveyMaker-dialog', - position: ['center',20], - onClose: function() { - $('#workflow-modal-dialog').empty(); - }, - onOpen: function() { - Wait('stop'); + // deferred.resolve(); + // }); + // Wait('start'); + // debugger; + // CreateDialog({ + // id: 'workflow-modal-dialog', + // scope: params.scope, + // width: 1400, + // height: 720, + // draggable: false, + // dialogClass: 'SurveyMaker-dialog', + // position: ['center',20], + // onClose: function() { + // $('#workflow-modal-dialog').empty(); + // }, + // onOpen: function() { + // Wait('stop'); - // Let the modal height be variable based on the content - // and set a uniform padding - $('#workflow-modal-dialog').css({'padding': '20px'}); + // // Let the modal height be variable based on the content + // // and set a uniform padding + // $('#workflow-modal-dialog').css({'padding': '20px'}); - }, - _allowInteraction: function(e) { - return !!$(e.target).is('.select2-input') || this._super(e); - }, - callback: 'WorkflowDialogReady' - }); + // }, + // _allowInteraction: function(e) { + // return !!$(e.target).is('.select2-input') || this._super(e); + // }, + // callback: 'WorkflowDialogReady' + // }); - return deferred.promise; + // return deferred.promise; }, closeDialog: function() { $('#workflow-modal-dialog').dialog('destroy'); diff --git a/awx/ui/client/src/job-templates/workflow-maker/workflow-maker.controller.js b/awx/ui/client/src/job-templates/workflow-maker/workflow-maker.controller.js index cd0fec200b..64fe177df1 100644 --- a/awx/ui/client/src/job-templates/workflow-maker/workflow-maker.controller.js +++ b/awx/ui/client/src/job-templates/workflow-maker/workflow-maker.controller.js @@ -5,11 +5,11 @@ *************************************************/ export default ['$scope', 'WorkflowHelpService', 'generateList', 'JobTemplateList', 'ProjectList', - 'GetBasePath', 'Wait', 'JobTemplateService', + 'GetBasePath', 'Wait', 'JobTemplateService', '$state', 'ProcessErrors', 'InventorySourcesList', 'CreateSelect2', 'WorkflowMakerForm', 'GenerateForm', 'InventoryList', 'CredentialList', '$q', '$timeout', function($scope, WorkflowHelpService, GenerateList, JobTemplateList, ProjectList, - GetBasePath, Wait, JobTemplateService, + GetBasePath, Wait, JobTemplateService, $state, ProcessErrors, InventorySourcesList, CreateSelect2, WorkflowMakerForm, GenerateForm, InventoryList, CredentialList, $q, $timeout) { @@ -64,14 +64,8 @@ export default ['$scope', 'WorkflowHelpService', 'generateList', 'JobTemplateLis function init() { $scope.treeDataMaster = angular.copy($scope.treeData.data); - WorkflowHelpService.openDialog({ - scope: $scope - }) - .then(function() { + $scope.$broadcast("refreshWorkflowChart"); - //$scope.$broadcast("refreshWorkflowChart"); - - }); $scope.$watchCollection('workflow_job_templates', function() { if ($scope.selectedTemplate) { // Loop across the inventories and see if one of them should be "checked" @@ -149,6 +143,12 @@ export default ['$scope', 'WorkflowHelpService', 'generateList', 'JobTemplateLis } + + $scope.lookUpInventory = function(){ + console.log($state) + $state.go('.inventory') + }; + $scope.closeWorkflowMaker = function() { // Revert the data to the master which was created when the dialog was opened $scope.treeData.data = angular.copy($scope.treeDataMaster); diff --git a/awx/ui/client/src/job-templates/workflow-maker/workflow-maker.directive.js b/awx/ui/client/src/job-templates/workflow-maker/workflow-maker.directive.js index 899d7b851e..aacb606fdd 100644 --- a/awx/ui/client/src/job-templates/workflow-maker/workflow-maker.directive.js +++ b/awx/ui/client/src/job-templates/workflow-maker/workflow-maker.directive.js @@ -6,8 +6,8 @@ import workflowMakerController from './workflow-maker.controller'; -export default [ 'templateUrl', - function(templateUrl) { +export default ['templateUrl', 'CreateDialog', 'Wait', + function(templateUrl, CreateDialog, Wait) { return { scope: { treeData: '=' @@ -15,6 +15,38 @@ export default [ 'templateUrl', restrict: 'E', templateUrl: templateUrl('job-templates/workflow-maker/workflow-maker'), controller: workflowMakerController, + link: function(scope) { + CreateDialog({ + id: 'workflow-modal-dialog', + scope: scope, + width: 1400, + height: 720, + draggable: false, + dialogClass: 'SurveyMaker-dialog', + position: ['center', 20], + onClose: function() { + $('#workflow-modal-dialog').empty(); + }, + onOpen: function() { + Wait('stop'); + + // Let the modal height be variable based on the content + // and set a uniform padding + $('#workflow-modal-dialog').css({ 'padding': '20px' }); + + }, + _allowInteraction: function(e) { + return !!$(e.target).is('.select2-input') || this._super(e); + }, + callback: 'WorkflowDialogReady' + }); + if (scope.removeWorkflowDialogReady) { + scope.removeWorkflowDialogReady(); + } + scope.removeWorkflowDialogReady = scope.$on('WorkflowDialogReady', function() { + $('#workflow-modal-dialog').dialog('open'); + }); + } }; } ];