forked from Simnation/Main
1 line
10 KiB
JavaScript
1 line
10 KiB
JavaScript
import{_ as S,R as I,P as E,o as m,X as f,a7 as t,a as n,w as r,a6 as _,ab as u,c as $,V,r as D,a5 as p,W as y,U as g,a9 as b,Y as C,Z as k,S as O,aT as U,bG as B,bH as Q}from"./app-014d9ed9.js";import{Q as G}from"./QTooltip.9d840032.js";import{Q as q}from"./QMarkupTable.ba6854cc.js";import{Q as M}from"./QForm.8d79ab03.js";import{S as A,m as T}from"./move.a5bc0ce3.js";import{d as j}from"./utils.9ce591f3.js";import{B as v}from"./BasicDialog.9dd9de92.js";import"./externalHosting.js";import"./position-engine.65ebcb34.js";import"./selection.2a17b691.js";const R={name:"Gang",data(){return{RESOURCE:I,ACTION:E,defaults:["name","grades","label"],customVars:[],sortable:null,pendingSave:!1,pendingDelete:!1,gang:{},gangGrades:[]}},methods:{can:j,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,a){e>-1&&this.$q.dialog({component:v,componentProps:{title:this.$i18n.t("components.gang.deleteHeader"),message:this.$i18n.t("components.gang.deleteCustomVarMsg",{name:a.name})},cancel:!0,persistent:!0}).onOk(()=>{delete this.gang[a.oldName],this.customVars.splice(e,1)})},removeNode(e){e.parentElement!==null&&e.parentElement.removeChild(e)},insertNodeAt(e,a,l){const d=l===0?e.children[0]:e.children[l-1].nextSibling;e.insertBefore(a,d)},buildGangGrade(e){let a=[];for(const[l,d]of Object.entries(e))a.push({name:d.name,isboss:d.isboss?d.isboss:!1});return a},updateBoss(){},addGrade(){this.gangGrades.push({name:"",isboss:!1})},removeGrade(e){const a=this.gangGrades.indexOf(e);a>-1&&this.$q.dialog({component:v,componentProps:{title:this.$i18n.t("components.gang.deleteHeader"),message:this.$i18n.t("components.gang.deleteGradeMsg",{name:e.name})},cancel:!0,persistent:!0}).onOk(()=>{this.gangGrades.splice(a,1)})},trySave(){this.$refs.customVarForm.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.gang.msg.error.uniqueVars")});return}this.customVars.forEach(l=>{!l.name||(l.oldName=l.name,this.gang[l.name]=this.isNumeric(l.value)?Number(l.value):this.isBoolean(l.value))});let a={};for(const[l,d]of Object.entries(this.gangGrades)){if(!d.name)continue;const s=Object.keys(a).length;d.isboss?a[s]={name:d.name,isboss:!0}:a[s]={name:d.name}}if(Object.keys(a).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.gang.msg.error.gradeNeeded")});return}this.pendingSave=!0,this.gang.grades=a,this.$axios.patch(`/api/gangs/save/${this.$route.params.gangId}`,this.gang).then(l=>{if(this.pendingSave=!1,!l.data.resCode){const s=l.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.gang.msg.error.${s}`,{name:this.gang.name})});return}Object.keys(a).length!==this.gangGrades.length&&(this.gangGrades=this.buildGangGrade(this.gang.grades)),this.$q.notify({message:this.$i18n.t("general.success"),position:"top",color:"green",icon:"fas fa-check",caption:this.$i18n.t("general.saved")})}).catch(l=>{})})},tryDelete(){this.pendingDelete=!0,this.$q.dialog({component:v,componentProps:{title:this.$i18n.t("components.gang.deleteHeader"),message:this.$i18n.t("components.gang.deleteMsg",{name:this.$route.params.gangId})},cancel:!0,persistent:!0}).onOk(()=>{this.$axios.delete(`/api/gangs/delete/${this.$route.params.gangId}`).then(e=>{if(this.pendingDelete=!1,!e.data.resCode){const l=e.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.gang.msg.error.${l}`,{name:this.$route.params.gangId})});return}this.$q.notify({message:this.$i18n.t("general.success"),position:"top",color:"green",icon:"fas fa-check",caption:this.$i18n.t("general.deleted")}),this.$router.push({name:"dev-gang-list"})}).catch(e=>{})}).onCancel(()=>{this.pendingDelete=!1})}},mounted(){this.$axios.get(`/api/gangs/${this.$route.params.gangId}`).then(e=>{const a=e.data.gang;if(!a){this.$q.notify({message:e.data.msg,position:"top",color:"red",icon:"fas fa-exclamation-triangle",caption:"Error"});return}this.gang=a,this.gangGrades=this.buildGangGrade(this.gang.grades);for(const[s,c]of Object.entries(a))this.defaults.includes(s.toLowerCase())||this.customVars.push({name:s,value:c,oldName:s});const l=this.$el.querySelector(".q-table > draggable"),d=this;this.sortable=A.create(l,{handle:".drag-handle",animation:150,onEnd(s){s.oldIndex!==s.newIndex&&(d.removeNode(s.item),d.insertNodeAt(s.from,s.item,s.oldIndex),T(d.gangGrades,s.oldIndex,s.newIndex))}})}).catch(e=>{console.error(e)})},beforeUnmount(){this.sortable.destroy()}},x=e=>(B("data-v-7d41058c"),e=e(),Q(),e),F={class:"row"},H={class:"col-12"},L={class:"q-ma-sm row"},P={class:"text-h6"},z={class:"text-primary"},Y={class:"col-12"},W={class:"q-ma-sm row"},X={class:"row"},Z={class:"text-h6"},J={class:"text-caption text-sub"},K={class:"q-ml-auto"},ee={style:{width:"30px"},class:"text-right vertical-middle"},se={class:"col-12"},te={class:"q-ma-sm row"},ae={class:"row"},ne={class:"text-h6"},oe={class:"text-caption text-sub"},le={class:"q-ml-auto"},ie=x(()=>t("th",{class:"text-left",style:{width:"30px"}},null,-1)),re={class:"text-left",style:{"min-width":"280px"}},de={class:"text-center",style:{"min-width":"30px"}},ce=x(()=>t("th",{class:"text-right",style:{width:"30px"}},null,-1)),ge={class:"text-left"},me={class:"text-center vertical-middle"},ue={class:"text-right vertical-middle"},pe={class:"col-12"},he={class:"q-ma-sm row justify-end"};function fe(e,a,l,d,s,c){const w=D("draggable");return m(),f("div",F,[t("div",H,[t("div",L,[n(_,{class:"bg-secondary full-width row"},{default:r(()=>[n(p,{class:"col-12"},{default:r(()=>[t("div",P,[y(g(e.$t("components.gang.edit"))+": ",1),t("span",z,g(e.$route.params.gangId),1)])]),_:1}),n(p,{class:"col-12 col-md-6"},{default:r(()=>[n(b,{"label-color":"primary","input-style":{color:"var(--q-main)"},filled:"",modelValue:s.gang.label,"onUpdate:modelValue":a[0]||(a[0]=i=>s.gang.label=i),label:e.$t("components.gang.label")},null,8,["input-style","modelValue","label"])]),_:1})]),_:1})])]),t("div",Y,[t("div",W,[n(_,{class:"bg-secondary full-width row"},{default:r(()=>[n(p,{class:"col-12"},{default:r(()=>[t("div",X,[t("div",null,[t("div",Z,g(e.$t("components.gang.customVariables")),1),t("div",J,g(e.$t("components.gang.customVarSub")),1)]),t("div",K,[n(u,{"text-color":"main",color:"primary",label:e.$t("components.gang.addCustomVar"),onClick:c.addCustomVar},null,8,["label","onClick"])])])]),_:1}),n(p,{class:"col-12"},{default:r(()=>[n(M,{ref:"customVarForm"},{default:r(()=>[n(q,{class:"bg-secondary text-main",flat:"",square:"",separator:"none"},{default:r(()=>[t("tbody",null,[(m(!0),f(C,null,k(s.customVars,(i,h)=>(m(),f("tr",{key:`${h}-customVar`},[t("td",null,[n(b,{"label-color":"primary","input-style":{color:"var(--q-main)"},filled:"",modelValue:i.name,"onUpdate:modelValue":o=>i.name=o,label:e.$t("components.gang.customVarName"),"lazy-rules":"",rules:[o=>o&&o.length>0||e.$t("rules.required"),o=>o&&!/\s/.test(o)||e.$t("rules.noSpace"),o=>o&&s.customVars.filter(N=>N.name===o).length<=1||e.$t("rules.unique"),o=>o&&!s.defaults.includes(o.toLowerCase())||e.$t("rules.defaults")]},null,8,["input-style","modelValue","onUpdate:modelValue","label","rules"])]),t("td",null,[n(b,{"label-color":"primary","input-style":{color:"var(--q-main)"},filled:"",class:"q-field--with-bottom",modelValue:i.value,"onUpdate:modelValue":o=>i.value=o,label:e.$t("components.gang.customVarValue")},null,8,["input-style","modelValue","onUpdate:modelValue","label"])]),t("td",ee,[n(u,{"text-color":"main",class:"text-red-6",dense:"",flat:"",icon:"fas fa-trash",size:"xs",onClick:o=>c.removeVar(h,i)},{default:r(()=>[n(G,null,{default:r(()=>[y(g(e.$t("general.delete")),1)]),_:1})]),_:2},1032,["onClick"])])]))),128))])]),_:1})]),_:1},512)]),_:1})]),_:1})])]),t("div",se,[t("div",te,[n(_,{class:"bg-secondary full-width row"},{default:r(()=>[n(p,{class:"col-12"},{default:r(()=>[t("div",ae,[t("div",null,[t("div",ne,g(e.$t("components.gang.grades")),1),t("div",oe,g(e.$t("components.gang.gradesSub")),1)]),t("div",le,[n(u,{"text-color":"main",color:"primary",label:e.$t("components.gang.addGrade"),onClick:c.addGrade},null,8,["label","onClick"])])])]),_:1}),n(p,{class:"col-12"},{default:r(()=>[n(q,{class:"bg-secondary text-main",flat:"",square:"",separator:"none"},{default:r(()=>[t("thead",null,[t("tr",null,[ie,t("th",re,g(e.$t("components.gang.headers.name")),1),t("th",de,g(e.$t("components.gang.headers.isboss")),1),ce])]),n(w,{modelValue:s.gangGrades,"onUpdate:modelValue":a[1]||(a[1]=i=>s.gangGrades=i),style:{display:"table-row-group"},tag:"tbody"},{default:r(()=>[(m(!0),f(C,null,k(s.gangGrades,(i,h)=>(m(),f("tr",{class:"grade-table",key:`${i.isboss}-${h}`},[t("td",null,[n(O,{name:"fas fa-bars",class:"drag-handle"})]),t("td",ge,[n(b,{"label-color":"primary","input-style":{color:"var(--q-main)"},filled:"",label:e.$t("components.gang.headers.name"),modelValue:i.name,"onUpdate:modelValue":o=>i.name=o},null,8,["input-style","label","modelValue","onUpdate:modelValue"])]),t("td",me,[n(U,{onClick:o=>c.updateBoss(i,h),modelValue:i.isboss,"onUpdate:modelValue":o=>i.isboss=o},null,8,["onClick","modelValue","onUpdate:modelValue"])]),t("td",ue,[n(u,{"text-color":"main",class:"text-red-6",dense:"",flat:"",icon:"fas fa-trash",size:"xs",onClick:o=>c.removeGrade(i)},{default:r(()=>[n(G,null,{default:r(()=>[y(g(e.$t("general.delete")),1)]),_:1})]),_:2},1032,["onClick"])])]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1})])]),t("div",pe,[t("div",he,[n(u,{"text-color":"main",disable:s.pendingDelete||s.pendingSave,color:"primary",onClick:a[2]||(a[2]=i=>e.$router.push({name:"dev-gang-list"})),label:e.$t("general.back"),class:"q-mr-auto"},null,8,["disable","label"]),c.can(s.ACTION.DEV.GANG.MODIFY,s.RESOURCE.DEV)?(m(),$(u,{key:0,"text-color":"main",loading:s.pendingSave,disable:s.pendingDelete,color:"primary",onClick:c.trySave,label:e.$t("general.save"),class:"q-mr-sm"},null,8,["loading","disable","onClick","label"])):V("",!0),c.can(s.ACTION.DEV.GANG.DELETE,s.RESOURCE.DEV)?(m(),$(u,{key:1,"text-color":"main",loading:s.pendingDelete,disable:s.pendingSave,color:"negative",onClick:c.tryDelete,label:e.$t("general.delete")},null,8,["loading","disable","onClick","label"])):V("",!0)])])])}const xe=S(R,[["render",fe],["__scopeId","data-v-7d41058c"]]);export{xe as default};
|