diff --git a/app/assets/stylesheets/darkswarm/all.scss b/app/assets/stylesheets/darkswarm/all.scss index a3ee62ec56..80e43cdc8b 100644 --- a/app/assets/stylesheets/darkswarm/all.scss +++ b/app/assets/stylesheets/darkswarm/all.scss @@ -11,5 +11,4 @@ ofn-modal { display: block; -} - +} \ No newline at end of file diff --git a/app/assets/stylesheets/darkswarm/forms.css.sass b/app/assets/stylesheets/darkswarm/forms.css.sass new file mode 100644 index 0000000000..7047159601 --- /dev/null +++ b/app/assets/stylesheets/darkswarm/forms.css.sass @@ -0,0 +1,5 @@ +@import mixins +@import branding + +fieldset + border: 0 \ No newline at end of file diff --git a/app/assets/stylesheets/darkswarm/shopping-cart.css.sass b/app/assets/stylesheets/darkswarm/shopping-cart.css.sass new file mode 100644 index 0000000000..a5314c3ef2 --- /dev/null +++ b/app/assets/stylesheets/darkswarm/shopping-cart.css.sass @@ -0,0 +1,6 @@ +@import mixins +@import branding + +#edit-cart + button, .button + margin: 0 diff --git a/app/controllers/spree/orders_controller_decorator.rb b/app/controllers/spree/orders_controller_decorator.rb index af1d5621c5..ce20dfd58d 100644 --- a/app/controllers/spree/orders_controller_decorator.rb +++ b/app/controllers/spree/orders_controller_decorator.rb @@ -11,6 +11,16 @@ Spree::OrdersController.class_eval do include OrderCyclesHelper layout 'darkswarm' + # Patching to redirect to shop if order is empty + def edit + @order = current_order(true) + if @order.line_items.empty? + redirect_to main_app.shop_path + else + associate_user + end + end + # Patch Orders#populate to populate multi_cart (if enabled) def populate if OpenFoodNetwork::FeatureToggle.enabled? :multi_cart diff --git a/app/views/shop/products/_form.html.haml b/app/views/shop/products/_form.html.haml index 8c70f76188..5a3af9684e 100644 --- a/app/views/shop/products/_form.html.haml +++ b/app/views/shop/products/_form.html.haml @@ -10,7 +10,7 @@ "ng-debounce" => "150", "ofn-disable-enter" => true} .small-6.columns - %input.button.right{type: :submit, value: "Add to Cart"} + %input.button.primary.right{type: :submit, value: "Add to Cart"} %div{bindonce: true} %product{"ng-controller" => "ProductNodeCtrl", @@ -26,4 +26,4 @@ .row .small-12.columns - %input.button.right.add_to_cart{type: :submit, value: "Add to Cart"} + %input.button.primary.right.add_to_cart{type: :submit, value: "Add to Cart"} diff --git a/app/views/shop/show.html.haml b/app/views/shop/show.html.haml index ba9493e46b..b94bd59bf9 100644 --- a/app/views/shop/show.html.haml +++ b/app/views/shop/show.html.haml @@ -15,3 +15,5 @@ .row = render partial: "shop/products/form" + += render partial: "shared/footer" \ No newline at end of file diff --git a/app/views/spree/orders/_form.html.haml b/app/views/spree/orders/_form.html.haml index 9366e0025d..3723299f84 100644 --- a/app/views/spree/orders/_form.html.haml +++ b/app/views/spree/orders/_form.html.haml @@ -19,4 +19,28 @@ = order_form.fields_for :line_items do |item_form| = render :partial => 'line_item', :locals => { :variant => item_form.object.variant, :line_item => item_form.object, :item_form => item_form } + %tfoot#edit-cart + %tr + %td + Product + \: + %span.order-total.item-total= number_to_currency @order.item_total + %td + Distribution + \: + %span.order-total.distribution-total= order_distribution_subtotal(@order) + %td + %td + = button_tag :class => 'neutral-btn dark expand small', :id => 'update-button' do + %i.fi-refresh + = t(:update) + %td + %h5.order-total.grand-total= @order.display_total + %td#empty-cart + / This needs help from Will - would like a link not button + %span#clear_cart_link{"data-hook" => ""} + = link_to "Empty cart", empty_cart_path, method: :put + -#= form_tag empty_cart_path, :method => :put do + -#= submit_tag t(:empty_cart), :class => 'button alert expand small' + = render "spree/orders/adjustments" unless @order.adjustments.eligible.blank? diff --git a/app/views/spree/orders/_line_item.html.haml b/app/views/spree/orders/_line_item.html.haml index bb7054655f..6986caf100 100644 --- a/app/views/spree/orders/_line_item.html.haml +++ b/app/views/spree/orders/_line_item.html.haml @@ -21,7 +21,7 @@ %td.cart-item-total{"data-hook" => "cart_item_total"} = line_item.display_amount.to_html unless line_item.quantity.nil? - %td.cart-item-delete{"data-hook" => "cart_item_delete"} + %td.cart-item-delete.text-center{"data-hook" => "cart_item_delete"} {{ quantity }} = link_to image_tag('icons/delete.png'), '#', :class => 'delete', :id => "delete_#{dom_id(line_item)}" diff --git a/app/views/spree/orders/edit.html.haml b/app/views/spree/orders/edit.html.haml index 06b82d5169..f0c6b95a78 100644 --- a/app/views/spree/orders/edit.html.haml +++ b/app/views/spree/orders/edit.html.haml @@ -24,35 +24,18 @@ .row = render :partial => 'form', :locals => { :order_form => order_form } - #subtotal.row{'data-hook' => ""} - .columns.large-5 - %h5 - Product - \: - %span.order-total.item-total= number_to_currency @order.item_total - .columns.large-4 - %h5 - Distribution - \: - %span.order-total.distribution-total= order_distribution_subtotal(@order) - .columns.large-3 - %h4 - Cart Total - \: - %span.order-total.grand-total= @order.display_total .links{'data-hook' => "cart_buttons"} .row - #empty-cart.columns.large-8{"data-hook" => ""} - = form_tag empty_cart_path, :method => :put do - #clear_cart_link{"data-hook" => ""} - = link_to "Continue Shopping", main_app.shop_path, class: "button secondary" - = t(:or) - = submit_tag t(:empty_cart), :class => 'button secondary' - + .columns.large-8{"data-hook" => ""} + + %a.button.large.secondary{href: main_app.shop_path} + %i.fi-arrow-left + Continue shopping .columns.large-4.text-right - = button_tag :class => 'secondary', :id => 'update-button' do - = t(:update) - = t(:or) - = link_to "Checkout", main_app.checkout_path, class: "button checkout primary", id: "checkout-link" + %a#checkout-link.button.large.primary{href: main_app.checkout_path} + Checkout + %i.fi-arrow-right + += render partial: "shared/footer" diff --git a/spec/controllers/spree/orders_controller_spec.rb b/spec/controllers/spree/orders_controller_spec.rb index a9118355d6..53c7be68f0 100644 --- a/spec/controllers/spree/orders_controller_spec.rb +++ b/spec/controllers/spree/orders_controller_spec.rb @@ -2,12 +2,23 @@ require 'spec_helper' describe Spree::OrdersController do let(:distributor) { double(:distributor) } + let(:order) { create(:order) } + let(:order_cycle) { create(:simple_order_cycle) } it "redirects home when no distributor is selected" do spree_get :edit response.should redirect_to root_path end + it "redirects to shop when order is empty" do + controller.stub(:current_distributor).and_return(distributor) + controller.stub(:current_order_cycle).and_return(order_cycle) + controller.stub(:current_order).and_return order + order.stub_chain(:line_items, :empty?).and_return true + spree_get :edit + response.should redirect_to shop_path + end + it "redirects to the shop when no order cycle is selected" do controller.stub(:current_distributor).and_return(distributor) spree_get :edit