c80_yax 0.1.0.20 → 0.1.0.21

Sign up to get free protection for your applications and to get access to all the features.
Files changed (26) hide show
  1. checksums.yaml +4 -4
  2. data/app/admin/c80_yax/items.rb +3 -0
  3. data/app/assets/images/c80_yax/item_hit.png +0 -0
  4. data/app/assets/javascripts/c80_yax/frontend/item_options/item_options.js +2 -2
  5. data/app/assets/javascripts/c80_yax/frontend/item_quantity_picker/item_quantity_picker.js +3 -3
  6. data/app/assets/javascripts/c80_yax/frontend/more_items_list/more_items_list.js +19 -8
  7. data/app/assets/stylesheets/c80_yax/elems/item_is_hit.scss +13 -0
  8. data/app/controllers/c80_yax/ajax_controller.rb +19 -1
  9. data/app/decorators/c80_yax/item_decorator.rb +6 -4
  10. data/app/views/c80_yax/ajax/fetch_items.js.erb +5 -1
  11. data/app/views/c80_yax/items/_index.html.erb +7 -1
  12. data/engines/co/app/assets/javascripts/co/_service/co_modal.js +1 -1
  13. data/engines/co/app/assets/javascripts/co/_service/cookies_service.js +2 -2
  14. data/engines/co/app/assets/javascripts/co/add_to_cart/button_add_to_cart.js +1 -1
  15. data/engines/co/app/assets/javascripts/co/add_to_cart/service/collect_data_for_row.js +1 -1
  16. data/engines/co/app/assets/javascripts/co/add_to_cart_sm/actions/add_row_to_cart_sm.js +2 -2
  17. data/engines/co/app/assets/javascripts/co/add_to_cart_sm/button_add_to_cart_sm.js +1 -1
  18. data/engines/co/app/assets/javascripts/co/add_to_cart_sm/service/collect_data_for_row_sm.js +1 -1
  19. data/engines/co/app/assets/javascripts/co/cart_page/cart_page.js +8 -4
  20. data/engines/co/app/assets/javascripts/co/cart_page/cart_table.js +1 -1
  21. data/engines/co/app/assets/javascripts/co/goto_cart/button_goto_cart.js +2 -2
  22. data/engines/co/app/assets/stylesheets/co/cart_page/form.scss +1 -15
  23. data/engines/co/app/views/co/cart/message_cart_order.js.erb +1 -0
  24. data/lib/c80_yax/strsubcat_runtime_tables.rb +6 -1
  25. data/lib/c80_yax/version.rb +1 -1
  26. metadata +4 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 041fbacb1e43b64b2db9667790ad9d1779569333
4
- data.tar.gz: f7995f6e3f18f0aa3e869818c99eae75ced5622c
3
+ metadata.gz: 37eb797db8500530c0fd5a0644f572fd1de2b711
4
+ data.tar.gz: 1332ff3cbba382552944f55c351ff3c020b613de
5
5
  SHA512:
6
- metadata.gz: 1668b05f1292d286d96dcc12ebf445bdbc503bb92fcdcbd215e7ec0296f91ba7101d1aadacff6d9dca1aa1258e54f2724716f8090fcafdb72c47623ba16981f9
7
- data.tar.gz: 57a9bb1ac7b5053fe9f796ef4a0225c4ee2c69fd8b9473b6aaecd946b06c627e9bbf9f1ae32e8fafb75289e48e9931b5ffb6d24fdca5e09df77677bacd8f7ad4
6
+ metadata.gz: 53dc2c10ae24ba09973c66ee990e7f403a6da0b049ee6bb34b680ed09ec29afe5b6a1897c95b7dcb0612a9ce59bb07477a9de4561d609d6ea39dcb5e97fe8d85
7
+ data.tar.gz: '0063757595dfec78bfe6a533d4e779d2069d469846ba27108b64c2745bbc5df965fc606defd88fb3fa8477fd652368a70598dd0392b0d5fde6188731a7631be2'
@@ -14,6 +14,7 @@ ActiveAdmin.register C80Yax::Item, as: 'Item' do
14
14
  :is_main,
