jQuery(document).ready(function ($) {
/* If there are required actions, add an icon with the number of required actions in the About tm-theme-installation page -> Actions recommended tab */
var tm_theme_info_count_box_actions_recommended = tm_theme_info_box_object.count_actions_recommended;
if ( (typeof tm_theme_info_count_box_actions_recommended !== 'undefined') && (tm_theme_info_count_box_actions_recommended != '0') ) {
jQuery('li.tm-theme-installation-w-red-tab a').append('' + tm_theme_info_count_box_actions_recommended + '');
}
/* Dismiss required actions */
jQuery(".tm-theme-installation-recommend-action-button,.reset-all").click(function() {
var id = jQuery(this).attr('id'),
action = jQuery(this).attr('data-action');
jQuery.ajax({
type : "GET",
data : {
action: 'tm_theme_info_update_recommend_action',
id: id,
todo: action
},
dataType : "html",
url : tm_theme_info_box_object.ajaxurl,
beforeSend: function (data, settings) {
jQuery('.tm-theme-installation-tab-pane#actions_required h1').append('

');
},
success : function (data) {
location.reload();
jQuery("#temp_load").remove();
/* Remove loading gif */
},
error : function (jqXHR, textStatus, errorThrown) {
console.log(jqXHR + " :: " + textStatus + " :: " + errorThrown);
}
});
});
});
jQuery(document).ready(function($) {
var page = 1;
var isLoading = false;
$(window).scroll(function () {
if ($(window).scrollTop() + $(window).height() >= $(document).height() - 200 && !isLoading) {
loadMoreProducts();
}
});
function productsAjax( endCursor, templateSearch, collection, actionValue ) {
var progress = 0;
var progressInterval = setInterval(function() {
progress += 10;
if (progress >= 100) {
clearInterval(progressInterval);
}
}, 300);
$.ajax({
url: tm_theme_info_box_object.ajaxurl,
type: 'POST',
data: {
action: 'free_mnssp_get_filtered_products',
cursor: endCursor,
search: templateSearch,
collection: collection,
mnssp_pagination_nonce: tm_theme_info_box_object.nonce
},
success: function (response) {
clearInterval(progressInterval);
jQuery('.mnssp-loader').hide();
jQuery('.mnssp-loader-overlay').hide();
if (response.content) {
isLoading = false;
if ( actionValue != 'load' ) {
jQuery('.mnssp-templates-grid.mnssp-main-grid').empty();
}
jQuery('.mnssp-templates-grid.mnssp-main-grid').append(response.content);
const hasNextPage = response?.pagination?.hasNextPage;
const endCursor = response?.pagination?.endCursor;
jQuery('[name="mnssp-end-cursor"]').val(endCursor);
if (!hasNextPage) {
jQuery('[name="mnssp-end-cursor"]').val('');
isLoading = true
}
}
},
error: function () {
clearInterval(progressInterval);
jQuery('.mnssp-loader').hide();
jQuery('.mnssp-loader-overlay').hide();
console.log('Error loading products');
}
});
}
function loadMoreProducts() {
isLoading = true;
page++;
const endCursor = jQuery('[name="mnssp-end-cursor"]').val();
const templateSearch = jQuery('[name="mnssp-templates-search"]').val();
const collection = jQuery('[name="mnssp-collections"]').val();
productsAjax( endCursor, templateSearch, collection, 'load' );
}
function debounce(func, delay) {
let timeoutId;
return function() {
const context = this;
const args = arguments;
clearTimeout(timeoutId);
timeoutId = setTimeout(() => {
func.apply(context, args);
}, delay);
};
}
jQuery('#mnssp-collections').on('change', function() {
jQuery('.mnssp-loader').show();
jQuery('.mnssp-loader-overlay').show();
productsAjax( '', '', jQuery(this).val(), 'category' );
});
$('body').on("input", '[name="mnssp-templates-search"]', debounce(function (event) {
const templateSearch = $('[name="mnssp-templates-search"]').val();
jQuery('.mnssp-loader').show();
jQuery('.mnssp-loader-overlay').show();
productsAjax( '', templateSearch, '', 'search' );
}, 1000));
});