spree_backend 3.0.10 → 3.1.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (156) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree/backend.js +22 -19
  3. data/app/assets/javascripts/spree/backend/admin.js +10 -17
  4. data/app/assets/javascripts/spree/backend/handlebar_extensions.js +0 -2
  5. data/app/assets/javascripts/spree/backend/product_picker.js +1 -2
  6. data/app/assets/javascripts/spree/backend/spree-select2.js +0 -1
  7. data/app/assets/javascripts/spree/backend/taxon_autocomplete.js +1 -0
  8. data/app/assets/javascripts/spree/backend/taxons.js.coffee +6 -1
  9. data/app/assets/stylesheets/spree/backend/components/_labels.scss +1 -0
  10. data/app/assets/stylesheets/spree/backend/components/_page_header.scss +15 -0
  11. data/app/assets/stylesheets/spree/backend/shared/_base.scss +9 -1
  12. data/app/assets/stylesheets/spree/backend/shared/_forms.scss +5 -1
  13. data/app/controllers/spree/admin/adjustments_controller.rb +2 -2
  14. data/app/controllers/spree/admin/customer_returns_controller.rb +5 -4
  15. data/app/controllers/spree/admin/option_types_controller.rb +1 -1
  16. data/app/controllers/spree/admin/option_values_controller.rb +1 -1
  17. data/app/controllers/spree/admin/orders/customer_details_controller.rb +37 -20
  18. data/app/controllers/spree/admin/orders_controller.rb +6 -6
  19. data/app/controllers/spree/admin/payment_methods_controller.rb +3 -3
  20. data/app/controllers/spree/admin/payments_controller.rb +2 -2
  21. data/app/controllers/spree/admin/products_controller.rb +11 -2
  22. data/app/controllers/spree/admin/promotions_controller.rb +0 -2
  23. data/app/controllers/spree/admin/properties_controller.rb +0 -2
  24. data/app/controllers/spree/admin/resource_controller.rb +6 -7
  25. data/app/controllers/spree/admin/return_index_controller.rb +28 -0
  26. data/app/controllers/spree/admin/stock_transfers_controller.rb +2 -4
  27. data/app/controllers/spree/admin/store_credit_categories_controller.rb +6 -0
  28. data/app/controllers/spree/admin/store_credits_controller.rb +94 -0
  29. data/app/controllers/spree/admin/taxons_controller.rb +14 -12
  30. data/app/controllers/spree/admin/users_controller.rb +4 -25
  31. data/app/controllers/spree/admin/variants_controller.rb +7 -4
  32. data/app/helpers/spree/admin/base_helper.rb +9 -0
  33. data/app/helpers/spree/admin/navigation_helper.rb +19 -8
  34. data/app/helpers/spree/admin/orders_helper.rb +11 -7
  35. data/app/views/spree/admin/countries/edit.html.erb +4 -0
  36. data/app/views/spree/admin/countries/new.html.erb +1 -1
  37. data/app/views/spree/admin/general_settings/edit.html.erb +19 -18
  38. data/app/views/spree/admin/option_types/edit.html.erb +2 -0
  39. data/app/views/spree/admin/option_types/new.html.erb +4 -0
  40. data/app/views/spree/admin/orders/_add_line_item.html.erb +3 -3
  41. data/app/views/spree/admin/orders/_add_product.html.erb +3 -3
  42. data/app/views/spree/admin/orders/_form.html.erb +22 -22
  43. data/app/views/spree/admin/orders/_line_items.html.erb +5 -5
  44. data/app/views/spree/admin/orders/_line_items_edit_form.html.erb +19 -19
  45. data/app/views/spree/admin/orders/_order_actions.html.erb +12 -0
  46. data/app/views/spree/admin/orders/_risk_analysis.html.erb +2 -2
  47. data/app/views/spree/admin/orders/cart.html.erb +7 -11
  48. data/app/views/spree/admin/orders/customer_details/_form.html.erb +4 -4
  49. data/app/views/spree/admin/orders/customer_details/edit.html.erb +3 -3
  50. data/app/views/spree/admin/orders/edit.html.erb +6 -10
  51. data/app/views/spree/admin/orders/index.html.erb +7 -5
  52. data/app/views/spree/admin/payment_methods/_form.html.erb +1 -1
  53. data/app/views/spree/admin/payment_methods/edit.html.erb +4 -0
  54. data/app/views/spree/admin/payment_methods/index.html.erb +8 -2
  55. data/app/views/spree/admin/payment_methods/new.html.erb +4 -0
  56. data/app/views/spree/admin/payments/index.html.erb +1 -1
  57. data/app/views/spree/admin/payments/source_forms/_storecredit.html.erb +9 -0
  58. data/app/views/spree/admin/payments/source_views/_storecredit.html.erb +29 -0
  59. data/app/views/spree/admin/products/_form.html.erb +12 -3
  60. data/app/views/spree/admin/products/edit.html.erb +1 -0
  61. data/app/views/spree/admin/products/index.html.erb +10 -0
  62. data/app/views/spree/admin/products/new.html.erb +4 -0
  63. data/app/views/spree/admin/promotion_categories/edit.html.erb +4 -0
  64. data/app/views/spree/admin/promotion_categories/new.html.erb +4 -0
  65. data/app/views/spree/admin/promotions/edit.html.erb +4 -0
  66. data/app/views/spree/admin/promotions/new.html.erb +4 -0
  67. data/app/views/spree/admin/properties/edit.html.erb +4 -0
  68. data/app/views/spree/admin/properties/new.html.erb +4 -0
  69. data/app/views/spree/admin/prototypes/edit.html.erb +4 -0
  70. data/app/views/spree/admin/prototypes/new.html.erb +4 -0
  71. data/app/views/spree/admin/refund_reasons/destroy.js.erb +1 -0
  72. data/app/views/spree/admin/reports/sales_total.html.erb +1 -1
  73. data/app/views/spree/admin/return_authorization_reasons/destroy.js.erb +1 -0
  74. data/app/views/spree/admin/return_index/customer_returns.html.erb +64 -0
  75. data/app/views/spree/admin/return_index/return_authorizations.html.erb +76 -0
  76. data/app/views/spree/admin/roles/edit.html.erb +4 -0
  77. data/app/views/spree/admin/roles/new.html.erb +4 -0
  78. data/app/views/spree/admin/shared/_destroy.js.erb +6 -3
  79. data/app/views/spree/admin/shared/_error_messages.html.erb +1 -1
  80. data/app/views/spree/admin/shared/_index_table_options.html.erb +7 -1
  81. data/app/views/spree/admin/shared/_main_menu.html.erb +6 -0
  82. data/app/views/spree/admin/shared/_order_tabs.html.erb +1 -1
  83. data/app/views/spree/admin/shared/named_types/_index.html.erb +2 -1
  84. data/app/views/spree/admin/shared/sub_menu/_configuration.html.erb +1 -0
  85. data/app/views/spree/admin/shared/sub_menu/_returns.html.erb +4 -0
  86. data/app/views/spree/admin/shipping_categories/edit.html.erb +4 -0
  87. data/app/views/spree/admin/shipping_categories/new.html.erb +4 -0
  88. data/app/views/spree/admin/state_changes/index.html.erb +2 -2
  89. data/app/views/spree/admin/states/edit.html.erb +4 -0
  90. data/app/views/spree/admin/states/new.html.erb +4 -0
  91. data/app/views/spree/admin/stock_locations/edit.html.erb +1 -1
  92. data/app/views/spree/admin/stock_movements/_form.html.erb +3 -3
  93. data/app/views/spree/admin/stock_movements/edit.html.erb +2 -1
  94. data/app/views/spree/admin/stock_movements/index.html.erb +2 -2
  95. data/app/views/spree/admin/stock_movements/new.html.erb +4 -4
  96. data/app/views/spree/admin/store_credit_categories/_form.html.erb +8 -0
  97. data/app/views/spree/admin/store_credit_categories/edit.html.erb +10 -0
  98. data/app/views/spree/admin/store_credit_categories/index.html.erb +34 -0
  99. data/app/views/spree/admin/store_credit_categories/new.html.erb +10 -0
  100. data/app/views/spree/admin/store_credits/_form.html.erb +18 -0
  101. data/app/views/spree/admin/store_credits/edit.html.erb +12 -0
  102. data/app/views/spree/admin/store_credits/index.html.erb +46 -0
  103. data/app/views/spree/admin/store_credits/new.html.erb +12 -0
  104. data/app/views/spree/admin/tax_categories/edit.html.erb +1 -1
  105. data/app/views/spree/admin/tax_categories/new.html.erb +1 -1
  106. data/app/views/spree/admin/tax_rates/edit.html.erb +4 -0
  107. data/app/views/spree/admin/tax_rates/index.html.erb +1 -1
  108. data/app/views/spree/admin/tax_rates/new.html.erb +4 -0
  109. data/app/views/spree/admin/taxonomies/edit.erb +5 -1
  110. data/app/views/spree/admin/taxonomies/new.html.erb +4 -0
  111. data/app/views/spree/admin/taxons/_form.html.erb +1 -1
  112. data/app/views/spree/admin/users/_form.html.erb +5 -6
  113. data/app/views/spree/admin/users/_lifetime_stats.html.erb +6 -2
  114. data/app/views/spree/admin/users/_sidebar.html.erb +3 -0
  115. data/app/views/spree/admin/users/_user_page_actions.html.erb +1 -1
  116. data/app/views/spree/admin/users/items.html.erb +1 -1
  117. data/app/views/spree/admin/users/new.html.erb +4 -0
  118. data/app/views/spree/admin/users/orders.html.erb +1 -1
  119. data/app/views/spree/admin/variants/_form.html.erb +8 -1
  120. data/app/views/spree/admin/variants/index.html.erb +4 -2
  121. data/app/views/spree/admin/zones/index.html.erb +1 -1
  122. data/config/routes.rb +19 -9
  123. data/lib/spree/backend/callbacks.rb +4 -8
  124. data/spec/controllers/spree/admin/orders/customer_details_controller_spec.rb +164 -9
  125. data/spec/controllers/spree/admin/orders_controller_spec.rb +16 -9
  126. data/spec/controllers/spree/admin/payments_controller_spec.rb +10 -10
  127. data/spec/controllers/spree/admin/products_controller_spec.rb +61 -12
  128. data/spec/controllers/spree/admin/return_index_controller_spec.rb +37 -0
  129. data/spec/controllers/spree/admin/users_controller_spec.rb +3 -3
  130. data/spec/features/admin/configuration/analytics_tracker_spec.rb +3 -2
  131. data/spec/features/admin/configuration/countries_spec.rb +1 -1
  132. data/spec/features/admin/configuration/general_settings_spec.rb +1 -0
  133. data/spec/features/admin/configuration/payment_methods_spec.rb +4 -4
  134. data/spec/features/admin/configuration/store_credit_categories_spec.rb +50 -0
  135. data/spec/features/admin/homepage_spec.rb +19 -11
  136. data/spec/features/admin/orders/cancelling_and_resuming_spec.rb +2 -2
  137. data/spec/features/admin/orders/customer_details_spec.rb +8 -21
  138. data/spec/features/admin/orders/line_items_spec.rb +2 -2
  139. data/spec/features/admin/orders/listing_spec.rb +3 -6
  140. data/spec/features/admin/orders/new_order_spec.rb +13 -14
  141. data/spec/features/admin/orders/payments_spec.rb +1 -1
  142. data/spec/features/admin/products/products_spec.rb +2 -2
  143. data/spec/features/admin/products/stock_management_spec.rb +5 -4
  144. data/spec/features/admin/refund_reasons/refund_reasons_spec.rb +57 -0
  145. data/spec/features/admin/reports_spec.rb +2 -2
  146. data/spec/features/admin/return_authorization_reasons/return_authorization_reasons_spec.rb +63 -0
  147. data/spec/features/admin/returns/customer_returns_spec.rb +80 -0
  148. data/spec/features/admin/returns/return_authorizations_spec.rb +152 -0
  149. data/spec/features/admin/store_credits_spec.rb +93 -0
  150. data/spec/features/admin/users_spec.rb +8 -6
  151. data/spec/helpers/admin/base_helper_spec.rb +6 -0
  152. data/spec/routing/admin_path_spec.rb +22 -0
  153. data/spec/spec_helper.rb +1 -0
  154. data/spree_backend.gemspec +0 -1
  155. metadata +36 -10
  156. data/CHANGELOG.md +0 -1
