Files
miriamgemeinde/public/assets/ImageUpload-nMYenZX7.js
Torsten Schulz (local) 7156cc141a
All checks were successful
Deploy miriamgemeinde / deploy (push) Successful in 7s
Update asset references in index.html: Change script and stylesheet links to new hashed filenames for improved caching and performance.
2026-04-29 18:32:22 +02:00

2 lines
6.2 KiB
JavaScript

import{E as e,M as t,c as n,ct as r,d as i,i as a,m as o,ot as s,t as c,u as l,w as u}from"./_plugin-vue_export-helper-Conii5fq.js";import{a as d,c as f,i as p}from"./runtime-dom.esm-bundler-CI28bPhn.js";import{r as m}from"./router-CLi6dkmN.js";import{r as h,t as g}from"./strings-CNeI630x.js";var _={name:`ImageUpload`,data(){return{title:``,description:``,image:null,bulkBaseTitle:``,bulkStartNumber:1,bulkDescription:``,bulkFiles:[],bulkSelectedPage:``,selectedPage:``,uploadMode:`single`,pages:[],images:[]}},methods:{formatDate:g,formatTimeFromDate:h,onFileChange(e){this.image=e.target.files[0]},onBulkFilesChange(e){this.bulkFiles=Array.from(e.target.files||[])},async uploadImage(){let e=new FormData;e.append(`title`,this.title),e.append(`description`,this.description),e.append(`image`,this.image),e.append(`page`,this.selectedPage);try{await m.post(`/image/`,e),this.fetchImages(),this.resetForm()}catch(e){console.error(`Fehler beim Hochladen des Bildes:`,e)}},async fetchImages(){try{this.images=(await m.get(`/image`)).data}catch(e){console.error(`Fehler beim Abrufen der Bilder:`,e)}},async uploadImagesBulk(){if(!this.bulkBaseTitle||this.bulkFiles.length===0)return;let e=new FormData;e.append(`baseTitle`,this.bulkBaseTitle),e.append(`startNumber`,this.bulkStartNumber),e.append(`description`,this.bulkDescription),e.append(`page`,this.bulkSelectedPage),this.bulkFiles.forEach(t=>e.append(`images`,t));try{await m.post(`/image/bulk`,e),this.fetchImages(),this.resetBulkForm()}catch(e){console.error(`Fehler beim Bulk-Upload der Bilder:`,e)}},async fetchPages(){try{let e=await m.get(`/menu-data`),t=function(e,n=``){return e.flatMap(e=>{let r=[];return e.submenu&&e.submenu.length&&(r=t(e.submenu,n+e.name+` -> `)),[{value:e.link,caption:n+e.name},...r]})};this.pages=t(e.data)}catch(e){console.error(`Fehler beim Abrufen der Seiten:`,e)}},async updateImage(e){try{await m.put(`/image/${e.id}`,{title:e.title,description:e.description}),this.fetchImages()}catch(e){console.error(`Fehler beim Aktualisieren des Bildes:`,e)}},resetForm(){this.title=``,this.description=``,this.image=null,this.selectedPage=``,document.getElementById(`image`).value=null},resetBulkForm(){this.bulkBaseTitle=``,this.bulkStartNumber=1,this.bulkDescription=``,this.bulkFiles=[],this.bulkSelectedPage=``,this.$refs.bulkImagesInput&&(this.$refs.bulkImagesInput.value=null)}},mounted(){this.fetchImages(),this.fetchPages()}},v={class:`upload-mode-switch`},y=[`value`],b=[`value`],x={key:0},S=[`disabled`],C={key:2},w=[`src`,`alt`],T=[`onUpdate:modelValue`,`onChange`],E=[`onUpdate:modelValue`,`onChange`];function D(c,m,h,g,_,D){return u(),i(`div`,null,[m[27]||=n(`h1`,null,`Bild hochladen`,-1),n(`div`,v,[n(`button`,{type:`button`,class:s({active:_.uploadMode===`single`}),onClick:m[0]||=e=>_.uploadMode=`single`},` Einzel-Upload `,2),n(`button`,{type:`button`,class:s({active:_.uploadMode===`bulk`}),onClick:m[1]||=e=>_.uploadMode=`bulk`},` Bulk-Upload `,2)]),_.uploadMode===`single`?(u(),i(`form`,{key:0,onSubmit:m[6]||=f((...e)=>D.uploadImage&&D.uploadImage(...e),[`prevent`])},[n(`div`,null,[m[13]||=n(`label`,{for:`title`},`Titel`,-1),t(n(`input`,{type:`text`,id:`title`,"onUpdate:modelValue":m[2]||=e=>_.title=e},null,512),[[d,_.title]])]),n(`div`,null,[m[14]||=n(`label`,{for:`description`},`Beschreibung`,-1),t(n(`textarea`,{id:`description`,"onUpdate:modelValue":m[3]||=e=>_.description=e},null,512),[[d,_.description]])]),n(`div`,null,[m[15]||=n(`label`,{for:`image`},`Bild`,-1),n(`input`,{type:`file`,id:`image`,onChange:m[4]||=(...e)=>D.onFileChange&&D.onFileChange(...e)},null,32)]),n(`div`,null,[m[17]||=n(`label`,{for:`page`},`Seite`,-1),t(n(`select`,{id:`page`,"onUpdate:modelValue":m[5]||=e=>_.selectedPage=e},[m[16]||=n(`option`,{value:``},`Keine Seite`,-1),(u(!0),i(a,null,e(_.pages,e=>(u(),i(`option`,{key:e.value,value:e.value},r(e.caption),9,y))),128))],512),[[p,_.selectedPage]])]),m[18]||=n(`button`,{type:`submit`},`Hochladen`,-1)],32)):(u(),i(`form`,{key:1,onSubmit:m[12]||=f((...e)=>D.uploadImagesBulk&&D.uploadImagesBulk(...e),[`prevent`])},[m[25]||=n(`h2`,null,`Bulk-Upload`,-1),n(`div`,null,[m[19]||=n(`label`,{for:`bulkBaseTitle`},`Basis-Titel`,-1),t(n(`input`,{type:`text`,id:`bulkBaseTitle`,"onUpdate:modelValue":m[7]||=e=>_.bulkBaseTitle=e,placeholder:`z. B. Gemeindebrief Bild`,required:``},null,512),[[d,_.bulkBaseTitle]])]),n(`div`,null,[m[20]||=n(`label`,{for:`bulkStartNumber`},`Startnummer`,-1),t(n(`input`,{type:`number`,id:`bulkStartNumber`,"onUpdate:modelValue":m[8]||=e=>_.bulkStartNumber=e,min:`1`},null,512),[[d,_.bulkStartNumber,void 0,{number:!0}]])]),n(`div`,null,[m[21]||=n(`label`,{for:`bulkDescription`},`Beschreibung`,-1),t(n(`textarea`,{id:`bulkDescription`,"onUpdate:modelValue":m[9]||=e=>_.bulkDescription=e},null,512),[[d,_.bulkDescription]])]),n(`div`,null,[m[22]||=n(`label`,{for:`bulkImages`},`Bilder`,-1),n(`input`,{type:`file`,id:`bulkImages`,ref:`bulkImagesInput`,onChange:m[10]||=(...e)=>D.onBulkFilesChange&&D.onBulkFilesChange(...e),accept:`image/*`,multiple:``},null,544)]),n(`div`,null,[m[24]||=n(`label`,{for:`bulkPage`},`Seite`,-1),t(n(`select`,{id:`bulkPage`,"onUpdate:modelValue":m[11]||=e=>_.bulkSelectedPage=e},[m[23]||=n(`option`,{value:``},`Keine Seite`,-1),(u(!0),i(a,null,e(_.pages,e=>(u(),i(`option`,{key:`bulk-${e.value}`,value:e.value},r(e.caption),9,b))),128))],512),[[p,_.bulkSelectedPage]])]),_.bulkFiles.length>0?(u(),i(`p`,x,[o(r(_.bulkFiles.length)+` Datei(en) ausgewählt. Erste Titel-Vorschau: `,1),n(`strong`,null,r(_.bulkBaseTitle||`Titel`)+` `+r(_.bulkStartNumber),1)])):l(``,!0),n(`button`,{type:`submit`,disabled:_.bulkFiles.length===0},`Bulk hochladen`,8,S)],32)),_.images.length?(u(),i(`div`,C,[m[26]||=n(`h2`,null,`Hochgeladene Bilder`,-1),(u(!0),i(a,null,e(_.images,e=>(u(),i(`div`,{key:e.id,class:`uploaded-image`},[n(`img`,{src:`/images/uploads/${e.filename}`,alt:e.title,width:`100`},null,8,w),t(n(`input`,{type:`text`,"onUpdate:modelValue":t=>e.title=t,onChange:t=>D.updateImage(e)},null,40,T),[[d,e.title]]),t(n(`textarea`,{"onUpdate:modelValue":t=>e.description=t,onChange:t=>D.updateImage(e)},null,40,E),[[d,e.description]]),n(`p`,null,r(D.formatDate(e.uploadDate))+` `+r(D.formatTimeFromDate(e.uploadDate)),1)]))),128))])):l(``,!0)])}var O=c(_,[[`render`,D],[`__scopeId`,`data-v-428e8cf1`]]);export{O as default};
//# sourceMappingURL=ImageUpload-nMYenZX7.js.map