2 lines
10 KiB
JavaScript
2 lines
10 KiB
JavaScript
|
|
import{d as R,n as M,c as N,r as f,x as U,e as D,a as r,f as _,u as $,h as q,w as S,b as s,o as n,t as i,y as L,q as u,i as d,v as m,T as B,F as O}from"./app-CClrM5Yi.js";import{_ as X}from"./AppLayout.vue_vue_type_script_setup_true_lang-DESMBqxz.js";import{_ as Y}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./AppLogoIcon.vue_vue_type_script_setup_true_lang-7XZAfK5W.js";import"./useForwardExpose-BhawR5VU.js";import"./VisuallyHidden-Cu70tzB6.js";import"./RovingFocusGroup-CNFroA6Y.js";import"./useArrowNavigation-C6Y-ieo6.js";import"./index-C4J_hXM0.js";import"./createLucideIcon-ZFd4jktC.js";const A={class:"flex h-full flex-1 flex-col gap-4 overflow-x-auto rounded-xl p-4"},F={key:0,class:"text-sm text-muted-foreground"},H={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"},I={class:"grid gap-4 md:grid-cols-2"},P={key:0,class:"mt-1 text-xs text-red-600"},W={key:0,class:"mt-1 text-xs text-red-600"},z={class:"md:col-span-2"},G={key:0,class:"mt-1 text-xs text-red-600"},J={key:0,class:"mt-1 text-xs text-red-600"},K={key:0,class:"mt-1 text-xs text-red-600"},Q={key:0,class:"mt-1 text-xs text-red-600"},Z={key:0,class:"mt-1 text-xs text-red-600"},h={key:0,class:"mt-1 text-xs text-red-600"},tt={key:0,class:"mt-1 text-xs text-red-600"},et={class:"grid gap-4 md:grid-cols-2"},st={key:0,class:"mt-1 text-xs text-red-600"},lt={key:0,class:"mt-1 text-xs text-red-600"},ot={key:0,class:"mt-1 text-xs text-red-600"},rt={key:0,class:"mt-1 text-xs text-red-600"},nt={key:0,class:"mt-1 text-xs text-red-600"},at={key:0,class:"mt-1 text-xs text-red-600"},it={class:"flex items-center gap-2"},dt=["disabled"],ut={key:0},mt={key:1},pt={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"},xt=R({__name:"Edit",setup(ct){const T=M(),g=N(()=>T.props.movieId),v=f(!1),y=f(!1),b=f(null),l=U({}),k=f(!1),w=f(""),p=f(null),e=U({title:"",original_title:"",description:"",poster_url:"",backdrop_url:"",rating:"",release_date:"",year:"",runtime:"",genres:"",actors:"",directors:"",studios:"",countries:"",languages:""});function x(a){return(a??[]).map(t=>t.name).join(", ")}function c(a){return a.split(",").map(t=>t.trim()).filter(Boolean)}async function j(){v.value=!0,b.value=null;try{const a=await fetch(`/api/movies/${g.value}`,{headers:{Accept:"application/json","X-Requested-With":"XMLHttpRequest"},credentials:"same-origin"});if(!a.ok)throw new Error(`Failed: ${a.status}`);const t=await a.json();p.value=t,e.title=t.title??"",e.original_title=t.original_title??"",e.description=t.description??"",e.poster_url=t.poster_url??"",e.backdrop_url=t.backdrop_url??"",e.rating=t.rating??"",e.release_date=t.release_date??"",e.year=t.year??"",e.runtime=t.runtime??"",e.genres=x(t.genres),e.actors=x(t.actors),e.directors=x(t.directors),e.studios=x(t.studios),e.countries=x(t.countries),e.languages=x(t.languages)}catch(a){b.value=a?.message??"Unexpected error"}finally{v.value=!1}}function V(a){w.value=a,k.value=!0,setTimeout(()=>k.value=!1,2500)}async function E(){if(p.value){y.value=!0,b.value=null,Object.keys(l).forEach(a=>delete l[a]);try{const a={title:e.title,original_title:e.original_title||null,description:e.description||null,poster_url:e.poster_url||null,backdrop_url:e.backdrop_url||null,rating:e.rating||null,release_date:e.release_date||null,year:e.year===""?null:Number(e.year),runtime:e.runtime===""?null:Number(e.runtime),genres:c(e.genres),actors:c(e.actors),directors:c(e.directors),studios:c(e.studios),countries:c(e.countries),languages:c(e.languages)},t=await fetch(`/admin/movies/${p.value.id}`,{method:"PATCH",headers:{Accept:"application/json","Content-Type":"application/json","X-Requested-With":"XMLHttpRequest","X-CSRF-TOKEN":document.querySelector('meta[name="csrf-token"]')?.content??""},body:JSON.stringify(a),credentials:"same-origin"});if(t.status===422){const o=await t.json();throw Object.assign(l,o.errors||{}),new Error("Validation failed")}if(!t.ok)throw new Error(`Save failed: ${t.status}`);V("Saved"),await
|