PageSourceSearch

https://pistonsprops.com/assets/AdminSchedule-17m-Ls6v.js

js pistonsprops.com collected 2026-10-01 16:05:25 UTC 9,958 bytes, 1 lines download raw bytes

1import{d as P,r as f,w as R,s as D,q as G,h as K,b as c,H as l,G as r,I as o,T as a,U as n,V as p,o as d,a2 as A,a3 as O,F as T,K as V,W as u,af as M,a9 as b,an as W,aC as j,ai as L,D as J}from"./app-C51rMVmB.js";import{C as Q}from"./CardTitle.vue_vue_type_style_index_0_scoped_b500ce0b_lang-BIfxjRRT.js";import{_ as X}from"./CardContent.vue_vue_type_script_setup_true_lang-SoqEeU4D.js";import{C as Y}from"./CardDescription-D63XpIVl.js";import{C as Z}from"./CardHeader-Bg0meQ6p.js";import{C as ee}from"./CardTitle-BfUdqxrp.js";import{I as S}from"./Input-CF9NCE-B.js";import{L as v}from"./Label-DIoCUq2_.js";import{D as te,a as ae,b as le,_ as oe}from"./DialogTitle-CQl-iyCk.js";import{D as ie}from"./DialogDescription-DAG-IKmU.js";import{D as se}from"./DialogFooter-BBzRg4CD.js";import{E as re}from"./EventFilter-D2COVW7W.js";import{M as ne}from"./MediaPicker-DhRYxLge.js";import{u as de}from"./useAdminUtils-Co5pYC4H.js";import"./useSiteTraffic-BcC1bJCN.js";import"./useAdminEvents-CNbCrfur.js";import{u as ue}from"./useActiveEvent-C9CVYZyq.js";import"./index-DKotMLeN.js";import"./SelectValue.vue_vue_type_script_setup_true_lang-DHfqt8II.js";import"./Collection-DeDDIXuG.js";import"./storage-C6gIvohD.js";import"./browser-image-compression-DILJcqf6.js";import"./testMode-BE_lt4gG.js";import"./date-qg8WRjiE.js";const ve={class:"section-header"},me={class:"section-header-content"},fe={class:"section-header-actions"},ce={key:0,class:"loading-state"},pe={key:1,class:"empty-state"},_e={key:2,class:"items-list"},ge={class:"event-card-content"},ye={class:"event-card-body"},ke={class:"event-card-header"},Ee={class:"event-title"},Ce={class:"event-description"},we={class:"event-details"},De={key:0},Ve={class:"event-actions"},be={class:"event-form"},Se={class:"form-field"},he={class:"form-field"},qe={class:"form-field"},xe={class:"image-upload-area"},Fe=["src"],Ie={class:"image-upload-actions"},Ue={class:"form-grid-2"},Ae={class:"form-field"},Te={class:"form-field"},Me={class:"form-grid-2"},Le={class:"form-field"},$e={class:"form-field"},Be={class:"checkbox-row"},Ne={class:"checkbox-field"},ze={class:"checkbox-field"},He=P({__name:"AdminSchedule",setup(Pe){const g=G(),{formatDateTimeForInput:x}=de(),{activeEventId:F}=ue(),h=f([]),q=f(!1),y=f(!1),_=f(null),k=f(null),E=f(!1),m=f(null),s=f({title:"",description:"",category:"air",location:"",start_time:"",end_time:"",featured:!1,registration_required:!1,image_url:null});R(k,()=>{C()});async function C(){q.value=!0;try{let i=D.from("schedule_events").select("*").order("start_time",{ascending:!0});const e=k.value??F.value;e&&(i=i.eq("event_id",e));const{data:t,error:w}=await i;if(w)throw w;h.value=t||[]}catch(i){console.error("Error loading schedule:",i),g.error("Failed to load schedule events")}finally{q.value=!1}}function I(i=null){_.value=i,i?(s.value={title:i.title,description:i.description||"",category:i.category,location:i.location||"",start_time:x(i.start_time),end_time:x(i.end_time),featured:i.featured??!1,registration_required:i.registration_required??!1,image_url:i.image_url},m.value=i.image_url):$(),y.value=!0}function $(){s.value={title:"",description:"",category:"air",location:"",start_time:"",end_time:"",featured:!1,registration_required:!1,image_url:null},m.value=null}function B(i){s.value.image_url=i,m.value=i,E.value=!1}function N(){m.value=null,s.value.image_url=null}function U(i){return i?new Date(i).toISOString():""}async function z(){try{const e={...{title:s.value.title,description:s.value.description||null,category:s.value.category,location:s.value.location||null,start_time:U(s.value.start_time),end_time:U(s.value.end_time),featured:s.value.featured,registration_required:s.value.registration_required,status:"scheduled",event_id:k.value??F.value},image_url:s.value.image_url};if(_.value){const{error:t}=await D.from("schedule_events").update(e).eq("id",_.value.id);if(t)throw t}else{const{error:t}=await D.from("schedule_events").insert(e);if(t)throw t}y.value=!1,await C(),g.success(`Event ${_.value?"updated":"created"} successfully!`)}catch(i){console.error("Error saving event:",i),g.error("Error saving event. Check console for details.")}}async function H(i){if(confirm("Are you sure you want to delete this event?"))try{const{error:e}=await D.from("schedule_events").delete().eq("id",i);if(e)throw e;g.success("Event deleted successfully"),await C()}catch(e){console.error("Error deleting event:",e),g.error("Error deleting event. Check console for details.")}}return K(()=>{C()}),(i,e)=>(d(),c(A,null,[l(o(Q),null,{default:r(()=>[l(o(Z),null,{default:r(()=>[a("div",ve,[a("div",me,[l(o(ee),null,{default:r(()=>[...e[14]||(e[14]=[n("Schedule Events",-1)])]),_:1}),l(o(Y),null,{default:r(()=>[...e[15]||(e[15]=[n("Manage air show and car show schedule",-1)])]),_:1})]),a("div",fe,[l(re,{modelValue:k.value,"onUpdate:modelValue":e[0]||(e[0]=t=>k.value=t)},null,8,["modelValue"]),l(o(p),{onClick:e[1]||(e[1]=t=>I())},{default:r(()=>[...e[16]||(e[16]=[n("Add Event",-1)])]),_:1})])])]),_:1}),l(o(X),null,{default:r(()=>[q.value?(d(),c("div",ce," Loading... ")):h.value.length===0?(d(),c("div",pe,' No events scheduled yet. Click "Add Event" to create one. ')):(d(),c("div",_e,[(d(!0),c(A,null,O(h.value,t=>(d(),c("div",{key:t.id,class:"event-card"}
1,[a("div",ge,[a("div",ye,[a("div",ke,[a("h3",Ee,u(t.title),1),l(o(M),{variant:t.category==="air"?"default":"secondary"},{default:r(()=>[n(u(t.category),1)]),_:2},1032,["variant"]),t.featured?(d(),T(o(M),{key:0,variant:"outline"},{default:r(()=>[...e[17]||(e[17]=[n("Featured",-1)])]),_:1})):V("",!0)]),a("p",Ce,u(t.description),1),a("div",we,[a("span",null,[e[18]||(e[18]=a("strong",null,"Start:",-1)),n(" "+u(new Date(t.start_time).toLocaleString()),1)]),a("span",null,[e[19]||(e[19]=a("strong",null,"End:",-1)),n(" "+u(new Date(t.end_time).toLocaleString()),1)]),t.location?(d(),c("span",De,[e[20]||(e[20]=a("strong",null,"Location:",-1)),n(" "+u(t.location),1)])):V("",!0)])]),a("div",Ve,[l(o(p),{variant:"outline",size:"sm",onClick:w=>I(t)},{default:r(()=>[...e[21]||(e[21]=[n("Edit",-1)])]),_:1},8,["onClick"]),l(o(p),{variant:"destructive",size:"sm",onClick:w=>H(t.id)},{default:r(()=>[...e[22]||(e[22]=[n("Delete",-1)])]),_:1},8,["onClick"])])])]))),128))]))]),_:1})]),_:1}),l(o(oe),{open:y.value,"onUpdate:open":e[12]||(e[12]=t=>y.value=t)},{default:r(()=>[l(o(te),{class:"event-dialog"},{default:r(()=>[l(o(ae),null,{default:r(()=>[l(o(le),null,{default:r(()=>[n(u(_.value?"Edit":"Add")+" Event",1)]),_:1}),l(o(ie),null,{default:r(()=>[n(u(_.value?"Update":"Create")+" a schedule event ",1)]),_:1})]),_:1}),a("div",be,[a("div",Se,[l(o(v),{for:"event-title"},{default:r(()=>[...e[23]||(e[23]=[n("Title",-1)])]),_:1}),l(o(S),{id:"event-title",modelValue:s.value.title,"onUpdate:modelValue":e[2]||(e[2]=t=>s.value.title=t),placeholder:"e.g., Blue Angels Demonstration"},null,8,["modelValue"])]),a("div",he,[l(o(v),{for:"description"},{default:r(()=>[...e[24]||(e[24]=[n("Description",-1)])]),_:1}),b(a("textarea",{id:"description","onUpdate:modelValue":e[3]||(e[3]=t=>s.value.description=t),class:"textarea-input",placeholder:"Describe the event..."},null,512),[[W,s.value.description]])]),a("div",qe,[l(o(v),null,{default:r(()=>[...e[25]||(e[25]=[n("Featured Image",-1)])]),_:1}),a("div",xe,[m.value?(d(),c("img",{key:0,src:m.value,class:"image-preview",alt:"Featured image preview"},null,8,Fe)):V("",!0),a("div",Ie,[l(o(p),{type:"button",variant:"outline",size:"sm",onClick:e[4]||(e[4]=t=>E.value=!0)},{default:r(()=>[n(u(m.value?"Change Image":"Select from Media Library"),1)]),_:1}),m.value?(d(),T(o(p),{key:0,type:"button",variant:"ghost",size:"sm",onClick:N},{default:r(()=>[...e[26]||(e[26]=[n(" Remove ",-1)])]),_:1})):V("",!0)])])]),a("div",Ue,[a("div",Ae,[l(o(v),{for:"category"},{default:r(()=>[...e[27]||(e[27]=[n("Category",-1)])]),_:1}),b(a("select",{id:"category","onUpdate:modelValue":e[5]||(e[5]=t=>s.value.category=t),class:"select-input"},[...e[28]||(e[28]=[a("option",{value:"air"},"Air Show",-1),a("option",{value:"car"},"Car Show",-1),a("option",{value:"general"},"General",-1)])],512),[[j,s.value.category]])]),a("div",Te,[l(o(v),{for:"location"},{default:r(()=>[...e[29]||(e[29]=[n("Location",-1)])]),_:1}),l(o(S),{id:"location",modelValue:s.value.location,"onUpdate:modelValue":e[6]||(e[6]=t=>s.value.location=t),placeholder:"e.g., Main Airfield"},null,8,["modelValue"])])]),a("div",Me,[a("div",Le,[l(o(v),{for:"start_time"},{default:r(()=>[...e[30]||(e[30]=[n("Start Time",-1)])]),_:1}),l(o(S),{id:"start_time",modelValue:s.value.start_time,"onUpdate:modelValue":e[7]||(e[7]=t=>s.value.start_time=t),type:"datetime-local"},null,8,["modelValue"])]),a("div",$e,[l(o(v),{for:"end_time"},{default:r(()=>[...e[31]||(e[31]=[n("End Time",-1)])]),_:1}),l(o(S),{id:"end_time",modelValue:s.value.end_time,"onUpdate:modelValue":e[8]||(e[8]=t=>s.value.end_time=t),type:"datetime-local"},null,8,["modelValue"])])]),a("div",Be,[a("div",Ne,[b(a("input",{id:"featured","onUpdate:modelValue":e[9]||(e[9]=t=>s.value.featured=t),type:"checkbox",class:"checkbox-input"},null,512),[[L,s.value.featured]]),l(o(v),{for:"featured"},{default:r(()=>[...e[32]||(e[32]=[n("Featured Event",-1)])]),_:1})]),a("div",ze,[b(a("input",{id:"registration_required","onUpdate:modelValue":e[10]||(e[10]=t=>s.value.registration_required=t),type:"checkbox",class:"checkbox-input"},null,512),[[L,s.value.registration_required]]),l(o(v),{for:"registration_required"},{default:r(()=>[...e[33]||(e[33]=[n("Registration Required",-1)])]),_:1})])])]),l(o(se),null,{default:r(()=>[l(o(p),{variant:"outline",onClick:e[11]||(e[11]=t=>y.value=!1)},{default:r(()=>[...e[34]||(e[34]=[n("Cancel",-1)])]),_:1}),l(o(p),{onClick:z},{default:r(()=>[...e[35]||(e[35]=[n("Save Event",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["open"]),l(ne,{open:E.value,"onUpdate:open":e[13]||(e[13]=t=>E.value=t),title:"Select Featured Image",onSelect:B},null,8,["open"])],64))}}),ft=J(He,[["__scopeId","data-v-a447899e"]]);export{ft as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.