Adding angularjs payment method controller, updating payment method edit form

This commit is contained in:
Rob Harrington
2016-04-22 13:31:37 +10:00
parent 2d666caaf2
commit 385fd91e70
7 changed files with 15 additions and 12 deletions

View File

@@ -0,0 +1,2 @@
angular.module("admin.paymentMethods").controller "paymentMethodCtrl", ($scope, paymentMethod) ->
$scope.paymentMethod = paymentMethod

View File

@@ -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 = ""
$scope.include_html = ""

View File

@@ -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};"
"pm_id=#{attrs.providerPrefsFor};"

View File

@@ -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)

View File

@@ -0,0 +1,2 @@
:javascript
angular.module('admin.paymentMethods').value('paymentMethod', #{ { id: @payment_method.id, type: @payment_method.type }.to_json })

View File

@@ -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" }
%div{"ng-include" => "include_html" }

View File

@@ -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};"
expect(scope.include_html).toBe "/admin/payment_methods/show_provider_preferences?provider_type=NOT NULL;pm_id=#{paymentMethod.id};"