Files

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,'&nbsp;');
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,'&nbsp;');
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,'&nbsp;');
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,'&nbsp;');
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,'&nbsp;');+'</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,'&nbsp;');+'</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,'&nbsp;')+'</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,'&nbsp;')+'</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,'&nbsp;');+'</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,'&nbsp;');+'</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;
}