@@ -2,6 +2,10 @@
2
2
  <%= Spree.t(:editing_resource, resource: Spree::Role.model_name.human) %>
3
3
  <% end %>
4
4
 
5
+ <% content_for :page_actions do %>
6
+ <%= back_to_list_button(Spree::Role.model_name.human, admin_roles_path) %>
7
+ <% end %>
8
+
5
9
  <%= form_for [:admin, @role] do |f| %>
6
10
  <fieldset>
7
11
  <%= render partial: 'form', locals: { f: f } %>
@@ -2,6 +2,10 @@
2
2
  <%= Spree.t(:new_role) %>
3
3
  <% end %>
4
4
 
5
+ <% content_for :page_actions do %>
6
+ <%= back_to_list_button(Spree::Role.model_name.human, admin_roles_path) %>
7
+ <% end %>
8
+
5
9
  <%= form_for [:admin, @role] do |f| %>
6
10
  <fieldset>
7
11
  <%= render partial: 'form', locals: { f: f } %>
@@ -1,6 +1,9 @@
1
- <% success = flash.discard(:success)
2
- if success %>
3
- show_flash('success', "<%= j success %>")
1
+ <% if success = flash.discard(:success) %>
2
+ show_flash('success', "<%= j success %>");
3
+ <% end %>
4
+
5
+ <% if error = flash.discard(:error) %>
6
+ show_flash('warning', "<%= j error %>");
4
7
  <% end %>
