mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-28 05:30:55 +00:00
2 lines
5.9 KiB
JavaScript
2 lines
5.9 KiB
JavaScript
import{f as ne,d as ae,az as te,r as i,aR as ie,m as oe,n as re,j as e,v as n,I as N,B as I,t as p}from"./index-7T7TTikv.js";import{u as me}from"./index.esm-BRNlF2G3.js";import{u as le,o as ce,a as de,s as h}from"./zod-D-9d3Txu.js";import{F as pe,a as y,b as j,c as f,d as F,e as b}from"./form-lLGtsTgY.js";import{u as ue}from"./usePositionTypes-BnS1UB0m.js";import{u as ge,P as xe,p as w}from"./useApplications-Czki0Urb.js";import{u as he}from"./useUnit-CRt6YBLp.js";import{S as M,a as T,b as k,c as A,d as L}from"./select--i8koVXg.js";import{S as V}from"./single-select-CqAjmX3L.js";import{g as ye}from"./organizationsService-DIFVjoLn.js";import{C as je,a as fe,b as be,d as Se}from"./card-_ldW-koX.js";import"./label-CABYEcfW.js";import"./checkbox-CTVlz2xL.js";import"./Checkbox-CAXGYFGh.js";import"./get-auto-contrast-value-Da6zqqWm.js";import"./InputsGroupFieldset-B16dMH0P.js";import"./use-uncontrolled-tg0LIUAX.js";import"./search-y8VSu0lZ.js";import"./unitService-DTtkt-Pb.js";import"./popover-CSKEA8hg.js";import"./Popover-BSKEfTKH.js";import"./command-B6S1IvD4.js";const Ce=ce({nameAm:h().min(2),nameEn:h().min(2),permissions:de(h())}),Pe=()=>{const O=ne(),{createPositionType:E,positionTypes:U,isLoading:q}=ue(),{user:o}=ae(),{getList:Q}=he(),r=te(),B=o!=null&&o.employee&&o.employee.length>0?o.employee[0].organizationId:void 0,[l,H]=i.useState(B??""),[u,S]=i.useState(""),[C,K]=i.useState(""),[R,D]=i.useState(""),[P,v]=i.useState(!1),G=ie.language,{applications:g,isLoading:J}=ge(),z=oe(),{data:c,isLoading:W}=re({queryKey:["organizations","filter",{take:3e3}],queryFn:async()=>{const{data:s}=await ye({take:3e3});return{count:s.count,items:s.items}},staleTime:300*1e3}),{data:d,isLoading:X}=Q(l,{take:3e3,skip:0}),Y=i.useMemo(()=>((c==null?void 0:c.items)??[]).map(s=>({value:s.id,label:r(s.name)||s.id})),[c,r]),Z=i.useMemo(()=>{var s;return(((s=d==null?void 0:d.data)==null?void 0:s.items)??[]).map(t=>({value:t.id,label:r(t.name)||t.id}))},[d,r]);i.useEffect(()=>{S("")},[l]);const a=me({resolver:le(Ce),defaultValues:{nameAm:"",nameEn:"",permissions:[]}}),_=(s,t)=>{const m=a.getValues("permissions");t?a.setValue("permissions",[...m,s]):a.setValue("permissions",m.filter(x=>x!==s))},$=async s=>{var t;if(D(s),!s){a.setValue("permissions",[]);return}v(!0);try{const x=((t=(await w.getPermissionsByPositionTypeId(s)).data.items)==null?void 0:t.map(se=>se.id))??[];a.setValue("permissions",x)}catch{p.error(n("contentManagement.copyPermissionsFailed"))}finally{v(!1)}},ee=async s=>{try{if(!u){p.error(n("organization.selectUnit"));return}const m=(await E.mutateAsync({name:{am:s.nameAm,en:s.nameEn},key:s.nameEn.toLowerCase().replace(/\s+/g,"-"),unitId:u})).data.id;s.permissions.length>0&&await w.assignPermissionsToPositionType({firstId:m,secondIds:s.permissions}),z.invalidateQueries({queryKey:["position-type"]}),z.invalidateQueries({queryKey:["position-types"]}),p.success(n("contentManagement.permissionSuccess")),O("/user-management/position-management")}catch{p.error(n("contentManagement.permissionSuccess"))}};return e.jsx(pe,{...a,children:e.jsxs("form",{onSubmit:a.handleSubmit(ee),className:"space-y-6",children:[e.jsx(y,{control:a.control,name:"nameEn",render:({field:s})=>e.jsxs(j,{children:[e.jsx(f,{children:n("contentManagement.englishName")}),e.jsx(F,{children:e.jsx(N,{...s,placeholder:"e.g. HR Coordinator"})}),e.jsx(b,{})]})}),e.jsx(y,{control:a.control,name:"nameAm",render:({field:s})=>e.jsxs(j,{children:[e.jsx(f,{children:n("contentManagement.amharicName")}),e.jsx(F,{children:e.jsx(N,{...s,placeholder:"e.g. ሰብል አያት"})}),e.jsx(b,{})]})}),e.jsxs("div",{className:"mb-4 w-full",children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:n("organization.organization")||"Organization"}),e.jsx(V,{options:Y,value:l,onValueChange:H,placeholder:W?n("common.loading"):n("organization.selectOrganization")||"Select an organization"})]}),e.jsxs("div",{className:"mb-4 w-full",children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-1",children:n("organization.selectUnit")}),e.jsx(V,{options:Z,value:u,onValueChange:S,placeholder:l?X?n("common.loading"):n("organization.selectUnit"):n("organization.selectOrganizationFirst")||"Select an organization first"})]}),e.jsxs("div",{className:"mb-4 w-1/2",children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700",children:n("contentManagement.selectApplication")}),e.jsxs(M,{value:C,onValueChange:s=>K(s),disabled:J,children:[e.jsx(T,{className:"mt-1 block w-full border-gray-300 rounded-md shadow-sm",children:e.jsx(k,{placeholder:"Select an Application"})}),e.jsx(A,{className:"max-h-60 overflow-y-auto",children:g==null?void 0:g.map(s=>e.jsx(L,{value:s.id,children:G==="en"?s.name.en:s.name.am},s.id))})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700",children:n("contentManagement.copyPermissionsFrom")}),e.jsxs(M,{value:R,onValueChange:$,disabled:q||P,children:[e.jsx(T,{className:"w-full",children:e.jsx(k,{placeholder:P?n("common.loading"):n("contentManagement.selectPositionToCopy")})}),e.jsx(A,{className:"max-h-60 overflow-y-auto",children:U.map(s=>e.jsx(L,{value:s.id,children:r(s.name)},s.id))})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:n("contentManagement.copyPermissionsHint")})]}),e.jsx(y,{control:a.control,name:"permissions",render:({field:s})=>e.jsxs(j,{children:[e.jsx(f,{children:n("contentManagement.permission")}),e.jsx(xe,{selectedPermissions:s.value,onPermissionChange:_,applicationId:C}),e.jsx(b,{})]})}),e.jsxs("div",{className:"flex justify-end gap-4",children:[e.jsx(I,{type:"button",variant:"outline",onClick:()=>window.history.back(),children:n("common.Cancel")}),e.jsx(I,{type:"submit",children:n("delegation.save")})]})]})})},Ge=()=>e.jsx("div",{className:"p-6 max-w-3xl mx-auto",children:e.jsxs(je,{children:[e.jsx(fe,{children:e.jsx(be,{children:n("contentManagement.createPermission")})}),e.jsx(Se,{children:e.jsx(Pe,{})})]})});export{Ge as default};
|