1 line
11 KiB
JavaScript
1 line
11 KiB
JavaScript
!function(s){"use strict";function a(a){let t=!0;return a.find("[required]").each(function(){e(s(this))||(t=!1)}),t}function e(s){let a=!0,e=s.closest(".aiovg-form-control"),t=s.val().trim();return""===t?(e.addClass("aiovg-form-invalid"),a=!1):e.removeClass("aiovg-form-invalid"),a}function t(s){return"."===s.charAt(s.length-1)?s.slice(0,-1):s}s(function(){s(".aiovg-date-picker").each(function(){"undefined"!=typeof flatpickr&&flatpickr(this,{dateFormat:"Y-m-d",allowInput:!0,disableMobile:!0})}),s("#aiovg-import-export").find("[required]").each(function(){s(this).on("blur keyup",function(){e(s(this))})}),s("#aiovg-field-csv_columns").on("change","select",function(){let a=[];s("#aiovg-field-csv_columns select").each(function(){let e=s(this).val().trim();e&&a.push(e)}),0===a.length?s("#aiovg-field-csv_columns").addClass("aiovg-form-invalid"):s("#aiovg-field-csv_columns").removeClass("aiovg-form-invalid")}),s("#aiovg-csv_file").on("change file.uploaded",function(){let a=s("#aiovg-field-csv_columns"),e=s("#aiovg-button-import-csv"),i=s("#aiovg-import-csv-status");a.find(".aiovg-form-grid").html(""),a.hide();let n=s("#aiovg-csv_file").val().trim();if(!n)return;e.prop("disabled",!0),i.html('<span class="spinner"></span> <span class="aiovg-text-success">'+t(aiovg_import_export.i18n.fetching_csv_columns)+'</span><span class="aiovg-animate-dots"></span>');let o={action:"aiovg_get_csv_columns",security:aiovg_admin.ajax_nonce,csv_file:n,columns_separator:s("#aiovg-columns_separator").val()};s.post(ajaxurl,o,function(s){if(!s.success){i.html('<span class="aiovg-text-error"><span class="dashicons dashicons-dismiss"></span> '+s.data.error+"</span>"),e.prop("disabled",!1);return}i.html('<span class="dashicons dashicons-info-outline"></span> <span>'+aiovg_import_export.i18n.csv_columns_loaded+"</span>"),e.prop("disabled",!1),a.find(".aiovg-form-grid").html(s.data.html),a.fadeIn(200)},"json")}),s("#aiovg-form-import-folder").on("submit",function(e){e.preventDefault();let i=s(this),n=i.find('button[type="submit"]'),o=i.find(".aiovg-form-status");if(!a(i)){o.html('<span class="aiovg-text-error"><span class="dashicons dashicons-dismiss"></span> '+aiovg_import_export.i18n.fields_required+"</span>"),s("html, body").animate({scrollTop:i.find(".aiovg-form-invalid").first().offset().top-75},300);return}n.prop("disabled",!0),o.html('<span class="spinner"></span> <span class="aiovg-text-success">'+t(aiovg_import_export.i18n.preparing_import)+'</span><span class="aiovg-animate-dots"></span>');let l=0,p=[],c=[],r=[],d=i.serializeArray();d.push({name:"action",value:"aiovg_import_folder"}),d.push({name:"security",value:aiovg_admin.ajax_nonce}),d.push({name:"limit",value:20}),d.push({name:"offset",value:l});let f=function(){d=d.map(s=>"offset"===s.name?{name:"offset",value:l}:s),s.ajax({url:ajaxurl,type:"POST",data:d,dataType:"json",timeout:6e4,success:function(a){if(!a.success){o.html('<span class="aiovg-text-error"><span class="dashicons dashicons-dismiss"></span> '+a.data.error+"</span>"),n.prop("disabled",!1);return}l=parseInt(a.data.offset),p=p.concat(a.data.imported),c=c.concat(a.data.skipped),r=r.concat(a.data.failed);let e=a.data.message;if(e=(e=(e=e.replace("%%imported%%",p.length)).replace("%%skipped%%",c.length)).replace("%%failed%%",r.length),"process"===a.data.step)o.html('<span class="spinner"></span> <span class="aiovg-text-success">'+t(e)+'</span><span class="aiovg-animate-dots"></span>'),setTimeout(f,100);else if("done"===a.data.step){let i='<span class="aiovg-text-success"><span class="dashicons dashicons-yes-alt"></span> '+e+"</span>";r.length>0&&(i+='<div class="aiovg-form-fieldset">',i+='<h3 class="aiovg-text-error">'+aiovg_import_export.i18n.import_folder_failed_status_heading+"</h3>",r.forEach(a=>{let e=s("<span>").text(a.split("/").pop()).html();i+='<a class="aiovg-status-item" href="'+encodeURI(a)+'" target="_blank">'+e+"</a>"}),i+="</div>"),o.html(i),n.prop("disabled",!1)}},error:function(){o.html('<span class="aiovg-text-error"><span class="dashicons dashicons-dismiss"></span> '+aiovg_import_export.i18n.request_failed+"</span>"),n.prop("disabled",!1)}})};f()}),s("#aiovg-form-import-csv").on("submit",function(e){e.preventDefault();let i=s(this),n=i.find('button[type="submit"]'),o=i.find(".aiovg-form-status");if(!a(i)||!function a(){let e=!0,t=[];s("#aiovg-field-csv_columns select").each(function(){let a=s(this).val().trim();a&&t.push(a)});let i=-1!==t.indexOf("post_title"),n=-1!==t.indexOf("video");return i&&n?s("#aiovg-field-csv_columns").removeClass("aiovg-form-invalid"):(s("#aiovg-field-csv_columns").addClass("aiovg-form-invalid"),e=!1),e}()){o.html('<span class="aiovg-text-error"><span class="dashicons dashicons-dismiss"></span> '+aiovg_import_export.i18n.fields_required+"</span>"),s("html, body").animate({scrollTop:i.find(".aiovg-form-invalid").first().offset().top-75},300);return}n.prop("disabled",!0),o.html('<span class="spinner"></span> <span class="aiovg-text-success">'+t(aiovg_import_export.i18n.preparing_import)+'</span><span class="aiovg-animate-dots"></span>');let l=0,p=[],c=[],r=[],d=[],f=[],m=i.serializeArray();m.push({name:"action",value:"aiovg_import_csv"}),m.push({name:"security",value:aiovg_admin.ajax_nonce}),m.push({name:"limit",value:20}),m.push({name:"offset",value:l});let u=function(){m=m.map(s=>"offset"===s.name?{name:"offset",value:l}:s),s.ajax({url:ajaxurl,type:"POST",data:m,dataType:"json",timeout:6e4,success:function(a){if(!a.success){o.html('<span class="aiovg-text-error"><span class="dashicons dashicons-dismiss"></span> '+a.data.error+"</span>"),n.prop("disabled",!1);return}l=parseInt(a.data.offset),p=p.concat(a.data.imported),c=c.concat(a.data.updated),r=r.concat(a.data.skipped),d=d.concat(a.data.failed),f=f.concat(a.data.errors);let e=a.data.message;if(e=(e=(e=(e=e.replace("%%imported%%",p.length)).replace("%%updated%%",c.length)).replace("%%skipped%%",r.length)).replace("%%failed%%",d.length),"process"===a.data.step)o.html('<span class="spinner"></span> <span class="aiovg-text-success">'+t(e)+'</span><span class="aiovg-animate-dots"></span>'),setTimeout(u,100);else if("done"===a.data.step){s("#aiovg-csv_file, #aiovg-zip_file").val("");let i='<span class="aiovg-text-success"><span class="dashicons dashicons-yes-alt"></span> '+e+"</span>";f.length>0&&(i+='<div class="aiovg-form-fieldset">',i+='<h3 class="aiovg-text-error">'+aiovg_import_export.i18n.import_csv_error_status_heading+"</h3>",f.forEach(s=>{i+='<span class="aiovg-status-item">'+s+"</span>"}),i+="</div>"),o.html(i),n.prop("disabled",!1)}},error:function(){o.html('<span class="aiovg-text-error"><span class="dashicons dashicons-dismiss"></span> '+aiovg_import_export.i18n.request_failed+"</span>"),n.prop("disabled",!1)}})};u()}),s("#aiovg-button-export-csv").on("click",function(a){a.preventDefault();let e=s(this),i=s("#aiovg-export-status");e.prop("disabled",!0),i.html('<span class="spinner"></span> <span class="aiovg-text-success">'+t(aiovg_import_export.i18n.preparing_export)+'</span><span class="aiovg-animate-dots"></span>');let n={action:"aiovg_export_csv",security:aiovg_admin.ajax_nonce,offset:0,limit:200,total:0,timestamp:new Date().toISOString().replace(/[-:T.Z]/g,"").slice(0,14),file_name:""},o=function(){s.ajax({url:ajaxurl,type:"POST",data:n,dataType:"json",timeout:6e4,success:function(s){if(!s.success){i.html('<span class="aiovg-text-error"><span class="dashicons dashicons-dismiss"></span> '+s.data.error+"</span>"),e.prop("disabled",!1);return}n.offset=parseInt(s.data.offset),n.total=parseInt(s.data.total),n.file_name=s.data.file_name,"process"===s.data.step?(i.html('<span class="spinner"></span> <span class="aiovg-text-success">'+t(s.data.message)+'</span><span class="aiovg-animate-dots"></span>'),setTimeout(o,100)):"done"===s.data.step&&(i.html('<span class="aiovg-text-success"><span class="dashicons dashicons-yes-alt"></span> '+s.data.message+"</span>"),e.prop("disabled",!1))},error:function(){i.html('<span class="aiovg-text-error"><span class="dashicons dashicons-dismiss"></span> '+aiovg_import_export.i18n.request_failed+"</span>"),e.prop("disabled",!1)}})};o()}),s("#aiovg-button-export-zip").on("click",function(a){a.preventDefault();let e=s(this),i=s("#aiovg-export-status");e.prop("disabled",!0),i.html('<span class="spinner"></span> <span class="aiovg-text-success">'+t(aiovg_import_export.i18n.preparing_export)+'</span><span class="aiovg-animate-dots"></span>');let n=[],o=[],l=0,p={action:"aiovg_export_zip",security:aiovg_admin.ajax_nonce,offset:0,limit:50,total:l,timestamp:new Date().toISOString().replace(/[-:T.Z]/g,"").slice(0,14)},c=function(){s.ajax({url:ajaxurl,type:"POST",data:p,dataType:"json",timeout:6e4,success:function(a){if(!a.success){i.html('<span class="aiovg-text-error"><span class="dashicons dashicons-dismiss"></span> '+a.data.error+"</span>"),e.prop("disabled",!1);return}if(Array.isArray(a.data.zip_files)&&a.data.zip_files.forEach(function(s){-1===n.indexOf(s)&&n.push(s)}),o=o.concat(a.data.skipped),l=parseInt(a.data.total),p.offset=parseInt(a.data.offset),p.total=l,"process"===a.data.step)i.html('<span class="spinner"></span> <span class="aiovg-text-success">'+t(a.data.message)+'</span><span class="aiovg-animate-dots"></span>'),setTimeout(c,100);else if("done"===a.data.step){let r=a.data.message;0===n.length&&(r=aiovg_import_export.i18n.export_zip_empty_status);let d='<span class="aiovg-text-success"><span class="dashicons dashicons-yes-alt"></span> '+(r=(r=r.replace("%%skipped%%",o.length)).replace("%%exported%%",l-o.length))+"</span>";n.length>0&&(d+='<div class="aiovg-form-fieldset">',d+="<h3>"+aiovg_import_export.i18n.export_zip_success_status_heading+"</h3>",n.forEach(a=>{let e=s("<span>").text(a.split("/").pop()).html();d+='<a class="aiovg-status-item" href="'+encodeURI(a)+'" target="_blank">'+e+"</a>"}),d+="</div>"),o.length>0&&(d+='<div class="aiovg-form-fieldset">',d+='<h3 class="aiovg-text-error">'+aiovg_import_export.i18n.export_zip_failed_status_heading+"</h3>",o.forEach(a=>{let e=s("<span>").text(a.split("/").pop()).html();d+='<a class="aiovg-status-item" href="'+encodeURI(a)+'" target="_blank">'+e+"</a>"}),d+="</div>"),i.html(d),e.prop("disabled",!1)}},error:function(){i.html('<span class="aiovg-text-error"><span class="dashicons dashicons-dismiss"></span> '+aiovg_import_export.i18n.request_failed+"</span>"),e.prop("disabled",!1)}})};c()}),s(document).on("click",".aiovg-export-email-leads",function(a){a.preventDefault();let e=s(this),t=parseInt(e.data("video-id"))||0,i="",n="",o=e.closest("#aiovg-form-export-email-leads");o.length&&(i=o.find('[name="date_from"]').val()||"",n=o.find('[name="date_to"]').val()||"");let l="action=aiovg_export_email_leads_csv";l+="&security="+encodeURIComponent(aiovg_admin.ajax_nonce),l+="&video_id="+t,l+="&date_from="+encodeURIComponent(i),l+="&date_to="+encodeURIComponent(n),window.location.href=ajaxurl+"?"+l})})}(jQuery); |