From 33b19ebe1fed90d65dbe098b22215c5def56a1c4 Mon Sep 17 00:00:00 2001 From: Keith Grant Date: Mon, 18 Mar 2019 13:53:52 -0400 Subject: [PATCH] code-mirror: keep yaml/json setting in sync with modal --- .../lib/components/code-mirror/code-mirror.directive.js | 5 ++++- .../lib/components/code-mirror/code-mirror.partial.html | 3 ++- .../code-mirror/modal/code-mirror-modal.directive.js | 6 +++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/awx/ui/client/lib/components/code-mirror/code-mirror.directive.js b/awx/ui/client/lib/components/code-mirror/code-mirror.directive.js index 1a18d57b0d..622aa1cb13 100644 --- a/awx/ui/client/lib/components/code-mirror/code-mirror.directive.js +++ b/awx/ui/client/lib/components/code-mirror/code-mirror.directive.js @@ -18,6 +18,7 @@ function atCodeMirrorController ( } $scope.parseType = ParseType; + $scope.variablesName = variablesName; $scope[variablesName] = $scope.variables; ParseTypeChange({ scope: $scope, @@ -32,13 +33,14 @@ function atCodeMirrorController ( vm.expanded = true; } - function close (varsFromModal) { + function close (varsFromModal, parseTypeFromModal) { // TODO: make sure that the variables format matches // parseType before re-initializing CodeMirror. Ex) // user changes the format from yaml to json in the // modal but CM in the form is set to YAML $scope.variables = varsFromModal; $scope[variablesName] = $scope.variables; + $scope.parseType = parseTypeFromModal; // New set of variables from the modal, reinit codemirror ParseTypeChange({ scope: $scope, @@ -59,6 +61,7 @@ function atCodeMirrorController ( vm.close = close; vm.expand = expand; vm.variablesName = variablesName; + vm.parseType = $scope.parseType; if ($scope.init) { $scope.init = init; } diff --git a/awx/ui/client/lib/components/code-mirror/code-mirror.partial.html b/awx/ui/client/lib/components/code-mirror/code-mirror.partial.html index c4565549c0..a832ca8b6e 100644 --- a/awx/ui/client/lib/components/code-mirror/code-mirror.partial.html +++ b/awx/ui/client/lib/components/code-mirror/code-mirror.partial.html @@ -53,9 +53,10 @@ name="{{ vm.name }}" ng-if="vm.expanded" modal-vars="variables" + parse-type="parseType" tooltip="{{ tooltip || vm.strings.get('code_mirror.tooltip.TOOLTIP') }}" label="{{ label || vm.strings.get('code_mirror.label.VARIABLES') }}" disabled="{{ disabled || false }}" - close-fn="vm.close"> + close-fn="vm.close(values, parseType)"> diff --git a/awx/ui/client/lib/components/code-mirror/modal/code-mirror-modal.directive.js b/awx/ui/client/lib/components/code-mirror/modal/code-mirror-modal.directive.js index 02d7d25753..e8a8476985 100644 --- a/awx/ui/client/lib/components/code-mirror/modal/code-mirror-modal.directive.js +++ b/awx/ui/client/lib/components/code-mirror/modal/code-mirror-modal.directive.js @@ -58,7 +58,10 @@ function atCodeMirrorModalController ( vm.strings = strings; vm.toggle = toggle; $scope.close = () => { - $scope.closeFn()($scope.modalVars); + $scope.closeFn({ + values: $scope.modalVars, + parseType: $scope.parseType, + }); }; if ($scope.init) { $scope.init = init; @@ -88,6 +91,7 @@ function atCodeMirrorModal () { labelClass: '@', tooltip: '@', modalVars: '=', + parseType: '=', name: '@', closeFn: '&' }