kingfisher_pro_frontend.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. odoo.define('kingfisher_pro.kingfisher_pro_frontend_js', function(require) {
  2. 'use strict';
  3. var animation = require('web_editor.snippets.animation');
  4. var ajax = require('web.ajax');
  5. animation.registry.kingfisher_pro_product_category_slider = animation.Class.extend({
  6. selector: ".oe_pro_cat_slider",
  7. start: function(editable_mode) {
  8. var self = this;
  9. if (editable_mode) {
  10. $('.oe_pro_cat_slider .owl-carousel').empty();
  11. }
  12. if (!editable_mode) {
  13. var slider_type = self.$target.attr('data-prod-cat-slider-type');
  14. $.get("/kingfisher_pro/pro_get_dynamic_slider", {
  15. 'slider-type': self.$target.attr('data-prod-cat-slider-type') || '',
  16. }).then(function(data) {
  17. if (data) {
  18. self.$target.empty();
  19. self.$target.append(data);
  20. $(".oe_pro_cat_slider").removeClass('hidden');
  21. ajax.jsonRpc('/kingfisher_pro/pro_image_effect_config', 'call', {
  22. 'slider_type': slider_type
  23. }).done(function(res) {
  24. _.each(self.$target.find('.cs-product'), function(k, v) {
  25. if ($(k).find('.o_rating_star_card')) {
  26. var input_val = $(k).find('.o_rating_star_card').find("input").data('default');
  27. if (input_val > 0) {
  28. var rating = require('rating.rating');
  29. var rating_star = new rating.RatingStarWidget(this, {
  30. 'rating_default_value': input_val,
  31. 'rating_disabled': true,
  32. });
  33. if (rating_star) {
  34. $(k).find('.rating').empty();
  35. rating_star.appendTo($(k).find('.rating'));
  36. }
  37. }
  38. }
  39. });
  40. $('div#' + res.s_id).owlCarousel({
  41. margin: 10,
  42. responsiveClass: true,
  43. items: res.counts,
  44. loop: true,
  45. autoPlay: res.auto_rotate && res.auto_play_time,
  46. stopOnHover: true,
  47. navigation: true,
  48. responsive: {
  49. 0: {
  50. items: 1,
  51. },
  52. 420: {
  53. items: 2,
  54. },
  55. 768: {
  56. items: 3,
  57. },
  58. 1000: {
  59. items: res.counts,
  60. },
  61. 1500: {
  62. items: res.counts,
  63. },
  64. },
  65. });
  66. });
  67. }
  68. });
  69. }
  70. }
  71. });
  72. animation.registry.kingfisher_pro_brand_custom_slider = animation.Class.extend({
  73. selector: ".king_pro_brand_slider",
  74. start: function(editable_mode) {
  75. var self = this;
  76. if (editable_mode) {
  77. $('.king_pro_brand_slider .owl-carousel').empty();
  78. }
  79. if (!editable_mode) {
  80. $.get("/king_pro/get_brand_slider", {
  81. 'product_count': self.$target.attr('data-brand-count') || 0,
  82. 'product_label': self.$target.attr('data-product-label') || '',
  83. }).then(function(data) {
  84. if (data) {
  85. self.$target.empty();
  86. self.$target.append(data);
  87. $(".king_pro_brand_slider").removeClass('hidden');
  88. $('div#kingfisher_pro_brand_slider').owlCarousel({
  89. margin: 10,
  90. loop: true,
  91. autoPlay: 9000,
  92. stopOnHover: true,
  93. navigation: true,
  94. responsiveClass: true,
  95. responsive: {
  96. 0: {
  97. items: 1,
  98. },
  99. 420: {
  100. items: 2,
  101. },
  102. 768: {
  103. items: 4,
  104. },
  105. 1000: {
  106. items: 6,
  107. },
  108. 1500: {
  109. items: 6,
  110. },
  111. },
  112. });
  113. }
  114. });
  115. }
  116. }
  117. });
  118. animation.registry.kingfisher_pro_blog_custom_snippet = animation.Class.extend({
  119. selector: ".king_pro_blog_slider",
  120. start: function(editable_mode) {
  121. var self = this;
  122. if (editable_mode) {
  123. $('.king_pro_blog_slider .owl-carousel').empty();
  124. }
  125. if (!editable_mode) {
  126. var slider_type = self.$target.attr('data-blog-slider-type');
  127. $.get("/kingfisher_pro/blog_get_dynamic_slider", {
  128. 'slider-type': self.$target.attr('data-blog-slider-type') || '',
  129. }).then(function(data) {
  130. if (data) {
  131. self.$target.empty();
  132. self.$target.append(data);
  133. $(".king_pro_blog_slider").removeClass('hidden');
  134. ajax.jsonRpc('/kingfisher_pro/blog_image_effect_config', 'call', {
  135. 'slider_type': slider_type
  136. }).done(function(res) {
  137. $('div#' + res.s_id).owlCarousel({
  138. margin: 10,
  139. responsiveClass: true,
  140. items: res.counts,
  141. loop: true,
  142. autoPlay: res.auto_rotate && res.auto_play_time,
  143. stopOnHover: true,
  144. navigation: true,
  145. responsive: {
  146. 0: {
  147. items: 1,
  148. },
  149. 420: {
  150. items: 2,
  151. },
  152. 768: {
  153. items: res.counts,
  154. },
  155. 1000: {
  156. items: res.counts,
  157. },
  158. 1500: {
  159. items: res.counts,
  160. }
  161. },
  162. });
  163. });
  164. }
  165. });
  166. }
  167. }
  168. });
  169. animation.registry.kingfisher_pro_multi_cat_custom_snippet = animation.Class.extend({
  170. selector: ".oe_multi_category_slider",
  171. start: function(editable_mode) {
  172. var self = this;
  173. if (editable_mode) {
  174. $('.oe_multi_category_slider .owl-carousel').empty();
  175. }
  176. if (!editable_mode) {
  177. var slider_type = self.$target.attr('data-multi-cat-slider-type');
  178. $.get("/kingfisher_pro/product_multi_get_dynamic_slider", {
  179. 'slider-type': self.$target.attr('data-multi-cat-slider-type') || '',
  180. }).then(function(data) {
  181. if (data) {
  182. self.$target.empty();
  183. self.$target.append(data);
  184. $(".oe_multi_category_slider").removeClass('hidden');
  185. ajax.jsonRpc('/kingfisher_pro/product_multi_image_effect_config', 'call', {
  186. 'slider_type': slider_type
  187. }).done(function(res) {
  188. _.each(self.$target.find('.cs-product'), function(k, v) {
  189. if ($(k).find('.o_rating_star_card')) {
  190. var input_val = $(k).find('.o_rating_star_card').find("input").data('default');
  191. if (input_val > 0) {
  192. var rating = require('rating.rating');
  193. var rating_star = new rating.RatingStarWidget(this, {
  194. 'rating_default_value': input_val,
  195. 'rating_disabled': true,
  196. });
  197. if (rating_star) {
  198. $(k).find('.rating').empty();
  199. rating_star.appendTo($(k).find('.rating'));
  200. }
  201. }
  202. }
  203. });
  204. $('.multi_hide .owl-carousel').owlCarousel({
  205. margin: 10,
  206. responsiveClass: true,
  207. items: 4,
  208. loop: true,
  209. autoPlay: res.sliding_speed,
  210. stopOnHover: true,
  211. navigation: true,
  212. responsive: {
  213. 0: {
  214. items: 1,
  215. },
  216. 420: {
  217. items: 2,
  218. },
  219. 767: {
  220. items: 3,
  221. },
  222. 1000: {
  223. items: 4,
  224. },
  225. 1500: {
  226. items: 4,
  227. },
  228. },
  229. });
  230. });
  231. }
  232. });
  233. }
  234. }
  235. });
  236. });