PageSourceSearch

https://sky.ee/build/assets/ShowForm-B7DcbzEA.js

js sky.ee collected 2026-10-01 12:25:57 UTC 30,482 bytes, 1 lines download raw bytes

1import{s as et,a as tt,b as st,c as at,d as ot}from"./index-BvvBFe3G.js";import{s as lt}from"./FlashMessages.vue_vue_type_script_setup_true_lang-UHP_v_x7.js";import{s as it}from"./index-Cn12WonT.js";import{s as Pe}from"./index-Dett9LkB.js";import{s as rt}from"./index-D2dW3Bd7.js";import{s as nt}from"./index-DevW3MYM.js";import{s as Ue}from"./index-Bnf6C-6b.js";import{s as je}from"./index-CLz3V4M9.js";import{s as Fe}from"./index-DeqriJGf.js";import{s as dt}from"./Menu.vue_vue_type_script_setup_true_lang-Dkc7BEEA.js";import{s as ze}from"./index-D67ss48c.js";import{_ as ut,s as ct}from"./AdminPageHeader.vue_vue_type_script_setup_true_lang-LBYZImLT.js";import{_ as mt}from"./AppLayout.vue_vue_type_script_setup_true_lang-Bv1y_Ga4.js";import{_ as re}from"./AdminCard.vue_vue_type_script_setup_true_lang-CgddMszj.js";import{b as fe,s as pt}from"./MediaSelectionDialog.vue_vue_type_script_setup_true_lang-BZQOEseG.js";import{s as vt}from"./index-Ckjtjv6I.js";import{s as ft}from"./index-BQC1oGgo.js";import{f as m,e as i,h as e,d as Me,G as Be,y as $,c as f,a8 as Ke,E as W,K as $e,b as S,w as v,g as p,Z as _t,j as t,l as o,t as _,
1i as _e,n as Ve,X as gt,aa as xt,I as yt,k as bt,a4 as ht,m as z,o as kt,F as De,r as Te,M as wt}from"./app-Ds2xsAPt.js";import{_ as St}from"./DynamicSection-BCk8UK0i.js";import{u as Ae}from"./useDateUtils-uW8d4dBs.js";import{u as $t}from"./useFormOptions-pE18BzhB.js";import{r as Vt}from"./useInfiniteScroll-5-c8n4Hh.js";import{r as Re}from"./TrashIcon-CVwe97Xi.js";import{r as Dt}from"./RocketLaunchIcon-DPpf6pXc.js";import{r as Tt}from"./CalendarDaysIcon-DzU_fkXZ.js";import{s as Et,l as Ct,v as Lt,Z as Pt,$ as Ut,T as jt}from"./vue-draggable-plus-6CAP66G2.js";import{r as Ft}from"./ArchiveBoxIcon-BJoqZ5N4.js";import{r as Ee}from"./PaintBrushIcon-CJ9P-Bxu.js";import{r as ve}from"./QueueListIcon-Czb5BGUh.js";import{r as zt}from"./RadioIcon-CkNNdtL3.js";import{r as Ce}from"./PhotoIcon-DK-ReKO2.js";import{r as Mt}from"./PlayIcon-McEYHqL7.js";import{r as Bt}from"./LinkIcon-Di5L7sGo.js";import{r as Kt}from"./PlusIcon-Bwpo0zXe.js";import"./index-DULaZYqd.js";import"./index-Bc6YQWPa.js";import"./createLucideIcon-Db7C6yDq.js";import"./megaphone-Dz_YOWWw.js";import"./index-2x_IPsVl.js";import"./index-CRwPk02d.js";import"./index-D_SdNtdV.js";import"./index-BBeCWC3j.js";import"./index-BuCy5n_R.js";import"./chevron-down-CxGCELJ3.js";import"./Container.vue_vue_type_script_setup_true_lang-CRSp-SeM.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./chevron-right-DVqTFR9-.js";import"./ComputerDesktopIcon-COPgEFkP.js";import"./index-_XxWqbzo.js";import"./MagnifyingGlassIcon-qVdhE10O.js";import"./index-BvSoWoVY.js";function Le(ee,T){return i(),m("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[e("path",{"fill-rule":"evenodd",d:"M4.755 10.059a7.5 7.5 0 0 1 12.548-3.364l1.903 1.903h-3.183a.75.75 0 1 0 0 1.5h4.992a.75.75 0 0 0 .75-.75V4.356a.75.75 0 0 0-1.5 0v3.18l-1.9-1.9A9 9 0 0 0 3.306 9.67a.75.75 0 1 0 1.45.388Zm15.408 3.352a.75.75 0 0 0-.919.53 7.5 7.5 0 0 1-12.548 3.364l-1.902-1.903h3.183a.75.75 0 0 0 0-1.5H2.984a.75.75 0 0 0-.75.75v4.992a.75.75 0 0 0 1.5 0v-3.18l1.9 1.9a9 9 0 0 0 15.059-4.035.75.75 0 0 0-.53-.918Z","clip-rule":"evenodd"})])}const At={class:"space-y-2"},Rt={key:1,class:"space-y-2"},It={key:2,class:"flex items-center gap-3 p-3 border dynamic-border rounded-2xl bg-content-bg-light dark:bg-content-bg-dark"},Ot={class:"flex items-center justify-center size-12 rounded-lg overlay-bg-5 flex-shrink-0"},qt={class:"flex-1 min-w-0"},Ht={class:"font-medium truncate"},Nt={class:"flex items-center gap-2 mt-1 text-xs text-surface-600 dark:text-surface-400"},Zt={key:0},Gt={key:1},Xt={key:3,class:"flex items-center gap-2 text-sm text-surface-600"},Yt={key:4,class:"text-sm text-red-600"},Jt={class:"space-y-2"},Qt={key:0,class:"text-sm text-red-600"},Wt={class:"space-y-2"},es={key:0,class:"text-sm text-red-600"},ts={class:"space-y-2"},ss={key:0,class:"text-sm text-red-600"},as={key:0,class:"space-y-2"},os={class:"grid grid-cols-1 sm:grid-cols-2 gap-3 mt-3"},ls={class:"flex flex-col gap-2"},is={class:"flex flex-col gap-2"},rs={key:0,class:"text-sm text-red-600"},ns={class:"flex justify-end gap-2"},ds=Me({__name:"EpisodeFormDialog",props:{visible:{type:Boolean},episode:{},showId:{},nextSortOrder:{}},emits:["update:visible","saved"],setup(ee,{emit:T}){const b=ee,E=T,w=Be(),{formatDateTimeForDatabase:M,parseDate:j,getDateFormat:q}=Ae(),{timeOptions:H}=$t(),l=q(),te=[{label:"Avalda kohe",value:"now",icon:Dt},{label:"Tulevikus",value:"future",icon:Tt}],L=$("now"),F=$(null),k=$("09:00"),C=$(null),K=$(!1),A=$(!1),P=$(null),B=f({get:()=>b.visible,set:d=>E("update:visible",d)}),N=f(()=>!!b.episode),r=f(()=>N.value?"Muuda episoodi":"Lisa uus episood"),se=f(()=>!b.episode?.is_api_generated),u=Ke({title:"",description:"",audio_media_id:null,duration:null,cover_media_id:null,sort_order:0,publish_at:null}),ae=d=>{const a=j(d);if(a&&a>new Date){L.value="future",F.value=a,k.value=a.toTimeString().substring(0,5),C.value=null;return}L.value=a?"existing":"now",F.value=null,k.value="09:00",C.value=d??null},ne=()=>L.value==="future"?M(F.value,k.value):L.value==="existing"?C.value:null,Z=f({get:()=>L.value==="future"?"future":"now",set:d=>{L.value=d==="future"?"future":C.value?"existing":"now"}}),G=f(()=>L.value==="future"&&(!F.value||!k.value));W(()=>b.episode,async d=>
1{d?(u.defaults({title:d.title,description:d.description||"",audio_media_id:d.audio_media_id||null,duration:d.duration||null,cover_media_id:d.cover_media_id||null,sort_order:d.sort_order,publish_at:d.publish_at??null}).reset(),ae(d.publish_at),d.audio_media_id&&await X(d.audio_media_id)):(u.defaults({title:"",description:"",audio_media_id:null,duration:null,cover_media_id:null,sort_order:b.nextSortOrder,publish_at:null}).reset(),ae(null),P.value=null)},{immediate:!0}),W(()=>b.nextSortOrder,d=>{b.episode||(u.sort_order=d)}),W(()=>u.audio_media_id,async(d,a)=>{d&&d!==a?(await X(d),u.duration||await R(d)):d||(P.value=null)});const X=async d=>{A.value=!0;try{const g=(await $e.get(route("admin.media.details",{ids:d}))).data[0];g&&(P.value={fileName:g.file_name,fileSize:await de(g.url),url:g.url})}catch(a){console.error("Failed to load audio preview:",a)}finally{A.value=!1}},de=async d=>{try{const g=(await fetch(d,{method:"HEAD"})).headers.get("Content-Length");return g?parseInt(g,10):0}catch{return 0}},V=d=>{if(d===0)return"0 B";const a=1024,g=["B","KB","MB","GB"],y=Math.floor(Math.log(d)/Math.log(a));return`${parseFloat((d/Math.pow(a,y)).toFixed(2))} ${g[y]}`},R=async d=>{K.value=!0;try{const g=(await $e.get(route("admin.media.details",{ids:d}))).data[0];if(g&&g.url){const y=new Audio;y.src=g.url,await new Promise((U,O)=>{y.addEventListener("loadedmetadata",()=>{y.duration&&isFinite(y.duration)&&(u.duration=Math.floor(y.duration),w.add({severity:"success",summary:"Õnnestus",detail:`Kestus automaatselt tuvastatud: ${I(Math.floor(y.duration))}`,life:3e3})),U()}),y.addEventListener("error",()=>{w.add({severity:"warn",summary:"Hoiatus",detail:"Ei õnnestunud kestust automaatselt tuvastada. Palun sisesta käsitsi.",life:5e3}),O()}),setTimeout(()=>O(new Error("Timeout")),1e4)})}}catch(a){console.error("Failed to extract duration:",a)}finally{K.value=!1}},I=d=>{if(!d)return"";const a=Math.floor(d/3600),g=Math.floor(d%3600/60),y=d%60;return a>0?`${a}h ${g}m ${y}s`:`${g}m ${y}s`},ue=f(()=>I(u.duration||0)),Y=()=>{u.audio_media_id=null,u.duration=null,P.value=null},oe=()=>{if(G.value){w.add({severity:"warn",summary:"Hoiatus",detail:"Vali avaldamise kuupäev ja kellaaeg",life:3e3});return}u.publish_at=se.value?ne():null,N.value&&b.episode?u.put(route("admin.shows.episodes.update",[b.showId,b.episode.id]),{preserveState:!1,onSuccess:()=>{B.value=!1,w.add({severity:"success",summary:"Õnnestus",detail:"Episood edukalt uuendatud",life:3e3}),E("saved")},onError:()=>{w.add({severity:"error",summary:"Viga",detail:"Episoodi uuendamine ebaõnnestus",life:3e3})}}):u.post(route("admin.shows.episodes.store",b.showId),{preserveState:!1,onSuccess:()=>{B.value=!1,w.add({severity:"success",summary:"Õnnestus",detail:"Episood edukalt loodud",life:3e3}),E("saved")},onError:()=>{w.add({severity:"error",summary:"Viga",detail:"Episoodi loomine ebaõnnestus",life:3e3})}})};return(d,a)=>{const g=pt,y=Fe,U=je,O=ft,J=Pe,ce=Ue,Q=ze,me=vt;return i(),S(me,{visible:B.value,"onUpdate:visible":a[9]||(a[9]=x=>B.value=x),header:r.value,modal:!0,closable:!0,class:"w-[95%] sm:max-w-2xl"},{footer:v(()=>[e("div",ns,[o(Q,{label:"Tühista",severity:"secondary",outlined:"",onClick:a[8]||(a[8]=x=>B.value=!1),disabled:t(u).processing},null,8,["disabled"]),o(Q,{label:N.value?"Uuenda":"Loo",onClick:oe,loading:t(u).processing,disabled:!t(u).title||t(u).processing||G.value},null,8,["label","loading","disabled"])])]),default:v(()=>[e("form",{onSubmit:yt(oe,["prevent"]),class:"space-y-6 pt-6"},[e("div",At,[a[12]||(a[12]=e("label",{class:"block text-sm font-medium text-surface-900 dark:text-surface-50"}," Audiofail (MP3) ",-1)),P.value?p("",!0):(i(),S(fe,{key:0,modelValue:t(u).audio_media_id,"onUpdate:modelValue":a[0]||(a[0]=x=>t(u).audio_media_id=x),context:"episodes","media-type":"audio","show-preview":!1},null,8,["modelValue"])),A.value?(i(),m("div",Rt,[o(g,{mode:"indeterminate",style:{height:"6px"}}),a[10]||(a[10]=e("p",{class:"text-sm text-surface-600"},"Laadin audiofaili...",-1))])):p("",!0),P.value&&!A.value?(i(),m("div",It,[e("div",Ot,[o(t(Vt),{class:"w-6 h-6 text-surface-400 dark:text-surface-600"})]),e("div",qt,[e("h6",Ht,_(P.value.fileName),1),e("div",Nt,[e("span",null,_(V(P.value.fileSize)),1),t(u).duration?(i(),m("span",Zt,"•")):p("",!0),t(u).duration?(i(),m("span",Gt,_(ue.value),1)):p("",!0)])]),e("button",{type:"button",onClick:Y,class:"flex items-center justify-center size-8 rounded-full hover:bg-surface-100 dar
1k:hover:bg-surface-800 transition-colors group cursor-pointer"},[o(t(Re),{class:"w-4 h-4 text-surface-600 dark:text-surface-400 group-hover:text-red-500"})])])):p("",!0),K.value&&P.value?(i(),m("div",Xt,[...a[11]||(a[11]=[e("i",{class:"pi pi-spin pi-spinner"},null,-1),e("span",null,"Tuvastamine kestust...",-1)])])):p("",!0),t(u).errors.audio_media_id?(i(),m("span",Yt,_(t(u).errors.audio_media_id),1)):p("",!0)]),e("div",Jt,[a[13]||(a[13]=e("label",{for:"title",class:"block text-sm font-medium text-surface-900 dark:text-surface-50"},[_e(" Pealkiri "),e("span",{class:"text-red-500"},"*")],-1)),o(y,{id:"title",modelValue:t(u).title,"onUpdate:modelValue":a[1]||(a[1]=x=>t(u).title=x),class:Ve(["w-full",{"border-red-500":t(u).errors.title}]),placeholder:"Sisesta episoodi pealkiri"},null,8,["modelValue","class"]),t(u).errors.title?(i(),m("span",Qt,_(t(u).errors.title),1)):p("",!0)]),e("div",Wt,[a[14]||(a[14]=e("label",{for:"description",class:"block text-sm font-medium text-surface-900 dark:text-surface-50"}," Kirjeldus ",-1)),o(U,{id:"description",modelValue:t(u).description,"onUpdate:modelValue":a[2]||(a[2]=x=>t(u).description=x),rows:"4",class:Ve(["w-full",{"border-red-500":t(u).errors.description}]),placeholder:"Sisesta episoodi kirjeldus"},null,8,["modelValue","class"]),t(u).errors.description?(i(),m("span",es,_(t(u).errors.description),1)):p("",!0)]),e("div",ts,[a[15]||(a[15]=e("label",{class:"block text-sm font-medium text-surface-900 dark:text-surface-50"}," Kaanepilt ",-1)),o(fe,{modelValue:t(u).cover_media_id,"onUpdate:modelValue":a[3]||(a[3]=x=>t(u).cover_media_id=x),context:"shows","media-type":"image",aspectRatio:"square"},null,8,["modelValue"]),t(u).errors.cover_media_id?(i(),m("span",ss,_(t(u).errors.cover_media_id),1)):p("",!0)]),se.value?(i(),m("div",as,[a[19]||(a[19]=e("label",{class:"block text-sm font-medium text-surface-900 dark:text-surface-50"}," Avaldamise aeg ",-1)),o(O,{modelValue:Z.value,"onUpdate:modelValue":a[4]||(a[4]=x=>Z.value=x),options:te,optionLabel:"label",optionValue:"value",allowEmpty:!1,fluid:"",pt:{root:{class:"!w-full flex border dynamic-border bg-surface-50 dark:bg-surface-900"},pcToggleButton:{root:{class:"!w-full rounded-full"}}}},{option:v(x=>[(i(),S(gt(x.option.icon),{class:"size-4"})),e("span",null,_(x.option.label),1)]),_:1},8,["modelValue"]),o(St,{show:L.value==="future",clean:""},{default:v(()=>[e("div",os,[e("div",ls,[a[16]||(a[16]=e("label",{for:"episode_publish_date",class:"text-sm"},"Kuupäev",-1)),o(J,{id:"episode_publish_date",modelValue:F.value,"onUpdate:modelValue":a[5]||(a[5]=x=>F.value=x),updateModelType:"date",dateFormat:t(l),minDate:new Date,showIcon:"",fluid:""},null,8,["modelValue","dateFormat","minDate"])]),e("div",is,[a[17]||(a[17]=e("label",{for:"episode_publish_time",class:"text-sm"},"Kellaaeg",-1)),o(ce,{id:"episode_publish_time",modelValue:k.value,"onUpdate:modelValue":a[6]||(a[6]=x=>k.value=x),options:t(H),optionLabel:"label",optionValue:"value",placeholder:"Vali kellaaeg",fluid:""},null,8,["modelValue","options"])])]),a[18]||(a[18]=e("p",{class:"mt-2 text-xs text-muted-color"}," Episood jääb kuulajatele peidetuks ja avaldatakse automaatselt valitud ajal. ",-1))]),_:1},8,["show"]),t(u).errors.publish_at?(i(),m("span",rs,_(t(u).errors.publish_at),1)):p("",!0)])):p("",!0),_t(e("input",{type:"hidden","onUpdate:modelValue":a[7]||(a[7]=x=>t(u).sort_order=x)},null,512),[[xt,t(u).sort_order]])],32)]),_:1},8,["visible","header"])}}});function us(){return{sortEpisodes:T=>[...T].sort((b,E)=>{if(b.is_api_generated||E.is_api_generated){const l=new Date(b.api_recording_date??b.created_at??0).getTime();return new Date(E.api_recording_date??E.created_at??0).getTime()-l}const M=b.sort_order??0,j=E.sort_order??0;if(M!==j)return M-j;const q=new Date(b.created_at??0).getTime();return new Date(E.created_at??0).getTime()-q})}}const cs={class:"flex flex-col lg:flex-row-reverse items-start xl:items-center gap-2"},ms={class:"text-2xl"},ps={class:"flex items-center gap-2"},vs={class:"font-medium"},fs={class:"flex flex-col gap-5 lg:flex-row"},_s={class:"w-full min-w-0"},gs={class:"flex flex-col gap-5"},xs={class:"flex flex-col gap-2"},ys={key:0,class:"text-sm text-red-600"},bs={class:"flex flex-col gap-2"}
1,hs={key:0,class:"text-sm text-red-600"},ks={class:"w-full max-w-md flex flex-col gap-5"},ws={key:0,class:"text-sm text-red-600 mt-2 block"},Ss={class:"flex flex-col gap-5"},$s={class:"flex flex-col gap-2"},Vs={key:0,class:"text-sm text-red-600"},Ds={class:"flex flex-col gap-2"},Ts={class:"flex flex-col gap-2"},Es=["for"],Cs={key:0,class:"text-sm text-red-600"},Ls={class:"flex flex-col gap-2"},Ps={key:0,class:"text-sm text-red-600"},Us={class:"flex items-center gap-2"},js={class:"flex flex-col gap-3 p-2 min-w-80"},Fs={class:"flex flex-col gap-2"},zs={class:"flex flex-col gap-2"},Ms={class:"flex items-center gap-2 justify-end pt-2"},Bs={key:0,class:"flex flex-col gap-3"},Ks={class:"flex items-center gap-2"},As={key:0},Rs={class:"divide-y"},Is={class:"flex items-center gap-2"},Os={key:0,type:"button",class:"drag-handle cursor-move flex-shrink-0"},qs={class:"size-20 rounded-xl overflow-hidden flex-shrink-0 aspect-square bg-surface-200/70 dark:bg-surface-800"},Hs=["src","alt"],Ns={key:1,class:"w-full h-full flex items-center justify-center"},Zs={class:"flex flex-col gap-2 ms-2"},Gs={class:"flex items-center gap-2"},Xs=["onClick"],Ys={class:"flex items-center gap-5 text-muted-color text-sm"},Js={class:"flex items-center gap-2"},Qs={key:0},Ws={key:1},ea={key:2},ta={class:"flex items-center gap-2"},sa=["onClick"],aa=["onClick"],oa={key:1,class:"py-8 text-center text-muted-color"},la={key:0,class:"flex flex-col items-center gap-3"},ia={key:1},oo=Me({__name:"ShowForm",setup(ee){const T=bt(),{sortEpisodes:b}=us(),E=ht(),w=Be(),M=$(),j=$("0"),{getDateFormat:q}=Ae(),H=q(),l=f(()=>T.props.show?.data),te=f(()=>T.props.radioStations||[]),L=f(()=>T.props.programScheduleShows||[]),F=f(()=>T.props.episodeSourceOptions||[]);f(()=>T.props.statusOptions||[]);const k=f(()=>!!l.value),C=f(()=>l.value?.status==="draft"),K=f(()=>k.value?"Muuda saadet":"Loo saade"),A=f(()=>k.value?l.value?.title:"Uus saade"),P=f(()=>k.value?(C.value,"Salvesta"):"Loo saade"),B=f(()=>k.value?C.value?"Avalda saade":"Muuda mustandiks":"Salvesta mustandina"),N=f(()=>k.value&&C.value?G:Z),r=Ke({title:"",description:"",radio_station_id:null,episode_source:"manual",status:"draft",cover_media_id:null,program_schedule_show_id:null}),se=f(()=>[{label:K.value}]),u=f(()=>[{label:"Kustuta",icon:"pi pi-trash",command:()=>ne()}]),ae=c=>{M.value.toggle(c)},ne=()=>{l.value&&E.require({group:"headless",message:`Kas oled kindel, et soovid kustutada saate "${l.value.title}"?`,header:"Kinnita kustutamine",rejectLabel:"Tühista",acceptLabel:"Kustuta",acceptProps:{severity:"danger"},accept:()=>{z.delete(route("admin.shows.destroy",l.value.id),{onSuccess:()=>{z.visit(route("admin.shows.index"))}})}})},Z=()=>{r.status="draft",X()},G=()=>{r.status="published",X()},X=()=>{k.value?r.put(route("admin.shows.update",l.value.id),{onSuccess:()=>{w.add({severity:"success",summary:"Õnnestus",detail:"Saade edukalt salvestatud",life:3e3})}}):r.post(route("admin.shows.store"),{onSuccess:()=>{w.add({severity:"success",summary:"Õnnestus",detail:"Saade edukalt loodud",life:3e3})}})},de=()=>{l.value&&(r.title=l.value.title,r.description=l.value.description||"",r.radio_station_id=l.value.radio_station?.id||null,r.episode_source=l.value.episode_source,r.status=l.value.status,r.cover_media_id=l.value.cover_media_id||null,r.program_schedule_show_id=l.value.program_schedule_show_id||null)},V=$([]),R=$(!1),I=$(null),ue=f(()=>V.value.length),Y=f(()=>V.value.some(c=>c.is_complete===!1)),oe=f(()=>{if(!l.value||V.value.length===0)return!1;const c=new Date(l.value.created_at),s=new Date(Date.now()-600*1e3);return c>s&&Y.value}),d=f(()=>Y.value||oe.value),a=$(),g=$(null),y=$(null),U=$(!1),O=f(()=>l.value&&l.value.episode_source==="api"&&l.value.radio_station&&l.value.program_schedule_show_id),J=f(()=>l.value&&l.value.episode_source==="manual"),ce=()=>{I.value=null,R.value=!0},Q=c=>{I.value=c,R.value=!0},me=()=>{l.value&&z.reload({only:["show"],onSuccess:()=>{const c=T.props.show?.data?.episodes||[];V.value=b(c)}})},x=()=>{if(!l.value)return;const c=V.value.map((s,h)=>({id:s.id,sort_order:h}));z.post(route("admin.shows.episodes.reorder",l.value.id),{episodes:c},{preserveScroll:!0,onSuccess:()=>
1{w.add({severity:"success",summary:"Õnnestus",detail:"Episoodide järjekord edukalt uuendatud",life:3e3})}})},Ie=c=>{l.value&&E.require({group:"headless",message:`Kas oled kindel, et soovid kustutada episoodi "${c.title}"?`,header:"Kinnita kustutamine",rejectLabel:"Tühista",acceptLabel:"Kustuta",acceptProps:{severity:"danger"},accept:()=>{z.delete(route("admin.shows.episodes.destroy",[l.value.id,c.id]),{preserveScroll:!0,onSuccess:()=>{w.add({severity:"success",summary:"Õnnestus",detail:"Episood edukalt kustutatud",life:3e3}),z.reload({only:["show"],onSuccess:()=>{const s=T.props.show?.data?.episodes||[];V.value=b(s)}})}})}})},ge=c=>new Date(c).toLocaleDateString("et-EE",{year:"numeric",month:"2-digit",day:"2-digit"}),xe=c=>new Date(c).toLocaleTimeString("et-EE",{hour:"2-digit",minute:"2-digit"}),Oe=c=>{const s=new Date,h=new Date;h.setDate(h.getDate()-1),g.value=h,y.value=s,a.value?.toggle(c)},ye=()=>{a.value?.hide()},qe=async()=>{if(!(!l.value||!g.value||!y.value)){U.value=!0;try{const c=h=>{const D=h.getFullYear(),pe=String(h.getMonth()+1).padStart(2,"0"),le=String(h.getDate()).padStart(2,"0");return`${D}-${pe}-${le}`};(await wt.post(route("admin.shows.sync-episodes",l.value.id),{start_date:c(g.value),end_date:c(y.value)})).data.success&&w.add({severity:"info",summary:"Taustal töötlemine",detail:"Episoodide sünkroniseerimine käib taustal. Episoodid ilmuvad peagi.",life:5e3}),ye()}catch(c){const s=c.response?.data?.message||"Sünkroniseerimine ebaõnnestus";w.add({severity:"error",summary:"Viga",detail:s,life:5e3})}finally{U.value=!1}}},He=async()=>{if(l.value)try{const c=route("feeds.shows",l.value.id);await navigator.clipboard.writeText(c),w.add({severity:"success",summary:"Kopeeritud",detail:"RSS feed URL kopeeritud lõikelauale",life:2e3})}catch{w.add({severity:"error",summary:"Viga",detail:"RSS feed URL kopeerimine ebaõnnestus",life:3e3})}};W(()=>r.radio_station_id,(c,s)=>{c&&z.reload({only:["programScheduleShows"],data:{radio_station_id:c},onSuccess:()=>{s!==null&&s!==c&&(r.program_schedule_show_id=null)}})}),W(()=>r.program_schedule_show_id,async(c,s)=>{if(!c||k.value||r.episode_source!=="api")return;const h=L.value.find(D=>D.id===c);h&&(r.title=h.name||"",r.description=h.description||"",h.cover_media_id?(r.cover_media_id!==null&&(r.cover_media_id=null,await new Promise(D=>setTimeout(D,10))),r.cover_media_id=h.cover_media_id):r.cover_media_id!==null&&(r.cover_media_id=null))});const Ne=c=>{j.value=String(c);const s=new URL(window.location.href);c==="0"?s.searchParams.delete("tab"):s.searchParams.set("tab",String(c)),z.visit(s.toString(),{preserveState:!0,preserveScroll:!0,replace:!0})};return kt(()=>{const s=new URLSearchParams(window.location.search).get("tab");s&&(j.value=s),l.value&&(de(),l.value.episodes&&(V.value=b(l.value.episodes)))}),(c,s)=>{const h=ct,D=ze,pe=dt,le=st,Ze=tt,Ge=Fe,Xe=je,be=Ue,he=nt,Ye=rt,ke=ot,we=Pe,Je=it,Se=lt,Qe=at,We=et;return i(),S(mt,{breadcrumbs:se.value,title:K.value},{default:v(()=>[o(ut,{margin:!1},{title:v(()=>[e("div",cs,[l.value?(i(),S(h,{key:0,value:l.value.status_label,severity:l.value.status==="draft"?"secondary":"success"},null,8,["value","severity"])):p("",!0),e("h1",ms,_(A.value),1)])]),end:v(()=>[e("div",ps,[o(D,{onClick:N.value,outlined:!C.value||!k.value,severity:!C.value||!k.value?"secondary":void 0,class:"flex-shrink-0"},{default:v(()=>[e("span",vs,_(B.value),1),!C.value||!k.value?(i(),S(t(Ft),{key:0,class:"size-4"})):p("",!0)]),_:1},8,["onClick","outlined","severity"]),!C.value||!k.value?(i(),S(D,{key:0,label:P.value,onClick:G,class:"flex-shrink-0"},null,8,["label"])):p("",!0),l.value?(i(),S(D,{key:1,severity:"secondary",text:"",class:"px-2.5 flex-shrink-0",onClick:ae},{default:v(()=>[o(t(Et),{class:"size-5 text-muted-color"})]),_:1})):p("",!0),o(pe,{ref_key:"moreMenu",ref:M,model:u.value,popup:""},null,8,["model"])])]),_:1}),e("section",null,[o(We,{value:j.value,"onUpdate:value":Ne},{default:v(()=>[o(Ze,null,{default:v(()=>[o(le,{value:"0",as:"div",class:"flex items-center gap-2"},{default:v(()=>[o(t(Ee),{class:"size-4"}),s[10]||(s[10]=e("span",null,"Üldine",-1))]),_:1}),o(le,{value:"1",as:"div",class:"flex items-center gap-2"},{default:v(()=>[o(t(ve),{class:"size-4"}),s[11]||(s[11]=e("span",null,"Episoodid",-1))]),_:1})]),_:1}),o(Qe,{class:"mt-4"},{default:v(()=>[o(ke,{value:"0",as:"div"},{default:v(()=>[e("section",fs,[e("div",_s,[o(re,{title:"Sisu",icon:t(zt),padding:""},{default:v(()=>[e("div",gs,[e("div",xs,[s[12]||(s[12]=e("label",{for:"title"},"Pealkiri",-1)),o(Ge,{name:"title",modelValue:t(r).title,"onUpdate:modelValue":s[0]||(s[0]=n=>t(r).title=n)},null,8,["modelValue"]),t(r).errors.title?(i(),m("span",ys,_(t(r).errors.title),1)):p("",!0)]),e("div",bs,[s[13]||(s[13]=e("label",{for:"description"},"Kirjeldus",-1)),o(Xe,{modelValue:t(r).description,"onUpdate:modelValue":s[1]||(s[1]=n=>t(r).description=n),rows:"5"},null,8,["modelValue"]),t(r).errors.description?(i(),m("span",hs,_(t(r).errors.description),1)):p("",!0)])])]),_:1},8,["icon"])]),e("div",ks,[o(re,{title:"Kaanepilt",icon:t(Ce),padding:""},{default:v(()=>[o(fe,{modelValue:t(r).cover_media_id,"onUpdate:modelValue":s[2]||(s[2]=n=>t(r).cover_media_id=n),context:"shows","media-type":"image",aspectRatio:"square"},null,8,["modelValue"]),t(r).errors.cover_media_id?(i(),m("span",ws,_(t(r).errors.cover_media_id),1)):p("",!0)]),_:1},8,["icon"]),o(re,{title:"Üldised andmed",icon:t(ve),padding:""},{default:v(()=>[e("div",Ss,[e("div",$s,[s[14]||(s[14]=e("label",{for:"radio_station"},"Raadiojaam",-1)),o(be,{modelValue:t(r).radio_station_id,"onUpdate:modelValue":s[3]||(s[3]=n=>t(r).radio_station_id=n),options:te.value,optionLabel:"name",optionValue:"id",fluid:"",placeholder:"Vali raadiojaam"},null,8,["modelValue","options"]),t(r).errors.radio_station_id?(i(),m("span",Vs,_(t(r).errors.radio_station_id),1)):p("",!0)]),o(he,{class:"my-0"}),e("div",Ds,[s[15]||(s[15]=e("label",{for:"episode_source"},"Episoodide lisamine",-1)),e("div",Ts,[(i(!0),m(De,null,Te(F.value,n=>(i(),m("div",{key:n.value,class:"flex items-center gap-2"},[o(Ye,{inputId:`episode_source_${n.value}`,value:n.value,modelValue:t(r).episode_source,"onUpdate:modelValue":s[4]||(s[4]=ie=>t(r).episode_source=ie)},null,8,["inputId","value","modelValue"]),e("label",{for:`episode_source_${n.value}`,class:"capitalize cursor-pointer"},_(n.label),9,Es)]))),128))]),t(r).errors.episode_source?(i(),m("span",Cs,_(t(r).errors.episode_source),1)):p("",!0)]),o(he,{class:"my-0"}),e("div",Ls,[s[16]||(s[16]=e("label",{for:"program_schedule_show"},"Saatekava saade",-1)),o(be,{modelValue:t(r).program_schedule_show_id,"onUpdate:modelValue":s[5]||(s[5]=n=>t(r).program_schedule_show_id=n),options:L.value,optionLabel:"name",optionValue:"id",fluid:"",showClear:"",placeholder:"Vali saatekava saade"},null,8,["modelValue","options"]),s[17]||(s[17]=e("p",{class:"text-sm text-muted-color"}
1," Seotud saatekava saade määrab saate kellaajad, mis kuvatakse saatejuhi profiilil. ",-1)),t(r).errors.program_schedule_show_id?(i(),m("span",Ps,_(t(r).errors.program_schedule_show_id),1)):p("",!0)])])]),_:1},8,["icon"])])])]),_:1}),o(ke,{value:"1",as:"div"},{default:v(()=>[o(re,{title:"Episoodid",icon:t(ve),padding:""},{"header-right":v(()=>[e("div",Us,[l.value?(i(),S(D,{key:0,onClick:He,severity:"secondary",outlined:"",disabled:!l.value},{default:v(()=>[o(t(Bt),{class:"size-4"}),s[18]||(s[18]=e("span",{class:"font-medium"},"Kopeeri RSS",-1))]),_:1},8,["disabled"])):p("",!0),O.value?(i(),S(D,{key:1,onClick:Oe,severity:"contrast",disabled:!l.value},{default:v(()=>[o(t(Pt),{class:"size-4"}),s[19]||(s[19]=e("span",{class:"font-medium"},"Impordi",-1))]),_:1},8,["disabled"])):p("",!0),o(Je,{ref_key:"syncPopoverRef",ref:a},{default:v(()=>[e("div",js,[e("div",Fs,[s[20]||(s[20]=e("label",{class:"text-sm font-medium"},"Alguskuupäev",-1)),o(we,{modelValue:g.value,"onUpdate:modelValue":s[6]||(s[6]=n=>g.value=n),dateFormat:t(H),updateModelType:"date",showIcon:"",fluid:"",disabled:U.value},null,8,["modelValue","dateFormat","disabled"])]),e("div",zs,[s[21]||(s[21]=e("label",{class:"text-sm font-medium"},"Lõppkuupäev",-1)),o(we,{modelValue:y.value,"onUpdate:modelValue":s[7]||(s[7]=n=>y.value=n),dateFormat:t(H),updateModelType:"date",showIcon:"",fluid:"",disabled:U.value},null,8,["modelValue","dateFormat","disabled"])]),e("div",Ms,[o(D,{type:"button",onClick:qe,disabled:!g.value||!y.value||U.value,loading:U.value,class:"w-full"},{default:v(()=>[o(t(Ut),{class:"size-4"}),s[22]||(s[22]=e("span",{class:"font-medium"},"Impordi episoodid",-1))]),_:1},8,["disabled","loading"]),o(D,{type:"button",severity:"secondary",outlined:"",onClick:ye,disabled:U.value,class:"p-2.5 aspect-square"},{default:v(()=>[o(t(jt),{class:"size-4"})]),_:1},8,["disabled"])])])]),_:1},512),l.value?.episode_source==="manual"?(i(),S(D,{key:2,onClick:ce,disabled:!l.value},{default:v(()=>[o(t(Kt),{class:"size-4"}),s[23]||(s[23]=e("span",{class:"font-medium"},"Lisa uus episood",-1))]),_:1},8,["disabled"])):p("",!0)])]),default:v(()=>[V.value.length>0?(i(),m("div",Bs,[J.value?p("",!0):(i(),S(Se,{key:0,severity:"info",closable:!1,class:"text-sm"},{default:v(()=>[...s[24]||(s[24]=[_e(" Automaatselt lisatud episoodid sorteeritakse kuupäeva järgi (uuemad ees) ja neid ei saa käsitsi ümber järjestada. ",-1)])]),_:1})),d.value?(i(),S(Se,{key:1,severity:"info",closable:!0,class:"text-sm"},{default:v(()=>[e("div",Ks,[o(t(Le),{class:"size-6 text-primary animate-spin"}),e("span",null,[s[25]||(s[25]=_e(" Episoode sünkroniseeritakse taustal. Episoodid ilmuvad peagi. ",-1)),Y.value?(i(),m("span",As," Hetkel on "+_(V.value.filter(n=>n.is_complete===!1).length)+" episoodi töötlemisel. ",1)):p("",!0)])])]),_:1})):p("",!0),e("div",Rs,[o(t(Ct),{modelValue:V.value,"onUpdate:modelValue":s[8]||(s[8]=n=>V.value=n),animation:200,"item-key":"id",handle:".drag-handle",disabled:!J.value,onEnd:x},{default:v(()=>[(i(!0),m(De,null,Te(V.value,n=>(i(),m("div",{key:n.id,class:"py-4 border-b dynamic-border last:border-b-0 flex items-center justify-between group"},[e("div",Is,[J.value?(i(),m("button",Os,[o(t(Lt),{class:"size-5 text-muted-color"})])):p("",!0),e("div",qs,[n.cover_url||l.value?.cover_url?(i(),m("img",{key:0,src:n.cover_url??l.value?.cover_url??"",alt:n.title,class:"w-full h-full object-cover"},null,8,Hs)):(i(),m("div",Ns,[o(t(Ce),{class:"size-8 text-muted-color"})]))]),e("div",Zs,[e("div",Gs,[e("h2",{class:"font-medium hover:underline cursor-pointer",onClick:ie=>Q(n)},_(n.title),9,Xs),n.is_api_generated?(i(),S(h,{key:0,value:"Automaatne",severity:"info",class:"text-xs"})):p("",!0),n.is_scheduled?(i(),S(h,{key:1,value:"Ajastatud",severity:"warn",class:"text-xs"})):p("",!0)]),e("div",Ys,[e("div",Js,[o(t(Mt),{class:"size-4"}),e("span",null,_(n.play_count.toLocaleString()),1)]),n.is_scheduled&&n.publish_at?(i(),m("p",Qs," Avaldatakse "+_(ge(n.publish_at))+" | "+_(xe(n.publish_at)),1)):(i(),m("p",Ws,_(ge(n.publish_at??n.created_at))+" | "+_(xe(n.publish_at??n.created_at)),1)),n.formatted_duration?(i(),m("p",ea,_(n.formatted_duration),1)):p("",!0)])])]),e("div",ta,[e("button",{type:"button",class:"p-1 rounded-full hover:bg-surface-100 dar
1k:hover:bg-surface-800 transition-colors cursor-pointer",onClick:ie=>Q(n)},[o(t(Ee),{class:"hidden group-hover:block size-5 transition-all duration-400 text-muted-color"})],8,sa),e("button",{type:"button",class:"p-1 rounded-full hover:bg-surface-100 dark:hover:bg-surface-800 transition-colors cursor-pointer",onClick:ie=>Ie(n)},[o(t(Re),{class:"hidden group-hover:block size-5 transition-all duration-400 text-red-500"})],8,aa)])]))),128))]),_:1},8,["modelValue","disabled"])])])):(i(),m("div",oa,[d.value?(i(),m("div",la,[o(t(Le),{class:"size-6 text-primary animate-spin"}),s[26]||(s[26]=e("h2",{class:"font-medium text-black dark:text-white"}," Episoode sünkroniseeritakse taustal... ",-1))])):(i(),m("p",ia,"Episoode pole veel lisatud"))]))]),_:1},8,["icon"])]),_:1})]),_:1})]),_:1},8,["value"])]),l.value?(i(),S(ds,{key:0,visible:R.value,"onUpdate:visible":s[9]||(s[9]=n=>R.value=n),episode:I.value,"show-id":l.value.id,"next-sort-order":ue.value,onSaved:me},null,8,["visible","episode","show-id","next-sort-order"])):p("",!0)]),_:1},8,["breadcrumbs","title"])}}});export{oo 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.