Plugin Directory

Changeset 3443538


Ignore:
Timestamp:
01/20/2026 07:45:49 PM (4 weeks ago)
Author:
cssimmon
Message:

Commit 2.10

Location:
wp-backitup/trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • wp-backitup/trunk/js/wp-backitup-admin.min.js

    r3345748 r3443538  
    1 var WPBNewBackupData={},ajaxSafeNamespace="wp-backitup",ENUM={GDRIVE:"GDRIVE",AMAZONS3:"AMAZONS3",DROPBOX:"DROPBOX"},CLOUDSTATUS={READY:"ready",UPLOADING:"uploading",UPLOADED:"uploaded",ERROR:"error"},debugFlag=!1;if(void 0===WPBackItUpSafeLocals)var WPBackItUpSafeLocals=[];var wpbackitup_get_action_name=function(a){return ajaxSafeNamespace+"_"+a},AjaxGetSafe=function(a){return jQuery.ajax({url:ajaxurl,type:"GET",data:{action:wpbackitup_get_action_name(a),security:WPBackItUpSafeLocals[a]},dataType:"json"})},AjaxGetCore=function(a){var e=wpbackitup_local[a];return jQuery.ajax({url:ajaxurl,type:"GET",data:{action:"wp-backitup_"+a,security:e},dataType:"json"})},AjaxPostSafe=function(a,e){return(e=e||{}).action=wpbackitup_get_action_name(a),e.security=WPBackItUpSafeLocals[a],jQuery.ajax({url:ajaxurl,type:"POST",data:e,dataType:"json"})};!function(){"use strict";if(document.querySelector("#wpbackitup-core-backup"))var i=new Vue({el:"#wpbackitup-core-backup",data:{cloudStatus:{},isNewRowAvailable:!1,backupNewRow:{}},methods:{getAvailableBackups:function(){AjaxGetCore("get_available_backups").then(function(a){if(a.success)for(var e=0;e<a.data.length;e++){var t=a.data[e].backup_job_id,s=a.data[e].backup_job_cloud_status;i.$set(i.cloudStatus,t,s)}})},getBackupStatus:function(){var a=WPBNewBackupData;if("success"===a.backupStatus){var e=a.backupName,t=e.lastIndexOf("_"),s=e.substring(t+1);this.isNewRowAvailable=!0,this.backupNewRow={name:a.backupName,type:a.backupRuntype,date:a.backupDate,duration:a.backupDuration,status:a.backupStatus,row:99999,jobId:s,zipExist:!0},WPBNewBackupData={}}}},mounted:function(){this.getAvailableBackups(),this.getBackupStatusInterval=setInterval(function(){0!==Object.keys(WPBNewBackupData).length&&this.getBackupStatus()}.bind(this),1e3),this.getAvailableBackupsInterval=setInterval(function(){this.getAvailableBackups()}.bind(this),3e3)},beforeDestroy:function(){clearInterval(this.getAvailableBackupsInterval),clearInterval(this.getBackupStatusInterval)}})}(jQuery),function(u){var a,e,t="wp-backitup",s=0;r(),p();try{"undefined"!=typeof wpbackitup_plupload_config&&(a=wpbackitup_plupload_config,(e=new plupload.Uploader(a)).init(),e.bind("FilesAdded",function(a,e){plupload.each(e,function(a){u("#filelist").append('<div id="media-item-'+a.id+'" class="media-item child-of-0"><img class="pinkynail" alt="" src="'+site_url+'/wp-includes/images/media/archive.png"><div class="filename new" id="'+a.id+'">'+a.name+" (<span>"+plupload.formatSize(0)+"</span> of "+plupload.formatSize(a.size)+') <div class="progress" style="width: 0%;"></div></div></div>')}),a.refresh(),a.start()}),e.bind("UploadProgress",function(a,e){u("#"+e.id+" .progress").width(.15*e.percent+"%"),u("#"+e.id+" span").html(plupload.formatSize(parseInt(e.size*e.percent/100)))}),e.bind(" ChunkUploaded",function(a,e,t){console.log("Chunk Uploaded:"),console.log(t),_(t,a,e)&&console.log("chunk error")}),e.bind("Error",function(a,e){console.log("PlUpload Error:"),console.log(e);var t="error-item-"+e.file.id;u("#"+t).length||u("#filelist").append('<div class="error-div error" id="'+t+'" ><strong>'+e.file.name+" has failed to upload due to error:&nbsp;</strong> <span>"+e.message+"</span> </div>")}),e.bind("FileUploaded",function(a,e,t){console.log("File Uploaded"),console.log(t),_(t,a,e)?console.log("uploaded error"):(console.log("uploaded success"),u("#"+e.id+" .progress").css("background-color","green"),u("#import-uploads").show())}))}catch(a){console.log(a)}function r(){u(".viewloglink").on("click",function(){var a=u(this).attr("href");return u("#backup_name").val(a),u("#viewlog").trigger("submit"),!1})}function p(){u(".downloadbackuplink").on("click",function(){var a=u(this).attr("href");return u("#backup_file").val(a),u(this).append('<span class="dashicons dashicons-yes"></span>'),u(this).css({color:"green"}),u("#download_backup").trigger("submit"),!1})}function c(a,e,t){var s="Error-Invalid response from server:  ";e&&(s+=e+"\n"),t&&(s+=t+"\n"),s+="\nResponse: \n\n"+JSON.stringify(a),alert(s)}function i(){var a={action:k("restore_status_reader"),job_id:s,security:wpbackitup_local.backup_nonce};u.post(ajaxurl,a,function(a){u(a).each(function(){var a="."+u(this).attr("class"),e="."+u(this).attr("class")+"-icon";0==u(this).html()&&(u(a).find(".status").hide(),u(a).find(".status-icon").hide()),1==u(this).html()&&(u(e).css("visibility","visible"),u(a).find(".status").fadeOut(200),u(a).find(".status-icon").fadeIn(1500)),2==u(this).html()&&(u(a).find(".status-icon").fadeOut(200),u(a).find(".status").fadeIn(1500)),-1==u(this).html()&&(u(a).find(".status-icon").fadeOut(200),u(a).find(".fail").fadeIn(1500),u(a).find(".isa_error").fadeIn(1500),clearInterval(window.intervalDefine)),-2==u(this).html()&&u(a).find(".isa_warning").fadeIn(1500),99==u(this).html()&&(u(a).find(".isa_success").fadeIn(1500),clearInterval(window.intervalDefine))})})}function o(){var a={action:k("backup_status_reader"),job_id:s};u.post(ajaxurl,a,function(a){if(b)return clearInterval(window.intervalDefine),u(".status-icon").fadeOut(200),u("#backup-button").prop("disabled",!1),u("#cancel-button").addClass("button-hidden").fadeOut(200),u("#backup-button").removeClass("button-hidden").fadeIn(200),u(".backup-cancelled").fadeIn(200),!1;u(a).each(function(){var a="."+u(this).attr("class"),e="."+u(this).attr("class")+"-icon";0==u(this).html()&&(u(a).find(".status").hide(),u(a).find(".status-icon").hide()),1==u(this).html()&&(u(e).css("visibility","visible"),u(a).find(".status").fadeOut(200),u(a).find(".status-icon").fadeIn(1500)),2==u(this).html()&&(u(a).find(".status-icon").fadeOut(200),u(a).find(".status").fadeIn(1500)),-1==u(this).html()&&(u(a).find(".status-icon").fadeOut(200),u(a).find(".fail").fadeIn(1500),clearInterval(window.intervalDefine),n()),-2==u(this).html()&&(u(a).find(".status-icon").fadeOut(200),u(a).find(".wpbackitup-warning").fadeIn(1500)),99==u(this).html()&&(u(a).find(".status-icon").fadeOut(200),u(a).find(".status").fadeIn(1500),clearInterval(window.intervalDefine),n())})})}u(".logs_backup").on("click",function(){var a=u(this).attr("href");return u("#backup_file").val(a),u("#download_logs").val(),u("#download_backup").trigger("submit"),!1}),u("#scheduled-backups-accordian").on("click",function(){scheduled_backups=u("#scheduled-backups"),scheduled_backups_button=u("#scheduled-backups-accordian"),u(this).is(".dashicons-arrow-down")?(scheduled_backups.fadeIn("slow"),scheduled_backups_button.toggleClass("dashicons-arrow-down",!1),scheduled_backups_button.toggleClass("dashicons-arrow-up",!0)):(scheduled_backups_button.toggleClass("dashicons-arrow-down",!0),scheduled_backups_button.toggleClass("dashicons-arrow-up",!1),scheduled_backups.fadeOut("slow"))}),u("#upload-backups-accordian").on("click",function(){upload_backups=u("#wpbackitup-plupload-modal"),upload_backups_button=u("#upload-backups-accordian"),u(this).is(".dashicons-arrow-down")?(upload_backups.fadeIn("slow"),upload_backups_button.toggleClass("dashicons-arrow-down",!1),upload_backups_button.toggleClass("dashicons-arrow-up",!0)):(upload_backups_button.toggleClass("dashicons-arrow-down",!0),upload_backups_button.toggleClass("dashicons-arrow-up",!1),upload_backups.fadeOut("slow"))}),u("#wpbackitup-zip").on("change",function(){var a=this.files[0].size,e=u("#maxfilesize").val();"undefined"!=a&&"undefined"!=e&&""!=a&&""!=e&&e<a&&(alert(wpbackitup_local.upload_file_size_exceed),u("#wpbackitup-zip").val(""))}),u("#import-uploads").on("click",function(){setTimeout(function(){window.location.reload()},100)}),u(document.body).on("click",".thickbox",function(){if(!u(this).parents(".wpbiu-restore-item").length){var a=u(this).data("jobid");console.log(a),function(e,a){k("backup_zip_filelist");var t=a.replace(/[^A-Za-z0-9\-]/g,""),i=0,o="",n='<div id="'+t+'">            <h2>'+wpbackitup_local.bl_backup_set+"&nbsp; <em>"+a+'</em></h2>            <div class="wpbiu-notes">            <textarea class="backupnotes" id="wpbiu-note-box" placeholder="'+wpbackitup_local.bl_note_placeholder+'"></textarea>            <button id="wpbiu-note-btn" class="button-primary">'+wpbackitup_local.bl_note_save+'</button><span id="wpbiu-note-response">'+wpbackitup_local.bl_note_saved_success+"</span></div>            <p>"+wpbackitup_local.bl_backup_download+'</p>            <table class="widefat" id="datatable">              <tbody>';u.ajax({url:ajaxurl,type:"POST",data:{action:k("backup_zip_filelist"),job_id:e,security:wpbackitup_local.backup_nonce},dataType:"json"}).done(function(a){a.data?(u.each(a.data,function(){var a=u(this)[0].name.split(/[\/]+/).pop(),e=u(this)[0].size,t=u(this)[0].file_exists;if(console.log(a,e),-1<a.indexOf("-backupset-"))o='<p><a class="downloadbackuplink" href="'+a+'"><span class="dashicons dashicons-download wpb-download-large"></span> <strong>'+wpbackitup_local.bl_backup_download_single+"</strong></a>                                          <br><em>"+wpbackitup_local.bl_please_note+e+wpbackitup_local.bl_may_timeout+"</em></p>";else{var s="";++i%2!=0&&(s="alternate"),n+='<tr class="'+s+'" id="row'+i+'">',n+=t?'<td><a class="downloadbackuplink" href="'+a+'">'+a+"</a></td>":"<td>"+a+"</td>",n+="<td>"+e+"</td>                         </tr>"}}),n+=o+"</tbody></table></div>",u("#TB_ajaxContent").html(n),p(),u.ajax({url:ajaxurl,type:"post",data:{action:k("backup_get_note"),job_id:e,security:wpbackitup_local.backup_nonce},success:function(a){u("#wpbiu-note-box").val(a.data)}}),u("#wpbiu-note-btn").on("click",function(){var a=u("#wpbiu-note-box").val();u.ajax({url:ajaxurl,type:"POST",data:{action:k("backup_add_note"),job_id:e,note:a,security:wpbackitup_local.backup_nonce},dataType:"json"}).done(function(a){u("#wpbiu-note-response").fadeIn()})}),u("#wpbiu-note-box").on("focus",function(){u("#wpbiu-note-response").hide()})):c(a,null,null)}).fail(function(a,e,t){c(a,e,t)})}(a,this.name)}}),u(document.body).on("click",".thickbox",function(){var e=u(this).data("jobid"),a=u(this).attr("name");if(u(this).parents(".wpbiu-restore-item").length){var t="<h2>"+wpbackitup_local.bl_backup_set+"&nbsp;<em>"+a+'</em></h2>              <div class="wpbiu-notes">                 <textarea class="backupnotes" id="wpbiu-restore-note-box" placeholder="'+wpbackitup_local.bl_note_placeholder+'"></textarea>                 <button id="wpbiu-restore-note-btn" class="button-primary">'+wpbackitup_local.bl_note_save+'</button>                 <span id="wpbiu-restore-note-response">'+wpbackitup_local.bl_note_saved_success+"</span>               </div>";u("#wpbiu-restore-note").html(t),u("#wpbiu-restore-note-response").hide(),u.ajax({url:ajaxurl,type:"post",data:{action:k("backup_get_note"),job_id:e,security:wpbackitup_local.backup_nonce},success:function(a){u("#wpbiu-restore-note-box").val(a.data)}}),u("#wpbiu-restore-note-btn").on("click",function(){var a=u("#wpbiu-restore-note-box").val();u.ajax({url:ajaxurl,type:"POST",data:{action:k("backup_add_note"),job_id:e,note:a,security:wpbackitup_local.backup_nonce},dataType:"json"}).done(function(a){u("#wpbiu-restore-note-response").fadeIn()})})}u("#wpbiu-restore-note-box").on("focus",function(){u("#wpbiu-restore-note-response").hide()})});var d=!1;function n(){u.ajax({url:ajaxurl,type:"POST",data:{action:k("backup_response_reader"),job_id:s},dataType:"json"}).always(function(a,e,t){if(console.log("Backup Response:"+JSON.stringify(a)),void 0!==a.backupStatus&&void 0!==a.backupMessage){if(console.log("JSON Backup Status:"+a.backupStatus),console.log("JSON Backup Message:"+a.backupMessage),d)return;switch(d=!0,a.backupStatus){case"success":if(console.log("JSON success response received."),u(".status-icon").fadeOut(200),u("#backup-button").prop("disabled",!1),u("#cancel-button").addClass("button-hidden").fadeOut(200),u("#backup-button").removeClass("button-hidden").fadeIn(200),u(".isa_success").show,u(".backup-success").fadeIn(1500),void 0!==(l=a)&&(WPBNewBackupData=l,u("#nofiles")&&u("#nofiles").remove(),r(),p()),void 0!==a.backupWarnings){var s=u(".backup-warning");a.backupWarnings.forEach(function(a){var e=a.warningMessage;s.append('<li class="isa_warning">'+wpbackitup_local.warning+": "+e+"</li>")}),s.fadeIn(1500)}break;case"error":console.log("JSON error response received.");var i=wpbackitup_local.unexpected_err;void 0!==a.backupMessage&&(i=a.backupMessage);var o=wpbackitup_local.error+": &nbsp;"+i,n=u(".backup-error");n.html(o),n.addClass("isa_error"),n.fadeIn(1500),u(".status-icon").fadeOut(200),u("#backup-button").prop("disabled",!1),u("#cancel-button").addClass("button-hidden").fadeOut(200),u("#backup-button").removeClass("button-hidden").fadeIn(200);break;default:console.log("Unexpected JSON response status received.");i=wpbackitup_local.unexpected_err2;void 0!==a.backupMessage&&(i=a.backupMessage);o=wpbackitup_local.error+"(JS998) : &nbsp;"+i;(c=u(".backup-error")).html(o),c.addClass("isa_error"),c.fadeIn(1500),u(".status-icon").fadeOut(200),u("#backup-button").prop("disabled",!1),u("#cancel-button").addClass("button-hidden").fadeOut(200),u("#backup-button").removeClass("button-hidden").fadeIn(200)}}else{var c;console.log("NON JSON response received."),console.log("Backup Response:"+t),o=wpbackitup_local.unexpected_err3+": &nbsp;",o+="</br>"+wpbackitup_local.response+": &nbsp;"+JSON.stringify(a),o+="</br>"+wpbackitup_local.status+": &nbsp;"+e,o+="</br>"+wpbackitup_local.error+": &nbsp;"+JSON.stringify(t),u(".backup-status").hide(),(c=u(".backup-error")).html(o),c.addClass("isa_error"),c.show(),u(".status-icon").fadeOut(200)}var l})}u("#wp-backitup-notification-widget-close").on("click",function(){notification_bar=u("#wp-backitup-notification-widget"),notification_bar.fadeOut("slow"),u.ajax({url:ajaxurl,type:"POST",data:{action:k("delete_transient")},dataType:"json"}).always(function(a,e,t){!1!==a&&(notification_bar.removeClass(),notification_bar.addClass("notice"),notification_bar.addClass("notice-"+a.message_type),u("#wp-backitup-notification-widget-message p").html(a.message),notification_bar.hide().fadeIn("slow"))})}),u("#wp-backitup-notification-close").on("click",function(){notification_bar=u("#wp-backitup-notification-parent"),notification_bar.fadeOut("slow")}),u("#wp-backitup-save_schedule_form").on("submit",function(){var a=new FormData;a.append("action",k("update-schedule")),a.append("_wpnonce",u("#wp-backitup_nonce-update-schedule").val()),a.append("_wp_http_referer",u("[name='_wp_http_referer']").val());var e=[];return u.each(u("input[name='dow']:checked"),function(){e.push(u(this).val())}),a.append("days_selected",e),jQuery.ajax({url:ajaxurl,type:"POST",cache:!1,contentType:!1,processData:!1,dataType:"json",data:a,success:function(a,e,t){switch(response=a.message,console.log("Success:"+response),response){case"success":i=wpbackitup_local.scheduled_saved,notification_bar_message=u("#wp-backitup-notification-message"),notification_bar_message.html("<p>"+i+"</p>"),notification_bar=u("#wp-backitup-notification-parent"),notification_bar.toggleClass("error",!1),notification_bar.toggleClass("updated",!0),notification_bar.show(),u("html, body").animate({scrollTop:0},"slow");break;case"error":s=wpbackitup_local.scheduled_not_saved,notification_bar_message=u("#wp-backitup-notification-message"),notification_bar_message.html("<p>"+s+"</p>"),notification_bar=u("#wp-backitup-notification-parent"),notification_bar.toggleClass("updated",!1),notification_bar.toggleClass("error",!0),notification_bar.show(),u("html, body").animate({scrollTop:0},"slow")}var s,i},error:function(a,e,t){console.log("Error."+e+":"+t)},complete:function(a,e){console.log("Complete")}}),!1});var l=null;u(".backup-button").on("click",function(a){a.preventDefault(),b=!1,u("#backup-button").attr("disabled","disabled"),u("#backup-button").addClass("button-hidden"),u("#cancel-button").removeClass("button-hidden"),u("#cancel-button").prop("disabled",!1),u("#cancel-button").fadeIn(200),(l=u.ajax({url:ajaxurl,type:"POST",data:{action:k("backup"),security:wpbackitup_local.backup_nonce},cache:!1,dataType:"json",beforeSend:function(a,e){console.log("BeforeSend:Nothing to report."),u(".backup-icon").css("visibility","visible"),u(".backup-icon").show(),u(".backup-success").hide(),u(".default-status").hide(),u(".backup-error").hide(),u(".backup-cancelled").hide(),u("ul.backup-status").children().children().hide(),u(".backup-errors").children().children().hide(),u(".backup-success").children().children().hide(),u(".backup-status").show(),d=!1,window.intervalDefine=setInterval(o,5e3)}})).always(function(a,e,t){console.log("Backup Button Click - Always"),console.log(a.message),void 0!==a.job_id?(s=a.job_id,console.log("Job_Id:"+a.job_id)):console.log("No Job Id found:"+a)})}),u(".get-backup-schedule-button").on("click",function(a){a.preventDefault();var e="get_backup_schedule",t=wpbackitup_local[e];l=u.ajax({url:ajaxurl,type:"POST",data:{action:"wp-backitup_"+e,security:t},cache:!1,dataType:"json",beforeSend:function(a,e){console.log("BeforeSend:Nothing to report.")}})}),u(".set-backup-schedule-button").on("click",function(a){a.preventDefault();var e="set_backup_schedule",t=wpbackitup_local[e];l=u.ajax({url:ajaxurl,type:"POST",data:{action:"wp-backitup_"+e,security:t,frequency:"daily",start_time:"16:30",days:"M",enabled:!0},cache:!1,dataType:"json",beforeSend:function(a,e){console.log("BeforeSend:Nothing to report.")}})});var b=!1;function _(e,t,s){if("200"!=e.status)return alert("Unknown server response status: "+e.code),console.log(e),f(t,s,999,e.response),!0;try{return response_json=jQuery.parseJSON(e.response),!!response_json.error&&(f(t,s,100,response_json.error),!0)}catch(a){return console.log("Unexpected JSON Error"+a),f(t,s,998,e.response),!0}}function f(a,e,t,s){e.status=plupload.FAILED,a.trigger("Error",{code:t,message:s,file:e}),u("#media-item-"+e.id).hide()}function k(a){return t+"_"+a}u(".cancel-button").on("click",function(a){a.preventDefault(),u("#cancel-button").attr("disabled","disabled"),null!=l&&(l.abort(),l=null),(l=u.ajax({url:ajaxurl,type:"POST",data:{action:k("cancel_backup"),job_id:s,security:wpbackitup_local.backup_nonce},cache:!1,dataType:"json",beforeSend:function(a,e){console.log("BeforeSend:Nothing to report."),u(".backup-icon").css("visibility","visible"),u(".backup-icon").show(),u(".backup-status").show(),d=!1,clearInterval(window.intervalDefine),window.intervalDefine=setInterval(o,5e3)}})).always(function(a,e,t){console.log("Cancel Button Click - Always"),console.log(a),void 0!==a.success&&1==a.success?console.log("Job Cancelled successfully"):console.log("Job was not cancelled successfully"),b=!0})}),u("#datatable").on("click","a.restoreRow",function(a){if(a.preventDefault(),confirm(wpbackitup_local.confirm_restore)){var e=this.title;this.id.replace("restoreRow","row");userid=u("input[name=user_id]").val(),u.ajax({url:ajaxurl,type:"post",data:{action:k("restore"),selected_file:e,user_id:userid,security:wpbackitup_local.backup_nonce},cache:!1,dataType:"json",beforeSend:function(){console.log("BeforeSend:Nothing to report."),u(".restore-icon").css("visibility","visible"),u(".default-status, .upload-status").hide(),u("ul.restore-status").children().children().hide(),u(".restore-errors").children().children().hide(),u(".restore-success").children().children().hide(),u(".restore-status, .restore-errors, .restore-success").show(),u(".preparing-icon").css("visibility","visible"),u(".preparing").find(".status-icon").fadeIn(1500),window.intervalDefine=setInterval(i,5e3)}}).always(function(a,e,t){void 0!==a.job_id?(s=a.job_id,console.log("Job_Id:"+a.job_id)):console.log("No Job Id found:"+a)})}}),u("#datatable").on("click","a.deleteRow",function(a){if(a.preventDefault(),confirm(wpbackitup_local.sure)){var e=this.title,t=u(this).data("id"),s=this.id.replace("deleteRow","row");console.log("=== WP BackItUp Delete Debug ==="),console.log("ajaxSafeNamespace:",ajaxSafeNamespace),console.log("Action name:",k("delete_file")),console.log("Security nonce:",wpbackitup_local.backup_nonce),console.log("Full data object:",{action:k("delete_file"),filed:e,post_id:t,security:wpbackitup_local.backup_nonce}),console.log("=================================="),u.ajax({url:ajaxurl,type:"post",data:{action:k("delete_file"),filed:e,post_id:t,security:wpbackitup_local.backup_nonce},success:function(a){0==a.search("deleted")?u("#"+s).remove():alert(wpbackitup_local.file_not_del)}})}})}(jQuery),function(t){"use strict";function i(a){return"wp-backitup_"+a}t(window).on("load",function(){if(document.querySelector("#wpbackitup-core-settings")){Vue.use(VueTabs);var s=new Vue({el:"#wpbackitup-core-settings",data:{loading:!1,updated:!1,emailsArray:[],errorMessages:{},backup_retained_number:3,logging:!1,single_file_db:!1,single_file_backupset:!1,rversion_compare:!1,remove_supporting_zip_files:!1,backup_plugins_filter:[],backup_themes_filter:[],backup_uploads_filter:[],backup_others_filter:[],dbFilterOptions:[],db_filters:[],allow_usage_tracking:!1,backup_dbtables_batch_size:1e4,backup_sql_merge_batch_size:1e4,backup_sql_batch_size:1e4,backup_plugins_batch_size:5e3,backup_themes_batch_size:5e3,backup_uploads_batch_size:500,backup_others_batch_size:500,backup_zip_max_size:524288e3,backup_max_timeout:120,delete_all:!1,safe_sync:!1,beta_updates:!1},computed:{dbFilterHasSearch:function(){return 0==this.dbFilterOptions.length},dbFilterPlaceholder:function(){return 0<this.dbFilterOptions.length?wpbackitup_local.settings_select_database_table_to_filter:wpbackitup_local.settings_no_database_table_to_filter}},methods:{handleEmailInput:function(a){},handleTagsInput:function(a){},setSettings:function(){var a,e={data:{notification_email:this.emailsArray.join(","),backup_retained_number:this.backup_retained_number,logging:this.logging,single_file_db:this.single_file_db,single_file_backupset:this.single_file_backupset,rversion_compare:this.rversion_compare,remove_supporting_zip_files:this.remove_supporting_zip_files,backup_plugins_filter:this.backup_plugins_filter.join(","),backup_themes_filter:this.backup_themes_filter.join(","),backup_uploads_filter:this.backup_uploads_filter.join(","),backup_others_filter:this.backup_others_filter.join(","),backup_dbtables_filter_list:this.db_filters.map(function(a){return a.value}).join(","),backup_dbtables_batch_size:this.backup_dbtables_batch_size,backup_sql_merge_batch_size:this.backup_sql_merge_batch_size,backup_sql_batch_size:this.backup_sql_batch_size,backup_plugins_batch_size:this.backup_plugins_batch_size,backup_themes_batch_size:this.backup_themes_batch_size,backup_uploads_batch_size:this.backup_uploads_batch_size,backup_others_batch_size:this.backup_others_batch_size,backup_zip_max_size:this.backup_zip_max_size,backup_max_timeout:this.backup_max_timeout,delete_all:this.delete_all,safe_sync:this.safe_sync,beta_updates:this.beta_updates,allow_usage_tracking:this.allow_usage_tracking}};console.log(e),((a=(a=e)||{}).action=i("set_settings"),a.security=t("#wpbackitup-core-ajax-nonce").val(),t.ajax({url:ajaxurl,type:"POST",data:a,dataType:"json"})).then(function(a){a.success?(s.updated=!0,s.errorMessages={},swal(wpbackitup_local.settings_save_awesome,wpbackitup_local.settings_save_success_message,"success")):(s.errorMessages=a.data,swal(wpbackitup_local.settings_save_oops,wpbackitup_local.settings_save_error_message,"error"))})},getSettings:function(){var a;this.loading=!0,(a="get_settings",t.ajax({url:ajaxurl,type:"GET",data:{action:i(a)},dataType:"json"})).then(function(t){s.loading=!1,t.success&&(console.log(t),s.emailsArray=t.data.notification_email.split(",").filter(Boolean),s.backup_retained_number=t.data.backup_retained_number,s.logging="1"===t.data.logging,s.single_file_db="1"===t.data.single_file_db,s.rversion_compare="1"===t.data.rversion_compare,s.single_file_backupset="1"===t.data.single_file_backupset,s.remove_supporting_zip_files="1"===t.data.remove_supporting_zip_files,s.backup_plugins_filter=t.data.backup_plugins_filter.split(",").filter(Boolean),s.backup_themes_filter=t.data.backup_themes_filter.split(",").filter(Boolean),s.backup_uploads_filter=t.data.backup_uploads_filter.split(",").filter(Boolean),s.backup_others_filter=t.data.backup_others_filter.split(",").filter(Boolean),s.db_filters=t.data.backup_dbtables_filter_list.split(",").filter(Boolean).map(function(a){return{label:a,value:a}}),s.dbFilterOptions=Object.keys(t.data.backup_dbtables_filterable).map(function(a){var e=t.data.backup_dbtables_filterable[a];return{label:e,value:e}}),s.allow_usage_tracking=t.data.allow_usage_tracking,s.backup_dbtables_batch_size=t.data.backup_dbtables_batch_size,s.backup_sql_merge_batch_size=t.data.backup_sql_merge_batch_size,s.backup_sql_batch_size=t.data.backup_sql_batch_size,s.backup_plugins_batch_size=t.data.backup_plugins_batch_size,s.backup_themes_batch_size=t.data.backup_themes_batch_size,s.backup_uploads_batch_size=t.data.backup_uploads_batch_size,s.backup_others_batch_size=t.data.backup_others_batch_size,s.backup_zip_max_size=t.data.backup_zip_max_size,s.backup_max_timeout=t.data.backup_max_timeout,s.delete_all="1"===t.data.delete_all,s.safe_sync="1"===t.data.safe_sync,s.beta_updates="1"===t.data.beta_updates)})}},created:function(){this.getSettings()}})}})}(jQuery);
     1var WPBNewBackupData={},ajaxSafeNamespace="wp-backitup",ENUM={GDRIVE:"GDRIVE",AMAZONS3:"AMAZONS3",DROPBOX:"DROPBOX"},CLOUDSTATUS={READY:"ready",UPLOADING:"uploading",UPLOADED:"uploaded",ERROR:"error"},debugFlag=!1;if(void 0===WPBackItUpSafeLocals)var WPBackItUpSafeLocals=[];var wpbackitup_get_action_name=function(a){return ajaxSafeNamespace+"_"+a},AjaxGetSafe=function(a){return jQuery.ajax({url:ajaxurl,type:"GET",data:{action:wpbackitup_get_action_name(a),security:WPBackItUpSafeLocals[a]},dataType:"json"})},AjaxGetCore=function(a){var e=wpbackitup_local[a];return jQuery.ajax({url:ajaxurl,type:"GET",data:{action:"wp-backitup_"+a,security:e},dataType:"json"})},AjaxPostSafe=function(a,e){return(e=e||{}).action=wpbackitup_get_action_name(a),e.security=WPBackItUpSafeLocals[a],jQuery.ajax({url:ajaxurl,type:"POST",data:e,dataType:"json"})};!function(){"use strict";if(document.querySelector("#wpbackitup-core-backup"))var i=new Vue({el:"#wpbackitup-core-backup",data:{cloudStatus:{},isNewRowAvailable:!1,backupNewRow:{}},methods:{getAvailableBackups:function(){AjaxGetCore("get_available_backups").then(function(a){if(a.success)for(var e=0;e<a.data.length;e++){var t=a.data[e].backup_job_id,s=a.data[e].backup_job_cloud_status;i.$set(i.cloudStatus,t,s)}})},getBackupStatus:function(){var a=WPBNewBackupData;if("success"===a.backupStatus){var e=a.backupName,t=e.lastIndexOf("_"),s=e.substring(t+1);this.isNewRowAvailable=!0,this.backupNewRow={name:a.backupName,type:a.backupRuntype,date:a.backupDate,duration:a.backupDuration,status:a.backupStatus,row:99999,jobId:s,zipExist:!0},WPBNewBackupData={}}}},mounted:function(){this.getAvailableBackups(),this.getBackupStatusInterval=setInterval(function(){0!==Object.keys(WPBNewBackupData).length&&this.getBackupStatus()}.bind(this),1e3),this.getAvailableBackupsInterval=setInterval(function(){this.getAvailableBackups()}.bind(this),3e3)},beforeDestroy:function(){clearInterval(this.getAvailableBackupsInterval),clearInterval(this.getBackupStatusInterval)}})}(jQuery),function(u){var a,e,t="wp-backitup",s=0;r(),p();try{"undefined"!=typeof wpbackitup_plupload_config&&(a=wpbackitup_plupload_config,(e=new plupload.Uploader(a)).init(),e.bind("FilesAdded",function(a,e){plupload.each(e,function(a){u("#filelist").append('<div id="media-item-'+a.id+'" class="media-item child-of-0"><img class="pinkynail" alt="" src="'+site_url+'/wp-includes/images/media/archive.png"><div class="filename new" id="'+a.id+'">'+a.name+" (<span>"+plupload.formatSize(0)+"</span> of "+plupload.formatSize(a.size)+') <div class="progress" style="width: 0%;"></div></div></div>')}),a.refresh(),a.start()}),e.bind("UploadProgress",function(a,e){u("#"+e.id+" .progress").width(.15*e.percent+"%"),u("#"+e.id+" span").html(plupload.formatSize(parseInt(e.size*e.percent/100)))}),e.bind(" ChunkUploaded",function(a,e,t){console.log("Chunk Uploaded:"),console.log(t),_(t,a,e)&&console.log("chunk error")}),e.bind("Error",function(a,e){console.log("PlUpload Error:"),console.log(e);var t="error-item-"+e.file.id;u("#"+t).length||u("#filelist").append('<div class="error-div error" id="'+t+'" ><strong>'+e.file.name+" has failed to upload due to error:&nbsp;</strong> <span>"+e.message+"</span> </div>")}),e.bind("FileUploaded",function(a,e,t){console.log("File Uploaded"),console.log(t),_(t,a,e)?console.log("uploaded error"):(console.log("uploaded success"),u("#"+e.id+" .progress").css("background-color","green"),u("#import-uploads").show())}))}catch(a){console.log(a)}function r(){u(".viewloglink").on("click",function(){var a=u(this).attr("href");return u("#backup_name").val(a),u("#viewlog").trigger("submit"),!1})}function p(){u(".downloadbackuplink").on("click",function(){var a=u(this).attr("href");return u("#backup_file").val(a),u(this).append('<span class="dashicons dashicons-yes"></span>'),u(this).css({color:"green"}),u("#download_backup").trigger("submit"),!1})}function c(a,e,t){var s="Error-Invalid response from server:  ";e&&(s+=e+"\n"),t&&(s+=t+"\n"),s+="\nResponse: \n\n"+JSON.stringify(a),alert(s)}function i(){var a={action:k("restore_status_reader"),job_id:s,security:wpbackitup_local.backup_nonce};u.post(ajaxurl,a,function(a){u(a).each(function(){var a="."+u(this).attr("class"),e="."+u(this).attr("class")+"-icon";0==u(this).html()&&(u(a).find(".status").hide(),u(a).find(".status-icon").hide()),1==u(this).html()&&(u(e).css("visibility","visible"),u(a).find(".status").fadeOut(200),u(a).find(".status-icon").fadeIn(1500)),2==u(this).html()&&(u(a).find(".status-icon").fadeOut(200),u(a).find(".status").fadeIn(1500)),-1==u(this).html()&&(u(a).find(".status-icon").fadeOut(200),u(a).find(".fail").fadeIn(1500),u(a).find(".isa_error").fadeIn(1500),clearInterval(window.intervalDefine)),-2==u(this).html()&&u(a).find(".isa_warning").fadeIn(1500),99==u(this).html()&&(u(a).find(".isa_success").fadeIn(1500),clearInterval(window.intervalDefine))})})}function o(){var a={action:k("backup_status_reader"),job_id:s};u.post(ajaxurl,a,function(a){if(b)return clearInterval(window.intervalDefine),u(".status-icon").fadeOut(200),u("#backup-button").prop("disabled",!1),u("#cancel-button").addClass("button-hidden").fadeOut(200),u("#backup-button").removeClass("button-hidden").fadeIn(200),u(".backup-cancelled").fadeIn(200),!1;u(a).each(function(){var a="."+u(this).attr("class"),e="."+u(this).attr("class")+"-icon";0==u(this).html()&&(u(a).find(".status").hide(),u(a).find(".status-icon").hide()),1==u(this).html()&&(u(e).css("visibility","visible"),u(a).find(".status").fadeOut(200),u(a).find(".status-icon").fadeIn(1500)),2==u(this).html()&&(u(a).find(".status-icon").fadeOut(200),u(a).find(".status").fadeIn(1500)),-1==u(this).html()&&(u(a).find(".status-icon").fadeOut(200),u(a).find(".fail").fadeIn(1500),clearInterval(window.intervalDefine),n()),-2==u(this).html()&&(u(a).find(".status-icon").fadeOut(200),u(a).find(".wpbackitup-warning").fadeIn(1500)),99==u(this).html()&&(u(a).find(".status-icon").fadeOut(200),u(a).find(".status").fadeIn(1500),clearInterval(window.intervalDefine),n())})})}u(".logs_backup").on("click",function(){var a=u(this).attr("href");return u("#backup_file").val(a),u("#download_logs").val(),u("#download_backup").trigger("submit"),!1}),u("#scheduled-backups-accordian").on("click",function(){scheduled_backups=u("#scheduled-backups"),scheduled_backups_button=u("#scheduled-backups-accordian"),u(this).is(".dashicons-arrow-down")?(scheduled_backups.fadeIn("slow"),scheduled_backups_button.toggleClass("dashicons-arrow-down",!1),scheduled_backups_button.toggleClass("dashicons-arrow-up",!0)):(scheduled_backups_button.toggleClass("dashicons-arrow-down",!0),scheduled_backups_button.toggleClass("dashicons-arrow-up",!1),scheduled_backups.fadeOut("slow"))}),u("#upload-backups-accordian").on("click",function(){upload_backups=u("#wpbackitup-plupload-modal"),upload_backups_button=u("#upload-backups-accordian"),u(this).is(".dashicons-arrow-down")?(upload_backups.fadeIn("slow"),upload_backups_button.toggleClass("dashicons-arrow-down",!1),upload_backups_button.toggleClass("dashicons-arrow-up",!0)):(upload_backups_button.toggleClass("dashicons-arrow-down",!0),upload_backups_button.toggleClass("dashicons-arrow-up",!1),upload_backups.fadeOut("slow"))}),u("#wpbackitup-zip").on("change",function(){var a=this.files[0].size,e=u("#maxfilesize").val();"undefined"!=a&&"undefined"!=e&&""!=a&&""!=e&&e<a&&(alert(wpbackitup_local.upload_file_size_exceed),u("#wpbackitup-zip").val(""))}),u("#import-uploads").on("click",function(){setTimeout(function(){window.location.reload()},100)}),u(document.body).on("click",".thickbox",function(){if(!u(this).parents(".wpbiu-restore-item").length){var a=u(this).data("jobid");console.log(a),function(e,a){k("backup_zip_filelist");var t=a.replace(/[^A-Za-z0-9\-]/g,""),i=0,o="",n='<div id="'+t+'">            <h2>'+wpbackitup_local.bl_backup_set+"&nbsp; <em>"+a+'</em></h2>            <div class="wpbiu-notes">            <textarea class="backupnotes" id="wpbiu-note-box" placeholder="'+wpbackitup_local.bl_note_placeholder+'"></textarea>            <button id="wpbiu-note-btn" class="button-primary">'+wpbackitup_local.bl_note_save+'</button><span id="wpbiu-note-response">'+wpbackitup_local.bl_note_saved_success+"</span></div>            <p>"+wpbackitup_local.bl_backup_download+'</p>            <table class="widefat" id="datatable">              <tbody>';u.ajax({url:ajaxurl,type:"POST",data:{action:k("backup_zip_filelist"),job_id:e,security:wpbackitup_local.backup_nonce},dataType:"json"}).done(function(a){a.data?(u.each(a.data,function(){var a=u(this)[0].name.split(/[\/]+/).pop(),e=u(this)[0].size,t=u(this)[0].file_exists;if(console.log(a,e),-1<a.indexOf("-backupset-"))o='<p><a class="downloadbackuplink" href="'+a+'"><span class="dashicons dashicons-download wpb-download-large"></span> <strong>'+wpbackitup_local.bl_backup_download_single+"</strong></a>                                          <br><em>"+wpbackitup_local.bl_please_note+e+wpbackitup_local.bl_may_timeout+"</em></p>";else{var s="";++i%2!=0&&(s="alternate"),n+='<tr class="'+s+'" id="row'+i+'">',n+=t?'<td><a class="downloadbackuplink" href="'+a+'">'+a+"</a></td>":"<td>"+a+"</td>",n+="<td>"+e+"</td>                         </tr>"}}),n+=o+"</tbody></table></div>",u("#TB_ajaxContent").html(n),p(),u.ajax({url:ajaxurl,type:"post",data:{action:k("backup_get_note"),job_id:e,security:wpbackitup_local.backup_nonce},success:function(a){u("#wpbiu-note-box").val(a.data)}}),u("#wpbiu-note-btn").on("click",function(){var a=u("#wpbiu-note-box").val();u.ajax({url:ajaxurl,type:"POST",data:{action:k("backup_add_note"),job_id:e,note:a,security:wpbackitup_local.backup_nonce},dataType:"json"}).done(function(a){u("#wpbiu-note-response").fadeIn()})}),u("#wpbiu-note-box").on("focus",function(){u("#wpbiu-note-response").hide()})):c(a,null,null)}).fail(function(a,e,t){c(a,e,t)})}(a,this.name)}}),u(document.body).on("click",".thickbox",function(){var e=u(this).data("jobid"),a=u(this).attr("name");if(u(this).parents(".wpbiu-restore-item").length){var t="<h2>"+wpbackitup_local.bl_backup_set+"&nbsp;<em>"+a+'</em></h2>              <div class="wpbiu-notes">                 <textarea class="backupnotes" id="wpbiu-restore-note-box" placeholder="'+wpbackitup_local.bl_note_placeholder+'"></textarea>                 <button id="wpbiu-restore-note-btn" class="button-primary">'+wpbackitup_local.bl_note_save+'</button>                 <span id="wpbiu-restore-note-response">'+wpbackitup_local.bl_note_saved_success+"</span>               </div>";u("#wpbiu-restore-note").html(t),u("#wpbiu-restore-note-response").hide(),u.ajax({url:ajaxurl,type:"post",data:{action:k("backup_get_note"),job_id:e,security:wpbackitup_local.backup_nonce},success:function(a){u("#wpbiu-restore-note-box").val(a.data)}}),u("#wpbiu-restore-note-btn").on("click",function(){var a=u("#wpbiu-restore-note-box").val();u.ajax({url:ajaxurl,type:"POST",data:{action:k("backup_add_note"),job_id:e,note:a,security:wpbackitup_local.backup_nonce},dataType:"json"}).done(function(a){u("#wpbiu-restore-note-response").fadeIn()})})}u("#wpbiu-restore-note-box").on("focus",function(){u("#wpbiu-restore-note-response").hide()})});var d=!1;function n(){u.ajax({url:ajaxurl,type:"POST",data:{action:k("backup_response_reader"),job_id:s},dataType:"json"}).always(function(a,e,t){if(console.log("Backup Response:"+JSON.stringify(a)),void 0!==a.backupStatus&&void 0!==a.backupMessage){if(console.log("JSON Backup Status:"+a.backupStatus),console.log("JSON Backup Message:"+a.backupMessage),d)return;switch(d=!0,a.backupStatus){case"success":if(console.log("JSON success response received."),u(".status-icon").fadeOut(200),u("#backup-button").prop("disabled",!1),u("#cancel-button").addClass("button-hidden").fadeOut(200),u("#backup-button").removeClass("button-hidden").fadeIn(200),u(".isa_success").show,u(".backup-success").fadeIn(1500),void 0!==(l=a)&&(WPBNewBackupData=l,u("#nofiles")&&u("#nofiles").remove(),r(),p()),void 0!==a.backupWarnings){var s=u(".backup-warning");a.backupWarnings.forEach(function(a){var e=a.warningMessage;s.append('<li class="isa_warning">'+wpbackitup_local.warning+": "+e+"</li>")}),s.fadeIn(1500)}break;case"error":console.log("JSON error response received.");var i=wpbackitup_local.unexpected_err;void 0!==a.backupMessage&&(i=a.backupMessage);var o=wpbackitup_local.error+": &nbsp;"+i,n=u(".backup-error");n.html(o),n.addClass("isa_error"),n.fadeIn(1500),u(".status-icon").fadeOut(200),u("#backup-button").prop("disabled",!1),u("#cancel-button").addClass("button-hidden").fadeOut(200),u("#backup-button").removeClass("button-hidden").fadeIn(200);break;default:console.log("Unexpected JSON response status received.");i=wpbackitup_local.unexpected_err2;void 0!==a.backupMessage&&(i=a.backupMessage);o=wpbackitup_local.error+"(JS998) : &nbsp;"+i;(c=u(".backup-error")).html(o),c.addClass("isa_error"),c.fadeIn(1500),u(".status-icon").fadeOut(200),u("#backup-button").prop("disabled",!1),u("#cancel-button").addClass("button-hidden").fadeOut(200),u("#backup-button").removeClass("button-hidden").fadeIn(200)}}else{var c;console.log("NON JSON response received."),console.log("Backup Response:"+t),o=wpbackitup_local.unexpected_err3+": &nbsp;",o+="</br>"+wpbackitup_local.response+": &nbsp;"+JSON.stringify(a),o+="</br>"+wpbackitup_local.status+": &nbsp;"+e,o+="</br>"+wpbackitup_local.error+": &nbsp;"+JSON.stringify(t),u(".backup-status").hide(),(c=u(".backup-error")).html(o),c.addClass("isa_error"),c.show(),u(".status-icon").fadeOut(200)}var l})}u("#wp-backitup-notification-widget-close").on("click",function(){notification_bar=u("#wp-backitup-notification-widget"),notification_bar.fadeOut("slow"),u.ajax({url:ajaxurl,type:"POST",data:{action:k("delete_transient")},dataType:"json"}).always(function(a,e,t){!1!==a&&(notification_bar.removeClass(),notification_bar.addClass("notice"),notification_bar.addClass("notice-"+a.message_type),u("#wp-backitup-notification-widget-message p").html(a.message),notification_bar.hide().fadeIn("slow"))})}),u("#wp-backitup-notification-close").on("click",function(){notification_bar=u("#wp-backitup-notification-parent"),notification_bar.fadeOut("slow")}),u("#wp-backitup-save_schedule_form").on("submit",function(){var a=new FormData;a.append("action",k("update-schedule")),a.append("_wpnonce",u("#wp-backitup_nonce-update-schedule").val()),a.append("_wp_http_referer",u("[name='_wp_http_referer']").val());var e=[];return u.each(u("input[name='dow']:checked"),function(){e.push(u(this).val())}),a.append("days_selected",e),jQuery.ajax({url:ajaxurl,type:"POST",cache:!1,contentType:!1,processData:!1,dataType:"json",data:a,success:function(a,e,t){switch(response=a.message,console.log("Success:"+response),response){case"success":i=wpbackitup_local.scheduled_saved,notification_bar_message=u("#wp-backitup-notification-message"),notification_bar_message.html("<p>"+i+"</p>"),notification_bar=u("#wp-backitup-notification-parent"),notification_bar.toggleClass("error",!1),notification_bar.toggleClass("updated",!0),notification_bar.show(),u("html, body").animate({scrollTop:0},"slow");break;case"error":s=wpbackitup_local.scheduled_not_saved,notification_bar_message=u("#wp-backitup-notification-message"),notification_bar_message.html("<p>"+s+"</p>"),notification_bar=u("#wp-backitup-notification-parent"),notification_bar.toggleClass("updated",!1),notification_bar.toggleClass("error",!0),notification_bar.show(),u("html, body").animate({scrollTop:0},"slow")}var s,i},error:function(a,e,t){console.log("Error."+e+":"+t)},complete:function(a,e){console.log("Complete")}}),!1});var l=null;u(".backup-button").on("click",function(a){a.preventDefault(),b=!1,u("#backup-button").attr("disabled","disabled"),u("#backup-button").addClass("button-hidden"),u("#cancel-button").removeClass("button-hidden"),u("#cancel-button").prop("disabled",!1),u("#cancel-button").fadeIn(200),(l=u.ajax({url:ajaxurl,type:"POST",data:{action:k("backup"),security:wpbackitup_local.backup_nonce},cache:!1,dataType:"json",beforeSend:function(a,e){console.log("BeforeSend:Nothing to report."),u(".backup-icon").css("visibility","visible"),u(".backup-icon").show(),u(".backup-success").hide(),u(".default-status").hide(),u(".backup-error").hide(),u(".backup-cancelled").hide(),u("ul.backup-status").children().children().hide(),u(".backup-errors").children().children().hide(),u(".backup-success").children().children().hide(),u(".backup-status").show(),d=!1,window.intervalDefine=setInterval(o,5e3)}})).always(function(a,e,t){console.log("Backup Button Click - Always"),console.log(a.message),void 0!==a.job_id?(s=a.job_id,console.log("Job_Id:"+a.job_id)):console.log("No Job Id found:"+a)})}),u(".get-backup-schedule-button").on("click",function(a){a.preventDefault();var e="get_backup_schedule",t=wpbackitup_local[e];l=u.ajax({url:ajaxurl,type:"POST",data:{action:"wp-backitup_"+e,security:t},cache:!1,dataType:"json",beforeSend:function(a,e){console.log("BeforeSend:Nothing to report.")}})}),u(".set-backup-schedule-button").on("click",function(a){a.preventDefault();var e="set_backup_schedule",t=wpbackitup_local[e];l=u.ajax({url:ajaxurl,type:"POST",data:{action:"wp-backitup_"+e,security:t,frequency:"daily",start_time:"16:30",days:"M",enabled:!0},cache:!1,dataType:"json",beforeSend:function(a,e){console.log("BeforeSend:Nothing to report.")}})});var b=!1;function _(e,t,s){if("200"!=e.status)return alert("Unknown server response status: "+e.code),console.log(e),f(t,s,999,e.response),!0;try{return response_json=jQuery.parseJSON(e.response),!!response_json.error&&(f(t,s,100,response_json.error),!0)}catch(a){return console.log("Unexpected JSON Error"+a),f(t,s,998,e.response),!0}}function f(a,e,t,s){e.status=plupload.FAILED,a.trigger("Error",{code:t,message:s,file:e}),u("#media-item-"+e.id).hide()}function k(a){return t+"_"+a}u(".cancel-button").on("click",function(a){a.preventDefault(),u("#cancel-button").attr("disabled","disabled"),null!=l&&(l.abort(),l=null),(l=u.ajax({url:ajaxurl,type:"POST",data:{action:k("cancel_backup"),job_id:s,security:wpbackitup_local.backup_nonce},cache:!1,dataType:"json",beforeSend:function(a,e){console.log("BeforeSend:Nothing to report."),u(".backup-icon").css("visibility","visible"),u(".backup-icon").show(),u(".backup-status").show(),d=!1,clearInterval(window.intervalDefine),window.intervalDefine=setInterval(o,5e3)}})).always(function(a,e,t){console.log("Cancel Button Click - Always"),console.log(a),void 0!==a.success&&1==a.success?console.log("Job Cancelled successfully"):console.log("Job was not cancelled successfully"),b=!0})}),u("#datatable").on("click","a.restoreRow",function(a){if(a.preventDefault(),confirm(wpbackitup_local.confirm_restore)){var e=this.title;this.id.replace("restoreRow","row");userid=u("input[name=user_id]").val(),u.ajax({url:ajaxurl,type:"post",data:{action:k("restore"),selected_file:e,user_id:userid,security:wpbackitup_local.backup_nonce},cache:!1,dataType:"json",beforeSend:function(){console.log("BeforeSend:Nothing to report."),u(".restore-icon").css("visibility","visible"),u(".default-status, .upload-status").hide(),u("ul.restore-status").children().children().hide(),u(".restore-errors").children().children().hide(),u(".restore-success").children().children().hide(),u(".restore-status, .restore-errors, .restore-success").show(),u(".preparing-icon").css("visibility","visible"),u(".preparing").find(".status-icon").fadeIn(1500),window.intervalDefine=setInterval(i,5e3)}}).always(function(a,e,t){void 0!==a.job_id?(s=a.job_id,console.log("Job_Id:"+a.job_id)):console.log("No Job Id found:"+a)})}}),u("#datatable").on("click","a.deleteRow",function(a){if(a.preventDefault(),confirm(wpbackitup_local.sure)){var e=this.title,t=u(this).data("id"),s=this.id.replace("deleteRow","row");console.log("=== WP BackItUp Delete Debug ==="),console.log("ajaxSafeNamespace:",ajaxSafeNamespace),console.log("Action name:",k("delete_file")),console.log("Security nonce:",wpbackitup_local.backup_nonce),console.log("Full data object:",{action:k("delete_file"),filed:e,post_id:t,security:wpbackitup_local.backup_nonce}),console.log("=================================="),u.ajax({url:ajaxurl,type:"post",data:{action:k("delete_file"),filed:e,post_id:t,security:wpbackitup_local.backup_nonce},success:function(a){0==a.search("deleted")?u("#"+s).remove():alert(wpbackitup_local.file_not_del)}})}})}(jQuery),function(t){"use strict";function i(a){return"wp-backitup_"+a}t(window).on("load",function(){if(document.querySelector("#wpbackitup-core-settings")){Vue.use(VueTabs);var s=new Vue({el:"#wpbackitup-core-settings",data:{loading:!1,updated:!1,emailsArray:[],errorMessages:{},backup_retained_number:3,logging:!1,single_file_db:!1,single_file_backupset:!1,rversion_compare:!1,remove_supporting_zip_files:!1,backup_plugins_filter:[],backup_themes_filter:[],backup_uploads_filter:[],backup_others_filter:[],dbFilterOptions:[],db_filters:[],allow_usage_tracking:!1,backup_dbtables_batch_size:1e4,backup_sql_merge_batch_size:1e4,backup_sql_batch_size:1e4,backup_plugins_batch_size:5e3,backup_themes_batch_size:5e3,backup_uploads_batch_size:500,backup_others_batch_size:500,backup_zip_max_size:524288e3,backup_max_timeout:120,delete_all:!1,safe_sync:!1,beta_updates:!1,event_logging_enabled:!0,event_stats:{total_events:0,updates_applied:0,content_changes:0,security_events:0,settings_changes:0,pending_updates:0}},computed:{dbFilterHasSearch:function(){return 0==this.dbFilterOptions.length},dbFilterPlaceholder:function(){return 0<this.dbFilterOptions.length?wpbackitup_local.settings_select_database_table_to_filter:wpbackitup_local.settings_no_database_table_to_filter}},methods:{handleEmailInput:function(a){},handleTagsInput:function(a){},setSettings:function(){var a,e={data:{notification_email:this.emailsArray.join(","),backup_retained_number:this.backup_retained_number,logging:this.logging,single_file_db:this.single_file_db,single_file_backupset:this.single_file_backupset,rversion_compare:this.rversion_compare,remove_supporting_zip_files:this.remove_supporting_zip_files,backup_plugins_filter:this.backup_plugins_filter.join(","),backup_themes_filter:this.backup_themes_filter.join(","),backup_uploads_filter:this.backup_uploads_filter.join(","),backup_others_filter:this.backup_others_filter.join(","),backup_dbtables_filter_list:this.db_filters.map(function(a){return a.value}).join(","),backup_dbtables_batch_size:this.backup_dbtables_batch_size,backup_sql_merge_batch_size:this.backup_sql_merge_batch_size,backup_sql_batch_size:this.backup_sql_batch_size,backup_plugins_batch_size:this.backup_plugins_batch_size,backup_themes_batch_size:this.backup_themes_batch_size,backup_uploads_batch_size:this.backup_uploads_batch_size,backup_others_batch_size:this.backup_others_batch_size,backup_zip_max_size:this.backup_zip_max_size,backup_max_timeout:this.backup_max_timeout,delete_all:this.delete_all,safe_sync:this.safe_sync,beta_updates:this.beta_updates,allow_usage_tracking:this.allow_usage_tracking,event_logging_enabled:this.event_logging_enabled}};console.log(e),((a=(a=e)||{}).action=i("set_settings"),a.security=t("#wpbackitup-core-ajax-nonce").val(),t.ajax({url:ajaxurl,type:"POST",data:a,dataType:"json"})).then(function(a){a.success?(s.updated=!0,s.errorMessages={},swal(wpbackitup_local.settings_save_awesome,wpbackitup_local.settings_save_success_message,"success")):(s.errorMessages=a.data,swal(wpbackitup_local.settings_save_oops,wpbackitup_local.settings_save_error_message,"error"))})},getSettings:function(){var a;this.loading=!0,(a="get_settings",t.ajax({url:ajaxurl,type:"GET",data:{action:i(a)},dataType:"json"})).then(function(t){s.loading=!1,t.success&&(console.log(t),s.emailsArray=t.data.notification_email.split(",").filter(Boolean),s.backup_retained_number=t.data.backup_retained_number,s.logging="1"===t.data.logging,s.single_file_db="1"===t.data.single_file_db,s.rversion_compare="1"===t.data.rversion_compare,s.single_file_backupset="1"===t.data.single_file_backupset,s.remove_supporting_zip_files="1"===t.data.remove_supporting_zip_files,s.backup_plugins_filter=t.data.backup_plugins_filter.split(",").filter(Boolean),s.backup_themes_filter=t.data.backup_themes_filter.split(",").filter(Boolean),s.backup_uploads_filter=t.data.backup_uploads_filter.split(",").filter(Boolean),s.backup_others_filter=t.data.backup_others_filter.split(",").filter(Boolean),s.db_filters=t.data.backup_dbtables_filter_list.split(",").filter(Boolean).map(function(a){return{label:a,value:a}}),s.dbFilterOptions=Object.keys(t.data.backup_dbtables_filterable).map(function(a){var e=t.data.backup_dbtables_filterable[a];return{label:e,value:e}}),s.allow_usage_tracking=t.data.allow_usage_tracking,s.backup_dbtables_batch_size=t.data.backup_dbtables_batch_size,s.backup_sql_merge_batch_size=t.data.backup_sql_merge_batch_size,s.backup_sql_batch_size=t.data.backup_sql_batch_size,s.backup_plugins_batch_size=t.data.backup_plugins_batch_size,s.backup_themes_batch_size=t.data.backup_themes_batch_size,s.backup_uploads_batch_size=t.data.backup_uploads_batch_size,s.backup_others_batch_size=t.data.backup_others_batch_size,s.backup_zip_max_size=t.data.backup_zip_max_size,s.backup_max_timeout=t.data.backup_max_timeout,s.delete_all="1"===t.data.delete_all,s.safe_sync="1"===t.data.safe_sync,s.beta_updates="1"===t.data.beta_updates,s.event_logging_enabled="1"===t.data.event_logging_enabled,t.data.event_stats&&(s.event_stats=t.data.event_stats))})}},created:function(){this.getSettings()}})}})}(jQuery);
  • wp-backitup/trunk/lib/includes/admin-actions.php

    r1877137 r3443538  
    2222function wpbackitup_process_actions() {
    2323
     24    // Security: Require logged-in user with admin capabilities
     25    if ( ! is_user_logged_in() || ! current_user_can( 'manage_options' ) ) {
     26        return;
     27    }
     28
    2429    if ( isset( $_POST['wpbackitup_action'] ) ) {
    2530        do_action( 'wpbackitup_' . $_POST['wpbackitup_action'], $_POST );
  • wp-backitup/trunk/lib/includes/class-logger.php

    r3051908 r3443538  
    4949     * @param $function Name of calling function(__METHOD__)
    5050     * @param $message Log Message (Array or object)
    51      * @param null $additional_message  (string)
     51     * @param null $additional_message  (string or array - arrays will be JSON encoded)
    5252     */
    5353    public static function log_info($log_name, $function, $message, $additional_message = null ) {
     
    5656            if(self::is_logging() === true) {
    5757                $logger = self::getLogger($log_name);
     58                // Convert arrays to JSON string to prevent KLogger str_replace error
     59                if (is_array($additional_message)) {
     60                    $additional_message = json_encode($additional_message);
     61                }
    5862                $logger->log_info($function, $message, $additional_message);
    5963            }
     
    7074     * @param string $function Name of calling function(__METHOD__)
    7175     * @param string $message Log Message (Array or object)
    72      * @param string $additional_message  (string)
     76     * @param string $additional_message  (string or array - arrays will be JSON encoded)
    7377     */
    7478    public static function log_error($log_name, $function,$message,$additional_message=null) {
     
    7781            if(self::is_logging() === true) {
    7882                $logger = self::getLogger($log_name);
     83                // Convert arrays to JSON string to prevent KLogger str_replace error
     84                if (is_array($additional_message)) {
     85                    $additional_message = json_encode($additional_message);
     86                }
    7987                $logger->log_error($function, $message, $additional_message);
    8088            }
     
    9098     * @param $function Name of calling function(__METHOD__)
    9199     * @param $message Log Message (Array or object)
    92      * @param null $additional_message  (string)
     100     * @param null $additional_message  (string or array - arrays will be JSON encoded)
    93101     */
    94102    public static function log_warning($log_name, $function,$message,$additional_message=null) {
     
    97105            if(self::is_logging() === true) {
    98106                $logger = self::getLogger($log_name);
     107                // Convert arrays to JSON string to prevent KLogger str_replace error
     108                if (is_array($additional_message)) {
     109                    $additional_message = json_encode($additional_message);
     110                }
    99111                $logger->log_warning($function, $message, $additional_message);
    100112            }
  • wp-backitup/trunk/lib/includes/class-wpbackitup-admin.php

    r3345748 r3443538  
    7676        'restore_count'=>0,
    7777        'successful_restore_count'=>0,
     78        'event_logging_enabled'=>1,
    7879    );
    7980
     
    152153        //Load all the resources
    153154        add_action( 'admin_enqueue_scripts', array( &$this, 'load_resources' ) );
     155
     156        // Add build info to admin footer
     157        add_action( 'admin_footer', array( &$this, 'admin_footer_build_info' ) );
    154158
    155159        // delete transient
     
    385389        }
    386390
     391    }
     392
     393    /**
     394     * Display build metadata in admin footer
     395     * Only shows on WPBackItUp admin pages for administrators
     396     *
     397     * @since 2.1.0
     398     */
     399    public function admin_footer_build_info() {
     400        // Only show on WPBackItUp admin pages
     401        if( empty($_REQUEST['page']) || substr($_REQUEST['page'], 0, 11) !== 'wp-backitup') {
     402            return;
     403        }
     404
     405        // Only show to administrators
     406        if( !current_user_can( 'manage_options' ) ) {
     407            return;
     408        }
     409
     410        // Get build metadata with fallback
     411        $timestamp = defined('WPBACKITUP__BUILD_TIMESTAMP') ? WPBACKITUP__BUILD_TIMESTAMP : 'not set';
     412        $commit = defined('WPBACKITUP__BUILD_COMMIT') ? WPBACKITUP__BUILD_COMMIT : 'not set';
     413
     414        // Don't display if placeholders haven't been replaced
     415        if ($timestamp === '%%BUILD_TIMESTAMP%%' || $commit === '%%BUILD_COMMIT%%') {
     416            return;
     417        }
     418
     419        // Get the version number
     420        $version = rtrim($this->version, '.0');
     421
     422        // Build the footer HTML
     423        $build_info = '<div style="margin-top: 20px; padding: 10px; background: #f9f9f9; border-top: 1px solid #ddd; color: #666; font-size: 12px; text-align: center;">';
     424        $build_info .= sprintf(
     425            __('WPBackItUp Version %s (Build: %s | %s)', 'wp-backitup'),
     426            esc_html($version),
     427            esc_html($timestamp),
     428            esc_html($commit)
     429        );
     430        $build_info .= '</div>';
     431
     432        /**
     433         * Filter the admin footer build info HTML
     434         * Allows Premium Edition (or other extensions) to append their build info
     435         *
     436         * @since 2.1.0
     437         *
     438         * @param string $build_info The build info HTML
     439         * @param string $version The Community Edition version
     440         * @param string $timestamp The Community Edition build timestamp
     441         * @param string $commit The Community Edition git commit hash
     442         */
     443        $build_info = apply_filters('wpbackitup_admin_footer_build_info', $build_info, $version, $timestamp, $commit);
     444
     445        echo $build_info;
    387446    }
    388447
     
    14241483            'remove_supporting_zip_files'=> $this->get_option('remove_supporting_zip_files'),
    14251484            'allow_usage_tracking'=> $tracking_allowed,
     1485            'event_logging_enabled'=> $this->get_option('event_logging_enabled', '1'),
     1486            'event_stats'=> $this->get_option('event_logging_enabled', '1') === '1'
     1487                ? WPBackItUp_Event_Database::get_event_stats()
     1488                : array('total_events' => 0, 'updates_applied' => 0, 'content_changes' => 0, 'security_events' => 0, 'settings_changes' => 0, 'pending_updates' => 0),
    14261489        );
    14271490
     
    16071670        $data['beta_updates'] = $data['beta_updates'] === 'true' ? 1: 0;
    16081671
     1672        //** Event Logging ON/OFF (v2.1.0) **//
     1673        $data['event_logging_enabled'] = $data['event_logging_enabled'] === 'true' ? 1: 0;
     1674
    16091675        //** Usage Tracking ON/OFF **//
    16101676        $ut = new WPBackItUp_Usage();
     
    24492515            }
    24502516
     2517            // Event System WP-Cron Jobs (v2.1.0)
     2518            // NOTE: Timing is approximate - WP-Cron depends on site traffic, not exact scheduling
     2519            // "Daily at 2am/3am/4am" is aspirational based on typical site patterns
     2520
     2521            // Hourly: Aggregate content changes (post/page edits)
     2522            if (!wp_next_scheduled('wpbackitup_aggregate_content_changes')) {
     2523                wp_schedule_event(time(), 'hourly', 'wpbackitup_aggregate_content_changes');
     2524            }
     2525
     2526            // Daily: Check for available plugin/theme/core updates
     2527            if (!wp_next_scheduled('wpbackitup_check_updates')) {
     2528                wp_schedule_event(time(), 'daily', 'wpbackitup_check_updates');
     2529            }
     2530
     2531            // Daily: Clean up events older than 7 days
     2532            if (!wp_next_scheduled('wpbackitup_cleanup_old_events')) {
     2533                wp_schedule_event(time(), 'daily', 'wpbackitup_cleanup_old_events');
     2534            }
     2535
     2536            // Daily: Aggregate security events (failed logins)
     2537            if (!wp_next_scheduled('wpbackitup_aggregate_security')) {
     2538                wp_schedule_event(time(), 'daily', 'wpbackitup_aggregate_security');
     2539            }
     2540
    24512541       } catch (Exception $e) {
    24522542           exit( 'WPBackItUp encountered an error during activation.<br/>' . esc_html( $e->getMessage() ) );
     
    25162606
    25172607        wp_clear_scheduled_hook( 'wpbackitup_queue_scheduled_jobs');
     2608
     2609        // Event System WP-Cron cleanup (v2.1.0)
     2610        // Remove all scheduled event system jobs to prevent orphaned cron tasks
     2611        wp_clear_scheduled_hook('wpbackitup_aggregate_content_changes');
     2612        wp_clear_scheduled_hook('wpbackitup_check_updates');
     2613        wp_clear_scheduled_hook('wpbackitup_cleanup_old_events');
     2614        wp_clear_scheduled_hook('wpbackitup_aggregate_security');
    25182615    }
    25192616
  • wp-backitup/trunk/lib/includes/update_database.php

    r3345748 r3443538  
    225225}
    226226
     227/**
     228 * DB version 4 to 5 update
     229 *  - Introduce EVENTS table for event logging system (v2.1.0)
     230 *
     231 */
     232function wpbackitup_update_database_routine_5($log_name) {
     233    WPBackItUp_Logger::log_info($log_name, __METHOD__, 'Begin upgrade database to V5');
     234
     235    require_once( WPBACKITUP__PLUGIN_PATH . '/lib/includes/class-event-database.php' );
     236
     237    // Create the events table
     238    $result = WPBackItUp_Event_Database::create_events_table();
     239
     240    if ($result) {
     241        WPBackItUp_Logger::log_info($log_name, __METHOD__, 'Events table created successfully');
     242
     243        // Verify table exists
     244        if (WPBackItUp_Event_Database::table_exists()) {
     245            WPBackItUp_Logger::log_info($log_name, __METHOD__, 'Events table verified - table exists');
     246
     247            // Get table info for logging
     248            $table_info = WPBackItUp_Event_Database::get_table_info();
     249            WPBackItUp_Logger::log_info($log_name, __METHOD__, 'Events table info', var_export($table_info, true));
     250        } else {
     251            WPBackItUp_Logger::log_error($log_name, __METHOD__, 'Events table verification failed - table does not exist');
     252        }
     253    } else {
     254        WPBackItUp_Logger::log_error($log_name, __METHOD__, 'Failed to create events table');
     255    }
     256
     257    // Seed event logging enabled flag if not already set (default enabled)
     258    // Note: Critical plugins/options lists are now hardcoded with filter hooks (not stored in wp_options)
     259    $event_logging_option = WPBACKITUP__NAMESPACE . '_event_logging_enabled';
     260    if (false === get_option($event_logging_option)) {
     261        add_option($event_logging_option, true);
     262        WPBackItUp_Logger::log_info($log_name, __METHOD__, 'Seeded event logging enabled flag (default: true)');
     263    }
     264
     265    WPBackItUp_Logger::log_info($log_name, __METHOD__, 'END upgrade database to V5');
     266}
     267
    227268
    228269/**
  • wp-backitup/trunk/readme.txt

    r3345755 r3443538  
    44Requires at least: 3.8.0
    55Requires PHP: 5.2.4
    6 Tested up to: 6.8
     6Tested up to: 6.9
    77Stable tag: 2.0.0
    88Author URI: https://www.wpbackitup.com
     
    218218
    219219== Changelog ==
     220= 2.10 =
     221*Release Date - January 20, 2026
     222
     223* SECURITY: Fixed broken access control vulnerability in admin action dispatcher - Added authentication and authorization checks to prevent unauthenticated users from triggering admin actions
     224* FEATURE : Event Logging System - Tracks plugin updates, theme updates, WordPress core updates, content changes, security events, and settings changes
     225* FEATURE : New "Event Logging" settings tab with enable/disable toggle
     226* FEATURE : Event Statistics Dashboard - View event counts by type (updates applied, content changes, security events, settings changes, pending updates)
     227* FEATURE : Critical plugin detection - High priority alerts when security plugins (Wordfence, Sucuri, etc.) are updated
     228* FEATURE : Critical settings monitoring - Alerts when important WordPress options are changed
     229* FEATURE : Build Versioning System - Each build now displays version info with timestamp and git commit hash in admin footer, helping developers identify exactly which code is deployed
     230* UPDATE  : Database schema updated to support event tracking (v5)
     231* UPDATE  : New WP-Cron jobs for event aggregation and cleanup
     232* UPDATE  : Events automatically cleaned up after 7 days for optimal performance
     233* UPDATE  : Deduplication prevents redundant event logging
     234* UPDATE  : Stats display optimized - queries skipped when event logging is disabled
     235* UPDATE  : Added filter hook for Premium Edition integration in build versioning system
     236* FIX     : Fixed logger error when passing arrays to logging methods - arrays now automatically converted to JSON
     237* FIX     : Fixed Event Statistics display - Settings Changes now included so totals match sum of categories
     238
    220239= 2.00 =
    221240*Release Date -  August 16, 2025
  • wp-backitup/trunk/uninstall.php

    r3345748 r3443538  
    7272    // phpcs:ignore WordPress.DB.DirectDatabaseQuery.SchemaChange -- Plugin manages cleanup of its own database tables during uninstall
    7373    $wpdb->query( "DROP TABLE IF EXISTS " . $wpdb->prefix . "wpbackitup_job_items" );
     74    // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery -- Plugin uninstall requires direct database access to clean up plugin tables
     75    // phpcs:ignore WordPress.DB.DirectDatabaseQuery.NoCaching -- Uninstall operations must execute immediately without caching
     76    // phpcs:ignore WordPress.DB.DirectDatabaseQuery.SchemaChange -- Plugin manages cleanup of its own database tables during uninstall
     77    $wpdb->query( "DROP TABLE IF EXISTS " . $wpdb->prefix . "wpbackitup_events" );
    7478
    7579    error_log('wp-backitup uninstall end');
  • wp-backitup/trunk/views/settings.php

    r3345748 r3443538  
    292292
    293293            </v-tab>
     294
     295            <v-tab title="<?php esc_attr_e( 'Event Logging', 'wp-backitup' ); ?>" icon="dashicons-chart-bar">
     296
     297                <div class="widget">
     298                    <h3 class="promo">
     299                        <span class="dashicons dashicons-chart-bar"></span>
     300                        <?php esc_html_e('Backup Recommendations', 'wp-backitup') ?>
     301                    </h3>
     302                    <p><b><?php esc_html_e('Enable smart backup recommendations based on site activity.', 'wp-backitup') ?></b></p>
     303                    <p><?php esc_html_e('When enabled, WPBackItUp monitors your site for important changes (plugin updates, content changes, security events) and recommends when you should create a backup.', 'wp-backitup'); ?></p>
     304                    <p>
     305                        <input type="checkbox" v-model="event_logging_enabled" :true-value="true" :false-value="false">
     306                        <label><?php esc_html_e('Enable Event Logging and Backup Recommendations', 'wp-backitup') ?></label>
     307                    </p>
     308                    <div class="submit">
     309                        <button class="button-primary" v-on:click="setSettings()"><?php esc_html_e("Save", 'wp-backitup') ?></button>
     310                    </div>
     311                </div>
     312
     313                <div class="widget" v-if="event_logging_enabled">
     314                    <h3 class="promo">
     315                        <span class="dashicons dashicons-info"></span>
     316                        <?php esc_html_e('Event Statistics', 'wp-backitup') ?>
     317                    </h3>
     318                    <p><b><?php esc_html_e('Events captured in the last 7 days:', 'wp-backitup') ?></b></p>
     319                    <table class="widefat" style="max-width: 400px;">
     320                        <tr>
     321                            <td><?php esc_html_e('Total Events', 'wp-backitup') ?></td>
     322                            <td><strong>{{ event_stats.total_events }}</strong></td>
     323                        </tr>
     324                        <tr>
     325                            <td><?php esc_html_e('Updates Applied', 'wp-backitup') ?></td>
     326                            <td><strong>{{ event_stats.updates_applied }}</strong></td>
     327                        </tr>
     328                        <tr>
     329                            <td><?php esc_html_e('Content Changes', 'wp-backitup') ?></td>
     330                            <td><strong>{{ event_stats.content_changes }}</strong></td>
     331                        </tr>
     332                        <tr>
     333                            <td><?php esc_html_e('Security Events', 'wp-backitup') ?></td>
     334                            <td><strong>{{ event_stats.security_events }}</strong></td>
     335                        </tr>
     336                        <tr>
     337                            <td><?php esc_html_e('Settings Changes', 'wp-backitup') ?></td>
     338                            <td><strong>{{ event_stats.settings_changes }}</strong></td>
     339                        </tr>
     340                        <tr>
     341                            <td><?php esc_html_e('Pending Updates', 'wp-backitup') ?></td>
     342                            <td><strong>{{ event_stats.pending_updates }}</strong></td>
     343                        </tr>
     344                    </table>
     345                    <p class="description"><?php esc_html_e('Events older than 7 days are automatically deleted.', 'wp-backitup') ?></p>
     346                </div>
     347
     348            </v-tab>
    294349        </vue-tabs>
    295350    </div>
  • wp-backitup/trunk/wp-backitup.php

    r3345748 r3443538  
    77 * Author: WPBackItUp
    88 * Author URI: https://www.wpbackitup.com
    9  * Version: 2.0.0
     9 * Version: 2.1.0
    1010 * Text Domain: wp-backitup
    1111 *
     
    3333
    3434define( 'WPBACKITUP__MAJOR_VERSION', 2);
    35 define( 'WPBACKITUP__MINOR_VERSION', 0);
     35define( 'WPBACKITUP__MINOR_VERSION', 1);
    3636define( 'WPBACKITUP__MAINTENANCE_VERSION', 0); //Dont forget to update version in header on WP release
    3737define( 'WPBACKITUP__BUILD_VERSION', 0); //Used for hotfix releases
    3838
    3939define( 'WPBACKITUP__VERSION',sprintf("%d.%d.%d.%d", WPBACKITUP__MAJOR_VERSION, WPBACKITUP__MINOR_VERSION,WPBACKITUP__MAINTENANCE_VERSION,WPBACKITUP__BUILD_VERSION));
    40 define( 'WPBACKITUP__DB_VERSION', 4); //DATABASE VERSION
     40define( 'WPBACKITUP__DB_VERSION', 5); //DATABASE VERSION - v5 adds events table for event logging system
     41
     42// Build metadata - automatically updated by Gulp build process
     43define( 'WPBACKITUP__BUILD_TIMESTAMP', '2026-01-20 14:43' );
     44define( 'WPBACKITUP__BUILD_COMMIT', '3e7cb81' );
    4145
    4246define( 'WPBACKITUP__DEBUG', false );//verbose logging + unminified script
     
    286290$WPBackitup->initialize();
    287291
    288 
     292// Initialize Event Database (v2.1.0)
     293// Required for WP-Cron cleanup job (wpbackitup_cleanup_old_events)
     294require_once( WPBACKITUP__PLUGIN_PATH .'/lib/includes/class-event-database.php' );
     295
     296// Initialize Event Logger (v2.1.0)
     297require_once( WPBACKITUP__PLUGIN_PATH .'/lib/includes/class-event-logger.php' );
     298$WPBackitup_Event_Logger = WPBackItUp_Event_Logger::get_instance();
     299
     300// Initialize Recommendation Engine (v2.1.0)
     301// TODO (Phase 7): Move to lazy loading - only require when displaying admin notices
     302require_once( WPBACKITUP__PLUGIN_PATH .'/lib/includes/class-recommendation-engine.php' );
     303
     304// Initialize Event Batcher (v2.1.0)
     305// NOTE: Premium-only feature - provides event data for AI analysis via AWS Bedrock
     306require_once( WPBACKITUP__PLUGIN_PATH .'/lib/includes/class-event-batcher.php' );
     307
     308
Note: See TracChangeset for help on using the changeset viewer.