2 lines
8.2 KiB
JavaScript
2 lines
8.2 KiB
JavaScript
import{b as A,r as _,j as e}from"./vendor-BKmmeuxg.js";import{C as u}from"./combobox-Byd5-E0j.js";import{I as n}from"./input-error-LaPr_4wd.js";import{L}from"./loading-button-BnTVAMJ7.js";import{A as v,a as y,c as f}from"./accordion-CNBvFN43.js";import{C as H}from"./card-D9_SJYq6.js";import{C as R}from"./checkbox-BBZKtHnN.js";import{I as o}from"./input-DM0goJrn.js";import{L as a}from"./label-HmIcv5Yx.js";import{R as b,a as C}from"./radio-group-C0C2vfl-.js";import{S as z,a as P,b as B,c as G,d as w}from"./select-CD9o3HN1.js";import{T as $}from"./textarea-CyndvowL.js";import{c as q}from"./course-durations-B0f021Xm.js";import{u as J}from"./use-auth-NG-DQJrC.js";import{D as K}from"./layout-DkwBWm5d.js";import{o as N}from"./inertia-SZXqLvQm.js";import{k as O}from"./richtor-CRcM6Du2.js";import"./button-BpNwv2aE.js";import"./index-WW_1X1qx.js";import"./utils-DxSsnXxD.js";import"./popover-B4kBsMuI.js";import"./sidebar-BYcYxQeZ.js";import"./separator-_3LZ_wAA.js";import"./sheet-DSvHVmaW.js";import"./tooltip-BsX7Z6vz.js";import"./main-_V386djS.js";import"./index-D9-QKOod.js";import"./appearance-D2z3xcjR.js";import"./dropdown-menu-DO-po5c1.js";import"./app-BytVvUs_.js";/* empty css */import"./language-BFZ7KItL.js";import"./notification-CYMPYbAP.js";import"./scroll-area-C8HGru-R.js";import"./app-logo-CmnEIwal.js";import"./route-B4ZMN77y.js";import"./avatar-j28afJTV.js";import"./use-lang-YfV87_zl.js";const Q=m=>{var j;const{user:l}=J(),{categories:x,instructors:h,system:c,translate:S}=m,{input:p}=S,{data:r,setData:t,post:k,errors:i,processing:I}=A({title:"",short_description:"",description:"",status:"draft",level:"",pricing_type:"paid",price:"",discount:!1,discount_price:"",duration_hours:1,duration_minutes:0,pass_mark:50,max_attempts:3,total_marks:100,expiry_type:"lifetime",expiry_duration:"",thumbnail:null,instructor_id:l.role==="admin"&&c.sub_type==="collaborative"?"":l.instructor_id,exam_category_id:""}),E=s=>{s.preventDefault(),k(route("exams.store"))},D=_.useMemo(()=>x.map(s=>({label:s.title,value:s.id.toString()})),[x]),F=_.useMemo(()=>h.map(s=>({label:s.user.name,value:s.id.toString()})),[h]),T=["beginner","intermediate","advanced"],M=["paid","free"],V=["lifetime","limited_time"];return e.jsx(H,{className:"container p-6",children:e.jsxs("form",{onSubmit:E,className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-1 gap-6 md:grid-cols-2",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx(a,{children:"Exam Title *"}),e.jsx(o,{name:"title",value:r.title,onChange:s=>N(s,t),placeholder:"Enter exam title"}),e.jsx(n,{message:i.title})]}),e.jsxs("div",{children:[e.jsx(a,{children:"Short Description"}),e.jsx($,{rows:5,name:"short_description",value:r.short_description,onChange:s=>N(s,t),placeholder:"Brief description for exam cards"}),e.jsx(n,{message:i.short_description})]}),e.jsxs("div",{children:[e.jsx(a,{children:"Description"}),e.jsx(O,{ssr:!0,output:"html",placeholder:{paragraph:"Enter detailed exam description...",imageCaption:"Enter detailed exam description..."},contentMinHeight:256,contentMaxHeight:640,initialContent:r.description,onContentChange:s=>t(d=>({...d,description:s}))}),e.jsx(n,{message:i.description})]})]}),e.jsxs("div",{className:"space-y-4",children:[(l==null?void 0:l.role)==="admin"&&(c==null?void 0:c.sub_type)==="collaborative"&&e.jsxs("div",{children:[e.jsx(a,{htmlFor:"instructor_id",children:"Exam Instructor *"}),e.jsx(u,{data:F||[],placeholder:"Select instructor",defaultValue:((j=r.instructor_id)==null?void 0:j.toString())||"",onSelect:s=>t("instructor_id",s.value)}),e.jsx(n,{message:i.instructor_id})]}),e.jsxs("div",{className:"grid gap-6 md:grid-cols-2",children:[e.jsxs("div",{children:[e.jsx(a,{htmlFor:"exam_category_id",children:"Category *"}),e.jsx(u,{data:D,placeholder:"Select category",onSelect:s=>{t("exam_category_id",s.value)}}),e.jsx(n,{message:i.exam_category_id})]}),e.jsxs("div",{children:[e.jsx(a,{htmlFor:"level",children:"Difficulty Level *"}),e.jsxs(z,{value:r.level,onValueChange:s=>t("level",s),children:[e.jsx(P,{children:e.jsx(B,{placeholder:"Select level"})}),e.jsx(G,{children:T.map(s=>e.jsx(w,{value:s,className:"capitalize",children:s},s))})]}),e.jsx(n,{message:i.level})]})]}),e.jsxs("div",{className:"grid gap-6 md:grid-cols-3",children:[e.jsxs("div",{children:[e.jsx(a,{children:"Duration (Hours) *"}),e.jsx(o,{type:"number",name:"duration_hours",value:r.duration_hours.toString(),onChange:s=>t("duration_hours",parseInt(s.target.value)||0),placeholder:"1",min:"0"}),e.jsx(n,{message:i.duration_hours})]}),e.jsxs("div",{children:[e.jsx(a,{children:"Duration (Minutes) *"}),e.jsx(o,{type:"number",name:"duration_minutes",value:r.duration_minutes.toString(),onChange:s=>t("duration_minutes",parseInt(s.target.value)||0),placeholder:"0",min:"0",max:"59"}),e.jsx(n,{message:i.duration_minutes})]}),e.jsxs("div",{children:[e.jsx(a,{children:"Pass Mark *"}),e.jsx(o,{type:"number",name:"pass_mark",value:r.pass_mark.toString(),onChange:s=>t("pass_mark",parseInt(s.target.value)||0),placeholder:"50",min:"0",max:"100"}),e.jsx(n,{message:i.pass_mark})]})]}),e.jsxs("div",{className:"grid gap-6 md:grid-cols-2",children:[e.jsxs("div",{children:[e.jsx(a,{children:"Max Attempts *"}),e.jsx(o,{type:"number",name:"max_attempts",value:r.max_attempts.toString(),onChange:s=>t("max_attempts",parseInt(s.target.value)||1),placeholder:"3",min:"1"}),e.jsx(n,{message:i.max_attempts})]}),e.jsxs("div",{children:[e.jsx(a,{children:"Total Marks *"}),e.jsx(o,{type:"number",name:"total_marks",value:r.total_marks.toString(),onChange:s=>t("total_marks",parseInt(s.target.value)||1),placeholder:"100",min:"1"}),e.jsx(n,{message:i.total_marks})]})]}),e.jsxs("div",{children:[e.jsx(a,{children:"Pricing Type *"}),e.jsx(b,{defaultValue:r.pricing_type,className:"flex items-center space-x-4 pt-2 pb-1",onValueChange:s=>t("pricing_type",s),children:M.map(s=>e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(C,{className:"cursor-pointer",id:s,value:s}),e.jsx(a,{htmlFor:s,className:"cursor-pointer capitalize",children:s})]},s))}),e.jsx(n,{message:i.pricing_type}),e.jsx(v,{collapsible:!0,type:"single",value:r.pricing_type,children:e.jsx(y,{value:"paid",className:"border-none",children:e.jsxs(f,{className:"space-y-4 p-0.5",children:[e.jsxs("div",{className:"pt-3",children:[e.jsx(a,{htmlFor:"price",children:"Price *"}),e.jsx(o,{type:"number",name:"price",value:r.price.toString(),onChange:s=>t("price",s.target.value),placeholder:"Enter your exam price ($0)"}),e.jsx(n,{message:i.price})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(R,{id:"discount",name:"discount",checked:r.discount,onCheckedChange:s=>{t("discount",s===!0)}}),e.jsx(a,{htmlFor:"discount",className:"cursor-pointer",children:"Exam Discount"})]}),r.discount&&e.jsxs("div",{children:[e.jsx(o,{type:"number",name:"discount_price",value:r.discount_price.toString(),onChange:s=>t("discount_price",s.target.value),placeholder:"Enter discount price"}),e.jsx(n,{message:i.discount_price})]})]})]})})})]}),e.jsxs("div",{children:[e.jsx(a,{children:p.expiry_period_type}),e.jsx(b,{defaultValue:r.expiry_type,className:"flex items-center space-x-4 pt-2 pb-1",onValueChange:s=>t("expiry_type",s),children:V.map(s=>e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(C,{className:"cursor-pointer",id:s,value:s}),e.jsx(a,{htmlFor:s,className:"capitalize",children:s.replace("_"," ")})]},s))}),e.jsx(n,{message:i.expiry_type}),e.jsx(v,{collapsible:!0,type:"single",value:r.expiry_type,children:e.jsx(y,{value:"limited_time",className:"border-none",children:e.jsx(f,{className:"space-y-4 p-0.5",children:e.jsxs("div",{className:"pt-3",children:[e.jsx(a,{htmlFor:"expiry_duration",children:p.expiry_duration}),e.jsx(u,{defaultValue:r.expiry_duration,data:q,placeholder:p.expiry_duration_placeholder||"Select duration",onSelect:s=>t("expiry_duration",s.value)}),e.jsx(n,{message:i.expiry_duration})]})})})})]}),e.jsxs("div",{children:[e.jsx(a,{htmlFor:"thumbnail",children:"Thumbnail"}),e.jsx(o,{type:"file",name:"thumbnail",onChange:s=>{var g;const d=(g=s.target.files)==null?void 0:g[0];d&&t("thumbnail",d)}}),e.jsx(n,{message:i.thumbnail})]})]})]}),e.jsx("div",{className:"col-span-2 mt-6 text-right",children:e.jsx(L,{loading:I,children:"Create Exam"})})]})})};Q.layout=m=>e.jsx(K,{children:m});export{Q as default};
|