Viewing File: /usr/local/cpanel/whostmgr/docroot/templates/backup/restore.min.js

CPANEL.namespace("CPANEL.App");CPANEL.App.Restore=function(){if(!("local_datetime"in LOCALE)){LOCALE.local_datetime=LOCALE.datetime}var SELECTOR=YAHOO.util.Selector,EVENT=YAHOO.util.Event,DOM=YAHOO.util.Dom,PAGE=CPANEL.PAGE,POLL_INTERVAL=5e3,pollQueue=false,callbackCounter=0,checkQueueOnceMore=false,restoreButton,dateListArray,userSelection,restoreUser,restoreUserList,restorePoint,restoreCalendar,restoreForm,userFilter,addUserButton,clearFilterEl,restoreTable,rowContainerTemplate,noItemsTemplate,statusTemplate,rowTemplate,selectingByUser,dateListArr,dateListShort,userListArray,userListSize,validSet,calendar,userListEls,lastFocusMenu,lastFocusUser,noticeArea;function setNotice(level,msg){CPANEL.Form.purgeContainer(noticeArea);noticeArea.innerHTML=YAHOO.lang.substitute(statusTemplate,{type:level,message:msg});EVENT.addListener("close_notice","click",function(){CPANEL.Form.purgeContainer(noticeArea)})}function validateQueueButton(){var validUser=restoreUser.value!=="",validDate=restorePoint.value!=="";addUserButton.disabled=validUser&&validDate?false:true}function selectByAccount(e){if(e){EVENT.preventDefault(e)}if(!selectingByUser){var parentDiv=DOM.get("tab_area");var restoreSelection=DOM.get("restore_selection");var userSelection=DOM.get("user_selection");var restoreOptions=DOM.get("restore_options");DOM.addClass("select-by-account","active");DOM.removeClass("select-by-date","active");parentDiv.removeChild(restoreSelection);parentDiv.removeChild(userSelection);parentDiv.insertBefore(userSelection,restoreOptions);parentDiv.insertBefore(restoreSelection,restoreOptions);selectingByUser=true;buildCalendar(calendar);filterUserList();validateQueueButton();DOM.removeClass(restoreCalendar,"workflow-focus");DOM.addClass(userSelection,"workflow-focus");userFilter.focus()}}function selectByDate(e){if(e){EVENT.preventDefault(e)}if(selectingByUser){var parentDiv=DOM.get("tab_area");var restoreSelection=DOM.get("restore_selection");var userSelection=DOM.get("user_selection");var restoreOptions=DOM.get("restore_options");DOM.removeClass("select-by-account","active");DOM.addClass("select-by-date","active");parentDiv.removeChild(restoreSelection);parentDiv.removeChild(userSelection);parentDiv.insertBefore(restoreSelection,restoreOptions);parentDiv.insertBefore(userSelection,restoreOptions);selectingByUser=false;buildCalendar(calendar,dateListShort);focusLastSelectableDay();DOM.addClass(restoreCalendar,"workflow-focus");DOM.removeClass(userSelection,"workflow-focus");filterUserList();clearRestoreFromMenu()}}function nextWorkflowStep(e){validateQueueButton();DOM.removeClass(userSelection,"workflow-focus");if(selectingByUser){var target=e.target||e.srcElement,userArrayIndex=getUserIndex(target.id);if(userArrayIndex>=0){var dateList=userListArray[userArrayIndex].backup_date;var uniqueDateList=dateList.filter(function(item,idx,ar){return ar.indexOf(item)===idx});buildCalendar(calendar,uniqueDateList);DOM.addClass(restoreCalendar,"workflow-focus");focusLastSelectableDay()}}else{addUserButton.focus()}}function getUserIndex(id){for(var i=0,length=userListArray.length;i<length;i++){if(id===userListArray[i].user){return i}}return-1}function isActive(user){if(DOM.hasClass(user,"disabled-list")||DOM.hasClass(user,"hidden")){return false}return true}function selectUser(e){var target=e.target||e.srcElement,keySelect=e.keySelect||false;if(isActive(target)){var currentlySelected=DOM.getElementsByClassName("selected-list","span",restoreUserList);restoreUser.value=target.id;DOM.removeClass(currentlySelected,"selected-list");DOM.addClass(target,"selected-list");if(selectingByUser){restorePoint.value=""}updateRestoreFromMenu(restorePoint.value);if(!keySelect){nextWorkflowStep(e)}}}function keyboardSelectUser(e,key){var selected=DOM.getElementsByClassName("selected-list","span",restoreUserList)[0],newSelection,keyPressed=key[0],keyEvent=key[1];if(selected){if(keyPressed===40){newSelection=DOM.getNextSiblingBy(selected,isActive);if(!newSelection){newSelection=DOM.getFirstChildBy(restoreUserList,isActive)}newSelection.scrollIntoView(false)}else if(keyPressed===38){newSelection=DOM.getPreviousSiblingBy(selected,isActive);if(!newSelection){newSelection=DOM.getLastChildBy(restoreUserList,isActive)}newSelection.scrollIntoView(false)}else{EVENT.preventDefault(keyEvent);nextWorkflowStep({target:selected})}}else{if(keyPressed===40){newSelection=DOM.getFirstChildBy(restoreUserList,isActive);if(newSelection){newSelection.scrollIntoView(false)}}else if(keyPressed===38){newSelection=DOM.getLastChildBy(restoreUserList,isActive);if(newSelection){newSelection.scrollIntoView(false)}}}if(newSelection){selectUser({target:newSelection,keySelect:true})}}function focusLastSelectableDay(){var i,userListArrLength=userListArray.length,selectedUser=-1,user=restoreUser.value,selectableDates={},selectableDatesLength;for(i=0;i<userListArrLength;i++){if(userListArray[i].user===user){selectedUser=i;break}}if(selectedUser>=0){validateQueueButton();selectableDates=DOM.getElementsByClassName("selector","a","restore_calendar");selectableDatesLength=selectableDates.length;if(selectableDatesLength>0){selectableDates[selectableDatesLength-1].focus()}}}function filterUserList(doNotClearSelect){if(userFilter.value){DOM.addClass("clear_user_filter","inline-block")}else{DOM.removeClass("clear_user_filter","inline-block")}var activeQueue=DOM.getElementsByClassName("delete-queue","BUTTON","table_data"),activeQueueSize=activeQueue.length,filterStr=new RegExp(userFilter.value,"i"),userListShort=[],queueIterator,length,i;if(!selectingByUser){for(i=0,length=dateListArray.length;i<length;i++){if(dateListArray[i].backup_date===restorePoint.value){userListShort=dateListArray[i].user;break}}}for(i=0;i<userListSize;i++){var currentListElement=userListEls[i];if(!doNotClearSelect){DOM.removeClass(currentListElement,"selected-list");restoreUser.value=""}if(!filterStr.test(userListArray[i].user)){DOM.addClass(currentListElement,"hidden")}else{DOM.removeClass(currentListElement,"hidden")}DOM.removeClass(currentListElement,"disabled-list");if(!selectingByUser&&userListShort.indexOf(userListArray[i].user)<0){DOM.addClass(currentListElement,"disabled-list");continue}for(queueIterator=0;queueIterator<activeQueueSize;queueIterator++){if(userListArray[i].user===activeQueue[queueIterator].id.replace(/^remove_/i,"")){DOM.addClass(currentListElement,"disabled-list")}}}}function availableBackupDay(workingDate,cell){var availableDay=document.createElement("a");DOM.setAttribute(availableDay,"href","");DOM.addClass(availableDay,this.Style.CSS_CELL_SELECTOR);availableDay.innerHTML=this.buildDayLabel(workingDate);cell.innerHTML="";cell.appendChild(availableDay);DOM.addClass(cell,"selectable");return YAHOO.widget.Calendar.STOP_RENDER}function clearRestoreFromMenu(){var destinationsMenu=document.getElementById("destination_select");var localOption=destinationsMenu.options[0];destinationsMenu.options.length=0;destinationsMenu.add(localOption);localOption.selected=true;localOption.disabled=true;localOption.className="disabled";destinationsMenu.disabled=true;DOM.addClass(destinationsMenu,"disabled")}function updateRestoreFromMenu(selectedDate){if(typeof restoreUser.value==="undefined"||restoreUser.value==="restore_user_list"){return}var remoteBackupsForSelectedUser=CPANEL.PAGE.users[restoreUser.value].filter(function(element){return element.when===selectedDate});clearRestoreFromMenu();if(remoteBackupsForSelectedUser.length===0){return}var destinationsMenu=document.getElementById("destination_select");var backupsForSelectedDay=0;var localBackupExists=false;var sortedMenuItems=[];for(var i=0;i<remoteBackupsForSelectedUser.length;i++){if(remoteBackupsForSelectedUser[i].when===selectedDate){backupsForSelectedDay++;if(remoteBackupsForSelectedUser[i].where==="local"){localBackupExists=true;continue}var newMenuItem=document.createElement("option");var remoteBackup=PAGE.destinations[remoteBackupsForSelectedUser[i].where];newMenuItem.value=remoteBackupsForSelectedUser[i].where;newMenuItem.text=remoteBackup.name+" ("+remoteBackup.type+")";sortedMenuItems.push(newMenuItem)}}sortedMenuItems.sort(function(menuItemA,menuItemB){return menuItemA.text.localeCompare(menuItemB.text)});sortedMenuItems.forEach(function(menuItemToAdd){destinationsMenu.add(menuItemToAdd)});if(backupsForSelectedDay>0){destinationsMenu.disabled=false;DOM.removeClass(destinationsMenu,"disabled");if(localBackupExists){destinationsMenu.options[0].selected=true;destinationsMenu.options[0].disabled=false;destinationsMenu.options[0].className=""}else{destinationsMenu.options[1].selected=true}}}function selectAvailableBackup(type,args){restorePoint.value=apiDate(args[0][0]);validateQueueButton();if(selectingByUser){DOM.removeClass(restoreCalendar,"workflow-focus");addUserButton.focus();updateRestoreFromMenu(restorePoint.value)}else{DOM.removeClass(restoreCalendar,"workflow-focus");DOM.addClass(userSelection,"workflow-focus");restoreUser.value="";clearRestoreFromMenu();filterUserList();userFilter.focus()}validateQueueButton()}function buildCalendar(calendar,dateArray){dateArray=typeof dateArray!=="undefined"?dateArray:[];var dateArrayLength=dateArray.length,lastAvailableIndex=0,lastAvailableDay,i;restorePoint.value="";if(dateArrayLength>0){lastAvailableIndex=dateArrayLength-1;lastAvailableDay=dateArray[lastAvailableIndex].split("-");calendar.cfg.setProperty("pagedate",lastAvailableDay[1]+"/"+lastAvailableDay[0])}for(i=1;i<8;i++){calendar.addWeekdayRenderer(i,calendar.renderOutOfBoundsDate)}for(i=0;i<dateArrayLength;i++){calendar.addRenderer(yuiCalendarDate(dateArray[i]),availableBackupDay)}calendar.cfg.setProperty("navigator",true);calendar.render();if(selectingByUser){DOM.removeClass(restoreCalendar,"workflow-focus")}else{DOM.addClass(restoreCalendar,"workflow-focus")}}function buildUserListArray(){var justUsers=Object.keys(PAGE.users).sort();var massagedUserList=[];justUsers.forEach(function(userName){var userData=PAGE.users[userName];var backupDates=[];userData.forEach(function(backupDate){backupDates.push(backupDate.when)});var userObj={user:userName,backup_date:backupDates.sort()};massagedUserList.push(userObj)});userListSize=massagedUserList.length;return massagedUserList}function yuiCalendarDate(date){var dateArray=[];if(typeof date==="string"){dateArray=date.split("-");date=new Date(dateArray[0],dateArray[1]-1,dateArray[2])}return date.getMonth()+1+"/"+date.getDate()+"/"+date.getFullYear()}function apiDate(date){if(date[1]<10){date[1]="0"+date[1]}if(date[2]<10){date[2]="0"+date[2]}return date[0]+"-"+date[1]+"-"+date[2]}function addToQueue(){var formData=CPANEL.Form.getData(restoreForm);if(!formData.user){return}CPANEL.Form.toggleLoadingButton(addUserButton);setNotice("info",LOCALE.maketext("Adding “[_1]” to the restoration queue …",formData.user));CPANEL.api({func:"restore_queue_add_task",data:formData,callback:{success:function(){var newRecord={user:formData.user,restore_point:formData.restore_point,options:{subdomains:formData.subdomains,mail_config:formData.mail_config,mysql:formData.mysql,give_ip:formData.give_ip,destid:formData.destid}};PAGE.queue.push(newRecord);calendar.clear();if(selectingByUser){buildCalendar(calendar)}else{buildCalendar(calendar,dateListShort)}var selectedUser=DOM.getElementsByClassName("selected-list","span","restore_user_list");DOM.removeClass(selectedUser,"selected-list");restoreUser.value="";clearRestoreFromMenu();buildQueue();CPANEL.Form.purgeContainer(noticeArea);CPANEL.Form.toggleLoadingButton(addUserButton);addUserButton.disabled=true;addUserButton.blur();restoreButton.disabled=false},failure:function(o){if(!("cpanel_error"in o)){if("statusText"in o&&o.statusText==="communication failure"){o.cpanel_error=LOCALE.maketext("Your browser may have blocked the request, or your connection may be unstable")}else{o.cpanel_error=LOCALE.maketext("Unknown Error")}}CPANEL.Form.toggleLoadingButton(addUserButton);addUserButton.disabled=true;addUserButton.blur();buildQueue();setNotice("error",LOCALE.maketext("Could not add “[_1]” to the restoration queue ([_2]).",formData.user,o.cpanel_error.html_encode()));var node=DOM.get(formData.user);if(node){DOM.removeClass(node,"disabled-list")}}}})}function removeQueueItem(e){var target=e.srcElement||e.target,node=DOM.getAncestorByTagName(target,"tr"),id=target.id.replace(/^remove_/i,"");EVENT.preventDefault(e);var actionCell=DOM.getAncestorByClassName(target,"row-actions");DOM.addClass(actionCell,"row-loading");if(DOM.hasClass(target,"delete-finished")){var user=PAGE.finished[id].restore_job.user,started=PAGE.finished[id].status_info.started;CPANEL.api({func:"restore_queue_clear_completed_task",data:{user:user,start_time:started},callback:{success:function(){node.parentNode.removeChild(node);PAGE.finished.splice(id,1);CPANEL.Form.purgeContainer(noticeArea);buildQueue()},failure:function(o){DOM.removeClass(actionCell,"row-loading");if(!("cpanel_error"in o)){o.cpanel_error=LOCALE.maketext("Unknown Error")}setNotice("error",LOCALE.maketext("Could not remove “[_1]” from the finished list ([_2]).",user,o.cpanel_error.html_encode()))}}})}else{CPANEL.api({func:"restore_queue_clear_pending_task",data:{user:id},callback:{success:function(){var i;var listSize=userListEls.length;node.parentNode.removeChild(node);for(i=listSize-1;i>=0;i--){if(userListEls[i].id===id){DOM.removeClass(userListEls[i],"disabled-list");break}}for(i=PAGE.queue.length-1;i>=0;i--){if(PAGE.queue[i].user===id){PAGE.queue.splice(i,1);break}}CPANEL.Form.purgeContainer(noticeArea);buildQueue()},failure:function(o){DOM.removeClass(actionCell,"row-loading");if(!("cpanel_error"in o)){o.cpanel_error=LOCALE.maketext("Unknown Error")}setNotice("error",LOCALE.maketext("Could not remove “[_1]” from the restoration queue ([_2]).",id,o.cpanel_error.html_encode()))}}})}}function viewQueueItemLog(e){var target=e.srcElement||e.target,node=DOM.getAncestorByTagName(target,"tr"),id=target.id.replace(/^remove_/i,"");EVENT.preventDefault(e);var idnum=id.split("_");var i=idnum[1];var finishedJob=PAGE.finished[i];if(!finishedJob||!finishedJob.status_info||!finishedJob.status_info.transfer_session_id){alert(LOCALE.maketext("No log is available because the restore failed."))}else{if(finishedJob.status_info.restore_logfile){window.open("../scripts5/render_transfer_log?transfer_session_id="+encodeURIComponent(finishedJob.status_info.transfer_session_id)+"&log_file="+encodeURIComponent(finishedJob.status_info.restore_logfile))}else{window.open("../scripts5/transfer_session?transfer_session_id="+encodeURIComponent(finishedJob.status_info.transfer_session_id))}}}function destinationDisplayName(destId){if(typeof destId==="undefined"){return"Local"}var destination=PAGE.destinations[destId];return destId==="local"?"Local":destination.name+" ("+destination.type+")"}function buildQueue(noFilter){var newTableContainer=document.createElement("div"),restoreTableBody=DOM.get("table_data"),tableRows="",totalRows=0,uId=0,newTableBody,length,i;disableRestoreButton=true;for(i=0,length=PAGE.active.length;i<length;i++,uId++){var activeJob=PAGE.active[0];tableRows+=YAHOO.lang.substitute(rowTemplate,{row_id:uId,rowClass:"table-row-stripe-odd",user:activeJob.user,date:findLocaleDate(activeJob.restore_point.split("-")),source:destinationDisplayName(activeJob.options.destid),status:LOCALE.maketext("Restoring Account"),statusImage:PAGE.activeImage,viewButtonClass:"hidden",clearButtonClass:"hidden",statusId:"active_"+activeJob.user,id:activeJob.user});totalRows++}for(i=0,length=PAGE.queue.length;i<length;i++,uId++){var queuedJob=PAGE.queue[i];tableRows+=YAHOO.lang.substitute(rowTemplate,{row_id:uId,rowClass:uId%2===1?"table-row-stripe-even":"table-row-stripe-odd",user:queuedJob.user,date:findLocaleDate(queuedJob.restore_point.split("-")),source:destinationDisplayName(queuedJob.options.destid),status:LOCALE.maketext("Pending"),statusImage:PAGE.pendingImage,statusId:"queued_"+queuedJob.user,viewButtonClass:"hidden",clearButtonClass:"delete-link delete-queue",id:queuedJob.user});totalRows++;disableRestoreButton=false}for(i=0,length=PAGE.finished.length;i<length;i++,uId++){var finishedJob=PAGE.finished[i];tableRows+=YAHOO.lang.substitute(rowTemplate,{row_id:uId,rowClass:uId%2===1?"table-row-stripe-even":"table-row-stripe-odd",user:finishedJob.restore_job.user,date:findLocaleDate(finishedJob.restore_job.restore_point.split("-")),source:destinationDisplayName(finishedJob.restore_job.options.destid),status:finishedJob.status_info.result===2?LOCALE.maketext("Completed with warnings"):finishedJob.status_info.result?LOCALE.maketext("Completed"):LOCALE.maketext("Failed"),statusImage:finishedJob.status_info.result===2?PAGE.warningImage:finishedJob.status_info.result?PAGE.successImage:PAGE.errorImage,statusId:"finished_"+finishedJob.restore_job.user,viewButtonClass:"view-link view-finished",clearButtonClass:"delete-link delete-finished",id:i});totalRows++;if(!finishedJob.status_info.result){var logMsg=finishedJob.status_info.log?finishedJob.status_info.log.replace(/\n/g,"<br/>\n"):LOCALE.maketext("The log file for the restore of user “[_1]” is empty.",finishedJob.restore_job.user);tableRows+=YAHOO.lang.substitute(statusTemplate,{type:"error",message:LOCALE.maketext("Could not restore account “[_1]”: [_2]",finishedJob.restore_job.user,logMsg.html_encode()),user:finishedJob.restore_job.user,time:finishedJob.status_info.started});totalRows++}}if(totalRows===0){tableRows+=noItemsTemplate}restoreButton.disabled=disableRestoreButton;newTableContainer.innerHTML=YAHOO.lang.substitute(rowContainerTemplate,{content:tableRows});newTableBody=SELECTOR.query(".row-container",newTableContainer,true);newTableBody.id="table_data";restoreTable.replaceChild(newTableBody,restoreTableBody);if(!noFilter){filterUserList()}EVENT.on(DOM.getElementsByClassName("delete-link","button","table_data"),"click",removeQueueItem);EVENT.on(DOM.getElementsByClassName("view-link","button","table_data"),"click",viewQueueItemLog);EVENT.on(DOM.getElementsByClassName("close","div","table_data"),"click",clearNotice)}function clearNotice(e){var target=e.target||e.srcElement,user=DOM.getAttribute(target,"user"),time=DOM.getAttribute(target,"time"),statusRow=DOM.getAncestorByTagName(target,"tr");statusRow.parentNode.removeChild(statusRow)}function findLocaleDate(dateArray){var localeDate=new Date(dateArray[0],dateArray[1]-1,dateArray[2]);return LOCALE.local_datetime(localeDate,"date_format_full")}function buildDateList(){dateListArray=[];dateListShort=[];var userNames=Object.keys(PAGE.users);for(var unIdx=0;unIdx<userNames.length;unIdx++){var userName=userNames[unIdx];if(PAGE.users.hasOwnProperty(userName)){PAGE.users[userName].forEach(function(arrayItem){if(!dateListShort.includes(arrayItem.when)){dateListShort.push(arrayItem.when);dateListArray.push({backup_date:arrayItem.when,user:[userName]})}else{var dateListElement=dateListArray.find(function(element){return element.backup_date===arrayItem.when});if(typeof dateListElement!=="undefined"&&!dateListElement.user.includes(userName)){dateListElement.user.push(userName)}}});dateListShort.sort()}}if(dateListArray.length>0){dateListArray.sort_by("backup_date")}}function clearFilter(){userFilter.value="";filterUserList()}function toggleActions(e){if(e){EVENT.preventDefault(e)}validateQueueButton();if(DOM.hasClass("gear","gear-active")){DOM.removeClass("gear","gear-active");DOM.addClass("remove_menu","hidden")}else{DOM.addClass("gear","gear-active");DOM.removeClass("remove_menu","hidden");lastFocusMenu=DOM.get("remove_queue");lastFocusMenu.focus()}}function handleMenuClick(e){var target=e.srcElement||e.target;EVENT.preventDefault(e);function clearFinished(clearErrors){for(var i=PAGE.finished.length-1;i>=0;i--){if(PAGE.finished[i].status_info.result&&!clearErrors){PAGE.finished.splice(i,1)}else{if(!PAGE.finished[i].status_info.result&&clearErrors){PAGE.finished.splice(i,1)}}}}if("remove_all"===target.id){CPANEL.api({func:"restore_queue_clear_all_tasks",callback:{failure:function(){setNotice("error",LOCALE.maketext("Could not clear the restoration queue."))}}});PAGE.queue=[];PAGE.finished=[]}if("remove_queue"===target.id){CPANEL.api({func:"restore_queue_clear_all_pending_tasks",callback:{failure:function(){setNotice("error",LOCALE.maketext("Could not clear pending restorations."))}}});PAGE.queue=[]}if("remove_completed"===target.id){CPANEL.api({func:"restore_queue_clear_all_completed_tasks",callback:{failure:function(){setNotice("error",LOCALE.maketext("Could not clear completed restorations."))}}});clearFinished()}if("remove_errors"===target.id){CPANEL.api({func:"restore_queue_clear_all_failed_tasks",callback:{failure:function(){setNotice("error",LOCALE.maketext("Could not clear failed restorations."))}}});clearFinished(true)}toggleActions();buildQueue()}function activateRestoreQueue(){CPANEL.Form.toggleLoadingButton("run_restore");PAGE.activeQueue=1;CPANEL.api({func:"restore_queue_activate",callback:{success:function(){runningQueue()},failure:function(){CPANEL.Form.toggleLoadingButton("run_restore");PAGE.activeQueue=0;setNotice("error",LOCALE.maketext("Could not start the restoration queue."))}}})}function runningQueue(){if(callbackCounter===0){buildQueue(true);filterUserList(true);callbackCounter=1;CPANEL.api({func:"restore_queue_state",callback:{success:function(o){var data=o.cpanel_data;if(data.length===0){PAGE.activeQueue=0}else{PAGE.activeQueue=data.pending.length+data.active.length;PAGE.active=data.active;PAGE.queue=data.pending;PAGE.finished=data.completed}callbackCounter=0;if(!pollQueue){pollQueue=setInterval(runningQueue,POLL_INTERVAL);checkQueueOnceMore=true}if(!PAGE.activeQueue){if(checkQueueOnceMore===true){checkQueueOnceMore=false}else{if(pollQueue){clearInterval(pollQueue);pollQueue=false}CPANEL.Form.toggleLoadingButton("run_restore");restoreButton.disabled=true}}},failure:function(){setNotice("error",LOCALE.maketext("Failed to retrieve the restore queue state."));callbackCounter=0}}})}}function initialize(){userSelection=DOM.get("user_selection");restoreUserList=DOM.get("restore_user_list");restoreUser=DOM.get("restore_user");restorePoint=DOM.get("restore_point");restoreCalendar=DOM.get("restore_calendar");restoreForm=DOM.get("restore_point_form");userFilter=DOM.get("user_filter");clearFilterEl=DOM.get("clear_user_filter");addUserButton=DOM.get("queue_add_user");userListEls=DOM.getElementsByClassName("restore-user-option","span",restoreUserList);restoreTable=DOM.get("restore_table");restoreButton=DOM.get("run_restore");rowContainerTemplate=DOM.get("row_container_template").text.trim();noItemsTemplate=DOM.get("no_records_found_template").text.trim();statusTemplate=DOM.get("row_status").text.trim();rowTemplate=DOM.get("row_template").text.trim();noticeArea=DOM.get("notice_area");selectingByUser=true;dateListArray=[];dateListShort=[];userListArray=buildUserListArray();validSet=false;EVENT.on(clearFilterEl,"click",clearFilter);EVENT.on(addUserButton,"click",addToQueue);EVENT.on(userFilter,"keyup",filterUserList);EVENT.on(userFilter,"paste",filterUserList);EVENT.on("select-by-date","click",selectByDate);EVENT.on("select-by-account","click",selectByAccount);EVENT.on("run_restore","click",activateRestoreQueue);EVENT.on(restoreUserList,"click",selectUser);var restoreUserOptions=DOM.getElementsByClassName("restore-user-option","SPAN",restoreUserList);EVENT.on(restoreUserOptions,"focus",function(e){var target=e.srcElement||e.target;lastFocusUser=target});EVENT.on(restoreUserOptions,"mouseover",function(){if(lastFocusUser){lastFocusUser.blur();lastFocusUser=null}});EVENT.on(["gear","remove_menu"],"mouseout",function(e){var element=e.toElement||e.relatedTarget;if(!DOM.hasClass("remove_menu","hidden")){if(!(element.parentNode.id==="remove_menu"||element.id==="remove_menu")&&!(element.parentNode.id==="gear"||element.id==="gear")){toggleActions()}}});EVENT.on("gear","click",toggleActions);var gearMenuItems=DOM.getElementsByClassName("menu-item","a","remove_menu");EVENT.on(gearMenuItems,"click",handleMenuClick);EVENT.on(gearMenuItems,"mouseover",function(){lastFocusMenu.blur()});EVENT.on(gearMenuItems,"focus",function(e){lastFocusMenu=e.srcElement||e.target});DOM.addClass(document.getElementsByTagName("body"),"yui-skin-sam");calendar=new YAHOO.widget.Calendar("restore_calendar");calendar.Style.CSS_CELL_TODAY="restore-today";calendar.selectEvent.subscribe(selectAvailableBackup,calendar,true);buildCalendar(calendar);YAHOO.util.Event.on("restore_point_form","submit",function(e){EVENT.stopEvent(e)});var userSelectionListener=new YAHOO.util.KeyListener(userSelection,{keys:[9,13,38,40]},keyboardSelectUser);userSelectionListener.enable();if(parseInt(PAGE.activeQueue)===1){CPANEL.Form.toggleLoadingButton("run_restore");runningQueue()}else{buildQueue(true);filterUserList(true)}buildDateList();validateQueueButton();DOM.addClass(userSelection,"workflow-focus");userFilter.focus()}EVENT.onDOMReady(initialize)}();
Back to Directory File Manager