Updating Tag Rules UI to allow management of new FilterShippingMethods rule type

This commit is contained in:
Rob Harrington
2016-03-18 12:22:54 +11:00
parent 82bc26fe90
commit d278b72289
15 changed files with 273 additions and 27 deletions

View File

@@ -1,6 +1,8 @@
angular.module("admin.tagRules").controller "TagRulesCtrl", ($scope, $http, enterprise) ->
$scope.tagGroups = enterprise.tag_groups
$scope.visibilityOptions = [ { id: "visible", name: "VISIBLE" }, { id: "hidden", name: "NOT VISIBLE" } ]
updateRuleCounts = ->
index = 0
for tagGroup in $scope.tagGroups
@@ -13,13 +15,18 @@ angular.module("admin.tagRules").controller "TagRulesCtrl", ($scope, $http, ente
for tagRule in tagGroup.rules
tagRule.preferred_customer_tags = (tag.text for tag in tagGroup.tags).join(",")
$scope.addNewRuleTo = (tagGroup) ->
tagGroup.rules.push
id: null
preferred_customer_tags: (tag.text for tag in tagGroup.tags).join(",")
type: "TagRule::DiscountOrder"
calculator:
preferred_flat_percent: 0
$scope.addNewRuleTo = (tagGroup, ruleType) ->
newRule =
id: null
preferred_customer_tags: (tag.text for tag in tagGroup.tags).join(",")
type: "TagRule::#{ruleType}"
switch ruleType
when "DiscountOrder"
newRule.calculator = { preferred_flat_percent: 0 }
when "FilterShippingMethods"
newRule.peferred_shipping_method_tags = []
newRule.preferred_matched_shipping_methods_visibility = "visible"
tagGroup.rules.push(newRule)
updateRuleCounts()
$scope.addNewTag = ->

View File

@@ -0,0 +1,31 @@
angular.module("admin.tagRules").directive 'newTagRuleDialog', ($compile, $templateCache) ->
restrict: 'A'
scope: true
link: (scope, element, attr) ->
# Compile modal template
template = $compile($templateCache.get('admin/new_tag_rule_dialog.html'))(scope)
scope.ruleTypes = [
{ id: "DiscountOrder", name: 'Apply a discount to orders' }
{ id: "FilterShippingMethods", name: 'Show/Hide shipping methods' }
]
scope.ruleType = "DiscountOrder"
# Set Dialog options
template.dialog
autoOpen: false
resizable: false
width: 'auto'
scaleW: 0.4
modal: true
clickOut: true
# Link opening of dialog to click event on element
element.bind 'click', (e) ->
template.dialog('open')
scope.addRule = (tagGroup, ruleType) ->
scope.addNewRuleTo(tagGroup, ruleType)
template.dialog('close')
return

View File

@@ -0,0 +1,4 @@
angular.module("admin.tagRules").directive "filterShippingMethods", ->
restrict: "E"
replace: true
templateUrl: "admin/tag_rules/filter_shipping_methods.html"