Shipping methods can be tagged

This commit is contained in:
Rob Harrington
2016-03-17 13:33:14 +11:00
parent 86c80124fc
commit f9acee2be4
7 changed files with 32 additions and 3 deletions

View File

@@ -0,0 +1,2 @@
angular.module("admin.shippingMethods").controller "shippingMethodCtrl", ($scope, shippingMethod) ->
$scope.shippingMethod = shippingMethod

View File

@@ -1 +1 @@
angular.module("admin.shippingMethods", [])
angular.module("admin.shippingMethods", ["ngTagsInput", 'admin.utils'])

View File

@@ -27,6 +27,10 @@ module Admin
admin_inject_json_ams_array "admin.shippingMethods", "shippingMethods", @shipping_methods, Api::Admin::IdNameSerializer
end
def admin_inject_shipping_method
admin_inject_json_ams "admin.shippingMethods", "shippingMethod", @shipping_method, Api::Admin::ShippingMethodSerializer
end
def admin_inject_shops(ngModule='admin.customers')
admin_inject_json_ams_array ngModule, "shops", @shops, Api::Admin::IdNameSerializer
end

View File

@@ -1,10 +1,12 @@
Spree::ShippingMethod.class_eval do
acts_as_taggable
has_many :distributor_shipping_methods
has_many :distributors, through: :distributor_shipping_methods, class_name: 'Enterprise', foreign_key: 'distributor_id'
after_save :touch_distributors
attr_accessible :distributor_ids, :description
attr_accessible :require_ship_address
attr_accessible :require_ship_address, :tag_list
validates :distributors, presence: { message: "^At least one hub must be selected" }

View File

@@ -1,6 +1,9 @@
/ replace "div[data-hook='admin_shipping_method_form_fields']"
.alpha.eleven.columns{"data-hook" => "admin_shipping_method_form_fields"}
=admin_inject_shipping_method
.alpha.eleven.columns{ "data-hook" => "admin_shipping_method_form_fields",
"ng-app" => "admin.shippingMethods",
"ng-controller" => "shippingMethodCtrl" }
.row
.alpha.three.columns
= f.label :name, t(:name)
@@ -46,6 +49,13 @@
 
= f.label :pick_up, t(:pick_up)
.row
.alpha.three.columns
= f.label :tags, t(:tags)
.omega.eight.columns
= f.hidden_field :tag_list, "ng-value" => "shippingMethod.tag_list"
%tags-with-translation#something{ object: "shippingMethod" }
.row
.alpha.eleven.columns
= render :partial => 'spree/admin/shared/calculator_fields', :locals => { :f => f }

View File

@@ -0,0 +1,7 @@
class Api::Admin::ShippingMethodSerializer < ActiveModel::Serializer
attributes :id, :name, :tags
def tags
object.tag_list.map{ |t| { text: t } }
end
end