5
8
 
6
9
  <%= render :partial => '/spree/admin/shared/update_order_state' if @order %>
@@ -1,7 +1,7 @@
1
1
  <% if target && target.errors.any? %>
2
2
  <div id="errorExplanation" class="errorExplanation alert alert-danger" data-hook>
3
3
  <p>
4
- <strong><%= Spree.t(:errors_prohibited_this_record_from_being_saved, :count => target.errors.count) %>:</strong><br/>
4
+ <strong><%= Spree.t(:errors_prohibited_this_record_from_being_saved, count: target.errors.size) %>:</strong><br/>
5
5
  </p>
6
6
  <ul class="ul-with-markup">
7
7
  <% target.errors.full_messages.each do |msg| %>
@@ -1,10 +1,16 @@
1
+ <% args = params.clone %>
2
+
3
+ <% if defined?(per_page_action) %>
4
+ <% args.merge!(action: per_page_action) %>
5
+ <% end %>
6
+
1
7
  <div class="row index-pagination-row">
2
8
  <div class="col-sm-6">
3
9
  <%= paginate collection %>
4
10
  </div>
5
11
  <div class="col-sm-6">
6
12
  <div class="pagination-wrap">
7
- <%= form_tag(per_page_dropdown_params, { method: :get, class: 'js-per-page-form form-inline' }) do %>
13
+ <%= form_tag(per_page_dropdown_params(args), { method: :get, class: 'js-per-page-form form-inline' }) do %>
8
14
  <%= per_page_dropdown %>
