(function ($) {
'use strict';
$(window).load(function () {
$('.js-create').on('click', function () {
removeErrorsAndSuccesses();
$('.js-documentation').removeClass('active');
$('.js-templates').removeClass('active');
$(this).addClass('active');
$('.acf-documentation').hide();
$('.acf-templates').hide();
$('.acf_form').show();
});
$('.js-templates').on('click', function () {
removeErrorsAndSuccesses();
$('.js-create').removeClass('active');
$('.js-documentation').removeClass('active');
$(this).addClass('active');
$('.acf_form').hide();
$('.acf-documentation').hide();
$('.acf-templates').show();
});
$('.js-documentation').on('click', function () {
removeErrorsAndSuccesses();
$('.js-create').removeClass('active');
$('.js-templates').removeClass('active');
$(this).addClass('active');
$('.acf_form').hide();
$('.acf-templates').hide();
$('.acf-documentation').show();
});
$('.js_check_all').on('click', function () {
if ($('.js_check_all').is(':checked')) {
$('.js_checkbox').prop('checked', true);
} else {
$('.js_checkbox').prop('checked', false);
}
});
function generateHtml(data) {
var html = "";
for (var key in data) {
if (data.hasOwnProperty(key)) {
// console.log(key + " -> " + data[key]);
html += "
" + data[key] + "delete";
}
}
return (html);
}
function destroyHtml(className) {
$('.' + className).children('li').remove();
}
function renderHtml(className, html) {
$('.' + className).append(html);
}
function updateTemplatesList() {
$.ajax({
url: ajax_object.ajaxurl, // this is the object instantiated in wp_localize_script function
type: 'POST',
data: {
action: 'list_templates'
},
success: function (data) {
var data = JSON.parse(data);
destroyHtml('templatesList');
var html = generateHtml(data);
renderHtml('templatesList', html);
//deleteElement();
},
error: function () {
console.log('Error!');
}
});
}
function isAtLeastOneCheckboxChecked() {
var isChecked = false;
$('.js_checkbox').each(function () {
if ($(this).is(":checked")) {
isChecked = true;
return isChecked;
}
});
return isChecked;
}
function resetForm() {
$('.js_check_all').prop("checked", false);
$('.js_checkbox').prop("checked", false);
$('#acf_ffc_template_name').val('Flexy');
}
function showError(type) {
$('.success').removeClass('show');
switch (type) {
case 'inputFields':
$('.emptyFelds').addClass('show');
break;
default:
$('.error').addClass('show');
}
}
function removeErrorsAndSuccesses() {
$('.success').removeClass('show');
$('.error').removeClass('show');
}
function showSuccess(type) {
if (type == "delete") {
$('.success.deleting').addClass('show');
} else {
$('.success.creating').addClass('show');
$('.error').removeClass('show');
}
}
$('.acf_form').on('submit', function (e) {
// Prevent form submission
e.preventDefault();
if (!isAtLeastOneCheckboxChecked()) {
showError('emptyFelds');
return;
}
var $form = $(e.target),
fv = $form.data('formValidation');
// Use Ajax to submit form data
$.ajax({
url: ajax_object.ajaxurl, // this is the object instantiated in wp_localize_script function
type: 'POST',
data: {
action: 'create_new_group',
data: $form.serialize()
},
success: function () {
showSuccess();
updateTemplatesList();
resetForm();
},
error: function () {
showError();
}
});
});
function deleteElementDom(data_filename) {
$("[data-filename='" + data_filename + "']").parent().remove();
}
$('body').on('click', '.js-delete', function () {
var popUpConfirm = confirm("Are you sure?");
if (!popUpConfirm) {
return;
}
var filename = $(this).data('filename');
deleteElementDom(filename);
//Use Ajax to submit form data
$.ajax({
url: ajax_object.ajaxurl, // this is the object instantiated in wp_localize_script function
type: 'POST',
data: {
action: 'create_new_delete',
data: {
'filename': filename
}
},
success: function () {
showSuccess('delete');
},
error: function () {
showError();
}
});
});
});
})(jQuery);