15
15
  :is_gift,
16
16
  :is_starting,
17
+ :is_ask_price,
17
18
  :is_available,
18
19
  :strsubcat_id,
19
20
  :iphotos_attributes => [:id, :image, :_destroy],
@@ -44,6 +45,7 @@ ActiveAdmin.register C80Yax::Item, as: 'Item' do
44
45
 
45
46
  column :title
46
47
  column :strsubcat
48
+ column :is_ask_price
47
49
  column :is_hit
48
50
  column :is_sale
49
51
  column :is_main
@@ -81,6 +83,7 @@ ActiveAdmin.register C80Yax::Item, as: 'Item' do
81
83
  f.input :is_sale
82
84
  f.input :is_main
83
85
  f.input :is_gift
86
+ f.input :is_ask_price
84
87
  f.input :is_starting
85
88
  f.input :is_available
86
89
 
@@ -18,9 +18,9 @@ var ItemOptions = function (wrapper){
18
18
  var $inp = $t.find('input');
19
19
  var val = $inp[0].checked;
20
20
  _cur_val[tag] = val;
21
- console.log('<_fCollectOptions> val = ' + val + ": " + tag);
21
+ // console.log('<_fCollectOptions> val = ' + val + ": " + tag);
22
22
  });
23
- console.log(_cur_val);
23
+ // console.log(_cur_val);
24
24
  }
25
25
 