9
15
  <% end %>
10
16
  <div class="clearfix"></div>
@@ -4,6 +4,12 @@
4
4
  </ul>
5
5
  <% end %>
6
6
 
7
+ <% if can?(:admin, Spree::ReturnAuthorization) || can?(:admin, Spree::CustomerReturn) %>
8
+ <ul class="nav nav-sidebar">
9
+ <%= main_menu_tree Spree.t(:returns), icon: "transfer", sub_menu: "returns", url: "#sidebar-returns" %>
10
+ </ul>
11
+ <% end %>
12
+
7
13
  <% if can? :admin, Spree::Product %>
8
14
  <ul class="nav nav-sidebar">
9
15
  <%= main_menu_tree Spree.t(:products), icon: "th-large", sub_menu: "product", url: "#sidebar-product" %>
@@ -5,7 +5,7 @@
5
5
 
6
6
  <% content_for :sidebar do %>
7
7
  <ul class="nav nav-pills nav-stacked" data-hook="admin_order_tabs">
8
- <% if ((can? :update, @order) && (@order.shipments.count == 0 || @order.shipments.shipped.count == 0)) %>
8
+ <% if ((can? :update, @order) && (@order.shipments.size.zero? || @order.shipments.shipped.size.zero?)) %>
9
9
  <li<%== ' class="active"' if current == :cart %> data-hook='admin_order_tabs_cart_details'>
10
10
  <%= link_to_with_icon 'edit', Spree.t(:cart), cart_admin_order_url(@order) %>
11
11
  </li>
@@ -15,7 +15,7 @@
15
15
  <th></th>
16
16
  </tr>
17
17
  </thead>
18
- <tbody>
18
+ <tbody id="<%= resource_name.to_s.parameterize.underscore %>">
19
19
  <% @collection.each do |named_type| %>
20
20
  <tr id="<%= spree_dom_id named_type %>" data-hook="named_type_row">
21
21
  <td class="align-center">
@@ -27,6 +27,7 @@
27
27
  <td class="actions actions-1 text-right">
28
28
  <% if named_type.mutable? %>
29
29
  <%= link_to_edit(named_type, no_text: true) if can? :edit, named_type %>
30
+ <%= link_to_delete(named_type, no_text: true) if can? :delete, named_type %>
30
31
  <% end %>
31
32
  </td>
32
33
  </tr>
@@ -14,6 +14,7 @@
14
14
  <%= configurations_sidebar_menu_item(Spree.t(:shipping_categories), spree.admin_shipping_categories_path) if can? :manage, Spree::ShippingCategory %>
15
15
  <%= configurations_sidebar_menu_item(Spree.t(:stock_transfers), spree.admin_stock_transfers_path) if can? :manage, Spree::StockTransfer %>
16
16
  <%= configurations_sidebar_menu_item(Spree.t(:stock_locations), spree.admin_stock_locations_path) if can? :manage, Spree::StockLocation %>
17
+ <%= configurations_sidebar_menu_item(Spree.t(:store_credit_categories), spree.admin_store_credit_categories_path) if can? :manage, Spree::StoreCreditCategory %>
17
18
  <%= configurations_sidebar_menu_item(Spree.t(:analytics_trackers), spree.admin_trackers_path) if can? :manage, Spree::Tracker %>
18
19
  <%= configurations_sidebar_menu_item(Spree.t(:refund_reasons), spree.admin_refund_reasons_path) if can? :manage, Spree::RefundReason %>
