1 line
5.9 KiB
JavaScript
1 line
5.9 KiB
JavaScript
define(()=>{{let o=Jsw.createElement,b=({name:e,value:t,hint:n,single:s})=>{let a=[o(".field-value",t,n?o(".hint",n):"")];return e&&a.unshift(o(".field-name",e.escapeHTML())),s&&(a=o(".single-row",a)),o(".form-row",a)},s=Jsw.createElement,a=({fields:e,onOk:t})=>{var n=Jsw.Locale.getSection("rubyComponents.buttons");return[s(".form-box",s(".content",s(".content-area",e.map(b)))),s(".btns-box",s(".box-area",b({value:[s("span.btn.action",s("button[type=button]",{onclick:()=>{t(),Jsw.DynamicPopupHint.unset()}},n.lmsg("ok"))),s("span.btn",s("button[type=button]",{onclick:()=>{Jsw.DynamicPopupHint.unset()}},n.lmsg("cancel")))]})))]},l=Jsw.createElement,v=({value:e,onChange:t,form:n,formTitle:s})=>l("a.toggler",{onrender:e=>{n.onOk=t.bind(null,e),new Jsw.DynamicPopupHint.Instance({title:s,target:e,placement:"right",scrollable:!1,content:a(n)})}},e.escapeHTML()),w=Jsw.createElement,e=Jsw.createElement,t=Class.create(Jsw.Popup,{_initConfiguration:function($super,{url:e,options:t=""}){var n=Jsw.Locale.getSection("components.run-rake-task-popup");$super({popupCls:"popup-panel popup-panel-xl",title:n.lmsg("title"),locale:n,closeButtonEnabled:!0,buttons:[{title:n.lmsg("run"),class:"action",handler:this._onRun.bind(this)}]}),this._url=e,this._options=t},_initComponentElement:function($super){$super();$super=this._componentElement.down("form");$super.observe("submit",e=>{e.preventDefault(),this._onRun()}),Jsw.render($super,[b({single:!0,name:this.lmsg("output"),value:e("pre.console-output.console-output-wide",{onrender:e=>{this._consoleOutputEl=e}})}),b({single:!0,name:this.lmsg("options"),value:e('input.input-text.f-max-size[type="text"]',{onkeyup:e=>{this._options=e.element().value},onrender:e=>{this._optionsEl=e}}),hint:this.lmsg("optionsDescription",{examples:["assets:precompile","RAILS_ENV=production assets:precompile","-T"].map(e=>"<br> "+e).join("")})})],"top")},show:function($super){$super(),this._optionsEl.focus(),this._runButtonEl=this._componentElement.down(".btns-box .btn.action")},_onRun:function(){Jsw.render(this._consoleOutputEl,e("span.cursor.animation-blink"),"inner"),this._runButtonEl.addClassName("disabled"),this._runButtonEl.down("button").disabled=!0,this._runButtonEl.down("button").update('<span class="wait">'+this.lmsg("pleaseWait")+"</span>"),new Ajax.Request(this._url,{method:"post",parameters:{options:this._options},onSuccess:this._onSuccess.bind(this)})},_onSuccess:function({responseText:e}){e=e.evalJSON();e.redirect?Jsw.redirect(e.redirect):(Jsw.render(this._consoleOutputEl,e.stdout+e.stderr,"inner"),this._consoleOutputEl.up(".form-row").toggleClassName("error",e.code),this._runButtonEl.removeClassName("disabled"),this._runButtonEl.down("button").disabled=!1,this._runButtonEl.down("button").update(this.lmsg("run")))}});return Jsw.namespace("PleskExt").Ruby={render:function(e,t){this.data=t,Jsw.render(e,(({handlerId:n,handlers:e,changeVersionUrl:s,applicationMode:a,applicationModes:t,changeApplicationModeUrl:o,applicationUrl:l,applicationPath:i,changeApplicationPathUrl:p,applicationFileManagerUrl:r,applicationFileManagerDataUrl:u,environment:c,environmentUrl:m,applicationType:d})=>{let h=Jsw.Locale.getSection("controllers.domain.index");var g=[];if(n){let t=t=>e.find(({id:e})=>e==t).version;g.push({name:h.lmsg("rubyVersion"),value:w(".text-value",1<e.length?v({value:t(n),onChange:e=>{e.update(t(n).escapeHTML()),e.up().insert(' <span class="s-btn"><i class="icon-indicator"></i> '+h.lmsg("pleaseWait")+"</span>"),Jsw.redirectPost(s,{handlerId:n})},formTitle:h.lmsg("rubyVersionPopupTitle"),form:{fields:[{name:h.lmsg("rubyVersionPopupDescription"),value:w("select",{onchange:e=>{n=e.element().value}},e.map(({id:e,version:t})=>w("option",{value:e,selected:n==e},t.escapeHTML())))}]}}):t(n))})}return a&&g.push({name:h.lmsg("applicationMode"),value:w(".text-value",v({value:a,onChange:e=>{e.update(a.escapeHTML()),e.up().insert(' <span class="s-btn"><i class="icon-indicator"></i> '+h.lmsg("pleaseWait")+"</span>"),Jsw.redirectPost(o,{mode:a})},formTitle:h.lmsg("applicationModePopupTitle"),form:{fields:[{name:h.lmsg("applicationModePopupDescription"),value:w(".dropdown",w(".input-group",w('input.form-control[type="text"]',{value:a,onkeyup:e=>{a=e.element().value}}),w("span.input-group-btn",{onclick:e=>{e.element().up(".dropdown").toggleClassName("open")}},w("span.btn.dropdown-toggle",w('button[type="button"]',w("span.caret"))))),w("ul.dropdown-menu",{onclick:e=>{e.stopPropagation()}},t.map(t=>w("li",{onclick:e=>{e=e.element().up(".dropdown");e.toggleClassName("open"),e.down("input").value=t,a=t}},w("a",t.escapeHTML())))))}]}}))}),l&&g.push({name:h.lmsg("applicationUrl"),value:w(".text-value",w("a[target=_blank]",{href:l},l.escapeHTML()))}),i&&g.push({name:h.lmsg("applicationPath"),value:w(".text-value",p?v({value:i,onChange:e=>{e.update(i.escapeHTML()),e.up().insert(' <span class="s-btn"><i class="icon-indicator"></i> '+h.lmsg("pleaseWait")+"</span>"),Jsw.redirectPost(p,{path:i})},formTitle:h.lmsg("applicationPathPopupTitle"),form:{fields:[{name:h.lmsg("applicationPathPopupDescription"),value:w(".text-value",w("div.scrollable.fm-scrollable",w("div.scrollable-wrap",new Jsw.FileManager.Tree({cls:"tree",data:null,dataUrl:u,rootNodeTitle:h.lmsg("rootDirectoryTitle"),onNodeClick:e=>{i=e}}))))}]}}):i.escapeHTML()," ",w("span.aux-actions",w("a",{href:r},h.lmsg("applicationPathOpen"))))}),c&&g.push({name:h.lmsg("environment"),value:w(".text-value",Object.keys(c).map(e=>"- "+e.escapeHTML()+": "+c[e].escapeHTML()+"<br>"),w("span.aux-actions",w("a",{href:m},h.lmsg("environmentEdit"))))}),d&&g.push({name:h.lmsg("applicationType"),value:w(".text-value",d.escapeHTML())}),g.map(b)})(this.data))},bundleInstall:function(){new Ajax.Request(this.data.bundleInstallUrl,{method:"post",onSuccess:({responseText:e})=>{e=e.evalJSON();Jsw.getComponent("asyncProgressBarWrapper").progressDialog(e)}})},runRakeTask:function(){new t({url:this.data.runRakeTaskUrl})}},{}}}); |