1(self.webpackChunkPlesk=self.webpackChunkPlesk||[]).push([["views/admin/task-manager/index"],{1732:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>c});var a=n(243),i=n(242),s=n(244),r=n.n(s),o=n(90);const l=({isOpen:e,onClose:t,onCreate:n,onError:s})=>{const[r,l]=(0,i.useState)(!1),[c,d]=(0,i.useState)(null),[u,m]=(0,i.useState)(!1);(0,i.useEffect)((()=>{e&&m(!1)}),[e]);const k=e=>{const t={};return Object.keys(e).forEach((n=>{e[n]&&""!==e[n].trim()||(t[n]={empty:"Field is required"})})),d(t),!Object.keys(t).length};return(0,i.useEffect)((()=>{e&&d(null)}),[e]),(0,i.jsxs)(a.Dialog,{isOpen:e,title:"Create task",size:"md",onClose:t,form:{onSubmit:async({cmd:e,concurrencyRules:t,stdin:a,description:i,env:r,timeout:c})=>{if(d(null),k({cmd:e,description:i})){l(!0);try{const{status:l,formMessages:m,msg:k,redirect:p}=await o.api.post("/admin/task-manager/create",{cmd:e,concurrencyRules:t,stdin:a,description:i,env:r,...u?{timeout:c}:null});if(p)return void(0,o.redirect)(p);"success"===l?n():m?Object.keys(m).forEach((e=>d((t=>({...t,[e]:m[e]}))))):s(k||"Failed to create task")}catch{s("Failed to create task")}finally{l(!1)}}},submitButton:{children:"Create",state:r?"loading":null},errors:c},children:[(0,i.jsx)(a.FormFieldText,{name:"cmd",label:"Command",multiline:!0,size:"fill",required:!0}),(0,i.jsx)(a.FormFieldText,{name:"concurrencyRules",label:"Concurrency Rules",size:"fill"}),(0,i.jsx)(a.FormFieldText,{name:"stdin",label:"STDIN",multiline:!0,size:"fill"}),(0,i.jsx)(a.FormFieldText,{name:"description",label:"Description",size:"fill",required:!0}),(0,i.jsx)(a.FormFieldText,{name:"env",label:"Env Variables",multiline:!0,size:"fill",placeholder:"env1=val1\nenv2=val2\nenv3=val3"}),(0,i.jsx)(a.FormField,{name:"timeout",label:"Timeout",children:({setValue:e})=>(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(a.Switch,{onChange:m})," ",(0,i.jsx)(a.InputNumber,{min:1,disabled:!u,onChange:e})]})})]})};l.propTypes={isOpen:r().bool.isRequired,onClose:r().func.isRequired,onCreate:r().func.isRequired,onError:r().func.isRequired};const c=l},1730:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>u});var a=n(243),i=n(242),s=n(1731),r=n(90),o=n(244),l=n.n(o);const c=r.Locale.getTranslate("components.lists.tasks.processes"),d=({processes:e,task:t,requestTasks:n,onError:o})=>{const[l,d]=(0,i.useState)(!1),[u,m]=(0,i.useState)(""),[k,p]=(0,i.useState)(""),[g,x]=(0,i.useState)(null),v=async(e,t)=>{const n=await fetch(`/admin/task-manager/${e}/?id=${t}`,{method:"GET"});200===n.status?(m(await n.text()),d(!0),p(`${e.toUpperCase()}`)):o((0,i.jsx)(c,{content:"dataLoadFailed"}))};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(a.Dialog,{isOpen:l,title:k,size:"lg",onClose:()=>d(!1),children:(0,i.jsx)(a.ConsoleOutput,{children:u})}),(({cmd:e})=>(0,i.jsx)(a.Alert,{children:(0,i.jsxs)(a.Columns,{children:[(0,i.jsx)(a.Column,{fill:!0,children:e.join(" ")}),(0,i.jsx)(a.Column,{width:30,children:(0,i.jsx)(a.Button,{ghost:!0,icon:"copy",tooltip:(0,i.jsx)(c,{content:"copyToClipboard"}),onClick:()=>(async(e,t)=>{try{const{commandLine:n}=await r.api.post("/admin/task-manager/command-line",{cmd:e});t(n)}catch{o((0,i.jsx)(c,{content:"commandLineLoadFailed"}))}})(e,a.copyToClipboard)})})]})}))(t),(({id:e,timeout:t,concurrencyRules:n,requestorId:r,created:o,updated:l,env:d})=>(0,i.jsx)(a.Cuttable,{maxHeight:0,children:(0,i.jsxs)(a.Section,{children:[(0,i.jsx)(a.SectionItem,{title:(0,i.jsx)(c,{content:"concurrency"}),children:n?n.map((e=>(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(a.Label,{intent:"inactive",children:e})," "]},e))):"-"}),(0,i.jsx)(a.SectionItem,{title:(0,i.jsx)(c,{content:"taskIdSection"}),children:e}),(0,i.jsx)(a.SectionItem,{title:(0,i.jsx)(c,{content:"requestorIdSection"}),children:r||"-"}),(0,i.jsx)(a.SectionItem,{title:(0,i.jsx)(c,{content:"timeoutSection"}),children:t||"-"}),(0,i.jsx)(a.SectionItem,{title:(0,i.jsx)(c,{content:"createdSection"}),children:(0,s.formatDate)(o)}),(0,i.jsx)(a.SectionItem,{title:(0,i.jsx)(c,{content:"updatedSection"}),children:(0,s.formatDate)(l)}),(0,i.jsx)(a.SectionItem,{title:(0,i.jsx)(c,{content:"environmentSection"}),children:(0,i.jsx)(a.ConsoleOutput,{children:d?Object.keys(d).map((e=>`${e}=${d[e]}`)).join("\n"):""})})]})}))(t),void 0===e?(0,i.jsx)(a.ContentLoader,{}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(a.Dialog,{isOpen:!!g,title:(0,i.jsx)(c,{content:"stopProcess"}),size:"sm",onClose:()=>x(null),form:{onSubmit:async()=>{x(null);try{const{status:e,msg:t}
1=await r.api.post("/admin/task-manager/proc-stop/",{id:g});"error"===e?o(t||(0,i.jsx)(c,{content:"stopProcessFailed"})):await n()}catch{o((0,i.jsx)(c,{content:"stopProcessFailed"}))}}},children:(0,i.jsx)(c,{content:"stopProcessConfirm"})}),(0,i.jsx)(a.List,{rowKey:"id",columns:[{title:(0,i.jsx)(c,{content:"idTitle"}),key:"id"},{title:(0,i.jsx)(c,{content:"statusTitle"}),key:"status",align:"center",render:({status:e})=>(0,i.jsx)(a.Label,{intent:(0,s.mapStatusIntent)(e),children:e})},{title:(0,i.jsx)(c,{content:"startedTitle"}),key:"started",render:({started:e})=>(0,s.formatDate)(e)},{title:(0,i.jsx)(c,{content:"completedTitle"}),key:"completed",render:({completed:e})=>(0,s.formatDate)(e)},{title:(0,i.jsx)(c,{content:"pidTitle"}),align:"center",key:"pid"},{title:(0,i.jsx)(c,{content:"exitCodeTitle"}),key:"exitCode",align:"center"},{key:"actions",type:"actions",render:({status:e,id:t})=>(0,i.jsxs)(a.ListActions,{children:[(0,i.jsx)(a.ListAction,{primary:!0,icon:"arrow-down-in",onClick:()=>v("stdin",t),children:"Stdin"}),(0,i.jsx)(a.ListAction,{primary:!0,icon:"arrow-up-tray",onClick:()=>v("stdout",t),children:"Stdout"}),(0,i.jsx)(a.ListAction,{primary:!0,icon:"bug",onClick:()=>v("stderr",t),children:"Stderr"}),["STARTED","PROCESSING"].includes(e)?(0,i.jsx)(a.ListAction,{primary:!0,icon:"stop-circle",onClick:()=>x(t),children:(0,i.jsx)(c,{content:"stopProcess"})}):null]})}],data:e})]})]})};d.propTypes={task:l().object.isRequired,processes:l().array.isRequired,requestTasks:l().func.isRequired,onError:l().func.isRequired};const u=d},1729:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>h});var a=n(242),i=n(243),s=n(734),r=n(90),o=n(739),l=n(679),c=n(1730),d=n(1732),u=n(1731),m=n(1733),k=n.n(m),p=n(747);const g=r.Locale.getTranslate("components.lists.tasks"),x=r.Locale.getSection("components.lists.tasks"),v=[10,20,30],j=[1,2,3,10],h=(0,o.withPageLayout)((()=>{const{data:{tasks:{list:e=[],summary:t=[],total:n}={},config:{taskManager:{allowCreate:o}={}}={}}={},loading:m,refetch:h}=(0,s.useQuery)(k(),{variables:{page:1,itemsPerPage:v[0]}}),[f,S]=(0,a.useState)(1),[y,T]=(0,a.useState)(v[0]),[b,C]=(0,a.useState)(!1),[F,N]=(0,a.useState)(""),E=(0,p.useDebounce)(F,300),[w,P]=(0,a.useState)(0),[I,D]=(0,a.useState)(0),[L,R]=(0,a.useState)([]),[A,O]=(0,a.useState)(null),[$,q]=(0,a.useState)(null),[M,V]=(0,a.useState)({}),z=(0,a.useRef)(!0),B=(0,i.useTranslate)("components.lists.tasks"),G=(0,a.useCallback)((()=>{const e={page:f,itemsPerPage:y,search:E,statusFilter:$?.toUpperCase()};h(e)}),[y,f,h,E,$]);(0,a.useEffect)((()=>{z.current?z.current=!1:G()}),[G]);const U=Math.ceil(n/y),H=(0,a.useCallback)((()=>{C(!1),G(),(0,l.addToast)({intent:"success",message:(0,a.jsx)(g,{content:"taskCreated"})})}),[G]),W=(0,a.useCallback)((e=>{S(1),T(e)}),[]),_=(0,a.useCallback)((e=>Z((0,a.jsxs)(a.Fragment,{children:[e,(0,a.jsx)("br",{}),(0,a.jsx)(g,{content:"moreDetails"})]}))),[]),K=(0,a.useCallback)((e=>async()=>{try{const{status:t,msg:n}=await r.api.post("/admin/task-manager/retry/",{id:e});"error"===t?_(n||(0,a.jsx)(g,{content:"retryTaskFailed"})):await G()}catch{_((0,a.jsx)(g,{content:"retryTaskFailed"}))}}),[_,G]),Q=(0,a.useCallback)((e=>{S(1),N(e)}),[]),Y=(0,a.useRef)(),J=(0,a.useCallback)((e=>{D(e)}),[]);(0,a.useEffect)((()=>(I>0&&(P(I),Y.current=setInterval((()=>{P((e=>0===e?(G(),I):--e))}),1e3)),()=>clearInterval(Y.current))),[G,I]);const X=(0,a.useMemo)((()=>(0,a.jsxs)(i.Menu,{children:[(0,a.jsx)(i.MenuItem,{active:0===I,onClick:()=>J(0),children:(0,a.jsx)(g,{content:"pollingOff"})}),j.map((e=>(0,a.jsx)(i.MenuItem,{active:e===I,onClick:()=>J(e),children:(0,a.jsx)(g,{content:"pollingDelay",params:{delay:e}})},e)))]})),[J,I]),Z=e=>(0,l.addToast)({message:[(0,a.jsx)("span",{children:e},e)],intent:"danger"});(0,a.useEffect)((()=>{m||ee()}),[L,m]);const ee=()=>{e.forEach((e=>{-1===L.indexOf(e.id)||M[e.id]||(async({id:e})=>{try{const{processes:t,status:n,statusMessages:i}=await r.api.get("/admin/task-manager/processes",{id:e});if("error"===n)return void(i.length?i.forEach((({content:e})=>Z(e))):_((0,a.jsx)(g,{content:"processedLoadFailed"})));V((n=>({...n,[e]:t})))}catch{_((0,a.jsx)(g,{content:"processedLoadFailed"}))}})(e)}))},te=t.filter((({count:e})=>e>0));return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(d.default,{isOpen:b,onClose:()=>C(!1),onCreate:H,onError:_}),(0,a.jsxs)(i.Toolbar,{children:[(0,a.jsx)(i.ToolbarGroup,{title:B("search"),style:{width:"100%"},children:(0,a.jsx)(i.SearchBar,{inputProps:{placeHolder:x.lmsg("searchPlaceholder")},maxWidth:-1,onTyping:Q,"data-id":"search-input"})}),(0,a.jsxs)(i.ToolbarGroup,{title:B("refresh"),children:[(0,a.jsxs)(i.Button,{icon:"refresh",tooltip:(0,a.jsx)(g,{content:"refreshDescription"}),onClick:()=>G(),disabled:m||!!I,"data-id":"refresh",children:[(0,a.jsx)(g,{content:"refresh"})," ",I&&w?w:null]}),(0,a.jsx)(i.Dropdown,{tooltip:"TimerList",menu:X,"data-id":"timer-dropdown"})]}),o?(0,a.jsx)(i.ToolbarGroup,{title:B("createTask"),children:(0,a.jsx)(i.Button,{icon:"plus",tooltip:(0,a.jsx)(g,{content:"createTask"}),onClick:()=>C(!0),"data-id":"create-new-task",children:(0,a.jsx)(g,{content:"createTask"})})}):null,(0,a.jsx)(i.ToolbarGroup,{title:(0,a.jsx)(g,{content:"openSwagger"}),children:(0,a.jsx)(i.Button,{icon:"net",tooltip:(0,a.jsx)(g,{content:"openSwagger"}),onClick:()=>window.open("/admin/task-manager/swagger-ui","_blank"),children:(0,a.jsx)(g,{content:"openSwagger"})})})]}),te.map((({status:e,count:t})=>(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.Button,{onClick:()=>(e=>{q(e!==$?e:null),S(1)})(e),state:e===$?"active":"",intent:(0,u.mapStatusIntent)(e),children:`${e} ${t}`})," "]},e))),(0,a.jsx)(i.Dialog,{isOpen:!!A,title:(0,a.jsx)(g,{content:"stopTask"}),size:"sm",onClose:()=>O(null),form:{onSubmit:async()=>{O(null);try{const{status:e,msg:t}=await r.api.post("/admin/task-manager/stop/",{id:A});"error"===e?_(t||(0,a.jsx)(g,{content:"stopTaskError"})):await G()}catch{_((0,a.jsx)(g,{content:"stopTaskError"}))}}},children:(0,a.jsx)(g,{content:"stopTaskConfirm"})}),(0,a.jsx)(i.List,{rowKey:"id",loading:m,columns:[{key:"status",title:(0,a.jsx)(g,{content:"statusTitle"}),render:({status:e})=>({children:(0,a.jsx)(i.Label,{intent:(0,u.mapStatusIntent)(e),children:e}),"data-field":"status"}
1),align:"center"},{key:"created",title:(0,a.jsx)(g,{content:"createdTitle"}),render:({created:e})=>({children:(0,u.formatDate)(e),className:"nowrap","data-field":"created"})},{key:"description",title:(0,a.jsx)(g,{content:"descriptionTitle"}),type:"title",truncate:!0,render:({description:e})=>({children:e,"data-field":"description"})},{key:"actions",type:"actions",render:({status:e,id:t})=>(0,a.jsxs)(i.ListActions,{children:[["FAILURE","RETRIABLE_FAILURE"].includes(e)?(0,a.jsx)(i.ListAction,{primary:!0,icon:"reload",onClick:K(t),children:(0,a.jsx)(g,{content:"retryTask"})}):null,["PROCESSING","NEW","CLAIMED"].includes(e)?(0,a.jsx)(i.ListAction,{primary:!0,icon:"stop-circle",onClick:()=>O(t),children:(0,a.jsx)(g,{content:"stopTask"})}):null]})}],data:e,renderRowBody:e=>(0,a.jsx)(c.default,{processes:M[e.id],task:e,requestTasks:G,onError:_}),onExpandedRowsChange:R,totalRows:n,pagination:(0,a.jsx)(i.Pagination,{current:f,total:U,onSelect:S,itemsPerPage:y,itemsPerPageOptions:v,onItemsPerPageChange:W})})]})}))},1731:(e,t,n)=>{"use strict";n.r(t),n.d(t,{formatDate:()=>a,mapStatusIntent:()=>i});const a=e=>{if(!e)return"N/A";const t=new Date(e.substr(0,19)),n=[t.getFullYear(),t.getMonth()+1,t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds()].map((e=>4===`${e}`.length?e:`0${e}`.substr(-2)));return`${n[0]}-${n[1]}-${n[2]} ${n[3]}:${n[4]}:${n[5]}`},i=e=>{switch(e){case"NEW":case"CLAIMED":default:return"inactive";case"SUCCESS":return"success";case"STARTED":case"PROCESSING":return"primary";case"FAILURE":case"RETRIABLE_FAILURE":case"TIMEOUT":case"STOPPED":return"danger"}}},1728:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a.default});var a=n(1729)},1733:e=>{var t={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"TaskManagerPage"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"itemsPerPage"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},directives:[]},{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"page"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"Int"}}},directives:[]},{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"search"}},type:{kind:"NamedType",name:{kind:"Name",value:"String"}},directives:[]},{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"statusFilter"}},type:{kind:"NamedType",name:{kind:"Name",value:"TaskStatusEnum"}},directives:[]}],directives:[],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"config"},arguments:[],directives:[],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"taskManager"},arguments:[],directives:[],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"allowCreate"},arguments:[],directives:[]}]}}]}},{kind:"Field",name:{kind:"Name",value:"tasks"},arguments:[{kind:"Argument",name:{kind:"Name",value:"itemsPerPage"},value:{kind:"Variable",name:{kind:"Name",value:"itemsPerPage"}}},{kind:"Argument",name:{kind:"Name",value:"page"},value:{kind:"Variable",name:{kind:"Name",value:"page"}}},{kind:"Argument",name:{kind:"Name",value:"search"},value:{kind:"Variable",name:{kind:"Name",value:"search"}}},{kind:"Argument",name:{kind:"Name",value:"statusFilter"},value:{kind:"Variable",name:{kind:"Name",value:"statusFilter"}}}],directives:[],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"list"},arguments:[],directives:[],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"},arguments:[],directives:[]},{kind:"Field",name:{kind:"Name",value:"requestorId"},arguments:[],directives:[]},{kind:"Field",name:{kind:"Name",value:"concurrencyRules"},arguments:[],directives:[]},{kind:"Field",name:{kind:"Name",value:"cmd"},arguments:[],directives:[]},{kind:"Field",name:{kind:"Name",value:"description"},arguments:[],directives:[]},{kind:"Field",name:{kind:"Name",value:"status"},arguments:[],directives:[]},{kind:"Field",name:{kind:"Name",value:"timeout"},arguments:[],directives:[]},{kind:"Field",name:{kind:"Name",value:"updated"},arguments:[],directives:[]},{kind:"Field",name:{kind:"Name",value:"created"},arguments:[],directives:[]},{kind:"Field",name:{kind:"Name",value:"env"},arguments:[],directives:[],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"key"},arguments:[],directives:[]},{kind:"Field",name:{kind:"Name",value:"value"},arguments:[],directives:[]}]}}]}},{kind:"Field",name:{kind:"Name",value:"total"},arguments:[],directives:[]},{kind:"Field",name:{kind:"Name",value:"summary"},arguments:[],directives:[],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"status"},arguments:[],directives:[]},{kind:"Field",name:{kind:"Name",value:"count"},arguments:[],directives:[]}]}}]}}]}}],loc:{start:0,end:683}};t.loc.source={body:"query TaskManagerPage($itemsPerPage: Int!, $page: Int!, $search: String, $statusFilter: TaskStatusEnum) {\r\n config {\r\n taskManager {\r\n allowCreate\r\n }\r\n }\r\n tasks(itemsPerPage: $itemsPerPage, page: $page, search: $search, statusFilter: $statusFilter) {\r\n list {\r\n id\r\n requestorId\r\n concurrencyRules\r\n cmd\r\n description\r\n status\r\n timeout\r\n updated\r\n created\r\n env {\r\n key\r\n value\r\n }\r\n }\r\n total\r\n summary {\r\n status\r\n count\r\n }\r\n }\r\n}\r\n",name:"GraphQL request",locationOffset:{line:1,column:1}};function n(e,t){if("FragmentSpread"===e.kind)t.add(e.name.value);
1else if("VariableDefinition"===e.kind){var a=e.type;"NamedType"===a.kind&&t.add(a.name.value)}e.selectionSet&&e.selectionSet.selections.forEach((function(e){n(e,t)})),e.variableDefinitions&&e.variableDefinitions.forEach((function(e){n(e,t)})),e.definitions&&e.definitions.forEach((function(e){n(e,t)}))}var a={};function i(e,t){for(var n=0;n<e.definitions.length;n++){var a=e.definitions[n];if(a.name&&a.name.value==t)return a}}t.definitions.forEach((function(e){if(e.name){var t=new Set;n(e,t),a[e.name.value]=t}})),e.exports=t,e.exports.TaskManagerPage=function(e,t){var n={kind:e.kind,definitions:[i(e,t)]};e.hasOwnProperty("loc")&&(n.loc=e.loc);var s=a[t]||new Set,r=new Set,o=new Set;for(s.forEach((function(e){o.add(e)}));o.size>0;){var l=o;o=new Set,l.forEach((function(e){r.has(e)||(r.add(e),(a[e]||new Set).forEach((function(e){o.add(e)})))}))}return r.forEach((function(t){var a=i(e,t);a&&n.definitions.push(a)})),n}(t,"TaskManagerPage")}}]); 2//# sourceMappingURL=index.js.map?a310f2317000d6b83b7e
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.