spree_backend 2.0.13 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/admin/admin.js.erb +27 -23
  3. data/app/assets/javascripts/admin/checkouts/edit.js +12 -0
  4. data/app/assets/javascripts/admin/image_settings.js.erb +2 -1
  5. data/app/assets/javascripts/admin/option_type_autocomplete.js.erb +1 -4
  6. data/app/assets/javascripts/admin/product_picker.js +1 -2
  7. data/app/assets/javascripts/admin/progress.coffee +4 -4
  8. data/app/assets/javascripts/admin/shipments.js.erb +0 -243
  9. data/app/assets/javascripts/admin/spree_backend.js +3 -1
  10. data/app/assets/javascripts/admin/stock_transfer.js.coffee +8 -4
  11. data/app/assets/javascripts/admin/taxonomy.js.coffee +2 -2
  12. data/app/assets/javascripts/admin/variant_autocomplete.js.erb +243 -0
  13. data/app/assets/stylesheets/admin/components/_navigation.scss +2 -8
  14. data/app/assets/stylesheets/admin/hacks/_ie.scss +2 -1
  15. data/app/assets/stylesheets/admin/hacks/_mozilla.scss +1 -2
  16. data/app/assets/stylesheets/admin/plugins/_select2.scss +8 -11
  17. data/app/assets/stylesheets/admin/sections/_tax_zones.scss +15 -0
  18. data/app/assets/stylesheets/admin/shared/_forms.scss +0 -1
  19. data/app/assets/stylesheets/admin/shared/_icons.scss +1 -0
  20. data/app/assets/stylesheets/admin/shared/_layout.scss +0 -1
  21. data/app/assets/stylesheets/admin/shared/_tables.scss +1 -1
  22. data/app/assets/stylesheets/admin/spree_admin.scss +1 -0
  23. data/app/assets/stylesheets/admin/spree_backend.css +1 -0
  24. data/app/controllers/spree/admin/base_controller.rb +1 -1
  25. data/app/controllers/spree/admin/orders/customer_details_controller.rb +10 -6
  26. data/app/controllers/spree/admin/orders_controller.rb +5 -4
  27. data/app/controllers/spree/admin/overview_controller.rb +0 -2
  28. data/app/controllers/spree/admin/payment_methods_controller.rb +7 -3
  29. data/app/controllers/spree/admin/payments_controller.rb +5 -13
  30. data/app/controllers/spree/admin/products_controller.rb +8 -0
  31. data/app/controllers/spree/admin/reports_controller.rb +16 -26
  32. data/app/controllers/spree/admin/resource_controller.rb +12 -8
  33. data/app/controllers/spree/admin/stock_items_controller.rb +5 -1
  34. data/app/controllers/spree/admin/stock_movements_controller.rb +5 -1
  35. data/app/controllers/spree/admin/stock_transfers_controller.rb +1 -1
  36. data/app/controllers/spree/admin/taxons_controller.rb +42 -16
  37. data/app/helpers/spree/admin/base_helper.rb +2 -2
  38. data/app/helpers/spree/admin/navigation_helper.rb +3 -6
  39. data/app/helpers/spree/admin/stock_movements_helper.rb +1 -12
  40. data/app/views/spree/admin/mail_methods/_form.html.erb +2 -2
  41. data/app/views/spree/admin/orders/_add_product.html.erb +0 -1
  42. data/app/views/spree/admin/orders/_form.html.erb +1 -5
  43. data/app/views/spree/admin/orders/_shipment.html.erb +2 -10
  44. data/app/views/spree/admin/orders/_shipment_manifest.html.erb +1 -1
  45. data/app/views/spree/admin/orders/customer_details/_form.html.erb +2 -2
  46. data/app/views/spree/admin/orders/customer_details/edit.html.erb +1 -1
  47. data/app/views/spree/admin/orders/index.html.erb +4 -10
  48. data/app/views/spree/admin/payment_methods/_form.html.erb +2 -0
  49. data/app/views/spree/admin/payments/_form.html.erb +2 -2
  50. data/app/views/spree/admin/payments/_list.html.erb +2 -2
  51. data/app/views/spree/admin/payments/show.html.erb +2 -2
  52. data/app/views/spree/admin/payments/source_forms/_gateway.html.erb +2 -3
  53. data/app/views/spree/admin/payments/source_views/_gateway.html.erb +15 -5
  54. data/app/views/spree/admin/products/_form.html.erb +59 -82
  55. data/app/views/spree/admin/products/index.html.erb +1 -1
  56. data/app/views/spree/admin/products/new.html.erb +6 -6
  57. data/app/views/spree/admin/products/stock.html.erb +4 -12
  58. data/app/views/spree/admin/promotion_rules/create.js.erb +0 -1
  59. data/app/views/spree/admin/promotions/_form.html.erb +5 -3
  60. data/app/views/spree/admin/prototypes/_form.html.erb +2 -2
  61. data/app/views/spree/admin/prototypes/show.html.erb +1 -1
  62. data/app/views/spree/admin/reports/sales_total.html.erb +1 -1
  63. data/app/views/spree/admin/return_authorizations/_form.html.erb +2 -2
  64. data/app/views/spree/admin/shared/_content_header.html.erb +23 -0
  65. data/app/views/spree/admin/shared/_destroy.js.erb +14 -5
  66. data/app/views/spree/admin/shared/_header.html.erb +9 -0
  67. data/app/views/spree/admin/shared/_menu.html.erb +9 -0
  68. data/app/views/spree/admin/shared/_order_tabs.html.erb +5 -5
  69. data/app/views/spree/admin/shared/_report_criteria.html.erb +2 -2
  70. data/app/views/spree/admin/shared/_routes.html.erb +1 -2
  71. data/app/views/spree/admin/shared/_sidebar.html.erb +10 -0
  72. data/app/views/spree/admin/shared/_sub_menu.html.erb +9 -0
  73. data/app/views/spree/admin/shared/_table_filter.html.erb +8 -0
  74. data/app/views/spree/admin/shared/_translations.html.erb +3 -6
  75. data/app/views/spree/admin/shipping_methods/_form.html.erb +5 -6
  76. data/app/views/spree/admin/shipping_methods/index.html.erb +1 -1
  77. data/app/views/spree/admin/stock_movements/_form.html.erb +4 -5
  78. data/app/views/spree/admin/stock_movements/index.html.erb +2 -4
  79. data/app/views/spree/admin/stock_transfers/show.html.erb +1 -1
  80. data/app/views/spree/admin/taxons/edit.html.erb +1 -1
  81. data/app/views/spree/admin/variants/_autocomplete.js.erb +51 -6
  82. data/app/views/spree/layouts/admin.html.erb +11 -81
  83. data/config/routes.rb +2 -4
  84. data/lib/spree/backend/engine.rb +0 -1
  85. data/vendor/assets/javascripts/css_browser_selector_dev.js +114 -141
  86. metadata +42 -31
  87. data/app/assets/javascripts/admin/line_items.js.coffee +0 -61
  88. data/app/assets/javascripts/admin/payments/edit.js.coffee +0 -148
  89. data/app/assets/javascripts/admin/stock_movement.js.coffee +0 -17
  90. data/app/assets/javascripts/admin/variant_management.js.coffee +0 -10
  91. data/app/assets/javascripts/spree/backend/select_payments.js.coffee +0 -7
  92. data/app/controllers/spree/admin/variants_including_master_controller.rb +0 -15
  93. data/app/views/spree/admin/orders/_line_items.html.erb +0 -46
  94. data/app/views/spree/admin/variants/_autocomplete_stock.js.erb +0 -41
  95. data/app/views/spree/admin/variants/update.js.erb +0 -1
  96. data/vendor/assets/stylesheets/AdminLTE.css +0 -3535
