2376 lines
90 KiB
JavaScript
Executable File
2376 lines
90 KiB
JavaScript
Executable File
/* Restore Page Array Variables */
|
|
restoreSetArray = [];
|
|
newRestoreSetArray = [];
|
|
|
|
/* Load Remote system Files/Folders - Start */
|
|
jQuery(document).on('click', '.restore_page a.getDirList,.trash-page a.getDirList', function() {
|
|
var bcParent = jQuery(this).parent().attr('id');
|
|
var placeID = jQuery(this).closest('div').parent().attr('id');
|
|
var restoreType = $('input[type=radio][name="restore_type_detail[]"]:checked').val();
|
|
/*if (jQuery('select.restoreDropdown-txtbox').length > 0) {
|
|
restoreType = jQuery('select.restoreDropdown-txtbox').val();
|
|
}*/
|
|
if(dedup!=true && restoreType=="Online Account"){
|
|
if(bcParent=='fullPathBreadCrumb' || placeID == 'loadRestorePath'){
|
|
loadRestoreRemoteFiles(jQuery(this),'loadRestorePath','fullPathBreadCrumb','restoreFilePath');
|
|
} else {
|
|
loadRestoreRemoteFiles(jQuery(this),'newRestoreSet','bkpBreadCrumb','selectedBackupsetFiles');
|
|
}
|
|
} else if(restoreType == "Online Account") {
|
|
loadRestoreRemoteFiles(jQuery(this),'loadRestorePath', 'fullPathBreadCrumb', 'restoreFilePath');
|
|
} else {
|
|
loadLocalRestoreFiles(jQuery(this).attr('alt'),'loadRestorePath','fullPathBreadCrumb','restoreFilePath',restoreType);
|
|
}
|
|
});
|
|
|
|
jQuery(document).on('click', '.restore_page a.getRestoreDirList,.trash-page a.getRestoreDirList', function() {
|
|
loadRestoreLocalFiles(jQuery(this).attr('alt'),'loadRestoreLocation','restoreLocationBreadCrumb','');
|
|
});
|
|
/* Load local system Files/Folders - End */
|
|
|
|
function requestRemoteFiles( url ) {
|
|
var url = url+'&getList=1';
|
|
ajaxRequestRemoteFiles = jQuery.ajax({
|
|
url: url,
|
|
success: function(locationData) {
|
|
if( locationData.indexOf('<html>') > 0 ) {
|
|
window.location.href='../index.php';
|
|
}
|
|
}
|
|
});
|
|
return ajaxRequestRemoteFiles;
|
|
}
|
|
|
|
/* Function to Load Remote system Files/Folders - Start */
|
|
function loadRestoreRemoteFiles(obj,toPlace,breadcrum,maincheck,retry,pagination) {
|
|
var getDir = obj;
|
|
var forRightMenu='';
|
|
var pageid = '&pageid=0';
|
|
pagination = pagination || false;
|
|
retry = retry || false;
|
|
jQuery('#' + toPlace + '>.excludefiles').unbind('scroll');
|
|
var fileMenuList = '<td class="file_menu_list"></td>';
|
|
if(typeof getDir!='string'){
|
|
getDir = obj.attr('alt');
|
|
}
|
|
var selectedDevice = getDir;
|
|
var deviceInfo = '';
|
|
if(dedup==true && $('input[type=radio][name="restore_type_detail[]"]:checked').val() =='Online Account'){
|
|
var deviceID = jQuery('select.restoreDropdown-txtbox').val();
|
|
selectedDevice = deviceID+getDir;
|
|
deviceInfo = "&deviceID="+deviceID;
|
|
}
|
|
if(toPlace=='newRestoreSet'){
|
|
forRightMenu = "&newRestoreSet=yes";
|
|
fileMenuList='';
|
|
}
|
|
if(typeof dynamicRemoteRequestInfo[selectedDevice] != "undefined") {
|
|
pageid = '&pageid=' + dynamicRemoteRequestInfo[selectedDevice];
|
|
}
|
|
|
|
clickedDirPath = getDir; //For the purpose while unchecking the child
|
|
var url = "remoteDirList.php?fullPath="+encodeURIComponent(getDir)+deviceInfo+forRightMenu+pageid;
|
|
var dirListVal = dynamicRemoteArray[selectedDevice];
|
|
var dirListType = dynamicRemoteType[selectedDevice];
|
|
var dirListSize = dynamicRemoteSize[selectedDevice];
|
|
var dirListOrgSize = dynamicRemoteOrgSize[selectedDevice];
|
|
var dirListDate = dynamicRemoteDate[selectedDevice];
|
|
jQuery('#maincheck,#selectFiles #maincheck').siblings('label').css('visibility','visible');
|
|
|
|
remoteFileBreadcrumb(getDir,toPlace,breadcrum,maincheck); //Call breadCrumb function
|
|
var forLoader = (toPlace=='loadRestorePath')?'.breadcrum_menu':"#"+toPlace;
|
|
|
|
//added on 6sep2017 by anil
|
|
if(getDir == "/" && (dirListVal == "undefined" || dirListVal == "" || dirListVal == null ))
|
|
{
|
|
dirListVal = "";
|
|
//dynamicRemoteRequestInfo[selectedDevice] = 0; //Commented by Senthil 25-Oct-2017 for Restore list is repeating twice issue
|
|
}
|
|
|
|
// AJAX Call for new
|
|
if((typeof dirListVal == "undefined" || dirListVal === "" || pagination)) {
|
|
jQuery(forLoader).siblings('.ajax_loader').show();
|
|
jQuery('#' + toPlace + '>.excludefiles').unbind('scroll');
|
|
var loadList = function() {
|
|
currentAjaxRequest = jQuery.ajax({
|
|
url: url,
|
|
cache: false,
|
|
success: function(locationData){
|
|
if(locationData.indexOf('<html>')>0){
|
|
window.location.href='../index.php';
|
|
}
|
|
jQuery(forLoader).siblings('.ajax_loader').hide();
|
|
if(locationData.trim()==''){
|
|
return false;
|
|
}
|
|
locationDataRes=$.parseJSON(locationData);
|
|
|
|
if(locationDataRes[0]==true){
|
|
jQuery('#'+toPlace).show().siblings('.nfiles,.ajax_loader').hide();
|
|
if ( !pagination )
|
|
jQuery('#'+toPlace).find('tbody').html(locationDataRes[1]);
|
|
else
|
|
jQuery('#'+toPlace).find('tbody').append(locationDataRes[1]);
|
|
}
|
|
else if ( typeof locationDataRes['retry'] != 'undefined' ) {
|
|
jQuery(forLoader).siblings('.ajax_loader').show();
|
|
if (locationDataRes['retry']) {
|
|
loadList();
|
|
}
|
|
else {
|
|
jQuery(forLoader).siblings('.ajax_loader').hide();
|
|
}
|
|
return;
|
|
}
|
|
else {
|
|
jQuery('#'+toPlace).hide().siblings('.nfiles').show().siblings('.ajax_loader').hide();
|
|
jQuery('#'+toPlace).find('tbody').html('');
|
|
jQuery('#maincheck,#selectFiles #maincheck').siblings('label').css('visibility','hidden');
|
|
}
|
|
|
|
//Keeping file/folder list to avoid AJAX call
|
|
var dirURL = locationDataRes[2]['url'];
|
|
var dirList = locationDataRes[2]['dir'];
|
|
var dirType = locationDataRes[2]['type'];
|
|
var fileSizeArray = [];
|
|
var filedateArray = [];
|
|
for(var i=0;i<locationDataRes[2]['size'].length;i++)
|
|
{
|
|
fileSizeArray[i] = isNaN(locationDataRes[2]['size'][i])?locationDataRes[2]['size'][i]:convertToHumanReadable(locationDataRes[2]['size'][i]) ;
|
|
var res = locationDataRes[2]['date'][i].split(" ");
|
|
var splitRes = res[1];
|
|
var splitTime = splitRes.split(":");
|
|
var timeFinal = res[0] + " " +fomartTimeShow(splitTime[0],splitTime[1],splitTime[2]);
|
|
filedateArray[i] = timeFinal ;
|
|
}
|
|
|
|
var dirSize = fileSizeArray;
|
|
var dirDate = filedateArray;
|
|
var dirOrgiSize = locationDataRes[2]['size'];
|
|
|
|
|
|
if (!pagination) {
|
|
dynamicRemoteArray[dirURL]= dirList;
|
|
dynamicRemoteType[dirURL] = dirType;
|
|
dynamicRemoteSize[dirURL] = dirSize;
|
|
dynamicRemoteOrgSize[dirURL] = dirOrgiSize;
|
|
dynamicRemoteDate[dirURL] = dirDate;
|
|
}
|
|
else {
|
|
var tempDirList = dirList;
|
|
var tempDirType = dirType;
|
|
var tempDirSize = dirSize;
|
|
var tempDirOrgSize = dirOrgiSize;
|
|
var tempDirDate = dirDate;
|
|
tempDirList = dynamicRemoteArray[dirURL].concat(tempDirList);
|
|
tempDirType = dynamicRemoteType[dirURL].concat(tempDirType);
|
|
tempDirSize = dynamicRemoteSize[dirURL].concat(tempDirSize);
|
|
tempDirOrgSize = dynamicRemoteOrgSize[dirURL].concat(tempDirOrgSize);
|
|
tempDirDate = dynamicRemoteDate[dirURL].concat(tempDirDate);
|
|
|
|
dynamicRemoteArray[dirURL]= tempDirList;
|
|
dynamicRemoteType[dirURL] = tempDirType;
|
|
dynamicRemoteSize[dirURL] = tempDirSize;
|
|
dynamicRemoteOrgSize[dirURL] = tempDirOrgSize;
|
|
dynamicRemoteDate[dirURL] = tempDirDate;
|
|
dynamicRemoteRequestInfo[dirURL]++;
|
|
}
|
|
|
|
if(typeof dynamicRemoteRequestInfo[selectedDevice] == "undefined") {
|
|
dynamicRemoteRequestInfo[selectedDevice] = 1;
|
|
}
|
|
|
|
markSelectedRestoreItems(getDir,toPlace,breadcrum,maincheck); //Call function to "Mark" the selected Items
|
|
jQuery('#'+toPlace+' .excludefiles').css('overflow','auto');
|
|
|
|
if(toPlace=='newRestoreSet'){
|
|
jQuery('#'+toPlace).find('td').removeClass('file_menu_list');
|
|
}
|
|
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) {
|
|
loadRestoreRemoteFiles(obj,toPlace,breadcrum,maincheck, false, true);
|
|
$(this).unbind('scroll');
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
if ( pagination ) {
|
|
loadList();
|
|
}
|
|
else {
|
|
jQuery(forLoader).siblings('.ajax_loader').show();
|
|
var ajaxRequest = requestRemoteFiles( url );
|
|
setTimeout(function() {
|
|
loadList();
|
|
}, 200);
|
|
}
|
|
} else if(dirListVal === null || dirListVal == ""){
|
|
jQuery('#'+toPlace).hide().siblings('.nfiles').show();
|
|
jQuery('#'+toPlace).find('tbody').html('');
|
|
jQuery('#maincheck,#selectFiles #maincheck').siblings('label').css('visibility','hidden');
|
|
} else {
|
|
//Loading files/folders from array intead of making AJAX call again
|
|
jQuery('#'+toPlace).siblings('.ajax_loader').show();
|
|
var dirHTML = '';
|
|
for(var j=0; j<dirListVal.length; j++){
|
|
var dirFullPath = dirListVal[j];
|
|
var dirType = dirListType[j];
|
|
var dirSize = dirListSize[j];
|
|
var dirDate = dirListDate[j];
|
|
var dirOrgSize = dirListOrgSize[j];
|
|
var splitPath = dirFullPath.split('/');
|
|
|
|
var dirName = splitPath[splitPath.length-1];
|
|
dirFullPath = htmlEntities(dirFullPath);
|
|
dirName = htmlEntities(dirName);
|
|
if(dirType=='folder'){
|
|
dirHTML += '<tr 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+'">';
|
|
dirHTML += '<a class="getDirList" href="javascript:void(0);" alt="'+dirFullPath+'/"><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,' ');
|
|
dirHTML += '</span></a></td>';
|
|
dirHTML += '<td class="file_size">'+dirSize+'</td><td class="file_date">'+dirDate+'</td>';
|
|
dirHTML += fileMenuList;
|
|
dirHTML += '</tr>';
|
|
} else {
|
|
var fileMenuList1 = (machine=='twotier')?'<td class=""></td>':fileMenuList;
|
|
dirHTML += '<tr 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,' ');
|
|
dirHTML += '</span></td>';
|
|
dirHTML += '<td class="file_size" value= "'+dirOrgSize+'">'+dirSize+'</td><td class="file_date" value= "'+dirDate+'">'+dirDate+'</td>';
|
|
dirHTML += fileMenuList1;
|
|
dirHTML += '</tr>';
|
|
}
|
|
|
|
}
|
|
jQuery('#'+toPlace).show().siblings('.nfiles,.ajax_loader').hide();
|
|
jQuery('#'+toPlace).find('tbody').html(dirHTML);
|
|
jQuery('#'+toPlace+' .excludefiles').css('overflow','auto');
|
|
markSelectedRestoreItems(getDir,toPlace,breadcrum,maincheck); //Call function to "Mark" the selected Items
|
|
|
|
if(toPlace=='newRestoreSet'){
|
|
jQuery('#'+toPlace).find('td').removeClass('file_menu_list');
|
|
}
|
|
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) {
|
|
loadRestoreRemoteFiles(obj,toPlace,breadcrum,maincheck,true,true);
|
|
$(this).unbind('scroll');
|
|
}
|
|
});
|
|
}
|
|
}
|
|
/* Function to Load Remote system Files/Folders - End */
|
|
|
|
/* Function to Load Local Files/Folders to restore - Start */
|
|
function loadLocalRestoreFiles(getDir,toPlace,breadcrum,maincheck,drivePath,pagination){
|
|
var pageid = '&pageid=0';
|
|
pagination = pagination || false;
|
|
jQuery('#' + toPlace + '>.excludefiles').unbind('scroll');
|
|
var dedupBucket = '';
|
|
if(dedup == true && typeof availableLocalDevices != "undefined" && availableLocalDevices.length > 0 && $('.localRestore').length > 0) {
|
|
dedupBucket=$('#localBackupHost').find("option:selected").attr('idr-bkt');
|
|
}
|
|
if(typeof dynamicLocalRestoreRequestInfo[drivePath+getDir+dedupBucket] != "undefined") {
|
|
pageid = '&pageid=' + dynamicLocalRestoreRequestInfo[drivePath+getDir+dedupBucket];
|
|
}
|
|
clickedDirPath = getDir;
|
|
remoteFileBreadcrumb(getDir,toPlace,breadcrum,maincheck); //Call breadCrumb function
|
|
var dirListVal = dynamicLocalRestoreArray[drivePath+getDir+dedupBucket];
|
|
var dirListType = dynamicLocalRestoreType[drivePath+getDir+dedupBucket];
|
|
var dirListSize = dynamicLocalRestoreSize[drivePath+getDir+dedupBucket];
|
|
var dirListOrgSize = dynamicLocalRestoreSize[drivePath+getDir+dedupBucket];
|
|
|
|
|
|
var dirListDate = dynamicLocalRestoreDate[drivePath+getDir+dedupBucket];
|
|
jQuery('#maincheck').siblings('label').css('visibility','visible');
|
|
var forLoader = '.breadcrum_menu';
|
|
// AJAX Call for new
|
|
if((typeof dirListVal == "undefined" || dirListVal === "" || pagination)){
|
|
jQuery(forLoader).siblings('.ajax_loader').show();
|
|
jQuery('#' + toPlace + '>.excludefiles').unbind('scroll');
|
|
var url = "localRestoreList.php?fullPath="+encodeURIComponent(getDir)+"&drivePath="+encodeURIComponent(drivePath)+pageid;
|
|
if(dedup == true && typeof availableLocalDevices != "undefined" && availableLocalDevices.length > 0 && $('.localRestore').length > 0) {
|
|
url += "&dedupBucket=" + dedupBucket;
|
|
}
|
|
var loadLocalList = function() {
|
|
if(!currentLocalAjaxRequest){
|
|
currentLocalAjaxRequest = jQuery.ajax({
|
|
url: url,
|
|
success: function(locationData){
|
|
currentLocalAjaxRequest='';
|
|
if(locationData.indexOf('<html>')>0){
|
|
window.location.href='../index.php';
|
|
}
|
|
jQuery(forLoader).siblings('.ajax_loader').hide();
|
|
if(locationData.trim()==''){
|
|
return false;
|
|
}
|
|
locationDataRes=$.parseJSON(locationData);
|
|
if(locationDataRes[0]==true){
|
|
jQuery('#'+toPlace).show().siblings('.nfiles,.ajax_loader').hide();
|
|
if(reIndexStarted==true){
|
|
jQuery('#'+toPlace).siblings('.ajax_loader').show();
|
|
}
|
|
if ( !pagination )
|
|
jQuery('#'+toPlace).find('tbody').html(locationDataRes[1]);
|
|
else
|
|
jQuery('#'+toPlace).find('tbody').append(locationDataRes[1]);
|
|
} else if ( typeof locationDataRes['retry'] != 'undefined' ) {
|
|
jQuery(forLoader).siblings('.ajax_loader').show();
|
|
if (locationDataRes['retry']) {
|
|
loadList();
|
|
}
|
|
else {
|
|
markSelectedRestoreItems(getDir,toPlace,breadcrum,maincheck); //Call function to "Mark" the selected Items
|
|
jQuery(forLoader).siblings('.ajax_loader').hide();
|
|
}
|
|
return;
|
|
}
|
|
else {
|
|
jQuery('#'+toPlace).hide().siblings('.nfiles').show().siblings('.ajax_loader').hide();
|
|
jQuery('#'+toPlace).find('tbody').html('');
|
|
jQuery('#maincheck').siblings('label').css('visibility','hidden');
|
|
if(reIndexStarted==true){
|
|
jQuery('#'+toPlace).siblings('.ajax_loader').show();
|
|
}
|
|
}
|
|
|
|
//Keeping file/folder list to avoid AJAX call
|
|
var dirURL = decodeURIComponent(locationDataRes[2]['url']);
|
|
if (!pagination) {
|
|
dynamicLocalRestoreArray[dirURL+dedupBucket]= locationDataRes[2]['dir'];
|
|
dynamicLocalRestoreType[dirURL+dedupBucket] = locationDataRes[2]['type'];
|
|
dynamicLocalRestoreSize[dirURL+dedupBucket] = locationDataRes[2]['size'];
|
|
dynamicLocalRestoreDate[dirURL+dedupBucket] = locationDataRes[2]['date'];
|
|
}
|
|
else {
|
|
dynamicLocalRestoreArray[dirURL+dedupBucket]= locationDataRes[2]['dir'];
|
|
dynamicLocalRestoreType[dirURL+dedupBucket] = locationDataRes[2]['type'];
|
|
dynamicLocalRestoreSize[dirURL+dedupBucket] = locationDataRes[2]['size'];
|
|
dynamicLocalRestoreDate[dirURL+dedupBucket] = locationDataRes[2]['date'];
|
|
dynamicLocalRestoreRequestInfo[dirURL+dedupBucket]++;
|
|
}
|
|
if(typeof dynamicLocalRestoreRequestInfo[dirURL+dedupBucket] == "undefined") {
|
|
dynamicLocalRestoreRequestInfo[dirURL+dedupBucket] = 1;
|
|
}
|
|
markSelectedRestoreItems(getDir,toPlace,breadcrum,maincheck); //Call function to "Mark" the selected Items
|
|
jQuery('#'+toPlace+' .excludefiles').css('overflow','auto');
|
|
|
|
/* Binding scroll Event if there is some remaining data to load */
|
|
if(locationDataRes['retry']){
|
|
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) {
|
|
loadLocalRestoreFiles(getDir,toPlace,breadcrum,maincheck,drivePath,true);
|
|
$(this).unbind('scroll');
|
|
}
|
|
});
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
loadLocalList(); //Calling the function
|
|
} else if(dirListVal === null || dirListVal == ""){
|
|
jQuery('#'+toPlace).hide().siblings('.nfiles').show();
|
|
jQuery('#'+toPlace).find('tbody').html('');
|
|
jQuery('#maincheck').siblings('label').css('visibility','hidden');
|
|
} else {
|
|
//Loading files/folders from array intead of making AJAX call again
|
|
jQuery('#'+toPlace).show().siblings('.nfiles').hide();
|
|
jQuery('#'+toPlace).siblings('.ajax_loader').show();
|
|
/*if(reIndexStarted==true){
|
|
jQuery('#'+toPlace).show().siblings('.ajax_loader').show();
|
|
}*/
|
|
var dirHTML = '';
|
|
for(var j=0; j<dirListVal.length; j++){
|
|
var dirFullPath = dirListVal[j];
|
|
var dirType = dirListType[j];
|
|
var dirSize = dirListSize[j];
|
|
var dirDate = dirListDate[j];
|
|
//var dirOrgSize = dirListOrgSize[j];
|
|
var dirOrgSize = isNaN(dirListSize[j])?dirListSize[j]:convertToHumanReadable(dirListSize[j]) ;
|
|
|
|
var splitPath = dirFullPath.split('/');
|
|
var dirName = splitPath[splitPath.length-1];
|
|
dirFullPath = htmlEntities(dirFullPath);
|
|
dirName = htmlEntities(dirName);
|
|
if(dirType=='folder'){
|
|
dirHTML += '<tr 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+'">';
|
|
dirHTML += '<a class="getDirList" href="javascript:void(0);" alt="'+dirFullPath+'/"><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,' ');
|
|
dirHTML += '</span></a></td>';
|
|
dirHTML += '<td class="file_size">'+dirSize+'</td><td class="file_date">'+dirDate+'</td>';
|
|
dirHTML += '<td class="file_menu_list"></td>';
|
|
dirHTML += '</tr>';
|
|
} else {
|
|
dirHTML += '<tr 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,' ');
|
|
dirHTML += '</span></td>';
|
|
dirHTML += '<td class="file_size" value= "'+dirSize+'">'+dirOrgSize+'</td><td class="file_date" value= "'+dirDate+'">'+dirDate+'</td>';
|
|
dirHTML += '<td></td>';
|
|
dirHTML += '</tr>';
|
|
}
|
|
}
|
|
jQuery('#'+toPlace).find('tbody').html(dirHTML);
|
|
jQuery('#'+toPlace+' .excludefiles').css('overflow','auto');
|
|
markSelectedRestoreItems(getDir,toPlace,breadcrum,maincheck); //Call function to "Mark" the selected Items
|
|
|
|
/* Binding scroll Event if there is some remaining data to load */
|
|
if(locationDataRes['retry']){
|
|
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) {
|
|
loadLocalRestoreFiles(getDir,toPlace,breadcrum,maincheck,drivePath,true);
|
|
$(this).unbind('scroll');
|
|
}
|
|
});
|
|
}
|
|
if(reIndexStarted==false){
|
|
jQuery('#'+toPlace).show().siblings('.ajax_loader').hide();
|
|
}
|
|
}
|
|
}
|
|
/* Function to Load Local Files/Folders to restore - End */
|
|
|
|
//Function to update BreadCrumb & keep the child file/folders as Selected if parent got selected
|
|
function remoteFileBreadcrumb(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)+'/';
|
|
breadCrumb += '<a href="javascript:void(0);" alt="/'+currDir+'" title="/'+currDir+'" class="getDirList">'+htmlEntities(val)+'</a>';
|
|
}
|
|
});
|
|
|
|
jQuery('#'+breadcrum).html(breadCrumb);
|
|
responsiveBreadcrumb('#'+breadcrum,'getDirList');
|
|
}
|
|
|
|
//Function to "Mark" the selected Items - Start
|
|
function markSelectedRestoreItems(getDir, toPlace, breadcrum, maincheck)
|
|
{
|
|
var split_path = getDir.split('/');
|
|
var split_path_count = split_path.length;
|
|
var selected_path = '';
|
|
var selected_path_found = 0;
|
|
var tempClickedDirPath = clickedDirPath;
|
|
var tempDynamicRemoteArray =dynamicRemoteArray;
|
|
var restoreType = $('input[type=radio][name="restore_type_detail[]"]:checked').val();
|
|
|
|
if(toPlace == 'loadRestorePath') {
|
|
//Restore Set
|
|
var parentDiv = 'restoreFilePath';
|
|
if(jQuery('section.body').hasClass('edit_work')){
|
|
//var restoreArray1 = shareItemArray.slice();
|
|
var restoreArray1 = [];
|
|
filter = shareItemArray.filter(function(val) {
|
|
if(val.substring(val.length-1)=='/'){
|
|
val = val.substring(0, val.length - 1);
|
|
}
|
|
restoreArray1.push(val);
|
|
});
|
|
|
|
if(dedup==true)
|
|
tempClickedDirPath = jQuery('#sourcePath').val()+getDir;
|
|
} else {
|
|
if(dedup != true && restoreType != 'Online Account') {
|
|
var restoreArray1 = localRestoreSetArray.slice();
|
|
tempDynamicRemoteArray =dynamicLocalRestoreArray;
|
|
tempClickedDirPath = jQuery('#sourcePath').val()+getDir;
|
|
/* } else if(jQuery('#sourcePath').val() == 'Online Account' || jQuery('#sourcePath').val() == deDupDeviceID) { */
|
|
} else if(jQuery('#sourcePath').val() == 'Online Account' || restoreType == 'Online Account') {
|
|
var restoreArray1 = restoreSetArray.slice();
|
|
if(dedup == true) {
|
|
// # tempClickedDirPath = jQuery('#sourcePath').val() + getDir;
|
|
tempClickedDirPath = $('select[name="localBackupHost"]').val() + getDir;
|
|
}
|
|
} else {
|
|
var restoreArray1 = localRestoreSetArray.slice();
|
|
tempDynamicRemoteArray =dynamicLocalRestoreArray;
|
|
tempClickedDirPath = jQuery('#sourcePath').val()+getDir;
|
|
}
|
|
}
|
|
} else {
|
|
//New Backup Set
|
|
var parentDiv = 'selectedFiles_tab';
|
|
var restoreArray1 = newRestoreSetArray.slice();
|
|
}
|
|
|
|
//Avoiding the missing items of restore set
|
|
if(defaultRestoreSetFileInfo.length > 0){
|
|
var test = defaultRestoreSetFileInfo.filter(function(val) {
|
|
var index = restoreArray1.indexOf(val);
|
|
if(index>=0){
|
|
restoreArray1.splice(index, 1);
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
//For child under the selected parent
|
|
for(var i = 1; i < split_path_count; i++){
|
|
selected_path += "/"+split_path[i];
|
|
if(restoreArray1.indexOf(selected_path) != -1) {
|
|
jQuery('#' + toPlace).find('tr').addClass('chk').find('input').attr('checked', true).next('label').addClass('label_checked');
|
|
selected_path_found = 1;
|
|
}
|
|
}
|
|
var dedupBucket = '';
|
|
if(dedup == true && typeof availableLocalDevices != "undefined" && availableLocalDevices.length > 0 && $('.localRestore').length > 0) {
|
|
dedupBucket=$('#localBackupHost').find("option:selected").attr('idr-bkt');
|
|
}
|
|
|
|
//For selected parent directory
|
|
if(selected_path_found ==0){
|
|
var test = restoreArray1.filter(function(val) {
|
|
if(!(val === "" || typeof val == "undefined" || val === null)) {
|
|
//if(tempDynamicRemoteArray.indexOf(tempClickedDirPath) != "" && tempDynamicRemoteArray[tempClickedDirPath] != null)
|
|
if((typeof tempDynamicRemoteArray[tempClickedDirPath] != "undefined" && tempDynamicRemoteArray[tempClickedDirPath] != null) || (typeof tempDynamicRemoteArray[tempClickedDirPath+dedupBucket] != "undefined" && tempDynamicRemoteArray[tempClickedDirPath+dedupBucket] != null) )
|
|
{
|
|
var id_of_element = -1;
|
|
if(typeof tempDynamicRemoteArray[tempClickedDirPath] != "undefined") {
|
|
id_of_element = tempDynamicRemoteArray[tempClickedDirPath].indexOf(val);
|
|
}
|
|
if(id_of_element < 0 && typeof tempDynamicRemoteArray[tempClickedDirPath+dedupBucket] != "undefined") {
|
|
id_of_element = tempDynamicRemoteArray[tempClickedDirPath+dedupBucket].indexOf(val);
|
|
}
|
|
if(id_of_element >= 0) {
|
|
var selected_dir_id = jQuery('#'+toPlace+' input[type="checkbox"]').eq(id_of_element);
|
|
selected_dir_id.attr('checked', true).next().addClass('label_checked').closest('tr').addClass('chk');
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
//Mark "Partial check" if its child has been selected
|
|
var curPathDirList = tempDynamicRemoteArray[tempClickedDirPath];
|
|
if(typeof curPathDirList == "undefined") {
|
|
curPathDirList = tempDynamicRemoteArray[tempClickedDirPath+dedupBucket];
|
|
}
|
|
if(curPathDirList != null){
|
|
if(curPathDirList.length>0){
|
|
for(var i=0; i<curPathDirList.length; i++){
|
|
var selected_dir = curPathDirList[i];
|
|
var check_parent = array_search(restoreArray1,curPathDirList[i]);
|
|
if(check_parent.length>0){
|
|
|
|
if((typeof tempDynamicRemoteArray[tempClickedDirPath] != "undefined" && tempDynamicRemoteArray[tempClickedDirPath] != null) || (typeof tempDynamicRemoteArray[tempClickedDirPath+dedupBucket] != "undefined" && tempDynamicRemoteArray[tempClickedDirPath+dedupBucket] != null))
|
|
{
|
|
var id_of_element = -1;
|
|
if(typeof tempDynamicRemoteArray[tempClickedDirPath] != "undefined" )
|
|
{
|
|
id_of_element = tempDynamicRemoteArray[tempClickedDirPath].indexOf(curPathDirList[i]);
|
|
}
|
|
if(id_of_element < 0 && typeof tempDynamicRemoteArray[tempClickedDirPath+dedupBucket] != "undefined" )
|
|
id_of_element = tempDynamicRemoteArray[tempClickedDirPath+dedupBucket].indexOf(curPathDirList[i]);
|
|
|
|
var selected_dir_id = jQuery('#'+toPlace+' input[type="checkbox"]').eq(id_of_element);
|
|
if(selected_dir_id.attr('checked')!='checked'){
|
|
parent_dris_with_slash = (check_parent + "/").split(',').join('/,');
|
|
// Avoid lower order directories with substring match
|
|
if(parent_dris_with_slash.indexOf(selected_dir + "/") != -1) {
|
|
selected_dir_id.next().addClass('label_semi_checked');
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
markMaincheckAfterRemove(toPlace);
|
|
}
|
|
//Function to "Mark" the selected Items - End
|
|
|
|
/* Restore Set - Start */
|
|
jQuery(document).on('click', '.restoreFilePath td.file_check, .restoreFilePath .header_part .file_check', function(e) {
|
|
|
|
//Checking whether clicked on Checkbox or TD
|
|
var clickedLabel = e.target.nodeName;
|
|
if(clickedLabel != 'LABEL'){
|
|
return false;
|
|
}
|
|
//Don't allow to add items to Restore set if Manual Restore is running
|
|
if(jQuery(this).hasClass('search-chk-box') || jQuery('#localDirSearchList tr').length>0 || jQuery('section.body').hasClass('edit_work')){
|
|
|
|
if(jQuery(this).find('label').hasClass('label_checked')){
|
|
if(jQuery(this).find('label').html()=="All"){
|
|
addShareFiles("All");
|
|
} else {
|
|
addShareFiles(jQuery(this));
|
|
}
|
|
} else {
|
|
if(jQuery(this).find('label').html()=="All"){
|
|
removeShareFiles("All");
|
|
} else {
|
|
removeShareFiles(jQuery(this));
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
//Checking whether Job Selected to Edit or not
|
|
if(actionRequired ==1){
|
|
actionRequired =2;
|
|
startTimeoutForAutoPost('restore'); //Auto POST
|
|
}
|
|
|
|
if(jQuery(this).find('label').hasClass('label_checked')){
|
|
if(jQuery(this).find('label').html()=="All"){
|
|
restoreSetFiles("All");
|
|
} else {
|
|
restoreSetFiles(jQuery(this));
|
|
}
|
|
} else {
|
|
if(jQuery(this).find('label').html()=="All"){
|
|
removeRestoreSetFiles("All","loadRestorePath");
|
|
} else {
|
|
removeRestoreSetFiles(jQuery(this),"loadRestorePath");
|
|
}
|
|
}
|
|
//markMaincheckAfterRemove('loadRestorePath'); //Added to check/uncheck the main check of restore set while add/remove item
|
|
markMaincheckAfterRemove('startRestoreForm'); //Added to check/uncheck the main check of restore set while add/remove item
|
|
});
|
|
|
|
/* Function to add selected elements into Restore Set */
|
|
function restoreSetFiles(args){
|
|
var html = '', selected='';
|
|
var restoreType = $('input[type=radio][name="restore_type_detail[]"]:checked').val();
|
|
|
|
if(jQuery('#sourcePath').val()=='Online Account' || restoreType=='Online Account'){
|
|
var restoreType = 'restore';
|
|
//Restore Set
|
|
var restoreArray1 = restoreSetArray;
|
|
var restoreArray3 = defaultRestoreSetArray;
|
|
var restoreArray4 = defaultRestoreSetTypeArray;
|
|
} else {
|
|
//Local Restore Set
|
|
var restoreType = 'localRestore';
|
|
var restoreArray1 = localRestoreSetArray;
|
|
var restoreArray3 = defaultLocalRestoreSetArray;
|
|
var restoreArray4 = defaultLocalRestoreSetTypeArray;
|
|
}
|
|
/* Show files/folders under Restore Set. Hide "No items" - Start */
|
|
if(restoreArray1.indexOf(selected)==-1){
|
|
jQuery('#removeRestoresetFiles span').hide();
|
|
jQuery('#maincheckBackup').siblings('label').removeAttr('class').parent().parent().show();
|
|
jQuery('#noBackupsetFiles').hide().siblings('form').find('.excludefiles').show();
|
|
}
|
|
/* Show files/folders under Restore Set. Hide "No items" - End */
|
|
|
|
if(args!="All"){
|
|
var fileCheckLabel = jQuery('.restoreFilePath .header_part .file_check label');
|
|
if(fileCheckLabel.hasClass('label_checked')){
|
|
args = "All";
|
|
}
|
|
}
|
|
|
|
/* Add selected files/folders under Restore Set - Start */
|
|
if(args=="All" && clickedDirPath =='/'){
|
|
jQuery('#loadRestorePath 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 itemSize = jQuery(this).parent().siblings(".file_size").attr('value');
|
|
var itemLModf = jQuery(this).parent().siblings(".file_date").attr('value');
|
|
var imgSubstr = imgSrc.substring(23);
|
|
var itemType = imgSubstr.replace('.png','');
|
|
|
|
if(restoreArray1.indexOf(selected)==-1){
|
|
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>'+itemType+'</label></td>\
|
|
<td width="68%" class="cont_heading" title="'+htmlEntities(selected)+'"><img src="'+imgSrc+'"><span>'+htmlEntities(selected).replace(/[\s]/g,' ');+'</span>\
|
|
</td><td width="5%"></td></tr>';
|
|
|
|
var selected_dir = selected+"/";
|
|
if(restoreArray1.length>0){
|
|
var check_parent = array_search(restoreArray1,selected_dir);
|
|
|
|
if(check_parent.length>0){
|
|
removeRestoreSubDirecories(check_parent,'restoreSetFiles');
|
|
}
|
|
}
|
|
restoreArray1.push(selected);
|
|
if(machine=="twotier" || machine=="synology" || jQuery('#select_restore_job').val()=='0'){
|
|
if((restoreType=='restore' && manualRestoreRunning==false) ||
|
|
(restoreType=='localRestore' && manualLocalRestoreRunning==false)){
|
|
restoreArray3.push(selected);
|
|
restoreArray4.push(itemType);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
jQuery('#restoreSetFiles').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'){ //Changed by Senthil : For add to restore issue Ex: "NewFolder" not allowing "NewFolder1"
|
|
if(breadCrumbCall==true){
|
|
var selected_dir = selected+"/";
|
|
var checkParent = array_search_reverse(restoreArray1, 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(restoreArray1.indexOf(selected)==-1){
|
|
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>'+itemType+'</label></td>\
|
|
<td width="68%" class="cont_heading" title="'+htmlEntities(selected)+'"><img src="'+imgSrc+'"><span>'+htmlEntities(selected).replace(/[\s]/g,' ');+'</span>\
|
|
</td><td width="5%"></td></tr>';
|
|
|
|
jQuery('#restoreSetFiles').append(html);
|
|
|
|
if(restoreArray1.length>0){
|
|
//Checking parent with Child item
|
|
var check_parent = array_search(restoreArray1,selected_dir);
|
|
if(check_parent.length>0){
|
|
removeRestoreSubDirecories(check_parent,'restoreSetFiles');
|
|
}
|
|
//Checking Child with parent item
|
|
if(typeof args=='string'){
|
|
var check_child = array_search_reverse_display(restoreArray1,selected_dir);
|
|
if(check_parent.length>0){
|
|
removeRestoreSubDirecories(check_child,'restoreSetFiles');
|
|
}
|
|
}
|
|
}
|
|
|
|
restoreArray1.push(selected);
|
|
if(jQuery('#select_restore_job').val()=='0'){
|
|
if((dedup==true && manualRestoreRunning==false) ||
|
|
(jQuery('#sourcePath').val()=='Online Account' && manualRestoreRunning==false) ||
|
|
(jQuery('#sourcePath').val()!='Online Account' && manualLocalRestoreRunning==false)){
|
|
restoreArray3.push(selected);
|
|
restoreArray4.push(itemType);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
/* Add selected files/folders under Restore Set - End */
|
|
}
|
|
|
|
/* Function to remove selected elements from Restore Set */
|
|
function removeRestoreSetFiles(args,DivId){
|
|
var restoreType = $('input[type=radio][name="restore_type_detail[]"]:checked').val();
|
|
if(DivId=='loadRestorePath'){
|
|
|
|
var parentDiv = 'restoreSetFiles';
|
|
var breadCrumbID = 'fullPathBreadCrumb';
|
|
if(jQuery('#sourcePath').val()=='Online Account' || restoreType=='Online Account'){
|
|
//Restore Set
|
|
var restoreType = 'restore';
|
|
var restoreArray1 = restoreSetArray;
|
|
var restoreArray3 = defaultRestoreSetArray;
|
|
var restoreArray4 = defaultRestoreSetTypeArray;
|
|
} else {
|
|
//Local Restore Set
|
|
var restoreType = 'localRestore';
|
|
var restoreArray1 = localRestoreSetArray;
|
|
var restoreArray3 = defaultLocalRestoreSetArray;
|
|
var restoreArray4 = defaultLocalRestoreSetTypeArray;
|
|
}
|
|
} else {
|
|
//New Restore Set
|
|
var parentDiv = 'selectedRestoreSetFiles';
|
|
var breadCrumbID = 'bkpBreadCrumb';
|
|
|
|
var restoreArray1 = newRestoreSetArray;
|
|
}
|
|
if(args=="All" && clickedDirPath =='/'){
|
|
jQuery('#'+parentDiv+' tr').remove();
|
|
restoreArray1=[];
|
|
if(DivId=='loadRestorePath' && jQuery('#select_restore_job').val()=='0'){
|
|
if((dedup==true && manualRestoreRunning==false) ||
|
|
(restoreType=='restore' && manualRestoreRunning==false) ||
|
|
(restoreType=='localRestore' && manualLocalRestoreRunning==false)){
|
|
restoreArray3 = [];
|
|
restoreArray4 = [];
|
|
}
|
|
}
|
|
} else {
|
|
var checkedElement = jQuery('#'+DivId+' tr.chk input:checked');
|
|
if(args=="All")
|
|
var index = restoreArray1.indexOf(clickedDirPath.substring(0, clickedDirPath.length-1));
|
|
else{
|
|
selected = args.find('input').val();
|
|
var index = restoreArray1.indexOf(selected);
|
|
}
|
|
//To remove from buffer array
|
|
if(index >= 0){
|
|
toParse = restoreArray1[index].replace('/','');
|
|
var parsedID = toParse.replace(/[\/]/g,'_');
|
|
parsedID = base64_encode(parsedID,1);
|
|
parsedID = parsedID.replace(/[=]/gi, '');
|
|
|
|
jQuery('#'+parentDiv+' tr#'+parsedID).remove();
|
|
|
|
restoreArray1.splice(index, 1);
|
|
if(DivId=='loadRestorePath' && jQuery('#select_restore_job').val()=='0'){
|
|
if((restoreType=='restore' && manualRestoreRunning==false) ||
|
|
(restoreType=='localRestore' && manualLocalRestoreRunning==false)){
|
|
restoreArray3.splice(index, 1);
|
|
restoreArray4.splice(index, 1);
|
|
}
|
|
}
|
|
} else {
|
|
if(args=="All"){
|
|
var allClickedDirPath = clickedDirPath.split('/');
|
|
allClickedDirPath.pop();
|
|
allClickedDirPath.pop();
|
|
var parentPath = allClickedDirPath.join("/");
|
|
}
|
|
else{
|
|
parentPath = clickedDirPath.substring(0, clickedDirPath.length-1);
|
|
}
|
|
var index = restoreArray1.indexOf(parentPath);
|
|
|
|
if(index>=0 && args!="All"){
|
|
toParse = restoreArray1[index].replace('/','');
|
|
var parsedID = toParse.replace(/[\/]/g,'_');
|
|
parsedID = base64_encode(parsedID,1);
|
|
parsedID = parsedID.replace(/[=]/gi, '');
|
|
|
|
jQuery('#'+parentDiv+' tr#'+parsedID).remove();
|
|
|
|
restoreArray1.splice(index, 1);
|
|
if(DivId=='loadRestorePath' && jQuery('#select_restore_job').val()=='0'){
|
|
if((restoreType=='restore' && manualRestoreRunning==false) ||
|
|
(restoreType=='localRestore' && manualLocalRestoreRunning==false)){
|
|
restoreArray3.splice(index, 1);
|
|
restoreArray4.splice(index, 1);
|
|
}
|
|
}
|
|
addSelectedRestoreItemExceptUnchecked(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);
|
|
}
|
|
|
|
addSelectedRestoreItemExceptUnchecked(parentDiv,checkedElement,parentPath); // Call function to add other items
|
|
|
|
for(var j=(pathSearch.length-1); j>=0; j--){
|
|
var index = restoreArray1.indexOf(pathSearch[j]);
|
|
addSelectedRestoreItemExceptUnchecked(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();
|
|
|
|
restoreArray1.splice(index, 1);
|
|
if(DivId=='loadRestorePath' && jQuery('#select_restore_job').val()=='0'){
|
|
if( (restoreType=='restore' && manualRestoreRunning==false) ||
|
|
(restoreType=='localRestore' && manualLocalRestoreRunning==false)){
|
|
restoreArray3.splice(index, 1);
|
|
restoreArray4.splice(index, 1);
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
} //End
|
|
}
|
|
}
|
|
checkRemainingRestoresetFiles(DivId);
|
|
|
|
}
|
|
|
|
/* Function to remove already selected sub-directories while selecting its parent */
|
|
function removeRestoreSubDirecories(args,parentDiv){
|
|
arr_length = args.length;
|
|
var restoreType = $('input[type=radio][name="restore_type_detail[]"]:checked').val();
|
|
if(parentDiv == 'restoreSetFiles'){
|
|
if(jQuery('section.body').hasClass('edit_work')){
|
|
//Share Files Set
|
|
var restoreArray1 = shareItemArray;
|
|
var restoreArray3 = [];
|
|
var restoreArray4 = [];
|
|
} else {
|
|
if(jQuery('#sourcePath').val()=='Online Account' || restoreType == 'Online Account'){
|
|
//Restore Set
|
|
var restoreType = 'restore';
|
|
var restoreArray1 = restoreSetArray;
|
|
var restoreArray3 = defaultRestoreSetArray;
|
|
var restoreArray4 = defaultRestoreSetTypeArray;
|
|
} else {
|
|
//Local Restore Set
|
|
var restoreType = 'localRestore';
|
|
var restoreArray1 = localRestoreSetArray;
|
|
var restoreArray3 = defaultLocalRestoreSetArray;
|
|
var restoreArray4 = defaultLocalRestoreSetTypeArray;
|
|
}
|
|
}
|
|
} else {
|
|
//New Restore Set
|
|
var restoreArray1 = newRestoreSetArray;
|
|
}
|
|
|
|
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 = restoreArray1.indexOf(selected1);
|
|
restoreArray1.splice(index, 1);
|
|
|
|
if(parentDiv=='restoreSetFiles' && jQuery('#select_restore_job').val()=='0'){
|
|
if((restoreType == 'restore' && manualRestoreRunning==false) ||
|
|
(restoreType == 'localRestore' && manualLocalRestoreRunning==false)){
|
|
restoreArray3.splice(index, 1);
|
|
restoreArray4.splice(index, 1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function add remaining items after unchecking child element
|
|
function addSelectedRestoreItemExceptUnchecked(backupsetDivID,checkedElement,currDirPath){
|
|
var html = '', selected='';
|
|
var restoreType = $('input[type=radio][name="restore_type_detail[]"]:checked').val();
|
|
|
|
if(backupsetDivID == 'restoreSetFiles'){
|
|
if(jQuery('#sourcePath').val()=='Online Account' || restoreType=='Online Account'){
|
|
//Restore Set
|
|
var restoreType = 'restore';
|
|
var restoreArray1 = restoreSetArray;
|
|
var restoreArray3 = defaultRestoreSetArray;
|
|
var restoreArray4 = defaultRestoreSetTypeArray;
|
|
} else {
|
|
//Local Restore Set
|
|
var restoreType = 'localRestore';
|
|
var restoreArray1 = localRestoreSetArray;
|
|
var restoreArray3 = defaultLocalRestoreSetArray;
|
|
var restoreArray4 = defaultLocalRestoreSetTypeArray;
|
|
}
|
|
} else {
|
|
//New Restore Set
|
|
var restoreArray1 = newRestoreSetArray;
|
|
}
|
|
|
|
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 itemSize = jQuery(this).parent().siblings(".file_size").attr('value');
|
|
var itemLModf = jQuery(this).parent().siblings(".file_date").attr('value');
|
|
var imgSubstr = imgSrc.substring(23);
|
|
var itemType = imgSubstr.replace('.png','');
|
|
if(restoreArray1.indexOf(selected)==-1){
|
|
|
|
html += '<tr id="'+parsedID+'">\
|
|
<td class="file_check"><input type="checkbox" name="chk_group[]" value="'+selected+'"><input type="hidden" name="itemType[]" value="'+itemType+'" ><input type="hidden" name="itemSize[]" value="'+itemSize+'" ><input type="hidden" name="itemLModf[]" value="'+itemLModf+'" ><label>'+itemType+'</label></td>\
|
|
<td width="68%" class="cont_heading" title="'+selected+'"><img src="'+imgSrc+'"><span>'+selected.replace(/[\s]/g,' ')+'</span>\
|
|
</td><td width="5%"></td></tr>';
|
|
|
|
var selected_dir = selected+"/";
|
|
restoreArray1.push(selected);
|
|
if(backupsetDivID=='restoreSetFiles' && jQuery('#select_restore_job').val()=='0'){
|
|
if((dedup==true && manualRestoreRunning==false) ||
|
|
(restoreType == 'restore' && manualRestoreRunning==false) ||
|
|
(restoreType == 'localRestore' && manualLocalRestoreRunning==false)){
|
|
restoreArray3.push(selected);
|
|
restoreArray4.push(itemType);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
jQuery('#'+backupsetDivID).append(html);
|
|
} else {
|
|
var dirListVal = [];
|
|
var dirTypeVal = [];
|
|
if(jQuery('#sourcePath').val()=='Online Account' || $('input[type=radio][name="restore_type_detail[]"]:checked').val()=='Online Account'){
|
|
if(dedup == true) {
|
|
var deviceID = jQuery('select.restoreDropdown-txtbox').val();
|
|
currDirPath = deviceID+currDirPath;
|
|
} else {
|
|
currDirPath = currDirPath;
|
|
}
|
|
dirListVal = dynamicRemoteArray[currDirPath];
|
|
dirTypeVal = dynamicRemoteType[currDirPath];
|
|
} else {
|
|
var dedupBucket = '';
|
|
if(dedup == true && typeof availableLocalDevices != "undefined" && availableLocalDevices.length > 0 && $('.localRestore').length > 0) {
|
|
dedupBucket=$('#localBackupHost').find("option:selected").attr('idr-bkt');
|
|
}
|
|
var temp = jQuery('#sourcePath').val()+currDirPath+dedupBucket;
|
|
dirListVal = dynamicLocalRestoreArray[temp];
|
|
dirTypeVal = dynamicLocalRestoreType[temp];
|
|
}
|
|
|
|
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(restoreArray1.indexOf(selected)==-1 && isInString==-1 && clickedDirPath!=selected){
|
|
dirHTML += '<tr id="'+parsedID+'">\
|
|
<td class="file_check"><input type="checkbox" name="chk_group[]" value="'+selected+'"><input type="hidden" name="itemType[]" value="'+itemType+'" ><label>'+itemType+'</label></td>\
|
|
<td width="68%" class="cont_heading" title="'+selected+'"><img src="include/images/idq_ico_'+itemType+'.png"><span>'+selected.replace(/[\s]/g,' ')+'</span>\
|
|
</td><td width="5%"></td></tr>';
|
|
|
|
var selected_dir = selected+"/";
|
|
|
|
restoreArray1.push(selected);
|
|
if(backupsetDivID=='restoreSetFiles' && jQuery('#select_restore_job').val()=='0'){
|
|
if((dedup==true && manualRestoreRunning==false) ||
|
|
(jQuery('#sourcePath').val()=='Online Account' && manualRestoreRunning==false) ||
|
|
(jQuery('#sourcePath').val()!='Online Account' && manualLocalRestoreRunning==false)){
|
|
restoreArray3.push(selected);
|
|
restoreArray4.push(itemType);
|
|
}
|
|
}
|
|
}
|
|
} jQuery('#'+backupsetDivID).append(dirHTML);
|
|
}
|
|
}
|
|
|
|
|
|
/* Remove selected Backup Set files - Start */
|
|
jQuery(document).on('click', '#removeRestoresetFiles span', function() {
|
|
//Checking whether Job Selected to Edit or not
|
|
if(actionRequired ==1){
|
|
actionRequired =2;
|
|
startTimeoutForAutoPost('restore'); //Auto POST
|
|
}
|
|
var restoreType = jQuery('#sourcePath').val();
|
|
|
|
if(restoreType=='Online Account'){
|
|
//Restore Set
|
|
var restoreArray1 = restoreSetArray;
|
|
var restoreArray3 = defaultRestoreSetArray;
|
|
var restoreArray4 = defaultRestoreSetTypeArray;
|
|
} else {
|
|
//Local Restore Set
|
|
var restoreArray1 = localRestoreSetArray;
|
|
var restoreArray3 = defaultLocalRestoreSetArray;
|
|
var restoreArray4 = defaultLocalRestoreSetTypeArray;
|
|
}
|
|
|
|
var current_directory = jQuery('#fullPathBreadCrumb a:last').attr('alt');
|
|
var dedup_current_dir = '';
|
|
if(dedup==true){
|
|
dedup_current_dir = $('select[name="localBackupHost"]').val() + current_directory;
|
|
current_directory = restoreType+current_directory;
|
|
}
|
|
|
|
jQuery('#restoreSetFiles tr.chk').each(function() {
|
|
var curr_val = jQuery(this).find('input').val();
|
|
var index = restoreArray1.indexOf(curr_val);
|
|
|
|
if(index >= 0) {
|
|
restoreArray1.splice(index, 1);
|
|
|
|
if(jQuery('#select_restore_job').val()=='0'){
|
|
if((restoreType=='Online Account' && manualRestoreRunning==false) || (restoreType!='Online Account' && manualLocalRestoreRunning==false)){
|
|
restoreArray3.splice(index, 1);
|
|
restoreArray4.splice(index, 1);
|
|
}
|
|
}
|
|
jQuery(this).remove();
|
|
if(restoreType == 'Online Account') {
|
|
if((typeof dynamicRemoteArray[current_directory] != 'undefined' && dynamicRemoteArray[current_directory] !== null) || (typeof dynamicRemoteArray[dedup_current_dir] != "undefined" && dynamicRemoteArray[dedup_current_dir] != null)) {
|
|
var id_of_element = '';
|
|
if(typeof dynamicRemoteArray[current_directory] != 'undefined' && dynamicRemoteArray[current_directory] != null) {
|
|
id_of_element = dynamicRemoteArray[current_directory].indexOf(curr_val);
|
|
} else {
|
|
id_of_element = dynamicRemoteArray[dedup_current_dir].indexOf(curr_val);
|
|
}
|
|
|
|
jQuery("#loadRestorePath tr").eq(id_of_element).removeAttr('class').find('input:checkbox').removeAttr('checked').next().removeAttr('class');
|
|
}
|
|
} else {
|
|
var dedupBucket = '';
|
|
if(dedup == true && typeof availableLocalDevices != "undefined" && availableLocalDevices.length > 0 && $('.localRestore').length > 0) {
|
|
dedupBucket=$('#localBackupHost').find("option:selected").attr('idr-bkt');
|
|
}
|
|
var current_directory1 = restoreType+current_directory+dedupBucket;
|
|
if(typeof dynamicLocalRestoreArray[current_directory1]!='undefined' && dynamicLocalRestoreArray[current_directory1]!==null){
|
|
var id_of_element = dynamicLocalRestoreArray[current_directory1].indexOf(curr_val);
|
|
jQuery("#loadRestorePath 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();
|
|
checkRemainingRestoresetFiles('loadRestorePath');
|
|
//Commented by Senthil-27-04-2018 : For uncheck issue when only one item removed from restore set
|
|
//checkForSemicheckedItem('loadRestorePath');
|
|
//markMaincheckAfterRemove('loadRestorePath'); //Commented by Senthil: For uncheck issue when only one item removed from restore set
|
|
|
|
//Added by Senthil-27-04-2018: For uncheck issue when only one item removed from restore set
|
|
markSelectedRestoreItems(clickedDirPath,'loadRestorePath','fullPathBreadCrumb','maincheck');
|
|
});
|
|
/* Remove selected Backup Set files - End */
|
|
|
|
/* Remove selected New Backup Set files - Start */
|
|
jQuery(document).on('click', '#removeSelectedFiles1 span', function() {
|
|
jQuery('#selectedRestoreSetFiles tr.chk').each(function(){
|
|
var curr_val = jQuery(this).find('input').val();
|
|
|
|
var index = newRestoreSetArray.indexOf(curr_val);
|
|
newRestoreSetArray.splice(index, 1);
|
|
|
|
jQuery(this).remove();
|
|
current_directory = jQuery('#bkpBreadCrumb a:last').attr('alt');
|
|
var id_of_element = dynamicRemoteArray[current_directory].indexOf(curr_val);
|
|
jQuery("#newRestoreSet tr").eq(id_of_element).removeAttr('class').find('input:checkbox').removeAttr('checked').next().removeAttr('class');
|
|
});
|
|
|
|
jQuery('#maincheckSelected').next().attr('class','maincheck'); //Uncheck the Main Checkbox
|
|
|
|
jQuery(this).hide();
|
|
checkRemainingRestoresetFiles('selectedBackupsetFiles');
|
|
markMaincheckAfterRemove('newRestoreSet');
|
|
|
|
});
|
|
/* Remove selected New Backup Set files - End */
|
|
|
|
//Function to check remaining files in Restore Set
|
|
function checkRemainingRestoresetFiles(DivId){
|
|
var restoreType = $('input[type=radio][name="restore_type_detail[]"]:checked').val();
|
|
if(DivId=='loadRestorePath'){
|
|
var remaining = jQuery('#restoreSetFiles input').length;
|
|
if(remaining==0){
|
|
jQuery('#maincheckBackup').parent().parent().hide();
|
|
jQuery('#noBackupsetFiles').show().siblings('form').find('.excludefiles').hide();
|
|
jQuery('#loadRestorePath').siblings('table').find('td.file_check label').removeAttr('class');
|
|
jQuery('#loadRestorePath').find('td.file_check input').removeAttr('checked').siblings('label').removeAttr('class');
|
|
|
|
if(jQuery('#sourcePath').val()=='Online Account' || restoreType=='Online Account'){
|
|
//Restore Set
|
|
restoreSetArray =[];
|
|
defaultRestoreSetArray=[];
|
|
defaultRestoreSetTypeArray=[];
|
|
} else {
|
|
//Local Restore Set
|
|
localRestoreSetArray = [];
|
|
defaultLocalRestoreSetArray = [];
|
|
defaultLocalRestoreSetTypeArray = [];
|
|
}
|
|
}
|
|
} else {
|
|
var remaining = jQuery('#selectedRestoreSetFiles input').length;
|
|
if(remaining==0){
|
|
jQuery('#selectedFiles .main_chk_table').hide();
|
|
jQuery('#selectedFiles .nfiles').show();
|
|
newRestoreSetArray =[];
|
|
}
|
|
}
|
|
}
|
|
|
|
/* New Restore Set - Start */
|
|
jQuery(document).on('click', '.newRestoreSetClass #newRestoreSet td.file_check, .newRestoreSetClass #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"){
|
|
newRestoreSetFiles("All");
|
|
} else {
|
|
newRestoreSetFiles(jQuery(this));
|
|
}
|
|
|
|
} else {
|
|
if(jQuery(this).find('label').html()=="All"){
|
|
removeRestoreSetFiles("All","newRestoreSet");
|
|
} else {
|
|
removeRestoreSetFiles(jQuery(this),"newRestoreSet");
|
|
}
|
|
}
|
|
});
|
|
|
|
/* Function to add selected elements into Restore Set */
|
|
function newRestoreSetFiles(args){
|
|
var html = '', selected='';
|
|
|
|
/* Show files/folders under Restore Set. Hide "No items" - Start */
|
|
if(newRestoreSetArray.indexOf(selected)==-1){
|
|
jQuery('#selectedFiles .main_chk_table').show();
|
|
jQuery('.selected_bdr .nfiles').hide();
|
|
}
|
|
/* Show files/folders under Restore 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 Restore Set - Start */
|
|
if(args=="All" && clickedDirPath =='/'){
|
|
jQuery('#newRestoreSet 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().siblings(".file_size").attr('value');
|
|
var itemLModf = jQuery(this).parent().siblings(".file_date").attr('value');
|
|
var imgSrc = jQuery(this).parent().next().find('img').attr('src');
|
|
var imgSubstr = imgSrc.substring(23);
|
|
var itemType = imgSubstr.replace('.png','');
|
|
|
|
if(newRestoreSetArray.indexOf(selected)==-1){
|
|
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>'+itemType+'</label></td>\
|
|
<td width="68%" class="cont_heading" title="'+htmlEntities(selected)+'"><img src="'+imgSrc+'"><span>'+htmlEntities(selected).replace(/[\s]/g,' ');+'</span>\
|
|
</td><td width="5%"></td></tr>';
|
|
var selected_dir = selected+"/";
|
|
if(newRestoreSetArray.length>0){
|
|
var check_parent = array_search(newRestoreSetArray,selected_dir);
|
|
|
|
if(check_parent.length>0){
|
|
removeRestoreSubDirecories(check_parent,'selectedRestoreSetFiles');
|
|
}
|
|
}
|
|
newRestoreSetArray.push(selected);
|
|
}
|
|
});
|
|
jQuery('#selectedRestoreSetFiles').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 itemSize = args.siblings(".file_size").attr('value');
|
|
var itemLModf = args.siblings(".file_date").attr('value');
|
|
var imgSrc = args.next().find('img').attr('src');
|
|
var imgSubstr = imgSrc.substring(23);
|
|
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 = array_search_reverse(newRestoreSetArray, 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(newRestoreSetArray.indexOf(selected)==-1){
|
|
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>'+itemType+'</label></td>\
|
|
<td width="68%" class="cont_heading" title="'+htmlEntities(selected)+'"><img src="'+imgSrc+'"><span>'+htmlEntities(selected).replace(/[\s]/g,' ');+'</span>\
|
|
</td><td width="5%"></td></tr>';
|
|
|
|
jQuery('#selectedRestoreSetFiles').append(html);
|
|
|
|
if(newRestoreSetArray.length>0){
|
|
//Checking parent with Child item
|
|
var check_parent = array_search(newRestoreSetArray,selected_dir);
|
|
if(check_parent.length>0){
|
|
removeRestoreSubDirecories(check_parent,'selectedRestoreSetFiles');
|
|
}
|
|
//Checking Child with parent item
|
|
if(typeof args=='string'){
|
|
var check_child = array_search_reverse_display(newRestoreSetArray,selected_dir);
|
|
if(check_parent.length>0){
|
|
removeRestoreSubDirecories(check_child,'selectedRestoreSetFiles');
|
|
}
|
|
}
|
|
}
|
|
newRestoreSetArray.push(selected);
|
|
}
|
|
}
|
|
/* Add selected files/folders under Restore Set - End */
|
|
}
|
|
/* New Restore Set - End */
|
|
|
|
/* Select Restore Location - Start */
|
|
jQuery(document).on('click', '.restore_page #loadRestoreLocation tr:not("a"),.trash-page #loadRestoreLocation 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', '#addRestoreLocation, #addRestoreLocationTrash', function() {
|
|
var loc = jQuery('.selected_row').find("a").attr('alt');
|
|
var location1 = jQuery('#restoreLocationBreadCrumb a:last').attr('alt');
|
|
if(loc != '' && typeof loc != 'undefined' && loc != null ){
|
|
} else if(location1=='/'){
|
|
showErrorMessages('#permissionError', SELECT_RESTORE_LOCATION);
|
|
return false;
|
|
} else if(location1!='' && typeof location1!='undefined' && location1!=null){
|
|
loc = location1;
|
|
}
|
|
//AJAX call to start Restore
|
|
values = "dirPath="+encodeURIComponent(loc);
|
|
$.ajax({
|
|
url: "action.php?action=checkWritePermission",
|
|
type: "POST",
|
|
data: values,
|
|
success: function(validatedData){
|
|
if(validatedData.indexOf('<html>')>0){
|
|
window.location.href='../index.php';
|
|
}
|
|
cmd = $.parseJSON(validatedData);
|
|
if(cmd[0] == true){
|
|
if(machine == 'twotier') {
|
|
var displayLocation = loc.substring(vaultRestorePath.length+1);
|
|
jQuery('#restoreLocation').val(loc).prev('input').val(displayLocation).focus().attr('title', displayLocation);
|
|
} else {
|
|
jQuery('#restoreLocation').val(loc).focus().attr('title', loc);
|
|
jQuery('#restoreLocation').siblings('.restore_txtbox')
|
|
.val(loc)
|
|
.attr('title', loc);
|
|
}
|
|
|
|
startTimeoutForAutoPost('restore'); //Auto POST
|
|
actionRequired=2;
|
|
$.popContainerHide();
|
|
} else {
|
|
showErrorMessages('#permissionError',RESTORE_LOCATION_NO_PERMISSION);
|
|
return false;
|
|
}
|
|
}
|
|
});
|
|
|
|
});
|
|
/* Select Restore Location - End */
|
|
|
|
|
|
/* Start Manual Restore - Start*/
|
|
function startManualRestore(){
|
|
var type = jQuery("input[name*='jobTypeManualTask']").val();
|
|
//Restrict to start restore operation if another instance in progress
|
|
if(manualLocalRestoreRunning == true || manualRestoreRunning == true) {
|
|
jQuery('.common_msg').hide();
|
|
if(manualRestoreRunning == true) {
|
|
jQuery('input[name="restore_type_detail[]"][value="Online Account"]').prop('checked', true);
|
|
} else {
|
|
jQuery('input[name="restore_type_detail[]"][value!="Online Account"]').prop('checked', true);
|
|
}
|
|
showErrorMessages('.head_search .error_msg','Restore is in progress. Please try again later');
|
|
return false;
|
|
}
|
|
|
|
if(type== 'LocalRestore' && reIndexStarted==true){
|
|
jQuery('html,body').scrollTop(0);
|
|
return false;
|
|
}
|
|
|
|
if(jQuery("#restoreLocation").val()==''){
|
|
showErrorMessages('.head_search .error_msg',SELECT_RESTORE_LOCATION);
|
|
return false;
|
|
} else {
|
|
currentRestoreLocation = jQuery("#restoreLocation").val();
|
|
}
|
|
|
|
jQuery('#sizeofRestore').html('');
|
|
jQuery('#scannedFileSizeRestore').html('');
|
|
jQuery('#timeLeftRestore').html(CALCULATING);
|
|
jQuery("#green_bar_restore").css("width", "0%");
|
|
jQuery("#RestoreProgress").find('div.green-txt').html('');
|
|
jQuery("#progress_status_restore").find('span#activityProgress_restore_perc').html('0%');
|
|
jQuery("#progress_status_restore").find('div#left_status_bar_bg_restore').css("width", "0%");
|
|
|
|
jQuery("#startManualTaskButton").val('Yes');
|
|
jQuery("#cancelManualTaskButton").val('');
|
|
jQuery("#scannedFileRestore")
|
|
.attr('title', PREPARING_LIST)
|
|
.text(PREPARING_LIST);
|
|
|
|
var fieldsCount = 0;
|
|
var isVersionRestore = false;
|
|
if (machine=='twotier' || jQuery("form[name*='startRestoreForm'] table#restoreSetFiles.restore_cnt").is(':visible')) {
|
|
fieldsCount = jQuery("form[name*='startRestoreForm'] input[type='checkbox']").attr('checked',true).length;
|
|
}
|
|
else {
|
|
versionFileName = jQuery("form[name*='startRestoreForm'] input[id='vr_file']").val();
|
|
fieldsCount = ((versionFileName == "")? 0 : 1);
|
|
isVersionRestore = true;
|
|
}
|
|
if(dedup==true){
|
|
var restoreFrom = '';
|
|
var restoreType = $('input[type=radio][name="restore_type_detail[]"]:checked').val();
|
|
if(restoreType=='Online Account')
|
|
restoreFrom = jQuery('select[name="localBackupHost"]').val();
|
|
else
|
|
restoreFrom = restoreType;
|
|
jQuery("input#sourcePath").val(restoreFrom);
|
|
}
|
|
var values = jQuery("form#startRestoreForm").serialize();
|
|
if(typeof availableLocalDevices != "undefined" && availableLocalDevices.length > 0 && $('.localRestore').length > 0) {
|
|
values += "&dedupBucket=" + $('#localBackupHost').find("option:selected").attr('idr-bkt');
|
|
}
|
|
if(fieldsCount > 0){
|
|
jQuery("#startRestore").hide();
|
|
jQuery("#cancelRestore").show();
|
|
//jQuery("div.loading_icon").show();
|
|
|
|
if (!isVersionRestore) {
|
|
if(type=='Restore'){
|
|
//Clearing Default Set Array
|
|
defaultRestoreSetArray = [];
|
|
defaultRestoreSetTypeArray = [];
|
|
manualRestoreRunning=true;
|
|
|
|
jQuery("form[name*='startRestoreForm'] input[type='checkbox']:checked").each(function(){
|
|
var dirName = jQuery(this).val();
|
|
var dirType = jQuery(this).siblings('input[type="hidden"]').val();
|
|
defaultRestoreSetArray.push(dirName);
|
|
defaultRestoreSetTypeArray.push(dirType);
|
|
});
|
|
} else {
|
|
//Clearing Default Set Array
|
|
defaultLocalRestoreSetArray = [];
|
|
defaultLocalRestoreSetTypeArray = [];
|
|
manualLocalRestoreRunning=true;
|
|
|
|
jQuery("form[name*='startRestoreForm'] input[type='checkbox']:checked").each(function(){
|
|
var dirName = jQuery(this).val();
|
|
var dirType = jQuery(this).siblings('input[type="hidden"]').val();
|
|
defaultLocalRestoreSetArray.push(dirName);
|
|
defaultLocalRestoreSetTypeArray.push(dirType);
|
|
});
|
|
}
|
|
}
|
|
else {
|
|
var jobNameHolder = jQuery("form#startRestoreForm input[name='oldJobName']");
|
|
var jobName = jobNameHolder.val();
|
|
jobNameHolder.val('0');
|
|
jobNameHolder.val(jobName);
|
|
}
|
|
//AJAX call to start Restore
|
|
$.ajax({
|
|
url: "createManualJob.php",
|
|
type: "POST",
|
|
data: values,
|
|
success: function(validatedData){
|
|
if(validatedData.indexOf('<html>')>0){
|
|
window.location.href='../index.php';
|
|
}
|
|
validatedRes=$.parseJSON(validatedData);
|
|
if(validatedRes[0]==true){
|
|
restoreTimeoutVar = setTimeout(watchRestoreStatus,timeForWatcher);
|
|
// calling activejob watcher after successfull job start
|
|
clearTimeout(activeJobsTimeoutVar);
|
|
activeJobsTimeoutVar = setTimeout(watcherForActiveJobs, PROGRESS_WATCHER_ENABLE_TIME);
|
|
showErrorMessages('.head_search .welcome_message',RESTORE_STARTED_SUCCESS);
|
|
}
|
|
else {
|
|
jQuery("#startRestore").show();
|
|
jQuery("#cancelRestore").hide();
|
|
if(type == 'restore')
|
|
manualRestoreRunning=false;
|
|
else
|
|
manualLocalBackupRunning=false;
|
|
showErrorMessages('.head_search .error_msg',RESTORE_STARTED_FAILURE);
|
|
}
|
|
|
|
}
|
|
});
|
|
} else {
|
|
showErrorMessages('.head_search .error_msg',SELECT_FILE_FOLDER_RESTORE);
|
|
}
|
|
|
|
if (!isVersionRestore) {
|
|
deleteLocalDirList(currentRestoreLocation); //Delete the element from LocalDirList array after Restore
|
|
|
|
//Edit RestoreSetFile
|
|
if(actionRequired==2){
|
|
editJob('restore');
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
/* Start Manual Restore - End*/
|
|
|
|
/* Cancel Manual Restore Immediately - Start*/
|
|
function cancelManualRestore(){
|
|
|
|
jQuery("#cancelManualTaskButton").val('Yes');
|
|
jQuery("#startManualTaskButton").val('');
|
|
var values = jQuery("form#startRestoreForm").serialize();
|
|
var restoreType = $('input[type=radio][name="restore_type_detail[]"]:checked').val();
|
|
|
|
if(values != ''){
|
|
jQuery('.common_msg').hide();
|
|
showErrorMessages('.head_search .alert',CANCELING_RESTORE);
|
|
|
|
//Clearing Default Set Array
|
|
if(jQuery('#sourcePath').val()=='Online Account' || restoreType=='Online Account'){
|
|
defaultRestoreSetArray = [];
|
|
defaultRestoreSetTypeArray = [];
|
|
} else {
|
|
defaultLocalRestoreSetArray = [];
|
|
defaultLocalRestoreSetTypeArray = [];
|
|
}
|
|
|
|
if(typeof availableLocalDevices != "undefined" && availableLocalDevices.length > 0 && $('.localRestore').length > 0) {
|
|
values += "&dedupBucket=" + $('#localBackupHost').find("option:selected").attr('idr-bkt');
|
|
}
|
|
|
|
//AJAX call to start Restore
|
|
$.ajax({
|
|
url: "createManualJob.php",
|
|
type: "POST",
|
|
data: values,
|
|
success: function(validatedData){
|
|
if(validatedData.indexOf('<html>')>0){
|
|
window.location.href='../index.php';
|
|
}
|
|
$('.restore_cnt').show();
|
|
$('.version_restore_cnt').hide();
|
|
$(".excludefiles.restore_cnt table.restore_cnt").find('*').prop('disabled',false);
|
|
$(".excludefiles.version_restore_cnt table.version_restore_cnt").find('*').prop('disabled',true);
|
|
jQuery("#cancelRestore").hide();
|
|
jQuery("#cancellingRestore,.restore_loading_gray").show();
|
|
if (jQuery("#restoreSetFiles tr").length > 0) {
|
|
jQuery('#maincheckBackup').parent().parent().show();
|
|
jQuery('#noBackupsetFiles').hide().siblings('form').find('.excludefiles').show();
|
|
}
|
|
}
|
|
});
|
|
}
|
|
return false;
|
|
}
|
|
/* Cancel Manual Restore Immediately - End*/
|
|
|
|
|
|
//Function frequently check the ManualTask status until complete
|
|
function watchRestoreStatus(isVersionRestore)
|
|
{
|
|
//AJAX call to get Backup Status
|
|
var sourceInitialPath = '';
|
|
var currSourcePath = '';
|
|
if(dedup == true) {
|
|
sourceInitialPath = jQuery('select[name="localBackupHost"]').val();
|
|
}
|
|
|
|
var sourcePath = $('input[type=radio][name="restore_type_detail[]"]:checked').val();
|
|
|
|
var type = '';
|
|
if(typeof sourcePath == 'undefined' || sourcePath == 'Online Account') {
|
|
type = 'restore';
|
|
} else {
|
|
type = 'localRestore';
|
|
}
|
|
|
|
url = "watchManualTaskStatus.php?type=" + type;
|
|
if($(".head_search .page_title h4").text() == "Trash") {
|
|
url = url + "&trash=1";
|
|
}
|
|
|
|
$.ajax({
|
|
url: url,
|
|
success: function(data){
|
|
if(data.indexOf('<html>') > 0) {
|
|
window.location.href='../index.php';
|
|
}
|
|
|
|
if(dedup == true) {
|
|
currSourcePath = jQuery('select[name="localBackupHost"]').val();
|
|
}
|
|
|
|
if(sourceInitialPath!=currSourcePath && (dedup==true))
|
|
return;
|
|
else if(type == 'restore')
|
|
manualRestoreRunning=true;
|
|
else if(type == 'localRestore')
|
|
manualLocalRestoreRunning=true;
|
|
|
|
if(data=='running'){
|
|
if(window.trashSearch == 1){
|
|
jQuery("#startTrashRestore,#cancellingRestore,.restore_loading_gray").hide();
|
|
jQuery("#cancelTrashRestore").show();
|
|
}else{
|
|
jQuery("#startRestore,#cancellingRestore,.restore_loading_gray").hide();
|
|
jQuery("#cancelRestore").show();
|
|
}
|
|
restoreTimeoutVar = setTimeout(watchRestoreStatus,timeForWatcher);
|
|
} else if(data=='cancelling'){
|
|
if(window.trashSearch == 1){
|
|
jQuery("#startTrashRestore,#cancelTrashRestore").hide();
|
|
jQuery("#cancellingRestore,.restore_loading_gray").show();
|
|
}else{
|
|
jQuery("#startRestore,#cancelRestore,div.loading_icon").hide();
|
|
jQuery("#cancellingRestore,.restore_loading_gray").show();
|
|
}
|
|
restoreTimeoutVar = setTimeout(watchRestoreStatus,timeForWatcher);
|
|
} else if(data == 'completed') {
|
|
if (!isVersionRestore) {
|
|
$('.restore_cnt').show();
|
|
$('.version_restore_cnt').hide();
|
|
$(".excludefiles.restore_cnt table.restore_cnt").find('*').prop('disabled',false);
|
|
$(".excludefiles.version_restore_cnt table.version_restore_cnt").find('*').prop('disabled',true);
|
|
if(window.trashSearch == 1) {
|
|
jQuery("#startTrashRestore").show();
|
|
jQuery("#cancelTrashRestore,#cancellingRestore,.alert,.restore_loading_gray").hide();
|
|
} else {
|
|
jQuery("#startRestore").show();
|
|
jQuery("#cancelRestore,#cancellingRestore,.alert,.restore_loading_gray").hide();
|
|
}
|
|
//showErrorMessages('.welcome_message','Restore process completed successfully');
|
|
jQuery("#restoreSetFiles").html('');
|
|
// jQuery("#noBackupsetFiles").show().siblings('form').find('div.excludefiles').hide();
|
|
jQuery(".restoreSetSelected tr.header_part,.restoreSetSelected td.scheduleChangeBtn").hide();
|
|
jQuery(".restoreFilePath label").removeAttr('class');
|
|
jQuery(".restoreFilePath input[type='checkbox']").removeAttr('checked');
|
|
jQuery("select.backupsetInput option").removeAttr('selected');
|
|
jQuery("#oldJobName").val('0');
|
|
|
|
if(type == 'restore'){
|
|
restoreSetArray = [];
|
|
|
|
//Clearing Default Set Array
|
|
defaultRestoreSetArray = [];
|
|
defaultRestoreSetTypeArray = [];
|
|
manualRestoreRunning=false;
|
|
currentRestoreJob = 0;
|
|
} else {
|
|
localRestoreSetArray = [];
|
|
|
|
//Clearing Default Set Array
|
|
defaultLocalRestoreSetArray = [];
|
|
defaultLocalRestoreSetTypeArray = [];
|
|
manualLocalRestoreRunning=false;
|
|
currentLocalRestoreJob = 0;
|
|
}
|
|
clearTimeout(restoreTimeoutVar); //Stop watcher
|
|
restoreTimeoutVar ='';
|
|
actionRequired=1;
|
|
} else {
|
|
$('.restore_cnt').show();
|
|
$('.version_restore_cnt').hide();
|
|
$(".excludefiles.restore_cnt table.restore_cnt").find('*').prop('disabled',false);
|
|
$(".excludefiles.version_restore_cnt table.version_restore_cnt").find('*').prop('disabled',true);
|
|
if(jQuery("#restoreSetFiles tr").length > 0) {
|
|
jQuery('#maincheckBackup').parent().parent().show();
|
|
jQuery('#noBackupsetFiles').hide().siblings('form').find('.excludefiles').show();
|
|
}
|
|
jQuery("#startRestore").show();
|
|
jQuery("#cancelRestore").hide();
|
|
//jQuery("div.loading_icon").hide();
|
|
if(type == 'restore')
|
|
manualRestoreRunning=false;
|
|
else
|
|
manualLocalRestoreRunning=false;
|
|
clearTimeout(restoreTimeoutVar); //Stop watcher
|
|
restoreTimeoutVar ='';
|
|
}
|
|
} else {
|
|
restoreTimeoutVar = setTimeout(watchRestoreStatus,timeForWatcher);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
//Function to delete the element from LocalDirList array after Restore
|
|
function deleteLocalDirList(currentRestoreLocation){
|
|
if(currentRestoreLocation!=''){
|
|
for (var key in dynamicArray){
|
|
if(key.indexOf(currentRestoreLocation) == 0){
|
|
delete dynamicArray[key];
|
|
delete dynamicType[key];
|
|
delete IDrive.LocalDirList[key];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* Function to add selected elements for multilevel share */
|
|
function addShareFiles(args){
|
|
var html = '', selected='', elements='';
|
|
elements = args;
|
|
|
|
if(args!="All"){
|
|
var fileCheckLabel = jQuery('.restoreFilePath .header_part .file_check label');
|
|
if(fileCheckLabel.hasClass('label_checked')){
|
|
args = "All";
|
|
elements = "All";
|
|
}
|
|
}
|
|
/* Add selected files/folders under Backup Set - Start */
|
|
if(args=="All" && clickedDirPath =='/'){
|
|
jQuery('#loadRestorePath input').each(function(){
|
|
selected = jQuery(this).val();
|
|
toParse = selected.replace('/','');
|
|
|
|
if(shareItemArray.indexOf(selected)==-1){
|
|
var selected_dir = selected+"/";
|
|
if(shareItemArray.length>0){
|
|
var check_parent = array_search(shareItemArray,selected_dir);
|
|
|
|
if(check_parent.length>0){
|
|
removeRestoreSubDirecories(check_parent,'restoreSetFiles');
|
|
}
|
|
}
|
|
var shareType = jQuery(this).next('label').text();
|
|
selected += (shareType=='folder')?'/':'';
|
|
shareItemArray.push(selected);
|
|
}
|
|
});
|
|
} else {
|
|
var breadCrumbCall=false;
|
|
if(args=='All'){
|
|
breadCrumbCall=true;
|
|
args = clickedDirPath.replace(/\/$/, '');
|
|
}
|
|
if(typeof args!='string'){
|
|
selected = args.find('input').val();
|
|
var selected_dir = selected+"/";
|
|
} else {
|
|
selected = args;
|
|
if(breadCrumbCall==true || jQuery('.serverDts ').css('right')=='0px'){
|
|
var selected_dir = selected+"/";
|
|
var checkParent = array_search_reverse(shareItemArray, selected);
|
|
if(checkParent.length>0){
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(shareItemArray.indexOf(selected)==-1){
|
|
|
|
if(shareItemArray.length>0){
|
|
var check_parent = array_search(shareItemArray,selected_dir);
|
|
if(check_parent.length>0){
|
|
removeRestoreSubDirecories(check_parent,'restoreSetFiles');
|
|
}
|
|
//Checking Child with parent item
|
|
if(typeof args=='string'){
|
|
var check_child = array_search_reverse_display(shareItemArray,selected_dir);
|
|
if(check_parent.length>0){
|
|
removeRestoreSubDirecories(check_child,'restoreSetFiles');
|
|
}
|
|
}
|
|
}
|
|
if(elements!='All'){
|
|
var shareType = elements.find('label').text();
|
|
}
|
|
else{
|
|
var shareType = 'folder';
|
|
}
|
|
selected += (shareType=='folder')?'/':'';
|
|
shareItemArray.push(selected);
|
|
}
|
|
}
|
|
/* Add selected files/folders under Backup Set - End */
|
|
}
|
|
|
|
/* Function to remove selected elements from Backup Set */
|
|
function removeShareFiles(args){
|
|
//Restore Set
|
|
var DivId = 'loadRestorePath';
|
|
var checkedElement = jQuery('#'+DivId+' tr.chk input:checked');
|
|
|
|
if(args=="All" && clickedDirPath =='/'){
|
|
shareItemArray=[];
|
|
}else {
|
|
var checkedElement = jQuery('#'+DivId+' tr.chk input:checked');
|
|
if(args=="All") {
|
|
var index = shareItemArray.indexOf(clickedDirPath);
|
|
} else{
|
|
selected = args.find('input').val();
|
|
var imgSrc = args.next().find('img').attr('src');
|
|
var imgSubstr = imgSrc.substring(23);
|
|
var itemType = imgSubstr.replace('.png','');
|
|
selected += (itemType=='folder')?'/':'';
|
|
var index = shareItemArray.indexOf(selected);
|
|
}
|
|
//To remove from buffer array
|
|
if(index >= 0){
|
|
shareItemArray.splice(index, 1);
|
|
} else {
|
|
//Start
|
|
var index = shareItemArray.indexOf(clickedDirPath);
|
|
if(index>=0){
|
|
shareItemArray.splice(index, 1);
|
|
addSelectedShareItemExceptUnchecked(checkedElement, clickedDirPath); // Call function to add other items
|
|
} else {
|
|
if(args=="All"){
|
|
var allClickedDirPath = clickedDirPath.split('/');
|
|
allClickedDirPath.pop();
|
|
var parentPath = allClickedDirPath.join("/");
|
|
}
|
|
else{
|
|
parentPath = clickedDirPath.substring(0, clickedDirPath.length-1);
|
|
}
|
|
var index = shareItemArray.indexOf(parentPath);
|
|
|
|
if(index>=0 && args!="All"){
|
|
shareItemArray.splice(index, 1);
|
|
addSelectedShareItemExceptUnchecked(checkedElement,clickedDirPath);// Call function to add other items
|
|
} else {
|
|
var clickedDirPathSplit = parentPath.split('/');
|
|
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);
|
|
}
|
|
addSelectedShareItemExceptUnchecked(checkedElement,parentPath); // Call function to add other items
|
|
|
|
for(var j=(pathSearch.length-1); j>=0; j--){
|
|
var index = shareItemArray.indexOf(pathSearch[j]+'/');
|
|
addSelectedShareItemExceptUnchecked('',pathSearch[j]+'/'); //Call function to add other items
|
|
|
|
if(index>=0){
|
|
shareItemArray.splice(index, 1);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
} //End
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function add remaining items after unchecking child element
|
|
function addSelectedShareItemExceptUnchecked(checkedElement,currDirPath){
|
|
var html = '', selected='';
|
|
|
|
//Share Item Set
|
|
var restoreArray1 = shareItemArray;
|
|
|
|
if(checkedElement!=''){
|
|
checkedElement.each(function(){
|
|
selected = jQuery(this).val();
|
|
var imgSrc = jQuery(this).parent().next().find('img').attr('src');
|
|
var imgSubstr = imgSrc.substring(23);
|
|
var itemType = imgSubstr.replace('.png','');
|
|
|
|
selected += (itemType=='folder')?'/':'';
|
|
if(restoreArray1.indexOf(selected)==-1){
|
|
restoreArray1.push(selected);
|
|
}
|
|
});
|
|
} else {
|
|
if(dedup==true){
|
|
var deviceID = jQuery('select.restoreDropdown-txtbox').val();
|
|
currDirPath = deviceID+currDirPath;
|
|
}
|
|
var dirListVal = dynamicRemoteArray[currDirPath];
|
|
var dirTypeVal = dynamicRemoteType[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;
|
|
var isInString = clickedDirPath.indexOf(selected+'/');
|
|
selected += (itemType=='folder')?'/':'';
|
|
if(restoreArray1.indexOf(selected)==-1 && isInString==-1 && clickedDirPath!=selected){
|
|
restoreArray1.push(selected);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Share Item Set
|
|
//shareItemArray = restoreArray1;
|
|
|
|
}
|
|
|
|
//Function to check remaining files in Restore Set
|
|
function checkRemainingShareFiles(){
|
|
var remaining = jQuery('#restoreSetFiles input').length;
|
|
if(remaining==0){
|
|
jQuery('#maincheckBackup').parent().parent().hide();
|
|
jQuery('#noBackupsetFiles').show().siblings('form').find('.excludefiles').hide();
|
|
shareItemArray =[];
|
|
}
|
|
}
|
|
|
|
//Function to load remote directory list while refresh/first time load
|
|
function loadRestoreList(){
|
|
var currDeviceID = '';
|
|
if(dedup==true){
|
|
var deviceID = jQuery('select.restoreDropdown-txtbox').val();
|
|
if(typeof deviceID=='undefined' && selectedRestoreListPath != ''){
|
|
deviceID = selectedRestoreListPath;
|
|
currDeviceID ="&deviceID="+encodeURIComponent(deviceID);
|
|
}
|
|
}
|
|
var url = "remoteDirList.php?fullPath="+encodeURIComponent('/')+'&getList=1'+currDeviceID;
|
|
var ajaxRequest = jQuery.ajax({
|
|
url: url,
|
|
});
|
|
setTimeout(function() {
|
|
var ajaxState = ajaxRequest.readyState;
|
|
if(typeof ajaxRequest.readyState != "undefined" && ajaxState != 0 || ajaxState != 4) {
|
|
return false;
|
|
}
|
|
|
|
//abortAjax(ajaxRequest);
|
|
jQuery.ajax({
|
|
url: url,
|
|
success: function(locationData){
|
|
if(locationData.indexOf('<html>')>0){
|
|
window.location.href='../index.php';
|
|
}
|
|
if(locationData!=''){
|
|
locationDataRes=$.parseJSON(locationData);
|
|
if(locationDataRes[0]==true){
|
|
//Keeping file/folder list to avoid AJAX call
|
|
var dirURL = decodeURIComponent(locationDataRes[2]['url']);
|
|
dynamicRemoteArray[dirURL]= locationDataRes[2]['dir'];
|
|
dynamicRemoteType[dirURL] = locationDataRes[2]['type'];
|
|
// modified by anil
|
|
var fileSizeArray = [];
|
|
var filedateArray = [];
|
|
for(var i=0;i<locationDataRes[2]['size'].length;i++)
|
|
{
|
|
fileSizeArray[i] = isNaN(locationDataRes[2]['size'][i])?locationDataRes[2]['size'][i]:convertToHumanReadable(locationDataRes[2]['size'][i]) ;
|
|
var res = locationDataRes[2]['date'][i].split(" ");
|
|
var splitRes = res[1];
|
|
var splitTime = splitRes.split(":");
|
|
var timeFinal = res[0] + " " +fomartTimeShow(splitTime[0],splitTime[1],splitTime[2]);
|
|
filedateArray[i] = timeFinal ;
|
|
}
|
|
var dirSize = fileSizeArray;
|
|
var dirDate = filedateArray;
|
|
dynamicRemoteSize[dirURL] = fileSizeArray;
|
|
dynamicRemoteDate[dirURL] = filedateArray;
|
|
dynamicRemoteOrgSize[dirURL] = locationDataRes[2]['size'];
|
|
dynamicRemoteRequestInfo[dirURL] = 1;
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}, 2000);
|
|
}
|
|
|
|
jQuery(document).on('click', '.reindex_menu',function() {
|
|
if(reIndexStarted == true) {
|
|
$(".common_msg.alert").hide();
|
|
showErrorMessages('.head_search .error_msg', 'Reindex is already in progress');
|
|
return false;
|
|
} else if(manualLocalBackupRunning == true) {
|
|
showErrorMessages('.head_search .error_msg', 'Express Backup is in progress. Please try again later');
|
|
return false;
|
|
} else if(manualLocalRestoreRunning == true) {
|
|
showErrorMessages('.head_search .error_msg', 'Restore is in progress. Please try again later');
|
|
return false;
|
|
}
|
|
$.popContainer();
|
|
jQuery(secPosCont).append(jQuery('.reindex_popup').show());
|
|
});
|
|
jQuery(document).on('click','#startReindexButton',function(){
|
|
startReIndex();
|
|
});
|
|
|
|
function startReIndex()
|
|
{
|
|
$.popContainerHide(); // Close popup box
|
|
jQuery('#loadRestorePath').siblings('.ajax_loader').show();
|
|
reIndexStarted = true;
|
|
var url = 'action.php?action=reIndex';
|
|
|
|
if(dedup == true && typeof availableLocalDevices != "undefined" && availableLocalDevices.length > 0 && $('.localRestore').length > 0) {
|
|
url += "&dedupBucket=" + $('#localBackupHost').find("option:selected").attr('idr-bkt');
|
|
}
|
|
|
|
jQuery.ajax({
|
|
url: url,
|
|
success: function(locationData){
|
|
if(locationData.indexOf('<html>')>0){
|
|
window.location.href='../index.php';
|
|
}
|
|
if(locationData!=''){
|
|
locationDataRes=$.parseJSON(locationData);
|
|
if(locationDataRes[0]==false){
|
|
jQuery('#loadRestorePath').siblings('.ajax_loader').hide();
|
|
if(locationDataRes.length>1){
|
|
showErrorMessages('.head_search .error_msg',locationDataRes[1]);
|
|
}
|
|
reIndexStarted=false;
|
|
return false;
|
|
}
|
|
}
|
|
msg = "Reindex is in progress...Please wait";
|
|
jQuery('.head_search .alert').attr('title',msg).find('p').html(msg);
|
|
$('.head_search .alert').show();
|
|
reIndexTimeoutVar = setTimeout(reIndexWatcher,timeForWatcher);
|
|
}
|
|
});
|
|
}
|
|
function reIndexWatcher(){
|
|
reIndexStarted=true;
|
|
var restoreType = $('input[type=radio][name="restore_type_detail[]"]:checked').val();
|
|
if(restoreType!="Online Account"){
|
|
jQuery('#loadRestorePath').siblings('.ajax_loader').show();
|
|
}
|
|
jQuery.ajax({
|
|
url: "action.php?action=reIndexWatcher",
|
|
success: function(data){
|
|
if(data.indexOf('<html>')>0){
|
|
window.location.href='../index.php';
|
|
}
|
|
dataArray=$.parseJSON(data);
|
|
if(dataArray[0]==='running'){
|
|
$('.head_search .alert').show();
|
|
reIndexTimeoutVar = setTimeout(reIndexWatcher,timeForWatcher);
|
|
} else {
|
|
reIndexStarted=false;
|
|
jQuery('#loadRestorePath').siblings('.ajax_loader').hide();
|
|
jQuery('.head_search .alert').hide();
|
|
//Added to handle UI if user selected "Online account" while reindex
|
|
if(restoreType=="Online Account"){
|
|
dynamicLocalRestoreArray = [];
|
|
dynamicLocalRestoreType = [];
|
|
dynamicLocalRestoreSize = [];
|
|
dynamicLocalRestoreDate = [];
|
|
dynamicLocalRestoreRequestInfo = [];
|
|
|
|
jobListArray = [];
|
|
jobListTypeArray = [];
|
|
jobListSizeArray = [];
|
|
jobListLMTimeArray = [];
|
|
} else {
|
|
jQuery('.menu_refresh_icon').trigger('click');
|
|
}
|
|
clearTimeout(reIndexTimeoutVar);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
/* Start Trash Manual Restore - Start*/
|
|
function startTrashManualRestore(){
|
|
|
|
if(jQuery("#restoreLocation").val()==''){
|
|
showErrorMessages('.head_search .error_msg',SELECT_RESTORE_LOCATION);
|
|
return false;
|
|
} else {
|
|
currentRestoreLocation = jQuery("#restoreLocation").val();
|
|
}
|
|
|
|
jQuery("#startTrashManualTaskButton").val('Yes');
|
|
jQuery("#cancelTrashManualTaskButton").val('');
|
|
|
|
var fieldsCount = 0;
|
|
var isVersionRestore = false;
|
|
if (searchItemArray.length > 0) {
|
|
fieldsCount = searchItemArray.length;
|
|
}
|
|
else {
|
|
versionFileName = jQuery("form[name*='startTrashRestoreForm'] input[id='vr_file']").val();
|
|
fieldsCount = ((versionFileName == "")? 0 : 1);
|
|
isVersionRestore = true;
|
|
}
|
|
|
|
if(fieldsCount > 0){
|
|
jQuery("#startTrashRestore").hide();
|
|
jQuery("#cancelTrashRestore").show();
|
|
//jQuery("div.loading_icon").show();
|
|
|
|
var values = "";
|
|
if (!isVersionRestore) {
|
|
|
|
jQuery("form[name*='startTrashRestoreForm'] input[type='checkbox']:checked").each(function(){
|
|
var dirName = jQuery(this).val();
|
|
var dirType = jQuery(this).siblings('input[type="hidden"]').val();
|
|
values += '&chk_group[]='+dirName+'&itemType[]='+dirType;
|
|
});
|
|
if( values.charAt( 0 ) === '&' )
|
|
values = values.slice( 1 )+'&trash=1&jobTypeManualTask=Restore&startManualTaskButton=Yes&restoreLocation='+currentRestoreLocation;
|
|
}
|
|
else {
|
|
var jobNameHolder = jQuery("form#startTrashRestoreForm input[name='oldJobName']");
|
|
var jobName = jobNameHolder.val();
|
|
jobNameHolder.val('0');
|
|
values = jQuery("form#startTrashRestoreVersionForm").serialize();
|
|
values = values+'&trash=1&jobTypeManualTask=Restore&startManualTaskButton=Yes&restoreLocation='+currentRestoreLocation;
|
|
jobNameHolder.val(jobName);
|
|
}
|
|
//AJAX call to start Restore
|
|
$.ajax({
|
|
url: "createManualJob.php",
|
|
type: "POST",
|
|
data: values,
|
|
success: function(validatedData){
|
|
if(validatedData.indexOf('<html>')>0){
|
|
window.location.href='../index.php';
|
|
}
|
|
restoreTimeoutVar = setTimeout(watchRestoreStatus,timeForWatcher);
|
|
}
|
|
});
|
|
showErrorMessages('.head_search .welcome_message',RESTORE_STARTED_SUCCESS);
|
|
} else {
|
|
showErrorMessages('.head_search .error_msg',SELECT_FILE_FOLDER_RESTORE);
|
|
}
|
|
|
|
if (!isVersionRestore) {
|
|
deleteLocalDirList(currentRestoreLocation); //Delete the element from LocalDirList array after Restore
|
|
|
|
//Edit RestoreSetFile
|
|
if(actionRequired==2){
|
|
editJob('restore');
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
/* Start Trash Manual Restore - End*/
|
|
|
|
/* Cancel Trash Manual Restore Immediately - Start*/
|
|
function cancelTrashManualRestore(){
|
|
|
|
currentRestoreLocation = jQuery("#restoreLocation").val();
|
|
jQuery("#cancelTrashManualTaskButton").val('Yes');
|
|
jQuery("#startTrashManualTaskButton").val('');
|
|
var values = '';
|
|
/* jQuery("form[name*='startTrashRestoreForm'] input[type='checkbox']:checked").each(function(){
|
|
var dirName = jQuery(this).val();
|
|
var dirType = jQuery(this).siblings('input[type="hidden"]').val();
|
|
values += '&chk_group[]='+dirName+'&itemType[]='+dirType;
|
|
});*/
|
|
|
|
//if( values.charAt( 0 ) === '&' )
|
|
values += 'trash=1&jobTypeManualTask=Restore&cancelManualTaskButton=Yes&restoreLocation='+currentRestoreLocation;
|
|
if(values != ''){
|
|
jQuery('.common_msg').hide();
|
|
showErrorMessages('.head_search .alert',CANCELING_RESTORE);
|
|
|
|
jQuery("#cancelTrashRestore").hide();
|
|
//AJAX call to start Restore
|
|
$.ajax({
|
|
url: "createManualJob.php",
|
|
type: "POST",
|
|
data: values,
|
|
success: function(validatedData){
|
|
if(validatedData.indexOf('<html>')>0){
|
|
window.location.href='../index.php';
|
|
}
|
|
|
|
jQuery("#cancelRestore").hide();
|
|
jQuery("#cancellingRestore,.restore_loading_gray").show();
|
|
if (jQuery("#restoreSetFiles tr").length > 0) {
|
|
jQuery('#maincheckBackup').parent().parent().show();
|
|
jQuery('#noBackupsetFiles').hide().siblings('form').find('.excludefiles').show();
|
|
}
|
|
}
|
|
});
|
|
|
|
}
|
|
return false;
|
|
}
|
|
/* Cancel Trash Manual Restore Immediately - End*/
|
|
var dedupSelectedDevice = undefined;
|
|
/* Added for Restore page Local/Online page check radio button */
|
|
jQuery(document).on('click', '.radio-restore', function() {
|
|
var restoreValue = $('input[type=radio][name="restore_type_detail[]"]:checked').val();
|
|
if(restoreValue != 'Online Account') {
|
|
if(manualRestoreRunning == true || manualLocalRestoreRunning == true || reIndexStarted == true) {
|
|
if(manualRestoreRunning == true) {
|
|
jQuery('input[name="restore_type_detail[]"][value="Online Account"]').prop('checked', true);
|
|
} else {
|
|
jQuery('input[name="restore_type_detail[]"][value!="Online Account"]').prop('checked', true);
|
|
}
|
|
|
|
if(reIndexStarted != true){
|
|
jQuery('.common_msg').hide();
|
|
showErrorMessages('.head_search .error_msg','Restore is in progress. Please try again later');
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
if(typeof selectedLocalDedupDevice == "undefined" || selectedLocalDedupDevice == "") {
|
|
selectedLocalDedupDevice = jQuery('#localBackupHost option:selected').attr('idr-bkt');
|
|
}
|
|
|
|
jQuery('.right_menu').addClass('localRestore');
|
|
$('.reindex_menu, .restore-dropdown').show();
|
|
$('.option_menu, .backupset').hide();
|
|
restore_radioBtn_chk = restoreValue;
|
|
$('#location_selected').text(restoreValue + "/");
|
|
} else {
|
|
if(manualRestoreRunning == true || manualLocalRestoreRunning == true || reIndexStarted == true) {
|
|
if(manualRestoreRunning == true) {
|
|
jQuery('input[name="restore_type_detail[]"][value="Online Account"]').prop('checked', true);
|
|
} else {
|
|
jQuery('input[name="restore_type_detail[]"][value!="Online Account"]').prop('checked', true);
|
|
}
|
|
if(reIndexStarted != true){
|
|
jQuery('.common_msg').hide();
|
|
showErrorMessages('.head_search .error_msg', 'Restore is in progress. Please try again later');
|
|
}
|
|
return false;
|
|
}
|
|
jQuery('.right_menu').removeClass('localRestore');
|
|
$('.reindex_menu').hide();
|
|
$('.restore-dropdown,.option_menu,.backupset').show();
|
|
restore_radioBtn_chk = restoreValue;
|
|
$('#location_selected').text("/");
|
|
}
|
|
localBackupDropdownList();
|
|
checkAndSelectRestorePath(restoreValue, true, true);
|
|
});
|
|
|
|
function localBackupDropdownList() {
|
|
$("input[name='restore_type_detail[]'][value='" + restore_radioBtn_chk + "']").prop("checked", true);
|
|
if(dedupDeviceOptionListHTML == '' && restore_radioBtn_chk == 'Online Account') {
|
|
dedupDeviceOptionListHTML = jQuery('.restoreDropdown-txtbox').html();
|
|
}
|
|
|
|
if(restore_radioBtn_chk == 'Online Account') {
|
|
jQuery('.restoreDropdown-txtbox').html(dedupDeviceOptionListHTML);
|
|
if(typeof dedupSelectedDevice != "undefined") {
|
|
jQuery('.restoreDropdown-txtbox').val(dedupSelectedDevice);
|
|
}
|
|
jQuery('.file_menu_share').show();
|
|
} else {
|
|
if(dedup == true && typeof availableLocalDevices != "undefined" && availableLocalDevices.length > 0 && $('.localRestore').length > 0 && typeof currentDedupDeviceId != "undefined") {
|
|
var localDevice = '';
|
|
$(availableLocalDevices).each(function(ind, val) {
|
|
localDevice += '<option value="' + restore_radioBtn_chk + '" idr-bkt="' + val['device_id'] + '"' + ((typeof selectedLocalDedupDevice != "undefined" && selectedLocalDedupDevice.indexOf(val['device_id']) != -1)? 'selected="selected"' : '') + '>' + val['nickname'] + ((currentDedupDeviceId.indexOf(val['device_id']) != -1)? ' (this NAS)' : '') + '</option>';
|
|
});
|
|
} else {
|
|
var mountedPath = restore_radioBtn_chk.replace('/IDriveLocal', '');
|
|
var localDevice = '<option value="' + restore_radioBtn_chk + '">' + mountedPath + '</option>';
|
|
}
|
|
|
|
jQuery('.restoreDropdown-txtbox').html(localDevice);
|
|
jQuery('.restoreDropdown-txtbox').attr('title', '');
|
|
jQuery('.file_menu_share').hide();
|
|
jQuery('.file_menu_delete').hide();
|
|
}
|
|
}
|
|
function convertToHumanReadable(bytes)
|
|
{
|
|
if (bytes === 0) { return "0.00 B"; }
|
|
var e = Math.floor(Math.log(bytes) / Math.log(1024));
|
|
return (bytes/Math.pow(1024, e)).toFixed(2)+' '+' KMGTP'.charAt(e)+'B';
|
|
}
|
|
|
|
// Added by anil
|
|
function fomartTimeShow(h,m,s) {
|
|
var ampm = (h % 24 < 12) ? "AM" : "PM", h = h % 12 || 12;
|
|
return (h < 10 ? "0" + h : h) + ":" + m+":"+s +" " + ampm;
|
|
} |