diff --git a/amd/build/vplutil.min.js b/amd/build/vplutil.min.js index 3bc90be94bca8874a51d34d100de834cf3c60954..78d50ff6b0bb72222af938a27515916e3aac1225 100644 --- a/amd/build/vplutil.min.js +++ b/amd/build/vplutil.min.js @@ -1 +1 @@ -define(["jquery","jqueryui","core/log"],function(a,b,c){var d;if("undefined"!=typeof e)return e;var e={};e.doNothing=function(){},e.returnFalse=function(){return!1},e.returnTrue=function(){return!0};var f=!1;return e.log=function(a,b){(f||b)&&c.debug(a)},e.scrollBarWidth=function(){var b,c,d;return b=a('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo("body"),c=b.children(),d=c.innerWidth()-c.height(99).innerWidth(),b.remove(),d},e.sanitizeHTML=function(b){return"undefined"==typeof b||""==b.replace("/^s+|s+$/g","")?"":a("<div>"+b+"</div>").html()},e.sanitizeText=function(a){return"undefined"==typeof a||""==a.replace("/^s+|s+$/g","")?"":a.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")},e.setProtocol=function(a){var b;switch(a.wsProtocol){case"always_use_wss":b=!0;break;case"always_use_ws":b=!1;break;default:b="https:"==window.location.protocol}var c=(b?"wss://":"ws://")+a.server;a.secure=b,a.portToUse=b?a.securePort:a.port,c+=":"+a.portToUse+"/",a.monitorURL=c+a.monitorPath,a.executionURL=c+a.executionPath},e.ArrayBuffer2String=function(a){for(var b=new Uint8Array(a),c=[],d=32e3,e=0,f=b.length;e<f;e+=d)c.push(String.fromCharCode.apply(String,b.subarray(e,Math.min(e+d,f))));return c.join("")},e.String2ArrayBuffer=function(a){for(var b=a.length,c=new ArrayBuffer(b),d=new Uint8Array(c),e=0;e<b;e++)d[e]=a.charCodeAt(e);return c},function(){var a=0;e.getUniqueId=function(){return a++}}(),function(){var a=/\.([^.]*)$/,b=/^(gif|jpg|jpeg|png|ico)$/i,c=/^(zip|jar|pdf|tar|bin|7z|arj|deb|gzip|rar|rpm|dat|db|rtf|doc|docx|odt)$/i,d=/^blockly[0123]?$/;e.fileExtension=function(b){var c=a.exec(b);return null!==c?c[1]:""},e.isImage=function(a){return b.test(e.fileExtension(a))},e.isBinary=function(a){return e.isImage(a)||c.test(e.fileExtension(a))},e.isBlockly=function(a){return d.test(e.fileExtension(a))};var f=/[\cA-\cZ]|[:-@]|[{-~]|\\|\[|\]|[\/\^`´]|^\-|^ | $|\.\./;e.validFileName=function(a){return!(a.length<1)&&(!(a.length>128)&&!f.test(a))}}(),e.getCurrentTime=function(){return parseInt((new Date).valueOf()/1e3)},e.encodeBinary=function(a,b){return e.isBinary(a)?btoa(e.ArrayBuffer2String(b)):btoa(unescape(encodeURIComponent(b)))},e.decodeBinary=function(a,b){var c=atob(b);return e.isBinary(a)?e.String2ArrayBuffer(c):decodeURIComponent(escape(c))},e.validPath=function(a){if(a.length>256)return!1;for(var b=a.split("/"),c=0;c<b.length;c++)if(!e.validFileName(b[c]))return!1;return!0},e.getFileName=function(a){var b=a.split("/");return b[b.length-1]},e.dataFromURLData=function(a){return a.substr(a.indexOf(",")+1)},e.readZipFile=function(a,b,c,d){function f(a){if(a>=i||c.isClosed())return void(d&&d());var g,j=h.entries[a],k=j.fileName;if(k.match(/\/$/))f(a+1);else{c.processFile(k);var l="";if(0===j.compressionMethod?l=j.data:8===j.compressionMethod&&(l=JSInflate.inflate(j.data)),g=e.String2ArrayBuffer(l),e.isBinary(k))b({name:k,contents:btoa(l),encoding:1})||(a=i),f(a+1),c.endFile();else{var m=new Blob([g],{type:"text/plain"}),n=new FileReader;n.onload=function(d){b({name:k,contents:d.target.result,encoding:0})||(a=i),f(a+1),c.endFile()},n.readAsText(m)}}}if("undefined"==typeof JUnzip)return void e.loadScript(["../editor/zip/inflate.js","../editor/zip/unzip.js"],function(){e.readZipFile(a,b,c,d)});var g=e.ArrayBuffer2String(a),h=new JUnzip(g);if(h.isZipFile()){h.readEntries();var i=h.entries.length;f(0)}},e.readSelectedFiles=function(a,b,c){function d(c){if(!(c>=a.length||f.isClosed())){var g=a[c];f.processFile(g.name);var h=e.isBinary(g.name),i=new FileReader,j=e.fileExtension(g.name).toLowerCase();i.onload=function(a){var i=!1;if(h)if("zip"==j)try{e.readZipFile(a.target.result,b,f,function(){d(c+1)})}catch(k){e.showErrorMessage(k+" : "+g.name)}else{var l=e.dataFromURLData(a.target.result);i=b({name:g.name,contents:l,encoding:1})}else i=b({name:g.name,contents:a.target.result,encoding:0});i&&d(c+1),f.endFile()},h?"zip"==j?i.readAsArrayBuffer(g):i.readAsDataURL(g):i.readAsText(g)}}var f=new e.progressBar("import","import"),g=0;c||(c=e.doNothing),f.processFile=function(a){f.setLabel(a),g++},f.endFile=function(){g--,0===g&&(c(),f.close())},d(0)},function(){var a={gif:"image/gif",jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",ico:"image/vnd.microsoft.icon",pdf:"application/pdf"};e.getMIME=function(b){var c=e.fileExtension(b);return c in a?a[c]:"application/octet-stream"},e.getTimeLeft=function(a){var b="",c=60,d=60*c,e=24*d;a<0&&(b+="-",a=-a);var f=parseInt(a/e);a-=f*e,0!==f&&(b+=f+"T");var g=parseInt(a/d);a-=g*d;var h=parseInt(a/c);a-=h*c;var i=parseInt(a);return b+=("00"+g).substr(-2)+":",b+=("00"+h).substr(-2),0===f&&(b+=":"+("00"+i).substr(-2)),b}}(),function(){var a={abap:"abap",abc:"abc",ada:"ada",ads:"ada",adb:"ada",as:"actionscript",as3:"actionscript",asm:"assembly_x86",bash:"sh",bat:"batchfile",c:"c_cpp",C:"c_cpp",cc:"c_cpp",cpp:"c_cpp",hxx:"c_cpp",h:"c_cpp",cases:"cases",cbl:"cobol",cob:"cobol",coffee:"coffee",clj:"clojure",cs:"csharp",css:"css",d:"d",dart:"dart",e:"eiffel",erl:"erlang",hrl:"erlang",f:"fortran",f77:"fortran",go:"go",groovy:"groovy",hs:"haskell",htm:"html",html:"html",hx:"haxe",java:"java",js:"javascript",json:"json",jsp:"jsp",jsx:"jsx",kt:"kotlin",kts:"kotlin",m:"matlab",md:"markdown",less:"less",lisp:"lisp",lsp:"lisp",lua:"lua",mod:"opl",pas:"pascal",p:"pascal",perl:"perl",prl:"perl",php:"php",pro:"prolog",pl:"prolog",py:"python",r:"r",rb:"ruby",ruby:"ruby",sass:"sass",scala:"scala",scm:"scheme",s:"scheme",scss:"scss",sh:"sh",swift:"swift",sql:"sql",svg:"svg",tex:"tex",tcl:"tcl",twig:"twig",v:"verilog",vhd:"vhdl",vhdl:"vhdl",xml:"xml",xsl:"xml",yaml:"yaml"};e.langType=function(b){return b in a?a[b]:"plain_text"}}(),function(){var a={};e.str=function(b){return a[b]?a[b]:"{"+b+"}"},e.setStr=function(b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);e.dialogbaseOptions={autoOpen:!1,width:"auto",closeText:e.str("cancel"),modal:!0,dialogClass:"vpl_ide vpl_ide_dialog"}}}(),function(){var a={},b=20,c=100;e.delay=function(c,d,e,f){"undefined"!=typeof a[c]&&a[c]===!1||clearTimeout(a[c]),a[c]=setTimeout(function(){d(e,f),a[c]=!1},b)},e.longDelay=function(b,d,e,f){"undefined"!=typeof a[b]&&a[b]===!1||clearTimeout(a[b]),a[b]=setTimeout(function(){d(e,f),a[b]=!1},c)}}(),e.iconModified=function(){var a='<span title="'+e.str("modified")+'" class="vpl_ide_charicon">';return a+='<i class="fa fa-star"></i></span> '},e.iconDelete=function(){var a=' <span title="'+e.str("delete")+'" class="vpl_ide_charicon vpl_ide_delicon">';return a+='<i class="fa fa-trash"></i></span> '},e.iconClose=function(){var a=' <span title="'+e.str("closebuttontitle");return a+='" class="vpl_ide_charicon vpl_ide_closeicon"><i class="fa fa-remove"></i></span> '},e.iconRequired=function(){var a=' <span title="'+e.str("required")+'" class="vpl_ide_charicon">';return a+='<i class="fa fa-shield"></i></span> '},e.iconFolder=function(){return'<i class="fa fa-folder-open-o"></i>'},function(){var a={filelist:"folder",filelistclose:"folder-open","new":"file",rename:"pencil","delete":"trash",multidelete:"trash|list",close:"remove",comments:"commenting","import":"upload",print:"print",edit:"edit",undo:"undo",redo:"repeat",select_all:"location-arrow",find:"search",find_replace:"exchange",next:"search-plus",resetfiles:"refresh",correctedfiles:"graduation-cap",download:"download",fullscreen:"expand",regularscreen:"compress",save:"save",sort:"list-ol",run:"rocket",debug:"bug",evaluate:"check-square-o",console:"terminal",about:"question",info:"info-circle",alert:"warning",trash:"trash",retrieve:"download",spinner:"refresh fa-spin",keyboard:"keyboard-o",clipboard:"clipboard",timeleft:"clock-o",copy:"copy",paste:"paste",more:"plus-square",less:"minus-square",resize:"arrows-alt",graphic:"picture-o",send:"send",acetheme:"code|paint-brush",user:"user",fontsize:"text-height"};e.genIcon=function(b,c){if(!a[b])return"";var d="fa fa-";d+=c?c:"lg";for(var e=a[b].split("|"),f="",g=0;g<e.length;g++)f+="<i class='"+d+" fa-"+e[g]+"'></i>";return f}}(),e.setTitleBar=function(b,c,d,f,g){function h(a){var b="<a id='vpl_"+c+"_"+a+"' href='#' title='"+e.str(a)+"'>";return b+=e.genIcon(a,"fw")+"</a>"}var i=a(b).parent().find("span.ui-dialog-title"),j=e.genIcon(d);j+=" <span class='"+c+"-title-buttons'></span>",j+="<span class='"+c+"-title-text'></span>",i.html(j);var k=i.find("span."+c+"-title-buttons"),l=i.find("span."+c+"-title-text");j="";for(var m=0;m<f.length;m++)j+=h(f[m]);k.html(j);for(var n=0;n<g.length;n++){var o=i.find("#vpl_"+c+"_"+f[n]);o.button().click(g[n]),o.css("padding","1px 3px")}return k.on("focus","*",function(){a(this).blur()}),l},e.progressBar=function(b,c,d){var f='<span class="vpl_ide_progressbarlabel"></span>',g='<div class="vpl_ide_progressbaricon">'+e.genIcon("spinner")+"</div>",h=' <div class="vpl_ide_progressbar">'+g+f+"</div>",i='<div class="vpl_ide_dialog" style="display:none;">'+h+"</div>",j=a(i);a("body").append(j);var k=j.find(".vpl_ide_progressbar"),l=k.find(".vpl_ide_progressbarlabel");j.dialog({title:e.str(b),resizable:!1,autoOpen:!1,width:200,height:20,minHeight:20,modal:!0,dialogClass:"vpl_ide vpl_ide_dialog",close:function(a){j&&(d&&a.originalEvent&&d(),d=!1)}}),this.setLabel=function(a,b){j&&(l.text(a),b&&l.html(e.genIcon(b)+" "+l.html()))},this.close=function(){j&&(j.dialog("destroy"),a(j).remove(),j=!1)},this.isClosed=function(){return j===!1};var m=j.siblings().find(".ui-dialog-title");m.html(e.genIcon(b)+" "+m.html()),this.setLabel(e.str(c)),j.dialog("open"),j.dialog("option","height","auto")},e.showMessage=function(b,c){var d=a.extend({},c),f=a('<div class="vpl_ide_dialog"></div>');d||(d={}),d.icon||(d.icon="info"),d.title||(d.title=e.str("warning")),f.html(e.genIcon(d.icon)+' <span class="dmessage">'+b+"</span>"),a("body").append(f);var g={};return d.ok?(g[e.str("ok")]=function(){a(this).dialog("close"),d.ok()},g[e.str("cancel")]=function(){a(this).dialog("close")}):g[e.str("ok")]=function(){a(this).dialog("close")},d.next&&(g[e.str("next")]=function(){a(this).dialog("close"),d.next()}),d.close&&(d.oldClose=d.close),f.dialog(a.extend({},e.dialogbaseOptions,{title:d.title,buttons:g,close:function(){a(this).remove(),d.oldClose&&d.oldClose()}})),f.dialog("open"),f.setMessage=function(b){a(f).find(".dmessage").html(b)},f},e.showErrorMessage=function(b,c){var d=a.extend({},e.dialogbaseOptions,{title:e.str("error"),icon:"alert"});return c&&(d=a.extend(d,c)),e.showMessage(b,d)},e.requestAction=function(b,c,d,g){"undefined"!=typeof e.get_absolute_path()&&(g=e.get_absolute_path()+g);var h=a.Deferred(),i=null,j=!1;""===c&&(c="connecting");var k=new e.progressBar(b,c,function(){4!=i.readyState&&j&&j.abort&&j.abort()});return i=a.ajax({beforeSend:function(a){return j=a,!0},async:!0,type:"POST",url:g+b,data:JSON.stringify(d),contentType:"application/json; charset=utf-8",dataType:"json"}).always(function(){k.close()}).done(function(a){a.success?h.resolve(a.response):h.reject(a.error)}).fail(function(a,b,c){var d=e.str("connection_fail")+": "+b;f&&(d+="<br>"+c.message,d+="<br>"+a.responseText.substr(0,80)),e.log(d),h.reject(d)}),h},e.supportWebSocket=function(){return"WebSocket"in window},e.isAndroid=function(){return window.navigator.userAgent.indexOf("Android")>-1},e.isFirefox=function(){return window.navigator.userAgent.indexOf("Firefox")>-1},e.isMac=function(){return window.navigator.userAgent.indexOf("Mac")>-1},e.clickServer=function(b){var c=550,d=450,f=screen.width/2-c/2,g=screen.height/2-d/2;try{var h="toolbar=no, location=no, directories=no, status=no, menubar=no";h+=", resizable=yes, scrollbars=yes, copyhistory=no, width="+c,h+=", height="+d+", top="+g+", left="+f;var i=window.open(a(this).attr("href"),"_blank",h);if(!i)return!0}catch(j){return e.log(j),!0}return b.preventDefault(),a(this).parent().hide(),!1},e.acceptCertificates=function(b,c){if(b.length>0){var d=e.str("acceptcertificatesnote");d+="<ol>";for(var f in b)if(b.hasOwnProperty(f)){var g=1+f;d+='<li><a href="'+b[f]+'" target="_blank">Server ',d+=g+"</a><br /></ul>"}d+="</ol>";var h=e.showMessage(d,{ok:function(){var a=c();a&&a()},icon:"unlocked",title:e.str("acceptcertificates")});a(h).find("a").on("click keypress",e.clickServer)}else e.log("servers.length == 0"),e.showErrorMessage(e.str("connection_fail"))},e.webSocketMonitor=function(b,c,d,f){e.setProtocol(b);var g=null,h=null,i=a.Deferred(),j=function(a){i.reject(a)},k=!1,l={message:function(a){var b=/^([^:]*):?(.*)/i.exec(a),c=b[1],g=b[2];"running"==c&&(c=d);var i=e.str(c);g>""&&(i+=": "+g),f.getConsole&&f.getConsole().isOpen()?f.getConsole().setMessage(i):h.setLabel(i)},compilation:function(a){f.setResult&&f.setResult({compilation:a},!1)},retrieve:function(){h.close(),k=!0,e.requestAction("retrieve","","",f.ajaxurl).done(function(a){i.resolve(),f.setResult&&f.setResult(a,!0)}).fail(j)},run:function(a){h.close(),f.run(a,b,g)},close:function(){e.log("ws close message from jail"),g.close(),f.close&&f.close()}};try{if(!e.supportWebSocket())return e.log("ws not available"),i.reject(e.str("browserupdate")),i;g=new WebSocket(b.monitorURL)}catch(m){return e.log("ws new say "+m),i.reject(m.message),i}return h=new e.progressBar(c,"connecting",function(){i.reject("Stopped by user"),g.close()}),g.notOpen=!0,g.onopen=function(){g.notOpen=!1,h.setLabel(e.str("connected"))},g.onerror=function(a){e.log("ws error "+a),h.close(),b.secure&&g.notOpen?e.requestAction("getjails","retrieve",{},f.ajaxurl).done(function(a){e.acceptCertificates(a.servers,function(){return f.getLastAction()})}).fail(j):i.reject(e.str("connection_fail"))},g.onclose=function(){f.getConsole&&f.getConsole().disconnect(),g.notOpen||(h.close(),k||"rejected"==i.state()||i.resolve())},g.onmessage=function(a){var b=/^([^:]+):/i.exec(a.data);if(null!==b){var c=b[1],d=a.data.substr(c.length+1);l[c]&&l[c](d)}else h.setLabel(e.str("error")+": "+a.data)},i},e.processResult=function(a,b,c,d,f){function g(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/,"\\$&")}function h(a){return"undefined"==typeof c[a].getTagId?'href="#" ':'href="#'+c[a].getTagId()+'" '}function i(a,d){for(var f=!1,g=0;g<x.length;g++)for(var i,j=x[g];null!==(i=j.exec(a));){var k=c[g].getAnnotations();z=g,f=!0;var l=a.search(r)==-1?"error":"warning";y={row:i[2]-1,column:i[3],type:l,text:d},k.push(y);var m=b[g],n=h(g),o=e.sanitizeText(m),p='data-file="'+m+'" data-line="'+i[2]+'"';a=a.replace(j,"$1<a "+n+' class="vpl_fl" '+p+">"+o+":$2$3</a>"),c[g].setAnnotations(k)}return!f&&y&&(""!==d?(y.text+="\n"+d,c[z].setAnnotations(c[z].getAnnotations())):y=!1),a}function j(a){y=!1,a=a.substr(1);var b=o.exec(a);null!==b&&(a=a.substr(0,a.length-b[0].length));var c="";return f&&(c+='<a href="javascript:void(0)" onclick="VPLUtil.showHideDiv(this)">[+]</a>'),c+='<b class="ui-widget-header ui-corner-all">'+e.sanitizeText(a)+"</b><br />",c=i(c,a)}function k(){y=!1;var a=u;return u="",a}function l(a){var b=e.sanitizeText(a);u+=i(b,a)+"<br />"}function m(a){var b=e.sanitizeText(a);v+=i(b,a)+"\n"}function n(){y=!1;var a=v;return v="","<pre><i>"+a+"</i></pre>"}if("undefined"==typeof a||""==a.replace("/^s+|s+$/gm",""))return"";for(var o=/\([-]?[\d]+[\.]?[\d]*\)\s*$/,p=/^-/,q=/^\s*\>/,r=new RegExp("warning|"+g(e.str("warning")),"i"),s="",t="",u="",v="",w=a.split(/\r\n|\n|\r/),x=[],y=!1,z=!1,A=!1,B=0;B<b.length;B++){var C=g(b[B]),D="(^| |/)"+C+"[:(](\\d+)([:,](\\d+)\\)?)?";x[B]=new RegExp(D,"")}for(B=0;B<w.length;B++){var E=w[B];if(d)t+=i(e.sanitizeText(E),E)+"\n";else{var F=q.exec(E),G=q.test(E);if(null!==F!=G&&e.log("error"),p.test(E)){switch(s){case"comment":t+=k();break;case"case":t+=n()}A&&(t+="</div>"),t+=j(E),t+=f?'<div style="display:none">':"<div>",A=!0,s=""}else G?("comment"==s&&(t+=k()),m(E.substr(F[0].length)),s="case"):("case"==s&&(t+=n()),l(E),s="comment")}}switch(s){case"comment":t+=k();break;case"case":t+=n()}return A&&(t+="</div>"),t},function(){var a=[];e.loadScript=function(b,c){if(0==b.length)return void c();var d=b[0];if("undefined"==typeof a[d]){b.shift(),a[d]=1;var f=document.createElement("script");f.type="text/javascript",f.src=e.options.scriptPath+d,f.onload=function(){a[d]=2,e.loadScript(b,c)},document.head.appendChild(f)}else 2==a[d]?(b.shift(),e.loadScript(b,c)):setTimeout(function(){e.loadScript(b,c)},50)},e.isScriptLoading=function(b){return"undefined"!=typeof a[b]&&1==a[b]},e.isScriptLoaded=function(b){return"undefined"!=typeof a[b]&&2==a[b]}}(),e.adjustBlockly=function(a,b,c){for(var d=a.getAllBlocks(),e=2e4,f=-2e4,g=2e4,h=-2e4,i=0;i<d.length;i++){var j=d[i].getRelativeToSurfaceXY();e=Math.min(e,j.y),f=Math.max(f,j.y),g=Math.min(g,j.x),h=Math.max(h,j.x)}d=a.getTopBlocks();for(var i=0;i<d.length;i++)d[i].moveBy(b-g,c-e);return f-e+100+c},function(){function b(a,b){var c=this;this.files=a,this.results=b,setTimeout(function(){c.highlight()},10)}var c=[],d=[],f=[];b.prototype.highlightBlockly=function(b){e.loadScript(["../editor/blockly/blockly_compressed.js","../editor/blockly/msg/js/en.js","../editor/blockly/blocks_compressed.js"],function(){var c=a("#"+b),d=c.html();a("#"+b+"load").remove(),c.html(""),c.show(),d=a("<div />").html(d).text().replace(/\n/g,"");var f=Blockly.Xml.textToDom(d);c.html("").height(300).width(c.parent().width());var g={toolbox:"",readOnly:!0,media:"../editor/blockly/media/"},h=Blockly.inject(b,g);Blockly.Xml.domToWorkspace(f,h);var i=e.adjustBlockly(h,10,10);c.height(i),c.width("100%"),Blockly.svgResize(h),Blockly.resizeSvgContents(h);var j=c.html();h.dispose(),c.html(j)})},b.prototype.highlight=function(){var b=this;if("undefined"==typeof ace){var c;return c="undefined"!=typeof e.get_absolute_path()?e.get_absolute_path()+"/editor/ace9/ace.js":"../editor/ace9/ace.js",void e.loadScript([c],function(){b.highlight()})}for(var d=this.files,g=this.results,h=[],i=[],j=0;j<d.length;j++){var k=d[j],l="code"+k.tagId;if(e.isBlockly(k.fileName))b.highlightBlockly(l);else{var m=e.fileExtension(k.fileName),n=e.langType(m);a("#"+l).show(),a("#"+l+"load").remove();var o=ace.edit(l);o.setTheme("ace/theme/"+k.theme),o.getSession().setMode("ace/mode/"+n),o.renderer.setShowGutter(k.showln),o.setReadOnly(!0),o.setHighlightActiveLine(!1),o.setAutoScrollEditorIntoView(!0),o.setOption("maxLines",k.nl),o.getAnnotations=function(){return this.getSession().getAnnotations()},o.setAnnotations=function(a){return this.getSession().setAnnotations(a)},o.getTagId=function(){return this.vplTagId},o.vplTagId=k.tagId,h.push(o),i.push(k.fileName),f[k.tagId]=o}}for(var p=0;p<g.length;p++){var q=document.getElementById(g[p].tagId),r=q.textContent||q.innerText;q.innerHTML=e.processResult(r,i,h,g[p].noFormat,g[p].folding)}setTimeout(function(){for(var b=0;b<h.length;b++){var c=h[b],e=c.getTagId(),f=a("#"+e).html();c.destroy(),a("#"+e).html(f)}d=null,g=null,h=null,i=null},1e3)},e.addResults=function(a,b,c){d.push({tagId:a,noFormat:b,folding:c})},e.syntaxHighlightFile=function(a,b,d,e,f){c.push({tagId:a,fileName:b,theme:d,showln:e,nl:f})},e.syntaxHighlight=function(){var a=this;if("undefined"==typeof ace){var f;return f="undefined"!=typeof e.get_absolute_path()?e.get_absolute_path()+"/editor/ace9/ace.js":"../editor/ace9/ace.js",void e.loadScript([f],function(){a.syntaxHighlight()})}new b(c,d),c=[],d=[]},e.flEventHandler=function(a){var b=a.target.getAttribute("href").substring(1),c=a.target.getAttribute("data-line"),d=f[b];d.gotoLine(c,0),d.scrollToLine(c,!0)},e.setflEventHandler=function(){for(var a=document.getElementsByClassName("vpl_fl"),b=0;b<a.length;b++)a[b].onclick=e.flEventHandler},e.showHideDiv=function(a){var b=a,c=a;for(c.nextSibling||(c=c.parentNode),c=c.nextSibling;"DIV"!=c.nodeName&&"PRE"!=c.nodeName;)if(c=c.nextSibling,!c)return;b&&("[+]"==b.innerHTML?(c.savedDisplay?c.style.display=c.savedDisplay:c.style.display="",b.innerHTML="[-]"):(c.savedDisplay=c.style.display,c.style.display="none",b.innerHTML="[+]"))}}(),e.options={scriptPath:""},e.get_absolute_path=function(){return d},e.set_absolute_path=function(a){d=a},e.init=function(b){a.extend(e.options,b)},window.VPLUtil=e,e}); \ No newline at end of file +define(["jquery","jqueryui","core/log"],function(a,b,c){var d;if("undefined"!=typeof l)return l;var e,f,g,h,i,j,k,l={doNothing:function(){},returnFalse:function(){return!1},returnTrue:function(){return!0}};return l.log=function(a,b){b&&c.debug(a)},l.scrollBarWidth=function(){var b,c,d;return d=(c=(b=a('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo("body")).children()).innerWidth()-c.height(99).innerWidth(),b.remove(),d},l.sanitizeHTML=function(b){return"undefined"==typeof b||""==b.replace("/^s+|s+$/g","")?"":a("<div>"+b+"</div>").html()},l.sanitizeText=function(a){return"undefined"==typeof a||""==a.replace("/^s+|s+$/g","")?"":a.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")},l.setProtocol=function(a){var b;switch(a.wsProtocol){case"always_use_wss":b=!0;break;case"always_use_ws":b=!1;break;default:b="https:"==window.location.protocol}var c=(b?"wss://":"ws://")+a.server;a.secure=b,a.portToUse=b?a.securePort:a.port,c+=":"+a.portToUse+"/",a.monitorURL=c+a.monitorPath,a.executionURL=c+a.executionPath},l.ArrayBuffer2String=function(a){for(var b=new Uint8Array(a),c=[],d=0,e=b.length;d<e;d+=32e3)c.push(String.fromCharCode.apply(String,b.subarray(d,Math.min(d+32e3,e))));return c.join("")},l.String2ArrayBuffer=function(a){for(var b=a.length,c=new ArrayBuffer(b),d=new Uint8Array(c),e=0;e<b;e++)d[e]=a.charCodeAt(e);return c},e=0,l.getUniqueId=function(){return e++},function(){var a=/\.([^.]*)$/,b=/^(gif|jpg|jpeg|png|ico)$/i,c=/^(zip|jar|pdf|tar|bin|7z|arj|deb|gzip|rar|rpm|dat|db|rtf|doc|docx|odt|xls|xlsx)$/i,d=/^blockly[0123]?$/;l.fileExtension=function(b){var c=a.exec(b);return null!==c?c[1]:""},l.isImage=function(a){return b.test(l.fileExtension(a))},l.isBinary=function(a){return l.isImage(a)||c.test(l.fileExtension(a))},l.isBlockly=function(a){return d.test(l.fileExtension(a))};var e=/[\cA-\cZ]|[:-@]|[{-~]|\\|\[|\]|[\/\^`´]|^\-|^ | $|\.\./;l.validFileName=function(a){return!(a.length<1)&&(!(a.length>128)&&!e.test(a))}}(),l.getCurrentTime=function(){return parseInt((new Date).valueOf()/1e3)},l.encodeBinary=function(a,b){return l.isBinary(a)?btoa(l.ArrayBuffer2String(b)):btoa(unescape(encodeURIComponent(b)))},l.decodeBinary=function(a,b){var c=atob(b);return l.isBinary(a)?l.String2ArrayBuffer(c):decodeURIComponent(escape(c))},l.validPath=function(a){if(a.length>256)return!1;for(var b=a.split("/"),c=0;c<b.length;c++)if(!l.validFileName(b[c]))return!1;return!0},l.getFileName=function(a){var b=a.split("/");return b[b.length-1]},l.dataFromURLData=function(a){return a.substr(a.indexOf(",")+1)},l.readZipFile=function(a,b,c,d){if("undefined"!=typeof JUnzip){var e=l.ArrayBuffer2String(a),f=new JUnzip(e);if(f.isZipFile()){f.readEntries();var g=f.entries.length;!function a(e){if(e>=g||c.isClosed())d&&d();else{var h,i=f.entries[e],j=i.fileName;if(j.match(/\/$/))a(e+1);else{c.processFile(j);var k="";if(0===i.compressionMethod?k=i.data:8===i.compressionMethod&&(k=JSInflate.inflate(i.data)),h=l.String2ArrayBuffer(k),l.isBinary(j))b({name:j,contents:btoa(k),encoding:1})||(e=g),a(e+1),c.endFile();else{var m=new Blob([h],{type:"text/plain"}),n=new FileReader;n.onload=function(d){b({name:j,contents:d.target.result,encoding:0})||(e=g),a(e+1),c.endFile()},n.readAsText(m)}}}}(0)}}else l.loadScript(["../editor/zip/inflate.js","../editor/zip/unzip.js"],function(){l.readZipFile(a,b,c,d)})},l.readSelectedFiles=function(a,b,c){var d=new l.progressBar("import","import"),e=0;c||(c=l.doNothing),d.processFile=function(a){d.setLabel(a),e++},d.endFile=function(){0===--e&&(c(),d.close())},function c(e){if(!(e>=a.length||d.isClosed())){var f=a[e];d.processFile(f.name);var g=l.isBinary(f.name),h=new FileReader,i=l.fileExtension(f.name).toLowerCase();h.onload=function(a){var h=!1;if(g)if("zip"==i)try{l.readZipFile(a.target.result,b,d,function(){c(e+1)})}catch(a){l.showErrorMessage(a+" : "+f.name)}else{var j=l.dataFromURLData(a.target.result);h=b({name:f.name,contents:j,encoding:1})}else h=b({name:f.name,contents:a.target.result,encoding:0});h&&c(e+1),d.endFile()},g?"zip"==i?h.readAsArrayBuffer(f):h.readAsDataURL(f):h.readAsText(f)}}(0)},f={gif:"image/gif",jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",ico:"image/vnd.microsoft.icon",pdf:"application/pdf"},l.getMIME=function(a){var b=l.fileExtension(a);return b in f?f[b]:"application/octet-stream"},l.getTimeLeft=function(a){var b="";a<0&&(b+="-",a=-a);var c=parseInt(a/86400);a-=86400*c,0!==c&&(b+=c+"T");var d=parseInt(a/3600);a-=3600*d;var e=parseInt(a/60);a-=60*e;var f=parseInt(a);return b+=("00"+d).substr(-2)+":",b+=("00"+e).substr(-2),0===c&&(b+=":"+("00"+f).substr(-2)),b},g={abap:"abap",abc:"abc",ada:"ada",ads:"ada",adb:"ada",as:"actionscript",as3:"actionscript",asm:"assembly_x86",bash:"sh",bat:"batchfile",c:"c_cpp",C:"c_cpp",cc:"c_cpp",cpp:"c_cpp",hxx:"c_cpp",h:"c_cpp",cases:"cases",cbl:"cobol",cob:"cobol",coffee:"coffee",clj:"clojure",cs:"csharp",css:"css",d:"d",dart:"dart",e:"eiffel",erl:"erlang",hrl:"erlang",f:"fortran",f77:"fortran",go:"go",groovy:"groovy",hs:"haskell",htm:"html",html:"html",hx:"haxe",java:"java",js:"javascript",json:"json",jsp:"jsp",jsx:"jsx",kt:"kotlin",kts:"kotlin",m:"matlab",md:"markdown",less:"less",lisp:"lisp",lsp:"lisp",lua:"lua",mod:"opl",pas:"pascal",p:"pascal",perl:"perl",prl:"perl",php:"php",pro:"prolog",pl:"prolog",py:"python",r:"r",rb:"ruby",ruby:"ruby",sass:"sass",scala:"scala",scm:"scheme",s:"scheme",scss:"scss",sh:"sh",swift:"swift",sql:"sql",svg:"svg",tex:"tex",tcl:"tcl",twig:"twig",v:"verilog",vhd:"vhdl",vhdl:"vhdl",xml:"xml",xsl:"xml",yaml:"yaml"},l.langType=function(a){return a in g?g[a]:"plain_text"},h={},l.str=function(a){return h[a]?h[a]:"{"+a+"}"},l.setStr=function(a){for(var b in a)a.hasOwnProperty(b)&&(h[b]=a[b]);l.dialogbaseOptions={autoOpen:!1,width:"auto",closeText:l.str("cancel"),modal:!0,dialogClass:"vpl_ide vpl_ide_dialog"}},i={},l.delay=function(a,b,c,d){"undefined"!=typeof i[a]&&!1===i[a]||clearTimeout(i[a]),i[a]=setTimeout(function(){b(c,d),i[a]=!1},20)},l.longDelay=function(a,b,c,d){"undefined"!=typeof i[a]&&!1===i[a]||clearTimeout(i[a]),i[a]=setTimeout(function(){b(c,d),i[a]=!1},100)},l.iconModified=function(){var a='<span title="'+l.str("modified")+'" class="vpl_ide_charicon">';return a+='<i class="fa fa-star"></i></span> '},l.iconDelete=function(){var a=' <span title="'+l.str("delete")+'" class="vpl_ide_charicon vpl_ide_delicon">';return a+='<i class="fa fa-trash"></i></span> '},l.iconClose=function(){var a=' <span title="'+l.str("closebuttontitle");return a+='" class="vpl_ide_charicon vpl_ide_closeicon"><i class="fa fa-remove"></i></span> '},l.iconRequired=function(){var a=' <span title="'+l.str("required")+'" class="vpl_ide_charicon">';return a+='<i class="fa fa-shield"></i></span> '},l.iconFolder=function(){return'<i class="fa fa-folder-open-o"></i>'},j={filelist:"folder",filelistclose:"folder-open",new:"file",rename:"pencil",delete:"trash",multidelete:"trash|list",close:"remove",comments:"commenting",import:"upload",print:"print",edit:"edit",undo:"undo",redo:"repeat",select_all:"location-arrow",find:"search",find_replace:"exchange",next:"search-plus",resetfiles:"refresh",correctedfiles:"graduation-cap",download:"download",fullscreen:"expand",regularscreen:"compress",save:"save",sort:"list-ol",run:"rocket",debug:"bug",evaluate:"check-square-o",console:"terminal",about:"question",info:"info-circle",alert:"warning",trash:"trash",retrieve:"download",spinner:"refresh fa-spin",keyboard:"keyboard-o",clipboard:"clipboard",timeleft:"clock-o",copy:"copy",paste:"paste",more:"plus-square",less:"minus-square",resize:"arrows-alt",graphic:"picture-o",send:"send",acetheme:"code|paint-brush",user:"user",fontsize:"text-height"},l.genIcon=function(a,b){if(!j[a])return"";var c="fa fa-";c+=b||"lg";for(var d=j[a].split("|"),e="",f=0;f<d.length;f++)e+="<i class='"+c+" fa-"+d[f]+"'></i>";return e},l.setTitleBar=function(b,c,d,e,f){var g=a(b).parent().find("span.ui-dialog-title");function h(a){var b="<a id='vpl_"+c+"_"+a+"' href='#' title='"+l.str(a)+"'>";return b+=l.genIcon(a,"fw")+"</a>"}var i=l.genIcon(d);i+=" <span class='"+c+"-title-buttons'></span>",i+="<span class='"+c+"-title-text'></span>",g.html(i);var j=g.find("span."+c+"-title-buttons"),k=g.find("span."+c+"-title-text");i="";for(var m=0;m<e.length;m++)i+=h(e[m]);j.html(i);for(var n=0;n<f.length;n++){var o=g.find("#vpl_"+c+"_"+e[n]);o.button().click(f[n]),o.css("padding","1px 3px")}return j.on("focus","*",function(){a(this).blur()}),k},l.progressBar=function(b,c,d){var e='<div class="vpl_ide_progressbaricon">'+l.genIcon("spinner")+"</div>",f=a('<div class="vpl_ide_dialog" style="display:none;">'+(' <div class="vpl_ide_progressbar">'+e+'<span class="vpl_ide_progressbarlabel"></span></div>')+"</div>");a("body").append(f);var g=f.find(".vpl_ide_progressbar").find(".vpl_ide_progressbarlabel");f.dialog({title:l.str(b),resizable:!1,autoOpen:!1,width:200,height:20,minHeight:20,modal:!0,dialogClass:"vpl_ide vpl_ide_dialog",close:function(a){f&&(d&&a.originalEvent&&d(),d=!1)}}),this.setLabel=function(a,b){f&&(g.text(a),b&&g.html(l.genIcon(b)+" "+g.html()))},this.close=function(){f&&(f.dialog("destroy"),a(f).remove(),f=!1)},this.isClosed=function(){return!1===f};var h=f.siblings().find(".ui-dialog-title");h.html(l.genIcon(b)+" "+h.html()),this.setLabel(l.str(c)),f.dialog("open"),f.dialog("option","height","auto")},l.showMessage=function(b,c){var d=a.extend({},c),e=a('<div class="vpl_ide_dialog"></div>');d||(d={}),d.icon||(d.icon="info"),d.title||(d.title=l.str("warning")),e.html(l.genIcon(d.icon)+' <span class="dmessage">'+b+"</span>"),a("body").append(e);var f={};return d.ok?(f[l.str("ok")]=function(){a(this).dialog("close"),d.ok()},f[l.str("cancel")]=function(){a(this).dialog("close")}):f[l.str("ok")]=function(){a(this).dialog("close")},d.next&&(f[l.str("next")]=function(){a(this).dialog("close"),d.next()}),d.close&&(d.oldClose=d.close),e.dialog(a.extend({},l.dialogbaseOptions,{title:d.title,buttons:f,close:function(){a(this).remove(),d.oldClose&&d.oldClose()}})),e.dialog("open"),e.setMessage=function(b){a(e).find(".dmessage").html(b)},e},l.showErrorMessage=function(b,c){var d=a.extend({},l.dialogbaseOptions,{title:l.str("error"),icon:"alert"});return c&&(d=a.extend(d,c)),l.showMessage(b,d)},l.requestAction=function(b,c,d,e){"undefined"!=typeof l.get_absolute_path()&&(e=l.get_absolute_path()+e);var f=a.Deferred(),g=null,h=!1;""===c&&(c="connecting");var i=new l.progressBar(b,c,function(){4!=g.readyState&&h&&h.abort&&h.abort()});return g=a.ajax({beforeSend:function(a){return h=a,!0},async:!0,type:"POST",url:e+b,data:JSON.stringify(d),contentType:"application/json; charset=utf-8",dataType:"json"}).always(function(){i.close()}).done(function(a){a.success?f.resolve(a.response):f.reject(a.error)}).fail(function(a,b,c){var d=l.str("connection_fail")+": "+b;l.log(d),f.reject(d)}),f},l.supportWebSocket=function(){return"WebSocket"in window},l.isAndroid=function(){return window.navigator.userAgent.indexOf("Android")>-1},l.isFirefox=function(){return window.navigator.userAgent.indexOf("Firefox")>-1},l.isMac=function(){return window.navigator.userAgent.indexOf("Mac")>-1},l.clickServer=function(b){var c=screen.width/2-275,d=screen.height/2-225;try{var e="toolbar=no, location=no, directories=no, status=no, menubar=no";if(e+=", resizable=yes, scrollbars=yes, copyhistory=no, width=550",e+=", height=450, top="+d+", left="+c,!window.open(a(this).attr("href"),"_blank",e))return!0}catch(a){return l.log(a),!0}return b.preventDefault(),a(this).parent().hide(),!1},l.acceptCertificates=function(b,c){if(b.length>0){var d=l.str("acceptcertificatesnote");for(var e in d+="<ol>",b)if(b.hasOwnProperty(e)){var f=1+e;d+='<li><a href="'+b[e]+'" target="_blank">Server ',d+=f+"</a><br /></ul>"}d+="</ol>";var g=l.showMessage(d,{ok:function(){var a=c();a&&a()},icon:"unlocked",title:l.str("acceptcertificates")});a(g).find("a").on("click keypress",l.clickServer)}else l.log("servers.length == 0"),l.showErrorMessage(l.str("connection_fail"))},l.webSocketMonitor=function(b,c,d,e){l.setProtocol(b);var f=null,g=null,h=a.Deferred(),i=function(a){h.reject(a)},j=!1,k={message:function(a){var b=/^([^:]*):?(.*)/i.exec(a),c=b[1],f=b[2];"running"==c&&(c=d);var h=l.str(c);f>""&&(h+=": "+f),e.getConsole&&e.getConsole().isOpen()?e.getConsole().setMessage(h):g.setLabel(h)},compilation:function(a){e.setResult&&e.setResult({compilation:a},!1)},retrieve:function(){g.close(),j=!0,l.requestAction("retrieve","","",e.ajaxurl).done(function(a){h.resolve(),e.setResult&&e.setResult(a,!0)}).fail(i)},run:function(a){g.close(),e.run(a,b,f)},close:function(){l.log("ws close message from jail"),f.close(),e.close&&e.close()}};try{if(!l.supportWebSocket())return l.log("ws not available"),h.reject(l.str("browserupdate")),h;f=new WebSocket(b.monitorURL)}catch(a){return l.log("ws new say "+a),h.reject(a.message),h}return g=new l.progressBar(c,"connecting",function(){h.reject("Stopped by user"),f.close()}),f.notOpen=!0,f.onopen=function(){f.notOpen=!1,g.setLabel(l.str("connected"))},f.onerror=function(a){l.log("ws error "+a),g.close(),b.secure&&f.notOpen?l.requestAction("getjails","retrieve",{},e.ajaxurl).done(function(a){l.acceptCertificates(a.servers,function(){return e.getLastAction()})}).fail(i):h.reject(l.str("connection_fail"))},f.onclose=function(){e.getConsole&&e.getConsole().disconnect(),f.notOpen||(g.close(),j||"rejected"==h.state()||h.resolve())},f.onmessage=function(a){var b=/^([^:]+):/i.exec(a.data);if(null!==b){var c=b[1],d=a.data.substr(c.length+1);k[c]&&k[c](d)}else g.setLabel(l.str("error")+": "+a.data)},h},l.processResult=function(a,b,c,d,e){if("undefined"==typeof a||""==a.replace("/^s+|s+$/gm",""))return"";function f(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/,"\\$&")}var g=/\([-]?[\d]+[\.]?[\d]*\)\s*$/,h=/^-/,i=/^\s*\>/,j=new RegExp("warning|"+f(l.str("warning")),"i"),k="",m="",n="",o="",p=a.split(/\r\n|\n|\r/),q=[],r=!1,s=!1,t=!1;function u(a){return"undefined"==typeof c[a].getTagId?'href="#" ':'href="#'+c[a].getTagId()+'" '}for(var v=0;v<b.length;v++){var w="(^| |/)"+f(b[v])+"[:(](\\d+)([:,](\\d+)\\)?)?";q[v]=new RegExp(w,"")}function x(a,d){for(var e=!1,f=0;f<q.length;f++)for(var g,h=q[f];null!==(g=h.exec(a));){var i=c[f].getAnnotations();s=f,e=!0;var k=-1==a.search(j)?"error":"warning";r={row:g[2]-1,column:g[3],type:k,text:d},i.push(r);var m=b[f],n=u(f),o=l.sanitizeText(m),p='data-file="'+m+'" data-line="'+g[2]+'"';a=a.replace(h,"$1<a "+n+' class="vpl_fl" '+p+">"+o+":$2$3</a>"),c[f].setAnnotations(i)}return!e&&r&&(""!==d?(r.text+="\n"+d,c[s].setAnnotations(c[s].getAnnotations())):r=!1),a}function y(a){r=!1,a=a.substr(1);var b=g.exec(a);null!==b&&(a=a.substr(0,a.length-b[0].length));var c="";return e&&(c+='<a href="javascript:void(0)" onclick="VPLUtil.showHideDiv(this)">[+]</a>'),c=x(c+='<b class="ui-widget-header ui-corner-all">'+l.sanitizeText(a)+"</b><br />",a)}function z(){r=!1;var a=n;return n="",a}function A(a){var b=l.sanitizeText(a);n+=x(b,a)+"<br />"}function B(a){var b=l.sanitizeText(a);o+=x(b,a)+"\n"}function C(){r=!1;var a=o;return o="","<pre><i>"+a+"</i></pre>"}for(v=0;v<p.length;v++){var D=p[v];if(d)m+=x(l.sanitizeText(D),D)+"\n";else{var E=i.exec(D),F=i.test(D);if(null!==E!=F&&l.log("error"),h.test(D)){switch(k){case"comment":m+=z();break;case"case":m+=C()}t&&(m+="</div>"),m+=y(D),m+=e?'<div style="display:none">':"<div>",t=!0,k=""}else F?("comment"==k&&(m+=z()),B(D.substr(E[0].length)),k="case"):("case"==k&&(m+=C()),A(D),k="comment")}}switch(k){case"comment":m+=z();break;case"case":m+=C()}return t&&(m+="</div>"),m},k=[],l.loadScript=function(a,b){if(0!=a.length){var c=a[0];if("undefined"==typeof k[c]){a.shift(),k[c]=1;var d=document.createElement("script");d.type="text/javascript",d.src=l.options.scriptPath+c,d.onload=function(){k[c]=2,l.loadScript(a,b)},document.head.appendChild(d)}else 2==k[c]?(a.shift(),l.loadScript(a,b)):setTimeout(function(){l.loadScript(a,b)},50)}else b()},l.isScriptLoading=function(a){return"undefined"!=typeof k[a]&&1==k[a]},l.isScriptLoaded=function(a){return"undefined"!=typeof k[a]&&2==k[a]},l.adjustBlockly=function(a,b,c){for(var d=a.getAllBlocks(),e=2e4,f=-2e4,g=2e4,h=-2e4,i=0;i<d.length;i++){var j=d[i].getRelativeToSurfaceXY();e=Math.min(e,j.y),f=Math.max(f,j.y),g=Math.min(g,j.x),h=Math.max(h,j.x)}d=a.getTopBlocks();for(i=0;i<d.length;i++)d[i].moveBy(b-g,c-e);return f-e+100+c},function(){var b=[],c=[],d=[];function e(a,b){var c=this;this.files=a,this.results=b,setTimeout(function(){c.highlight()},10)}e.prototype.highlightBlockly=function(b){l.loadScript(["../editor/blockly/blockly_compressed.js","../editor/blockly/msg/js/en.js","../editor/blockly/blocks_compressed.js"],function(){var c=a("#"+b),d=c.html();a("#"+b+"load").remove(),c.html(""),c.show(),d=a("<div />").html(d).text().replace(/\n/g,"");var e=Blockly.Xml.textToDom(d);c.html("").height(300).width(c.parent().width());var f=Blockly.inject(b,{toolbox:"",readOnly:!0,media:"../editor/blockly/media/"});Blockly.Xml.domToWorkspace(e,f);var g=l.adjustBlockly(f,10,10);c.height(g),c.width("100%"),Blockly.svgResize(f),Blockly.resizeSvgContents(f);var h=c.html();f.dispose(),c.html(h)})},e.prototype.highlight=function(){var b,c=this;if("undefined"==typeof ace)return b="undefined"!=typeof l.get_absolute_path()?l.get_absolute_path()+"/editor/ace9/ace.js":"../editor/ace9/ace.js",void l.loadScript([b],function(){c.highlight()});for(var e=this.files,f=this.results,g=[],h=[],i=0;i<e.length;i++){var j=e[i],k="code"+j.tagId;if(l.isBlockly(j.fileName))c.highlightBlockly(k);else{var m=l.fileExtension(j.fileName),n=l.langType(m);a("#"+k).show(),a("#"+k+"load").remove();var o=ace.edit(k);o.setTheme("ace/theme/"+j.theme),o.getSession().setMode("ace/mode/"+n),o.renderer.setShowGutter(j.showln),o.setReadOnly(!0),o.setHighlightActiveLine(!1),o.setAutoScrollEditorIntoView(!0),o.setOption("maxLines",j.nl),o.getAnnotations=function(){return this.getSession().getAnnotations()},o.setAnnotations=function(a){return this.getSession().setAnnotations(a)},o.getTagId=function(){return this.vplTagId},o.vplTagId=j.tagId,g.push(o),h.push(j.fileName),d[j.tagId]=o}}for(var p=0;p<f.length;p++){var q=document.getElementById(f[p].tagId),r=q.textContent||q.innerText;q.innerHTML=l.processResult(r,h,g,f[p].noFormat,f[p].folding)}setTimeout(function(){for(var b=0;b<g.length;b++){var c=g[b],d=c.getTagId(),i=a("#"+d).html();c.destroy(),a("#"+d).html(i)}e=null,f=null,g=null,h=null},1e3)},l.addResults=function(a,b,d){c.push({tagId:a,noFormat:b,folding:d})},l.syntaxHighlightFile=function(a,c,d,e,f){b.push({tagId:a,fileName:c,theme:d,showln:e,nl:f})},l.syntaxHighlight=function(){var a,d=this;if("undefined"==typeof ace)return a="undefined"!=typeof l.get_absolute_path()?l.get_absolute_path()+"/editor/ace9/ace.js":"../editor/ace9/ace.js",void l.loadScript([a],function(){d.syntaxHighlight()});new e(b,c),b=[],c=[]},l.flEventHandler=function(a){var b=a.target.getAttribute("href").substring(1),c=a.target.getAttribute("data-line"),e=d[b];e.gotoLine(c,0),e.scrollToLine(c,!0)},l.setflEventHandler=function(){for(var a=document.getElementsByClassName("vpl_fl"),b=0;b<a.length;b++)a[b].onclick=l.flEventHandler},l.showHideDiv=function(a){var b=a,c=a;for(c.nextSibling||(c=c.parentNode),c=c.nextSibling;"DIV"!=c.nodeName&&"PRE"!=c.nodeName;)if(!(c=c.nextSibling))return;b&&("[+]"==b.innerHTML?(c.savedDisplay?c.style.display=c.savedDisplay:c.style.display="",b.innerHTML="[-]"):(c.savedDisplay=c.style.display,c.style.display="none",b.innerHTML="[+]"))}}(),l.options={scriptPath:""},l.get_absolute_path=function(){return d},l.set_absolute_path=function(a){d=a},l.init=function(b){a.extend(l.options,b)},window.VPLUtil=l,l}); \ No newline at end of file diff --git a/amd/src/vplutil.js b/amd/src/vplutil.js index d8c6c01e8cdb7a0fd068866f89f9581b30bab175..8484072487e46bb31cee484c7762addf0c1a9728 100644 --- a/amd/src/vplutil.js +++ b/amd/src/vplutil.js @@ -126,7 +126,7 @@ define(['jquery', (function() { var regExt = /\.([^.]*)$/; var regImg = /^(gif|jpg|jpeg|png|ico)$/i; - var regBin = /^(zip|jar|pdf|tar|bin|7z|arj|deb|gzip|rar|rpm|dat|db|rtf|doc|docx|odt)$/i; + var regBin = /^(zip|jar|pdf|tar|bin|7z|arj|deb|gzip|rar|rpm|dat|db|rtf|doc|docx|odt|xls|xlsx)$/i; var regBlk = /^blockly[0123]?$/; VPLUtil.fileExtension = function(fileName) { var res = regExt.exec(fileName); diff --git a/forms/submission.php b/forms/submission.php index 6d9e8d90875c80cf3cf36622b321d58c9f175365..fe9eb16fc1330b0f4d63fd3b1d46c862c7f79326 100644 --- a/forms/submission.php +++ b/forms/submission.php @@ -73,8 +73,8 @@ if ($fromform = $mform->get_data()) { $error, 'error' ); die(); } - $rfn = $vpl->get_fgm('required'); - $minfiles = count( $rfn->getFilelist() ); + $rfn = $vpl->get_fgm('required'); + $reqfiles = $rfn->getFileList(); $files = array (); for ($i = 0; $i < $instance->maxfiles; $i ++) { $attribute = 'file' . $i; @@ -87,8 +87,16 @@ if ($fromform = $mform->get_data()) { if ($encode > '') { // If code detected. $data = iconv( $encode, 'UTF-8', $data ); } + $files [$name] = $data; + } + else { + if (in_array($name . '.b64', $reqfiles)) { + $files [$name . '.b64'] = base64_encode($data); + } + else { + $files [$name] = $data; + } } - $files [$name] = $data; } } $errormessage = '';