@@ -3,42 +3,34 @@ module Spree
3
3
  class ReportsController < Spree::Admin::BaseController
4
4
  respond_to :html
5
5
 
6
- class << self
7
- def available_reports
8
- @@available_reports
9
- end
10
-
11
- def add_available_report!(report_key, report_description_key = nil)
12
- if report_description_key.nil?
13
- report_description_key = "#{report_key}_description"
14
- end
15
- @@available_reports[report_key] = {name: Spree.t(report_key), description: Spree.t(report_description_key)}
16
- end
17
- end
18
-
19
- def initialize
20
- super
21
- ReportsController.add_available_report!(:sales_total)
22
- end
6
+ AVAILABLE_REPORTS = {
7
+ :sales_total => { :name => Spree.t(:sales_total), :description => Spree.t(:sales_total_description) }
8
+ }
23
9
 
24
10
  def index
25
- @reports = ReportsController.available_reports
11
+ @reports = AVAILABLE_REPORTS
26
12
  end
27
13
 
28
14
  def sales_total
29
15
  params[:q] = {} unless params[:q]
30
16
 
31
- if params[:q][:completed_at_gt].blank?
32
- params[:q][:completed_at_gt] = Time.zone.now.beginning_of_month
17
+ if params[:q][:created_at_gt].blank?
18
+ params[:q][:created_at_gt] = Time.zone.now.beginning_of_month
33
19
  else