19
20
  <%= configurations_sidebar_menu_item(Spree.t(:reimbursement_types), spree.admin_reimbursement_types_path) if can? :manage, Spree::ReimbursementType %>
@@ -0,0 +1,4 @@
1
+ <ul id="sidebar-returns" class="collapse nav nav-pills nav-stacked" data-hook="admin_returns_sub_tabs">
2
+ <%= tab :return_authorizations, url: spree.admin_return_authorizations_path, match_path: '/return_authorizations' if can?(:admin, Spree::ReturnAuthorization) %>
3
+ <%= tab :customer_returns, url: spree.admin_customer_returns_path, match_path: '/customer_returns' if can?(:admin, Spree::CustomerReturn) %>
4
+ </ul>
@@ -2,6 +2,10 @@
2
2
  <%= Spree.t(:editing_resource, resource: Spree::ShippingCategory.model_name.human) %>
3
3
  <% end %>
4
4
 
5
+ <% content_for :page_actions do %>
6
+ <%= back_to_list_button(Spree::ShippingCategory.model_name.human, admin_shipping_categories_path) %>
7
+ <% end %>
8
+
5
9
  <%= render :partial => 'spree/admin/shared/error_messages', :locals => { :target => @shipping_category } %>
6
10
 
7
11
  <%= form_for [:admin, @shipping_category] do |f| %>
@@ -2,6 +2,10 @@
2
2
  <%= Spree.t(:new_shipping_category) %>
3
3
  <% end %>
4
4
 
5
+ <% content_for :page_actions do %>
6
+ <%= back_to_list_button(Spree::ShippingCategory.model_name.human, admin_shipping_categories_path) %>
7
+ <% end %>
8
+
5
9
  <%= render :partial => 'spree/admin/shared/error_messages', :locals => { :target => @shipping_category } %>
6
10
 
7
11
  <%= form_for [:admin, @shipping_category] do |f| %>
@@ -26,9 +26,9 @@
26
26
  <%= link_to state_change.user.login, spree.admin_user_path(state_change.user) if state_change.user %>
27
27
  </td>
28
28
  <td>
29
- <%= l(state_change.created_at) %>
29
+ <%= pretty_time(state_change.created_at) %>
30
30
  <% if state_change.created_at != state_change.updated_at %>
31
- <small><%= Spree::StateChange.human_attribute_name(:updated)%>: <%= l(state_change.updated_at) %></small>
31
+ <small><%= Spree::StateChange.human_attribute_name(:updated) %>: <%= pretty_time(state_change.updated_at) %></small>
32
32
  <% end %>
33
33
  </td>
34
34
  </tr>
@@ -2,6 +2,10 @@
2
2
  <%= Spree.t(:editing_resource, resource: Spree::State.model_name.human) %> / <%= @state.name %>
3
3
  <% end %>
4
4
 
5
+ <% content_for :page_actions do %>
6
+ <%= back_to_list_button(Spree::State.model_name.human, admin_country_states_path(@country)) %>
7
+ <% end %>
8
+
5
9
  <%= render :partial => 'spree/admin/shared/error_messages', :locals => { :target => @state } %>
6
10
 
7
11
  <%= form_for [:admin, @country, @state] do |f| %>
@@ -4,6 +4,10 @@
4
4
  <%= Spree.t(:new_state) %>
5
5
  <% end %>
6
6
 
7
+ <% content_for :page_actions do %>
8
+ <%= back_to_list_button(Spree::State.model_name.human, admin_country_states_path(@country)) %>
9
+ <% end %>
10
+
7
11
  <%= form_for [:admin, @country, @state] do |f| %>
8
12
  <fieldset>
9
13
  <%= render :partial => 'form', :locals => { :f => f } %>
@@ -4,7 +4,7 @@
4
4
  <% end %>
5
5
 
6
6
  <% content_for :page_actions do %>
7
- <%= link_to_with_icon 'arrow-left', Spree.t(:back_to_resource_list, resource: Spree::StockLocation.model_name.human), admin_stock_locations_path, class: 'btn btn-default' %>
7
+ <%= back_to_list_button(Spree::StockLocation.model_name.human, admin_stock_locations_path) %>
8
8
  <% end %>
9
9
 
10
10
  <%= render :partial => 'spree/admin/shared/error_messages', :locals => { :target => @stock_location } %>
@@ -1,12 +1,12 @@
1
1
  <div data-hook="admin_stock_movements_form_fields">
2
2
  <%= f.field_container :quantity, class: ['form-group'] do %>
3
3
  <%= f.label :quantity, Spree.t(:quantity) %>
4
- <%= f.text_field :quantity %>
4
+ <%= f.text_field :quantity, class: 'form-control' %>
5
5
  <% end %>
