73 lines
No EOL
3.2 KiB
JavaScript
Executable file
73 lines
No EOL
3.2 KiB
JavaScript
Executable file
// MEC LIST VIEW PLUGIN
|
|
(function ($) {
|
|
$.fn.mecListView = function (options) {
|
|
// Default Options
|
|
var settings = $.extend({
|
|
// These are the defaults.
|
|
id: 0,
|
|
atts: '',
|
|
ajax_url: '',
|
|
sf: {},
|
|
current_month_divider: '',
|
|
end_date: '',
|
|
offset: 0,
|
|
limit: 0,
|
|
pagination: '0',
|
|
infinite_locked: false,
|
|
}, options);
|
|
|
|
// Set onclick Listeners
|
|
setListeners();
|
|
|
|
function setListeners() {
|
|
// Load More
|
|
$("#mec_skin_" + settings.id + " .mec-load-more-button").on("click", function () {
|
|
loadMore();
|
|
});
|
|
}
|
|
|
|
function loadMore(callback) {
|
|
// Add loading Class
|
|
$("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-load-more-loading");
|
|
|
|
$.ajax({
|
|
url: settings.ajax_url,
|
|
data: "action=mec_list_load_more&mec_start_date=" + settings.end_date + "&mec_offset=" + settings.offset + "&" + settings.atts + "¤t_month_divider=" + settings.current_month_divider + "&apply_sf_date=0",
|
|
dataType: "json",
|
|
type: "post",
|
|
success: function (response) {
|
|
if (response.count === 0) {
|
|
// Remove loading Class
|
|
$("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
|
|
|
|
// Release Lock of Infinite Scroll
|
|
settings.infinite_locked = false;
|
|
$("#mec_skin_" + settings.id + " .mec-load-more-wrap").removeClass('mec-load-more-scroll-loading');
|
|
|
|
// Hide Pagination
|
|
jQuery("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
|
|
|
|
// Run Callback
|
|
if(typeof callback === 'function') callback(response);
|
|
} else {
|
|
// Show load more button
|
|
if (typeof response.has_more_event === 'undefined' || (typeof response.has_more_event !== 'undefined' && response.has_more_event)) jQuery("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-util-hidden");
|
|
else jQuery("#mec_skin_" + settings.id + " .mec-load-more-button").addClass("mec-util-hidden");
|
|
|
|
// Append Items
|
|
$("#mec_skin_events_" + settings.id).append(response.html);
|
|
|
|
// Remove loading Class
|
|
$("#mec_skin_" + settings.id + " .mec-load-more-button").removeClass("mec-load-more-loading");
|
|
|
|
// Update the variables
|
|
settings.end_date = response.end_date;
|
|
settings.offset = response.offset;
|
|
settings.current_month_divider = response.current_month_divider;
|
|
}
|
|
},
|
|
error: function() {}
|
|
});
|
|
}
|
|
};
|
|
}(jQuery)); |