"use strict";(self["webpackChunkmiriamgemeinde"]=self["webpackChunkmiriamgemeinde"]||[]).push([[763],{513:function(e,t,n){n.d(t,{A:function(){return b}});var a=n(641),l=n(33);const i=e=>((0,a.Qi)("data-v-59dc7db8"),e=e(),(0,a.jt)(),e),o={key:0,class:"dialog-overlay"},s={class:"dialog-content"},d=i((()=>(0,a.Lk)("h3",null,"Bild auswählen",-1))),r={class:"images-container"},u=["onClick"],c=["src"],m=["title"],v={key:1},k={class:"button-container"};function h(e,t,n,i,h,g){return(0,a.uX)(),(0,a.CE)("div",null,[i.isOpen?((0,a.uX)(),(0,a.CE)("div",o,[(0,a.Lk)("div",s,[d,(0,a.Lk)("div",r,[((0,a.uX)(!0),(0,a.CE)(a.FK,null,(0,a.pI)(i.images,(e=>((0,a.uX)(),(0,a.CE)("div",{key:e.id,class:(0,l.C4)(["image-block",{selected:e.id===i.selectedImage?.id}]),onClick:t=>i.selectImage(e)},[(0,a.Lk)("img",{src:"/images/uploads/"+e.filename},null,8,c),e.description?((0,a.uX)(),(0,a.CE)("span",{key:0,title:e.description},(0,l.v_)(e.title),9,m)):((0,a.uX)(),(0,a.CE)("span",v,(0,l.v_)(e.title),1))],10,u)))),128))]),(0,a.Lk)("div",k,[(0,a.Lk)("button",{onClick:t[0]||(t[0]=(...e)=>i.confirmAddImageConfiguration&&i.confirmAddImageConfiguration(...e))},"Bestätigen"),(0,a.Lk)("button",{onClick:t[1]||(t[1]=(...e)=>i.closeAddImageDialog&&i.closeAddImageDialog(...e))},"Schließen")])])])):(0,a.Q3)("",!0)])}var g=n(953),p=n(6296),L={name:"AddImageDialog",emits:["confirm"],setup(e,{emit:t}){const n=(0,g.KR)(!1),a=(0,g.KR)([]),l=(0,g.KR)(null),i=()=>{n.value=!0,d()},o=()=>{n.value=!1},s=()=>{l.value&&t("confirm",`${l.value.id}`),o()},d=async()=>{try{const e=await p.A.get("/image");a.value=e.data}catch(e){console.error("Fehler beim Laden der Bilder:",e),a.value=[]}},r=e=>{console.log(e),l.value=e};return{isOpen:n,images:a,selectedImage:l,openAddImageDialog:i,closeAddImageDialog:o,confirmAddImageConfiguration:s,selectImage:r}}},y=n(6262);const f=(0,y.A)(L,[["render",h],["__scopeId","data-v-59dc7db8"]]);var b=f},2577:function(e,t,n){var a=n(6518),l=n(2652),i=n(9306),o=n(8551),s=n(1767);a({target:"Iterator",proto:!0,real:!0},{find:function(e){o(this),i(e);var t=s(this),n=0;return l(t,(function(t,a){if(e(t,n++))return a(t)}),{IS_RECORD:!0,INTERRUPTED:!0}).result}})},8763:function(e,t,n){n.r(t),n.d(t,{default:function(){return te}});var a=n(641),l=n(33);const i=e=>((0,a.Qi)("data-v-97f69b82"),e=e(),(0,a.jt)(),e),o={class:"event-management"},s=i((()=>(0,a.Lk)("h2",null,"Veranstaltungen",-1))),d=i((()=>(0,a.Lk)("thead",null,[(0,a.Lk)("tr",null,[(0,a.Lk)("th",null,"Name"),(0,a.Lk)("th",null,"Typ"),(0,a.Lk)("th",null,"Datum"),(0,a.Lk)("th",null,"Uhrzeit"),(0,a.Lk)("th",null,"Wochentag"),(0,a.Lk)("th",null,"Beschreibung"),(0,a.Lk)("th",null,"Aktionen")])],-1))),r={key:0},u=["onClick"],c=["onClick"];function m(e,t,n,i,m,v){const k=(0,a.g2)("EventForm");return(0,a.uX)(),(0,a.CE)("div",o,[s,(0,a.Lk)("button",{onClick:t[0]||(t[0]=(...e)=>v.createEvent&&v.createEvent(...e))},"Neue Veranstaltung"),m.showForm?((0,a.uX)(),(0,a.Wv)(k,{key:0,event:m.selectedEvent,institutions:m.institutions,eventPlaces:m.eventPlaces,contactPersons:m.contactPersons,onSaved:v.handleEventSaved,onCancelled:v.handleEventCancelled},null,8,["event","institutions","eventPlaces","contactPersons","onSaved","onCancelled"])):(0,a.Q3)("",!0),(0,a.Lk)("table",null,[d,(0,a.Lk)("tbody",null,[((0,a.uX)(!0),(0,a.CE)(a.FK,null,(0,a.pI)(m.events,(e=>((0,a.uX)(),(0,a.CE)("tr",{key:e.id},[(0,a.Lk)("td",null,(0,l.v_)(e.name),1),(0,a.Lk)("td",null,(0,l.v_)(v.getEventTypeCaption(e.eventTypeId)),1),(0,a.Lk)("td",null,(0,l.v_)(e.date),1),(0,a.Lk)("td",null,[(0,a.eW)((0,l.v_)(v.formatTime(e.time)),1),e.endTime?((0,a.uX)(),(0,a.CE)("span",r," - "+(0,l.v_)(v.formatTime(e.endTime)),1)):(0,a.Q3)("",!0)]),(0,a.Lk)("td",null,(0,l.v_)(v.getWeekdayName(e.dayOfWeek)),1),(0,a.Lk)("td",null,(0,l.v_)(e.description),1),(0,a.Lk)("td",null,[(0,a.Lk)("button",{onClick:t=>v.editEvent(e)},"Bearbeiten",8,u),(0,a.Lk)("button",{onClick:t=>v.deleteEvent(e.id)},"Löschen",8,c)])])))),128))])])])}n(8992),n(2577);var v=n(4335),k=n(3751);const h=e=>((0,a.Qi)("data-v-bd888796"),e=e(),(0,a.jt)(),e),g={class:"event-form"},p=h((()=>(0,a.Lk)("h2",null,"Veranstaltung Formular",-1))),L=h((()=>(0,a.Lk)("td",null,[(0,a.Lk)("label",{for:"name"},"Name:")],-1))),y=h((()=>(0,a.Lk)("td",null,[(0,a.Lk)("label",{for:"eventType"},"Typ:")],-1))),f=h((()=>(0,a.Lk)("td",null,[(0,a.Lk)("label",{for:"dateMode"},"Datum-Modus:")],-1))),b=h((()=>(0,a.Lk)("option",{value:"date"},"Datum",-1))),D=h((()=>(0,a.Lk)("option",{value:"weekday"},"Wochentag",-1))),I=h((()=>(0,a.Lk)("option",{value:"interval"},"Intervall",-1))),E=h((()=>(0,a.Lk)("option",{value:"bulk"},"Bulk-Datum",-1))),C=[b,D,I,E],T={key:0},P=h((()=>(0,a.Lk)("td",null,[(0,a.Lk)("label",{for:"date"},"Datum:")],-1))),w={key:1},A=h((()=>(0,a.Lk)("td",null,[(0,a.Lk)("label",{for:"bulkDates"},"Bulk-Daten:")],-1))),F=h((()=>(0,a.Lk)("div",{style:{"font-size":"0.9em",color:"#888"}},"Format: TT.MM.JJJJ (optional weiterhin JJJJ-MM-TT). Trennen mit Komma oder Zeilenumbruch.",-1))),M={key:2},V=h((()=>(0,a.Lk)("td",null,[(0,a.Lk)("label",{for:"dayOfWeek"},"Wochentag:")],-1))),J=h((()=>(0,a.Lk)("td",null,[(0,a.Lk)("label",{for:"time"},"Uhrzeit:")],-1))),U=h((()=>(0,a.Lk)("td",null,[(0,a.Lk)("label",{for:"endTime"},"Ende-Uhrzeit:")],-1))),S=h((()=>(0,a.Lk)("td",null,[(0,a.Lk)("label",{for:"description"},"Beschreibung:")],-1))),_=h((()=>(0,a.Lk)("td",null,[(0,a.Lk)("label",{for:"institution"},"Institution:")],-1))),W=h((()=>(0,a.Lk)("td",null,[(0,a.Lk)("label",{for:"eventPlace"},"Veranstaltungsort:")],-1))),X=h((()=>(0,a.Lk)("td",null,[(0,a.Lk)("label",{for:"contactPersons"},"Kontaktpersonen:")],-1))),$={colspan:"2"},O=h((()=>(0,a.Lk)("td",null,"Zugewiesenes Bild:",-1))),B={key:0},K=["src"],H={key:1},Q=h((()=>(0,a.Lk)("tr",null,[(0,a.Lk)("td",{colspan:"2"},[(0,a.Lk)("button",{type:"submit"},"Speichern")])],-1)));function R(e,t,n,l,i,o){const s=(0,a.g2)("multiselect"),d=(0,a.g2)("AddImageDialog");return(0,a.uX)(),(0,a.CE)(a.FK,null,[(0,a.Lk)("div",g,[p,(0,a.Lk)("form",{onSubmit:t[15]||(t[15]=(0,k.D$)(((...e)=>o.saveEvent&&o.saveEvent(...e)),["prevent"]))},[(0,a.Lk)("table",null,[(0,a.Lk)("tr",null,[L,(0,a.Lk)("td",null,[(0,a.bo)((0,a.Lk)("input",{type:"text",id:"name","onUpdate:modelValue":t[0]||(t[0]=e=>i.eventData.name=e),required:""},null,512),[[k.Jo,i.eventData.name]])])]),(0,a.Lk)("tr",null,[y,(0,a.Lk)("td",null,[(0,a.bF)(s,{modelValue:i.selectedEventType,"onUpdate:modelValue":t[1]||(t[1]=e=>i.selectedEventType=e),options:i.eventTypes,label:"caption","track-by":"id",placeholder:"Typ wählen"},null,8,["modelValue","options"])])]),(0,a.Lk)("tr",null,[f,(0,a.Lk)("td",null,[(0,a.bo)((0,a.Lk)("select",{"onUpdate:modelValue":t[2]||(t[2]=e=>i.dateMode=e)},C,512),[[k.u1,i.dateMode]])])]),"date"===i.dateMode||"interval"===i.dateMode?((0,a.uX)(),(0,a.CE)("tr",T,[P,(0,a.Lk)("td",null,[(0,a.bo)((0,a.Lk)("input",{type:"date",id:"date","onUpdate:modelValue":t[3]||(t[3]=e=>i.eventData.date=e)},null,512),[[k.Jo,i.eventData.date]])])])):(0,a.Q3)("",!0),"bulk"===i.dateMode?((0,a.uX)(),(0,a.CE)("tr",w,[A,(0,a.Lk)("td",null,[(0,a.bo)((0,a.Lk)("textarea",{id:"bulkDates","onUpdate:modelValue":t[4]||(t[4]=e=>i.bulkDates=e),placeholder:"Mehrere Daten, z.B. 27.03.2025,03.04.2025 oder je Zeile ein Datum"},null,512),[[k.Jo,i.bulkDates]]),F])])):(0,a.Q3)("",!0),"weekday"===i.dateMode||"interval"===i.dateMode?((0,a.uX)(),(0,a.CE)("tr",M,[V,(0,a.Lk)("td",null,[(0,a.bF)(s,{modelValue:i.eventData.dayOfWeek,"onUpdate:modelValue":t[5]||(t[5]=e=>i.eventData.dayOfWeek=e),options:i.weekdays,label:"name","track-by":"value",placeholder:"Wochentag wählen"},null,8,["modelValue","options"])])])):(0,a.Q3)("",!0),(0,a.Lk)("tr",null,[J,(0,a.Lk)("td",null,[(0,a.bo)((0,a.Lk)("input",{type:"time",id:"time","onUpdate:modelValue":t[6]||(t[6]=e=>i.eventData.time=e)},null,512),[[k.Jo,i.eventData.time]])])]),(0,a.Lk)("tr",null,[U,(0,a.Lk)("td",null,[(0,a.bo)((0,a.Lk)("input",{type:"time",id:"endTime","onUpdate:modelValue":t[7]||(t[7]=e=>i.eventData.endTime=e)},null,512),[[k.Jo,i.eventData.endTime]])])]),(0,a.Lk)("tr",null,[S,(0,a.Lk)("td",null,[(0,a.bo)((0,a.Lk)("textarea",{id:"description","onUpdate:modelValue":t[8]||(t[8]=e=>i.eventData.description=e),class:"descriptionedit"},null,512),[[k.Jo,i.eventData.description]])])]),(0,a.Lk)("tr",null,[_,(0,a.Lk)("td",null,[(0,a.bF)(s,{modelValue:i.selectedInstitution,"onUpdate:modelValue":t[9]||(t[9]=e=>i.selectedInstitution=e),options:i.localInstitutions,label:"name","track-by":"id",placeholder:"Institution wählen"},null,8,["modelValue","options"])])]),(0,a.Lk)("tr",null,[W,(0,a.Lk)("td",null,[(0,a.bF)(s,{modelValue:i.selectedEventPlace,"onUpdate:modelValue":t[10]||(t[10]=e=>i.selectedEventPlace=e),options:i.localEventPlaces,label:"name","track-by":"id",placeholder:"Veranstaltungsort wählen"},null,8,["modelValue","options"])])]),(0,a.Lk)("tr",null,[X,(0,a.Lk)("td",null,[(0,a.bF)(s,{modelValue:i.selectedContactPersons,"onUpdate:modelValue":t[11]||(t[11]=e=>i.selectedContactPersons=e),options:i.localContactPersons,multiple:!0,label:"name","track-by":"id",placeholder:"Kontaktpersonen wählen"},null,8,["modelValue","options"])])]),(0,a.Lk)("tr",null,[(0,a.Lk)("td",$,[(0,a.Lk)("label",null,[(0,a.bo)((0,a.Lk)("input",{type:"checkbox","onUpdate:modelValue":t[12]||(t[12]=e=>i.onHomepage=e)},null,512),[[k.lH,i.onHomepage]]),(0,a.eW)("Auf der Startseite anzeigen")])])]),(0,a.Lk)("tr",null,[O,(0,a.Lk)("td",null,[null!=i.assignedImage&&i.imageFilename?((0,a.uX)(),(0,a.CE)("div",B,[(0,a.Lk)("img",{src:o.getImagePath,class:"preview-image"},null,8,K),(0,a.Lk)("button",{onClick:t[13]||(t[13]=(...e)=>o.removeImage&&o.removeImage(...e)),type:"button"},"Bild entfernen")])):((0,a.uX)(),(0,a.CE)("div",H,[(0,a.Lk)("button",{type:"button",onClick:t[14]||(t[14]=(...e)=>o.openAddImageDialog&&o.openAddImageDialog(...e))},"Bild auswählen")]))])]),Q])],32)]),(0,a.bF)(d,{ref:"addImageDialog",onConfirm:o.setImage},null,8,["onConfirm"])],64)}n(4114),n(4520),n(1454);var j=n(5877),q=n(9654),z=n(513),N={name:"EventForm",components:{Multiselect:j.Ay,AddImageDialog:z.A},props:{event:{type:Object,required:!0,default:()=>({})},institutions:{type:Array,required:!0,default:()=>[]},eventPlaces:{type:Array,required:!0,default:()=>[]},contactPersons:{type:Array,required:!0,default:()=>[]}},data(){return{eventData:{...this.event},selectedEventType:null,selectedInstitution:this.event.institution||null,selectedEventPlace:this.event.eventPlace||null,selectedContactPersons:this.event.contactPersons||[],eventTypes:[],dateMode:"date",weekdays:[{name:"Montag",value:1},{name:"Dienstag",value:2},{name:"Mittwoch",value:3},{name:"Donnerstag",value:4},{name:"Freitag",value:5},{name:"Samstag",value:6},{name:"Sonntag",value:7}],localInstitutions:[...this.institutions],localEventPlaces:[...this.eventPlaces],localContactPersons:[...this.contactPersons],onHomepage:!1,assignedImage:null,imageFilename:"",bulkDates:""}},watch:{event(e){this.eventData={...e},this.selectedEventType=this.eventTypes.find((t=>t.id===e.eventTypeId))||null,this.selectedInstitution=e.institution||null,this.selectedEventPlace=e.eventPlace||null,this.selectedContactPersons=e.contactPersons||[],this.onHomepage=1==e.alsoOnHomepage,this.assignedImage=e.relatedImage||null,this.assignedImage&&this.fetchImageFilename(),this.determineDateMode()},institutions(e){this.localInstitutions=[...e]},eventPlaces(e){this.localEventPlaces=[...e]},contactPersons(e){this.localContactPersons=[...e]}},async created(){try{const e=await v.A.get("/event-types");this.eventTypes=e.data,this.selectedEventType=this.eventTypes.find((e=>e.id===this.event.eventTypeId))||null}catch(e){console.error("Failed to fetch event types:",e)}this.determineDateMode()},computed:{getImagePath(){return this.imageFilename?`/images/uploads/${this.imageFilename}`:""}},methods:{formatTime:q.fU,async saveEvent(){try{const e={...this.eventData,eventTypeId:this.selectedEventType?this.selectedEventType.id:null,institution_id:this.selectedInstitution?this.selectedInstitution.id:null,event_place_id:this.selectedEventPlace?this.selectedEventPlace.id:null,contactPersonIds:this.selectedContactPersons.map((e=>e.id)),dayOfWeek:this.eventData.dayOfWeek?this.eventData.dayOfWeek.value??-1:-1,relatedImage:this.assignedImage,alsoOnHomepage:this.onHomepage?1:0};if("bulk"===this.dateMode&&this.bulkDates){const t=this.bulkDates.split(/,|\n/).map((e=>e.trim())).filter((e=>e.length>0)),n=[],a=[],l=e=>e.toString().padStart(2,"0");for(const e of t){let t=e.match(/^(\d{1,2})\.(\d{1,2})\.(\d{4})$/);if(t){const i=parseInt(t[1],10),o=parseInt(t[2],10),s=parseInt(t[3],10);if(o>=1&&o<=12&&i>=1&&i<=31){n.push(`${s}-${l(o)}-${l(i)}`);continue}a.push(e)}else/^\d{4}-\d{2}-\d{2}$/.test(e)?n.push(e):a.push(e)}if(0===n.length)return void alert("Keine gültigen Datumsangaben erkannt. Erlaubt: TT.MM.JJJJ oder JJJJ-MM-TT");a.length>0&&(console.warn("Ungültige Datumsangaben ignoriert:",a),alert("Folgende Einträge wurden ignoriert: "+a.join(", ")));const i=[];for(const o of n){const t={...e,date:o},n=await v.A.post("/events",t);i.push(n.data)}this.$emit("saved",i)}else{let t;t=this.eventData.id?await v.A.put(`/events/${this.eventData.id}`,e):await v.A.post("/events",e),this.$emit("saved",t.data)}}catch(e){console.error("Failed to save event:",e)}},determineDateMode(){this.eventData.date&&this.eventData.dayOfWeek?this.dateMode="interval":this.eventData.date?this.dateMode="date":this.eventData.dayOfWeek?this.dateMode="weekday":this.dateMode="date"},async fetchImageFilename(){try{const e=await v.A.get("/image/"+this.assignedImage);this.imageFilename=e.data.filename}catch(e){console.error("Bild konnte nicht geladen werden:",e)}},openAddImageDialog(){this.$refs.addImageDialog.openAddImageDialog()},async setImage(e){this.assignedImage=e;try{const t=await v.A.get("/image/"+e);this.imageFilename=t.data.filename}catch(t){console.error("Bild konnte nicht geladen werden:",t),this.imageFilename=""}},removeImage(){this.assignedImage=null,this.imageFilename=""}}},x=n(6262);const Z=(0,x.A)(N,[["render",R],["__scopeId","data-v-bd888796"]]);var Y=Z,G={components:{EventForm:Y},data(){return{events:[],institutions:[],eventPlaces:[],contactPersons:[],eventTypes:[],selectedEvent:null,showForm:!1}},async created(){await this.fetchData()},methods:{formatTime:q.fU,async fetchData(){try{const[e,t,n,a,l]=await Promise.all([v.A.get("/events"),v.A.get("/institutions"),v.A.get("/event-places"),v.A.get("/contact-persons"),v.A.get("/event-types")]);this.events=e.data,this.institutions=t.data,this.eventPlaces=n.data,this.contactPersons=a.data,this.eventTypes=l.data}catch(e){console.error("Fehler beim Abrufen der Daten:",e)}},createEvent(){this.selectedEvent={},this.showForm=!0},editEvent(e){this.selectedEvent={...e},this.showForm=!0},async deleteEvent(e){try{await v.A.delete(`/events/${e}`),this.fetchData()}catch(t){console.error("Fehler beim Löschen der Veranstaltung:",t)}},handleEventSaved(){this.showForm=!1,this.fetchData()},handleEventCancelled(){this.showForm=!1},getEventTypeCaption(e){const t=this.eventTypes.find((t=>t.id===e));return t?t.caption:"Unbekannt"},getWeekdayName(e){const t=["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"];return t[e-1]}}};const ee=(0,x.A)(G,[["render",m],["__scopeId","data-v-97f69b82"]]);var te=ee},9654:function(e,t,n){function a(e){const[t,n]=e.split(":");return`${t}:${n}`}function l(e){const t={year:"numeric",month:"2-digit",day:"2-digit"};return new Date(e).toLocaleDateString("de-DE",t)}function i(e){const t=new Date(e),n=String(t.getHours()).padStart(2,"0"),a=String(t.getMinutes()).padStart(2,"0");return`${n}:${a}`}n.d(t,{Yq:function(){return l},fU:function(){return a},ry:function(){return i}})}}]); //# sourceMappingURL=763.9748703d.js.map