2 lines
14 KiB
JavaScript
2 lines
14 KiB
JavaScript
import{r as m,j as s}from"./ui-Z445SNHD.js";import{P as me}from"./page-template-CDooloYn.js";import{u as pe,c as de,x as ce,P as ue,B as ge,r as p,t as o}from"./app-BJfYyIIX.js";import{C as he}from"./CrudTable-CXIIn3vQ.js";import{C as be}from"./CrudFormModal-I0cLiJrd.js";import{C as _e}from"./CrudDeleteModal-B6HMcwYN.js";import{P as fe}from"./pagination-CkJ-fhRF.js";import{S as ve}from"./search-and-filter-bar-BqVa3_Yk.js";import{C as ye}from"./calendar-CbSq6zTy.js";import{f as I}from"./utils-BWxnHGCV.js";import"./textarea-Am1DxbQR.js";import"./select-v6HfP-lT.js";import"./index-BdQq_4o_.js";import"./index-9MclThM-.js";import"./chevron-up-C77P-Xnl.js";import"./react-country-flag.esm-Bs2jngHP.js";import"./language-BbwPiY59.js";import"./sparkles-DiRyEFzz.js";import"./loader-circle-BSOgoX7W.js";import"./copy-C-oQ_m_8.js";import"./CookieConsentBanner-C38N4PTk.js";import"./refresh-cw-ALYE7VHu.js";import"./globe-BDbxh4XP.js";import"./settings-iEK2zkZs.js";import"./switch-Cx2aNaqN.js";import"./chevron-right-C_sLmqOC.js";import"./layout-grid-CoeIbdlV.js";import"./briefcase-XD6VuWqm.js";import"./credit-card-7DJJO-Xg.js";import"./gift-BfcFhtsh.js";import"./users-TIev6QWg.js";import"./calendar-days-C8NX5zeY.js";import"./clock-Dx30a3fw.js";import"./timer-BEVp3YT6.js";import"./dollar-sign-GjiaL2_k.js";import"./coins-Bsoy02xu.js";import"./index-BFT_C1pH.js";import"./user-DLrpac_w.js";import"./log-out-BMSBi6tX.js";/* empty css *//* empty css */import"./table-Dfaf1ArC.js";import"./unlink-CSSaKX1C.js";import"./scale-DITx6obc.js";import"./arrow-down-left-HrajnKrs.js";import"./arrow-left-CPwg9j8r.js";import"./arrow-right-left-Vtg0YaAj.js";import"./arrow-right-Ci67tnlN.js";import"./arrow-up-down-EbVjlgTv.js";import"./lock-open-BhIWs4jd.js";import"./award-CHhopoZe.js";import"./ban-DnM0zgR7.js";import"./indian-rupee-DPO8qQHc.js";import"./bell-BCDzorcc.js";import"./book-open-Cp3YBRXY.js";import"./boxes-jH_m8Erv.js";import"./building-2-Cj2jEVV4.js";import"./building-R1behtTx.js";import"./calculator-DeIZ_ZnG.js";import"./calendar-check-B97zAIH7.js";import"./camera-BPbWGWIp.js";import"./chart-column-CmESNu9-.js";import"./chart-no-axes-column-increasing-Ca2j90iV.js";import"./chart-no-axes-column-DKaCwpqd.js";import"./chevron-left-DjVFv1BX.js";import"./circle-alert-BUzHLR-o.js";import"./circle-check-big-CcY08IiJ.js";import"./circle-check-DqHPFLFb.js";import"./circle-help-PqoQB1MX.js";import"./circle-x-DaE5iCCq.js";import"./circle-DWyWs_iS.js";import"./clipboard-list-DHcKg6dk.js";import"./code-mWJntjLp.js";import"./crosshair-DC2k-Gat.js";import"./crown-BdRqXyJ4.js";import"./download-BQYC1kvZ.js";import"./external-link-C8fDH340.js";import"./eye-off-BWt-tbtR.js";import"./eye-bHRQkV_M.js";import"./instagram-BGFGLm0A.js";import"./file-down-DdAdFDO0.js";import"./file-up-nnRIZR-c.js";import"./filter-CC8qq1a5.js";import"./house-CP2gbXUp.js";import"./git-branch-6GYnMk0R.js";import"./grip-vertical-79loVX39.js";import"./hard-drive-Df2an8KV.js";import"./hash-B51tGSz7.js";import"./heart-COE1qsyT.js";import"./info-9TBDJdqu.js";import"./key-o09zqxH4.js";import"./layers-C9iGGCGA.js";import"./lightbulb-K-Y_5YRB.js";import"./link-2-CR0KRHLP.js";import"./link-C6CCqWCl.js";import"./twitter-AWZbUS3C.js";import"./list-Ds3PdXRr.js";import"./lock-BIgt4mUB.js";import"./log-in-D4oQHz9u.js";import"./mail-C0lU3gWz.js";import"./map-pin-DLXmT6vb.js";import"./menu-R8g6P5hx.js";import"./message-square-warning-Dm7PgWIQ.js";import"./message-square-sYeVMJIP.js";import"./monitor-B58WrREO.js";import"./package-CKBK6gna.js";import"./percent-D5F6QCv7.js";import"./phone-D7CEVFIv.js";import"./plane-KS8dzK3k.js";import"./play-Cdfobb7v.js";import"./qr-code-DE8ihwxi.js";import"./quote-D-YN78OJ.js";import"./ruler-DPRgRDAW.js";import"./send-CP2EW1aB.js";import"./server-BlMiJO2V.js";import"./wifi-0CnlAuL6.js";import"./shield-check-uR9kl8S3.js";import"./shield-D4lNYMUI.js";import"./square-check-big-w_EmGz-9.js";import"./square-pen-CtvYVz4A.js";import"./star-B6re2o3I.js";import"./sun-s4Qh-lo7.js";import"./tag-D3UUs3NH.js";import"./target-Tqqh32oJ.js";import"./thumbs-up-BUs9xhvK.js";import"./ticket-gUCzNpKq.js";import"./trash-2-CUSPqIMQ.js";import"./trash-BMNHUWub.js";import"./trending-down-B0KCstqH.js";import"./trending-up-BP28QOMf.js";import"./triangle-alert-DzZt-B82.js";import"./trophy-_nNwkq4U.js";import"./type-CV-12-co.js";import"./user-check-BAzI_pqD.js";import"./user-plus-CIf52zHT.js";import"./user-x-ZeBdhs4I.js";import"./wallet-CSYigBrV.js";import"./wrench-DGxlm__Y.js";import"./zap-DtypiZBz.js";import"./radio-group-KOpzhUXP.js";import"./checkbox-D89mOuIk.js";import"./scroll-area-oGCj-C9A.js";function ti(){var E,L,q,V,R;const{t:e}=pe(),{auth:y,trainingSessions:n,trainingPrograms:$,employees:U,filters:l={}}=de().props,C=(y==null?void 0:y.permissions)||[],[d,j]=m.useState(l.search||""),[c,P]=m.useState(l.training_program_id||""),[u,w]=m.useState(l.status||""),[g,T]=m.useState(l.location_type||""),[h,D]=m.useState(l.date_from||""),[b,F]=m.useState(l.date_to||""),[z,N]=m.useState(!1),[H,x]=m.useState(!1),[G,f]=m.useState(!1),[a,k]=m.useState(null),[_,A]=m.useState("create"),J=()=>c!==""||u!==""||g!==""||h!==""||b!==""||d!=="",K=()=>(c!==""?1:0)+(u!==""?1:0)+(g!==""?1:0)+(h!==""?1:0)+(b!==""?1:0)+(d!==""?1:0),Q=t=>{t.preventDefault(),O()},X=()=>{p.get(route("hr.training-sessions.calendar"))},O=()=>{p.get(route("hr.training-sessions.index"),{page:1,search:d||void 0,training_program_id:c||void 0,status:u||void 0,location_type:g||void 0,date_from:h||void 0,date_to:b||void 0,per_page:l.per_page},{preserveState:!0,preserveScroll:!0})},Y=t=>{const r=l.sort_field===t&&l.sort_direction==="asc"?"desc":"asc";p.get(route("hr.training-sessions.index"),{sort_field:t,sort_direction:r,page:1,search:d||void 0,training_program_id:c||void 0,status:u||void 0,location_type:g||void 0,date_from:h||void 0,date_to:b||void 0,per_page:l.per_page},{preserveState:!0,preserveScroll:!0})},Z=(t,r)=>{switch(k(r),t){case"view":p.get(route("hr.training-sessions.show",r.id));break;case"edit":A("edit"),f(!0);break;case"delete":x(!0);break}},ee=()=>{k(null),A("create"),f(!0)},te=t=>{const r={...t};_==="create"?(o.loading(e("Creating training session...")),p.post(route("hr.training-sessions.store"),r,{onSuccess:i=>{f(!1),o.dismiss(),i.props.flash.success?o.success(e(i.props.flash.success)):i.props.flash.error&&o.error(e(i.props.flash.error))},onError:i=>{o.dismiss(),typeof i=="string"?o.error(e(i)):o.error(e("Failed to create training session: {{errors}}",{errors:Object.values(i).join(", ")}))}})):_==="edit"&&(o.loading(e("Updating training session...")),p.put(route("hr.training-sessions.update",a.id),r,{onSuccess:i=>{f(!1),o.dismiss(),i.props.flash.success?o.success(e(i.props.flash.success)):i.props.flash.error&&o.error(e(i.props.flash.error))},onError:i=>{o.dismiss(),typeof i=="string"?o.error(e(i)):o.error(e("Failed to update training session: {{errors}}",{errors:Object.values(i).join(", ")}))}}))},re=()=>{o.loading(e("Deleting training session...")),p.delete(route("hr.training-sessions.destroy",a.id),{onSuccess:t=>{x(!1),o.dismiss(),t.props.flash.success?o.success(e(t.props.flash.success)):t.props.flash.error&&o.error(e(t.props.flash.error))},onError:t=>{o.dismiss(),typeof t=="string"?o.error(e(t)):o.error(e("Failed to delete training session: {{errors}}",{errors:Object.values(t).join(", ")}))}})},ie=()=>{j(""),P(""),w(""),T(""),D(""),F(""),N(!1),p.get(route("hr.training-sessions.index"),{page:1,per_page:l.per_page},{preserveState:!0,preserveScroll:!0})},S=[];S.push({label:e("Calendar View"),icon:s.jsx(ye,{className:"h-4 w-4 mr-2"}),variant:"outline",onClick:X}),ce(C,"create-training-sessions")&&S.push({label:e("Add Session"),icon:s.jsx(ue,{className:"h-4 w-4 mr-2"}),variant:"default",onClick:()=>ee()});const se=[{title:e("Dashboard"),href:route("dashboard")},{title:e("HR Management"),href:route("hr.training-sessions.index")},{title:e("Training Management"),href:route("hr.training-sessions.index")},{title:e("Training Sessions")}],oe=[{key:"program",label:e("Program"),render:(t,r)=>{var i,v;return s.jsxs("div",{children:[s.jsx("div",{className:"font-medium",children:r.name||((i=r.training_program)==null?void 0:i.name)||"-"}),s.jsx("div",{className:"text-xs text-gray-500",children:((v=r.training_program)==null?void 0:v.name)||"-"})]})}},{key:"date_time",label:e("Date & Time"),sortable:!0,sortField:"start_date",render:(t,r)=>{var i,v,W,B;return s.jsx("div",{children:s.jsxs("div",{className:"text-xs text-gray-500",children:[((v=(i=window.appSettings)==null?void 0:i.formatDateTimeSimple(r.start_date,!0))==null?void 0:v.split(" ").slice(-2).join(" "))||I(new Date(r.start_date),"h:mm a")," - ",((B=(W=window.appSettings)==null?void 0:W.formatDateTimeSimple(r.end_date,!0))==null?void 0:B.split(" ").slice(-2).join(" "))||I(new Date(r.end_date),"h:mm a")]})})}},{key:"location",label:e("Location"),render:(t,r)=>s.jsxs("div",{children:[s.jsx("div",{children:t||"-"}),s.jsx(ge,{variant:"outline",className:r.location_type==="virtual"?"bg-blue-50 text-blue-700":"bg-green-50 text-green-700",children:r.location_type==="virtual"?e("Virtual"):e("Physical")})]})},{key:"status",label:e("Status"),sortable:!0,render:t=>{const r={scheduled:"bg-blue-50 text-blue-700 ring-blue-600/20",in_progress:"bg-amber-50 text-amber-700 ring-amber-600/20",completed:"bg-green-50 text-green-700 ring-green-600/20",cancelled:"bg-red-50 text-red-700 ring-red-600/20"};return s.jsx("span",{className:`inline-flex items-center rounded-md px-2 py-1 text-xs font-medium ring-1 ring-inset ${r[t]||""}`,children:t.charAt(0).toUpperCase()+t.slice(1).replace("_"," ")})}},{key:"trainers",label:e("Trainers"),render:t=>!t||t.length===0?"-":s.jsxs("div",{className:"space-y-1",children:[t.slice(0,2).map(r=>s.jsx("div",{className:"text-sm",children:r.name},r.id)),t.length>2&&s.jsxs("div",{className:"text-xs text-gray-500",children:["+",t.length-2," more"]})]})},{key:"attendance_count",label:e("Attendance"),render:t=>t||"0"}],ae=[{label:e("View"),icon:"Eye",action:"view",className:"text-blue-500",requiredPermission:"view-training-sessions"},{label:e("Edit"),icon:"Edit",action:"edit",className:"text-amber-500",requiredPermission:"edit-training-sessions"},{label:e("Delete"),icon:"Trash2",action:"delete",className:"text-red-500",requiredPermission:"delete-training-sessions"}],M=[{value:"",label:e("All Programs")},...($||[]).map(t=>({value:t.id.toString(),label:t.name}))],ne=[{value:"",label:e("All Statuses")},{value:"scheduled",label:e("Scheduled")},{value:"in_progress",label:e("In Progress")},{value:"completed",label:e("Completed")},{value:"cancelled",label:e("Cancelled")}],le=[{value:"",label:e("All Locations")},{value:"physical",label:e("Physical")},{value:"virtual",label:e("Virtual")}];return s.jsxs(me,{title:e("Training Sessions"),url:"/hr/training/sessions",actions:S,breadcrumbs:se,noPadding:!0,children:[s.jsx("div",{className:"bg-white dark:bg-gray-900 rounded-lg shadow mb-4 p-4",children:s.jsx(ve,{searchTerm:d,onSearchChange:j,onSearch:Q,filters:[{name:"training_program_id",label:e("Program"),type:"select",value:c,onChange:P,options:M},{name:"status",label:e("Status"),type:"select",value:u,onChange:w,options:ne},{name:"location_type",label:e("Location Type"),type:"select",value:g,onChange:T,options:le},{name:"date_from",label:e("Date From"),type:"date",value:h,onChange:D},{name:"date_to",label:e("Date To"),type:"date",value:b,onChange:F}],showFilters:z,setShowFilters:N,hasActiveFilters:J,activeFilterCount:K,onResetFilters:ie,onApplyFilters:O,currentPerPage:((E=l.per_page)==null?void 0:E.toString())||"10",onPerPageChange:t=>{p.get(route("hr.training-sessions.index"),{page:1,per_page:parseInt(t),search:d||void 0,training_program_id:c||void 0,status:u||void 0,location_type:g||void 0,date_from:h||void 0,date_to:b||void 0},{preserveState:!0,preserveScroll:!0})}})}),s.jsxs("div",{className:"bg-white dark:bg-gray-900 rounded-lg shadow overflow-hidden",children:[s.jsx(he,{columns:oe,actions:ae,data:(n==null?void 0:n.data)||[],from:(n==null?void 0:n.from)||1,onAction:Z,sortField:l.sort_field,sortDirection:l.sort_direction,onSort:Y,permissions:C,entityPermissions:{view:"view-training-sessions",create:"create-training-sessions",edit:"edit-training-sessions",delete:"delete-training-sessions"}}),s.jsx(fe,{from:(n==null?void 0:n.from)||0,to:(n==null?void 0:n.to)||0,total:(n==null?void 0:n.total)||0,links:n==null?void 0:n.links,entityName:e("training sessions"),onPageChange:t=>p.get(t)})]}),s.jsx(be,{isOpen:G,onClose:()=>f(!1),onSubmit:te,formConfig:{fields:[{name:"training_program_id",label:e("Training Program"),type:"select",required:!0,options:M.filter(t=>t.value!=="")},{name:"name",label:e("Session Name"),type:"text",helpText:e("Leave blank to use program name")},{name:"start_date",label:e("Start Date"),type:"date",required:!0},{name:"end_date",label:e("End Date"),type:"date",required:!0},{name:"location_type",label:e("Location Type"),type:"select",required:!0,options:[{value:"physical",label:e("Physical")},{value:"virtual",label:e("Virtual")}]},{name:"location",label:e("Location"),type:"text",showWhen:t=>t.location_type==="physical"},{name:"meeting_link",label:e("Meeting Link"),type:"text",showWhen:t=>t.location_type==="virtual"},{name:"status",label:e("Status"),type:"select",required:!0,options:[{value:"scheduled",label:e("Scheduled")},{value:"in_progress",label:e("In Progress")},{value:"completed",label:e("Completed")},{value:"cancelled",label:e("Cancelled")}]},{name:"notes",label:e("Notes"),type:"textarea"},{name:"trainer_ids",label:e("Trainers"),type:"multi-select",options:(U||[]).map(t=>({value:t.id.toString(),label:`${t.name} (${t.employee_id})`}))},{name:"is_recurring",label:e("Recurring Session"),type:"checkbox",showWhen:t=>_==="create"},{name:"recurrence_pattern",label:e("Recurrence Pattern"),type:"select",options:[{value:"daily",label:e("Daily")},{value:"weekly",label:e("Weekly")},{value:"monthly",label:e("Monthly")}],showWhen:t=>t.is_recurring},{name:"recurrence_count",label:e("Number of Occurrences"),type:"number",min:1,max:52,showWhen:t=>t.is_recurring}],modalSize:"lg"},initialData:a?{...a,start_date:a.start_date?a.start_date.split(" ")[0]:"",start_time:a.start_date?(L=a.start_date.split(" ")[1])==null?void 0:L.substring(0,5):"",end_date:a.end_date?a.end_date.split(" ")[0]:"",end_time:a.end_date?(q=a.end_date.split(" ")[1])==null?void 0:q.substring(0,5):"",trainer_ids:(V=a.trainers)==null?void 0:V.map(t=>t.id.toString())}:null,title:e(_==="create"?"Add New Training Session":_==="edit"?"Edit Training Session":"View Training Session"),mode:_}),s.jsx(_e,{isOpen:H,onClose:()=>x(!1),onConfirm:re,itemName:(a==null?void 0:a.name)||((R=a==null?void 0:a.training_program)==null?void 0:R.name)||"",entityName:"training session"})]})}export{ti as default};
|