34
- params[:q][:completed_at_gt] = Time.zone.parse(params[:q][:completed_at_gt]).beginning_of_day rescue Time.zone.now.beginning_of_month
20
+ params[:q][:created_at_gt] = Time.zone.parse(params[:q][:created_at_gt]).beginning_of_day rescue Time.zone.now.beginning_of_month
35
21
  end
36
22
 
37
- if params[:q] && !params[:q][:completed_at_lt].blank?
38
- params[:q][:completed_at_lt] = Time.zone.parse(params[:q][:completed_at_lt]).end_of_day rescue ""
23
+ if params[:q] && !params[:q][:created_at_lt].blank?
24
+ params[:q][:created_at_lt] = Time.zone.parse(params[:q][:created_at_lt]).end_of_day rescue ""
39
25
  end
40
26
 
41
- params[:q][:s] ||= "completed_at desc"
27
+ if params[:q].delete(:completed_at_not_null) == "1"
28
+ params[:q][:completed_at_not_null] = true
29
+ else
30
+ params[:q][:completed_at_not_null] = false
31
+ end
32
+
33
+ params[:q][:s] ||= "created_at desc"
42
34
 
43
35
  @search = Order.complete.ransack(params[:q])
44
36
  @orders = @search.result
@@ -58,8 +50,6 @@ module Spree
58
50
  Spree::Admin::ReportsController
59
51
  end
60
52
 
61
- @@available_reports = {}
62
-
63
53
  end
64
54
  end
65
55
  end
@@ -6,29 +6,26 @@ class Spree::Admin::ResourceController < Spree::Admin::BaseController
6
6
  rescue_from ActiveRecord::RecordNotFound, :with => :resource_not_found
7
7
 
8
8
  respond_to :html
9
+ respond_to :js, :except => [:show, :index]
9
10
 
10
11
  def new
11
12
  invoke_callbacks(:new_action, :before)
12
13
  respond_with(@object) do |format|
13
14
  format.html { render :layout => !request.xhr? }
14
- if request.xhr?
15
- format.js { render :layout => false }
16
- end
15
+ format.js { render :layout => false }
17
16
  end
18
17
  end
19
18
 
20
19
  def edit
21
20
  respond_with(@object) do |format|
22
21
  format.html { render :layout => !request.xhr? }
23
- if request.xhr?
24
- format.js { render :layout => false }
25
- end
22
+ format.js { render :layout => false }
26
23
  end
27
24
  end
28
25
 
29
26
  def update
30
27
  invoke_callbacks(:update, :before)
31
- if @object.update_attributes(params[object_name])
28
+ if @object.update_attributes(permitted_resource_params)
32
29
  invoke_callbacks(:update, :after)
33
30
  flash[:success] = flash_message_for(@object, :successfully_updated)
34
31
  respond_with(@object) do |format|
@@ -43,7 +40,7 @@ class Spree::Admin::ResourceController < Spree::Admin::BaseController
43
40
 
44
41
  def create
45
42
  invoke_callbacks(:create, :before)
46
- @object.attributes = params[object_name]
43
+ @object.attributes = permitted_resource_params
47
44
  if @object.save
48
45
  invoke_callbacks(:create, :after)
49
46
  flash[:success] = flash_message_for(@object, :successfully_created)
@@ -254,6 +251,13 @@ class Spree::Admin::ResourceController < Spree::Admin::BaseController
254
251
  end
255
252
  end
256
253
 
254
+ # Allow all attributes to be updatable.
255
+ #
256
+ # Other controllers can, should, override it to set custom logic
257
+ def permitted_resource_params
258
+ params.require(object_name).permit!
259
+ end
260
+
257
261
  def collection_actions
258
262
  [:index]
259
263
  end
@@ -13,7 +13,7 @@ module Spree
13
13
  def create
14
14
  variant = Variant.find(params[:variant_id])
15
15
  stock_location = StockLocation.find(params[:stock_location_id])
16
- stock_movement = stock_location.stock_movements.build(params[:stock_movement])
16
+ stock_movement = stock_location.stock_movements.build(stock_movement_params)
17
17
  stock_movement.stock_item = stock_location.set_up_stock_item(variant)
18
18
 
19
19
  if stock_movement.save
@@ -35,6 +35,10 @@ module Spree
35
35
  end
36
36
 
37
37
  private
38
+ def stock_movement_params
39
+ params.require(:stock_movement).permit(permitted_stock_movement_attributes)
40
+ end
41
+
38
42
  def stock_item
39
43
  @stock_item ||= StockItem.find(params[:id])
40
44
  end
