platypush/platypush/backend/http/webapp/dist/static/js/9539.7a062356.js

2 lines
14 KiB
JavaScript

"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[9539],{9539:function(e,t,n){n.r(t),n.d(t,{default:function(){return Le}});var s=n(6252),a=n(9963),i=n(3577);const r={class:"row plugin execute-container"},o={class:"command-container"},c=(0,s._)("div",{class:"title"},"Execute Action",-1),l={class:"request-type-container"},u=["checked"],d=(0,s._)("label",{for:"action-structured-input"},"Structured request",-1),h=["checked"],p=(0,s._)("label",{for:"action-raw-input"},"Raw request",-1),g={class:"autocomplete"},m=["disabled"],v=["disabled"],y=(0,s._)("i",{class:"fas fa-play"},null,-1),f=[y],b={key:0,class:"doc-container"},k=(0,s._)("div",{class:"title"}," Action documentation ",-1),w={class:"doc html"},D=["innerHTML"],_={key:1,class:"options"},A={key:0,class:"params",ref:"params"},x=["disabled","placeholder","onUpdate:modelValue","onFocus"],C={key:0,class:"attr-doc-container mobile"},q={class:"title"},L=(0,s.Uk)(" Attribute: "),P=["textContent"],E={class:"doc html"},T=["innerHTML"],O={key:0,class:"extra-params",ref:"extraParams"},N={class:"col-5"},H=["disabled","onUpdate:modelValue"],M={class:"col-6"},j=["disabled","onUpdate:modelValue"],R={class:"col-1 buttons"},U=["onClick"],I=(0,s._)("i",{class:"fas fa-trash"},null,-1),S=[I],V={key:1,class:"add-param"},J=(0,s._)("i",{class:"fas fa-plus"},null,-1),$=[J],B={key:1,class:"attr-doc-container widescreen"},K={class:"title"},z=(0,s.Uk)(" Attribute: "),F=["textContent"],Y={class:"doc html"},Z=["innerHTML"],G={class:"output-container"},Q=["textContent"],W=["innerHTML"],X=["innerHTML"],ee={class:"first-row"},te=["placeholder"],ne=["disabled"],se=(0,s._)("i",{class:"fas fa-play"},null,-1),ae=[se],ie={key:0,class:"output-container"},re=["textContent"],oe=["innerHTML"],ce=["innerHTML"],le={class:"procedures-container"},ue=(0,s._)("div",{class:"title"},"Execute Procedure",-1),de=["onClick"],he={class:"head"},pe=["textContent"],ge={class:"btn-container col-no-margin-1"},me=["disabled"],ve=(0,s._)("i",{class:"fas fa-play"},null,-1),ye=[ve],fe={key:0,class:"params"},be=["disabled","placeholder","onUpdate:modelValue"];function ke(e,t,n,y,I,J){const se=(0,s.up)("Loading");return(0,s.wg)(),(0,s.iD)("div",r,[I.loading?((0,s.wg)(),(0,s.j4)(se,{key:0})):(0,s.kq)("",!0),(0,s._)("div",o,[c,(0,s._)("form",{class:"action-form",ref:"actionForm",autocomplete:"off",onSubmit:t[8]||(t[8]=(0,a.iM)(((...e)=>J.executeAction&&J.executeAction(...e)),["prevent"]))},[(0,s._)("div",l,[(0,s._)("input",{type:"radio",id:"action-structured-input",checked:I.structuredInput,onChange:t[0]||(t[0]=e=>J.onInputTypeChange(!0))},null,40,u),d,(0,s._)("input",{type:"radio",id:"action-raw-input",checked:!I.structuredInput,onChange:t[1]||(t[1]=e=>J.onInputTypeChange(!1))},null,40,h),p]),(0,s._)("div",{class:(0,i.C_)(["request structured-request",I.structuredInput?"":"hidden"])},[(0,s._)("div",g,[(0,s._)("label",null,[(0,s.wy)((0,s._)("input",{ref:"actionName",type:"text",class:"action-name",placeholder:"Action Name",disabled:I.running,"onUpdate:modelValue":t[2]||(t[2]=e=>I.action.name=e),onChange:t[3]||(t[3]=e=>I.actionChanged=!0),onBlur:t[4]||(t[4]=(...e)=>J.updateAction&&J.updateAction(...e))},null,40,m),[[a.nr,I.action.name]])])]),(0,s._)("button",{type:"submit",class:"run-btn btn-primary",disabled:I.running||!I.action?.name?.length,title:"Run"},f,8,v),I.selectedDoc?((0,s.wg)(),(0,s.iD)("div",b,[k,(0,s._)("div",w,[I.docLoading?((0,s.wg)(),(0,s.j4)(se,{key:0})):((0,s.wg)(),(0,s.iD)("span",{key:1,innerHTML:I.selectedDoc},null,8,D))])])):(0,s.kq)("",!0),I.action.name in I.actions&&(Object.keys(I.action.args).length||I.action.supportsExtraArgs)?((0,s.wg)(),(0,s.iD)("div",_,[Object.keys(I.action.args).length||I.action.supportsExtraArgs?((0,s.wg)(),(0,s.iD)("div",A,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(Object.keys(I.action.args),(e=>((0,s.wg)(),(0,s.iD)("div",{class:"param",key:e},[(0,s._)("label",null,[(0,s.wy)((0,s._)("input",{type:"text",class:"action-param-value",disabled:I.running,placeholder:e,"onUpdate:modelValue":t=>I.action.args[e].value=t,onFocus:t=>J.selectAttrDoc(e),onBlur:t[5]||(t[5]=(...e)=>J.resetAttrDoc&&J.resetAttrDoc(...e))},null,40,x),[[a.nr,I.action.args[e].value]])]),I.selectedAttrDoc&&I.selectedAttr===e?((0,s.wg)(),(0,s.iD)("div",C,[(0,s._)("div",q,[L,(0,s._)("div",{class:"attr-name",textContent:(0,i.zw)(I.selectedAttr)},null,8,P)]),(0,s._)("div",E,[I.docLoading?((0,s.wg)(),(0,s.j4)(se,{key:0})):((0,s.wg)(),(0,s.iD)("span",{key:1,innerHTML:I.selectedAttrDoc},null,8,T))])])):(0,s.kq)("",!0)])))),128)),Object.keys(I.action.extraArgs).length?((0,s.wg)(),(0,s.iD)("div",O,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(Object.keys(I.action.extraArgs),(e=>((0,s.wg)(),(0,s.iD)("div",{class:"param extra-param",key:e},[(0,s._)("label",N,[(0,s.wy)((0,s._)("input",{type:"text",class:"action-extra-param-name",disabled:I.running,placeholder:"Name","onUpdate:modelValue":t=>I.action.extraArgs[e].name=t},null,8,H),[[a.nr,I.action.extraArgs[e].name]])]),(0,s._)("label",M,[(0,s.wy)((0,s._)("input",{type:"text",class:"action-extra-param-value",disabled:I.running,placeholder:"Value","onUpdate:modelValue":t=>I.action.extraArgs[e].value=t},null,8,j),[[a.nr,I.action.extraArgs[e].value]])]),(0,s._)("label",R,[(0,s._)("button",{type:"button",class:"action-extra-param-del",title:"Remove parameter",onClick:t=>J.removeParameter(e)},S,8,U)])])))),128))],512)):(0,s.kq)("",!0),I.action.supportsExtraArgs?((0,s.wg)(),(0,s.iD)("div",V,[(0,s._)("button",{type:"button",title:"Add a parameter",onClick:t[6]||(t[6]=(...e)=>J.addParameter&&J.addParameter(...e))},$)])):(0,s.kq)("",!0)],512)):(0,s.kq)("",!0),I.selectedAttrDoc?((0,s.wg)(),(0,s.iD)("div",B,[(0,s._)("div",K,[z,(0,s._)("div",{class:"attr-name",textContent:(0,i.zw)(I.selectedAttr)},null,8,F)]),(0,s._)("div",Y,[I.docLoading?((0,s.wg)(),(0,s.j4)(se,{key:0})):((0,s.wg)(),(0,s.iD)("span",{key:1,innerHTML:I.selectedAttrDoc},null,8,Z))])])):(0,s.kq)("",!0)])):(0,s.kq)("",!0),(0,s._)("div",G,[null!=I.error||null!=I.response?((0,s.wg)(),(0,s.iD)("div",{key:0,class:"title",textContent:(0,i.zw)(null!=I.error?"Error":"Output")},null,8,Q)):(0,s.kq)("",!0),null!=I.response?((0,s.wg)(),(0,s.iD)("div",{key:1,class:"response",innerHTML:I.response},null,8,W)):null!=I.error?((0,s.wg)(),(0,s.iD)("div",{key:2,class:"error",innerHTML:I.error},null,8,X)):(0,s.kq)("",!0)])],2),(0,s._)("div",{class:(0,i.C_)(["request raw-request",I.structuredInput?"hidden":""])},[(0,s._)("div",ee,[(0,s._)("label",null,[(0,s.wy)((0,s._)("textarea",{"onUpdate:modelValue":t[7]||(t[7]=e=>I.rawRequest=e),ref:"rawAction",placeholder:I.rawRequestPlaceholder},null,8,te),[[a.nr,I.rawRequest]])]),(0,s._)("button",{type:"submit",disabled:I.running,class:"run-btn btn-primary",title:"Run"},ae,8,ne)]),null!=I.response||null!=I.error?((0,s.wg)(),(0,s.iD)("div",ie,[(0,s._)("div",{class:"title",textContent:(0,i.zw)(null!=I.error?"Error":"Output")},null,8,re),null!=I.error?((0,s.wg)(),(0,s.iD)("div",{key:0,class:"error",innerHTML:I.error},null,8,oe)):null!=I.response?((0,s.wg)(),(0,s.iD)("div",{key:1,class:"response",innerHTML:I.response},null,8,ce)):(0,s.kq)("",!0)])):(0,s.kq)("",!0)],2)],544)]),(0,s._)("div",le,[ue,((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(Object.keys(I.procedures).sort(),(n=>((0,s.wg)(),(0,s.iD)("div",{class:(0,i.C_)(["procedure",I.selectedProcedure.name===n?"selected":""]),key:n,onClick:e=>J.updateProcedure(n,e)},[(0,s._)("form",{ref_for:!0,ref:"procedureForm",autocomplete:"off",onSubmit:t[11]||(t[11]=(0,a.iM)(((...e)=>J.executeProcedure&&J.executeProcedure(...e)),["prevent"]))},[(0,s._)("div",he,[(0,s._)("div",{class:"name col-no-margin-11",textContent:(0,i.zw)(n)},null,8,pe),(0,s._)("div",ge,[I.selectedProcedure.name===n?((0,s.wg)(),(0,s.iD)("button",{key:0,type:"submit",class:"run-btn btn-default",disabled:I.running,title:"Run",onClick:t[9]||(t[9]=(0,a.iM)((t=>e.$emit("submit")),["stop"]))},ye,8,me)):(0,s.kq)("",!0)])]),I.selectedProcedure.name===n?((0,s.wg)(),(0,s.iD)("div",fe,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(Object.keys(I.selectedProcedure.args),(e=>((0,s.wg)(),(0,s.iD)("div",{class:"param",key:e},[(0,s._)("label",null,[(0,s.wy)((0,s._)("input",{type:"text",class:"action-param-value",onClick:t[10]||(t[10]=e=>e.stopPropagation()),disabled:I.running,placeholder:e,"onUpdate:modelValue":t=>I.selectedProcedure.args[e]=t},null,8,be),[[a.nr,I.selectedProcedure.args[e]]])])])))),128))])):(0,s.kq)("",!0)],544)],10,de)))),128))])])}function we(e,t,n){let s;function a(e){if(!e)return!1;i(e),s>=e.length&&(s=0),s<0&&(s=e.length-1),e[s].classList.add("autocomplete-active")}function i(e){for(let t=0;t<e.length;t++)e[t].classList.remove("autocomplete-active")}function r(t){const n=document.getElementsByClassName("autocomplete-items");for(let s=0;s<n.length;s++)t!==n[s]&&t!==e&&n[s].parentNode.removeChild(n[s])}e.addEventListener("input",(function(){let a,i,o,c=this.value;if(r(),!c)return!1;for(s=-1,a=document.createElement("DIV"),a.setAttribute("id",this.id+"autocomplete-list"),a.setAttribute("class","autocomplete-items"),this.parentNode.appendChild(a),o=0;o<t.length;o++)t[o].substr(0,c.length).toUpperCase()===c.toUpperCase()&&(i=document.createElement("DIV"),i.innerHTML="<strong>"+t[o].substr(0,c.length)+"</strong>",i.innerHTML+=t[o].substr(c.length),i.innerHTML+="<input type='hidden' value='"+t[o]+"'>",i.addEventListener("click",(function(t){e.value=this.getElementsByTagName("input")[0].value,n&&n(t,e.value),r()})),a.appendChild(i))})),e.addEventListener("keyup",(function(e){["ArrowUp","ArrowDown","Tab","Enter"].indexOf(e.key)>=0&&e.stopPropagation(),"Enter"===e.key&&this.blur()})),e.addEventListener("keydown",(function(e){let t=document.getElementById(this.id+"autocomplete-list");t&&(t=t.getElementsByTagName("div")),"ArrowDown"===e.key||"Tab"===e.key&&!e.shiftKey?(s++,a(t),e.preventDefault()):"ArrowUp"===e.key||"Tab"===e.key&&e.shiftKey?(s--,a(t),e.preventDefault()):"Enter"===e.key&&s>-1&&t&&t.length&&(e.preventDefault(),t[s].click(),this.focus())})),document.addEventListener("click",(function(e){r(e.target)}))}var De=we,_e=n(6813),Ae=n(1232),xe={name:"Execute",components:{Loading:Ae.Z},mixins:[_e.Z],data(){return{loading:!1,running:!1,docLoading:!1,structuredInput:!0,actionChanged:!1,selectedDoc:void 0,selectedAttr:void 0,selectedAttrDoc:void 0,selectedProcedure:{name:void 0,args:{}},response:void 0,error:void 0,rawRequest:void 0,rawRequestPlaceholder:'Raw JSON request. Example:\n\n{"type": "request", "action": "file.list", "args": {"path": "/"}}',actions:{},plugins:{},procedures:{},actionDocsCache:{},action:{name:void 0,args:{},extraArgs:[],supportsExtraArgs:!1}}},methods:{async refresh(){this.loading=!0;try{this.procedures=await this.request("inspect.get_procedures"),this.plugins=await this.request("inspect.get_all_plugins")}finally{this.loading=!1}for(const t of Object.values(this.plugins))for(const e of Object.values(t.actions))e.name=t.name+"."+e.name,e.supportsExtraArgs=!!e.has_kwargs,delete e.has_kwargs,this.actions[e.name]=e;const e=this;De(this.$refs.actionName,Object.keys(this.actions).sort(),((t,n)=>{this.action.name=n,e.updateAction()}))},async updateAction(){if(this.action.name in this.actions||(this.selectedDoc=void 0),this.actionChanged&&this.action.name in this.actions){this.docLoading=!0;try{this.action={...this.actions[this.action.name],args:Object.entries(this.actions[this.action.name].args).reduce(((e,t)=>(e[t[0]]={...t[1],value:t[1].default},e)),{}),extraArgs:[]}}finally{this.docLoading=!1}this.selectedDoc=this.actionDocsCache[this.action.name]?.html||await this.parseDoc(this.action.doc),this.actionDocsCache[this.action.name]||(this.actionDocsCache[this.action.name]={}),this.actionDocsCache[this.action.name].html=this.selectedDoc,this.actionChanged=!1,this.response=void 0,this.error=void 0}},async parseDoc(e){return e?.length?await this.request("utils.rst_to_html",{text:e}):e},updateProcedure(e,t){"submit"!==t.target.getAttribute("type")&&(this.selectedProcedure.name!==e?e in this.procedures?this.selectedProcedure={name:e,args:(this.procedures[e].args||[]).reduce(((e,t)=>(e[t]=void 0,e)),{})}:console.warn("Procedure not found: "+e):this.selectedProcedure={name:void 0,args:{}})},addParameter(){this.action.extraArgs.push({name:void 0,value:void 0})},removeParameter(e){this.action.extraArgs.pop(e)},async selectAttrDoc(e){this.selectedAttr=e,this.selectedAttrDoc=this.actionDocsCache[this.action.name]?.[e]?.html||await this.parseDoc(this.action.args[e].doc),this.actionDocsCache[this.action.name]||(this.actionDocsCache[this.action.name]={}),this.actionDocsCache[this.action.name][e]={html:this.selectedAttrDoc}},resetAttrDoc(){this.response=void 0,this.error=void 0,this.selectedAttr=void 0,this.selectedAttrDoc=void 0},onInputTypeChange(e){this.structuredInput=e,this.response=void 0,this.error=void 0,this.$nextTick((()=>{e?this.$refs.actionName.focus():this.$refs.rawAction.focus()}))},onResponse(e){this.response="<pre>"+JSON.stringify(e,null,2)+"</pre>",this.error=void 0},onError(e){this.response=void 0,this.error=e},onDone(){this.running=!1},executeAction(){if((this.action.name||this.rawRequest)&&!this.running)if(this.running=!0,this.structuredInput){const e={...Object.entries(this.action.args).reduce(((e,t)=>{if(null!=t[1].value){let s=t[1].value;try{s=JSON.parse(s)}catch(n){console.debug("Not a valid JSON value"),console.debug(s)}e[t[0]]=s}return e}),{}),...this.action.extraArgs.reduce(((e,t)=>{let n=e[t.value];try{n=JSON.parse(n)}catch(s){console.debug("Not a valid JSON value"),console.debug(n)}return e[t.name]=n,e}),{})};this.request(this.action.name,e).then(this.onResponse).catch(this.onError).finally(this.onDone)}else try{const e=JSON.parse(this.rawRequest);this.execute(e).then(this.onResponse).catch(this.onError).finally(this.onDone)}catch(e){this.notify({error:!0,title:"Invalid JSON request",text:e.toString()})}},executeProcedure(e){if(!this.selectedProcedure.name||this.running)return;e.stopPropagation(),this.running=!0;const t={...Object.entries(this.selectedProcedure.args).reduce(((e,t)=>{if(null!=t[1]){let s=t[1];try{s=JSON.parse(s)}catch(n){console.debug("Not a valid JSON value"),console.debug(s)}e[t[0]]=s}return e}),{})};this.request("procedure."+this.selectedProcedure.name,t).then(this.onResponse).catch(this.onError).finally(this.onDone)}},mounted(){this.$nextTick((()=>{this.$refs.actionName.focus()})),this.refresh()}},Ce=n(3744);const qe=(0,Ce.Z)(xe,[["render",ke]]);var Le=qe}}]);
//# sourceMappingURL=9539.7a062356.js.map