6
6
  <%= f.field_container :stock_item_id, class: ['form-group'] do %>
7
7
  <%= f.label :stock_item_id, Spree.t(:stock_item_id) %>
8
- <%= f.text_field 'stock_item_id', :class => 'form-control', :'data-stock-location-id' => params[:stock_location_id] %>
8
+ <%= f.text_field 'stock_item_id', :'data-stock-location-id' => params[:stock_location_id] %>
9
9
  <% end %>
10
10
  </div>
11
11
 
12
- <%= render :partial => "spree/admin/variants/autocomplete", :formats => :js %>
12
+ <%= render partial: "spree/admin/variants/autocomplete", formats: :js %>
@@ -3,7 +3,8 @@
3
3
  <% end %>
4
4
 
5
5
  <% content_for :page_actions do %>
6
- <%= link_to_with_icon 'arrow-left', Spree.t(:back_to_resource_list, resource: Spree::StockMovement.model_name.human), admin_stock_location_stock_movements_path(stock_location), class: 'btn btn-default' %>
6
+ <%= back_to_list_button(Spree::StockMovement.model_name.human,
7
+ admin_stock_location_stock_movements_path(stock_location)) %>
7
8
  <% end %>
8
9
 
9
10
  <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @stock_movement } %>
@@ -3,8 +3,8 @@
3
3
  <% end %>
4
4
 
5
5
  <% content_for :page_actions do %>
6
- <%= button_link_to Spree.t(:new_stock_movement), new_admin_stock_location_stock_movement_path(@stock_location), icon: 'plus', id: 'admin_new_stock_movement_link' %>
7
- <%= link_to_with_icon 'arrow-left', Spree.t(:back_to_resource_list, resource: Spree::StockLocation.model_name.human), admin_stock_locations_path, class: 'btn btn-default' %>
6
+ <%= button_link_to Spree.t(:new_stock_movement), new_admin_stock_location_stock_movement_path(@stock_location), icon: 'add', class: 'btn-success', id: 'admin_new_stock_movement_link' %>
7
+ <%= back_to_list_button(Spree::StockLocation.model_name.human, admin_stock_locations_path) %>
8
8
  <% end %>
9
9
 
10
10
  <% if @stock_movements.any? %>
@@ -3,14 +3,14 @@
3
3
  <% end %>
4
4
 
5
5
  <% content_for :page_actions do %>
6
- <li><%= link_to_with_icon 'arrow-left', Spree.t(:back_to_stock_movements_list), admin_stock_location_stock_movements_path(stock_location), :class => 'btn btn-default' %></li>
6
+ <%= back_to_list_button(Spree::StockMovement.model_name.human, admin_stock_location_stock_movements_path(stock_location)) %>
7
7
  <% end %>
8
8
 
9
- <%= render :partial => 'spree/admin/shared/error_messages', :locals => { :target => @stock_movement } %>
9
+ <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @stock_movement } %>
10
10
 
11
11
  <%= form_for [:admin, stock_location, @stock_movement] do |f| %>
12
12
  <fieldset>
13
- <%= render :partial => 'form', :locals => { :f => f } %>
14
- <%= render :partial => 'spree/admin/shared/new_resource_links', locals: { collection_url: admin_stock_location_stock_movements_path(stock_location) } %>
13
+ <%= render partial: 'form', locals: { f: f } %>
14
+ <%= render partial: 'spree/admin/shared/new_resource_links', locals: { collection_url: admin_stock_location_stock_movements_path(stock_location) } %>
15
15
  </fieldset>
16
16
  <% end %>
