From 45e3f8ab3a09b549bf09cf2ae31367b950057b7f Mon Sep 17 00:00:00 2001 From: Bing Xie Date: Fri, 5 Aug 2016 20:04:41 +1000 Subject: [PATCH] Fill the from with model --- .../directives/edit_address_dialog.js.coffee | 14 +++++++++++--- .../admin/edit_address_dialog.html.haml | 16 ++++++++-------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/app/assets/javascripts/admin/customers/directives/edit_address_dialog.js.coffee b/app/assets/javascripts/admin/customers/directives/edit_address_dialog.js.coffee index e1d4180561..f80cd7c0ee 100644 --- a/app/assets/javascripts/admin/customers/directives/edit_address_dialog.js.coffee +++ b/app/assets/javascripts/admin/customers/directives/edit_address_dialog.js.coffee @@ -1,13 +1,21 @@ -angular.module("admin.customers").directive 'editAddressDialog', ($compile, $templateCache, DialogDefaults, CurrentShop, Customers) -> +angular.module("admin.customers").directive 'editAddressDialog', ($compile, $templateCache, $filter, DialogDefaults, Customers) -> restrict: 'A' scope: true link: (scope, element, attr) -> - scope.$watch 'country', (newVal) -> + scope.$watch 'address.country_id', (newVal) -> if newVal - scope.states = newVal.states + scope.states = scope.filter_states(newVal) + + scope.updateAddress = -> + console.log(scope.edit_address_form) template = $compile($templateCache.get('admin/edit_address_dialog.html'))(scope) template.dialog(DialogDefaults) element.bind 'click', (e) -> + scope.address = scope.customer.bill_address template.dialog('open') + scope.$apply() + + scope.filter_states = (countryID) -> + $filter('filter')(scope.availableCountries, {id: countryID})[0].states diff --git a/app/assets/javascripts/templates/admin/edit_address_dialog.html.haml b/app/assets/javascripts/templates/admin/edit_address_dialog.html.haml index 908588f610..e6de7fb134 100644 --- a/app/assets/javascripts/templates/admin/edit_address_dialog.html.haml +++ b/app/assets/javascripts/templates/admin/edit_address_dialog.html.haml @@ -1,6 +1,6 @@ #edit-address-dialog %h2 Edit Shipping Address - %form{ name: 'edit_address_form', novalidate: true, ng: { submit: 'editAddress()'}} + %form{ name: 'edit_address_form', novalidate: true, ng: { submit: 'updateAddress()'}} .row Required fields are denoted with an asterisk ( %span.required * @@ -11,38 +11,38 @@ Address1 %span.required * %td - %input{ type: 'text', name: 'address1', required: true, ng: { model: 'address1'} } + %input{ type: 'text', name: 'address1', required: true, ng: { model: 'address.address1'} } %tr %td Address2: %td - %input{ type: 'text', name: 'address2', ng: { model: 'address2'} } + %input{ type: 'text', name: 'address2', ng: { model: 'address.address2'} } %tr %td Phone: %td - %input{ type: 'text', name: 'phone', required: true, ng: { model: 'phone'} } + %input{ type: 'text', name: 'phone', required: true, ng: { model: 'address.phone'} } %tr %td City: %td - %input{ type: 'text', name: 'city', required: true, ng: { model: 'city'} } + %input{ type: 'text', name: 'city', required: true, ng: { model: 'address.city'} } %tr %td Zipcode: %td - %input{ type: 'text', name: 'zipcode', required: true, ng: { model: 'zipcode'} } + %input{ type: 'text', name: 'zipcode', required: true, ng: { model: 'address.zipcode'} } %tr %td Country: %td - %select{name: 'country', required: true, ng: {model: 'country', options: 'country as country.name for country in availableCountries track by country.id'}} + %select{name: 'country', required: true, ng: {model: 'address.country_id', options: 'country.id as country.name for country in availableCountries'}} %option{value: ''} Select Country %tr %td State: %td - %select{name: 'state', required: true, ng: {model: 'state', options: 'state as state.name for state in states track by state.id'}} + %select{name: 'state', required: true, ng: {model: 'address.state_id', options: 'state.id as state.name for state in states'}} %option{value: ''} Select State .text-center