Current File : /home/resuelf/www/wp-content/plugins/auto-post-thumbnail/admin/assets/js/generate.js |
jQuery(function ($) {
var chart = $('#wapt-main-chart');
var ctx = document.getElementById('wapt-main-chart');
window.wapt_chart = new window.apthumb.Chart(ctx, {
type: 'doughnut',
data: {
datasets: [
{
data: [
chart.attr('data-no_featured_image'),
chart.attr('data-w_featured_image'),
chart.attr('data-errors'),
],
backgroundColor: [
'#d6d6d6',
'#8bc34a',
'#f1b1b6',
],
spacing: 0,
borderWidth: 0,
label: 'Dataset 1'
}
]
},
options: {
legend: {
display: false
},
events: [],
animation: {
easing: 'easeOutBounce'
},
responsive: false,
cutoutPercentage: 80
}
});
var bulkGeneration = {
inprogress: false,
rt_images: [],
rt_total: 0,
rt_count: 1,
rt_percent: 0,
posted_count: 0,
genpostthumbsbar: $("#genpostthumbsbar"),
init: function () {
this.startGenButton = $('#generate-post-thumbnails');
this.startUnsetButton = $('#delete-post-thumbnails');
this.registerEvents();
},
registerEvents: function () {
var self = this;
this.startGenButton.on('click', function () {
self.generate();
return false;
});
this.startUnsetButton.on('click', function () {
self.unSetImages();
return false;
});
},
button_running: function (selector) {
if (selector.hasClass('wapt-running')) {
selector.removeClass('wapt-running');
this.startGenButton.removeAttr('disabled');
this.startUnsetButton.removeAttr('disabled');
} else {
selector.addClass('wapt-running');
this.startGenButton.attr('disabled', 'disabled');
this.startUnsetButton.attr('disabled', 'disabled');
}
},
/**
* Start generation
*/
generate: function () {
var self = this;
this.inprogress = true;
self.rt_images = [];
this.button_running(this.startGenButton);
this.genpostthumbsbar.show();
progressbar = this.genpostthumbsbar.progressbar();
progressbar.find(".ui-progressbar-value").css({
"background": '#c9deb2',
});
progressbar.find(".ui-widget-content").css({
"border": '0',
});
$("#genpostthumbsbar-percent").html("0%");
var get_posts_data = {
action: "get-posts-ids",
withThumb: 0,
_ajax_nonce: wapt.nonce_get_posts
};
if (wapt.is_premium) {
$.extend(get_posts_data, {
poststatus: $("#filter_poststatus").val(),
posttype: $("#filter_posttype").val(),
date_start: $("#filter_startdate").val(),
date_end: $("#filter_enddate").val(),
category: $("#filter_postcategory").val()
});
}
$.post("admin-ajax.php", get_posts_data, function (result) {
if (result.success && result.data !== '' || result.data !== 0) {
//var ids = result.data;
self.rt_images = result.data;
self.rt_total = self.rt_images.length;
self.rt_count = 1;
self.rt_percent = 0;
self.posted_count = 0;
self.genPostThumb(self.rt_images.shift());
} else {
setTimeout(function () {
self.genpostthumbsbar.hide();
self.genpostthumbsbar.progressbar("value", 0);
self.button_running(self.startGenButton);
noticeId = $.wbcr_factory_templates_116.app.showNotice("<p><strong>" + wapt.i8n_processed_posts + " 0</strong></p>", 'success');
}, 500);
}
});
},
/**
* Start unset images
*/
unSetImages: function () {
var self = this;
this.inprogress = true;
if (!confirm('Are sure to delete thumbnails from posts?'))
return;
self.rt_images = [];
this.button_running(this.startUnsetButton);
this.genpostthumbsbar.show();
this.genpostthumbsbar.progressbar();
$("#genpostthumbsbar-percent").html("1%");
var get_posts_ids_data = {
action: "get-posts-ids",
withThumb: 1,
_ajax_nonce: wapt.nonce_get_posts
};
if (wapt.is_premium) {
$.extend(get_posts_ids_data, {
poststatus: $("#filter_poststatus").val(),
posttype: $("#filter_posttype").val(),
date_start: $("#filter_startdate").val(),
date_end: $("#filter_enddate").val(),
category: $("#filter_postcategory").val()
});
}
$.post("admin-ajax.php", get_posts_ids_data, function (result) {
if (result.success && result.data !== '' || result.data !== 0) {
self.rt_images = result.data;
self.rt_total = self.rt_images.length;
self.rt_count = 1;
self.rt_percent = 0;
self.posted_count = 0;
self.delPostThumb(self.rt_images.shift());
}
});
},
delPostThumb: function (id) {
var self = this;
$.post("admin-ajax.php", {
action: "delete_post_thumbnails",
id: id,
_ajax_nonce: wapt.nonce_del_post_thumbs
}, function (posted) {
if (Boolean(posted)) {
self.posted_count++;
}
self.rt_percent = (self.rt_count / self.rt_total) * 100;
self.genpostthumbsbar.progressbar("value", self.rt_percent);
$("#genpostthumbsbar-percent").html(Math.round(self.rt_percent) + "%");
self.rt_count++;
if (self.rt_images.length) {
self.delPostThumb(self.rt_images.shift());
} else {
setTimeout(function () {
self.genpostthumbsbar.hide();
self.genpostthumbsbar.progressbar("value", 0);
self.button_running(self.startUnsetButton);
noticeId = $.wbcr_factory_templates_116.app.showNotice(wapt.i8n_processed_posts + self.rt_total + "<br>" + wapt.i8n_del_images + self.posted_count, 'success');
}, 500);
}
});
},
genPostThumb: function (id) {
var self = this;
$.post("admin-ajax.php", {
action: "generatepostthumbnail",
id: id,
_ajax_nonce: wapt.nonce_gen_post_thumbs
}, function (response) {
if (response.success) {
self.posted_count++;
}
self.rt_percent = (self.rt_count / self.rt_total) * 100;
self.genpostthumbsbar.progressbar("value", self.rt_percent);
$("#genpostthumbsbar-percent").html(Math.round(self.rt_percent) + "% (" + self.rt_count + "/" + self.rt_total + ")");
self.rt_count++;
if (response.data) {
self.updateLog(response.data);
}
if (self.rt_images.length) {
self.genPostThumb(self.rt_images.shift());
} else {
setTimeout(function () {
//self.genpostthumbsbar.hide();
//self.genpostthumbsbar.progressbar("value", 0);
self.button_running(self.startGenButton);
noticeId = $.wbcr_factory_templates_116.app.showNotice(wapt.i8n_processed_posts + self.rt_total + "<br>" + wapt.i8n_set_images + self.posted_count, 'success');
}, 500);
}
});
},
showMessage: function (text) {
var contanier = $('.wapt-page-statistic'),
message;
if (contanier.find('.wapt-statistic-message').length) {
message = contanier.find('.wapt-statistic-message');
} else {
message = $('<div>');
message.addClass('wapt-statistic-message');
contanier.append(message);
}
message.html(text);
},
destroyMessages: function () {
$('.wapt-page-statistic').find('.wapt-statistic-message').empty();
},
updateLog: function (new_item_data) {
var self = this;
var limit = 100,
tableEl = $('.wapt-generation-progress .wapt-table');
if (!tableEl.length || !new_item_data) {
return;
}
// если таблица была пустая
if ($('.wapt-table-container-empty').length) {
$('.wapt-table-container-empty').addClass('wapt-table-container').removeClass('wapt-table-container-empty');
if (tableEl.find('tbody').length) {
tableEl.find('tbody').empty();
}
}
$.each(new_item_data, function (index, value) {
var trEl = $('<tr>'),
tdEl = $('<td>');
if (tableEl.find('.wapt-row-id-' + value.post_id).length) {
tableEl.find('.wapt-row-id-' + value.post_id).remove();
}
trEl.addClass('flash').addClass('wapt-table-item').addClass('wapt-row-id-' + value.post_id);
if ('error' === value.type) {
trEl.addClass('wapt-error');
}
var preview = $('<img height="50" src="' + value.thumbnail_url + '" alt="">'),
previewUrl = $('<a href="' + value.url + '" target="_blank">' + value.title + '</a>');
tableEl.prepend(trEl);
if (value.error_msg) {
var colspan = '3';
trEl.append(tdEl.clone().addClass('wapt-image-td').append(''));
trEl.append(tdEl.clone().addClass('wapt-title-td').append(previewUrl));
trEl.append(tdEl.clone().text(''));
trEl.append(tdEl.clone().text(value.type));
trEl.addClass('wapt-error').append(tdEl.clone().text(value.error_msg));
} else {
trEl.append(tdEl.clone().addClass('wapt-image-td').append(preview));
trEl.append(tdEl.clone().addClass('wapt-title-td').append(previewUrl));
trEl.append(tdEl.clone().text(value.image_size));
trEl.append(tdEl.clone().text(value.type));
trEl.append(tdEl.clone().text(value.status));
}
});
if (tableEl.find('tr').length > limit) {
var diff = tableEl.find('tr').length - limit;
for (var i = 0; i < diff; i++) {
tableEl.find('tr:last').remove();
}
}
}
};
$(document).ready(function () {
bulkGeneration.init();
$('[data-toggle="tooltip"]').tooltip();
});
var ajaxUrl = ajaxurl;
var ai_data;
function redraw_statistics(statistic) {
$('#wapt-main-chart').attr('data-unoptimized', statistic.unoptimized)
.attr('data-optimized', statistic.optimized)
.attr('data-errors', statistic.error);
$('#wapt-total-optimized-attachments').text(statistic.optimized); // optimized
$('#wapt-original-size').text(bytesToSize(statistic.original_size));
$('#wapt-optimized-size').text(bytesToSize(statistic.optimized_size));
$('#wapt-total-optimized-attachments-pct').text(statistic.save_size_percent + '%');
$('#wapt-overview-chart-percent').html(statistic.optimized_percent + '<span>%</span>');
$('.wapt-total-percent').text(statistic.optimized_percent + '%');
$('#wapt-optimized-bar').css('width', statistic.percent_line + '%');
$('#wapt-unoptimized-num').text(statistic.unoptimized);
$('#wapt-optimized-num').text(statistic.optimized);
$('#wapt-error-num').text(statistic.error);
var credits = $('.wapt-premium-user-balance');
if (credits.attr('data-server') !== "server_5") {
credits.text(statistic.credits);
}
if ($('.wapt-statistic-nav li.active').length) {
$('.wapt-statistic-nav li.active').find('span.wapt-statistic-tab-percent').text(statistic.optimized_percent + '%');
}
window.wio_chart.data.datasets[0].data[0] = statistic.unoptimized; // unoptimized
window.wio_chart.data.datasets[0].data[1] = statistic.optimized; // optimized
window.wio_chart.data.datasets[0].data[2] = statistic.error; // errors
window.wio_chart.update();
if ($('#wapt-overview-chart-percent').text() == '100%') {
window.onbeforeunload = null;
}
}
})
;