2 lines
5.8 KiB
JavaScript
2 lines
5.8 KiB
JavaScript
import{d as D,n as T,c as E,r as c,e as j,a as t,f as p,u as C,h as S,w as y,b as o,i as n,o as s,t as r,F as d,g as _,l as k,T as L}from"./app-BXYcVHqk.js";import{_ as M}from"./AppLayout.vue_vue_type_script_setup_true_lang-86gE95Fg.js";import{_ as N}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./AppLogoIcon.vue_vue_type_script_setup_true_lang-BzXwPo6R.js";import"./useForwardExpose-Djbxsgaa.js";import"./VisuallyHidden-BvthYHr5.js";import"./RovingFocusGroup-dmigQ6Dy.js";import"./useArrowNavigation-C6Y-ieo6.js";import"./index-C4J_hXM0.js";import"./createLucideIcon-BlA39rtn.js";const F={class:"flex h-full flex-1 flex-col gap-4 overflow-x-auto rounded-xl p-4"},R={key:0,class:"text-sm text-muted-foreground"},V={key:1,class:"rounded-md border border-red-300 bg-red-50 p-3 text-red-800 dark:border-red-800 dark:bg-red-950 dark:text-red-200"},q={key:2,class:"grid grid-cols-1 gap-4 md:grid-cols-[160px,1fr]"},A={class:"order-first"},B={class:"h-[240px] w-[160px] overflow-hidden rounded bg-muted"},I=["src"],X={class:"flex min-w-0 flex-col"},P={class:"flex items-start justify-between gap-3"},z={class:"text-xl font-semibold"},G={class:"shrink-0 space-x-2"},H=["href"],K=["disabled"],O={key:0},U={key:1},W={class:"mt-1 text-sm text-muted-foreground"},J={key:0,class:"mr-2"},Q={key:1,class:"mr-2 rounded border px-1 py-0.5"},Y={key:2,class:"mr-2"},Z={key:3,class:"mr-2"},ee={key:0,class:"mt-2 text-sm"},te={class:"space-x-1"},se=["href"],oe={key:0},ae={key:1,class:"mt-1 text-sm"},ne={class:"space-x-1"},re=["href"],le={key:0},ie={key:2,class:"mt-1 text-sm"},de={class:"space-x-1"},ue=["href"],ce={key:0},me={key:3,class:"mt-1 text-sm"},ve={class:"space-x-1"},_e=["href"],he={key:0},fe={key:4,class:"mt-1 text-sm"},pe={key:5,class:"mt-1 text-sm"},ge={class:"mt-3 text-sm leading-6"},xe={key:0,class:"fixed bottom-4 left-1/2 z-50 -translate-x-1/2 rounded bg-foreground px-3 py-2 text-sm text-background shadow-lg"},ye=D({__name:"Show",setup(ke){const b=T(),g=E(()=>b.props.movieId),h=c(!1),m=c(null),e=c(null),v=c(!1),f=c(!1),x=c("");async function w(){h.value=!0,m.value=null;try{const i=await fetch(`/api/movies/${g.value}`,{headers:{Accept:"application/json"},credentials:"same-origin"});if(!i.ok)throw new Error(`Failed: ${i.status}`);e.value=await i.json()}catch(i){m.value=i?.message??"Unexpected error"}finally{h.value=!1}}j(w);async function $(){if(e.value&&confirm(`Delete '${e.value.title}'? This cannot be undone.`)){v.value=!0;try{const i=await fetch(`/admin/movies/${e.value.id}`,{method:"DELETE",headers:{Accept:"application/json","X-Requested-With":"XMLHttpRequest","X-CSRF-TOKEN":document.querySelector('meta[name="csrf-token"]')?.content??""},credentials:"same-origin"});if(!i.ok)throw new Error(`Delete failed: ${i.status}`);window.location.href="/admin/movies"}catch(i){x.value=i?.message??"Delete failed",f.value=!0,setTimeout(()=>f.value=!1,2500)}finally{v.value=!1}}}return(i,l)=>(s(),t(d,null,[p(C(S),{title:e.value?.title??"Movie"},null,8,["title"]),p(M,{breadcrumbs:[{title:"Movies",href:"/movies"},{title:e.value?.title??"…",href:`/movies/${g.value}`}]},{default:y(()=>[o("div",F,[h.value?(s(),t("div",R,"Loading…")):m.value?(s(),t("div",V,r(m.value),1)):e.value?(s(),t("div",q,[o("div",A,[o("div",B,[e.value.poster_url?(s(),t("img",{key:0,src:e.value.poster_url,alt:"Poster",class:"h-full w-full object-cover"},null,8,I)):n("",!0)])]),o("div",X,[o("div",P,[o("h1",z,r(e.value.title),1),o("div",G,[o("a",{href:`/admin/movies/${e.value.id}/edit`,class:"rounded-md border px-3 py-1.5 text-xs hover:bg-muted"},"Edit",8,H),o("button",{onClick:$,disabled:v.value,class:"rounded-md border px-3 py-1.5 text-xs hover:bg-muted disabled:opacity-60"},[v.value?(s(),t("span",O,"Deleting…")):(s(),t("span",U,"Delete"))],8,K)])]),o("div",W,[e.value.year?(s(),t("span",J,r(e.value.year),1)):n("",!0),e.value.rating?(s(),t("span",Q,r(e.value.rating),1)):n("",!0),e.value.runtime?(s(),t("span",Y,r(e.value.runtime)+" min",1)):n("",!0),e.value.release_date?(s(),t("span",Z,"Released: "+r(e.value.release_date),1)):n("",!0)]),e.value.genres?.length?(s(),t("div",ee,[l[0]||(l[0]=o("strong",null,"Genres:",-1)),o("span",te,[(s(!0),t(d,null,_(e.value.genres,(a,u)=>(s(),t(d,{key:a.id},[o("a",{href:`/genres/${a.id}`,class:"underline-offset-2 hover:underline"},r(a.name),9,se),u<e.value.genres.length-1?(s(),t("span",oe,",")):n("",!0)],64))),128))])])):n("",!0),e.value.directors?.length?(s(),t("div",ae,[l[1]||(l[1]=o("strong",null,"Directors:",-1)),o("span",ne,[(s(!0),t(d,null,_(e.value.directors,(a,u)=>(s(),t(d,{key:a.id},[o("a",{href:`/directors/${a.id}`,class:"underline-offset-2 hover:underline"},r(a.name),9,re),u<e.value.directors.length-1?(s(),t("span",le,",")):n("",!0)],64))),128))])])):n("",!0),e.value.actors?.length?(s(),t("div",ie,[l[2]||(l[2]=o("strong",null,"Actors:",-1)),o("span",de,[(s(!0),t(d,null,_(e.value.actors,(a,u)=>(s(),t(d,{key:a.id},[o("a",{href:`/actors/${a.id}`,class:"underline-offset-2 hover:underline"},r(a.name),9,ue),u<e.value.actors.length-1?(s(),t("span",ce,",")):n("",!0)],64))),128))])])):n("",!0),e.value.studios?.length?(s(),t("div",me,[l[3]||(l[3]=o("strong",null,"Studios:",-1)),o("span",ve,[(s(!0),t(d,null,_(e.value.studios,(a,u)=>(s(),t(d,{key:a.id},[o("a",{href:`/studios/${a.id}`,class:"underline-offset-2 hover:underline"},r(a.name),9,_e),u<e.value.studios.length-1?(s(),t("span",he,",")):n("",!0)],64))),128))])])):n("",!0),e.value.countries?.length?(s(),t("div",fe,[l[4]||(l[4]=o("strong",null,"Countries:",-1)),k(" "+r(e.value.countries.map(a=>a.name).join(", ")),1)])):n("",!0),e.value.languages?.length?(s(),t("div",pe,[l[5]||(l[5]=o("strong",null,"Languages:",-1)),k(" "+r(e.value.languages.map(a=>a.name).join(", ")),1)])):n("",!0),o("p",ge,r(e.value.description),1)])])):n("",!0),p(L,{name:"fade"},{default:y(()=>[f.value?(s(),t("div",xe,r(x.value),1)):n("",!0)]),_:1})])]),_:1},8,["breadcrumbs"])],64))}}),Me=N(ye,[["__scopeId","data-v-4dfe0470"]]);export{Me as default};
|