/**
* MainWP_Page.page
*/
jQuery(document).ready(function () {
// to fix issue not loaded calendar js library
if (jQuery('.ui.calendar').length > 0) {
if (mainwpParams.use_wp_datepicker == 1) {
jQuery('#mainwp-manage-pages .ui.calendar input[type=text],#mainwp-manage-posts .ui.calendar input[type=text]').datepicker({ dateFormat: "yy-mm-dd" });
} else {
jQuery('#mainwp-manage-pages .ui.calendar, #mainwp-manage-posts .ui.calendar').calendar({
type: 'date',
monthFirst: false,
today: true,
touchReadonly: false,
formatter: {
date: function (date) {
if (!date) return '';
var day = date.getDate();
var month = date.getMonth() + 1;
var year = date.getFullYear();
if (month < 10) {
month = '0' + month;
}
if (day < 10) {
day = '0' + day;
}
return year + '-' + month + '-' + day;
}
}
});
}
}
jQuery(document).on('click', '#mainwp_show_pages', function () {
mainwp_fetch_pages();
});
jQuery(document).on('click', '.page_submitpublish', function () {
mainwppage_postAction(jQuery(this), 'publish');
return false;
});
jQuery(document).on('click', '.page_submitdelete', function () {
mainwppage_postAction(jQuery(this), 'trash');
return false;
});
jQuery(document).on('click', '.page_submitdelete_perm', function () {
mainwppage_postAction(jQuery(this), 'delete');
return false;
});
jQuery(document).on('click', '.page_submitrestore', function () {
mainwppage_postAction(jQuery(this), 'restore');
return false;
});
jQuery(document).on('click', '#mainwp-do-pages-bulk-actions', function () {
var action = jQuery('#mainwp-bulk-actions').val();
if (action != 'trash' && action != 'restore' && action != 'delete') {
return false;
}
var tmp = jQuery("input[name='page[]']:checked");
countSent = tmp.length;
if (countSent == 0)
return false;
var _callback = function () {
jQuery('#mainwp-do-pages-bulk-actions').attr('disabled', 'true');
tmp.each(
function (index, elem) {
mainwppage_postAction(elem, action);
}
);
};
if (action == 'delete') {
var msg = __('You are about to delete %1 page(s). Are you sure you want to proceed?', countSent);
mainwp_confirm(msg, _callback);
return false;
}
_callback();
return false;
});
});
mainwppage_postAction = function (elem, what) {
var rowElement = jQuery(elem).closest('tr');
var pageId = rowElement.find('.pageId').val();
var websiteId = rowElement.find('.websiteId').val();
if (rowElement.find('.allowedBulkActions').val().indexOf('|' + what + '|') == -1) {
jQuery(elem).prop("checked", false);
countReceived++;
if (countReceived == countSent) {
countReceived = 0;
countSent = 0;
setTimeout(function () {
jQuery('#mainwp-do-pages-bulk-actions').prop("disabled", false);
}, 50);
}
return;
}
var data = mainwp_secure_data({
action: 'mainwp_page_' + what,
postId: pageId,
websiteId: websiteId
});
rowElement.html('
Please wait... | ');
jQuery.post(ajaxurl, data, function (response) {
if (response.error) {
rowElement.html('' + response.error + ' | ');
} else if (response.result) {
rowElement.html(' ' + response.result + ' | ');
if (jQuery(rowElement).hasClass('child')) {
jQuery(rowElement).prev().hide();
}
}
countReceived++;
if (countReceived == countSent) {
countReceived = 0;
countSent = 0;
jQuery('#mainwp-do-pages-bulk-actions').prop("disabled", false);
}
}, 'json');
return false;
};
mainwp_fetch_pages = function () {
var errors = [];
var selected_sites = [];
var selected_groups = [];
var selected_clients = [];
if (jQuery('#select_by').val() == 'site') {
jQuery("input[name='selected_sites[]']:checked").each(function () {
selected_sites.push(jQuery(this).val());
});
if (selected_sites.length == 0) {
errors.push('' + __('Please select websites or groups or clients.') + '
');
}
} else if (jQuery('#select_by').val() == 'client') {
jQuery("input[name='selected_clients[]']:checked").each(function () {
selected_clients.push(jQuery(this).val());
});
if (selected_clients.length == 0) {
errors.push('' + __('Please select websites or groups or clients.') + '
');
}
} else {
jQuery("input[name='selected_groups[]']:checked").each(function () {
selected_groups.push(jQuery(this).val());
});
if (selected_groups.length == 0) {
errors.push('' + __('Please select websites or groups or clients.') + '
');
}
}
var _status = '';
var statuses = jQuery("#mainwp_page_search_type").dropdown("get value");
if (statuses == null)
errors.push('Please select a page status.');
else {
_status = statuses.join(',');
}
if (errors.length > 0) {
jQuery('#mainwp_pages_error').html(errors.join('
'));
jQuery('#mainwp_pages_error').show();
return;
} else {
jQuery('#mainwp_pages_error').html("");
jQuery('#mainwp_pages_error').hide();
}
var data = mainwp_secure_data({
action: 'mainwp_pages_search',
keyword: jQuery('#mainwp_page_search_by_keyword').val(),
dtsstart: jQuery('#mainwp_page_search_by_dtsstart').val(),
dtsstop: jQuery('#mainwp_page_search_by_dtsstop').val(),
status: _status,
'groups[]': selected_groups,
'sites[]': selected_sites,
'clients[]': selected_clients,
maximum: jQuery("#mainwp_maximumPages").val(),
search_on: jQuery("#mainwp_page_search_on").val(),
});
jQuery('#mainwp-loading-pages-row').show();
jQuery.post(ajaxurl, data, function (response) {
response = response.trim();
jQuery('#mainwp-loading-pages-row').hide();
jQuery('#mainwp_pages_main').show();
jQuery('#mainwp_pages_wrap_table').html(response);
// re-initialize datatable
jQuery("#mainwp-pages-table").DataTable().destroy();
jQuery('#mainwp-pages-table').DataTable({
"responsive": true,
"colReorder": {
fixedColumnsLeft: 1,
fixedColumnsRight: 1
},
"stateSave": true,
"pagingType": "full_numbers",
"scrollX": true,
"lengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]],
"order": [],
"columnDefs": [{
"targets": 'no-sort',
"orderable": false
}],
"preDrawCallback": function () {
mainwp_table_check_columns_init(); // ajax: to fix checkbox all.
mainwp_datatable_fix_menu_overflow();
}
});
});
};
/**
* MainWP_Post.page
*/
var countSent = 0;
var countReceived = 0;
jQuery(document).ready(function () {
jQuery(document).on('click', '#mainwp_show_posts', function () {
mainwp_fetch_posts();
});
jQuery(document).on('click', '.post_submitdelete', function () {
mainwppost_postAction(jQuery(this), 'trash');
return false;
});
jQuery(document).on('click', '.post_submitpublish', function () {
mainwppost_postAction(jQuery(this), 'publish');
return false;
});
jQuery(document).on('click', '.post_submitunpublish', function () {
mainwppost_postAction(jQuery(this), 'unpublish');
return false;
});
jQuery(document).on('click', '.post_submitapprove', function () {
mainwppost_postAction(jQuery(this), 'approve');
return false;
});
jQuery(document).on('click', '.post_submitdelete_perm', function () {
mainwppost_postAction(jQuery(this), 'delete');
return false;
});
jQuery(document).on('click', '.post_submitrestore', function () {
mainwppost_postAction(jQuery(this), 'restore');
return false;
});
jQuery(document).on('click', '.post_getedit', function () {
mainwppost_postAction(jQuery(this), 'get_edit', 'post');
return false;
});
jQuery(document).on('click', '.page_getedit', function () {
mainwppost_postAction(jQuery(this), 'get_edit', 'page');
return false;
});
jQuery(document).on('click', '#mainwp-do-posts-bulk-actions', function () {
var action = jQuery('#mainwp-bulk-actions').val();
if (action != 'publish' && action != 'unpublish' && action != 'trash' && action != 'restore' && action != 'delete') {
return false;
}
var tmp = jQuery("input[name='post[]']:checked");
countSent = tmp.length;
if (countSent == 0)
return false;
var _callback = function () {
jQuery('#mainwp-do-posts-bulk-actions').attr('disabled', 'true');
tmp.each(
function (index, elem) {
mainwppost_postAction(elem, action);
}
);
}
if (action == 'delete') {
var msg = __('You are about to delete %1 post(s). Are you sure you want to proceed?', countSent);
mainwp_confirm(msg, _callback);
return false;
}
_callback();
return false;
});
});
mainwppost_postAction = function (elem, what, postType) {
var rowElement = jQuery(elem).closest('tr');
var postId = rowElement.find('.postId').val();
var websiteId = rowElement.find('.websiteId').val();
if (rowElement.find('.allowedBulkActions').val().indexOf('|' + what + '|') == -1) {
jQuery(elem).prop("checked", false);
countReceived++;
if (countReceived == countSent) {
countReceived = 0;
countSent = 0;
setTimeout(function () {
jQuery('#mainwp-do-posts-bulk-actions').prop("disabled", false);
}, 50);
}
return;
}
if (what == 'get_edit' && postType === 'page') {
postId = rowElement.find('.pageId').val();
}
var data = {
action: 'mainwp_post_' + what,
postId: postId,
websiteId: websiteId
};
if (typeof postType !== "undefined") {
data['postType'] = postType;
}
data = mainwp_secure_data(data);
rowElement.html(' Please wait... | ');
jQuery.post(ajaxurl, data, function (response) {
if (response.error) {
rowElement.html('' + response.error + ' | ');
} else if (response.result) {
rowElement.html(' ' + response.result + ' | ');
if (jQuery(rowElement).hasClass('child')) {
jQuery(rowElement).prev().hide();
}
} else {
rowElement.hide();
if (what == 'get_edit' && response.id) {
if (response.redirect_to) {
location.href = response.redirect_to;
} else if (postType == 'post') {
location.href = 'admin.php?page=PostBulkEdit&post_id=' + response.id;
} else if (postType == 'page') {
location.href = 'admin.php?page=PageBulkEdit&post_id=' + response.id;
}
}
}
countReceived++;
if (countReceived == countSent) {
countReceived = 0;
countSent = 0;
jQuery('#mainwp-do-posts-bulk-actions').prop("disabled", false);
}
}, 'json');
return false;
};
mainwp_show_post = function (siteId, postId, userId) {
var siteElement = jQuery('input[name="selected_sites[]"][siteid="' + siteId + '"]');
siteElement.prop('checked', true);
siteElement.trigger("change");
mainwp_fetch_posts(postId, userId);
};
/* eslint-disable complexity */
mainwp_fetch_posts = function (postId, userId, start_sites) {
var errors = [];
var selected_sites = [];
var selected_groups = [];
var selected_clients = [];
var i = 0;
var num_sites = jQuery('#search-bulk-sites').attr('number-sites');
num_sites = parseInt(num_sites);
var bulk_search = num_sites > 0 ? true : false;
if (jQuery('#select_by').val() == 'site') {
if (start_sites == undefined) {
start_sites = 0;
}
jQuery("input[name='selected_sites[]']:checked").each(function () {
if (bulk_search) {
if (i >= start_sites && i < start_sites + num_sites) {
selected_sites.push(jQuery(this).val());
}
i++;
} else {
selected_sites.push(jQuery(this).val());
}
});
if (selected_sites.length == 0) {
if (!bulk_search || (bulk_search && start_sites == 0)) {
errors.push('' + __('Please select at least one website or group or client.') + '
');
}
}
} else if (jQuery('#select_by').val() == 'client') {
jQuery("input[name='selected_clients[]']:checked").each(function () {
selected_clients.push(jQuery(this).val());
});
if (selected_clients.length == 0) {
errors.push('' + __('Please select at least one client or website, group.') + '
');
}
} else if (jQuery('#select_by').val() == 'group') {
jQuery("input[name='selected_groups[]']:checked").each(function () {
selected_groups.push(jQuery(this).val());
});
if (selected_groups.length == 0) {
errors.push('' + __('Please select at least one website or group or client.') + '
');
} else if (bulk_search) {
if (start_sites == undefined) {
console.log(num_sites);
start_sites = 0;
// get sites of groups.
var data = mainwp_secure_data({
action: 'mainwp_get_sites_of_groups',
'groups[]': selected_groups
});
jQuery('#mainwp-loading-posts-row').show();
jQuery.post(ajaxurl, data, function (response) {
var site_ids = response;
console.log(site_ids);
if (site_ids) {
jQuery("input[name='selected_sites[]'][bulk-search=true]").attr('bulk-search', false);
jQuery.each(site_ids, function (index, value) {
jQuery("input[name='selected_sites[]'][value=" + value + "]").attr('bulk-search', true);
});
}
mainwp_fetch_posts(postId, userId, start_sites);
}, 'json');
return;
}
console.log(jQuery("input[name='selected_sites[]'][bulk-search=true]").length);
jQuery("input[name='selected_sites[]'][bulk-search=true]").each(function () {
if (i >= start_sites && i < start_sites + num_sites) {
selected_sites.push(jQuery(this).val());
}
i++;
});
}
}
var _status = '';
var statuses = jQuery("#mainwp_post_search_type").dropdown("get value");
if (statuses == null)
errors.push('' + __('Please select at least one post status.') + '
');
else {
_status = statuses.join(',');
}
if (errors.length > 0) {
jQuery('#mainwp-message-zone').html(errors);
jQuery('#mainwp-message-zone').show();
return;
} else {
jQuery('#mainwp-message-zone').html("");
jQuery('#mainwp-message-zone').hide();
}
var data = mainwp_secure_data({
action: 'mainwp_posts_search',
keyword: jQuery('#mainwp_post_search_by_keyword').val(),
dtsstart: jQuery('#mainwp_post_search_by_dtsstart').val(),
dtsstop: jQuery('#mainwp_post_search_by_dtsstop').val(),
status: _status,
'groups[]': selected_groups,
'sites[]': selected_sites,
'clients[]': selected_clients,
postId: (postId == undefined ? '' : postId),
userId: (userId == undefined ? '' : userId),
post_type: jQuery("#mainwp_get_custom_post_types_select").val(),
maximum: jQuery("#mainwp_maximumPosts").val(),
search_on: jQuery("#mainwp_post_search_on").val()
});
if (bulk_search) {
if (start_sites > 0) {
data.table_content = 1;
}
if (selected_sites.length == 0) {
mainwp_fetch_posts_done();
return;
}
}
jQuery('#mainwp-loading-posts-row').show();
jQuery.post(ajaxurl, data, function (response) {
response = response.trim();
if (bulk_search && start_sites > 0) {
jQuery('#mainwp-posts-list').append(response);
} else {
jQuery('#mainwp-posts-table-wrapper').html(response);
}
if (bulk_search) {
start_sites = start_sites + num_sites;
mainwp_fetch_posts(postId, userId, start_sites);
} else {
mainwp_fetch_posts_done();
}
});
};
/* eslint-enable complexity */
mainwp_fetch_posts_done = function () {
jQuery('#mainwp-loading-posts-row').hide();
jQuery('#mainwp_posts_main').show();
var responsive = true;
if (jQuery(window).width() > 1140) {
responsive = false;
}
// re-initialize datatable.
jQuery("#mainwp-posts-table").DataTable().destroy();
jQuery('#mainwp-posts-table').DataTable({
"responsive": responsive,
"colReorder": {
fixedColumnsLeft: 1,
fixedColumnsRight: 1
},
"stateSave": true,
"pagingType": "full_numbers",
"order": [],
"scrollX": true,
"lengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]],
"columnDefs": [{
"targets": 'no-sort',
"orderable": false
}],
"preDrawCallback": function () {
jQuery('#mainwp-posts-table-wrapper table .ui.dropdown').dropdown();
jQuery('#mainwp-posts-table-wrapper table .ui.checkbox').checkbox();
mainwp_datatable_fix_menu_overflow();
mainwp_table_check_columns_init(); // ajax: to fix checkbox all.
}
});
}