Files
resatennis_tyroltenn/IDrive/.config/include/js/backup.js

2462 lines
88 KiB
JavaScript
Executable File

/* Backup Page Array Variables */
backupSetArray = [];
backupSetTypeArray = [];
newBackupSetArray = [];
delFlag = 0;
delAjax = 0;
delCancel = 0;
fileScannedStatus = 0;
//calling job termination function for cancelling archive cleanup...
$(document).on('click', '#Stop',function(){
clearTimeout(archiveTimeoutVar);
archiveAjax.abort();
archiveTimeoutVar='';
$("#actiontype").val("stop");
var url="action.php?action=stopSearch&type=archive";
$.post(url,function(data){
$(secPosCont).append($('.archive_folder_cleanup_popup').hide());
$("#Stop").hide();
$("#Cleanup").show();
$(".cleanup-value").show();
$(".cleanup-file-scan").css("display", "none");
if($("#periodice_clean").is(':checked')){
$(".select-container select").removeAttr("disabled");
}
$(".archive_cleanup_popup").show();
$("#archiveerror").addClass("welcome_message");
$("#archiveerror").removeClass("error_msg");
showErrorMessages('#archiveerror.welcome_message','Archive cleanup operation has been cancelled successfully.');
$("#errorbtn").click(function()
{
$(".cleanup_operation_cleanup_popup").hide();
});
});
});
//function for deleting files...
var archiveDelete = function() {
$("#ajaxLoaderDeleteConfirm1").show();
$(secPosCont).append($('.archive_folder_cleanup_popup,.delete_files_cleanup_popup').show());
$(popcont).addClass('popLeft');
$('.sec_pos_container').addClass('set_relative');
$("#yes").unbind().click(function(){
$("#deleteCancel").show();
$("#deleteCancel").removeAttr('disabled');
$("#ajaxLoaderDeleteConfirm1").hide();
$(".delete_files_cleanup_popup").hide();
var delcontent=$("#archiveDeletedData").html();
$("#deleteValues").html(delcontent);
$(secPosCont).append($('.archive_folder_cleanup_popup').hide());
$(secPosCont).append($('#archiveCleanUp').show());
var url="action.php?action=deleteArchive&type=archive";
archDeleteStatus();
delAjax = $.post(url,function(data){
var dataArray = jQuery.parseJSON(data);
if(dataArray[0]==true){
$("#deleteCancel").hide(); /* hiding cancel butto here after loading delete status */
$.popContainerHide();
showErrorMessages('.welcome_message',DELETE_OPERATION_COMPLETED);
if($("#Deleting").is(':visible')){
$(secPosCont).append($('#archiveCleanUp,.nofiles_cleanup_popup').show());
}
/*clearing restore js arrays */
if(dataArray[1]==1){
restoreSetArray =[];
newRestoreSetArray = [];
dynamicRemoteArray = [];
dynamicRemoteRequestInfo = [];
}
$("#archiveWindow").val("0");
//can call recalc method here to refresh storage.
$( ".storage_calculate" ).trigger( "click" );
}
else{
$("#archiveWindow").val("0");
$("#deleteCancel").hide(); /* hiding cancel butto here after loading delete status */
/* Displaying delete error here.*/
$.popContainerHide();
if(dataArray[0] == 'AR_DEL_LOG_DIR')
showErrorMessages('.error_msg','Unable to continue the operation. Try again later.');
else if(dataArray[0] == 'AR_DEL_LOG')
showErrorMessages('.error_msg','Unable to continue the operation. Try again later.');
else if(dataArray[0] == 'AR_PID')
showErrorMessages('.error_msg','Operation could not be completed. Try again later.');
/*clearing restore js arrays */
if(dataArray[1]==1){
restoreSetArray =[];
newRestoreSetArray = [];
dynamicRemoteArray = [];
dynamicRemoteRequestInfo = [];
}
}
})
.fail(function() {
$("#archiveWindow").val("0");
$("#deleteCancel").hide();
$.popContainerHide();
showErrorMessages('.error_msg','Unable to continue the operation. Try again later.1');
});
});
$("#No").click(function(){
$("#ajaxLoaderDeleteConfirm1").hide();
$(".delete_files_cleanup_popup").hide();
});
/* Delete cancel call start */
$("#deleteCancel").unbind().click(function(){
delAjax.abort();
$("#deleteSuccess").hide();
var delurl="action.php?action=deleteCancel";
$.post(delurl,function(data){
//delCancel = 0;
});
$.popContainerHide();
showErrorMessages('.welcome_message','Delete Operation has been cancelled successfully.');
});
};
var currentperiodicPerc = ""; var currentperiodicDays = ""; var currentperiodicStatus = "0";
var currentSelectedJobval = "";
$(function()
{
if($("#periodice_clean").is(':checked')){
$(".select-container select").removeAttr("disabled");
}
//calling cleanup pop here... popup_close_btn hide_popup
$(document).on('click', '.archive_menu',function()
{
$("#archiveWindow").val("1");
/* checking manual backup is running here */
if(progressJobBackupCount > 0) {
if(manualBackupRunning == true || (manualLocalBackupRunning == false && progressJobBackupCount >= 1)) {
jQuery('.common_msg').hide();
showErrorMessages('.error_msg', 'Unable to start Archive Cleanup. Backup is in Progress.');
return;
}
}
clearTimeout(backupTimeoutVar);
/* manual backup check ends here */
var editDetails = false;
currentSelectedJobval = $("#select_job").val();
currentperiodicPerc = ""; currentperiodicDays = ""; currentperiodicStatus = "0";
var tempjob = IDrive.Jobs[currentSelectedJobval];
$("#periodic_perc option[value='5']").attr("selected","selected");
$("#periodic_days option[value='5']").attr("selected","selected");
$(".select-container select").attr("disabled", "disabled");
$('#periodice_clean').removeAttr('checked');
if(IDrive.Jobs[currentSelectedJobval].periodic !== undefined)
{
currentperiodicPerc = IDrive.Jobs[currentSelectedJobval].periodic.perc;
currentperiodicDays = IDrive.Jobs[currentSelectedJobval].periodic.days;
currentperiodicStatus = IDrive.Jobs[currentSelectedJobval].periodic.status;
$("#periodic_perc option[value='" + currentperiodicPerc + "']").attr("selected","selected");
$("#periodic_days option[value='" + currentperiodicDays + "']").attr("selected","selected");
if(currentperiodicStatus == "1"){
$('#periodice_clean').prop('checked', true);
$(".select-container select").removeAttr("disabled");
}
else{
$(".select-container select").attr("disabled", "disabled");
$('#periodice_clean').removeAttr('checked');
}
}
$(".file-scan-wrap").hide();
$(".welcome_message").hide();
if(actionRequired==2){editJob('backup');}
$(".error_msg").hide();
$(".cleanup-value").show();
$("#Cleanup").show();
jQuery('#archiveCleanupJobName').html('[ '+currentSelectedJobval.replace('Backup_','')+' ]');
$.popContainer();
// Added by sajana for clearing old data...
$("#output").html("");
$("#delete").hide();
$("#Stop").hide();
// -----sajana code ends here----
$(secPosCont).append($('.archive_cleanup_popup').show());
$(popcont).addClass('popLeft');
$('.sec_pos_container').addClass('set_relative');
});
$(document).on('click','.know-more-click',function(){$('.cleanup-know-more').show();});
$(document).on('click','.know_more_close_btn',function(){ $('.cleanup-know-more').hide(); });
$(document).on('mouseenter','#archiveQuestion',function(){ $('.question-popup').show(); });
$(document).on('mouseleave','#archiveQuestion',function(){ $('.question-popup').hide(); });
//checking any periodic cleanup settings has been changed.
$(document).on('change','#periodic_days',function(){
var selectedPeriodicDays = $("#periodic_days").val();
if(selectedPeriodicDays != currentperiodicDays){
showErrorMessages('#archiveerror.welcome_message','Periodic Cleanup settings has been changed.');
startTimeoutForAutoPost('periodic'); //Auto POST
}
});
$(document).on('change','#periodic_perc',function(){
var selectedPeriodicPerc = $("#periodic_perc").val();
if(selectedPeriodicPerc != currentperiodicPerc){
showErrorMessages('#archiveerror.welcome_message','Periodic Cleanup settings has been changed.');
startTimeoutForAutoPost('periodic'); //Auto POST
}
});
//--------------------
$(document).on('click','#resultPopupClose',function(){
var url1="action.php?action=removeArchivePid"; // calling stop archive while closing the archive popup.
$.post(url1,function(data){});
});
//-------------
/* checking closing button of popup window.*/
$(document).on('click','#archiveMainpopup',function(){
if ($('#archiveDeletedData').is(":visible") ) {
var url1="action.php?action=removeArchivePid"; // calling stop archive while closing the archive popup.
$.post(url1,function(data){});
}
$("#archiveWindow").val("0");
$(".cleanup-know-more").hide();
$("#actiontype").val("stop");
$(".welcome_message").hide();
if(archiveTimeoutVar!=''){
archiveAjax.abort();
archiveTimeoutVar='';
var url2="action.php?action=stopSearch&type=archive"; // calling stop archive while closing the archive popup.
$.post(url2,function(data){});
}
postPeriodicCleanup(); //Auto POST
});
/* Delete popup close checks here */
$(document).on('click','#deleteBoxClose',function(){
delAjax.abort();
$("#deleteSuccess").hide();
$("#archiveWindow").val("0");
/* calling stop delete while closing delete popup .*/
if($('#Deleting').css('display') == 'block'){
var url2="action.php?action=deleteCancel";
$.post(url2,function(data){});
}
showErrorMessages('.welcome_message','Delete Operation has been cancelled successfully.');
});
});
$(document).on('click','.period-chkbox',function(){
var CheckBoxLength = $('.period-chkbox').prop('checked');
if(CheckBoxLength)
{
if(backupSetArray.length !==0){ //checking backup set is empty..
$(".select-container select").removeAttr("disabled");
archiveErrors('AR_PERIODIC_ENA');
}
else{
archiveErrors('AR_FILE_MISS');
$(".select-container select").attr("disabled", "disabled");
$('.period-chkbox').prop('checked',false);
}
}
else
{
$(".select-container select").attr("disabled", "disabled");
archiveErrors('AR_PERIODIC_DIS');
}
startTimeoutForAutoPost('periodic'); //Auto POST
});
function postPeriodicCleanup(){
var periodic_days ="";
var periodic_perc = "";
var backupsetName = $("#select_job").val();
var url = "periodicCleanup.php";
periodic_days = $("#periodic_days").val();
periodic_perc = $("#periodic_perc").val();
var periodic_cleanStatus = "0";
if($("#periodice_clean").is(':checked')){
var periodic_cleanStatus = "1";
}
if(currentperiodicStatus == "0" && currentperiodicStatus == periodic_cleanStatus){
}
else if(currentperiodicPerc != periodic_perc || currentperiodicDays != periodic_days || currentperiodicStatus != periodic_cleanStatus )
{
$.post(url,{periodic_days:periodic_days,periodic_perc:periodic_perc,periodic_cleanStatus:periodic_cleanStatus,backupsetName:backupsetName},function(data){});
var tt=IDrive.Jobs[currentSelectedJobval];
var abc =tt.periodic;
if(typeof IDrive.Jobs[currentSelectedJobval].periodic === "undefined"){
IDrive.Jobs[currentSelectedJobval].periodic = new Array();
}
IDrive.Jobs[currentSelectedJobval].periodic.days = periodic_days;
IDrive.Jobs[currentSelectedJobval].periodic.perc = periodic_perc;
IDrive.Jobs[currentSelectedJobval].periodic.status = periodic_cleanStatus;
}
}
function watcherForArchive(){
if(archiveTimeoutVar!='' && jQuery('.archive_cleanup_popup').is(':visible')){
//AJAX call to get Archive Status
archiveAjax = $.ajax({
url: "action.php?action=archiveStatus",
success: function(data){
archiveData=$.parseJSON(data);
if(isNaN(archiveData.total_count) === false && archiveData.total_count != 0){
$("#total_files").html(archiveData.total_count);
if(archiveData.files_scanned != null) {
$("#file_scanned").html(archiveData.files_scanned);
fileScannedStatus = archiveData.operation_status;
}
}
if(archiveData.operation_status == 'completed'){
fileScannedStatus = archiveData.operation_status;
archiveAjaxStatus = archiveData.Error;
setTimeout(verifyScan,500);
clearTimeout(archiveTimeoutVar);
archiveTimeoutVar='';
}
else {
archiveTimeoutVar = setTimeout(watcherForArchive,timeForArchiveWatcher);
}
}
});
}
}
/*-------- error handling function for archive operation------*/
function archiveErrors(err){
$("#archiveerror").removeClass("welcome_message");
$("#archiveerror").addClass("error_msg");
if(err=='AR_RESULT_ERR'){
showErrorMessages('#archiveerror.error_msg','Count file does not exist.');
}
else if(err=='AR_NO_ITEM'){
$(".cleanup_operation_cleanup_popup").hide();
showErrorMessages('#archiveerror.error_msg','There are no items to delete.');
}
else if(err=='AR_FILE_MISS'){
$(".cleanup_operation_cleanup_popup").hide();
showErrorMessages('#archiveerror.error_msg','Backup set is empty. Please try again.');
}
else if(err=='AR_START_ERR'){
showErrorMessages('#archiveerror.error_msg','Unable to start the operation. Please try again later.');
}
else if(err=='ERR_STR_VAL'){
showErrorMessages('#archiveerror.error_msg','Operation could not be completed. Operation cancelled by user.');
}
else if(err=='AR_PERC_ERR'){
$("#archiveerror").hide();
jQuery('.cleanup_operation_cleanup_popup').hide();
jQuery('#page_loader').show();
$("#ajaxLoaderForPercError").show();
var urlperc = "action.php?action=archivePerc";
$.post(urlperc,{},function(data){
archivepercData=$.parseJSON(data);
var manualPerc = archivepercData.manualPerc;
var totalFilesConsider = archivepercData.total_count;
var filesConsiderDelete = archivepercData.total_del_count;
$("#errormsg").html("<div><p><b>Cleanup Now </b> operation has been aborted because the number of files considered for cleanup is more than "+manualPerc+" % of the total number of files in your backup set.</p><p>Total files in your backup set : <span class='backup-set-no'>"+totalFilesConsider+"</span><br/>Total files listed for deletion : <span class='total-files-del'>"+filesConsiderDelete+"</span></p></div>");
});
jQuery(secPosCont).append(jQuery('.cleanup_operation_cleanup_popup').show());
jQuery('#page_loader').hide();
}
else if(err=='AR_DIR'){
showErrorMessages('#archiveerror.error_msg','Operation could not be completed. Archive Directory cannot be created.');
}
else if(err=='JOB_DIR' || err == 'AR_DIR'){
showErrorMessages('#archiveerror.error_msg','Operation could not be completed. Please try again later.');
}
else if(err=='JOB_RUN'){
showErrorMessages('#archiveerror.error_msg','Unable to start Archive Cleanup. Backup is in progress.');
}
else if(err == 'AR_PERIODIC_ENA'){
var backupsetnameSelected = $("#select_job").val();
var periodicBackup = backupsetnameSelected.replace("Backup_","");
$("#archiveerror").removeClass("error_msg");
$("#archiveerror").addClass("welcome_message");
showErrorMessages('#archiveerror.welcome_message','Periodic cleanup has been enabled for <b>'+periodicBackup+'</b>');
}
else if(err == 'AR_PERIODIC_DIS'){
var backupsetnameSelected = $("#select_job").val();
var periodicBackup = backupsetnameSelected.replace("Backup_","");
$("#archiveerror").removeClass("error_msg");
$("#archiveerror").addClass("welcome_message");
showErrorMessages('#archiveerror.welcome_message','Periodic cleanup has been disabled for <b>'+periodicBackup+'</b>');
} else if(err!=''){
showErrorMessages('#archiveerror.error_msg',err);
}
}
$(document).on("click",'#Cleanup',function(){
if(backupSetArray.length==0){
archiveErrors('AR_FILE_MISS'); //checking backup set is empty..
return;
}
var current_selJob = $("#select_job").val();
var archive = $("#arch_perc").val();
$("#total_files").html('0');
$("#file_scanned").html('');
$("#actiontype").val("");
$("#Cleanup").hide();
$("#Stop").show();
var url2 = "startarchive.php";
$.post(url2,{current_selJob:current_selJob,archive:archive},function(pidstatus){
if(pidstatus !="yes"){
$("#Cleanup").show();
$("#Stop").hide();
archiveErrors(pidstatus);
return;
}
$("#archiveerror").addClass("welcome_message");
$("#archiveerror").removeClass("error_msg");
showErrorMessages('#archiveerror.welcome_message','Archive cleanup operation has been started successfully.');
$(".file-scan-wrap").show();
$("#total_files").show();
$("#file_scanned").show();
$(".cleanup-value").hide();
if ($("#output").children().length == 0){
$(".cleanup-file-scan").css("display", "block");
}
else{
$(".cleanup-file-scan").hide();
}
archiveTimeoutVar = setTimeout(watcherForArchive,10); // calling watcher function for archive cleanup status...
});
});
function verifyScan(){
var data = archiveAjaxStatus;
if(fileScannedStatus == 'completed'){
if((data =='AR_DATA_READY') && ($("#actiontype").val()!="stop"))
{
// calling archive display file in onscroll event.
var url3 = "action.php?action=displayArchiveResult";
jQuery('.archive_folder_cleanup_popup').hide();
$.post(url3,{},function(result){
var arresult = jQuery.parseJSON(result);
var dataStatus = arresult.data_status;
$(".files-folders").find('#archiveDeletedData').html('');
$(".files-folders").find('#archiveDeletedData').html(arresult.result);
jQuery('.archive_folder_cleanup_popup').show();
$(".files-folders").find('#archiveDeletedData').show()
jQuery('#ajaxLoaderDeleteConfirm_loader').hide();
jQuery('#page_loader').hide();
var loadOnScroll = function() {
if(dataStatus == "1"){
if(($(this).scrollTop() + $(this).innerHeight() >= this.scrollHeight)) {
$("#forDeletion").unbind();
jQuery('.archiveLazyLoader').show();
$.post(url3,{},function(resultpart){
var arresultPart = jQuery.parseJSON(resultpart);
$(".files-folders").find('p').append(arresultPart.result);
jQuery('.archiveLazyLoader').hide();
dataStatus = arresultPart.data_status;
$("#forDeletion").on("scroll",loadOnScroll);
});
}
}
};
$("#forDeletion").on("scroll",loadOnScroll);
});
$(".archive_cleanup_popup").hide();
$(secPosCont).append($('.archive_folder_cleanup_popup').show());
$("#delete").show().unbind().bind('click', archiveDelete);
$(popcont).addClass('popLeft');
$('.sec_pos_container').addClass('set_relative');
$(".cleanup-file-scan").css("display", "none");
}
else if($("#actiontype").val()!="stop" && data!='')
{
clearTimeout(archiveTimeoutVar);
if($("#periodice_clean").is(':checked')){
$(".select-container select").removeAttr("disabled");
}
$(".cleanup-value").show();
$(".archive_cleanup_popup").show();
$("#Cleanup").show();
$("#Stop").hide();
$(".cleanup-file-scan").css("display", "none");
archiveErrors(data);
$("#errorbtn").click(function()
{
$("#ajaxLoaderForPercError").hide();
$(".cleanup_operation_cleanup_popup").hide();
});
}
}
}
//------------------Archive cleanup ends here------------------------------------------------
/* Document Ready - End */
/* Load local system Files/Folders - Start */
jQuery(document).on('click', '.backup_page a.getDirList,.localbackup_page a.getDirList', function() {
var bcParent = jQuery(this).parent().attr('id');
var placeID = jQuery(this).closest('div').parent().attr('id');
if(bcParent=='fullPathBreadCrumb' || placeID == 'loadFullPath'){
loadLocalFiles(jQuery(this),'loadFullPath','fullPathBreadCrumb','backupFilePath');
} else {
loadLocalFiles(jQuery(this),'newBackupSet','bkpBreadCrumb','selectedFiles_tab');
}
});
jQuery(document).on('click', '.backup_page a.getBackupDirList', function() {
loadRemoteFiles(jQuery(this).attr('alt'),'loadBackupLocation','backupLocationBreadCrumb','');
});
/* Load local system Files/Folders - End */
/* Remove selected Backup Set files - Start */
jQuery(document).on('click', '#removebBackupsetFiles span', function() {
//Checking whether Job Selected to Edit or not
if(actionRequired ==1){
actionRequired =2;
startTimeoutForAutoPost('backup'); //Auto POST
}
var current_directory = jQuery('#fullPathBreadCrumb a:last').attr('alt');
jQuery('#backupsetFiles tr.chk').each(function(){
var curr_val = jQuery(this).find('input').val();
if(jQuery('.body_wrap').hasClass('backup_page')){
var index = backupSetArray.indexOf(curr_val);
if(index>=0){
backupSetArray.splice(index, 1);
backupSetTypeArray.splice(index, 1);
defaultBackupSetArray.splice(index, 1);
defaultBackupSetTypeArray.splice(index, 1);
}
} else {
var index = localBackupSetArray.indexOf(curr_val);
if(index>=0){
localBackupSetArray.splice(index, 1);
localBackupSetTypeArray.splice(index, 1);
defaultLocalBackupSetArray.splice(index, 1);
defaultLocalBackupSetTypeArray.splice(index, 1);
}
}
if(index>=0){
jQuery(this).remove();
var id_of_element = '';
if(typeof dynamicArray[current_directory]!='undefined' && dynamicArray[current_directory]!==null){
id_of_element = dynamicArray[current_directory].indexOf(curr_val);
}
if(sh=='Hide')
{
var hiddenCount = countHiddenFilesAboveSelectedFile(current_directory, curr_val);
id_of_element = id_of_element - hiddenCount;
}
if(curr_val==clickedDirPath){
jQuery("#loadFullPath tr").removeAttr('class').find('input:checkbox').removeAttr('checked').next().removeAttr('class');
} else if(clickedDirPath.indexOf(curr_val+'/')==0){
jQuery("#loadFullPath tr").removeAttr('class').find('input:checkbox').removeAttr('checked').next().removeAttr('class');
} else if(id_of_element>=0) {
jQuery("#loadFullPath tr").eq(id_of_element).removeAttr('class').find('input:checkbox').removeAttr('checked').next().removeAttr('class');
}
}
});
jQuery('#maincheckBackup').next().attr('class','maincheck'); //Uncheck the Main Checkbox
jQuery(this).hide();
checkRemainingBackupsetFiles('loadFullPath');
checkForSemicheckedItem('loadFullPath');
markMaincheckAfterRemove('loadFullPath');
getItemSize();
});
/* Remove selected Backup Set files - End */
/* Remove selected New Backup Set files - Start */
jQuery(document).on('click', '#removeSelectedFiles span', function() {
jQuery('#selectedBackupsetFiles tr.chk').each(function(){
var curr_val = jQuery(this).find('input').val();
var index = newBackupSetArray.indexOf(curr_val);
newBackupSetArray.splice(index, 1);
jQuery(this).remove();
var removedItem = jQuery('#newBackupSet input[value="'+curr_val+'"]');
var curID = removedItem.attr('id');
if(typeof curID == 'undefined'){
var currPath = jQuery('#bkpBreadCrumb a:last').attr('alt');
if(currPath == curr_val){
jQuery('#newBackupSet').find('input').removeAttr('checked').siblings('label').removeAttr('class');
jQuery('.bckheader').find('label').removeAttr('class');
}
} else {
removedItem.removeAttr('checked').siblings('label').removeAttr('class').closest('tr').removeAttr('class');
}
});
jQuery('#maincheckSelected').next().attr('class','maincheck'); //Uncheck the Main Checkbox
jQuery('#selectFiles .header_part .file_check label').removeAttr('class'); //Uncheck the Main Checkbox
jQuery(this).hide();
checkRemainingBackupsetFiles('selectedBackupsetFiles');
markMaincheckAfterRemove('newBackupSet');
});
/* Remove selected New Backup Set files - End */
/* Function to Load local system Files/Folders - Start */
function loadLocalFiles(obj,toPlace,breadcrum,maincheck) {
abortAjax(currentAjaxRequest);
var getDir = obj;
if(typeof getDir!='string'){
getDir = obj.attr('alt');
}
if(typeof isRefresh != "undefined" && isRefresh == true) {
getDir = '/';
}
clickedDirPath = getDir; //For the purpose while unchecking the child
var url = "fullPathSelection.php?fullPath="+rawurlencode(getDir);
var dirListVal = dynamicArray[getDir];
var dirListType = dynamicType[getDir];
jQuery('#maincheck,#selectFiles #maincheck').siblings('label').css('visibility','visible');
var forLoader = (toPlace=='loadFullPath')?'.breadcrum_menu':"#"+toPlace;
jQuery('#' + toPlace + '>.excludefiles').unbind('scroll');
var backup_list_template = function (dirURL, dirList, dirType, hasData, page_no) {
if (dirURL != '/') {
if(hasData==true) {
var dirHTML = '';
for(var j=0; j<dirList.length; j++) {
var dirFullPath = dirList[j];
var dirTypeValue= dirType[j];
var splitPath = dirFullPath.split('/');
var dirName = splitPath[splitPath.length-1];
if(sh=="Hide" && !dirName.indexOf(".")){
var tr_style='style="display: none;"';
continue;
}
else{
var tr_style='';
}
dirName1 = dirName.replace('&quot;','"');
dirFullPath = htmlEntities(dirFullPath);
dirName = htmlEntities(dirName);
if(dirTypeValue=='folder') {
dirHTML += '<tr '+tr_style+' class="row_list">';
dirHTML += '<td class="file_check"><input type="checkbox" name="chk_elements['+j+']" value="'+dirFullPath+'" id="chk_elements['+j+']"><label>folder</label></td>';
dirHTML += '<td class="cont_heading" title="'+dirName+'"><a class="getDirList" href="javascript:void(0);" alt="'+dirFullPath+'">';
dirHTML += '<img src="include/images/idq_ico_folder.png"></a>';
dirHTML += '<a class="getDirList" href="javascript:void(0);" alt="'+dirFullPath+'"><span>';
dirHTML += dirName.replace(/[\s]/g,'&nbsp;');
dirHTML += '</span></a></td>';
dirHTML += '<td class="file_size"> -- </td><td class="file_date"> '+IDrive.LocalDirList[getDir][dirName1].datetime+' </td><td class="file_menu_list"></td>';
dirHTML += '</tr>';
} else {
dirHTML += '<tr '+tr_style+' class="row_list">';
dirHTML += '<td class="file_check"><input type="checkbox" name="chk_elements['+j+']" value="'+dirFullPath+'" id="chk_elements['+j+']"> <label> file </label> </td>';
dirHTML += '<td class="cont_heading" title="'+dirName+'"><img src="include/images/idq_ico_file.png"><span>';
dirHTML += dirName.replace(/[\s]/g,'&nbsp;');
dirHTML += '</span></td>';
dirHTML += '<td class="file_size" value="'+IDrive.LocalDirList[getDir][dirName1].orgSize+'"> '+IDrive.LocalDirList[getDir][dirName1].size+' </td><td class="file_date" value="'+IDrive.LocalDirList[getDir][dirName1].orgDate+'"> '+IDrive.LocalDirList[getDir][dirName1].datetime+' </td><td class="file_menu_list"></td>';
dirHTML += '</tr>';
}
}
if (dirHTML != '') {
jQuery('#'+toPlace).show().siblings('.nfiles').hide();
if (page_no > 1) {
jQuery('#'+toPlace).find('tbody').append(dirHTML);
}
else {
jQuery('#'+toPlace).find('tbody').html(dirHTML);
}
}
} else {
jQuery('.ajax_loader').hide();
if(page_no <=1) {
jQuery('#'+toPlace).hide().siblings('.nfiles').show();
jQuery('#'+toPlace).find('tbody').html('');
jQuery('#maincheck,#selectFiles #maincheck').siblings('label').css('visibility','hidden');
}
}
}
localFileBreadcrumb(getDir,toPlace,breadcrum,maincheck); //Call breadCrumb function
markSelectedItems(getDir,toPlace,breadcrum,maincheck); //Call function to "Mark" the selected Items
if(toPlace=='newBackupSet'){
jQuery('#'+toPlace).find('td').removeClass('file_menu_list');
}
}
// AJAX Call for new
if(typeof dirListVal == "undefined" || dirListVal === "" || ((typeof dynamicRequestInfo[getDir] != "undefined") && !dynamicRequestInfo[getDir]['success'])) {
var request = function(page_no) {
jQuery(forLoader).siblings('.ajax_loader').show();
currentAjaxRequest = jQuery.ajax({
url: (url + "&page_no=" + page_no),
success: function(locationData){
if(locationData.indexOf('<html>')>0){
window.location.href='../index.php';
}
jQuery(forLoader).siblings('.ajax_loader').hide();
if(locationData.trim()==''){
return true;
}
locationDataRes=$.parseJSON(locationData);
//Keeping file/folder list to avoid AJAX call
var dirURL = decodeURIComponent(locationDataRes[2]['url']);
var dirList = locationDataRes[2]['dir'];
var dirType = locationDataRes[2]['type'];
if (page_no == 1) {
dynamicArray[dirURL]=dirList;
dynamicType[dirURL] =dirType;
if(typeof(IDrive.LocalDirList) == 'undefined') {
IDrive.LocalDirList = [];
}
IDrive.LocalDirList[dirURL] = locationDataRes[2]['dir_list'];
if(locationDataRes[0]==true){
jQuery('#'+toPlace).show().siblings('.nfiles').hide();
}
jQuery('#'+toPlace).find('tbody').html(locationDataRes[1]);
}
else {
var tempDirList = dirList;
var tempDirType = dirType;
var tempDataRes = locationDataRes[2]['dir_list'];
tempDirList = dynamicArray[dirURL].concat(tempDirList);
tempDirType = dynamicType[dirURL].concat(tempDirType);
tempDataRes = $.extend(IDrive.LocalDirList[dirURL], tempDataRes);
dynamicArray[dirURL] = tempDirList;
dynamicType[dirURL] = tempDirType;
dynamicRequestInfo[dirURL] = {'page_no': page_no, 'success': false};
IDrive.LocalDirList[dirURL] = tempDataRes;
}
backup_list_template(dirURL, dirList, dirType, locationDataRes[0], page_no);
if ((dirList !== null) && ((dirList.length * page_no) >= (998 * page_no))) {
dynamicRequestInfo[dirURL] = {'page_no': page_no, 'success': false};
jQuery('#' + toPlace + '>.excludefiles').unbind('scroll').scroll(function() {
var scrollHeight = jQuery('#' + toPlace + '>.excludefiles')[0].scrollHeight;
var scrollTop = jQuery('#' + toPlace + '>.excludefiles').scrollTop();
var outerHeight = jQuery('#' + toPlace + '>.excludefiles').outerHeight();
if ((scrollHeight - scrollTop) == outerHeight) {
request(++page_no);
$(this).unbind('scroll');
}
});
}
else {
dynamicRequestInfo[dirURL] = {'page_no': page_no, 'success': true};
}
},//need to add error handling to remove loader atleast.
error: function (request, status, error) {
jQuery(forLoader).siblings('.ajax_loader').hide();
}
});
}
if ((typeof dynamicRequestInfo[getDir] != "undefined") && !dynamicRequestInfo[getDir]['success']) {
backup_list_template(getDir, dirListVal, dirListType, true, 1);
jQuery('#' + toPlace + '>.excludefiles').unbind('scroll').scroll(function() {
var scrollHeight = jQuery('#' + toPlace + '>.excludefiles')[0].scrollHeight;
var scrollTop = jQuery('#' + toPlace + '>.excludefiles').scrollTop();
var outerHeight = jQuery('#' + toPlace + '>.excludefiles').outerHeight();
if ((scrollHeight - scrollTop) == outerHeight) {
request(++dynamicRequestInfo[getDir]['page_no']);
$(this).unbind('scroll');
}
});
}
else {
request(1);
}
} else if(dirListVal === null || dirListVal == ""){
jQuery('#'+toPlace).hide().siblings('.nfiles').show();
jQuery('#maincheck,#selectFiles #maincheck').siblings('label').css('visibility','hidden');
jQuery('#'+toPlace).find('tbody').html('');
jQuery(forLoader).siblings('.ajax_loader').hide();
localFileBreadcrumb(getDir,toPlace,breadcrum,maincheck); //Call breadCrumb function
} else {
//Loading files/folders from array intead of making AJAX call again
jQuery('#'+toPlace).show().siblings('.nfiles').hide();
jQuery(forLoader).siblings('.ajax_loader').show();
var dirHTML = '';
/* Condition added for synology market place */
if(getDir=='/'){
for(var j=0; j<dirListVal.length; j++){
var dirFullPath = dirListVal[j];
var dirType = dirListType[j];
dirFullPath = dirFullPath.replace('\/\/','\/');
var dirName = dirFullPath;
if(sh=="Hide" && ((rootLevelEnabled==true && dirName.indexOf("/.")==0) || (rootLevelEnabled==false && dirName.indexOf("/.")>0))){
var tr_style='style="display: none;"';
continue
}
else{
var tr_style='';
}
var splitDir = dirFullPath.split("/");
var dir = splitDir.pop();
dirName1 = dirName.replace('&quot;','"');
dirFullPath = htmlEntities(dirFullPath);
dirName = htmlEntities(dirName);
dir = htmlEntities(dir);
drivePath = htmlEntities(drivePath);
if(machine=='QNAP' || machine==ASUSTOR){
var drivePath = splitDir[1]+"/"+splitDir[2];
} else {
var drivePath = splitDir[1];
}
var title ;
if(machine=='twotier' || rootLevelEnabled==true){
title = dir;
}
else if(machine==ASUSTOR){
title = IDrive.LocalDirList[getDir][dirName1].filename;
}
else {
title = dir+' @ '+drivePath;
}
var dirDisplayName = dir;
if(machine==ASUSTOR){
var dirDisplayName = IDrive.LocalDirList[getDir][dirName1].filename;
}
if(dirType=='folder'){
dirHTML += '<tr '+tr_style+' class="row_list">';
dirHTML += '<td class="file_check"><input type="checkbox" name="chk_elements['+j+']" value="'+dirFullPath+'" id="chk_elements['+j+']"><label>folder</label></td>';
dirHTML += '<td class="cont_heading" title="'+title+'"><a class="getDirList" href="javascript:void(0);" alt="'+dirFullPath+'">';
dirHTML += '<img src="include/images/idq_ico_folder.png"></a>';
dirHTML += '<a class="getDirList" href="javascript:void(0);" alt="'+dirFullPath+'"><span>';
dirHTML += dirDisplayName.replace(/[\s]/g,'&nbsp;');
dirHTML += '</span></a></td>';
if(typeof(IDrive.LocalDirList) == 'undefined') {
IDrive.LocalDirList = [];
}
dirHTML += '<td class="file_size"> -- </td><td class="file_date">'+IDrive.LocalDirList[getDir][dirName1].datetime+' </td>';
dirHTML += '<td class="file_menu_list"></td>';
dirHTML += '</tr>';
} else {
dirHTML += '<tr '+tr_style+' class="row_list">';
dirHTML += '<td class="file_check"><input type="checkbox" name="chk_elements['+j+']" value="'+dirFullPath+'" id="chk_elements['+j+']"><label>file</label></td>';
dirHTML += '<td class="cont_heading" title="'+title+'"><img src="include/images/idq_ico_file.png"><span>';
dirHTML += dirDisplayName.replace(/[\s]/g,'&nbsp;');
dirHTML += '</span></td>';
dirHTML += '<td class="file_size" value="'+IDrive.LocalDirList[getDir][dirName1].orgSize+'"> '+IDrive.LocalDirList[getDir][dirName1].size+' </td><td class="file_date" value="'+IDrive.LocalDirList[getDir][dirName1].orgDate+'"> '+IDrive.LocalDirList[getDir][dirName1].datetime+' </td>';
dirHTML += '<td class="file_menu_list"></td>';
dirHTML += '</tr>';
}
}
} else {
for(var j=0; j<dirListVal.length; j++){
var dirFullPath = dirListVal[j];
var dirType = dirListType[j];
var splitPath = dirFullPath.split('/');
var dirName = splitPath[splitPath.length-1];
if(sh=="Hide" && !dirName.indexOf(".")){
var tr_style='style="display: none;"';
continue;
}
else{
var tr_style='';
}
dirName1 = dirName.replace('&quot;','"');
dirFullPath = htmlEntities(dirFullPath);
dirName = htmlEntities(dirName);
if(dirType=='folder'){
dirHTML += '<tr '+tr_style+' class="row_list">';
dirHTML += '<td class="file_check"><input type="checkbox" name="chk_elements['+j+']" value="'+dirFullPath+'" id="chk_elements['+j+']"><label>folder</label></td>';
dirHTML += '<td class="cont_heading" title="'+dirName+'"><a class="getDirList" href="javascript:void(0);" alt="'+dirFullPath+'">';
dirHTML += '<img src="include/images/idq_ico_folder.png"></a>';
dirHTML += '<a class="getDirList" href="javascript:void(0);" alt="'+dirFullPath+'"><span>';
dirHTML += dirName.replace(/[\s]/g,'&nbsp;');
dirHTML += '</span></a></td>';
dirHTML += '<td class="file_size"> -- </td><td class="file_date"> '+IDrive.LocalDirList[getDir][dirName1].datetime+' </td><td class="file_menu_list"></td>';
dirHTML += '</tr>';
} else {
dirHTML += '<tr '+tr_style+' class="row_list">';
dirHTML += '<td class="file_check"><input type="checkbox" name="chk_elements['+j+']" value="'+dirFullPath+'" id="chk_elements['+j+']"><label>file</label></td>';
dirHTML += '<td class="cont_heading" title="'+dirName+'"><img src="include/images/idq_ico_file.png"><span>';
dirHTML += dirName.replace(/[\s]/g,'&nbsp;');
dirHTML += '</span></td>';
dirHTML += '<td class="file_size" value="'+IDrive.LocalDirList[getDir][dirName1].orgSize+'"> '+IDrive.LocalDirList[getDir][dirName1].size+' </td><td class="file_date" value="'+IDrive.LocalDirList[getDir][dirName1].orgDate+'"> '+IDrive.LocalDirList[getDir][dirName1].datetime+' </td><td class="file_menu_list"></td>';
dirHTML += '</tr>';
}
}
}
jQuery(forLoader).siblings('.ajax_loader').hide();
if(dirHTML!=''){
jQuery('#'+toPlace).find('tbody').html(dirHTML);
} else {
jQuery('#'+toPlace).hide().siblings('.nfiles').show();
jQuery('#maincheck,#selectFiles #maincheck').siblings('label').css('visibility','hidden');
}
localFileBreadcrumb(getDir,toPlace,breadcrum,maincheck); //Call breadCrumb function
markSelectedItems(getDir,toPlace,breadcrum,maincheck); //Call function to "Mark" the selected Items
if(toPlace=='newBackupSet'){
jQuery('#'+toPlace).find('td').removeClass('file_menu_list');
}
}
}
//Function to update BreadCrumb & keep the child file/folders as Selected if parent got selected
function localFileBreadcrumb(getDir,toPlace,breadcrum,maincheck){
var splitDir = getDir.split('/');
var breadCrumb = '<a href="javascript:void(0);" alt="/" title="/" class="getDirList home">Home</a>';
var currDir = "";
splitDir = splitDir.filter(function(val) {
if(!(val === "" || typeof val == "undefined" || val === null)){
currDir += "/"+htmlEntities(val);
var title = currDir;
if(machine=='twotier'){
title = currDir.substring(sharedFolderPathLength);
}
breadCrumb += '<a href="javascript:void(0);" alt="'+currDir+'" title="'+title+'" class="getDirList">'+val+'</a>';
}
});
jQuery('#'+breadcrum).html(breadCrumb);
responsiveBreadcrumb('#'+breadcrum,'getDirList');
}
//Function to "Mark" the selected Items
function markSelectedItems(getDir,toPlace,breadcrum,maincheck){
if(rootLevelEnabled==false && getDir == "/"){
getDir = rootLevelVal;
}
var split_path = getDir.split('/');
var split_path_count = split_path.length;
var selected_path = '';
var selected_path_found = 0;
var current_directory = jQuery('#fullPathBreadCrumb a:last').attr('alt');
//Backup Set
if(toPlace=='loadFullPath'){
if(jQuery('.body_wrap').hasClass('backup_page')){
//Backup Set
var tempBackupSetArray = backupSetArray.slice();
} else {
//Local Backup Set
var tempBackupSetArray = localBackupSetArray.slice();
}
//Avoiding the missing items of backup set
if(defaultBackupSetFileInfo.length>0){
var test = defaultBackupSetFileInfo.filter(function(val) {
var index = tempBackupSetArray.indexOf(val);
if(index>=0){
tempBackupSetArray.splice(index, 1);
}
});
}
//Backup Set: For child under the selected parent
for(var i=1; i<split_path_count; i++){
selected_path += "/"+split_path[i];
if((sh=='Hide' && selected_path.indexOf('/.')!=-1))
continue;
if(tempBackupSetArray.indexOf(selected_path)!=-1){ //alert("selected_path index "+selected_path);
jQuery('#'+toPlace).find('tr').addClass('chk').find('input').attr('checked',true).next('label').addClass('label_checked');
jQuery('.backupFilePath #maincheck').next().addClass('label_checked');
selected_path_found=1;
}
}
//Backup Set: For selected parent directory
if(selected_path_found ==0){
var test = tempBackupSetArray.filter(function(val) {
if(!(val === "" || typeof val == "undefined" || val === null)){
var checkId = tempBackupSetArray.indexOf(val);
if((sh=='Hide' && val.indexOf('/.')!=-1))
return;
if(checkId>=0){
if(dynamicArray.indexOf(clickedDirPath) != "" && dynamicArray[clickedDirPath] != null)
{
var id_of_element = dynamicArray[clickedDirPath].indexOf(val);
if(id_of_element>=0){
if(sh=='Hide')
{
var hiddenCount = countHiddenFilesAboveSelectedFile(clickedDirPath, val);
id_of_element = id_of_element - hiddenCount;
}
var selected_dir_id = jQuery('#loadFullPath input[type="checkbox"]').eq(id_of_element);
selected_dir_id.attr('checked',true).next().addClass('label_checked').closest('tr').addClass('chk');
if(selected_dir_id.attr('checked')=='checked'){
jQuery('.backupFilePath #maincheck').next().addClass('label_semi_checked');
}
}
}
}
}
});
}
//Mark "Partial check" if its child has been selected
var curPathDirList = dynamicArray[clickedDirPath];
if(curPathDirList != null){
if(curPathDirList.length>0){
for(var i=0; i<curPathDirList.length; i++){
var selected_dir = curPathDirList[i]+'/';
if((sh=='Hide' && selected_dir.indexOf('/.')!=-1))
continue;
var check_parent = array_search(tempBackupSetArray,selected_dir);
if(check_parent!=''){
var val = selected_dir.slice(0, -1);
if(dynamicArray.indexOf(clickedDirPath) != "" && dynamicArray[clickedDirPath] != null)
{
var id_of_element = dynamicArray[clickedDirPath].indexOf(val);
if(sh=='Hide')
{
var hiddenCount = countHiddenFilesAboveSelectedFile(clickedDirPath, val);
id_of_element = id_of_element - hiddenCount;
}
var selected_dir_id = jQuery('#loadFullPath input[type="checkbox"]').eq(id_of_element);
if(selected_dir_id.attr('checked')!='checked'){
selected_dir_id.next().addClass('label_semi_checked');
jQuery('.backupFilePath #maincheck').next().addClass('label_semi_checked');
}
}
}
}
}
} else {
var curPathDirList1 = new Array();
jQuery('#'+toPlace+' input').each(function(){
var curItemVal = jQuery(this).val();
curPathDirList1.push(curItemVal+'/');
});
if(curPathDirList1.length>0){
selected_dir = getDir;
var check_parent = array_search(curPathDirList1,selected_dir);
if(check_parent.length>0){
var val = check_parent[0].slice(0,-1);
if(dynamicArray.indexOf(clickedDirPath) != "" && dynamicArray[clickedDirPath] != null)
{
var id_of_element = dynamicArray[clickedDirPath].indexOf(val);
var selected_dir_id = jQuery('#loadFullPath input[type="checkbox"]').eq(id_of_element);
if(selected_dir_id.attr('checked')!='checked'){
selected_dir_id.next().addClass('label_semi_checked');
jQuery('.backupFilePath #maincheck').next().addClass('label_semi_checked');
}
}
}
}
}
} else {
//New Backup Set: For child under the selected parent
for(var i=1; i<split_path_count; i++){
selected_path += "/"+split_path[i];
if((sh=='Hide' && selected_path.indexOf('/.')!=-1))
continue;
if(newBackupSetArray.indexOf(selected_path)!=-1){ //alert("selected_path index "+selected_path);
jQuery('#'+toPlace).find('tr').addClass('chk').find('input').attr('checked',true).next('label').addClass('label_checked');
jQuery('#selectFiles #maincheck').next().addClass('label_checked');
selected_path_found=1;
}
}
//New Backup Set: For selected parent directory
if(selected_path_found ==0){
var test = newBackupSetArray.filter(function(val) {
if(!(val === "" || typeof val == "undefined" || val === null)){
if((sh=='Hide' && val.indexOf('/.')!=-1))
return;
if(dynamicArray.indexOf(clickedDirPath) != "" && dynamicArray[clickedDirPath] != null)
{
var id_of_element = dynamicArray[clickedDirPath].indexOf(val);
if(id_of_element>=0){
if(sh=='Hide')
{
var hiddenCount = countHiddenFilesAboveSelectedFile(clickedDirPath, val);
id_of_element = id_of_element - hiddenCount;
}
var selected_dir_id = jQuery('#newBackupSet input[type="checkbox"]').eq(id_of_element);
selected_dir_id.attr('checked',true).next().addClass('label_checked').closest('tr').addClass('chk');
jQuery('#selectFiles #maincheck').next().addClass('label_semi_checked');
}
}
}
});
}
//Mark "Partial check" if its child has been selected
var curPathDirList = dynamicArray[clickedDirPath];
if(curPathDirList != null){
if(curPathDirList.length>0){
for(var i=0; i<curPathDirList.length; i++){
var selected_dir = curPathDirList[i]+'/';
if((sh=='Hide' && selected_dir.indexOf('/.')!=-1))
continue;
var check_parent = array_search(newBackupSetArray,curPathDirList[i]);
if(check_parent!=''){
var val = curPathDirList[i];
if(dynamicArray.indexOf(clickedDirPath) != "" && dynamicArray[clickedDirPath] != null)
{
var id_of_element = dynamicArray[clickedDirPath].indexOf(val);
if(sh=='Hide')
{
var hiddenCount = countHiddenFilesAboveSelectedFile(clickedDirPath, val);
id_of_element = id_of_element - hiddenCount;
}
var selected_dir_id = jQuery('#newBackupSet input[type="checkbox"]').eq(id_of_element);
if(selected_dir_id.attr('checked')!='checked'){
selected_dir_id.next().addClass('label_semi_checked');
jQuery('#selectFiles #maincheck').next().addClass('label_semi_checked');
}
}
}
}
}
}
}
markMaincheckAfterRemove(toPlace);
}
/* Function to Load local system Files/Folders - End */
/* Select Backup Location - Start */
jQuery(document).on('click', '.backup_page #loadBackupLocation tr:not("a")', function() {
var className = jQuery(this).attr('class');
if(className!=undefined){
jQuery(this).removeAttr('class').removeAttr('style');
} else {
jQuery('#excludeFilesPath tr').removeAttr('class').removeAttr('style');
jQuery(this).addClass('selected_row').css("background-color","#CDDAE1");
jQuery('#permissionError').hide();
}
});
jQuery(document).on('click', '#addBackupLocation', function() {
var location = jQuery('.selected_row').find("a").attr('alt');
var location1 = jQuery('#backupLocationBreadCrumb a:last').attr('alt');
if(location!='' && location!=undefined && location!=null ){
location = htmlentities_decode(location);
jQuery('#backupLocation').val(location).focus().attr('title', location);
startTimeoutForAutoPost('restore'); //Auto POST
actionRequired=2;
} else if(location1=='/'){
showErrorMessages('#permissionError','Please select backup location');
return false;
} else if(location1!='' && location1!=undefined && location1!=null){
location1 = htmlentities_decode(location1);
jQuery('#backupLocation').val(location1).focus().attr('title', location1);
startTimeoutForAutoPost('restore'); //Auto POST
actionRequired=2;
}
$.popContainerHide();
});
/* Select Backup Location - End */
/* Start Manual Backup - Start*/
function startManualBackup(){
if(reIndexStarted == true && jQuery('.body_wrap').hasClass('localbackup_page')) {
showErrorMessages('.head_search .error_msg', 'Reindex in progress. Please try again later');
return false;
}
var type = 'backup';
showStopBackupButton();
if(jQuery('.body_wrap').hasClass('localbackup_page')){
type = 'localBackup';
if(manualLocalBackupRunning==true){
showStartBackupButton();
return false;
}
} else if(manualBackupRunning==true){
showStartBackupButton();
return false;
}
if(type == 'localBackup' && reIndexStarted == true){
showErrorMessages('.head_search .alert', 'Verifying the reindex process');
jQuery.ajax({
url: "action.php?action=reIndexWatcher",
async: false,
success: function(data){
if(data.indexOf('<html>')>0){
window.location.href='../index.php';
}
dataArray=$.parseJSON(data);
if(dataArray[0]=='running'){
showStartBackupButton();
return false;
} else {
reIndexStarted=false;
}
}
});
}
$("#backupsetFiles").find('tr:hidden input:checkbox').addClass("excludeForBackup");
var fieldsCount = jQuery("form[name*='startBackupForm'] input[type='checkbox']:not(.excludeForBackup)").attr('checked',true).length;
if(fieldsCount == 0){
showErrorMessages('.head_search .error_msg',"Please select folder(s)/file(s) to backup");
showStartBackupButton();
return false;
}
if(machine=='twotier') {
manualBackupAJAX();
} else {
if(checkArchiveRunningAjax==true){
showStartBackupButton();
return false;
}
checkArchiveRunningAjax=true;
//showErrorMessages('.head_search .alert','Verifying the archive cleanup process');
// check archive job is running
var urlCheck = "action.php?action=checkJobRunning&job=archive";
$.get(urlCheck,function(jobdata){
jQuery('.head_search .alert').hide();
checkArchiveRunningAjax=false;
var jobresult = $.parseJSON(jobdata);
var jobStatus = jobresult.jobstatus;
if(jobStatus !== true){
manualBackupAJAX();
}
else{
showErrorMessages('.head_search .error_msg',"Unable to start backup. Archive is in progress.");
showStartBackupButton();
return;
}
});
}
//Edit BackupSetFile
if(actionRequired==2){
editJob('backup');
}
return false;
}
function manualBackupAJAX(){
if(jQuery("#backupLocation").val()==''){
showErrorMessages('.head_search .error_msg','Please select the Backup Location');
showStartBackupButton();
return false;
} else {
var currentBackupLocation = jQuery("#backupLocation").val();
}
jQuery("#startManualTaskButton").val('Yes');
jQuery("#cancelManualTaskButton").val('');
$("#backupsetFiles").find('tr:hidden input:checkbox').addClass("excludeForBackup");
var fieldsCount = jQuery("form[name*='startBackupForm'] input[type='checkbox']:not(.excludeForBackup)").attr('checked',true).length;
var values = jQuery("form#startBackupForm").serialize();
if(fieldsCount > 0){
//showStopBackupButton();
//jQuery("div.loading_icon").show();
var type = 'backup';
if(jQuery('.body_wrap').hasClass('backup_page')){
manualBackupRunning=true;
//Clearing Default Set Array
defaultBackupSetArray = [];
defaultBackupSetTypeArray = [];
defaultBackupSetFileInfo = [];
jQuery("form[name*='startBackupForm'] input[type='checkbox']:checked").each(function(){
var dirName = jQuery(this).val();
var dirType = jQuery(this).siblings('input[type="hidden"]').val();
defaultBackupSetArray.push(dirName);
defaultBackupSetTypeArray.push(dirType);
});
} else {
manualLocalBackupRunning=true;
type = 'localBackup';
var currentBackupLocation = jQuery("#selectBackupLocation").val();
//Clearing Default Set Array
defaultLocalBackupSetArray = [];
defaultLocalBackupSetTypeArray = [];
defaultBackupSetFileInfo = [];
jQuery("form[name*='startBackupForm'] input[type='checkbox']:checked").each(function(){
var dirName = jQuery(this).val();
var dirType = jQuery(this).siblings('input[type="hidden"]').val();
defaultLocalBackupSetArray.push(dirName);
defaultLocalBackupSetTypeArray.push(dirType);
});
}
//AJAX call to start Backup
$.ajax({
url: "createManualJob.php",
type: "POST",
data: values,
success: function(validatedData){
if(validatedData.indexOf('<html>')>0){
window.location.href='../index.php';
}
if(validatedData!=''){
validatedRes=$.parseJSON(validatedData);
if(validatedRes[0]==true){
// calling activejob watcher after successfull job start
clearTimeout(activeJobsTimeoutVar);
activeJobsTimeoutVar = setTimeout(watcherForActiveJobs, PROGRESS_WATCHER_ENABLE_TIME);
backupTimeoutVar = setTimeout(function(){watchBackupStatus(type)},timeForWatcher);
showErrorMessages('.head_search .welcome_message','Backup has been started successfully.');
if(deDupDeviceID) bkpLocation = deDupDeviceID.substr(4).slice(0, -4);
else bkpLocation = currentBackupLocation;
deleteRemoteDirList(bkpLocation,type); //Delete the element from RemoteDirList array after Backup
} else {
showStartBackupButton();
clearTimeout(backupTimeoutVar);
if(type == 'backup')
manualBackupRunning=false;
else
manualLocalBackupRunning=false;
if(validatedRes[1] == 1)
showErrorMessages('.head_search .error_msg',"Backup job for the selected set is already in progress from scheduled jobs.");
else
showErrorMessages('.head_search .error_msg',"Backup Job has failed to start.");
}
}
}
});
}
else {
showStartBackupButton();
showErrorMessages('.head_search .error_msg',"Please select folder(s)/file(s) to backup");
}
}
/* Start Manual Backup - End*/
function showStartBackupButton()
{
jQuery("#startBackup").show();
jQuery("#cancelBackup,#cancellingBackup,.alert,.cancel_loading_icon").hide();
}
function showStopBackupButton(){
jQuery("#startBackup").hide();
jQuery("#cancelBackup").show();
}
/* Cancel Manual Backup Immediately - Start*/
function cancelManualBackup(){
jQuery("#cancelManualTaskButton").val('Yes');
jQuery("#startManualTaskButton").val('');
var values = jQuery("form#startBackupForm").serialize();
manualBackupRunning=false;
if(values != ''){
jQuery('.common_msg').hide();
showErrorMessages('.head_search .alert',"Cancelling backup operation...Please wait");
if(jQuery('.body_wrap').hasClass('backup_page')){
//Clearing Default Set Array
defaultBackupSetArray = [];
defaultBackupSetTypeArray = [];
} else {
//Clearing Default Set Array
defaultLocalBackupSetArray = [];
defaultLocalBackupSetTypeArray = [];
$('.backupset_table').find('input[type="checkbox"]').attr('checked', false);
}
defaultBackupSetFileInfo = [];
//AJAX call to start Backup
$.ajax({
url: "createManualJob.php",
type: "POST",
data: values,
success: function(validatedData){
if(validatedData.indexOf('<html>')>0){
window.location.href='../index.php';
}
jQuery("#cancelBackup").hide();
jQuery("#cancellingBackup,.cancel_loading_icon").show();
//jQuery("div.loading_icon").hide();
}
});
}
return false;
}
/* Cancel Manual Backup Immediately - End*/
/* Backup Set - Start */
jQuery(document).on('click', '.backupFilePath td.file_check, .backupFilePath .header_part .file_check', function(e) {
//Checking whether clicked on Checkbox or TD
var clickedLabel = e.target.nodeName;
if(clickedLabel != 'LABEL'){
return false;
}
//Checking whether Job Selected to Edit or not
if(actionRequired ==1){
actionRequired =2;
startTimeoutForAutoPost('backup'); //Auto POST
}
if(jQuery(this).find('label').hasClass('label_checked')){
if(jQuery(this).find('label').html()=="All"){
backupSetFiles("All");
} else {
backupSetFiles(jQuery(this));
}
} else {
if(jQuery(this).find('label').html()=="All"){
removeBackupSetFiles("All","loadFullPath");
} else {
removeBackupSetFiles(jQuery(this),"loadFullPath");
}
}
markMaincheckAfterRemove('startBackupForm'); //Added to check/uncheck the main check of backup set while add/remove item
getItemSize();
});
/* Function to add selected elements into Backup Set */
function backupSetFiles(args) {
var html = '', selected='';
if(jQuery('.body_wrap').hasClass('backup_page')){
var checkArray1 = backupSetArray;
var checkArray2 = backupSetTypeArray;
var checkArray3 = defaultBackupSetArray;
var checkArray4 = defaultBackupSetTypeArray;
} else {
var checkArray1 = localBackupSetArray;
var checkArray2 = localBackupSetTypeArray;
var checkArray3 = defaultLocalBackupSetArray;
var checkArray4 = defaultLocalBackupSetTypeArray;
}
/* Show files/folders under Backup Set. Hide "No items" - Start */
if(checkArray1.indexOf(selected)==-1){
jQuery('#removebBackupsetFiles span').hide();
jQuery('#maincheckBackup').siblings('label').removeAttr('class').parent().parent().show();
jQuery('#noBackupsetFiles').hide().siblings('form').find('.excludefiles').show();
}
/* Show files/folders under Backup Set. Hide "No items" - End */
if(args!="All"){
var fileCheckLabel = jQuery('.backupFilePath .header_part .file_check label');
if(fileCheckLabel.hasClass('label_checked')){
args = "All";
}
}
/*
if(rootLevelEnabled==false && clickedDirPath =='/'){
clickedDirPath = rootLevelVal;
} */
/* Add selected files/folders under Backup Set - Start */
if(args=="All" && clickedDirPath =='/'){
jQuery('#loadFullPath input').each(function(){
selected = jQuery(this).val();
toParse = selected.replace('/','');
var parsedID = toParse.replace(/[\/]/g,'_');
parsedID = base64_encode(parsedID,1);
parsedID = parsedID.replace(/[=]/gi, '');
var imgSrc = jQuery(this).parent().next().find('img').attr('src');
var imgSubstr = imgSrc.substring(23);
var itemType = imgSubstr.replace('.png','');
if(checkArray1.indexOf(selected)==-1){
//To skip if the file/folder is hidden
if(sh=='Hide' && selected.indexOf('/.')>=1){
return;
}
var displaySelected = selected;
if(machine=='twotier'){
displaySelected = selected.substring(sharedFolderPathLength);
}
html += '<tr id="'+parsedID+'">\
<td class="file_check"><input type="checkbox" name="chk_group[]" value="'+htmlEntities(selected)+'" ><input type="hidden" name="itemType[]" value="'+itemType+'" ><label>files</label></td>\
<td width="68%" class="cont_heading" title="'+htmlEntities(displaySelected)+'"><img src="'+imgSrc+'"><span>'+htmlEntities(displaySelected).replace(/[\s]/g,'&nbsp;');+'</span>\
</td><td width="5%"></td></tr>';
var selected_dir = selected+"/";
if(checkArray1.length>0){
var check_parent = array_search(checkArray1,selected_dir);
if(check_parent.length>0){
removeSubDirecories(check_parent,'backupsetFiles');
}
}
checkArray1.push(selected);
checkArray2.push(itemType);
if(jQuery('#select_job').val()=='0' || machine=='twotier'){
if((jQuery('.body_wrap').hasClass('backup_page') && manualBackupRunning==false) ||
(jQuery('.body_wrap').hasClass('localbackup_page') && manualLocalBackupRunning==false)){
checkArray3.push(selected);
checkArray4.push(itemType);
}
}
}
});
jQuery('#backupsetFiles').append(html);
} else {
var breadCrumbCall=false;
if(args=='All'){
breadCrumbCall=true;
args = clickedDirPath.replace(/\/$/, '');
}
if(typeof args!='string'){
selected = args.find('input').val();
toParse = selected.replace('/','');
var parsedID = toParse.replace(/[\/]/g,'_');
parsedID = base64_encode(parsedID,1);
parsedID = parsedID.replace(/[=]/gi, '');
var imgSrc = args.next().find('img').attr('src');
var imgSubstr = imgSrc.substring(23);
var itemSize = args.siblings(".file_size").attr('value');
var itemLModf = args.siblings(".file_date").attr('value');
var itemType = imgSubstr.replace('.png','');
var selected_dir = selected+"/";
} else {
selected = args;
if(breadCrumbCall==true || jQuery('.serverDts ').css('right')=='0px'){
var selected_dir = selected + "/";
var checkParent = '';
if($("#addToBackupSet").is(":visible") && jQuery('.serverDts ').css('right') == '0px') {
checkParent = array_search_reverse_display(checkArray1, selected_dir);
} else {
checkParent = array_search_reverse(checkArray1, selected);
}
if(checkParent.length > 0) {
return false;
}
}
toParse = selected.replace('/','');
var parsedID = toParse.replace(/[\/]/g,'_');
parsedID = base64_encode(parsedID,1);
parsedID = parsedID.replace(/[=]/gi, '');
if(breadCrumbCall==false){
var searchItemIndex = searchItemArray.indexOf(selected);
var itemType = searchItemTypeArray[searchItemIndex];
var imgSrc = "include/images/idq_ico_"+itemType+".png";
} else {
var itemType = 'folder';
var imgSrc = "include/images/idq_ico_"+itemType+".png";
}
}
if(checkArray1.indexOf(selected)==-1){
var displaySelected = selected;
if(machine=='twotier'){
displaySelected = selected.substring(sharedFolderPathLength);
}
html = '<tr id="'+parsedID+'">\
<td class="file_check"><input type="checkbox" name="chk_group[]" value="'+htmlEntities(selected)+'" ><input type="hidden" name="itemType[]" value="'+itemType+'" ><input type="hidden" name="itemSize[]" value="'+itemSize+'" ><input type="hidden" name="itemLModf[]" value="'+itemLModf+'" ><label>files</label></td>\
<td width="68%" class="cont_heading" title="'+htmlEntities(displaySelected)+'"><img src="'+imgSrc+'"><span>'+htmlEntities(displaySelected).replace(/[\s]/g,'&nbsp;');+'</span>\
</td><td width="5%"></td></tr>';
jQuery('#backupsetFiles').append(html);
if(checkArray1.length>0){
//Checking parent with Child item
var check_parent = array_search(checkArray1,selected+'/');
if(check_parent.length>0){
removeSubDirecories(check_parent,'backupsetFiles');
}
//Checking Child with parent item
var check_child = array_search_reverse_display(checkArray1,selected);
if(check_child.length>0){
removeSubDirecories(check_child,'backupsetFiles');
}
}
checkArray1.push(selected);
checkArray2.push(itemType);
if(jQuery('#select_job').val()=='0' || machine=='twotier'){
if((jQuery('.body_wrap').hasClass('backup_page') && manualBackupRunning==false) ||
(jQuery('.body_wrap').hasClass('localbackup_page') && manualLocalBackupRunning==false)){
checkArray3.push(selected);
checkArray4.push(itemType);
}
}
}
}
/* Add selected files/folders under Backup Set - End */
}
/* Function to remove selected elements from Backup Set */
function removeBackupSetFiles(args,DivId){
if(DivId=='loadFullPath'){
//Backup Set
var parentDiv = 'backupsetFiles';
var breadCrumbID = 'fullPathBreadCrumb';
if(jQuery('.body_wrap').hasClass('backup_page')){
var backupArray1 = backupSetArray;
var backupArray2 = backupSetTypeArray;
var backupArray3 = defaultBackupSetArray;
var backupArray4 = defaultBackupSetTypeArray;
} else {
var backupArray1 = localBackupSetArray;
var backupArray2 = localBackupSetTypeArray;
var backupArray3 = defaultLocalBackupSetArray;
var backupArray4 = defaultLocalBackupSetTypeArray;
}
} else {
//New Backup Set
var parentDiv = 'selectedBackupsetFiles';
var breadCrumbID = 'bkpBreadCrumb';
var backupArray1 = newBackupSetArray;
var backupArray2 = newBackupSetTypeArray;
}
if(args=="All" && clickedDirPath =='/'){
jQuery('#'+parentDiv+' tr').remove();
backupArray1=[];
backupArray2=[];
if(DivId=='loadFullPath' && (jQuery('#select_job').val()=='0' || machine=='twotier')){
if((jQuery('.body_wrap').hasClass('backup_page') && manualBackupRunning==false) ||
(jQuery('.body_wrap').hasClass('localbackup_page') && manualLocalBackupRunning==false)){
backupArray3=[];
backupArray4=[];
defaultBackupSetFileInfo = [];
}
}
} else {
var checkedElement = jQuery('#'+DivId+' tr.chk input:checked');
if(args=="All"){
selected = clickedDirPath;
}else{
selected = args.find('input').val();
}
var index = backupArray1.indexOf(selected);
if(index>=0){
toParse = selected.replace('/','');
var parsedID = toParse.replace(/[\/]/g,'_');
parsedID = base64_encode(parsedID,1);
parsedID = parsedID.replace(/[=]/gi, '');
jQuery('#'+parentDiv+' tr#'+parsedID).remove();
backupArray1.splice(index, 1);
backupArray2.splice(index, 1);
if(DivId=='loadFullPath' && (jQuery('#select_job').val()=='0' || machine=='twotier')){
if((jQuery('.body_wrap').hasClass('backup_page') && manualBackupRunning==false) ||
(jQuery('.body_wrap').hasClass('localbackup_page') && manualLocalBackupRunning==false)){
backupArray3.splice(index, 1);
backupArray4.splice(index, 1);
}
}
} else {
if(args=="All"){
var allClickedDirPath = clickedDirPath.split('/');
allClickedDirPath.pop();
var parentPath = allClickedDirPath.join("/");
}
else{
var parentPath = clickedDirPath;
}
var index = backupArray1.indexOf(parentPath);
if(index>=0 && args!="All"){
toParse = backupArray1[index].replace('/','');
var parsedID = toParse.replace(/[\/]/g,'_');
parsedID = base64_encode(parsedID,1);
parsedID = parsedID.replace(/[=]/gi, '');
jQuery('#'+parentDiv+' tr#'+parsedID).remove();
backupArray1.splice(index, 1);
backupArray2.splice(index, 1);
if(DivId=='loadFullPath' && (jQuery('#select_job').val()=='0' || machine=='twotier')){
if((jQuery('.body_wrap').hasClass('backup_page') && manualBackupRunning==false) ||
(jQuery('.body_wrap').hasClass('localbackup_page') && manualLocalBackupRunning==false)){
backupArray3.splice(index, 1);
backupArray4.splice(index, 1);
}
}
addSelectedItemExceptUnchecked(parentDiv,checkedElement,parentPath); // Call function to add other items
} else {
var clickedDirPathSplit = parentPath.split('/');
if(args!="All")
clickedDirPathSplit.pop();
var clickedDirPathSplitCount = clickedDirPathSplit.length;
var pathAppend = '';
var pathSearch = new Array();
for(var i=1; i<clickedDirPathSplitCount; i++){
pathAppend += '/'+clickedDirPathSplit[i];
pathSearch.push(pathAppend);
}
addSelectedItemExceptUnchecked(parentDiv,checkedElement,parentPath); // Call function to add other items
for(var j=(pathSearch.length-1); j>=0; j--){
var index = backupArray1.indexOf(pathSearch[j]);
addSelectedItemExceptUnchecked(parentDiv,'',pathSearch[j]); //Call function to add other items
if(index>=0){
toParse = pathSearch[j].replace('/','');
var parsedID = toParse.replace(/[\/]/g,'_');
parsedID = base64_encode(parsedID,1);
parsedID = parsedID.replace(/[=]/gi, '');
jQuery('#'+parentDiv+' tr#'+parsedID).remove();
backupArray1.splice(index, 1);
backupArray2.splice(index, 1);
if(DivId=='loadFullPath' && (jQuery('#select_job').val()=='0' || machine=='twotier')){
if((jQuery('.body_wrap').hasClass('backup_page') && manualBackupRunning==false) ||
(jQuery('.body_wrap').hasClass('localbackup_page') && manualLocalBackupRunning==false)){
backupArray3.splice(index, 1);
backupArray4.splice(index, 1);
}
}
break;
}
}
} //End
}
}
checkRemainingBackupsetFiles(DivId);
markMaincheckAfterRemove('loadFullPath');
}
/* Function to remove already selected sub-directories while selecting its parent */
function removeSubDirecories(args,parentDiv){
arr_length = args.length;
if(parentDiv == 'selectedBackupsetFiles'){
//New Backup Set
var backupArray1 = newBackupSetArray;
var backupArray2 = newBackupSetTypeArray;
} else {
if(jQuery('.body_wrap').hasClass('backup_page')){
//Backup Set
var backupArray1 = backupSetArray;
var backupArray2 = backupSetTypeArray;
var backupArray3 = defaultBackupSetArray;
var backupArray4 = defaultBackupSetTypeArray;
} else {
//Local Backup Set
var backupArray1 = localBackupSetArray;
var backupArray2 = localBackupSetTypeArray;
var backupArray3 = defaultLocalBackupSetArray;
var backupArray4 = defaultLocalBackupSetTypeArray;
}
}
for(var i=0;i<arr_length;i++){
selected = args[i];
selected1 = selected;
toParse = selected1.replace('/','');
var parsedID = toParse.replace(/[\/]/g,'_');
parsedID = base64_encode(parsedID,1);
parsedID = parsedID.replace(/[=]/gi, '');
jQuery('#'+parentDiv+' tr#'+parsedID).remove();
var index = backupArray1.indexOf(selected.replace(/\/\s*$/, ""));
backupArray1.splice(index, 1);
backupArray2.splice(index, 1);
if(parentDiv != 'selectedBackupsetFiles'){
if((jQuery('.body_wrap').hasClass('backup_page') && manualBackupRunning==false) ||
(jQuery('.body_wrap').hasClass('localbackup_page') && manualLocalBackupRunning==false)){
backupArray3.splice(index, 1);
backupArray4.splice(index, 1);
}
}
}
}
//Function add remaining items after unchecking child element
function addSelectedItemExceptUnchecked(backupsetDivID,checkedElement,currDirPath){
var html = '', selected='';
if(backupsetDivID=='backupsetFiles'){
if(jQuery('.body_wrap').hasClass('backup_page')){
//Backup Set
var backupArray1 = backupSetArray;
var backupArray2 = backupSetTypeArray;
var backupArray3 = defaultBackupSetArray;
var backupArray4 = defaultBackupSetTypeArray;
} else {
//Local Backup Set
var backupArray1 = localBackupSetArray;
var backupArray2 = localBackupSetTypeArray;
var backupArray3 = defaultLocalBackupSetArray;
var backupArray4 = defaultLocalBackupSetTypeArray;
}
} else {
//New Backup Set
var backupArray1 = newBackupSetArray;
var backupArray2 = newBackupSetTypeArray;
}
if(checkedElement!=''){
checkedElement.each(function(){
selected = jQuery(this).val();
toParse = selected.replace('/','');
var parsedID = toParse.replace(/[\/]/g,'_');
parsedID = base64_encode(parsedID,1);
parsedID = parsedID.replace(/[=]/gi, '');
var imgSrc = jQuery(this).parent().next().find('img').attr('src');
var imgSubstr = imgSrc.substring(23);
var itemType = imgSubstr.replace('.png','');
var itemSize = jQuery(this).parent().next().siblings(".file_size").attr('value');
var itemLModf = jQuery(this).parent().next().siblings(".file_date").attr('value');
if(backupArray1.indexOf(selected)==-1){
var displaySelected = selected;
if(machine=='twotier'){
displaySelected = selected.substring(sharedFolderPathLength);
}
html += '<tr id="'+parsedID+'">\
<td class="file_check"><input type="checkbox" name="chk_group[]" value="'+htmlEntities(selected)+'" ><input type="hidden" name="itemType[]" value="'+itemType+'" ><input type="hidden" name="itemSize[]" value="'+itemSize+'" ><input type="hidden" name="itemLModf[]" value="'+itemLModf+'" ><label>files</label></td>\
<td width="68%" class="cont_heading" title="'+htmlEntities(displaySelected)+'"><img src="'+imgSrc+'"><span>'+htmlEntities(displaySelected).replace(/[\s]/g,'&nbsp;');+'</span>\
</td><td width="5%"></td></tr>';
var selected_dir = selected+"/";
backupArray1.push(selected);
backupArray2.push(itemType);
if(backupsetDivID=='backupsetFiles'){
backupArray3.push(selected);
backupArray4.push(itemType);
}
}
});
jQuery('#'+backupsetDivID).append(html);
} else {
var dirListVal = dynamicArray[currDirPath];
var dirTypeVal = dynamicType[currDirPath];
var dirHTML = '';
for(var j=0; j< dirListVal.length; j++){
var dirFullPath = dirListVal[j];
var itemType = dirTypeVal[j];
var splitPath = dirFullPath.split('/');
var dirName = splitPath[splitPath.length-1];
selected = dirFullPath;
toParse = selected.replace('/','');
var parsedID = toParse.replace(/[\/]/g,'_');
parsedID = base64_encode(parsedID,1);
parsedID = parsedID.replace(/[=]/gi, '');
var isInString = clickedDirPath.indexOf(selected+'/');
if(backupArray1.indexOf(selected)==-1 && isInString==-1 && clickedDirPath!=selected){
var displaySelected = selected;
if(machine=='twotier'){
displaySelected = selected.substring(sharedFolderPathLength);
}
dirHTML += '<tr id="'+parsedID+'">\
<td class="file_check"><input type="checkbox" name="chk_group[]" value="'+htmlEntities(selected)+'" ><input type="hidden" name="itemType[]" value="'+itemType+'" ><label>files</label></td>\
<td width="68%" class="cont_heading" title="'+htmlEntities(displaySelected)+'"><img src="include/images/idq_ico_'+itemType+'.png"><span>'+htmlEntities(displaySelected).replace(/[\s]/g,'&nbsp;');+'</span>\
</td><td width="5%"></td></tr>';
var selected_dir = selected+"/";
backupArray1.push(selected);
backupArray2.push(itemType);
if(backupsetDivID=='backupsetFiles'){
backupArray3.push(selected);
backupArray4.push(itemType);
}
}
}
}
jQuery('#'+backupsetDivID).append(dirHTML);
}
/* Backup Set - End */
/* New Backup Set - Start */
jQuery(document).on('click', '.newBackupSetClass #newBackupSet td.file_check, .newBackupSetClass #selectFiles .header_part .file_check', function(e) {
//Checking whether clicked on Checkbox or TD
var clickedLabel = e.target.nodeName;
if(clickedLabel != 'LABEL'){
return false;
}
if(jQuery(this).find('label').hasClass('label_checked')){
if(jQuery(this).find('label').html()=="All"){
newBackupSetFiles("All");
} else {
newBackupSetFiles(jQuery(this));
}
} else {
if(jQuery(this).find('label').html()=="All"){
removeBackupSetFiles("All","newBackupSet");
} else {
removeBackupSetFiles(jQuery(this),"newBackupSet");
}
}
});
/* Function to add selected elements into New Backup Set */
function newBackupSetFiles(args){
var html = '', selected='';
/* Show files/folders under Backup Set. Hide "No items" - Start */
if(newBackupSetArray.indexOf(selected)==-1){
jQuery('#selectedFiles .main_chk_table').show();
jQuery('.selected_bdr .nfiles').hide();
}
/* Show files/folders under Backup Set. Hide "No items" - End */
if(args!="All"){
var fileCheckLabel = jQuery('.selectedFiles_tab .header_part .file_check label');
if(fileCheckLabel.hasClass('label_checked')){
args = "All";
}
}
/* Add selected files/folders under Backup Set - Start */
if(args=="All" && clickedDirPath =='/'){
jQuery('#newBackupSet input').each(function(){
selected = jQuery(this).val();
toParse = selected.replace('/','');
var parsedID = toParse.replace(/[\/]/g,'_');
parsedID = base64_encode(parsedID,1);
parsedID = parsedID.replace(/[=]/gi, '');
var itemSize = jQuery(this).parent('td').siblings(".file_size").html();
var itemLModf = jQuery(this).parent('td').siblings(".file_date").html();
var imgSrc = jQuery(this).parent().next().find('img').attr('src');
var imgSubstr = imgSrc.substring(23);
var itemType = imgSubstr.replace('.png','');
if(newBackupSetArray.indexOf(selected)==-1){
//To skip if the file/folder is hidden
if(sh=='Hide' && selected.indexOf('/.')>=1){
return;
}
var displaySelected = selected;
html += '<tr id="'+parsedID+'">\
<td class="file_check"><input type="checkbox" name="chk_group[]" value="'+htmlEntities(selected)+'" ><input type="hidden" name="itemType[]" value="'+itemType+'" ><input type="hidden" name="itemSize[]" value="'+itemSize+'" ><input type="hidden" name="itemLModf[]" value="'+itemLModf+'" ><label>files</label></td>\
<td width="68%" class="cont_heading" title="'+htmlEntities(displaySelected)+'"><img src="'+imgSrc+'"><span>'+htmlEntities(displaySelected).replace(/[\s]/g,'&nbsp;');+'</span>\
</td><td width="5%"></td></tr>';
if(newBackupSetArray.length>0){
var check_parent = array_search(newBackupSetArray,selected);
if(check_parent.length>0){
removeSubDirecories(check_parent,'selectedBackupsetFiles');
}
}
newBackupSetArray.push(selected);
}
});
jQuery('#selectedBackupsetFiles').append(html);
} else {
var breadCrumbCall=false;
if(args=='All'){
breadCrumbCall=true;
args = clickedDirPath.replace(/\/$/, '');
}
if(typeof args!='string'){
selected = args.find('input').val();
toParse = selected.replace('/','');
var parsedID = toParse.replace(/[\/]/g,'_');
parsedID = base64_encode(parsedID,1);
parsedID = parsedID.replace(/[=]/gi, '');
var imgSrc = args.next().find('img').attr('src');
var itemSize = args.siblings(".file_size").attr('value');
var itemLModf = args.siblings(".file_date").attr('value');
var imgSubstr = imgSrc.substring(23);
var itemType = imgSubstr.replace('.png','');
var selected_dir = selected+"/";
} else {
selected = args;
if(breadCrumbCall==true){
var checkParent = array_search_reverse(newBackupSetArray, selected);
if(checkParent.length>0){
return false;
}
}
toParse = selected.replace('/','');
var parsedID = toParse.replace(/[\/]/g,'_');
parsedID = base64_encode(parsedID,1);
parsedID = parsedID.replace(/[=]/gi, '');
var itemType = 'folder';
var imgSrc = "include/images/idq_ico_"+itemType+".png";
}
if(newBackupSetArray.indexOf(selected)==-1){
var displaySelected = selected;
html = '<tr id="'+parsedID+'">\
<td class="file_check"><input type="checkbox" name="chk_group[]" value="'+htmlEntities(selected)+'" ><input type="hidden" name="itemType[]" value="'+itemType+'" ><input type="hidden" name="itemSize[]" value="'+itemSize+'" ><input type="hidden" name="itemLModf[]" value="'+itemLModf+'" ><label>files</label></td>\
<td width="68%" class="cont_heading" title="'+htmlEntities(displaySelected)+'"><img src="'+imgSrc+'"><span>'+htmlEntities(displaySelected).replace(/[\s]/g,'&nbsp;');+'</span>\
</td><td width="5%"></td></tr>';
jQuery('#selectedBackupsetFiles').append(html);
if(newBackupSetArray.length>0){
//Checking parent with Child item
var check_parent = array_search(newBackupSetArray,selected+'/');
if(check_parent.length>0){
removeSubDirecories(check_parent,'selectedBackupsetFiles');
}
//Checking Child with parent item
var check_child = array_search_reverse(newBackupSetArray,selected);
if(check_parent.length>0){
removeSubDirecories(check_child,'selectedBackupsetFiles');
}
}
newBackupSetArray.push(selected);
}
}
/* Add selected files/folders under Backup Set - End */
}
/* New Backup Set - End */
//Function frequently check the ManualTask status until complete
function watchBackupStatus(type)
{
// AJAX call to get Backup Status
$.ajax({
url: "watchManualTaskStatus.php?type=" + type,
success: function(data) {
if(data.indexOf('<html>') > 0) {
window.location.href = '../index.php';
}
// manualBackupRunning = true;
if(data == 'running') {
jQuery("#startBackup, #cancellingBackup, .cancel_loading_icon").hide();
jQuery("#cancelBackup").show();
backupTimeoutVar = setTimeout(function(){watchBackupStatus(type)}, timeForWatcher);
} else if(data == 'cancelling') {
jQuery("#startBackup, #cancelBackup").hide();
jQuery("#cancellingBackup, .cancel_loading_icon").show();
backupTimeoutVar = setTimeout(function(){watchBackupStatus(type)}, timeForWatcher);
} else if(data == 'completed') {
jQuery("#startBackup").show();
jQuery("#cancelBackup, #cancellingBackup, .alert, .cancel_loading_icon").hide();
if(machine == 'twotier' && type == "backup") {
manualBackupRunning = false;
} else {
containerPage = '';
if(type == "backup") {
containerPage = '.backup_page ';
} else {
containerPage = '.localbackup_page ';
}
jQuery(containerPage + "#backupsetFiles").html('');
jQuery(containerPage + "#noBackupsetFiles").show().siblings('form').find('div.excludefiles').hide();
jQuery(containerPage + "#backupset_list tr.header_part, #backupset_list td.scheduleChangeBtn").hide();
jQuery(containerPage + ".archive_menu, .sizeLoadingIcon").hide();
jQuery(containerPage + ".backupFilePath label").removeAttr('class').siblings('input').removeAttr('checked');
jQuery(containerPage + "select.backupsetInput option").removeAttr('selected');
jQuery(containerPage + "#oldJobName").val('0');
jQuery(containerPage + "#backupSetSizeHTML").html('0.00 B');
jQuery(containerPage + "#backupSetSize").val(0);
//Senthil: Added this condition for the issue after cancelling backup with full items
if(type == "backup" && ((typeof manualBackupRunning != "undefined" && manualBackupRunning == true) || (defaultBackupSetArray.length ==0))){
//if(type == "backup" && typeof manualBackupRunning != "undefined" && manualBackupRunning == true){
// if(type == "backup") {
backupSetArray = [];
backupSetTypeArray = [];
// Clearing Default Set Array
defaultBackupSetArray = [];
defaultBackupSetTypeArray = [];
defaultBackupSetFileInfo = [];
manualBackupRunning = false;
} else if(typeof manualLocalBackupRunning != "undefined" && manualLocalBackupRunning == true) {
// } else {
localBackupSetArray = [];
localBackupSetTypeArray = [];
// Clearing Local Default Set Array
defaultLocalBackupSetArray = [];
defaultLocalBackupSetTypeArray = [];
manualLocalBackupRunning = false;
}
clearTimeout(backupTimeoutVar); //Stop watcher
backupTimeoutVar = '';
actionRequired = 1;
currentBackupJob = 0;
jQuery(containerPage + "#cancelManualTaskButton").val('Yes');
jQuery(containerPage + "#startManualTaskButton").val('');
}
} else {
backupTimeoutVar = setTimeout(function(){watchBackupStatus(type)}, timeForWatcher);
}
}
});
}
//Function to delete the element from RemoteDirList array after Backup
function deleteRemoteDirList(currentBackupLocation,type){
if(currentBackupLocation!=''){
if(type=='backup'){
for (var key in dynamicRemoteArray){
if(key.indexOf(currentBackupLocation) == 0){
delete dynamicRemoteArray[key];
delete dynamicRemoteType[key];
delete dynamicRemoteSize[key];
delete dynamicRemoteDate[key];
delete dynamicRemoteRequestInfo[key];
}
}
} else if(type=='localBackup'){
for (var key in dynamicLocalRestoreArray){
if(key.indexOf(currentBackupLocation) == 0){
delete dynamicLocalRestoreArray[key];
delete dynamicLocalRestoreType[key];
delete dynamicLocalRestoreSize[key];
delete dynamicLocalRestoreDate[key];
delete dynamicLocalRestoreRequestInfo[key];
}
}
}
}
}
//Function to schedule Backup for Two tier
function scheduleBackup(){
$("#backupsetFiles").find('tr:hidden input:checkbox').addClass("excludeForBackup");
var fieldsCount = jQuery("form[name*='startBackupForm'] input[type='checkbox']:not(.excludeForBackup)").attr('checked',true).length;
if(fieldsCount == 0){
showErrorMessages('.head_search .error_msg',"Please select folder(s)/file(s) to schedule backup");
return false;
}
var job = jQuery('#select_job').val();
jQuery('#oldJobName').val(job);
editJob('backup');
jQuery('#nav_scheduler').trigger('click');
return false;
}
function getItemSize(item, itemType){
jQuery('.sizeLoadingIcon').show();
if (item === undefined) {
if (loadFileSize['-1'] !== undefined) {
loadFileSize = [];
loadFileSize['-1'] = '-1';
}
else {
loadFileSize = [];
}
var backupSet = [];
var backupSetType = [];
if(jQuery('.body_wrap').hasClass('backup_page')){
var jobName = jQuery('#oldJobName').val();
if(jobName==0 || (machine=='twotier')){
backupSet = defaultBackupSetArray.slice();
backupSetType = defaultBackupSetTypeArray.slice();
} else {
backupSet = backupSetArray.slice();
backupSetType = backupSetTypeArray.slice();
}
} else {
backupSet = defaultLocalBackupSetArray.slice();
backupSetType = defaultLocalBackupSetTypeArray.slice();
}
jQuery("#backupSetSize").val(0);
jQuery.each(backupSet,function(index, item) {
if($('.cont_heading[title="' + item.replace(/"/g,"\\\"") + '"]').length > 0) {
// If item is not visible, item is hidden
if($('.cont_heading[title="' + item.replace(/"/g,"\\\"") + '"]').is(':visible')) {
getItemSize(item, backupSetType[index]);
}
} else {
// Couldn't find the DOM element, so consider this also for size calculation
getItemSize(item, backupSetType[index]);
}
});
jQuery('.sizeLoadingIcon').hide();
return;
}
var dirListVal = localFileDirSize[item];
if ((dirListVal === undefined) && (itemType !== 'file')) {
if ($.inArray(item, loadFileSize) === -1) {
if($('.cont_heading[title="' + item.replace(/"/g,"\\\"") + '"]').length > 0) {
// If item is not visible, item is hidden
if($('.cont_heading[title="' + item.replace(/"/g,"\\\"") + '"]').is(':visible')) {
loadFileSize.push(item);
}
} else {
loadFileSize.push(item);
}
}
}
var jobName = jQuery('#oldJobName').val();
if (dirListVal != -1) {
if (dirListVal === undefined) {
//if(itemType!='' && itemType=='file'){
if(itemType!=''){
var pathSplit = item.split('/');
var fileName = pathSplit.pop();
itemNew = pathSplit.join("/");
var dirVal = dynamicArray[itemNew];
if(dirVal != "" && typeof dirVal != "undefined" && dirVal.length>0){
var fileSize = IDrive.LocalDirList[itemNew][fileName].size;
fileSize = getMachineSize(fileSize);
localFileDirSize[item] = fileSize;
updateCalculatedSize(fileSize);
return false;
} else if(typeof fileSizeFromSearch[item] != 'undefined'){
var fileSize = fileSizeFromSearch[item];
fileSize = getMachineSize(fileSize);
updateCalculatedSize(fileSize);
}
}
else if (loadFileSize['-1'] !== undefined) {
return;
}
localFileDirSize[item] = '-1';
jQuery('.sizeLoadingIcon').show();
var load = function(requestItem, action) {
if(!hasUserLoggedIn()) {
return false;
}
action = action || 'getSize';
var values = "item="+encodeURIComponent(requestItem);
loadFileSize['-1'] = '-1';
//AJAX call to get size
$.ajax({
url : ("action.php?action=" + action),
type: "POST",
data: values,
success: function(result) {
if(result.indexOf('<html>')>0) {
window.location.href='../index.php';
}
var dataRes = $.parseJSON(result);
if (dataRes['retry']) {
var selectedFileSet = [];
if(jQuery('.body_wrap').hasClass('backup_page')){
if(jobName==0 || (machine=='twotier')){
selectedFileSet = defaultBackupSetArray.slice();
} else {
selectedFileSet = backupSetArray.slice();
}
}
else {
selectedFileSet = defaultLocalBackupSetArray.slice();
}
var showLoadingIcon = false;
$.each(selectedFileSet.reverse(), function(index, file) {
if ($.inArray(file, loadFileSize) !== -1) {
showLoadingIcon = true;
return false;
}
else if (requestItem == file) {
showLoadingIcon = true;
return false;
}
});
if (showLoadingIcon) {
jQuery('.sizeLoadingIcon').show();
}
else {
jQuery('.sizeLoadingIcon').hide();
}
setTimeout(function() {
load(requestItem, 'getSizeResult');
}, 3000);
return;
}
delete loadFileSize['-1'];
jQuery.each(dataRes, function(index,value) {
localFileDirSize[value['name']] = value['size'];
if(jQuery('.body_wrap').hasClass('backup_page')){
if(jobName==0 || (machine=='twotier')){
selectedFileSet = defaultBackupSetArray.slice();
} else {
selectedFileSet = backupSetArray.slice();
}
if ($.inArray(value['name'], selectedFileSet) !== -1) {
updateCalculatedSize(value['size']);
}
}
else {
if ($.inArray(value['name'], defaultLocalBackupSetArray) !== -1) {
updateCalculatedSize(value['size']);
}
}
var qItem = loadFileSize.shift();
if (qItem !== undefined) {
load(qItem);
}
else {
jQuery('.sizeLoadingIcon').hide();
}
});
}
});
}
load(loadFileSize.shift());
}
else {
jQuery('.sizeLoadingIcon').hide();
updateCalculatedSize(localFileDirSize[item]);
}
}
else if(typeof fileSizeFromSearch[item] != 'undefined'){
var fileSize = fileSizeFromSearch[item];
fileSize = getMachineSize(fileSize);
updateCalculatedSize(fileSize);
}
else { jQuery('.sizeLoadingIcon').hide();}
}
sizeOf = function (bytes) {
if (bytes === 0) { return "0.00 B"; }
//bytes = bytes*1024;
var e = Math.floor(Math.log(bytes) / Math.log(1024));
return (bytes/Math.pow(1024, e)).toFixed(2)+' '+' KMGTP'.charAt(e)+'B';
}
function updateCalculatedSize(dirSize){
var currSize = jQuery("#backupSetSize").val();
currSize = isNaN(currSize)?0:currSize;
currSize = (currSize<0)?0:currSize;
dirSize = isNaN(dirSize)?0:dirSize;
var total = parseFloat(currSize)+parseFloat(dirSize);
total = (total<0)?currSize:total;
total = isNaN(total)?0:total;
jQuery("#backupSetSize").val(total);
var humanReadable = sizeOf(total);
jQuery("#backupSetSizeHTML").html(humanReadable);
}
function getMachineSize(fileSize){
if(typeof fileSize === "undefined"){
return 0;
}
var getNumber = '';
if(fileSize.indexOf('TB')>0){
getNumber = fileSize.replace(' TB');
var total = parseFloat(getNumber)*(1024*1024*1024*1024);
} else if(fileSize.indexOf('GB')>0){
getNumber = fileSize.replace(' GB');
var total = parseFloat(getNumber)*(1024*1024*1024);
} else if(fileSize.indexOf('MB')>0){
getNumber = fileSize.replace(' MB');
var total = parseFloat(getNumber)*(1024*1024);
} else if(fileSize.indexOf('KB')>0){
getNumber = fileSize.replace(' KB');
var total = parseFloat(getNumber)*1024;
} else if(fileSize.indexOf('B')>0){
getNumber = fileSize.replace(' B');
var total = parseFloat(getNumber);
} else if(fileSize.indexOf('bytes')>0){
getNumber = fileSize.replace(' bytes');
var total = parseFloat(getNumber);
}
return total;
}
function archDeleteStatus(){
if(!$("#Deleting").is(':visible')){
clearTimeout(activeDeleteStatusVar);
activeDeleteStatusVar = '';
return false;
}
var url="action.php?action=deletedArchiveStatus";
$.post(url,function(data){
var dataArray = jQuery.parseJSON(data);
if(dataArray['response']){
$("#Deleting").html(dataArray['response']);
}
});
activeDeleteStatusVar = setTimeout(archDeleteStatus, PROGRESS_WATCHER_ENABLE_TIME);
}