1
0
Fork 0
forked from Simnation/Main
Main/resources/[tools]/unlimited-spectre/html/assets/JobCreate.06aadcb6.js
2025-06-07 08:51:21 +02:00

1 line
10 KiB
JavaScript

import{_ as S,o as f,X as h,a7 as t,a as s,w as d,a6 as g,ab as y,r as U,a5 as c,U as u,a9 as p,aT as j,Y as _,Z as v,W as V,S as N,bG as I,bH as B}from"./app-014d9ed9.js";import{Q as $}from"./QForm.8d79ab03.js";import{Q as C}from"./QTooltip.9d840032.js";import{Q as q}from"./QMarkupTable.ba6854cc.js";import{B as w}from"./BasicDialog.9dd9de92.js";import{S as Q,m as D}from"./move.a5bc0ce3.js";import"./externalHosting.js";import"./position-engine.65ebcb34.js";import"./selection.2a17b691.js";const O={name:"JobCreate",data(){return{defaults:["name","grades","label","defaultduty","offdutypay"],customVars:[],sortable:null,pendingSave:!1,job:{name:"",label:"",defaultDuty:!1,offDutyPay:!1,grades:{}},jobGrades:[]}},methods:{isNumeric(e){return typeof e!="string"?!1:!isNaN(e)&&!isNaN(parseFloat(e))},isBoolean(e){return e==="true"||(e==="false"?!1:e)},addCustomVar(){this.customVars.push({name:"",value:""})},removeVar(e){const l=this.customVars.indexOf(e);l>-1&&this.$q.dialog({component:w,componentProps:{title:this.$i18n.t("components.job.deleteHeader"),message:this.$i18n.t("components.job.deleteCustomVarMsg",{name:e.name})},cancel:!0,persistent:!0}).onOk(()=>{this.customVars.splice(l,1)})},removeNode(e){e.parentElement!==null&&e.parentElement.removeChild(e)},insertNodeAt(e,l,r){const i=r===0?e.children[0]:e.children[r-1].nextSibling;e.insertBefore(l,i)},buildJobGrade(e){let l=[];for(const[r,i]of Object.entries(e))l.push({name:i.name,payment:i.payment,isboss:i.isboss?i.isboss:!1});return l},updateBoss(){},addGrade(){this.jobGrades.push({name:"",payment:0,isboss:!1})},removeGrade(e){const l=this.jobGrades.indexOf(e);l>-1&&this.$q.dialog({component:w,componentProps:{title:this.$i18n.t("components.job.deleteHeader"),message:this.$i18n.t("components.job.deleteGradeMsg",{name:e.name})},cancel:!0,persistent:!0}).onOk(()=>{this.jobGrades.splice(l,1)})},trySave(){this.$refs.jobForm.validate().then(e=>{if(!e){this.$q.notify({message:this.$i18n.t("general.error"),position:"top",color:"red",icon:"fas fa-exclamation-triangle",caption:this.$i18n.t("components.job.msg.error.missingFields")});return}this.$refs.customVarForm.validate().then(l=>{if(!l){this.$q.notify({message:this.$i18n.t("general.error"),position:"top",color:"red",icon:"fas fa-exclamation-triangle",caption:this.$i18n.t("components.job.msg.error.uniqueVars")});return}this.customVars.forEach(i=>{!i.name||(i.oldName=i.name,this.job[i.name]=this.isNumeric(i.value)?Number(i.value):this.isBoolean(i.value))});let r={};for(const[i,a]of Object.entries(this.jobGrades)){if(!a.isboss&&!a.name&&!a.payment)continue;const m=Object.keys(r).length;a.isboss?r[m]={name:a.name,payment:a.payment,isboss:!0}:r[m]={name:a.name,payment:a.payment}}if(Object.keys(r).length===0){this.$q.notify({message:this.$i18n.t("general.error"),position:"top",color:"red",icon:"fas fa-exclamation-triangle",caption:this.$i18n.t("components.job.msg.error.gradeNeeded")});return}this.pendingSave=!0,this.job.grades=r,this.$axios.post("/api/jobs/create",this.job).then(i=>{if(this.pendingSave=!1,!i.data.resCode){const m=i.data.resMsg;this.$q.notify({message:this.$i18n.t("general.error"),position:"top",color:"red",icon:"fas fa-exclamation-triangle",caption:this.$i18n.t(`components.job.msg.error.${m}`,{name:this.job.name})});return}Object.keys(r).length!==this.jobGrades.length&&(this.jobGrades=this.buildJobGrade(this.job.grades)),this.$q.notify({message:this.$i18n.t("general.success"),position:"top",color:"green",icon:"fas fa-check",caption:this.$i18n.t("general.saved")}),this.$router.push({name:"dev-job-list"})}).catch(i=>{})})})}},mounted(){const e=this.$el.querySelector(".q-table > draggable"),l=this;this.sortable=Q.create(e,{handle:".drag-handle",animation:150,onEnd(r){r.oldIndex!==r.newIndex&&(l.removeNode(r.item),l.insertNodeAt(r.from,r.item,r.oldIndex),D(l.jobGrades,r.oldIndex,r.newIndex))}})},beforeUnmount(){this.sortable.destroy()}},x=e=>(I("data-v-036fe121"),e=e(),B(),e),F={class:"row"},M={class:"col-12"},P={class:"q-ma-sm row"},E={class:"text-h6"},J={class:"col-12"},T={class:"q-ma-sm row"},z={class:"row"},A={class:"text-h6"},H={class:"text-caption text-sub"},L={class:"q-ml-auto"},W={style:{width:"30px"},class:"text-right vertical-middle"},X={class:"col-12"},Y={class:"q-ma-sm row"},Z={class:"row"},K={class:"text-h6"},R={class:"text-caption text-sub"},ee={class:"q-ml-auto"},te=x(()=>t("th",{class:"text-left",style:{width:"30px"}},null,-1)),oe={class:"text-left",style:{"min-width":"280px"}},se={class:"text-center",style:{"min-width":"150px"}},le={class:"text-center",style:{width:"30px"}},ae=x(()=>t("th",{class:"text-right",style:{width:"30px"}},null,-1)),ne={class:"text-left"},re={class:"text-left"},ie={class:"text-center vertical-middle"},de={class:"text-right vertical-middle"},me={class:"col-12"},ue={class:"q-ma-sm row justify-end"};function ce(e,l,r,i,a,m){const k=U("draggable");return f(),h("div",F,[t("div",M,[t("div",P,[s(g,{class:"bg-secondary full-width row"},{default:d(()=>[s(c,{class:"col-12"},{default:d(()=>[t("div",E,u(e.$t("components.jobCreate.new"))+":",1)]),_:1}),s(c,{class:"col-12 col-md-6"},{default:d(()=>[s($,{ref:"jobForm"},{default:d(()=>[s(p,{"label-color":"primary","input-style":{color:"var(--q-main)"},filled:"",modelValue:a.job.name,"onUpdate:modelValue":l[0]||(l[0]=o=>a.job.name=o),onChange:l[1]||(l[1]=o=>{a.job.name=o.toLowerCase()}),label:e.$t("components.job.name"),rules:[o=>o&&o.length>0||e.$t("rules.required"),o=>o&&!/\s/.test(o)||e.$t("rules.noSpace")]},null,8,["input-style","modelValue","label","rules"]),s(p,{"label-color":"primary","input-style":{color:"var(--q-main)"},filled:"",modelValue:a.job.label,"onUpdate:modelValue":l[2]||(l[2]=o=>a.job.label=o),label:e.$t("components.job.label")},null,8,["input-style","modelValue","label"])]),_:1},512)]),_:1}),s(c,{class:"col-12 col-md-3"},{default:d(()=>[s(j,{modelValue:a.job.defaultDuty,"onUpdate:modelValue":l[3]||(l[3]=o=>a.job.defaultDuty=o),label:e.$t("components.job.defaultDuty")},null,8,["modelValue","label"])]),_:1}),s(c,{class:"col-12 col-md-3"},{default:d(()=>[s(j,{modelValue:a.job.offDutyPay,"onUpdate:modelValue":l[4]||(l[4]=o=>a.job.offDutyPay=o),label:e.$t("components.job.offDutyPay")},null,8,["modelValue","label"])]),_:1})]),_:1})])]),t("div",J,[t("div",T,[s(g,{class:"bg-secondary full-width row"},{default:d(()=>[s(c,{class:"col-12"},{default:d(()=>[t("div",z,[t("div",null,[t("div",A,u(e.$t("components.job.customVariables")),1),t("div",H,u(e.$t("components.job.customVarSub")),1)]),t("div",L,[s(y,{"text-color":"main",color:"primary",label:e.$t("components.job.addCustomVar"),onClick:m.addCustomVar},null,8,["label","onClick"])])])]),_:1}),s(c,{class:"col-12"},{default:d(()=>[s($,{ref:"customVarForm"},{default:d(()=>[s(q,{class:"bg-secondary text-main",flat:"",square:"",separator:"none"},{default:d(()=>[t("tbody",null,[(f(!0),h(_,null,v(a.customVars,(o,b)=>(f(),h("tr",{key:`${b}-customVar`},[t("td",null,[s(p,{"label-color":"primary","input-style":{color:"var(--q-main)"},filled:"",modelValue:o.name,"onUpdate:modelValue":n=>o.name=n,label:e.$t("components.job.customVarName"),"lazy-rules":"",rules:[n=>n&&n.length>0||e.$t("rules.required"),n=>n&&!/\s/.test(n)||e.$t("rules.noSpace"),n=>n&&a.customVars.filter(G=>G.name===n).length<=1||e.$t("rules.unique"),n=>n&&!a.defaults.includes(n.toLowerCase())||e.$t("rules.defaults")]},null,8,["input-style","modelValue","onUpdate:modelValue","label","rules"])]),t("td",null,[s(p,{"label-color":"primary","input-style":{color:"var(--q-main)"},filled:"",class:"q-field--with-bottom",modelValue:o.value,"onUpdate:modelValue":n=>o.value=n,label:e.$t("components.job.customVarValue")},null,8,["input-style","modelValue","onUpdate:modelValue","label"])]),t("td",W,[s(y,{"text-color":"main",class:"text-red-6",dense:"",flat:"",icon:"fas fa-trash",size:"xs",onClick:n=>m.removeVar(b,o)},{default:d(()=>[s(C,null,{default:d(()=>[V(u(e.$t("general.delete")),1)]),_:1})]),_:2},1032,["onClick"])])]))),128))])]),_:1})]),_:1},512)]),_:1})]),_:1})])]),t("div",X,[t("div",Y,[s(g,{class:"bg-secondary full-width row"},{default:d(()=>[s(c,{class:"col-12"},{default:d(()=>[t("div",Z,[t("div",null,[t("div",K,u(e.$t("components.job.grades")),1),t("div",R,u(e.$t("components.job.gradesSub")),1)]),t("div",ee,[s(y,{"text-color":"main",color:"primary",label:e.$t("components.job.addGrade"),onClick:m.addGrade},null,8,["label","onClick"])])])]),_:1}),s(c,{class:"col-12"},{default:d(()=>[s(q,{class:"bg-secondary text-main",flat:"",square:"",separator:"none"},{default:d(()=>[t("thead",null,[t("tr",null,[te,t("th",oe,u(e.$t("components.job.headers.name")),1),t("th",se,u(e.$t("components.job.headers.payment")),1),t("th",le,u(e.$t("components.job.headers.isboss")),1),ae])]),s(k,{modelValue:a.jobGrades,"onUpdate:modelValue":l[5]||(l[5]=o=>a.jobGrades=o),style:{display:"table-row-group"},tag:"tbody"},{default:d(()=>[(f(!0),h(_,null,v(a.jobGrades,(o,b)=>(f(),h("tr",{class:"grade-table",key:`${o.isboss}-${b}`},[t("td",null,[s(N,{name:"fas fa-bars",class:"drag-handle"})]),t("td",ne,[s(p,{"label-color":"primary","input-style":{color:"var(--q-main)"},filled:"",label:e.$t("components.job.headers.name"),modelValue:o.name,"onUpdate:modelValue":n=>o.name=n},null,8,["input-style","label","modelValue","onUpdate:modelValue"])]),t("td",re,[s(p,{"label-color":"primary","input-style":{color:"var(--q-main)"},filled:"",type:"number",label:e.$t("components.job.headers.payment"),modelValue:o.payment,"onUpdate:modelValue":n=>o.payment=n,modelModifiers:{number:!0}},null,8,["input-style","label","modelValue","onUpdate:modelValue"])]),t("td",ie,[s(j,{onClick:n=>m.updateBoss(o,b),modelValue:o.isboss,"onUpdate:modelValue":n=>o.isboss=n},null,8,["onClick","modelValue","onUpdate:modelValue"])]),t("td",de,[s(y,{"text-color":"main",class:"text-red-6",dense:"",flat:"",icon:"fas fa-trash",size:"xs",onClick:n=>m.removeGrade(o)},{default:d(()=>[s(C,null,{default:d(()=>[V(u(e.$t("general.delete")),1)]),_:1})]),_:2},1032,["onClick"])])]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1})])]),t("div",me,[t("div",ue,[s(y,{"text-color":"main",loading:a.pendingSave,color:"primary",onClick:m.trySave,label:e.$t("general.create"),class:"q-mr-sm"},null,8,["loading","onClick","label"])])])])}const Ve=S(O,[["render",ce],["__scopeId","data-v-036fe121"]]);export{Ve as default};