@@ -13,7 +13,7 @@ module Spree
13
13
  end
14
14
 
15
15
  def create
16
- @stock_movement = stock_location.stock_movements.build(params[:stock_movement])
16
+ @stock_movement = stock_location.stock_movements.build(stock_movement_params)
17
17
  @stock_movement.save
18
18
  flash[:success] = flash_message_for(@stock_movement, :successfully_created)
19
19
  redirect_to admin_stock_location_stock_movements_path(stock_location)
@@ -28,6 +28,10 @@ module Spree
28
28
  def stock_location
29
29
  @stock_location ||= StockLocation.find(params[:stock_location_id])
30
30
  end
31
+
32
+ def stock_movement_params
33
+ params.require(:stock_movement).permit(:quantity, :stock_item_id, :action)
34
+ end
31
35
  end
32
36
  end
33
37
  end
@@ -4,7 +4,7 @@ module Spree
4
4
  before_filter :load_stock_locations, :only => :index
5
5
 
6
6
  def index
7
- @q = StockTransfer.search(params[:q])
7
+ @q = StockTransfer.ransack(params[:q])
8
8
 
9
9
  @stock_transfers = @q.result
10
10
  .includes(:stock_movements => { :stock_item => :stock_location })
@@ -8,7 +8,7 @@ module Spree
8
8
  if params[:ids]
9
9
  @taxons = Spree::Taxon.where(:id => params[:ids].split(','))
10
10
  else
11
- @taxons = Spree::Taxon.limit(20).search(:name_cont => params[:q]).result
11
+ @taxons = Spree::Taxon.limit(20).ransack(:name_cont => params[:q]).result
12
12
  end
13
13
  end
14
14
 
@@ -39,22 +39,39 @@ module Spree
39
39
  parent_id = params[:taxon][:parent_id]
40
40
  new_position = params[:taxon][:position]
41
41
 
42
- if parent_id
43
- @taxon.parent = Taxon.find(parent_id.to_i)
44
- end
45
-
46
- if new_position
47
- @taxon.child_index = new_position.to_i
48
- end
42
+ if parent_id || new_position #taxon is being moved
43
+ new_parent = parent_id.nil? ? @taxon.parent : Taxon.find(parent_id.to_i)
44
+ new_position = new_position.nil? ? -1 : new_position.to_i
49
45
 
50
- @taxon.save!
46
+ # Bellow is a very complicated way of finding where in nested set we
47
+ # should actually move the taxon to achieve sane results,
48
+ # JS is giving us the desired position, which was awesome for previous setup,
49
+ # but now it's quite complicated to find where we should put it as we have
50
+ # to differenciate between moving to the same branch, up down and into
51
+ # first position.
52
+ new_siblings = new_parent.children
53
+ if new_position <= 0 && new_siblings.empty?
54
+ @taxon.move_to_child_of(new_parent)
55
+ elsif new_parent.id != @taxon.parent_id
56
+ if new_position == 0
57
+ @taxon.move_to_left_of(new_siblings.first)
58
+ else
59
+ @taxon.move_to_right_of(new_siblings[new_position-1])
60
+ end
61
+ elsif new_position < new_siblings.index(@taxon)
62
+ @taxon.move_to_left_of(new_siblings[new_position]) # we move up
63
+ else
64
+ @taxon.move_to_right_of(new_siblings[new_position-1]) # we move down
65
+ end
66
+ # Reset legacy position, if any extensions still rely on it
67
+ new_parent.children.reload.each{|t| t.update_column(:position, t.position)}
51
68
 
52
- # regenerate permalink
53
- if parent_id
54
- @taxon.reload
55
- @taxon.set_permalink
56
- @taxon.save!
57
- @update_children = true
69
+ if parent_id
70
+ @taxon.reload
71
+ @taxon.set_permalink
72
+ @taxon.save!
73
+ @update_children = true
74
+ end
58
75
  end
59
76
 
60
77
  if params.key? "permalink_part"
@@ -65,7 +82,7 @@ module Spree
65
82
  #check if we need to rename child taxons if parent name or permalink changes
66
83
  @update_children = true if params[:taxon][:name] != @taxon.name || params[:taxon][:permalink] != @taxon.permalink
67
84
 
68
- if @taxon.update_attributes(params[:taxon])
85
+ if @taxon.update_attributes(taxon_params)
69
86
  flash[:success] = flash_message_for(@taxon, :successfully_updated)
70
87
  end
71
88
 
@@ -90,6 +107,15 @@ module Spree
90
107
  respond_with(@taxon) { |format| format.json { render :json => '' } }
91
108
  end
92
109
 