26
26
  var _fInitBehaviour = function (){
@@ -38,14 +38,14 @@ var ItemQuantityPicker = function (wrapper){
38
38
  };
39
39
 
40
40
  var _onClickLess = function(e) {
41
- console.log('<_onClickLess>');
41
+ // console.log('<_onClickLess>');
42
42
  _set_cur_val(_cur_val - 1);
43
43
  _afterClick();
44
44
  e.preventDefault();
45
45
  };
46
46
 
47
47
  var _onClickGreat = function(e) {
48
- console.log('<_onClickGreat>');
48
+ // console.log('<_onClickGreat>');
49
49
  _set_cur_val(Number(_cur_val) + 1);
50
50
  _afterClick();
51
51
  e.preventDefault();
@@ -56,7 +56,7 @@ var ItemQuantityPicker = function (wrapper){
56
56
  };
57
57
 
58
58
  var _onChangeInput = function(e) {
59
- console.log('<_onChangeInput>');
59
+ // console.log('<_onChangeInput>');
60
60
  };
61
61
 
62
62
  var _fInitBehaviour = function (){
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  /*
4
- * <div class="container-fluid hits_widget more_items_list" data-type='hit|offer'>
4
+ * <div class="container-fluid hits_widget more_items_list" data-type='hit|offer|cat|strsubcat' data-slug="cat_slug|strsubcat_slug">
5
5
  * <div class="container">
6
6
  * <h2 class="yield_h2">Хиты продаж</h2>
7
7
  * <div class="ajax_div">
@@ -64,18 +64,29 @@ var MoreItemsList = function (wrapper) {
64
64
  e.preventDefault();
65
65
  var $t = $(e.target);
66
66
  var t = _$wrapper.data('type');
67
+ var slug = _$wrapper.data('slug');
67
68
  var p = $t.attr('href').split('page=')[1];
68
- console.log('<_fOnClickNext> type: ' + t + '; page: ' + p);
69
+ p = p.split('&')[0];
70
+ // /fetch_items?_=1500959360965&ajax_items_div=.container-fluid.more_items_list+.ajax_div&page=3&per_page=16&slug=bezopasnost-krovli&type=cat
71
+ // console.log('<_fOnClickNext> type: ' + t + '; page: ' + p);
72
+
73
+ var dat = {
74
+ type: t,
75
+ page: p,
76
+ slug: slug,
77
+ ajax_items_div: "." + _$wrapper.attr('class').split(' ').join('.') + " .ajax_div"
78
+ };
79
+
80
+ //noinspection EqualityComparisonWithCoercionJS
81
+ if (_$wrapper.data('per_page') != undefined) {
82
+ dat['per_page'] = _$wrapper.data('per_page');
83
+ }
69
84
 
70
85
  loading.show($t);
71
86
 
72
87
  $.ajax({
73
88
  url: "/fetch_items",
74
- data: {
75
- type: t,
76
- page: p,
77
- ajax_items_div: "." + _$wrapper.attr('class').split(' ').join('.') + " .ajax_div"
78
- },
89
+ data: dat,
79
90
  dataType: "script",
80
91
  type: 'GET'
81
92
  }).done(function() {
@@ -88,7 +99,7 @@ var MoreItemsList = function (wrapper) {
88
99
 
89
100
  // находим в нем next кнопку will paginate
90
101
  _$next_btn = _$wrapper.find('a.next_page');
91
- console.log('<_fSetNextPageBehaviour> ');
102
+ // console.log('<_fSetNextPageBehaviour> ');
92
103
 
93
104
  if (_$next_btn.data('processed')) {
94
105
 
@@ -0,0 +1,13 @@
1
+ .is_hit_true {
2
+ position: relative;
3
+ &:after {
4
+ content: ' ';
5
+ display: block;
6
+ position: absolute;
7
+ top: 0;
8
+ right: 30px;
9
+ width: 40px;
10
+ height: 100px;
11
+ background: transparent image_url('c80_yax/item_hit.png') no-repeat 0 0;
12
+ }
13
+ }
@@ -3,7 +3,13 @@ module C80Yax
3
3
 
4
4
  def fetch_items
5
5
 
6
- @params = _make_params # params: {type:'hit', ajax_items: '.div_hot_items .ajax_items', page: 1, per_page: 4}
6
+ @params = _make_params
7
+ # params: {
8
+ # type:'hit',
9
+ # ajax_items: '.div_hot_items .ajax_items',
10
+ # page: 1,
11
+ # per_page: 4
12
+ # slug: ...
7
13
 
8
14
  case @params[:type]
9
15
  when 'hit'
@@ -18,6 +24,18 @@ module C80Yax
18
24
  .includes(:iphotos)
19
25
  .includes(:strsubcat)
20
26
  .paginate(page: @params[:page], per_page: @params[:per_page])
27
+ when 'cat'
28
+ @itms = C80Yax::Item.includes(item_props: {prop_name: [:uom, :related]})
29
+ .includes(:iphotos)
30
+ .includes(strsubcat: :cats)
31
+ .where(c80_yax_cats: {slug: params[:slug] })
32
+ .paginate(page: @params[:page], per_page: @params[:per_page])
33
+ when 'strsubcat'
34
+ @itms = C80Yax::Item.includes(item_props: {prop_name: [:uom, :related]})
35
+ .includes(:iphotos)
36
+ .includes(:strsubcat)
37
+ .where(c80_yax_strsubcats: {slug: params[:slug] })
38
+ .paginate(page: @params[:page], per_page: @params[:per_page])
21
39
  end
22
40
 
23
41
  @items = ItemDecorator.decorate_collection(@itms)
@@ -110,10 +110,12 @@ module C80Yax
110
110
  end
111
111
 
112
112
  def btn_order
113
- h.link_to '',
114
- '#',
115
- class: "add_to_bucket_sm add_to_bucket_sm_#{model.id}",
116
- data: { id: model.id }
113
+ unless model.is_ask_price
114
+ h.link_to '',
115
+ '#',
116
+ class: "add_to_bucket_sm add_to_bucket_sm_#{model.id}",
117
+ data: {id: model.id}
118
+ end
117
119
  end
118
120
 
119
121
 
@@ -19,4 +19,8 @@ $cc.append($(html_str));
19
19
 
20
20
  _activate_more_items();
21
21
 
22
- fLazyStart();
22
+ fLazyStart();
23
+
24
+ if (typeof refinePriceDecorator != 'undefined') {
25
+ refinePriceDecorator.init();
26
+ }
@@ -1,6 +1,6 @@
1
1
  <ul class="item_index">
2
2
  <% items.each do |item| %>
3
- <li class="li_item i_<%= item.id%>"
3
+ <li class="li_item i_<%= item.id%> is_hit_<%=item.is_hit%>"
4
4
  data-item_url="<%= item.my_url %>"
5
5
  data-title="<%= item.title %>"
6
6
  data-image_url="<%= item.fetch_first_photo('thumb_md') %>">
@@ -18,3 +18,9 @@
18
18
  :next_label => '>',
19
19
  :inner_window => 3) unless without_paginator %>
20
20
  </div>
21
+
22
+ <script>
23
+ if (typeof refinePriceDecorator != 'undefined') {
24
+ refinePriceDecorator.init();
25
+ }
26
+ </script>
@@ -25,7 +25,7 @@ var CoModal = function() {
25
25
 
26
26
  // _double_modal.html.erb
27
27
  this.showDouble = function(message) {
28
- console.log('<showDouble> message: ' + message);
28
+ // console.log('<showDouble> message: ' + message);
29
29
  var $modal = _init_modal('double');
30
30
  $modal.find('.modal-body').text(message);
31
31
  $modal.find('.btn_close').on('click', function(e) {
@@ -76,7 +76,7 @@ var CookiesService = function() {
76
76
  }
77
77
 
78
78
  _create_cookie('cart3', cart, 256);
79
- console.log('<CookiesService.cart_push>');
79
+ // console.log('<CookiesService.cart_push>');
80
80
  };
81
81
 
82
82
  this.cart_get = function() {
@@ -113,7 +113,7 @@ var CookiesService = function() {
113
113
  row = cart[i];
114
114
  if (row['id'] !== row_id) continue;
115
115
  if (row['color'] !== color) continue;
116
- console.log('<cart_remove_row> id: ' + row_id + ", color: " + color);
116
+ // console.log('<cart_remove_row> id: ' + row_id + ", color: " + color);
117
117
  cart.splice(i,1);
118
118
  _create_cookie('cart3', cart, 256);
119
119
  return true;
@@ -6,7 +6,7 @@ var ButtonAddToCart = function(selector) {
6
6
  var _item_id;
7
7
 
8
8
  var _onClickBtn = function(e) {
9
- console.log('<_onClickBtn>');
9
+ // console.log('<_onClickBtn>');
10
10
  e.preventDefault();
11
11
  var c = new AddRowToCart(_item_id).call();
12
12
  if (c.result) {
@@ -3,7 +3,7 @@
3
3
 
4
4
  var CollectDataForRow = function(item_id) {
5
5
  this.call = function() {
6
- console.log("<CollectDataForRow.call> item_id = " + item_id);
6
+ // console.log("<CollectDataForRow.call> item_id = " + item_id);
7
7
 
8
8
  var $item_show = $('.item_show_'+item_id);
9
9
 
@@ -4,8 +4,8 @@
4
4
  var AddRowToCartSm = function(item_id) {
5
5
  this.call = function() {
6
6
  var row_as_hash = new CollectDataForRowSm(item_id).call();
7
- console.log("<AddRowToCartSm.call> row_as_hash: " + row_as_hash);
8
- console.log(row_as_hash);
7
+ // console.log("<AddRowToCartSm.call> row_as_hash: " + row_as_hash);
8
+ // console.log(row_as_hash);
9
9
 
10
10
  coo.cart_push(row_as_hash);
11
11
 
@@ -6,7 +6,7 @@ var ButtonAddToCartSm = function(selector) {
6
6
  var _item_id;
7
7
 
8
8
  var _onClickBtn = function(e) {
9
- console.log('<_onClickBtn>');
9
+ // console.log('<_onClickBtn>');
10
10
  e.preventDefault();
11
11
  var c = new AddRowToCartSm(_item_id).call();
12
12
  if (c.result) {
@@ -3,7 +3,7 @@
3
3
 
4
4
  var CollectDataForRowSm = function(item_id) {
5
5
  this.call = function() {
6
- console.log("<CollectDataForRowSm.call> item_id = " + item_id);
6
+ // console.log("<CollectDataForRowSm.call> item_id = " + item_id);
7
7
 
8
8
  var $item_show = $('.li_item.i_'+item_id);
9
9
 
@@ -29,7 +29,7 @@ var CartPage = function($cart_page) {
29
29
  };
30
30
  var _print_table_to_comment = function() {
31
31
  var ss = _print_table();
32
- console.log(ss);
32
+ // console.log(ss);
33
33
  $cc.find('#mess_comment').val(ss);
34
34
  }
35
35
  var _calc_result_price = function() {
@@ -41,15 +41,18 @@ var CartPage = function($cart_page) {
41
41
  _$result_price_val.text(result);
42
42
  };
43
43
  var _on_click_clear = function(e) {
44
- e.preventDefault();
44
+ if (e != undefined) e.preventDefault();
45
45
  _cart_table.clear();
46
46
  coo.cart_clean();
47
47
  _calc_result_price();
48
48
  _print_table_to_comment();
49
49
  ButtonGotoCart.refresh_count();
50
50
  };
51
+ var _reset = function() {
52
+ _on_click_clear();
53
+ };
51
54
  var _on_row_changed = function(row_id, color, obj_with_new_values) {
52
- console.log('<_on_row_changed>');
55
+ // console.log('<_on_row_changed>');
53
56
  coo.cart_update_row(row_id, color, obj_with_new_values);
54
57
  _calc_result_price();
55
58
  _print_table_to_comment();
@@ -72,6 +75,7 @@ var CartPage = function($cart_page) {
72
75
  };
73
76
  _fInit($cart_page);
74
77
  return {
75
- print_table_to_comment: _print_table_to_comment
78
+ print_table_to_comment: _print_table_to_comment,
79
+ reset: _reset
76
80
  }
77
81
  };
@@ -40,7 +40,7 @@ var CartTable = function ($table, on_changd){
40
40
  _$tbody.append($row);
41
41
  $row.find('.del_action').on('click', _on_click_delete_row);
42
42
  _activate_q_picker(function(value_after_change) {
43
- console.log('<value_after_change> ' + value_after_change);
43
+ // console.log('<value_after_change> ' + value_after_change);
44
44
  var new_price = value_after_change * $row.data('price_per_item');
45
45
  $row.find('td.price').text(new_price);
46
46
  __on_changed($row.data('id'), $row.data('color'), {price: new_price, q:value_after_change });
@@ -19,7 +19,7 @@ var ButtonGotoCart = function(selector) {
19
19
  //</editor-fold>
20
20
 
21
21
  this.set_count = function(new_val) {
22
- console.log('<ButtonGotoCart#set_count>');
22
+ // console.log('<ButtonGotoCart#set_count>');
23
23
  _$counter.text(new_val);
24
24
  }
25
25
 
@@ -27,7 +27,7 @@ var ButtonGotoCart = function(selector) {
27
27
 
28
28
  ButtonGotoCart.instances = [];
29
29
  ButtonGotoCart.refresh_count = function() {
30
- console.log('<ButtonGotoCart.refresh_count>');
30
+ // console.log('<ButtonGotoCart.refresh_count>');
31
31
  var cart = coo.cart_get();
32
32
  var new_val = 0;
33
33
  for (var i = 0; i < cart.length; i++) {
@@ -71,20 +71,6 @@ div.card_row {
71
71
 
72
72
  .input_wrapper {
73
73
 
74
- position: relative;
75
-
76
- &:after {
77
- content: "";
78
- background: transparent url(image_path('stripe.png')) repeat 0 0; /*NOTE:: можно переопределить в custom классах */
79
- opacity: 0.1;
80
- top: 0;
81
- left: 0;
82
- bottom: 0;
83
- right: 0;
84
- position: absolute;
85
- z-index: 0;
86
- }
87
-
88
74
  .form-control {
89
75
  position: relative;
90
76
  z-index: 1;
@@ -126,7 +112,7 @@ div.card_row {
126
112
  margin-top: 15px;
127
113
 
128
114
  input.btn {
129
- @include color_button(#FFFFFF, $red);
115
+
130
116
  }
131
117
 
132
118
  }
@@ -1,4 +1,5 @@
1
1
  $('#cart_order_form').modal_success();
2
2
  setTimeout(function(){
3
3
  $('#modal_ok').modal("show");
4
+ aCartPage.reset();
4
5
  },400);
@@ -551,6 +551,11 @@ class StrsubcatRuntimeTables
551
551
  item_id = item_prop[3]
552
552
  is_ask_price = item_prop[14]
553
553
 
554
+ # пригодится, если is_ask_price.to_i == 1
555
+ # is_price = PropName.find(prop_name_id).is_normal_price # не подходит, т.к. нужна только "цена за шт"
556
+ is_price = Proc.new { |pid|
557
+ C80Yax::PropName.find(pid).is_normal_price
558
+ }.call(prop_name_id)
554
559
 
555
560
  # <editor-fold desc="# производим магические манипуляции с Производителем">
556
561
  # если это свойство "бренд" -
@@ -596,7 +601,7 @@ class StrsubcatRuntimeTables
596
601
 
597
602
  # кэшируем первый раз
598
603
  unless hash_sql[item_id].present?
599
- # Rails.logger.debug "\t new hash"
604
+ # Rails.logger.debug "\t new hash"
600
605
  hash_sql[item_id] = {
601
606
  prop_names_ids: %w'item_id item_title is_main is_hit is_sale strsubcat_id strsubcat_slug vendor_id full_desc image is_ask_price is_gift is_starting is_available',
602
607
  values: [item_id,item_prop[4],item_prop[5],item_prop[6],item_prop[7],item_prop[8],item_prop[9],vendor_id,item_prop[12],item_prop[13], is_ask_price, item_prop[15], item_prop[16], item_prop[17]],
@@ -1,3 +1,3 @@
1
1
  module C80Yax
2
- VERSION = '0.1.0.20'
2
+ VERSION = '0.1.0.21'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: c80_yax
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.20
4
+ version: 0.1.0.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - C80609A
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-07-24 00:00:00.000000000 Z
11
+ date: 2017-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -133,6 +133,7 @@ files:
133
133
  - app/admin/c80_yax/vendors.rb
134
134
  - app/admin/c80_yax/x_c80_yax.rb
135
135
  - app/assets/images/c80_yax/cart_icon_sm.png
136
+ - app/assets/images/c80_yax/item_hit.png
136
137
  - app/assets/images/c80_yax/lo.gif
137
138
  - app/assets/images/c80_yax/stripe.png
138
139
  - app/assets/images/next_btn.png
@@ -165,6 +166,7 @@ files:
165
166
  - app/assets/stylesheets/c80_yax/elems/cats_iconed_list.scss
166
167
  - app/assets/stylesheets/c80_yax/elems/item_color_selector.scss
167
168
  - app/assets/stylesheets/c80_yax/elems/item_images_no_main.scss
169
+ - app/assets/stylesheets/c80_yax/elems/item_is_hit.scss
168
170
  - app/assets/stylesheets/c80_yax/elems/item_quantity_picker.scss
169
171
  - app/assets/stylesheets/c80_yax/elems/more_items_list.scss
170
172
  - app/assets/stylesheets/c80_yax/elems/more_items_list_loading.scss