spree_core 1.1.1 → 1.1.2.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. data/app/assets/javascripts/admin/admin.js.erb +55 -13
  2. data/app/assets/javascripts/admin/checkouts/edit.js +1 -1
  3. data/app/assets/javascripts/admin/image_settings.js +2 -2
  4. data/app/assets/javascripts/admin/orders/edit.js +1 -1
  5. data/app/assets/javascripts/admin/orders/edit_form.js +1 -1
  6. data/app/assets/javascripts/admin/spree.routes.js.erb +30 -0
  7. data/app/assets/javascripts/admin/taxonomy.js +1 -1
  8. data/app/assets/javascripts/store/cart.js +1 -1
  9. data/app/assets/javascripts/store/product.js +3 -3
  10. data/app/assets/stylesheets/admin/admin.css.erb +3 -1
  11. data/app/assets/stylesheets/store/screen.css.scss +18 -66
  12. data/app/assets/stylesheets/store/variables.css.scss +58 -0
  13. data/app/controllers/spree/admin/configurations_controller.rb +1 -1
  14. data/app/controllers/spree/admin/general_settings_controller.rb +1 -1
  15. data/app/controllers/spree/admin/image_settings_controller.rb +1 -1
  16. data/app/controllers/spree/admin/inventory_settings_controller.rb +1 -1
  17. data/app/controllers/spree/admin/inventory_units_controller.rb +1 -1
  18. data/app/controllers/spree/admin/line_items_controller.rb +4 -3
  19. data/app/controllers/spree/admin/mail_settings_controller.rb +1 -1
  20. data/app/controllers/spree/admin/option_types_controller.rb +16 -0
  21. data/app/controllers/spree/admin/orders/customer_details_controller.rb +4 -3
  22. data/app/controllers/spree/admin/orders_controller.rb +5 -3
  23. data/app/controllers/spree/admin/overview_controller.rb +1 -1
  24. data/app/controllers/spree/admin/payments_controller.rb +1 -1
  25. data/app/controllers/spree/admin/product_properties_controller.rb +5 -0
  26. data/app/controllers/spree/admin/products_controller.rb +3 -3
  27. data/app/controllers/spree/admin/reports_controller.rb +3 -3
  28. data/app/controllers/spree/admin/shipments_controller.rb +30 -32
  29. data/app/controllers/spree/admin/shipping_methods_controller.rb +11 -0
  30. data/app/controllers/spree/admin/tax_settings_controller.rb +1 -1
  31. data/app/controllers/spree/admin/taxons_controller.rb +1 -1
  32. data/app/controllers/spree/admin/users_controller.rb +1 -1
  33. data/app/controllers/spree/admin/zones_controller.rb +2 -2
  34. data/app/helpers/spree/admin/base_helper.rb +2 -7
  35. data/app/helpers/spree/admin/navigation_helper.rb +6 -45
  36. data/app/helpers/spree/products_helper.rb +1 -1
  37. data/app/models/spree/address.rb +3 -3
  38. data/app/models/spree/app_configuration.rb +1 -0
  39. data/app/models/spree/calculator/default_tax.rb +2 -0
  40. data/app/models/spree/calculator/flat_percent_item_total.rb +2 -0
  41. data/app/models/spree/calculator/flat_rate.rb +2 -0
  42. data/app/models/spree/calculator/flexi_rate.rb +2 -0
  43. data/app/models/spree/calculator/per_item.rb +20 -4
  44. data/app/models/spree/calculator/price_sack.rb +2 -0
  45. data/app/models/spree/country.rb +3 -3
  46. data/app/models/spree/creditcard.rb +1 -1
  47. data/app/models/spree/image.rb +1 -0
  48. data/app/models/spree/inventory_unit.rb +7 -5
  49. data/app/models/spree/line_item.rb +3 -3
  50. data/app/models/spree/option_type.rb +3 -3
  51. data/app/models/spree/option_value.rb +2 -2
  52. data/app/models/spree/order.rb +39 -15
  53. data/app/models/spree/payment.rb +2 -2
  54. data/app/models/spree/payment/processing.rb +13 -4
  55. data/app/models/spree/preference.rb +10 -9
  56. data/app/models/spree/product.rb +4 -11
  57. data/app/models/spree/product/scopes.rb +39 -34
  58. data/app/models/spree/product_option_type.rb +2 -2
  59. data/app/models/spree/product_property.rb +2 -2
  60. data/app/models/spree/return_authorization.rb +1 -1
  61. data/app/models/spree/shipment.rb +5 -5
  62. data/app/models/spree/shipping_method.rb +3 -2
  63. data/app/models/spree/state.rb +1 -1
  64. data/app/models/spree/state_change.rb +1 -1
  65. data/app/models/spree/tax_rate.rb +7 -3
  66. data/app/models/spree/taxon.rb +1 -1
  67. data/app/models/spree/user.rb +2 -2
  68. data/app/models/spree/variant.rb +8 -1
  69. data/app/models/spree/zone_member.rb +1 -1
  70. data/app/views/spree/admin/adjustments/_adjustments_table.html.erb +1 -1
  71. data/app/views/spree/admin/line_items/destroy.js.erb +1 -0
  72. data/app/views/spree/admin/mail_methods/_form.html.erb +1 -1
  73. data/app/views/spree/admin/option_types/_option_value_fields.html.erb +2 -2
  74. data/app/views/spree/admin/option_types/edit.html.erb +2 -2
  75. data/app/views/spree/admin/orders/_line_item.html.erb +1 -4
  76. data/app/views/spree/admin/payment_methods/_form.html.erb +1 -1
  77. data/app/views/spree/admin/payments/source_forms/_gateway.html.erb +3 -3
  78. data/app/views/spree/admin/product_properties/index.html.erb +1 -4
  79. data/app/views/spree/admin/trackers/_form.html.erb +1 -1
  80. data/app/views/spree/checkout/_address.html.erb +16 -16
  81. data/app/views/spree/checkout/edit.html.erb +1 -1
  82. data/app/views/spree/checkout/payment/_gateway.html.erb +3 -3
  83. data/app/views/spree/layouts/spree_application.html.erb +1 -1
  84. data/app/views/spree/order_mailer/cancel_email.text.erb +4 -4
  85. data/app/views/spree/order_mailer/confirm_email.text.erb +1 -1
  86. data/app/views/spree/orders/_form.html.erb +5 -5
  87. data/app/views/spree/orders/_line_item.html.erb +7 -7
  88. data/app/views/spree/orders/edit.html.erb +14 -12
  89. data/app/views/spree/products/_taxons.html.erb +1 -1
  90. data/app/views/spree/shared/_filters.html.erb +1 -1
  91. data/app/views/spree/shared/_products.html.erb +5 -5
  92. data/config/routes.rb +4 -4
  93. data/db/migrate/20120523061241_convert_sales_tax_to_default_tax.rb +9 -0
  94. data/db/migrate/20120604030249_add_deleted_at_to_spree_shipping_methods.rb +5 -0
  95. data/db/migrate/20120605211305_make_users_email_index_unique.rb +10 -0
  96. data/lib/generators/spree/dummy/templates/rails/application.rb +1 -1
  97. data/lib/spree/core/current_order.rb +2 -1
  98. data/lib/spree/core/engine.rb +11 -7
  99. data/lib/spree/core/relation_serialization.rb +9 -0
  100. data/lib/spree/core/respond_with.rb +1 -1
  101. data/lib/spree/core/search/base.rb +2 -16
  102. data/lib/spree/core/ssl_requirement.rb +2 -2
  103. data/lib/spree/core/testing_support/controller_requests.rb +6 -0
  104. data/lib/spree/core/version.rb +1 -1
  105. data/lib/spree/product_filters.rb +34 -23
  106. metadata +43 -42
