1var mudou_filtros = 0; 2 3if(typeof windowLocation == "undefined") 4 windowLocation = window.parent; 5 6if(typeof timeoutListOverlay == "undefined") 7 timeoutListOverlay = ""; 8 9$(document).ready(function(){ 10 /* Top Plus and Minus Filters */ 11 if(typeof disable_filters_adicional_top == "undefined") { 12 var firstFilter = $(".products .filters .box-filter > p").first(); 13 var topBeforePlus = parseInt(parseInt(firstFilter.css("padding-top")) + (firstFilter.find(".item-name").outerHeight() / 2)); 14 if(typeof topBeforePlus == "number" && topBeforePlus > 10) 15 $(".filters").append('<style type="text/css">.filters .box-filter > p::after{top: '+topBeforePlus+'px;}</style>'); 16 } 17 /* Top Plus and Minus Filters */ 18 19 $('.filters').on('click', 'a.see-all', function(){ 20 var filters = $(this).prev(); 21 var _this = $(this); 22 filters.slideToggle(150, function(){ 23 if($(this).is(':visible')){ 24 _this.text(windowLocation.JSVars.expressions[88]); 25 }else{ 26 _this.text(windowLocation.JSVars.expressions[31]); 27 }; 28 }); 29 }); 30 31 if($('.custom-scrollbar-filters').length > 0) { 32 // if(typeof $.fn.perfectScrollbar == "function" && 'ontouchstart' in window == false) { 33 $('.custom-scrollbar-filters').perfectScrollbar({ 34 wheelSpeed: 0.5, 35 useBothWheelAxes: false, 36 suppressScrollX: true 37 }); 38 // } else if('ontouchstart' in window == false) { 39 // $('.custom-scrollbar-filters').css("overflow-y", "auto"); 40 // } 41 } 42 var closeSideBar = false; 43 $(".toggle-button-filters").click(function(){ 44 mudou_filtros = 0; 45 $("#wrapper-filters-sidebar .bottom-filters-button .button").addClass("disabled"); 46 $("body").addClass("sidebar-filters"); 47 $("#containerSite").addClass("overlay"); 48 $("#wrapper-filters-sidebar").height($(window).outerHeight()); 49 $("#wrapper-filters-sidebar .filters").height($(window).outerHeight() - $(".wrapper-top-filters").outerHeight() - $(".bottom-filters-button").outerHeight()); 50 setTimeout(function(){ 51 closeSideBar = true; 52 }, 200); 53 }); 54 55 $("#wrapper-filters-sidebar .wrapper-top-filters .close-filters").click(function(){ 56 if(mudou_filtros == 1){ 57 $("#wrapper-filters-sidebar .wrapper-top-filters .clear-filters-div a").trigger("click"); 58 } 59 $("#wrapper-filters-sidebar .bottom-filters-button .button").addClass("disabled"); 60 $("body").removeClass("sidebar-filters"); 61 $("#containerSite").removeClass("overlay"); 62 closeSideBar = false; 63 }); 64 65 $("body #wrapper-filters-sidebar .bottom-filters-button .button").click(function(){ 66 $("body").removeClass("sidebar-filters"); 67 $("#containerSite").removeClass("overlay"); 68 closeSideBar = false; 69 }); 70 71 $('html').click(function (ev) { 72 var _parentsLength = jQuery(ev.target).parents("#wrapper-filters-sidebar").length; 73 if (jQuery(ev.target).attr("id") == 'wrapper-filters-sidebar') _parentsLength = 1; 74 if(_parentsLength == 0 && closeSideBar) { 75 $("body").removeClass("sidebar-filters"); 76 $("#containerSite").removeClass("overlay"); 77 closeSideBar = false; 78 } 79 }); 80 81 82 totalFilters(); 83}); 84 85function buildFilterPrice(pMin, pMax, minSel, maxSel){ 86 $("#slider-range").slider({ 87 range: true, 88 min: pMin, 89 max: pMax, 90 step: 0.00000001, 91 values: [minSel, maxSel], 92 create: function( event, ui ) { 93 var min_value = number_format($( "#slider-range" ).slider( "values", 0 ), windowLocation.JSVars.shop.currency.numberDec, windowLocation.JSVars.shop.currency.separatorDec, windowLocation.JSVars.shop.currency.separatorMil); 94 var max_value = number_format($( "#slider-range" ).slider( "values", 1 ), windowLocation.JSVars.shop.currency.numberDec, windowLocation.JSVars.shop.currency.separatorDec, windowLocation.JSVars.shop.currency.separatorMil); 95 $('.numbers .min .n').text(min_value); 96 $('.numbers .max .n').text(max_value); 97 }, 98 slide: function( event, ui ) { 99 var min_value = number_format(ui.values[0], windowLocation.JSVars.shop.currency.numberDec, windowLocation.JSVars.shop.currency.separatorDec, windowLocation.JSVars.shop.currency.separatorMil); 100 var max_value = number_format(ui.values[1], windowLocation.JSVars.shop.currency.numberDec, windowLocation.JSVars.shop.currency.separatorDec, windowLocation.JSVars.shop.currency.separatorMil); 101 $('.numbers .min .n').text(min_value); 102 $('.numbers .max .n').text(max_value); 103 }, 104 stop: function( event, ui ){ 105 var pmi = ($('.ui-slider').slider('values', 0)); 106 var pma = ($('.ui-slider').slider('values', 1)); 107 $('#preco_min').val(pmi); 108 $('#preco_max').val(pma);
109 changePrice(); 110 } 111 }); 112} 113 114function buildFilters(data, fieldV){ 115 $.each(data.response.filters, function(key, value){ 116 var valores_selecionados = []; 117 118 if(value.selected_id != '') 119 var valores_selecionados = value.selected_id.split(","); 120 121 if(value.field == 'preco'){ 122 var val_min_sel = value.values[0].name; 123 var val_max_sel = value.values[1].name; 124 125 if(valores_selecionados.length > 0){ 126 val_min_sel = valores_selecionados[0]; 127 val_max_sel = valores_selecionados[1]; 128 } 129 130 var min_value = number_format(val_min_sel, windowLocation.JSVars.shop.currency.numberDec, windowLocation.JSVars.shop.currency.separatorDec, windowLocation.JSVars.shop.currency.separatorMil); 131 var max_value = number_format(val_max_sel, windowLocation.JSVars.shop.currency.numberDec, windowLocation.JSVars.shop.currency.separatorDec, windowLocation.JSVars.shop.currency.separatorMil); 132 133 $("#slider-range").slider("values", 0, val_min_sel); 134 $("#slider-range").slider("values", 1, val_max_sel); 135 $('#preco_min').val(val_min_sel); 136 $('#preco_max').val(val_max_sel); 137 $('.numbers .min .n').text(min_value); 138 $('.numbers .max .n').text(max_value); 139 } else { 140 $.each(value.values, function(k, v){ 141 if(v.enabled == 1) { 142 $('.filters input[flttype="'+value.field+'"][fltid="'+v.id+'"]').attr('enabled', v.enabled).prop('disabled', false).parents('.checkbox').removeClass('disabled'); 143 } else { 144 $('.filters input[flttype="'+value.field+'"][fltid="'+v.id+'"]').attr('enabled', v.enabled).prop('disabled', true).parents('.checkbox').addClass('disabled'); 145 } 146 147 var actual_cor = v.id.split(","); 148 var actual_checked = false; 149 150 $(actual_cor).each(function(kco, vco){ 151 if(valores_selecionados.indexOf(vco) >= 0) { 152 actual_checked = true; 153 } 154 }); 155 156 $('.filters input[flttype="'+value.field+'"][fltid="'+v.id+'"]').prop("checked", actual_checked); 157 }); 158 } 159 160 if(value.selected_id != ''){ 161 $('.clear-filter[flttype="'+value.field+'"]').addClass('active').closest(".box-filter").addClass('active'); 162 } else { 163 $('.clear-filter[flttype="'+value.field+'"]').removeClass('active').closest(".box-filter").removeClass('active'); 164 } 165 }); 166 167 if(data.response.active_filters > 0) { 168 $('.clear-filters-div').css("display", "inline-block"); 169 } else { 170 $('.clear-filters-div').hide(); 171 172 if(!fieldV) { 173 $('.filters input').prop('checked', false); 174 } 175 } 176 177 totalFilters({products_count : data.response.products_count}); 178} 179 180function changePrice(totalFilters){ 181 mudou_filtros = 1; 182 $('.list-overlay:not(:visible)').fadeIn('fast'); 183 timeoutListOverlay = setTimeout(function(){ timeoutListOverlay = ""; $('.list-overlay').hide(); }, 5000); 184 185 var pmi = $('#preco_min').val(); 186 var pma = $('#preco_max').val(); 187 188 if(totalFilters == undefined) 189 totalFilters = 1; 190 191 angular.element($("[ng-controller=filterscontroller]")).scope().setFilterPriceGlobal({filter: {min: pmi, max: pma}, totalFilters : totalFilters}); 192} 193 194function totalFilters(data) { 195 var products_count = (data != undefined && data.products_count != undefined) ? data.products_count : null; 196 var filtersActive = []; 197 198 $('.filters .box-filter').each(function(key, value){ 199 var filtersTotal = $(this).find('input[type="checkbox"]:checked').length; 200 var namesSelected = ""; 201 var idsSelected = ""; 202 var filterValues = []; 203 var itemFilterActive = { 204 name : $(this).find(".title-filter .item-name").text(), 205 field: $(this).find("[flttype]").attr("flttype"), 206 selected_id : idsSelected, 207 values : filterValues 208 } 209 210 if(filtersTotal > 0) { 211 $(this).children('.title-filter').find('.total-filter-active').html(' <span>(</span>'+filtersTotal+'<span>)</span>'); 212 } else { 213 $(this).children('.title-filter').find('.total-filter-active').html(''); 214 } 215 216 var auxKeyChecked = 0; 217 $(this).find('input[type="checkbox"]').each(function(k, v){ 218 var fltid = $(this).attr('fltid'); 219 var fltname = $(this).attr('data-filter-name'); 220 var disabled = $(this).prop("disabled"); 221 var checked = $(this).prop("checked"); 222 223 if(checked) { 224 $(this).parents(".checkbox").addClass("active"); 225 if(auxKeyChecked != 0) { 226 namesSelected += ', '; 227 idsSelected += ','; 228 } 229 namesSelected += fltname; 230 idsSelected += fltid; 231 auxKeyChecked++; 232 233 } else { 234 $(this).parents(".checkbox").removeClass("active"); 235 } 236 237 filterValues.push({ 238 id: fltid, 239 name: fltname, 240 enabled: !disabled, 241 active: checked 242 }); 243 }); 244 245 if(idsSelected != "" || filterValues.length > 0) { 246 itemFilterActive.selected_id = idsSelected; 247 itemFilterActive.values = filterValues; 248 } 249 250 $(this).children('.title-filter').find('.names-filter-active').text(namesSelected); 251 252 if($(this).find("#slider-range").length > 0) { 253 namesSelected = ""; 254 var preco_min_init = Number($(".filters .price .numbers").attr("preco_min_init")); 255 var preco_max_init = Number($(".filters .price .numbers").attr("preco_max_init")); 256 var preco_min_format = $(".price .min .p").text()+$(".price .min .n").text()+$(".price .min .s").text(); 257 var preco_max_format = $(".price .max .p").text()+$(".price .max .n").text()+$(".price .max .s").text(); 258 259 if(preco_min_init != $("#preco_min").val() || preco_max_init != $("#preco_max").val()) { 260 namesSelected = preco_min_format+" - "+preco_max_format; 261 } 262 263 $(this).children('.title-filter').find(".names-filter-active").html(namesSelected); 264 itemFilterActive.selected_id = namesSelected; 265 266 filterValues = [ 267 { 268 id: 0, 269 name: preco_min_format, 270 enabled: true, 271 active: (namesSelected != "") ? true : false 272 }, 273 { 274 id: 1, 275 name: preco_max_format, 276 enabled: true, 277 active: (namesSelected != "") ? true : false 278 } 279 ]; 280 281 itemFilterActive.values = filterValues; 282 } 283 284 filtersActive.push(itemFilterActive); 285 }); 286 287 var activeFiltersArray = 0; 288 $.each(filtersActive, function(k, v){ 289 $.each(v.values, function(k2,v2){ 290 if (v2.active == true) activeFiltersArray++; 291 }); 292 if (v.field == 'preco' && v.selected_id != '') activeFiltersArray--; 293 }); 294 295 if(activeFiltersArray> 0) 296 $("#filters-total").html(activeFiltersArray).css("display", "inline-block"); 297 else 298 $("#filters-total").html("").hide(); 299 300 if(typeof activeFiltersCustom == "function") 301 activeFiltersCustom(filtersActive, products_count); 302} 303 304app.controller("filterscontroller", function($scope, $http, $rootScope) { 305 306 $('.filters input[type=checkbox]').change(function(event){ 307 mudou_filtros = 1; 308 $('.list-overlay:not(:visible)').fadeIn('fast'); 309 timeoutListOverlay = setTimeout(function(){ timeoutListOverlay = ""; $('.list-overlay').hide(); }, 5000); 310 311 $scope.setFiltersGlobal({$elem: event, filter: {field: $(this).attr('flttype'), values: $(this).attr('fltid')}
311}); 312 }); 313 314 $('.filters .clear-filter').on('click', function(event){ 315 event.stopPropagation(); 316 var fieldV = $(this).attr('flttype'); 317 $('.list-overlay:not(:visible)').fadeIn('fast'); 318 timeoutListOverlay = setTimeout(function(){ timeoutListOverlay = ""; $('.list-overlay').hide(); }, 5000); 319 320 $scope.resetFiltersGlobal(fieldV); 321 if(windowLocation.JSVars.shop.templatesParams.list_filters_opened == 0) 322 $(this).closest(".title-filter").trigger("click"); 323 }); 324 325 $(".clear-filters-div .clear-filters").click(function(event){ 326 event.stopPropagation(); 327 $('.list-overlay:not(:visible)').fadeIn('fast'); 328 $("#wrapper-filters-sidebar .bottom-filters-button .button").removeClass("disabled"); 329 timeoutListOverlay = setTimeout(function(){ timeoutListOverlay = ""; $('.list-overlay').hide(); }, 5000); 330 331 $scope.resetFiltersGlobal(); 332 if(windowLocation.JSVars.shop.templatesParams.list_filters_opened == 0) 333 $(".filters .box-filter:not(.closed)").find(".title-filter").trigger("click"); 334 }); 335 336 $(".order input[type='checkbox']").on("change", function(event){ 337 $('.list-overlay').fadeIn('fast'); 338 timeoutListOverlay = setTimeout(function(){ timeoutListOverlay = ""; $('.list-overlay').hide(); }, 5000); 339 340 var fieldV = $(this).attr("name"), valuesV = $(this).val(), prop_checed = 0; 341 342 if($(this).is(":checked")){prop_checed = 1;} 343 344 $(".order input[type='checkbox']").prop("checked", false); 345 if( prop_checed == 1 ) { 346 $(this).prop("checked", true); 347 $(".order .exp2").html($(this).closest("label").find('.filter-name').text()); 348 } else { 349 $(".order .exp2").html(windowLocation.JSVars.expressions[6]); 350 } 351 352 $scope.setOrderByGlobal({$elem: event, order_by: { field: fieldV, value: valuesV }}); 353 }); 354 355 $scope.setFiltersGlobal = function (data) { 356 if(data.filter != undefined) { 357 var filter = data.filter; 358 var field = filter.field; 359 var obj = {'page_id': windowLocation.JSVars.selectedPage.id, filter: filter}; 360 } else { 361 var filter = data.filters; 362 var obj = {'page_id': windowLocation.JSVars.selectedPage.id, filters: filter}; 363 } 364 365 window.scrollTo(0, 0); 366 367 $.post( "/api/api.php/setFilters", obj).done(function(data, status, headers, config){ 368 $scope.getProductsBylistOrSearch(); 369 $("#wrapper-filters-sidebar .bottom-filters-button .button").removeClass("disabled"); 370 }); 371 }; 372 373 $scope.getProductsGlobal = function(field){ 374 var HTTP_URL = '/api/api.php/getProducts/'+windowLocation.JSVars.selectedPage.id +'/'+ windowLocation.JSVars.selectedPage.cat +'/0/1/'+ windowLocation.JSVars.shop.templatesParams.page; 375 376 $http.get(HTTP_URL).success(function(data, status, headers, config) { 377 if(windowLocation.JSVars.debug == 1) { 378 console.log("->data.response.products"); 379 console.log(data.response.products); 380 } 381 382 if(typeof buildFilters == "function") 383 buildFilters(data, field); 384 385 if(typeof buildProducts == "function") 386 buildProducts(data); 387 388 $(".column-horizontal").remove(); 389 390 setTimeout(function(){ 391 if($('.custom-scrollbar-filters').length > 0 ){ // && typeof $.fn.perfectScrollbar == "function" && 'ontouchstart' in window == false 392 $('.custom-scrollbar-filters').perfectScrollbar('update'); 393 } 394 }, 100); 395 }); 396 } 397 398 $scope.resetFiltersGlobal = function (field) { 399 var HTTP_URL = '/api/api.php/resetFilters/'+ windowLocation.JSVars.selectedPage.id; 400 401 if(field != undefined) { 402 HTTP_URL += '/'+ field; 403 } 404 405 window.scrollTo(0, 0); 406 407 $http.get(HTTP_URL).success(function(data, status, headers, config) { 408 $scope.getProductsBylistOrSearch(); 409 }); 410 411 }; 412 413 $scope.setOrderByGlobal = function(object){ 414 var filter = object.order_by; 415 var getproduct = object.getproduct; 416 417 $http.post('/api/api.php/setOrderBy', { page_id: windowLocation.JSVars.selectedPage.id, 'order_by': filter}).success(function(data, status, headers, config) { 418 $('.order .order-dropdown').css('display','none'); 419 420 if(getproduct == 0) 421 return false; 422 423 $scope.getProductsBylistOrSearch(); 424 }); 425 } 426 427 $scope.setFilterPriceGlobal = function(object){ 428 var filter = object.filter; 429 var totalFilters = object.totalFilters; 430 431 $http.post('/api/api.php/setFilterPrice', { page_id: windowLocation.JSVars.selectedPage.id, 'filter': filter}).success(function(data, status, headers, config) { 432 433 if(totalFilters == 0) 434 return; 435 436 $scope.getProductsBylistOrSearch(); 437 438 $("#wrapper-filters-sidebar .bottom-filters-button .button").removeClass("disabled"); 439 }); 440 } 441 442 $scope.getSearchAuto = function(filter, field){ 443 var dataPost = { 444 terms: windowLocation.JSVars.search.terms, 445 offset: offset, 446 page: windowLocation.JSVars.shop.templatesParams.page 447 } 448 449 if(filter != undefined && field != undefined) { 450 var dataPost = { 451 terms: windowLocation.JSVars.search.terms, 452 filter: filter, 453 offset: offset, 454 page: windowLocation.JSVars.shop.templatesParams.page 455 } 456 } 457 458 $http.post('/api/api.php/getSearchAuto/', dataPost).success(function(data, status, headers, config) { 459 if(typeof data != "object") 460 var data = $.parseJSON(data); 461 462 if(typeof buildFilters == "function") 463 buildFilters(data, field); 464 465 if(buildProducts == "function") 466 buildProducts(data); 467 }); 468 } 469 470 $scope.getSearch = function(filter, field) { 471 $http.get('/api/api.php/search/'+windowLocation.JSVars.search.terms+'/'+offset).success(function(data, status, headers, config) { 472 if(typeof data != "object") 473 var data = $.parseJSON(data); 474 475 if(typeof buildFilters == "function") 476 buildFilters(data, field); 477 478 if(typeof buildProducts == "function") 479 buildProducts(data); 480 }); 481 } 482 483 $scope.getProductsBylistOrSearch = function(){ 484 windowLocation.JSVars.shop.templatesParams.page = 1; 485 offset = 0; 486 clearType = "clear"; 487 488 if(windowLocation.JSVars.shop.templatesParams.module == 'search') { 489 if(windowLocation.JSVars.shop.templatesParams.solr == 1) 490 $scope.getSearchAuto(); 491 else 492 $scope.getSearch(); 493 } else { 494 $scope.getProductsGlobal(); 495 } 496 } 497 498});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.