nebukad

list

Nov 10th, 2015
349
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2.  * Created on : Sep 22, 2015, 17:00:00 PM
  3.  * Author     : Muhammad Ircham
  4.  */
  5.  
  6. (function($,window){
  7.  
  8.     //initialization
  9.     $(function(){
  10.         ORORI.List = {
  11.             /**
  12.              * @return {promise}
  13.              * */
  14.             Defaults: {
  15.                 limit : 100
  16.             },
  17.             find: function(url, method, param) {
  18.                 var self = this;
  19.  
  20.                 var parameters = $.extend(param, {
  21.                         limit: self.Defaults.limit
  22.                     }),
  23.                     asyncStatus = $.Deferred(),
  24.                     asyncData   = [];
  25.  
  26.                 ORORI.apiRequest(url, method, parameters, function(rs){
  27.                     asyncData.status = status;
  28.                     asyncData.data = rs;
  29.  
  30.                     asyncStatus.resolve(asyncData);
  31.                 }, function(rs, status) {
  32.                     if (typeof (rs.responseJSON) != "undefined" && typeof (rs.responseJSON.error) != "undefined" && rs.responseJSON.error !== null) {
  33.                         asyncData.status = status;
  34.                         asyncData.error = rs.responseJSON.error.user_message;
  35.                     }
  36.                     asyncStatus.reject(asyncData);
  37.                 });
  38.  
  39.                 return asyncStatus.promise();
  40.             },
  41.             renderList : function(data, selector, paginationClass){
  42.                 var self = this,
  43.                     html = '',
  44.                     i = 0;
  45.                 $.each(data.product, function (key, value) {
  46.                
  47.                 });
  48.  
  49.                 $('.tabs').trigger('destroy.loader.orori');
  50.             },
  51.             render : function(selector, paginationClass) {
  52.                 var self = this,
  53.                     DataAsync = self.find('/frontend/product','GET', self.Defaults);
  54.  
  55.                 $.when(DataAsync)
  56.                     .done(function (founds) {
  57.                         self.renderList(founds.data, selector, paginationClass);
  58.                     })
  59.                     .fail(function () {
  60.                         // toastr.error('Sorry, .');
  61.                     });
  62.             },
  63.             filter : function(option, selector, isReset){
  64.                 var self = this,
  65.                     type = ($('input[name="type"]').val()) ? $('input[name="type"]').val() : '',
  66.                     category = ($('input[name="category"]').val()) ? $('input[name="category"]').val() : '',
  67.                     sub_category = ($('input[name="sub_category"]').val()) ? $('input[name="sub_category"]').val() : '',
  68.                     priceFrom = 0,
  69.                     priceTo = 0,
  70.                     options = {
  71.                         order_by : 'code, calculatedPrice',
  72.                         order_type : 'DESC'
  73.                     };
  74.  
  75.                 if ((priceFrom == 0 || priceFrom == '') && (priceTo == 0 || priceTo == '')) {
  76.                     var $sliderPriceFrom = $('#filter-price-from' + selector),
  77.                         $sliderPriceTo = $('#filter-price-to' + selector);
  78.  
  79.                     options.min_price = $sliderPriceFrom.val() ? extractRangeSliderNumber($sliderPriceFrom.val()) : 0;
  80.                     options.max_price   = $sliderPriceTo.val() ? extractRangeSliderNumber($sliderPriceTo.val()) : 250000000;
  81.                 }
  82.  
  83.                 if(isReset){
  84.                     options.min_price = 1000000;
  85.                     options.max_price = 250000000;
  86.                 }
  87.  
  88.                 if(type) options.type = type;
  89.                 if(category) options.category = category;
  90.                 if(sub_category) options.sub_category = sub_category;
  91.  
  92.                 $.extend( options, option );
  93.                 $.extend( self.Defaults, options );
  94.             },
  95.             init : function (listClass, paginationClass, containerNumber, option) {
  96.                 var self = this;
  97.                 // Do some setup stuff
  98.                 self.filter(option, containerNumber, false);
  99.                 self.render(listClass, paginationClass);
  100.             }
  101.         };
  102.     });
  103. }(jQuery, window));
Advertisement
Add Comment
Please, Sign In to add comment