110
+ private
111
+ def taxon_params
112
+ params.require(:taxon).permit(permitted_params)
113
+ end
114
+
115
+ def permitted_params
116
+ [:name, :parent_id, :position, :icon, :description, :permalink,
117
+ :taxonomy_id, :meta_description, :meta_keywords, :meta_title]
118
+ end
93
119
  end
94
120
  end
95
121
  end
@@ -24,7 +24,7 @@ module Spree
24
24
 
25
25
  def datepicker_field_value(date)
26
26
  unless date.blank?
27
- l(date, :format => Spree.t('date_picker.format', default: '%Y/%m/%d'))
27
+ l(date, :format => Spree.t('date_picker.format'))
28
28
  else
29
29
  nil
30
30
  end
@@ -71,7 +71,7 @@ module Spree
71
71
  when :integer
72
72
  text_field_tag(name, value, preference_field_options(options))
73
73
  when :boolean
74
- hidden_field_tag(name, 0, id: "#{name}_hidden") +
74
+ hidden_field_tag(name, 0) +
75
75
  check_box_tag(name, 1, value, preference_field_options(options))
76
76
  when :string
77
77
  text_field_tag(name, value, preference_field_options(options))
@@ -29,9 +29,7 @@ module Spree
29
29
  link = link_to(titleized_label, destination_url)
30
30
  end
31
31
 
32
- selected = if options[:match_path].is_a? Regexp
33
- request.fullpath =~ options[:match_path]
34
- elsif options[:match_path]
32
+ selected = if options[:match_path]
35
33
  request.fullpath.starts_with?("#{admin_path}#{options[:match_path]}")
36
34
  else
37
35
  args.include?(controller.controller_name.to_sym)
@@ -62,7 +60,7 @@ module Spree
62
60
 
63
61
  def link_to_clone(resource, options={})
64
62
  options[:data] = {:action => 'clone'}
65
- link_to_with_icon('icon-copy', Spree.t(:clone), clone_admin_product_url(resource), options)
63
+ link_to_with_icon('icon-copy', Spree.t(:clone), clone_object_url(resource), options)
66
64
  end
67
65
 
68
66
  def link_to_new(resource)
@@ -71,9 +69,8 @@ module Spree
71
69
  end
72
70
 
73
71
  def link_to_edit(resource, options={})
74
- url = options[:url] || edit_object_url(resource)
75
72
  options[:data] = {:action => 'edit'}
76
- link_to_with_icon('icon-edit', Spree.t(:edit), url, options)
73
+ link_to_with_icon('icon-edit', Spree.t(:edit), edit_object_url(resource), options)
77
74
  end
78
75
 
79
76
  def link_to_edit_url(url, options={})
@@ -3,22 +3,11 @@ module Spree
3
3
  module StockMovementsHelper
4
4
  def pretty_originator(stock_movement)
5
5
  if stock_movement.originator.respond_to?(:number)
6
- if stock_movement.originator.respond_to?(:order)
7
- link_to stock_movement.originator.number, [:edit, :admin, stock_movement.originator.order]
8
- else
9
- stock_movement.originator.number
10
- end
6
+ stock_movement.originator.number
11
7
  else
12
8
  ""
13
9
  end
14
10
  end
15
-
16
- def display_variant(stock_movement)
17
- variant = stock_movement.stock_item.variant
18
- output = variant.name
19
- output += "<br>(#{variant.options_text})" unless variant.options_text.blank?
20
- output.html_safe
21
- end
22
11
  end
23
12
  end
24
13
  end
@@ -64,11 +64,11 @@
64
64
  </div>
65
65
  <div class="field">
66
66
  <%= label_tag :smtp_username, Spree.t(:smtp_username) %><br />
67
- <%= text_field_tag :smtp_username, Spree::Config[:smtp_username], :class => 'fullwidth', :autocomplete => 'off' %>
67
+ <%= text_field_tag :smtp_username, Spree::Config[:smtp_username], :class => 'fullwidth' %>
68
68
  </div>
69
69
  <div class="field">
70
70
  <%= label_tag :preferred_smtp_password, Spree.t(:smtp_password) %><br />
71
- <%= password_field_tag :smtp_password, Spree::Config[:smtp_password], :class => 'fullwidth', :autocomplete => 'off' %>
71
+ <%= password_field_tag :smtp_password, Spree::Config[:smtp_password], :class => 'fullwidth' %>
72
72
  </div>
73
73
  </fieldset>
74
74
  </div>
@@ -1,5 +1,4 @@
1
1
  <%= render :partial => "spree/admin/variants/autocomplete", :formats => :js %>
