From cd09f70ed34cb4e3ba59f51949a9307db4d7bab1 Mon Sep 17 00:00:00 2001 From: Will Marshall Date: Wed, 4 Jun 2014 16:38:49 +1000 Subject: [PATCH] Compacting down our flash messages --- .../darkswarm/directives/flash.js.coffee | 14 +++++++++++--- .../darkswarm/services/current_order.js.coffee | 1 - .../javascripts/darkswarm/services/flash.js.coffee | 9 +++++++++ .../javascripts/darkswarm/services/order.js.coffee | 5 ++--- app/assets/javascripts/templates/flash.html.haml | 2 ++ app/controllers/checkout_controller.rb | 1 - app/views/layouts/darkswarm.html.haml | 2 +- 7 files changed, 25 insertions(+), 9 deletions(-) create mode 100644 app/assets/javascripts/darkswarm/services/flash.js.coffee create mode 100644 app/assets/javascripts/templates/flash.html.haml diff --git a/app/assets/javascripts/darkswarm/directives/flash.js.coffee b/app/assets/javascripts/darkswarm/directives/flash.js.coffee index 86eb2a05a2..454c3304bd 100644 --- a/app/assets/javascripts/darkswarm/directives/flash.js.coffee +++ b/app/assets/javascripts/darkswarm/directives/flash.js.coffee @@ -1,12 +1,20 @@ Darkswarm.directive "ofnFlash", (flash, $timeout)-> + typePairings = + info: "standard" + error: "alert" + success: "success" scope: {} restrict: 'AE' - template: "{{flash.message}}" + templateUrl: "flash.html" + controller: ($scope)-> + $scope.closeAlert = (index)-> + $scope.flashes.splice(index, 1) + link: ($scope, element, attr) -> $scope.flashes = [] - show = (message, type)-> + show = (message, type)=> if message - $scope.flashes.push({message: message, type: type}) + $scope.flashes.push({message: message, type: typePairings[type]}) $timeout($scope.delete, 5000) $scope.delete = -> diff --git a/app/assets/javascripts/darkswarm/services/current_order.js.coffee b/app/assets/javascripts/darkswarm/services/current_order.js.coffee index 6e329a38f9..9d8cbda9ef 100644 --- a/app/assets/javascripts/darkswarm/services/current_order.js.coffee +++ b/app/assets/javascripts/darkswarm/services/current_order.js.coffee @@ -2,6 +2,5 @@ Darkswarm.factory 'CurrentOrder', (currentOrder) -> new class CurrentOrder constructor: -> @[k] = v for k, v of currentOrder - empty: => @line_items.length == 0 diff --git a/app/assets/javascripts/darkswarm/services/flash.js.coffee b/app/assets/javascripts/darkswarm/services/flash.js.coffee new file mode 100644 index 0000000000..2be131da1d --- /dev/null +++ b/app/assets/javascripts/darkswarm/services/flash.js.coffee @@ -0,0 +1,9 @@ +Darkswarm.factory 'Flash', (flash)-> + new class Flash + loadFlash: (rails_flash)-> + for type, message of rails_flash + switch type + when "notice" + flash.info = message + else + flash[type] = message diff --git a/app/assets/javascripts/darkswarm/services/order.js.coffee b/app/assets/javascripts/darkswarm/services/order.js.coffee index cea0f54d23..9af41c8a0b 100644 --- a/app/assets/javascripts/darkswarm/services/order.js.coffee +++ b/app/assets/javascripts/darkswarm/services/order.js.coffee @@ -1,4 +1,4 @@ -Darkswarm.factory 'Order', ($resource, order, $http, flash, Navigation, storage)-> +Darkswarm.factory 'Order', ($resource, order, $http, Flash, Navigation, storage)-> new class Order errors: {} secrets: {} @@ -24,8 +24,7 @@ Darkswarm.factory 'Order', ($resource, order, $http, flash, Navigation, storage) Navigation.go data.path .error (response, status)=> @errors = response.errors - flash.error = response.flash?.error - flash.success = response.flash?.notice + Flash.loadFlash(response.flash) # Rails wants our Spree::Address data to be provided with _attributes preprocess: -> diff --git a/app/assets/javascripts/templates/flash.html.haml b/app/assets/javascripts/templates/flash.html.haml new file mode 100644 index 0000000000..8767cf3743 --- /dev/null +++ b/app/assets/javascripts/templates/flash.html.haml @@ -0,0 +1,2 @@ +%alert{close: "closeAlert($index)", "ng-repeat" => "flash in flashes", type: "flash.type"} + {{ flash.message }} diff --git a/app/controllers/checkout_controller.rb b/app/controllers/checkout_controller.rb index 95fc059e06..b0cdeebba2 100644 --- a/app/controllers/checkout_controller.rb +++ b/app/controllers/checkout_controller.rb @@ -15,7 +15,6 @@ class CheckoutController < Spree::CheckoutController end def update - if @order.update_attributes(params[:order]) fire_event('spree.checkout.update') while @order.state != "complete" diff --git a/app/views/layouts/darkswarm.html.haml b/app/views/layouts/darkswarm.html.haml index a7598e24a5..a9c9702ab2 100644 --- a/app/views/layouts/darkswarm.html.haml +++ b/app/views/layouts/darkswarm.html.haml @@ -23,7 +23,7 @@ .inner-wrap = render partial: "shared/menu/menu" - = display_flash_messages + -#= display_flash_messages %ofn-flash %section{ role: "main" }