From 385fd91e70862f63c06aea20d68d1a5e9728b11d Mon Sep 17 00:00:00 2001 From: Rob Harrington Date: Fri, 22 Apr 2016 13:31:37 +1000 Subject: [PATCH] Adding angularjs payment method controller, updating payment method edit form --- .../controllers/payment_method_controller.js.coffee | 2 ++ .../controllers/providers_controller.js.coffee | 4 ++-- .../directives/provider_prefs_for.js.coffee | 4 ++-- .../_form/replace_form_fields.html.haml.deface | 3 ++- app/views/spree/admin/payment_methods/_data.html.haml | 2 ++ app/views/spree/admin/payment_methods/_providers.html.haml | 6 ++---- .../controllers/providers_controller_decorator.js.coffee | 6 +++--- 7 files changed, 15 insertions(+), 12 deletions(-) create mode 100644 app/assets/javascripts/admin/payment_methods/controllers/payment_method_controller.js.coffee rename app/assets/javascripts/admin/{ => payment_methods}/controllers/providers_controller.js.coffee (61%) rename app/assets/javascripts/admin/{ => payment_methods}/directives/provider_prefs_for.js.coffee (64%) create mode 100644 app/views/spree/admin/payment_methods/_data.html.haml diff --git a/app/assets/javascripts/admin/payment_methods/controllers/payment_method_controller.js.coffee b/app/assets/javascripts/admin/payment_methods/controllers/payment_method_controller.js.coffee new file mode 100644 index 0000000000..6e26b39d17 --- /dev/null +++ b/app/assets/javascripts/admin/payment_methods/controllers/payment_method_controller.js.coffee @@ -0,0 +1,2 @@ +angular.module("admin.paymentMethods").controller "paymentMethodCtrl", ($scope, paymentMethod) -> + $scope.paymentMethod = paymentMethod diff --git a/app/assets/javascripts/admin/controllers/providers_controller.js.coffee b/app/assets/javascripts/admin/payment_methods/controllers/providers_controller.js.coffee similarity index 61% rename from app/assets/javascripts/admin/controllers/providers_controller.js.coffee rename to app/assets/javascripts/admin/payment_methods/controllers/providers_controller.js.coffee index 3b3378d013..6b9669c9e7 100644 --- a/app/assets/javascripts/admin/controllers/providers_controller.js.coffee +++ b/app/assets/javascripts/admin/payment_methods/controllers/providers_controller.js.coffee @@ -1,7 +1,7 @@ -angular.module("ofn.admin").controller "ProvidersCtrl", ($scope, paymentMethod) -> +angular.module("admin.paymentMethods").controller "ProvidersCtrl", ($scope, paymentMethod) -> if paymentMethod.type $scope.include_html = "/admin/payment_methods/show_provider_preferences?" + "provider_type=#{paymentMethod.type};" + "pm_id=#{paymentMethod.id};" else - $scope.include_html = "" \ No newline at end of file + $scope.include_html = "" diff --git a/app/assets/javascripts/admin/directives/provider_prefs_for.js.coffee b/app/assets/javascripts/admin/payment_methods/directives/provider_prefs_for.js.coffee similarity index 64% rename from app/assets/javascripts/admin/directives/provider_prefs_for.js.coffee rename to app/assets/javascripts/admin/payment_methods/directives/provider_prefs_for.js.coffee index 467bad4e5f..2a0fc50f6f 100644 --- a/app/assets/javascripts/admin/directives/provider_prefs_for.js.coffee +++ b/app/assets/javascripts/admin/payment_methods/directives/provider_prefs_for.js.coffee @@ -1,7 +1,7 @@ -angular.module("ofn.admin").directive "providerPrefsFor", ($http) -> +angular.module("admin.paymentMethods").directive "providerPrefsFor", ($http) -> link: (scope, element, attrs) -> element.on "change blur load", -> scope.$apply -> scope.include_html = "/admin/payment_methods/show_provider_preferences?" + "provider_type=#{element.val()};" + - "pm_id=#{attrs.providerPrefsFor};" \ No newline at end of file + "pm_id=#{attrs.providerPrefsFor};" diff --git a/app/overrides/spree/admin/payment_methods/_form/replace_form_fields.html.haml.deface b/app/overrides/spree/admin/payment_methods/_form/replace_form_fields.html.haml.deface index 9e055ce538..21fbf95723 100644 --- a/app/overrides/spree/admin/payment_methods/_form/replace_form_fields.html.haml.deface +++ b/app/overrides/spree/admin/payment_methods/_form/replace_form_fields.html.haml.deface @@ -1,6 +1,7 @@ / replace "div[data-hook='admin_payment_method_form_fields']" -%div.alpha.eleven.columns += render 'data' +%div.alpha.eleven.columns{ "ng-app" => "admin.paymentMethods", "ng-controller" => "paymentMethodCtrl" } .row .alpha.three.columns = label_tag nil, t(:name) diff --git a/app/views/spree/admin/payment_methods/_data.html.haml b/app/views/spree/admin/payment_methods/_data.html.haml new file mode 100644 index 0000000000..62a36498a4 --- /dev/null +++ b/app/views/spree/admin/payment_methods/_data.html.haml @@ -0,0 +1,2 @@ +:javascript + angular.module('admin.paymentMethods').value('paymentMethod', #{ { id: @payment_method.id, type: @payment_method.type }.to_json }) diff --git a/app/views/spree/admin/payment_methods/_providers.html.haml b/app/views/spree/admin/payment_methods/_providers.html.haml index 77b11fb473..657e21029e 100644 --- a/app/views/spree/admin/payment_methods/_providers.html.haml +++ b/app/views/spree/admin/payment_methods/_providers.html.haml @@ -1,10 +1,8 @@ -:javascript - angular.module('ofn.admin').value('paymentMethod', #{ { id: @payment_method.id, type: @payment_method.type }.to_json }) -#provider-settings{ ng: { app: "ofn.admin", controller: "ProvidersCtrl" } } +#provider-settings{ ng: { controller: "ProvidersCtrl" } } .row .alpha.three.columns = label :payment_method, :type, t(:provider) .omega.eight.columns = collection_select(:payment_method, :type, @providers, :to_s, :clean_name, (!@object.persisted? ? { :selected => "Spree::PaymentMethod::Check"} : {}), { class: 'select2 fullwidth', 'provider-prefs-for' => "#{@object.id}"}) - %div{"ng-include" => "include_html" } \ No newline at end of file + %div{"ng-include" => "include_html" } diff --git a/spec/javascripts/unit/admin/controllers/providers_controller_decorator.js.coffee b/spec/javascripts/unit/admin/controllers/providers_controller_decorator.js.coffee index 2fcd776035..4cbf017244 100644 --- a/spec/javascripts/unit/admin/controllers/providers_controller_decorator.js.coffee +++ b/spec/javascripts/unit/admin/controllers/providers_controller_decorator.js.coffee @@ -5,7 +5,7 @@ describe "ProvidersCtrl", -> describe "initialising using a payment method without a type", -> beforeEach -> - module 'ofn.admin' + module 'admin.paymentMethods' scope = {} paymentMethod = type: null @@ -18,7 +18,7 @@ describe "ProvidersCtrl", -> describe "initialising using a payment method with a type", -> beforeEach -> - module 'ofn.admin' + module 'admin.paymentMethods' scope = {} paymentMethod = type: "NOT NULL" @@ -27,4 +27,4 @@ describe "ProvidersCtrl", -> ctrl = $controller 'ProvidersCtrl', {$scope: scope, paymentMethod: paymentMethod } it "sets the include_html porperty on scope to some address", -> - expect(scope.include_html).toBe "/admin/payment_methods/show_provider_preferences?provider_type=NOT NULL;pm_id=#{paymentMethod.id};" \ No newline at end of file + expect(scope.include_html).toBe "/admin/payment_methods/show_provider_preferences?provider_type=NOT NULL;pm_id=#{paymentMethod.id};"