307 lines
8.9 KiB
JavaScript
307 lines
8.9 KiB
JavaScript
/**
|
|
* 2007-2017 Leotheme
|
|
*
|
|
* NOTICE OF LICENSE
|
|
*
|
|
* Leo feature for prestashop 1.7: ajax cart, review, compare, wishlist at product list
|
|
*
|
|
* DISCLAIMER
|
|
*
|
|
* @Module Name: Leo Feature
|
|
* @author leotheme <leotheme@gmail.com>
|
|
* @copyright 2007-2018 Leotheme
|
|
* @license http://leotheme.com - prestashop template provider
|
|
*/
|
|
$(document).ready(function(){
|
|
if ($('.open-review-form').length)
|
|
{
|
|
var id_product = $('.open-review-form').data('id-product');
|
|
var is_logged = $('.open-review-form').data('is-logged');
|
|
$.ajax({
|
|
type: 'POST',
|
|
headers: {"cache-control": "no-cache"},
|
|
url: prestashop.urls.base_url + 'modules/leofeature/psajax_review.php?rand=' + new Date().getTime(),
|
|
async: true,
|
|
cache: false,
|
|
data: {
|
|
"action": "render-modal-review",
|
|
"id_product": id_product,
|
|
"is_logged": is_logged,
|
|
"token": leo_token
|
|
},
|
|
success: function (result)
|
|
{
|
|
if(result != '')
|
|
{
|
|
$('body').append(result);
|
|
activeEventModalReview();
|
|
activeStar();
|
|
$('.open-review-form').fadeIn('fast');
|
|
}
|
|
else
|
|
{
|
|
alert(review_error);
|
|
}
|
|
|
|
},
|
|
error: function (XMLHttpRequest, textStatus, errorThrown) {
|
|
// alert("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);
|
|
}
|
|
});
|
|
|
|
$('.open-review-form').click(function(){
|
|
if ($('#criterions_list').length)
|
|
{
|
|
$('.leo-modal-review').modal('show');
|
|
}
|
|
else
|
|
{
|
|
if ($('.leo-modal-review .modal-body .disable-form-review').length)
|
|
{
|
|
$('.leo-modal-review').modal('show');
|
|
}
|
|
else
|
|
{
|
|
$('.leo-modal-review-bt').remove();
|
|
$('.leo-modal-review .modal-header').remove();
|
|
$('.leo-modal-review .modal-body').empty();
|
|
$('.leo-modal-review .modal-body').append('<div class="form-group disable-form-review has-danger text-center"><label class="form-control-label">'+disable_review_form_txt+'</label></div>');
|
|
$('.leo-modal-review').modal('show');
|
|
}
|
|
|
|
}
|
|
return false;
|
|
});
|
|
}
|
|
|
|
$('.read-review').click(function(){
|
|
// if ($('.leo-product-show-review-title').length && $('#leo-product-show-review-content').length)
|
|
if ($('.leo-product-show-review-title').length)
|
|
{
|
|
if ($('.leo-product-show-review-title').hasClass('leofeature-accordion'))
|
|
{
|
|
if ($('.leo-product-show-review-title').hasClass('collapsed'))
|
|
{
|
|
$('.leo-product-show-review-title').trigger('click');
|
|
}
|
|
var timer = setInterval(function() {
|
|
if ($('#collapseleofeatureproductreview').hasClass('collapse in') || $('#collapsereviews').hasClass('collapse in')) {
|
|
//run some other function
|
|
$('html, body').animate({
|
|
scrollTop: $('.leo-product-show-review-title').offset().top
|
|
}, 500);
|
|
clearInterval(timer);
|
|
}
|
|
}, 200);
|
|
}
|
|
else
|
|
{
|
|
$('.leo-product-show-review-title').trigger('click');
|
|
$('html, body').animate({
|
|
scrollTop: $('.leo-product-show-review-title').offset().top
|
|
}, 500);
|
|
}
|
|
}
|
|
return false;
|
|
});
|
|
|
|
$('.usefulness_btn').click(function(){
|
|
if (!$(this).hasClass('disabled'))
|
|
{
|
|
$(this).addClass('active');
|
|
$(this).parents('.review_button').find('.usefulness_btn').addClass('disabled');
|
|
var id_product_review = $(this).data('id-product-review');
|
|
var is_usefull = $(this).data('is-usefull');
|
|
var e_parent_button = $(this).parent();
|
|
$.ajax({
|
|
type: 'POST',
|
|
headers: {"cache-control": "no-cache"},
|
|
url: prestashop.urls.base_url + 'modules/leofeature/psajax_review.php?rand=' + new Date().getTime(),
|
|
async: true,
|
|
cache: false,
|
|
data: {
|
|
"action": "add-review-usefull",
|
|
"id_product_review": id_product_review,
|
|
"is_usefull": is_usefull,
|
|
"token": leo_token
|
|
},
|
|
success: function (result)
|
|
{
|
|
if (result != '')
|
|
{
|
|
e_parent_button.fadeOut(function(){
|
|
e_parent_button.remove();
|
|
});
|
|
}
|
|
else
|
|
{
|
|
alert(review_error);
|
|
}
|
|
|
|
},
|
|
error: function (XMLHttpRequest, textStatus, errorThrown) {
|
|
alert("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);
|
|
// window.location.replace($('.open-review-form').data('product-link'));
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
$('.report_btn').click(function(){
|
|
if (!$(this).hasClass('disabled'))
|
|
{
|
|
$(this).addClass('disabled');
|
|
var e_button = $(this);
|
|
var id_product_review = $(this).data('id-product-review');
|
|
$.ajax({
|
|
type: 'POST',
|
|
headers: {"cache-control": "no-cache"},
|
|
url: prestashop.urls.base_url + 'modules/leofeature/psajax_review.php?rand=' + new Date().getTime(),
|
|
async: true,
|
|
cache: false,
|
|
data: {
|
|
"action": "add-review-report",
|
|
"id_product_review": id_product_review,
|
|
"token": leo_token
|
|
},
|
|
success: function (result)
|
|
{
|
|
if (result != '')
|
|
{
|
|
e_button.fadeOut(function(){
|
|
e_button.remove();
|
|
});
|
|
}
|
|
else
|
|
{
|
|
alert(review_error);
|
|
}
|
|
|
|
},
|
|
error: function (XMLHttpRequest, textStatus, errorThrown) {
|
|
alert("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);
|
|
// window.location.replace($('.open-review-form').data('product-link'));
|
|
}
|
|
});
|
|
}
|
|
return false;
|
|
});
|
|
|
|
// activeEventModalReview();
|
|
activeStar();
|
|
});
|
|
|
|
function activeStar()
|
|
{
|
|
//DONGND:: add txt cancel rating to translate
|
|
$('input.star').rating({cancel: cancel_rating_txt});
|
|
$('.auto-submit-star').rating({cancel: cancel_rating_txt});
|
|
}
|
|
|
|
function activeEventModalReview()
|
|
{
|
|
$('.form-new-review').submit(function(){
|
|
if ($('.new_review_form_content .form-group.leo-has-error').length || $('.leo-fake-button').hasClass('validate-ok'))
|
|
{
|
|
return false;
|
|
}
|
|
});
|
|
$('.leo-modal-review').on('show.bs.modal', function (e) {
|
|
$('.leo-modal-review-bt').click(function(){
|
|
if (!$(this).hasClass('active'))
|
|
{
|
|
$(this).addClass('active');
|
|
$('.leo-modal-review-bt-text').hide();
|
|
$('.leo-modal-review-loading').css({'display':'block'});
|
|
|
|
$('.new_review_form_content input, .new_review_form_content textarea').each(function(){
|
|
|
|
if ($(this).val() == '')
|
|
{
|
|
$(this).parent('.form-group').addClass('leo-has-error');
|
|
$(this).attr("required", "");
|
|
}
|
|
else
|
|
{
|
|
$(this).parent('.form-group').removeClass('leo-has-error');
|
|
$(this).removeAttr('required');
|
|
}
|
|
})
|
|
|
|
if ($('.new_review_form_content .form-group.leo-has-error').length)
|
|
{
|
|
$(this).removeClass('active');
|
|
$('.leo-modal-review-bt-text').show();
|
|
$('.leo-modal-review-loading').hide();
|
|
}
|
|
else
|
|
{
|
|
// console.log('pass');
|
|
// $('.leo-modal-review-bt').remove();
|
|
// console.log($( ".new_review_form_content input, .new_review_form_content textarea" ).serialize());
|
|
$('.leo-fake-button').addClass('validate-ok');
|
|
$.ajax({
|
|
type: 'POST',
|
|
headers: {"cache-control": "no-cache"},
|
|
url: prestashop.urls.base_url + 'modules/leofeature/psajax_review.php?action=add-new-review&token='+leo_token+'&rand=' + new Date().getTime(),
|
|
async: true,
|
|
cache: false,
|
|
data: $( ".new_review_form_content input, .new_review_form_content textarea" ).serialize(),
|
|
success: function (result)
|
|
{
|
|
if (result != '')
|
|
{
|
|
var object_result = $.parseJSON(result);
|
|
// console.log(object_result);
|
|
$('.leo-modal-review-bt').fadeOut('slow', function(){
|
|
$(this).remove();
|
|
|
|
});
|
|
|
|
$('.leo-modal-review .modal-body>.row').fadeOut('slow', function(){
|
|
$(this).remove();
|
|
if (object_result.result)
|
|
{
|
|
$('.leo-modal-review .modal-body').append('<div class="form-group has-success"><label class="form-control-label">'+object_result.sucess_mess+'</label></div>');
|
|
}
|
|
else
|
|
{
|
|
// $('.leo-modal-review .modal-body').append('<div class="form-group has-danger text-center"></div>');
|
|
$.each(object_result.errors, function(key, val){
|
|
$('.leo-modal-review .modal-body').append('<div class="form-group has-danger text-center"><label class="form-control-label">'+val+'</label></div>');
|
|
});
|
|
}
|
|
});
|
|
}
|
|
else
|
|
{
|
|
alert(review_error);
|
|
}
|
|
|
|
},
|
|
error: function (XMLHttpRequest, textStatus, errorThrown) {
|
|
alert("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);
|
|
window.location.replace($('.open-review-form').data('product-link'));
|
|
}
|
|
});
|
|
}
|
|
$('.leo-fake-button').trigger('click');
|
|
}
|
|
|
|
})
|
|
})
|
|
|
|
$('.leo-modal-review').on('hide.bs.modal', function (e) {
|
|
// console.log($('.leo-modal-review-bt').length);
|
|
if (!$('.leo-modal-review-bt').length && !$('.leo-modal-review .modal-body .disable-form-review').length)
|
|
{
|
|
// console.log('aaa');
|
|
// window.location.replace($('.open-review-form').data('product-link'));
|
|
location.reload();
|
|
|
|
}
|
|
})
|
|
|
|
}
|
|
|