@@ -60,8 +60,10 @@ format_product_autocomplete = function(item){
60
60
  }
61
61
 
62
62
  html += "<div><h4>" + product['name'] + "</h4>";
63
- html += "<span><strong>Sku: </strong>" + product['master']['sku'] + "</span>";
64
- html += "<span><strong>On Hand: </strong>" + product['count_on_hand'] + "</span></div>";
63
+ if (product['master']) {
64
+ html += "<span><strong><%= ::I18n.t(:sku) %>: </strong>" + product['master']['sku'] + "</span>";
65
+ }
66
+ html += "<span><strong><%= ::I18n.t(:on_hand) %>: </strong>" + product['count_on_hand'] + "</span></div>";
65
67
  }else{
66
68
  // variant
67
69
  var variant = item.data['variant'];
@@ -76,12 +78,12 @@ format_product_autocomplete = function(item){
76
78
  }
77
79
 
78
80
  name += " - " + $.map(variant['option_values'], function(option_value){
79
- return option_value["option_type"]["presentation"] + ": " + option_value['name'];
81
+ return option_value["option_type"]["presentation"] + ": " + option_value['presentation'];
80
82
  }).join(", ")
81
83
 
82
84
  html += "<div><h4>" + name + "</h4>";
83
- html += "<span><strong>Sku: </strong>" + variant['sku'] + "</span>";
84
- html += "<span><strong>On Hand: </strong>" + variant['count_on_hand'] + "</span></div>";
85
+ html += "<span><strong><%= ::I18n.t(:sku) %>: </strong>" + variant['sku'] + "</span>";
86
+ html += "<span><strong><%= ::I18n.t(:on_hand) %>: </strong>" + variant['count_on_hand'] + "</span></div>";
85
87
  }