2
- <%= render :partial => "spree/admin/variants/autocomplete_stock", :formats => :js %>
3
2
 
4
3
  <div id="add-line-item" data-hook>
5
4
  <fieldset class="no-border-bottom">
@@ -3,11 +3,7 @@
3
3
  <%= render :partial => 'spree/shared/error_messages', :locals => { :target => @line_item } %>
4
4
  <% end %>
5
5
 
6
- <% if Spree::Order.checkout_step_names.include?(:delivery) %>
7
- <%= render :partial => "spree/admin/orders/shipment", :collection => @order.shipments, :locals => { :order => order } %>
8
- <% else %>
9
- <%= render :partial => "spree/admin/orders/line_items", :locals => { :order => order } %>
10
- <% end %>
6
+ <%= render :partial => "spree/admin/orders/shipment", :collection => @order.shipments, :locals => { :order => order } %>
11
7
  <% if order.adjustments.eligible.exists? %>
12
8
  <fieldset class="no-border-bottom">
13
9
  <legend><%= Spree.t('adjustments') %></legend>
@@ -68,7 +68,7 @@
68
68
 
69
69
  <tr class="show-method total">
70
70
  <td colspan="4">
71
- <% if shipment.adjustment.present? && shipment.shipping_method.present? %>
71
+ <% if shipment.adjustment.present? %>
72
72
  <strong><%= shipment.adjustment.label %>: <%= shipment.shipping_method.name %></strong>
73
73
  <% else %>
74
74
  <%= Spree.t(:cannot_set_shipping_method_without_address) %>
@@ -101,14 +101,6 @@
101
101
  </td>
102
102
  </tr>
103
103
 
104
- <% if @order.special_instructions.present? %>
105
- <tr class='special_instructions'>
106
- <td colspan="5">
107
- <strong><%= Spree.t(:special_instructions) %>:&nbsp;</strong><%= @order.special_instructions %>
108
- </td>
109
- </tr>
110
- <% end %>
111
-
112
104
  <tr class="show-tracking total">
113
105
  <td colspan="5">
114
106
  <% if shipment.tracking.present? %>
@@ -125,4 +117,4 @@
125
117
  </tr>
126
118
  </tbody>
127
119
  </table>
128
- </div>
120
+ </div>
@@ -25,7 +25,7 @@
25
25
  <%= link_to '', '#', :class => 'cancel-item icon_link icon-cancel no-text with-tip', :data => {:action => 'cancel'}, :title => Spree.t('actions.cancel'), :style => 'display: none' %>
26
26
  <%= link_to '', '#', :class => 'edit-item icon_link icon-edit no-text with-tip', :data => {:action => 'edit'}, :title => Spree.t('edit') %>
27
27
  <%= link_to '', '#', :class => 'split-item icon_link icon-resize-horizontal no-text with-tip', :data => {:action => 'split', 'variant-id' => item.variant.id}, :title => Spree.t('split') %>
28
- <%= link_to '', '#', :class => 'delete-item icon-trash no-text with-tip', :data => {'shipment-number' => shipment.number, 'variant-id' => item.variant.id, :action => 'remove' }, :title => Spree.t('delete') %>
28
+ <%= link_to '', '#', :class => 'delete-item icon-trash no-text with-tip', :data => { :confirm => Spree.t(:are_you_sure), 'shipment-number' => shipment.number, 'variant-id' => item.variant.id, :action => 'remove'}, :title => Spree.t('delete') %>
29
29
  <% end %>
30
30
  </td>
31
31
  <% end %>
@@ -22,11 +22,11 @@
22
22
  <% guest = @order.user.nil? || @order.user.anonymous? %>
23
23
  <li>
24
24
  <%= radio_button_tag :guest_checkout, true, guest %>
25
- <%= Spree.t(:say_yes) %>
25
+ <%= label_tag :guest_checkout_true, Spree.t(:say_yes) %>
26
26
  </li>
27
27
  <li>
28
28
  <%= radio_button_tag :guest_checkout, false, !guest, :disabled => @order.cart? %>
29
- <%= Spree.t(:say_no) %>
29
+ <%= label_tag :guest_checkout_false, Spree.t(:say_no) %>
30
30
  </li>
31
31
  <%= hidden_field_tag :user_id, @order.user_id %>
32
32
  <% end %>
@@ -10,7 +10,7 @@
10
10
  <li><%= button_link_to Spree.t(:back_to_orders_list), admin_orders_path, :icon => 'icon-arrow-left' %></li>
11
11
  <% end %>
12
12
 