@@ -0,0 +1,8 @@
1
+ <div data-hook="admin_store_credit_category_form_fields">
2
+ <div data-hook="store_credit_category_name" class="form-group">
3
+ <%= f.label :name, Spree.t(:name) %> <span class="required">*</span>
4
+ <%= f.text_field :name, class: 'form-control' %>
5
+ </div>
6
+
7
+ <div data-hook="additional_store_credit_category_fields"></div>
8
+ </div>
@@ -0,0 +1,10 @@
1
+ <% content_for :page_title do %>
2
+ <%= Spree.t(:editing_resource, resource: Spree::StoreCreditCategory.model_name.human) %>
3
+ <% end %>
4
+
5
+ <%= form_for [:admin, @store_credit_category] do |f| %>
6
+ <fieldset>
7
+ <%= render partial: 'form', locals: { f: f } %>
8
+ <%= render partial: 'spree/admin/shared/edit_resource_links' %>
9
+ </fieldset>
10
+ <% end %>
@@ -0,0 +1,34 @@
1
+ <% content_for :page_title do %>
2
+ <%= plural_resource_name(Spree::StoreCreditCategory) %>
3
+ <% end %>
4
+
5
+ <% content_for :page_actions do %>
6
+ <%= button_link_to Spree.t(:new_store_credit_category), new_object_url, class: "btn-success", icon: 'add', id: 'admin_new_store_credit_category_link' %>
7
+ <% end if can? :create, Spree::StoreCreditCategory %>
8
+
9
+ <% if @store_credit_categories.any? %>
10
+ <table class="table">
11
+ <thead>
12
+ <tr data-hook="admin_store_credit_categories_index_headers">
13
+ <th><%= Spree.t(:name) %></th>
14
+ <th class="actions"></th>
15
+ </tr>
16
+ </thead>
17
+ <tbody>
18
+ <% @store_credit_categories.each do |store_credit_category| %>
19
+ <tr id="<%= spree_dom_id store_credit_category %>" data-hook="admin_store_credit_categories_index_rows">
20
+ <td><%= store_credit_category.name %></td>
21
+ <td class="actions text-right">
22
+ <%= link_to_edit(store_credit_category, no_text: true) if can? :edit, store_credit_category %>
23
+ <%= link_to_delete(store_credit_category, no_text: true) if can? :destroy, store_credit_category %>
24
+ </td>
25
+ </tr>
26
+ <% end %>
27
+ </tbody>
28
+ </table>
29
+ <% else %>
30
+ <div class="alert alert-warning">
31
+ <%= Spree.t(:no_resource_found, resource: plural_resource_name(Spree::StoreCreditCategory)) %>,
32
+ <%= link_to(Spree.t(:add_one), new_object_url) if can? :create, Spree::StoreCreditCategory %>!
33
+ </div>
34
+ <% end %>
@@ -0,0 +1,10 @@
1
+ <% content_for :page_title do %>
2
+ <%= Spree.t(:new_store_credit_category) %>
3
+ <% end %>
4
+
5
+ <%= form_for [:admin, @store_credit_category] do |f| %>
6
+ <fieldset>
7
+ <%= render partial: 'form', locals: { f: f } %>
8
+ <%= render partial: 'spree/admin/shared/new_resource_links' %>
9
+ </fieldset>
10
+ <% end %>
@@ -0,0 +1,18 @@
1
+ <div data-hook="admin_store_credit_form_fields">
2
+ <%= f.field_container :amount, class: ['form-group'] do %>
3
+ <%= f.label :amount, raw(Spree.t(:amount) + content_tag(:span, " *", class: "required")) %>
4
+ <%= f.text_field :amount, class: 'form-control' %>
5
+ <%= f.error_message_on :amount %>
6
+ <% end %>
7
+ <%= f.field_container :category, class: ['form-group'] do %>
8
+ <%= f.label :category, raw(Spree.t(:category) + content_tag(:span, " *", class: "required")) %>
9
+ <%= f.select :category_id, options_from_collection_for_select(@credit_categories, :id, :name, f.object.category.try(:id)),
10
+ { include_blank: true }, { class: 'select2 fullwidth', placeholder: Spree.t(:select_a_store_credit_reason) } %>
11
+ <%= f.error_message_on :category %>
12
+ <% end %>
13
+ <%= f.field_container :memo, class: ['form-group'] do %>
14
+ <%= f.label :memo, Spree.t(:memo) %>
15
+ <%= f.text_area :memo, class: 'form-control' %>
16
+ <%= f.error_message_on :memo %>
17
+ <% end %>
18
+ </div>
@@ -0,0 +1,12 @@
1
+ <% content_for :page_title do %>
2
+ <%= link_to "#{@user.email}", spree.edit_admin_user_url(@user) %> / <%= Spree.t(:editing_resource, resource: Spree::StoreCredit.model_name.human) %>
3
+ <% end %>
4
+
5
+ <%= render partial: 'spree/admin/users/sidebar', locals: { current: :store_credits } %>
6
+
7
+ <%= form_for @store_credit, url: spree.admin_user_store_credit_path(@user, @store_credit) do |f| %>
8
+ <fieldset>
9
+ <%= render partial: 'form', locals: { f: f } %>
10
+ <%= render partial: 'spree/admin/shared/edit_resource_links', locals: { collection_url: spree.admin_user_store_credits_path(@user) } %>
11
+ </fieldset>
12
+ <% end %>
@@ -0,0 +1,46 @@
1
+ <% content_for :page_title do %>
2
+ <%= link_to "#{@user.email}", spree.edit_admin_user_url(@user) %> / <%= Spree.t(:"admin.user.store_credits") %>
3
+ <% end %>
4
+
5
+ <%= render partial: 'spree/admin/users/sidebar', locals: { current: :store_credits } %>
6
+
7
+ <% content_for :page_actions do %>
8
+ <%= back_to_list_button(Spree.user_class.model_name.human, spree.admin_users_path) %>
9
+ <%= button_link_to Spree.t(:add_store_credit), spree.new_admin_user_store_credit_path(@user), class: "btn-success", icon: 'add' %>
10
+ <% end %>
11
+
12
+ <% if @store_credits.any? %>
13
+ <table class="table">
14
+ <thead>
15
+ <th><%= Spree.t(:credited) %></th>
16
+ <th><%= Spree.t(:used) %></th>
17
+ <th><%= Spree.t(:category) %></th>
18
+ <th><%= Spree.t(:created_by) %></th>
19
+ <th><%= Spree.t(:issued_on) %></th>
20
+ <th data-hook="admin_store_credits_index_header_actions" class="actions"></th>
21
+ <thead>
22
+ <tbody>
23
+ <% @store_credits.each do |store_credit| %>
24
+ <tr>
25
+ <td><%= store_credit.display_amount.to_html %></td>
26
+ <td><%= store_credit.display_amount_used.to_html %></td>
27
+ <td><%= store_credit.category_name %></td>
28
+ <td><%= store_credit.created_by_email %></td>
29
+ <td><%= l store_credit.created_at.to_date %></td>
30
+ <td class="actions actions-2 text-center" data-hook="admin_store_credits_index_row_actions">
31
+ <% if store_credit.amount_used.zero? %>
32
+ <%= link_to_edit_url spree.edit_admin_user_store_credit_path(@user, store_credit), no_text: true if can?(:edit, store_credit) %>
33
+ <%= link_to_delete store_credit, no_text: true, url: spree.admin_user_store_credit_path(@user, store_credit) if can?(:destroy, store_credit) %>
34
+ <% end %>
35
+ </td>
36
+ </tr>
37
+ <% end %>
38
+ </tbody>
39
+ </table>
40
+ <% else %>
41
+ <div class="alert alert-info no-objects-found">
42
+ <%= Spree.t(:no_resource_found, resource: plural_resource_name(Spree::StoreCredit)) %>
43
+ </div>
44
+ <% end %>
45
+
46
+ <%= render 'spree/admin/users/lifetime_stats' %>
@@ -0,0 +1,12 @@
1
+ <% content_for :page_title do %>
2
+ <%= link_to "#{@user.email}", spree.edit_admin_user_url(@user) %> / <%= Spree.t(:new_store_credit) %>
3
+ <% end %>
4
+
5
+ <%= render partial: 'spree/admin/users/sidebar', locals: { current: :store_credits } %>
6
+
7
+ <%= form_for @store_credit, url: spree.admin_user_store_credits_path(@user, @store_credit) do |f| %>
8
+ <fieldset>
9
+ <%= render partial: 'form', locals: { f: f } %>
10
+ <%= render partial: 'spree/admin/shared/new_resource_links', locals: { collection_url: spree.admin_user_store_credits_path(@user) } %>
11
+ </fieldset>
12
+ <% end %>
@@ -3,7 +3,7 @@
3
3
  <% end %>