86
88
 
87
89
  return html
@@ -98,7 +100,7 @@ prep_product_autocomplete_data = function(data){
98
100
 
99
101
  var name = product['name'];
100
102
  name += " - " + $.map(variant['option_values'], function(option_value){
101
- return option_value["option_type"]["presentation"] + ": " + option_value['name'];
103
+ return option_value["option_type"]["presentation"] + ": " + option_value['presentation'];
102
104
  }).join(", ");
103
105
 
104
106
  return {
@@ -121,7 +123,7 @@ $.fn.product_autocomplete = function(){
121
123
  return this.each(function() {
122
124
  $(this).autocomplete({
123
125
  source: function(request, response) {
124
- $.get(ajax_root_prefix() + "admin/products.json?q=" + $('#add_product_name').val() + "&authenticity_token=" + encodeURIComponent($('meta[name=csrf-token]').attr("content")), function(data) {
126
+ $.get(Spree.routes.admin_products_path({format: 'json'}) + "?q=" + $('#add_product_name').val() + "&authenticity_token=" + encodeURIComponent($('meta[name=csrf-token]').attr("content")), function(data) {
125
127
  result = prep_product_autocomplete_data(data)
126
128
  response(result);
127
129
  });
@@ -183,13 +185,13 @@ add_fields = function(target, association, content) {
183
185
  $(target).append(content.replace(regexp, new_id));
184
186
  }
185
187
 
186
- $('a.remove_fields').live('click', function() {
188
+ $('a.remove_fields').on('click', function() {
187
189
  $(this).prev("input[type=hidden]").val("1");
188
190
  $(this).closest(".fields").hide();
189
191
  return false;
190
192
  });
191
193
 
192
- $(".observe_field").live('change', function() {
194
+ $(".observe_field").on('change', function() {
193
195
  target = $(this).attr("data-update");
194
196
  ajax_indicator = $(this).attr("data-ajax-indicator") || '#busy_indicator';
195
197
  $(target).hide();
@@ -208,9 +210,9 @@ $(".observe_field").live('change', function() {
208
210
  handle_date_picker_fields = function(){
209
211
  $('.datepicker').datepicker({
210
212
  dateFormat: "<%= ::I18n.t(:format, :scope => 'spree.date_picker', :default => 'yy/mm/dd') %>",
211
- dayNames: ["<%= ::I18n.t(:day_names, :scope => :date).join('","') %>"],
212
- dayNamesMin: ["<%= ::I18n.t(:abbr_day_names, :scope => :date).join('","') %>"],
213
- monthNames: ["<%= ::I18n.t(:month_names, :scope => :date).join('","') %>"],
213
+ dayNames: <%= ::I18n.t(:day_names, :scope => :date).to_json %>,
214
+ dayNamesMin: <%= ::I18n.t(:abbr_day_names, :scope => :date).to_json %>,
215
+ monthNames: <%= (::I18n.t(:month_names, :scope => :date).delete_if(&:blank?)).to_json %>,
214
216
  prevText: '<%= ::I18n.t(:previous) %>',
215
217
  nextText: '<%= ::I18n.t(:next) %>',
216
218
  showOn: "button",
@@ -220,13 +222,53 @@ handle_date_picker_fields = function(){
220
222
  }
221
223
 
222
224
  $(document).ready(function(){
225
+ $('.add_fields').click(function() {
226
+ var target = $(this).data("target");
227
+ var new_table_row = $(target + ' tr:visible:last').clone();
228
+ var new_id = new Date().getTime();
229
+ new_table_row.find("input").each(function () {
230
+ var el = $(this);
231
+ el.val("");
232
+ el.attr("id", el.attr("id").replace(/\d+/, new_id))
233
+ el.attr("name", el.attr("name").replace(/\d+/, new_id))
234
+ })
235
+ $(target).append(new_table_row);
236
+ })
237
+
238
+ $('body').on('click', '.delete-resource', function() {
239
+ var el = $(this);
240
+ if (confirm(el.data("confirm"))) {
241
+ $.ajax({
242
+ type: 'POST',
243
+ url: $(this).attr("href"),
244
+ data: {
245
+ _method: 'delete',
246
+ authenticity_token: AUTH_TOKEN
247
+ },
248
+ dataType: 'script',
249
+ success: function(response) {
250
+ el.parents("tr").fadeOut('hide');
251
+ },
252
+ error: function(response, textStatus, errorThrown) {
253
+ show_flash_error(response.responseText);
254
+ }
255
+ });
256
+ }
257
+ return false;
258
+ });
259
+
260
+ $('body').on('click', 'a.remove_fields', function() {
261
+ $(this).prev("input[type=hidden]").val("1");
262
+ $(this).closest(".fields").hide();
263
+ return false;
264
+ });
223
265
 
224
266
  $('.tokeninput.products').productPicker();
225
267
  $('.tokeninput.users').userPicker();
226
268
 
227
269
  handle_date_picker_fields();
228
270
 
229
- $(".select_properties_from_prototype").live("click", function(){
271
+ $(".select_properties_from_prototype").on("click", function(){
230
272
  $("#busy_indicator").show();
231
273
  var clicked_link = $(this);
232
274
  $.ajax({ dataType: 'script', url: clicked_link.attr("href"), type: 'get',
@@ -46,7 +46,7 @@ $(document).ready(function(){
46
46
  minChars: 5,
47
47
  delay: 1500,
48
48
  source: function(request, response) {
49
- $.get(ajax_root_prefix() + "admin/users.json?q=" + $("#customer_search").val() + "&authenticity_token=" + encodeURIComponent($('meta[name=csrf-token]').attr("content")), function(data) {
49
+ $.get(Spree.routes.admin_users_path({format: 'json'}) + "?q=" + $("#customer_search").val() + "&authenticity_token=" + encodeURIComponent($('meta[name=csrf-token]').attr("content")), function(data) {
50
50
  result = prep_user_autocomplete_data(data)
51
51
  response(result);
52
52
  });
@@ -8,11 +8,11 @@ $(document).ready(function() {
8
8
  $('#s3_settings').toggle();
9
9
  });
10
10
 
11
- $('.destroy_style').live("click", function() {
11
+ $('.destroy_style').on("click", function() {
12
12
  $(this).parent().remove();
13
13
  });
14
14
 
15
- $('.destroy_header').live("click", function() {
15
+ $('.destroy_header').on("click", function() {
16
16
  $(this).parent().remove();
17
17
  });
18
18
 
@@ -1,6 +1,6 @@
1
1
  $(document).ready(function(){
2
2
 
3
- $("#add_line_item_to_order").live("click", function(){
3
+ $("#add_line_item_to_order").on("click", function(){
4
4
  if($('#add_variant_id').val() == ''){ return false; }
5
5
  update_target = $(this).attr("data-update");
6
6
  $.ajax({ dataType: 'script', url: this.href, type: "POST",
@@ -1,7 +1,7 @@
1
1
  $(document).ready(function() {
2
2
  $.each($('td.qty input'), function(i, input) {
3
3
 
4
- $(input).live('change', function() {
4
+ $(input).on('change', function() {
5
5
 
6
6
  var id = "#" + $(this).attr('id').replace("_quantity", "_id");
7
7
  console.log($(this))
@@ -0,0 +1,30 @@
1
+ // This object provides dynamically generated Rails routes in Javascript.
2
+ // Since Rails does not provide url_helpers in js.erb files, we have to use this little neat hack.
3
+ // Found via https://github.com/magiclabs/alchemy_cms
4
+
5
+ <% self.class.instance_eval { include Spree::Core::Engine.routes.url_helpers } %>
6
+
7
+ if (typeof(Spree) === 'undefined') {
8
+ var Spree = {};
9
+ }
10
+
11
+ (function($) {
12
+
13
+ var routes = {};
14
+ $.extend(Spree, routes);
15
+
16
+ Spree.routes = {
17
+
18
+ admin_users_path: function(options) {
19
+ if (typeof(options) === 'undefined') options = {format: 'html'};
20
+ return '<%= admin_users_path %>' + '.' + options.format;
21
+ },
22
+
23
+ admin_products_path: function(options) {
24
+ if (typeof(options) === 'undefined') options = {format: 'html'};
25
+ return '<%= admin_products_path %>' + '.' + options.format;
26
+ }
27
+
28
+ }
29
+
30
+ })(jQuery);
@@ -190,7 +190,7 @@ $(document).ready(function(){
190
190
  .bind("create.jstree", handle_create)
191
191
  .bind("rename.jstree", handle_rename);
192
192
 
193
- $("#taxonomy_tree").delegate("a", "dblclick", function (e) {
193
+ $("#taxonomy_tree a").on("dblclick", function (e) {
194
194
  $("#taxonomy_tree").jstree("rename", this)
195
195
  });
196
196
 
@@ -1,7 +1,7 @@
1
1
  (function($){
2
2
  $(document).ready(function(){
3
3
  if($('form#update-cart').is('*')){
4
- $('form#update-cart a.delete').show().live('click', function(e){
4
+ $('form#update-cart a.delete').show().on('click', function(e){
5
5
  $(this).parents('.line-item').first().find('input.line_item_quantity').val(0);
6
6
  $(this).parents('form').first().submit();
7
7
  e.preventDefault();
@@ -2,7 +2,7 @@ var add_image_handlers = function() {
2
2
  $("#main-image").data('selectedThumb', $('#main-image img').attr('src'));
3
3
  $('ul.thumbnails li').eq(0).addClass('selected');
4
4
 
5
- $('ul.thumbnails').delegate('a', 'click', function(event) {
5
+ $('ul.thumbnails a').on('click', function(event) {
6
6
  $("#main-image").data('selectedThumb', $(event.currentTarget).attr('href'));
7
7
  $("#main-image").data('selectedThumbId', $(event.currentTarget).parent().attr('id'));
8
8
  $(this).mouseout(function() {
@@ -11,10 +11,10 @@ var add_image_handlers = function() {
11
11
  });
12
12
  return false;
13
13
  });
14
- $('ul.thumbnails').delegate('li', 'mouseenter', function(event) {
14
+ $('ul.thumbnails li').on('mouseenter', function(event) {
15
15
  $('#main-image img').attr('src', $(event.currentTarget).find('a').attr('href'));
16
16
  });
17
- $('ul.thumbnails').delegate('li', 'mouseleave', function(event) {
17
+ $('ul.thumbnails li').on('mouseleave', function(event) {
18
18
  $('#main-image img').attr('src', $("#main-image").data('selectedThumb'));
19
19
  });
20
20
  };
@@ -566,7 +566,9 @@ span.handle{
566
566
  border: 1px solid #000;
567
567
  }
568
568
 
569
- .ac_results li h4 { width: 100% }
569
+ .ac_results li div { max-width: 90%; }
570
+
571
+ .ac_results li h4 { width: 100%; }
570
572
 
571
573
  .ac_results li:last-child { border: none; }
572
574
 
@@ -1,60 +1,4 @@
1
- /*--------------------------------------*/
2
- /* Colors
3
- /*--------------------------------------*/
4
- $c_green: #8dba53; /* Spree green */
5
- $c_red: #e45353; /* Error red */
6
-
7
- $layout_background_color: #FFFFFF;
8
- $title_text_color: #404042;
9
- $body_text_color: #404042;
10
- $link_text_color: #00ADEE;
11
-
12
- $product_background_color: #FFFFFF;
13
- $product_title_text_color: #404042;
14
- $product_body_text_color: #404042;
15
- $product_link_text_color: #BBBBBB;
16
-
17
- /*--------------------------------------*/
18
- /* Fonts import from remote
19
- /*--------------------------------------*/
20
- @import url(//fonts.googleapis.com/css?family=Ubuntu:400,700,400italic,700italic|&subset=latin,cyrillic,greek,greek-ext,latin-ext,cyrillic-ext);
21
-
22
- /*--------------------------------------*/
23
- /* Font families
24
- /*--------------------------------------*/
25
- $ff_base: 'Ubuntu', sans-serif;
26
-
27
- /*--------------------------------------
28
- | Font sizes
29
- |--------------------------------------
30
- |- Navigation
31
- | */
32
- $header_navigation_font_size: 14px;
33
- $horizontal_navigation_font_size: 16px;
34
- $main_navigation_header_font_size: 14px;
35
- $main_navigation_font_size: 12px;
36
- /*|------------------------------------
37
- |- Product Listing
38
- | */
39
- $product_list_name_font_size: 12px;
40
- $product_list_price_font_size: 16px;
41
- $product_list_header_font_size: 20px;
42
- $product_list_search_font_size: 14px;
43
- /*|------------------------------------
44
- |- Product Details
45
- | */
46
- $product_detail_name_font_size: 24px;
47
- $product_detail_description_font_size: 12px;
48
- $product_detail_price_font_size: 20px;
49
- $product_detail_title_font_size: 14px;
50
- /*|------------------------------------
51
- |- Basic
52
- | */
53
- $heading_font_size: 24px;
54
- $sub_heading_font_size: 14px;
55
- $button_font_size: 12px;
56
- $input_box_font_size: 13px;
57
- $base_font_size: 12px;
1
+ @import "store/variables";
58
2
 
59
3
  /*--------------------------------------*/
60
4
  /* Basic styles
@@ -98,10 +42,6 @@ mark {background-color: $link_text_color; color: $layout_background_color; font-
98
42
  /* Lists
99
43
  /*--------------------------------------*/
100
44
  ul, ol {
101
- li {
102
-
103
- }
104
-
105
45
  &.inline {
106
46
  li {
107
47
  display: inline-block;
@@ -190,16 +130,22 @@ mark {background-color: $link_text_color; color: $layout_background_color; font-
190
130
  margin-top: 3px;
191
131
  }
192
132
 
133
+ span.required {
134
+ color: $c_red;
135
+ font-weight: bold;
136
+ font-size: 1.2em;
137
+ }
138
+
193
139
  input[type="submit"], input[type="button"],
194
140
  input[type= "reset"], button, a.button {
195
- background-color: $link_text_color;;
141
+ background-color: $link_text_color;
196
142
  background-image: none;
197
143
  text-shadow: none;
198
144
  color: $layout_background_color;
199
145
  font-weight: bold;
200
146
  font-size: $button_font_size;
201
147
  font-family: $ff_base;
202
- border: 1px solid rgba(0, 138, 189, .75);
148
+ border: 1px solid $button_border_color;
203
149
  -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,0.4);
204
150
  -khtml-box-shadow: inset 0 1px 0 rgba(255,255,255,0.4);
205
151
  -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,0.4);
@@ -218,6 +164,11 @@ mark {background-color: $link_text_color; color: $layout_background_color; font-
218
164
  font-size: $button_font_size + 2;
219
165
  }
220
166
 
167
+ &.gray {
168
+ background-color: lighten($body_text_color, 20);
169
+ border-color: lighten($body_text_color, 10);
170
+ }
171
+
221
172
  &:hover {
222
173
  background-image: none;
223
174
  background-color: $body_text_color;
@@ -558,7 +509,7 @@ mark {background-color: $link_text_color; color: $layout_background_color; font-
558
509
  margin-bottom: 15px;
559
510
  }
560
511
 
561
- span.category {
512
+ .filter-title {
562
513
  display: block;
563
514
  font-weight: bold;
564
515
  text-transform: uppercase;
@@ -846,6 +797,7 @@ mark {background-color: $link_text_color; color: $layout_background_color; font-
846
797
  div[data-hook="inside_cart_form"] {
847
798
  .links {
848
799
  margin-top: 15px;
800
+ text-align: right;
849
801
  }
850
802
 
851
803
  #subtotal {
@@ -860,8 +812,8 @@ mark {background-color: $link_text_color; color: $layout_background_color; font-
860
812
  }
861
813
 
862
814
  #empty-cart {
863
- margin-top: 15px;
864
- float: right;
815
+ margin-top: -75px !important;
816
+ float: left !important;
865
817
  }
866
818
 
867
819
  /*--------------------------------------*/
@@ -0,0 +1,58 @@
1
+ /*--------------------------------------*/
2
+ /* Colors
3
+ /*--------------------------------------*/
4
+ $c_green: #8dba53; /* Spree green */
5
+ $c_red: #e45353; /* Error red */
6
+
7
+ $layout_background_color: #FFFFFF;
8
+ $title_text_color: #404042;
9
+ $body_text_color: #404042;
10
+ $link_text_color: #00ADEE;
11
+
12
+ $product_background_color: #FFFFFF;
13
+ $product_title_text_color: #404042;
14
+ $product_body_text_color: #404042;
15
+ $product_link_text_color: #BBBBBB;
16
+
17
+ /*--------------------------------------*/
18
+ /* Fonts import from remote
19
+ /*--------------------------------------*/
20
+ @import url(//fonts.googleapis.com/css?family=Ubuntu:400,700,400italic,700italic|&subset=latin,cyrillic,greek,greek-ext,latin-ext,cyrillic-ext);
21
+
22
+ /*--------------------------------------*/
23
+ /* Font families
24
+ /*--------------------------------------*/
25
+ $ff_base: 'Ubuntu', sans-serif;
26
+
27
+ /*--------------------------------------
28
+ | Font sizes
29
+ |--------------------------------------
30
+ |- Navigation
31
+ | */
32
+ $header_navigation_font_size: 14px;
33
+ $horizontal_navigation_font_size: 16px;
34
+ $main_navigation_header_font_size: 14px;
35
+ $main_navigation_font_size: 12px;
36
+ /*|------------------------------------
37
+ |- Product Listing
38
+ | */
39
+ $product_list_name_font_size: 12px;
40
+ $product_list_price_font_size: 16px;
41
+ $product_list_header_font_size: 20px;
42
+ $product_list_search_font_size: 14px;
43
+ /*|------------------------------------
44
+ |- Product Details
45
+ | */
46
+ $product_detail_name_font_size: 24px;
47
+ $product_detail_description_font_size: 12px;
48
+ $product_detail_price_font_size: 20px;
49
+ $product_detail_title_font_size: 14px;
50
+ /*|------------------------------------
51
+ |- Basic
52
+ | */
53
+ $heading_font_size: 24px;
54
+ $sub_heading_font_size: 14px;
55
+ $button_font_size: 12px;
56
+ $input_box_font_size: 13px;
57
+ $base_font_size: 12px;
58
+ $button_border_color: rgba(0, 138, 189, .75);