Viewing File: /usr/local/cpanel/whostmgr/docroot/js2-min/transfer_session_support.js

(function(window){"use strict";var YAHOO=window.YAHOO;var QUEUE_TIMER_INTERVAL=250;var MAX_TAIL_ERRORS=10;var MAX_ERROR_COUNT=150;var IE_READY_STATE_MAP={uninitialized:0,loading:1,loaded:2,interactive:3,complete:4};var LogTail=function(systemId,sessionId,tail_name,masterErrorProcessorObj){this._systemId=systemId;this._sessionId=sessionId;this._logs={};this._termination_integer=Math.floor(Math.random()*1e10);this._termination_sequence="[tail_end:"+this._termination_integer+"]";this._tail_name=tail_name;this._tail_errors=0;this._deletedLogs={};this._string_position=0;this._reached_end=0;this._logsChanged=0;this._masterErrorProcessorObj=masterErrorProcessorObj};YAHOO.lang.augmentObject(LogTail.prototype,{start:function(){alert("Please use .addLog and .delLog")},abort:function(){console.trace("failed to create abort object")},delLog:function(logFile){delete this._logs[logFile];this._deletedLogs[logFile]=1;if(!this.hasLogs()){this._logsChanged=0;if(this._queue_timer){window.clearInterval(this._queue_timer);this._queue_timer=null}}},processLogQueue:function(){if(this._logsChanged){if(this.hasLogs()){this._send_request()}this._logsChanged=0}if(!this._reached_end){this._process_request()}},addRawLog:function(logFile,logProcessorFunc){this.addLog(logFile,logProcessorFunc);this._logs[logFile]["raw"]=1},addLog:function(logFile,logProcessorFunc){if(!this.hasLogs()){if(this._queue_timer){window.clearInterval(this._queue_timer);this._queue_timer=null}this._queue_timer=window.setInterval(this.processLogQueue.bind(this),QUEUE_TIMER_INTERVAL)}this._logs[logFile]={bytes_processed:0,raw:0,err_count:0,logProcessorFunc:logProcessorFunc};this._logsChanged=1},hasLogs:function(){for(var k in this._logs){if(this._logs.hasOwnProperty(k)){return true}}},logCount:function(){return Object.keys(this._logs).length},_send_request:function(){if(this._request&&YAHOO.util.Connect.isCallInProgress(this._request)){YAHOO.util.Connect.abort(this._request)}this._string_position=0;this._reached_end=0;this._deletedLogs={};var query={system_id:this._systemId,session_id:this._sessionId,termination_integer:this._termination_integer};var file_count=0;for(var logFile in this._logs){if(this._logs.hasOwnProperty(logFile)){file_count++;query["log_file"+file_count]=logFile;query["log_file_position"+file_count]=this._logs[logFile].bytes_processed}}var target_url="../cgi/live_tail_log.cgi"+"?"+CPANEL.util.make_query_string(query);if(YAHOO.env.ua.ie&&YAHOO.env.ua.ie<9){if(this._iframeEl){this._iframeEl.parentNode.removeChild(this._iframeEl)}this._iframeEl=document.createElement("iframe");this._iframeEl.style.display="none";DOM.get("content").appendChild(this._iframeEl);this._iframeEl.contentWindow.location.href=target_url}else{this._request=YAHOO.util.Connect.asyncRequest("GET",target_url,{success:this._process_request.bind(this),failure:this._handle_tail_failure.bind(this)})}this.abort=function(){this._reached_end=1;if(this._iframeEl){this._iframeEl.contentWindow.location.href="about:blank"}if(this._request){YAHOO.util.Connect.abort(this._request)}};this.abort.bind(this);return 1},_handle_tail_failure:function(o){if(o.status>0&&o.status!==200){++this._tail_errors;var errmsg=LOCALE.maketext("[asis,live_tail_log] encountered an internal error: [_1]",o.statusText);if(o.status!==301&&o.status!==307&&this._masterErrorProcessorObj){this._masterErrorProcessorObj.renderMessage(errmsg)}if(this._tail_errors>=MAX_TAIL_ERRORS){var finalmsg=LOCALE.maketext("[asis,live_tail_log] encountered the maximum allowed errors ([numf,_1]) and will not continue.",this._tail_errors);if(this._masterErrorProcessorObj){this._masterErrorProcessorObj.renderMessage(finalmsg)}else{alert(o.statusText);alert(finalmsg)}this.abort();return 0}}this._logsChanged=1},_process_request:function(o){var xhr;if(o){xhr=o;xhr.readyState=4}else if(this._request&&this._request.conn){xhr=this._request.conn}else if(this._iframeEl){if(!this._iframeEl.contentWindow.document.body){return}xhr={readyState:IE_READY_STATE_MAP[this._iframeEl.readyState],responseText:this._iframeEl.contentWindow.document.body.innerText?this._iframeEl.contentWindow.document.body.innerText:this._iframeEl.contentWindow.document.body.textContent};if(xhr.readyState===4){xhr.responseText+=this._newline}}else{return}var rawdata;try{rawdata=xhr.responseText.substr(this._string_position)}catch(e){return}var lastEndofLine=rawdata.lastIndexOf(this._newline);if(lastEndofLine>-1){this._string_position+=lastEndofLine+this._newline.length;var newdata=rawdata.substr(0,lastEndofLine);var log_data_arr=newdata.split(this._newline);for(var i=0;i<log_data_arr.length;i++){if(log_data_arr[i]==="."){this._tail_errors=0;continue}else if(log_data_arr[i]===this._termination_sequence){this._reached_end=1;continue}else if(log_data_arr[i]===""){continue}else if(log_data_arr[i].indexOf("|")===-1){this._handle_tail_failure({status:500,statusText:log_data_arr[i]});continue}var demultiplexedData=log_data_arr[i].split("|");var logFile=demultiplexedData.shift();var server_length=parseInt(demultiplexedData.shift());var data=demultiplexedData.join("|");if(data){if(this._deletedLogs[logFile]){}else if(!this._logs[logFile]){}else{this._tail_errors=0;this._logs[logFile].bytes_processed+=server_length;this._log_processor(logFile,data)}}else{}}}if(xhr.readyState===4){if(this._reached_end){this._logs={};if(this._queue_timer){window.clearInterval(this._queue_timer);this._queue_timer=null}}else{this._logsChanged=1}}return 1},_log_processor:function(logFile,data){if(this._logs[logFile].raw){return this._logs[logFile].logProcessorFunc(data,logFile)}var msg="";try{if(data.indexOf("{")!==0){throw"Non JSON data passed to parser."}msg=JSON.parse(data)}catch(e){this._logs[logFile].err_count++;if(this._logs[logFile].err_count===MAX_ERROR_COUNT){data=LOCALE.maketext("Too many errors from “[_1]”. Future errors will be suppressed.",logFile)}if(this._logs[logFile].err_count<=MAX_ERROR_COUNT){msg={type:"error",contents:{msg:[data]}}}}if(msg){return this._logs[logFile].logProcessorFunc(msg,logFile)}},_newline:YAHOO.env.ua.ie&&YAHOO.env.ua.ie<9?"\r\n":"\n"});window.LogTail=LogTail})(window);(function(window){"use strict";var YAHOO=window.YAHOO;var item_types={warnings:{itemclass:"warningmsg",maketext_string:"Warning: [_1]"},skipped_items:{itemclass:"warningmsg",maketext_string:"Skipped: [_1]"},dangerous_items:{itemclass:"errormsg",maketext_string:"Dangerous: [_1]"},altered_items:{itemclass:"warningmsg",maketext_string:"Altered: [_1]"}};var TransferLogRender=function(tailWindow,queueWindow){this._tailWindow=tailWindow;this._queueWindow=queueWindow;this._tailWindowUI=tailWindow.ui;this._realTargetEl=this._tailWindowUI.bodyElement;var targetEl=document.createDocumentFragment();this._targetEl=targetEl;this._targetList=[targetEl];this._currentTarget=targetEl;this._summaryEl=this._tailWindowUI.summaryElement||this._tailWindowUI.bodyElement;this._allMsgs=0;this._isCaughtUp=0;this._lastMessageTime=0;this._waitCount=0;this._waitForCatchUp=window.setInterval(function(){var now=(new Date).getTime()/1e3;if(this._lastMessageTime&&(++this._waitCount>5||now-this._lastMessageTime>.15)){this._isCaughtUp=1;window.clearInterval(this._waitForCatchUp)}}.bind(this),1e3);this._fragmentRenderer=window.setInterval(function(){if(this._isCaughtUp){this._realTargetEl.appendChild(this._targetEl);window.clearInterval(this._fragmentRenderer);this._realTargetEl.scrollTop=this._realTargetEl.scrollHeight;if(this._currentTarget===this._targetEl){this._currentTarget=this._realTargetEl}var newTargetList=[];for(var i=0;i<this._targetList.length;i++){if(this._targetList[i]==this._targetEl){newTargetList.push(this._realTargetEl)}else{newTargetList.push(this._targetList[i])}}this._targetList=newTargetList;this._targetEl=this._realTargetEl}}.bind(this),1e3)};YAHOO.lang.augmentObject(TransferLogRender.prototype,{renderMessage:function(msg,logfile){this._lastMessageTime=(new Date).getTime()/1e3;var msg_contents=msg.contents;var was_at_end=1;if(this._isCaughtUp){was_at_end=this._realTargetEl.scrollTop+this._realTargetEl.offsetHeight+1>=this._realTargetEl.scrollHeight||this._realTargetEl.scrollHeight<=this._realTargetEl.offsetHeight?1:0}if(!msg_contents){console.log("Unexpected message.");console.log(msg);return}else if(msg_contents.msg){if(msg_contents.action){if(msg_contents.action.match(/^start_/)){var startDiv=document.createElement("div");startDiv.className=msg_contents.action;var headerDiv=document.createElement("div");headerDiv.className=msg_contents.action+"_header";headerDiv[CPANEL.has_text_content?"textContent":"innerText"]=msg.contents.msg.join(" ")+"\n";startDiv.appendChild(headerDiv);var containerDiv=document.createElement("div");containerDiv.className=msg_contents.action+"_container";startDiv.appendChild(containerDiv);this._currentTarget.appendChild(startDiv);this._targetList.push(containerDiv);this._currentTarget=this._targetList[this._targetList.length-1]}else if(msg_contents.action.match(/^end_/)){if(this._targetList.length>1){this._targetList.pop();this._currentTarget=this._targetList[this._targetList.length-1]}}}else{var textContent=msg.contents.msg.join(" ");var set_text_content=0;if(textContent.match(/^(?:…+|\.\.+)[ ]?[0-9]+.*?(?:…+|\.\.+)/)&&this._currentTarget.lastChild){var previousTextContent=this._currentTarget.lastChild[CPANEL.has_text_content?"textContent":"innerText"];if(previousTextContent.match(/^(?:…+|\.\.+)[ ]?[0-9]+.*?[ ]?(?:…+|\.\.+)/)){this._currentTarget.lastChild[CPANEL.has_text_content?"textContent":"innerText"]=textContent;set_text_content=1}}if(!set_text_content){var msgDiv=document.createElement("div");msgDiv[CPANEL.has_text_content?"textContent":"innerText"]=textContent;if(msg.source){if(msg.type==="error"||textContent.match(/^ERROR:/)){msgDiv.className="error_source_remote"}else if(msg.type==="warn"||textContent.match(/warn \[[^\]]*\]/)){msgDiv.className="warn_source_remote"}else{msgDiv.className="source_remote"}}else{if(msg.type==="warn"){msgDiv.className="warn"}else if(msg.type==="error"){msgDiv.className="error"}else if(msg.type==="failed"){msgDiv.className="failed"}else if(msg.type==="success"){msgDiv.className="success"}}this._currentTarget.appendChild(msgDiv)}}}else if(msg.type==="modulestatus"){var moduleStatusDiv=document.createElement("div");moduleStatusDiv.className="modulestatus modulestatus_"+msg_contents.status;var moduleDiv=document.createElement("div");moduleDiv.className="module";moduleDiv[CPANEL.has_text_content?"textContent":"innerText"]=msg_contents.module;var moduleStatusContentsDiv=document.createElement("div");moduleStatusContentsDiv.className="modulestatus_contents";moduleStatusContentsDiv[CPANEL.has_text_content?"textContent":"innerText"]=msg.contents.statusmsg||"";moduleStatusDiv.appendChild(moduleDiv);moduleStatusDiv.appendChild(moduleStatusContentsDiv);this._currentTarget.appendChild(moduleStatusDiv)}else if(msg.type==="control"){if(msg_contents.action==="percentage"){var pct=parseInt(msg_contents.percentage,10);this._tailWindowUI.setProgressBarPercentage(pct);if(this._queueWindow){this._queueWindow.setItemPercentage(logfile,pct)}}else if(msg_contents.action==="summary"){for(var item_type in item_types){var items=msg_contents[item_type];if(items){for(var i=0;i<items.length;i++){var module=items[i][0][0];var func=items[i][0][1];var line=items[i][0][2];var selfmsg=items[i][1];var action_url=items[i][2];var displayDiv=document.createElement("div");displayDiv.className="summarymsg "+item_types[item_type].itemclass;displayDiv[CPANEL.has_text_content?"textContent":"innerText"]=LOCALE.maketext(item_types[item_type].maketext_string,selfmsg,module,func,line);this._summaryEl.appendChild(displayDiv);if(action_url){displayDiv.innerHTML+=" ";var link=document.createElement("a");link.href=".."+action_url[1]+"?"+CPANEL.util.make_query_string(action_url[2]);link.innerHTML=action_url[0];link.target="_blank";displayDiv.appendChild(link)}}}}if(!this._isCaughtUp){this._isCaughtUp=1;was_at_end=1}}else if(msg_contents.action==="start-item"){var item=msg_contents.item;var item_name=msg_contents.item_name;var transferItemDiv=document.createElement("div");transferItemDiv.className="transfer_item";transferItemDiv[CPANEL.has_text_content?"textContent":"innerText"]=LOCALE.maketext("[_1]: [_2][comment,## no extract maketext (will be done via task 32670)]",item_name,item);this._summaryEl.appendChild(transferItemDiv)}else{console.log(msg)}}else{console.log(msg)}if(was_at_end){this._realTargetEl.scrollTop=this._realTargetEl.scrollHeight}}});window.TransferLogRender=TransferLogRender})(window);(function(window){"use strict";var YAHOO=window.YAHOO;var LogTail=window.LogTail;var TransferLogTail=function(transferSessionId,tail_name,masterErrorProcessorObj){TransferLogTail.superclass.constructor.call(this,"transfers",transferSessionId,tail_name,masterErrorProcessorObj)};YAHOO.lang.extend(TransferLogTail,LogTail);window.TransferLogTail=TransferLogTail})(window);(function(window){"use strict";var YAHOO=window.YAHOO;var DOM=window.DOM;var EVENT=window.EVENT;var ENABLE_SUBITEMS=0;var ITEM_TYPES={failure:{className:"subitem_status",maketext_string:"[_1]"},warnings:{className:"warningmsg",maketext_string:"[quant,_1,warning,warnings]"},skipped_items:{className:"warningmsg",maketext_string:"[quant,_1,skipped item,skipped items]"},dangerous_items:{className:"errormsg",maketext_string:"[quant,_1,dangerous item,dangerous items]"},altered_items:{className:"warningmsg",maketext_string:"[quant,_1,altered item,altered items]"}};var TransferMasterLogProcessor=function(transfer_session_id,sessionUIObj,masterErrorProcessorObj){this._queue_windows={};this._logfiles={};this._childTailObj=new TransferLogTail(transfer_session_id,"child",masterErrorProcessorObj);this._sessionUIObj=sessionUIObj;this._sessionState="UNKNOWN";this._transfer_session_id=transfer_session_id};YAHOO.lang.augmentObject(TransferMasterLogProcessor.prototype,{getTransferSessionId:function(){return this._transfer_session_id},getSessionState:function(){return this._sessionState},setSessionState:function(newState){this._sessionState=newState;this._sessionUIObj.setUIState(newState);return 1},renderMessage:function(msg){if(msg.type=="control"){if(msg.contents.action==="process-item"){this._start_item_tail(msg.contents)}else if(msg.contents.action==="initiator"){}else if(msg.contents.action==="start"){}else if(msg.contents.action==="remotehost"){this._sessionUIObj.set_source(msg.contents.msg)}else if(msg.contents.action==="version"){}else if(msg.contents.action==="pause"){this.setSessionState("PAUSED")}else if(msg.contents.action==="pausing"){this.setSessionState("PAUSING")}else if(msg.contents.action==="aborting"){this.setSessionState("ABORTING")}else if(msg.contents.action==="resume"){this.setSessionState("RUNNING")}else if(msg.contents.action==="child-failed"){}else if(msg.contents.action==="complete"||msg.contents.action==="abort"||msg.contents.action==="fail"){this._complete_queue(msg.contents);if(!msg.contents.child_number){if(msg.contents.action==="complete"){this.setSessionState("COMPLETED")}else if(msg.contents.action==="abort"){this.setSessionState("ABORTED")}else{this.setSessionState("FAILED")}}}else if(msg.contents.action==="queue_count"){this._setup_queue(msg.contents)}else if(msg.contents.action==="queue_size"){this._track_queue_size(msg.contents)}else if(msg.contents.action==="start-item"){this._start_item(msg.contents)}else if(msg.contents.action==="success-item"||msg.contents.action==="warning-item"||msg.contents.action==="failed-item"){this._finish_item(msg.contents.action,msg.contents)}else{console.log("Unhandled message");console.log(msg.contents)}}},_getQueueTailWindow:function(queue,windownum){if(!this._queue_windows[queue]){alert("Message out of order for queue: "+queue);console.trace();return}if(!this._queue_windows[queue].tail_windows["w_"+windownum]){this._queue_windows[queue].tail_windows["w_"+windownum]={logFile:null,ui:new TransferTailWindowUI(queue,windownum,this._sessionUIObj)};this._queue_windows[queue].ui.addWindow(this._queue_windows[queue].tail_windows["w_"+windownum].ui.containerElement);this._queue_windows[queue].tail_windows["w_"+windownum].ui.render()}return this._queue_windows[queue].tail_windows["w_"+windownum]},_start_item_tail:function(item_message){var logfile=item_message.msg;var queue=item_message.queue;var tail_window=this._getQueueTailWindow(queue,item_message.child_number);if(tail_window.logFile){this._childTailObj.delLog(tail_window.logFile)}this._logfiles[logfile]={renderer:new TransferLogRender(tail_window,this._queue_windows[queue])};if(item_message.local_item&&item_message.local_item!==item_message.item){tail_window.ui.set_item(LOCALE.maketext("[_1]: “[_2]” → “[_3]”",item_message.item_name,item_message.item,item_message.local_item))}else{tail_window.ui.set_item(LOCALE.maketext("[_1]: “[_2]”",item_message.item_name,item_message.item))}tail_window.ui.setProgressBarPercentage(0);tail_window.logFile=logfile;if(this.getSessionState()==="PAUSED"||this.getSessionState()==="ABORTED"){this._sessionUIObj._hide_spinners()}this._childTailObj.addLog(logfile,this._logfiles[logfile].renderer.renderMessage.bind(this._logfiles[logfile].renderer))},_setup_queue:function(item_message){var itemcount=parseInt(item_message.msg,10);var queue=item_message.queue;this._setup_queue_window_group(queue,itemcount)},_track_queue_size:function(item_message){var size=parseInt(item_message.msg,10);var queue=item_message.queue;this._queue_windows[queue].relative_item_size={completed:0,total:size}},_setup_queue_window_group:function(queue,itemcount){if(this._queue_windows[queue]){return}this._queue_windows[queue]={tail_windows:{},items:{},itemcount:itemcount,itemstatus:{success:0,warnings:0,failed:0},processedcount:0,relative_item_size:{completed:0,total:0},ui:new TransferQueueWindowUI(queue,this._sessionUIObj)};var self=this;this._queue_windows[queue].setItemPercentage=function(logfile,pct){self._update_progress(queue,logfile,pct)}},_update_progress:function(queue,logfile,pct){var pctQueue;var queue_window=this._queue_windows[queue];if(!queue_window.items[logfile]){return}var previous_percent=queue_window.items[logfile].percent;var size=queue_window.items[logfile].size;var newly_completed_percent=pct-previous_percent;var additional_relative_size_completed=newly_completed_percent/100*size;queue_window.items[logfile].percent=pct;queue_window.items[logfile].completed+=additional_relative_size_completed;queue_window.relative_item_size.completed+=additional_relative_size_completed;if(pct>=99.9999){var epsilon=0;if(queue_window.items[logfile].completed>size){epsilon=queue_window.items[logfile].completed-size}queue_window.relative_item_size.completed-=epsilon;delete queue_window.items[logfile]}if(Math.abs(queue_window.relative_item_size.completed-queue_window.relative_item_size.total)<1e-4){pctQueue=1}else{pctQueue=queue_window.relative_item_size.completed/queue_window.relative_item_size.total}queue_window.ui.setProgressBarPercentage(parseInt(pctQueue*100,10))},_start_item:function(item_message){var queue=item_message.queue;var queue_window=this._queue_windows[queue];var this_message=item_message.msg;var size=parseInt(this_message.size,10);queue_window.items[item_message.logfile]={size:size,completed:0,percent:0}},_finish_item:function(item_type,item_message){var queue=item_message.queue;var queue_window=this._queue_windows[queue];var this_message=item_message.msg;var was_at_end=queue_window.ui.outputEl.scrollTop+queue_window.ui.outputEl.offsetHeight+1>=queue_window.ui.outputEl.scrollHeight||queue_window.ui.outputEl.scrollHeight<=queue_window.ui.outputEl.offsetHeight?1:0;queue_window.processedcount++;if(queue==="RESTORE"&&queue_window.processedcount>=queue_window.itemcount-1){this._sessionUIObj.hideStateButton()}this._update_progress(queue,item_message.logfile,100);var report_item_in_summary=0;var div_html;var itemClass;var fallback_msg;if(item_type==="success-item"){fallback_msg=LOCALE.maketext("Success");itemClass="okmsg";this._queue_windows[queue]["itemstatus"]["success"]++}else if(item_type==="warning-item"){fallback_msg=LOCALE.maketext("Warnings");itemClass="warningmsg";report_item_in_summary=1;this._queue_windows[queue]["itemstatus"]["warnings"]++}else{fallback_msg=LOCALE.maketext("Failed");itemClass="errormsg";report_item_in_summary=1;this._queue_windows[queue]["itemstatus"]["failed"]++}var summary_msg=this_message.failure||this_message.message||fallback_msg;if(item_message.local_item&&item_message.local_item!==item_message.item){div_html=LOCALE.maketext("[_1] “[_2]” → “[_3]”: [_4][comment,## no extract maketext (will be done via task 32670)]",item_message.item_name,item_message.item,item_message.local_item,summary_msg)}else{div_html=LOCALE.maketext("[_1] “[_2]”: [_3][comment,## no extract maketext (will be done via task 32670)]",item_message.item_name,item_message.item,summary_msg)}var link;var statusDiv=document.createElement("div");if(item_message.logfile){link=this._create_log_link(queue,div_html,this._transfer_session_id,item_message.logfile);statusDiv.appendChild(link)}else{statusDiv[CPANEL.has_text_content?"textContent":"innerText"]=div_html}statusDiv.className=itemClass;queue_window.ui.outputEl.appendChild(statusDiv);var item;if(ENABLE_SUBITEMS){for(item in this_message){if(ITEM_TYPES[item]&&this_message[item]){var newDiv=document.createElement("div");newDiv[CPANEL.has_text_content?"textContent":"innerText"]=LOCALE.maketext(ITEM_TYPES[item].maketext_string,this_message[item]);newDiv.className=ITEM_TYPES[item].className+" subitem_status";queue_window.ui.outputEl.appendChild(newDiv)}}}if(report_item_in_summary){var report=DOM.get("report");var actual_items=this_message.contents;var masterDiv=document.createElement("div");masterDiv.className=itemClass;if(item_message.local_item&&item_message.local_item!==item_message.item){div_html=LOCALE.maketext("[_1]: [_2] “[_3]” → “[_4]”: [_5][comment,## no extract maketext (will be done via task 32670)]",queue,item_message.item_name,item_message.item,item_message.local_item,summary_msg)}else{div_html=LOCALE.maketext("[_1]: [_2] “[_3]”: [_4][comment,## no extract maketext (will be done via task 32670)]",queue,item_message.item_name,item_message.item,summary_msg)}if(item_message.logfile){link=this._create_log_link(queue,div_html,this._transfer_session_id,item_message.logfile);masterDiv.appendChild(link)}else{masterDiv[CPANEL.has_text_content?"textContent":"innerText"]=div_html}report.appendChild(masterDiv);var logEntryDiv=document.createElement("div");report.appendChild(logEntryDiv);for(item in actual_items){if(ITEM_TYPES[item]&&actual_items[item]&&actual_items[item].length){for(var logindex=0;logindex<actual_items[item].length;logindex++){var log_message_to_display=actual_items[item][logindex];var log_text=log_message_to_display[1];if(!log_text&&log_message_to_display.msg){log_text=log_message_to_display.msg[0]}var msg_div=document.createElement("div");msg_div.className=ITEM_TYPES[item].className+" subitem_status";msg_div[CPANEL.has_text_content?"textContent":"innerText"]=log_text;logEntryDiv.appendChild(msg_div);var action_url=log_message_to_display[2];if(action_url){msg_div.innerHTML+=" ";link=document.createElement("a");link.href=".."+action_url[1]+"?"+CPANEL.util.make_query_string(action_url[2]);link[CPANEL.has_text_content?"textContent":"innerText"]=action_url[0];link.target="_blank";msg_div.appendChild(link)}}}}}if(was_at_end){queue_window.ui.outputEl.scrollTop=queue_window.ui.outputEl.scrollHeight}},_addLogReviewAction:function(el,logfile){EVENT.on(el,"click",(function(){window.open("render_transfer_log?transfer_session_id="+encodeURIComponent(this._transfer_session_id)+"&log_file="+encodeURIComponent(logfile))}))},_create_log_link:function(queue,text_content,transfer_session_id,logfile){var link=document.createElement("a");link.href="render_transfer_log?"+CPANEL.util.make_query_string({transfer_session_id:transfer_session_id,log_file:logfile});link[CPANEL.has_text_content?"textContent":"innerText"]=text_content;link.target="_blank";if(queue==="TRANSFER"){link.title=LOCALE.maketext("View this transfer’s log.");link.id="transfer_log_for_"+transfer_session_id}else{link.title=LOCALE.maketext("View this restoration’s log.");link.id="restoration_log_for_"+transfer_session_id}var spacer=document.createElement("span");spacer[CPANEL.has_text_content?"textContent":"innerText"]=" ";link.appendChild(spacer);var icon=document.createElement("span");icon.className="glyphicon glyphicon-expand";link.appendChild(icon);return link},_completeSummary:function(){var queue;var queues=[];for(queue in this._queue_windows){if(this._queue_windows.hasOwnProperty(queue)){queues.push(queue)}}queues=queues.sort();for(var i=0;i<queues.length;i++){queue=queues[i];var itemstatus=this._queue_windows[queue]["itemstatus"];var summaryDiv=document.createElement("h5");summaryDiv.className="summary_of_summary";summaryDiv[CPANEL.has_text_content?"textContent":"innerText"]=LOCALE.maketext("[_1]: [_2] completed, [_3] had warnings, and [_4] failed.[comment,## no extract maketext (will be done via task 32670)]",queue,itemstatus["success"]+itemstatus["warnings"],itemstatus["warnings"],itemstatus["failed"]);var report=DOM.get("report");if(report.firstChild){report.insertBefore(summaryDiv,report.firstChild)}else{report.appendChild(summaryDiv)}}},_complete_queue:function(item_message){if(item_message.child_number){var tail_window=this._getQueueTailWindow(item_message.queue,item_message.child_number);if(tail_window){if(tail_window.logFile){this._childTailObj.delLog(tail_window.logFile)}tail_window.ui.set_item(LOCALE.maketext(item_message.action));CPANEL.animate.slide_up(tail_window.ui.containerElement)}}else{this._completeSummary()}}});window.TransferMasterLogProcessor=TransferMasterLogProcessor})(window);(function(window){"use strict";var YAHOO=window.YAHOO;var TransferMasterErrorLogProcessor=function(transfer_session_id,sessionUIObj,errorContainer,errorMessage,errorContent){this._sessionUIObj=sessionUIObj;this._transfer_session_id=transfer_session_id;this._target=errorContainer;this._errors=[];this._errorMessage=errorMessage;this._errorContent=errorContent;this._error_message_template=Handlebars.compile(errorMessage.innerHTML);this._error_content_template=Handlebars.compile(errorContent.innerHTML)};YAHOO.lang.augmentObject(TransferMasterErrorLogProcessor.prototype,{renderMessage:function(msg){this._errors.push(msg);if(DOM.hasClass(this._target,"hidden")){DOM.removeClass(this._target,"hidden")}this._errorMessage.innerHTML=this._error_message_template({error_message:LOCALE.maketext("There [numerate,_1,is,are] [quant,_1,error,errors].",this._errors.length)});this._errorContent.innerHTML=this._error_content_template({errors:this._errors})}});window.TransferMasterErrorLogProcessor=TransferMasterErrorLogProcessor})(window);(function(window){"use strict";var YAHOO=window.YAHOO;var PROGRESS_BAR_HEIGHT=14;var TransferTailWindowUI=function(queue,windownum,sessionUIObj){var ttwui=this;this._queue=queue;this._windownum=windownum;this._sessionUIObj=sessionUIObj;var headerContainerDiv=document.createElement("div");headerContainerDiv.id="queue_"+queue+"_"+windownum+"_header_container";headerContainerDiv.className=this.windowHeaderContainerClassName;var headerDiv=document.createElement("div");headerDiv.id="queue_"+queue+"_"+windownum+"_header";headerDiv.className=this.windowHeaderClassName;headerDiv.innerHTML="queue_"+queue+"_"+windownum;var spinnerDiv=document.createElement("div");spinnerDiv.id="queue_"+queue+"_"+windownum+"_spinner";spinnerDiv.className=this.windowSpinnerClassName;spinnerDiv.innerHTML=this._sessionUIObj.get_spinner_html();headerContainerDiv.appendChild(headerDiv);headerContainerDiv.appendChild(spinnerDiv);var bodyDiv=document.createElement("div");bodyDiv.id="queue_"+queue+"_"+windownum;bodyDiv.className=this.windowClassName;var progressDiv=document.createElement("div");progressDiv.id="queue_"+queue+"_"+windownum+"_progress";progressDiv.className=this.progressContainerClassName;var containerDiv=document.createElement("div");containerDiv.id="queue_"+queue+"_"+windownum+"_container";containerDiv.className=this.windowContainerClassName;containerDiv.appendChild(headerContainerDiv);containerDiv.appendChild(bodyDiv);containerDiv.appendChild(progressDiv);this.containerElement=containerDiv;this.bodyElement=bodyDiv;this._headerElement=headerDiv;this._progressElement=progressDiv;this.spinner=spinnerDiv;if(!YAHOO.env.ua.ie||YAHOO.env.ua.ie>=9){this._progressBar=new YAHOO.widget.ProgressBar({width:parseInt(bodyDiv.offsetWidth),anim:ttwui._sessionUIObj.get_should_animate(),height:PROGRESS_BAR_HEIGHT}).render(progressDiv);YAHOO.util.Event.on(window,"resize",this.render,this,true)}};YAHOO.lang.augmentObject(TransferTailWindowUI.prototype,{progressContainerClassName:"window_progress",windowHeaderClassName:"window_header",windowHeaderContainerClassName:"window_header_container",windowContainerClassName:"window_container",windowSpinnerClassName:"window_spinner",windowClassName:"window",setProgressBarPercentage:function(percentage){if(this._progressBar){var original_anim;if(percentage===0){original_anim=this._progressBar.get("anim");this._progressBar.set("anim",null)}this._progressBar.set("value",percentage);if(original_anim){this._progressBar.set("anim",original_anim)}}},set_item:function(item){this.bodyElement.innerHTML="";this._headerElement.innerHTML=item.html_encode();this.spinner.style.display=this._sessionUIObj.get_should_animate()?"":"none"},render:function(){if(this._progressBar){this._progressBar.set("width",parseInt(this.bodyElement.offsetWidth))}}});window.TransferTailWindowUI=TransferTailWindowUI})(window);(function(window){"use strict";var YAHOO=window.YAHOO;var TransferQueueWindowUI=function(queue,sessionUIObj){var self=this;this._sessionUIObj=sessionUIObj;this._queue=queue;var queueContainerDiv=document.createElement("div");queueContainerDiv.id="queue_"+queue+"_container";queueContainerDiv.className="queue_container col-md-6";sessionUIObj.get_queue_el().appendChild(queueContainerDiv);var queuePanelDiv=document.createElement("div");queuePanelDiv.className="panel panel-default";queueContainerDiv.appendChild(queuePanelDiv);var queueDiv=document.createElement("div");queueDiv.id="queue_"+queue;queueDiv.className="window_group panel-heading";queuePanelDiv.appendChild(queueDiv);var queueOutputDiv=document.createElement("div");queueOutputDiv.id="queue_"+queue+"_output";queueOutputDiv.className="queue_output panel-body";queuePanelDiv.appendChild(queueOutputDiv);var divHeader=document.createElement("div");divHeader.id="queue_"+queue+"_header";divHeader.className="queue_header";var divTitle=document.createElement("div");divTitle.innerHTML=queue;divTitle.id="queue_"+queue+"_title";divTitle.className="queue_title";divHeader.appendChild(divTitle);var new_percentage_divTxt=document.createElement("div");new_percentage_divTxt.id="queue_"+queue+"_progress_text";new_percentage_divTxt.className="queue_percentage";new_percentage_divTxt.innerHTML=LOCALE.maketext("[_1]%",0);divHeader.appendChild(new_percentage_divTxt);var progressContainerDiv=document.createElement("div");progressContainerDiv.id="queue_"+queue+"_progress_container";progressContainerDiv.className="queue_progress_container";var progressBarDiv=document.createElement("div");progressBarDiv.id="queue_"+queue+"_progress";progressBarDiv.className="queue_progress";progressContainerDiv.appendChild(progressBarDiv);queueDiv.appendChild(divHeader);queueDiv.appendChild(progressContainerDiv);this._progressBar=new YAHOO.widget.ProgressBar({width:parseInt(progressContainerDiv.offsetWidth),height:14,anim:this._sessionUIObj.get_should_animate()}).render(progressBarDiv);this.render=function(){self._progressBar.set("width",parseInt(progressContainerDiv.offsetWidth))};this._progressTextEl=new_percentage_divTxt;this.outputEl=queueOutputDiv;this.windowGroupEl=queueDiv;this.windowCount=0;YAHOO.util.Event.addListener(window,"resize",this.render)};YAHOO.lang.augmentObject(TransferQueueWindowUI.prototype,{addWindow:function(windowEl){this.windowCount++;this.windowGroupEl.appendChild(windowEl)},setProgressBarPercentage:function(percentage){this._progressBar.set("value",percentage);this._progressTextEl.innerHTML=percentage+"%"},queue:function(){return this._queue}});window.TransferQueueWindowUI=TransferQueueWindowUI})(window);(function(window){"use strict";var YAHOO=window.YAHOO;var TransferSessionUI=function(queuesEl,pauseButtonEl,abortButtonEl,stateEl,summaryHeaderEl,spinnerHTML){this._queuesEl=queuesEl;this._pauseButtonEl=pauseButtonEl;this._abortButtonEl=abortButtonEl;this._stateEl=stateEl;this._summaryHeaderEl=summaryHeaderEl;this._spinnerHTML=spinnerHTML;this._progressBarAnimate=1};YAHOO.lang.augmentObject(TransferSessionUI.prototype,{get_spinner_html:function(){return this._spinnerHTML},set_spinner_html:function(html){this._spinnerHTML=html;return 1},get_should_animate:function(){return this._progressBarAnimate},set_should_animate:function(shouldAnim){this._progressBarAnimate=shouldAnim;return 1},set_app_name_element:function(el){this._app_name_element=el;return 1},get_app_name_element:function(){return this._app_name_element},set_source:function(source){this._summaryHeaderEl[CPANEL.has_text_content?"textContent":"innerText"]=source?LOCALE.maketext("Transfer from “[_1]” Summary",source):LOCALE.maketext("Local Restore Summary")},get_queue_el:function(){return this._queuesEl},_show_spinners:function(){var spinnerEls=YAHOO.util.Dom.getElementsByClassName("spinner");for(var i=0;i<spinnerEls.length;i++){spinnerEls[i].style.display=""}},_hide_spinners:function(){var spinnerEls=YAHOO.util.Dom.getElementsByClassName("spinner");for(var i=0;i<spinnerEls.length;i++){spinnerEls[i].style.display="none"}},_showState_COMPLETED:function(){this._hide_spinners();this._pauseButtonEl.style.display="none";this._abortButtonEl.style.display="none";this._stateEl.innerHTML=LOCALE.maketext("Completed")},_showState_FAILED:function(){this._hide_spinners();this._pauseButtonEl.style.display="none";this._abortButtonEl.style.display="none";this._stateEl.innerHTML=LOCALE.maketext("Failed")},_showState_RUNNING:function(){this.set_spinner_html(this.get_spinner_html());this._show_spinners();this._pauseButtonEl.style.display="";this._pauseButtonEl.disabled=false;this._abortButtonEl.style.display="";this._abortButtonEl.disabled=false;this._pauseButtonEl.getElementsByTagName("div")[0].innerHTML=LOCALE.maketext("Pause Queue");this._abortButtonEl.getElementsByTagName("div")[0].innerHTML=LOCALE.maketext("Abort");this._stateEl.innerHTML=LOCALE.maketext("Processing")},_showState_ABORTED:function(){this._hide_spinners();this._pauseButtonEl.style.display="none";this._abortButtonEl.style.display="none";this._stateEl.innerHTML=LOCALE.maketext("Aborted")},_showState_ABORTING:function(){this.set_spinner_html(this.get_spinner_html());this._show_spinners();this._abortButtonEl.getElementsByTagName("div")[0].innerHTML="<i class='glyphicon glyphicon-refresh animate-spin'></i> "+LOCALE.maketext("Aborting …");this._abortButtonEl.disabled=true;this._pauseButtonEl.style.display="none";this._abortButtonEl.style.display="";this._stateEl.innerHTML=LOCALE.maketext("Aborting …")},_showState_PAUSED:function(){this._hide_spinners();this._pauseButtonEl.getElementsByTagName("div")[0].innerHTML=LOCALE.maketext("Resume Queue");this._abortButtonEl.getElementsByTagName("div")[0].innerHTML=LOCALE.maketext("Abort");this._pauseButtonEl.disabled=false;this._abortButtonEl.disabled=false;this._pauseButtonEl.style.display="";this._abortButtonEl.style.display="";this._stateEl.innerHTML=LOCALE.maketext("Paused")},_showState_PAUSING:function(){this.set_spinner_html(this.get_spinner_html());this._show_spinners();this._pauseButtonEl.getElementsByTagName("div")[0].innerHTML="<i class='glyphicon glyphicon-refresh animate-spin'></i> "+LOCALE.maketext("Pausing …");this._pauseButtonEl.disabled=true;this._pauseButtonEl.style.display="";this._abortButtonEl.style.display="none";this._stateEl.innerHTML=LOCALE.maketext("Pausing")},_showState_PENDING:function(){this._pauseButtonEl.style.display="none";this._abortButtonEl.style.display="none";this._stateEl.innerHTML=LOCALE.maketext("Pending")},hideStateButton:function(){this._pauseButtonEl.disabled=true;this._abortButtonEl.disabled=true;this._pauseButtonEl.style.display="none";this._abortButtonEl.style.display="none"},setUIState:function(state){if(state==="PENDING"){this._showState_PENDING()}else if(state==="RUNNING"){this._showState_RUNNING()}else if(state==="PAUSED"){this._showState_PAUSED()}else if(state==="ABORTED"){this._showState_ABORTED()}else if(state==="PAUSING"){this._showState_PAUSING()}else if(state==="ABORTING"){this._showState_ABORTING()}else if(state==="COMPLETED"){this._showState_COMPLETED()}else if(state==="FAILED"){this._showState_FAILED()}else{alert("TransferSessionUI cannot display state: "+state)}}});window.TransferSessionUI=TransferSessionUI})(window);(function(window){"use strict";var YAHOO=window.YAHOO;var TransferSessionAlertHandler=function(){this.alert=function(header,body){return alert(body)};this.confirm=function(header,body,confirmFunction,confirmFunctionContext){if(confirm(body)){confirmFunction.call(confirmFunctionContext)}}};var TransferSession=function(opts){this._action=opts.action;this._state=opts.state;this._appNameEl=opts.appNameEl;this._windowsEl=opts.windowsEl;this._pauseEl=opts.pauseEl;this._abortEl=opts.abortEl;this._stateEl=opts.stateEl;this._summaryHeaderEl=opts.summaryHeaderEl;this._spinnerHTML=opts.spinnerHTML;this._transfer_session_id=opts.transfer_session_id;this._errorEl=opts.errorEl;this._errorMessage=opts.errorMessage;this._errorContent=opts.errorContent;this._masterLogTailRunning=0;this._sessionUIObj=new TransferSessionUI(this._windowsEl,this._pauseEl,this._abortEl,this._stateEl,this._summaryHeaderEl,this._spinnerHTML);this._sessionUIObj.set_spinner_html(this._spinnerHTML);this._sessionUIObj.set_app_name_element(this._appNameEl);this._masterErrorProcessorObj=new TransferMasterErrorLogProcessor(this._transfer_session_id,this._sessionUIObj,this._errorEl,this._errorMessage,this._errorContent);this._masterProcessorObj=new TransferMasterLogProcessor(this._transfer_session_id,this._sessionUIObj,this._masterErrorProcessorObj);this._set_session_state(this._state||"PENDING");this._masterLogTail=new TransferLogTail(this._masterProcessorObj.getTransferSessionId(),"master",this._masterErrorProcessorObj)};YAHOO.lang.augmentObject(TransferSession.prototype,{_start_log_tail:function(progressBarAnimate){this._sessionUIObj.set_should_animate(progressBarAnimate);if(this._masterLogTailRunning===0){this._masterLogTailRunning=1;this._masterLogTail.addLog("master.log",this._masterProcessorObj.renderMessage.bind(this._masterProcessorObj));this._masterLogTail.addRawLog("master.error_log",this._masterErrorProcessorObj.renderMessage.bind(this._masterErrorProcessorObj))}},_set_session_state:function(state){var current_state=this._masterProcessorObj.getSessionState();this._masterProcessorObj.setSessionState(state);this._session_state_changed(state,current_state)},_session_state_changed:function(state,oldState){var context,listener;for(var i=0;i<this.state_change_listeners.length;i++){context=this.state_change_listeners[i].context;listener=this.state_change_listeners[i].listener;listener.call(context,state,oldState)}},_confirm_abort:function(){var self=this;var header=LOCALE.maketext("Abort Session Processing");var body=LOCALE.maketext("The system will abort any transfer processes as soon as possible. In order to prevent data loss, the system will complete ongoing restore operations before the entire session aborts.");body+="<hr>"+LOCALE.maketext("Are you sure you want to abort this transfer?");window.AlertHandler.confirm(header,body,(function(){self.abort_session.call(self)}),this)},_confirm_pause:function(){var self=this;var header=LOCALE.maketext("Pausing queue processing …");var body=LOCALE.maketext("The system will not add new items to the queue until you choose to resume. In order to prevent data loss, the system will complete ongoing operations.");body+="<hr>"+LOCALE.maketext("Are you sure you want to pause this transfer?");window.AlertHandler.confirm(header,body,(function(){self.pause_session.call(self)}),this)},state_change_listeners:[],add_state_change_listener:function(context,listener){this.state_change_listeners.push({context:context,listener:listener})},start_session:function(){var that=this;CPANEL.api({func:"start_transfer_session",data:{transfer_session_id:this._masterProcessorObj.getTransferSessionId()},callback:{success:function(o){var response=o.cpanel_data;var pid=response.pid;if(pid){that._start_log_tail(true);that._set_session_state("RUNNING")}else{window.AlertHandler.alert(null,LOCALE.maketext("Failed to start transfer."))}},failure:function(o){window.AlertHandler.alert(null,LOCALE.maketext("Failed to start transfer."))}}})},abort_session:function(){var tsession=this;this._set_session_state("ABORTING");CPANEL.api({func:"abort_transfer_session",data:{transfer_session_id:this._masterProcessorObj.getTransferSessionId()},callback:{failure:function(){window.AlertHandler.alert(null,LOCALE.maketext("Failed to abort the session."));tsession._set_session_state("RUNNING")}}})},pause_session:function(){var tsession=this;this._set_session_state("PAUSING");CPANEL.api({func:"pause_transfer_session",data:{transfer_session_id:this._masterProcessorObj.getTransferSessionId()},callback:{failure:function(){window.AlertHandler.alert(null,LOCALE.maketext("Failed to pause the session."));tsession._set_session_state("RUNNING")}}})},state:function(){return this._masterProcessorObj.getSessionState()},init:function(){var that=this;YAHOO.util.Event.on(this._pauseEl,"click",(function(e){var sessionState=that.state();if(sessionState==="RUNNING"){that._confirm_pause()}else if(sessionState==="PAUSED"){that.start_session()}else{window.AlertHandler.alert(null,LOCALE.maketext("There is no handler for [asis,sessionState]: [_1]",sessionState))}}));YAHOO.util.Event.on(this._abortEl,"click",(function(e){var sessionState=that.state();if(sessionState==="RUNNING"||sessionState==="PAUSING"||sessionState==="PAUSED"){that._confirm_abort()}else{alert(LOCALE.maketext("There is no handler for [asis,sessionState]: [_1]",sessionState))}}));var sessionState=this.state();var finished=0;var action=that._action;if(sessionState==="COMPLETED"||sessionState==="FAILED"||sessionState==="ABORTED"){this._start_log_tail(false);finished=1}else if(sessionState==="ABORTING"){this._start_log_tail(true);this._set_session_state("ABORTING")}else if(sessionState==="PAUSING"){this._start_log_tail(true);this._set_session_state("PAUSING")}else if(sessionState==="PAUSED"){if(action==="resume"){this.start_session()}else{this._start_log_tail(false);this._set_session_state("PAUSED")}}else if(action==="start"||action==="resume"){this.start_session()}else{this._start_log_tail(true)}if(!finished&&action==="abort"){this._confirm_abort()}}});window.TransferSession=TransferSession;if(!window.AlertHandler){window.AlertHandler=new TransferSessionAlertHandler}})(window);
Back to Directory File Manager