13
- <% if @order.cart? || (@order.checkout_steps.include?("address") && @order.address?) %>
13
+ <% if @order.cart? %>
14
14
  <div id="select-customer" data-hook>
15
15
  <fieldset class="no-border-bottom">
16
16
  <legend align="center"><%= Spree.t(:customer_search) %></legend>
@@ -60,7 +60,7 @@
60
60
  <div class="omega four columns">
61
61
  <div class="field checkbox">
62
62
  <label>
63
- <%= f.check_box :completed_at_not_null, {:checked => @show_only_completed}, '1', '0' %>
63
+ <%= f.check_box :completed_at_not_null, {:checked => @show_only_completed}, '1', '' %>
64
64
  <%= Spree.t(:show_only_complete_orders) %>
65
65
  </label>
66
66
  </div>
@@ -87,9 +87,7 @@
87
87
  <col style="width: 10%;">
88
88
  <col style="width: 10%;">
89
89
  <col style="width: 12%;">
90
- <% if Spree::Order.checkout_step_names.include?(:delivery) %>
91
- <col style="width: 12%;">
92
- <% end %>
90
+ <col style="width: 12%;">
93
91
  <col style="width: 25%;">
94
92
  <col style="width: 10%;">
95
93
  <col style="width: 8%;">
@@ -104,9 +102,7 @@
104
102
  <th><%= sort_link @search, :number, I18n.t(:number, :scope => 'activerecord.attributes.spree/order') %></th>
105
103
  <th><%= sort_link @search, :state, I18n.t(:state, :scope => 'activerecord.attributes.spree/order') %></th>
106
104
  <th><%= sort_link @search, :payment_state, I18n.t(:payment_state, :scope => 'activerecord.attributes.spree/order') %></th>
107
- <% if Spree::Order.checkout_step_names.include?(:delivery) %>
108
- <th><%= sort_link @search, :shipment_state, I18n.t(:shipment_state, :scope => 'activerecord.attributes.spree/order') %></th>
109
- <% end %>
105
+ <th><%= sort_link @search, :shipment_state, I18n.t(:shipment_state, :scope => 'activerecord.attributes.spree/order') %></th>
110
106
  <th><%= sort_link @search, :email, I18n.t(:email, :scope => 'activerecord.attributes.spree/order') %></th>
111
107
  <th><%= sort_link @search, :total, I18n.t(:total, :scope => 'activerecord.attributes.spree/order') %></th>
112
108
  <th data-hook="admin_orders_index_header_actions" class="actions"></th>
@@ -119,9 +115,7 @@
119
115
  <td class="align-center"><%= link_to order.number, edit_admin_order_path(order) %></td>
120
116
  <td class="align-center"><span class="state <%= order.state.downcase %>"><%= Spree.t("order_state.#{order.state.downcase}") %></span></td>
121
117
  <td class="align-center"><span class="state <%= order.payment_state %>"><%= link_to Spree.t("payment_states.#{order.payment_state}"), admin_order_payments_path(order) if order.payment_state %></span></td>
122
- <% if Spree::Order.checkout_step_names.include?(:delivery) %>
123
- <td class="align-center"><span class="state <%= order.shipment_state %>"><%= Spree.t("shipment_states.#{order.shipment_state}") if order.shipment_state %></span></td>
124
- <% end %>
118
+ <td class="align-center"><span class="state <%= order.shipment_state %>"><%= Spree.t("shipment_states.#{order.shipment_state}") if order.shipment_state %></span></td>
125
119
  <td><%= mail_to order.email %></td>
126
120
  <td class="align-center"><%= order.display_total.to_html %></td>
127
121
  <td class='actions align-center' data-hook="admin_orders_index_row_actions">
@@ -1,3 +1,5 @@
1
+ <% # Usage of old-style form helpers in this file is INTENTIONAL
2
+ # For reasons, see commit 3e981c7. %>
1
3
  <div data-hook="admin_payment_method_form_fields">
2
4
 
3
5
  <div data-hook="payment_method">
@@ -8,9 +8,9 @@
8
8
  <div class="omega nine columns">
9
9
  <div class="field">
10
10
  <label><%= Spree.t(:payment_method) %></label>
11
- <ul id='payment-methods'>
11
+ <ul>
12
12
  <% @payment_methods.each do |method| %>
13
- <li data-id="<%= Spree.t(method.name, :scope => :payment_methods, :default => method.name).parameterize %>">
13
+ <li>
14
14
  <label data-hook="payment_method_field">
15
15
  <%= radio_button_tag 'payment[payment_method_id]', method.id, method == @payment_method %>
16
16
  <%= Spree.t(method.name, :scope => :payment_methods, :default => method.name) %>
