Module: Spree::CheckoutHelper

Defined in:
app/helpers/spree/checkout_helper.rb

Instance Method Summary (collapse)

Instance Method Details

- (Object) checkout_progress



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'app/helpers/spree/checkout_helper.rb', line 7

def checkout_progress
  states = checkout_states
  items = states.map do |state|
    text = Spree.t("order_state.#{state}").titleize

    css_classes = []
    current_index = states.index(@order.state)
    state_index = states.index(state)

    if state_index < current_index
      css_classes << 'completed'
      text = link_to text, checkout_state_path(state)
    end

    css_classes << 'next' if state_index == current_index + 1
    css_classes << 'current' if state == @order.state
    css_classes << 'first' if state_index == 0
    css_classes << 'last' if state_index == states.length - 1
    # It'd be nice to have separate classes but combining them with a dash helps out for IE6 which only sees the last class
    ('li', ('span', text), class: css_classes.join('-'))
  end
  ('ol', raw(items.join("\n")), class: 'progress-steps', id: "checkout-step-#{@order.state}")
end

- (Object) checkout_states



3
4
5
# File 'app/helpers/spree/checkout_helper.rb', line 3

def checkout_states
  @order.checkout_steps
end