4
4
 
5
5
  <% content_for :page_actions do %>
6
- <%= link_to_with_icon 'arrow-left', Spree.t(:back_to_resource_list, resource: Spree::TaxCategory.model_name.human), admin_tax_categories_path, class: 'btn btn-primary' %>
6
+ <%= back_to_list_button(Spree::TaxCategory.model_name.human, admin_tax_categories_path) %>
7
7
  <% end %>
8
8
 
9
9
  <%= render :partial => 'spree/admin/shared/error_messages', :locals => { :target => @tax_category } %>
@@ -3,7 +3,7 @@
3
3
  <% end %>
4
4
 
5
5
  <% content_for :page_actions do %>
6
- <%= link_to_with_icon 'arrow-left', Spree.t(:back_to_resource_list, resource: Spree::TaxCategory.model_name.human), admin_tax_categories_path, class: 'btn btn-default' %>
6
+ <%= back_to_list_button(Spree::TaxCategory.model_name.human, admin_tax_categories_path) %>
7
7
  <% end %>
8
8
 
9
9
  <%= render :partial => 'spree/admin/shared/error_messages', :locals => { :target => @tax_category } %>
@@ -2,6 +2,10 @@
2
2
  <%= Spree.t(:editing_resource, resource: Spree::TaxRate.model_name.human) %>
3
3
  <% end %>
4
4
 
5
+ <% content_for :page_actions do %>
6
+ <%= back_to_list_button(Spree::TaxRate.model_name.human, admin_tax_rates_path) %>
7
+ <% end %>
8
+
5
9
  <%= render :partial => 'spree/admin/shared/error_messages', :locals => { :target => @tax_rate } %>
6
10
 
7
11
  <%= form_for [:admin, @tax_rate] do |f| %>