@@ -10,9 +10,9 @@
10
10
  </thead>
11
11
  <tbody>
12
12
  <% payments.each do |payment| %>
13
- <tr id="<%= dom_id(payment) %>" data-hook="payments_row" class="<%= cycle('odd', 'even')%>">
13
+ <tr data-hook="payments_row" class="<%= cycle('odd', 'even')%>">
14
14
  <td><%= pretty_time(payment.created_at) %></td>
15
- <td class="align-center amount"><%= payment.display_amount.to_html %></td>
15
+ <td class='align-center'><%= payment.display_amount.to_html %></td>
16
16
  <td class="align-center"><%= link_to payment_method_name(payment), spree.admin_order_payment_path(@order, payment) %></td>
17
17
  <td class="align-center"> <span class="state <%= payment.state %>"><%= Spree.t(payment.state, :scope => :payment_states, :default => payment.state.capitalize) %></span></td>
18
18
  <td class="actions">
@@ -2,7 +2,7 @@
2
2
 
3
3
  <% content_for :page_title do %>
4
4
  <i class="icon-arrow-right"></i>
5
- <%= I18n.t(:one, scope: "activerecord.models.spree/payment") %>
5
+ <%= Spree.t("activerecord.models.#{@payment.class.to_s.underscore}.one") %>
6
6
  <i class="icon-arrow-right"></i>
7
7
  <%= payment_method_name(@payment) %>
8
8
  <% end %>
@@ -14,5 +14,5 @@
14
14
  <%= render :partial => "spree/admin/payments/source_views/#{@payment.payment_method.method_type}", :locals => { :payment => @payment.source.is_a?(Spree::Payment) ? @payment.source : @payment } %>
15
15
 
16
16
  <div data-hook="amount" class="align-center">
17
- <h5><%= label_tag nil, Spree.t(:amount) %>: <span class="green"><%= @payment.display_amount %></span> </h5>
17
+ <h5><%= label_tag nil, Spree.t(:amount) %>: <span class="green"><%= @payment.amount %></span> </h5>
18
18
  </div>
@@ -29,9 +29,8 @@
29
29
  </div>
30
30
  <div class="three columns">
31
31
  <div data-hook="card_expiration" class="field">
32
- <%= label_tag 'card_month', raw(Spree.t(:expiration) + content_tag(:span, ' *', :class => 'required')) %><br>
33
- <%= select_month(Date.today, { :prefix => param_prefix, :field_name => 'month', :use_month_numbers => true }, :class => 'required select2', :id => 'card_month') %>
34
- <%= select_year(Date.today, { :prefix => param_prefix, :field_name => 'year', :start_year => Date.today.year, :end_year => Date.today.year + 15 }, :class => 'required select2', :id => 'card_year') %>
32
+ <%= label_tag 'card_month', raw(t(:expiration) + content_tag(:span, ' *', :class => 'required')) %><br>
33
+ <%= text_field_tag "#{param_prefix}[expiry]", '', :id => 'card_expiry', :class => "required", :placeholder => "MM / YY" %>
35
34
  </div>
36
35
  </div>
37
36
  <div class="omega two columns">
@@ -2,18 +2,28 @@
2
2
  <legend align="center"><%= Spree.t(:credit_card) %></legend>
3
3
 
4
4
  <div class="row">
5
- <div class="alpha six columns">
5
+ <div class="alpha six columns">
6
6
  <dl>
7
- <dt><%= Spree.t(:card_type) %>:</dt>
8
- <dd><%= payment.source.cc_type %></dd>
9
-
10
7
  <dt><%= Spree.t(:card_number) %>:</dt>
11
8
  <dd><%= payment.source.display_number %></dd>
12
9
 
13
10
  <dt><%= Spree.t(:expiration) %>:</dt>
14
11
  <dd><%= payment.source.month %>/<%= payment.source.year %></dd>
12
+
13
+ <dt><%= Spree.t(:card_code) %>:</dt>
14
+ <dd><%= payment.source.verification_value %></dd>
15
15
  </dl>
16
16
  </div>
17
+
18
+ <div class="omega six columns">
19
+ <dl>
20
+ <dt><%= Spree.t(:maestro_or_solo_cards) %>:</dt>
21
+ <dd><%= payment.source.issue_number %></dd>
22
+
23
+ <dt><%= Spree.t(:start_date) %>:</dt>
24
+ <dd><%= payment.source.start_month %>/<%= payment.source.start_year %></dd>
25
+ </dl>
26
+ </div>
17
27
  </div>
18
28
 
19
- </fieldset>
29
+ </fieldset>