Integrate PDF parsing functionality: Add 'pdf-parse' dependency to package.json and package-lock.json. Update worshipController to include logic for handling PDF imports, enhancing the event management process. Refactor routing to support new newsletter import features and improve event form handling for better user experience.
This commit is contained in:
2
public/assets/NewsletterImportManagement-Jlvsipct.js
Normal file
2
public/assets/NewsletterImportManagement-Jlvsipct.js
Normal file
@@ -0,0 +1,2 @@
|
||||
import{E as e,c as t,ct as n,d as r,i,t as a,u as o,w as s}from"./_plugin-vue_export-helper-Conii5fq.js";import{r as c}from"./router-C4txBW1P.js";var l={name:`NewsletterImportManagement`,data(){return{newsletterPdfFile:null,isNewsletterImporting:!1,newsletterImportResult:null}},methods:{handleNewsletterPdfSelect(e){let t=e.target.files?.[0];if(!t){this.newsletterPdfFile=null;return}if(!t.name.toLowerCase().endsWith(`.pdf`)){alert(`Bitte eine PDF-Datei auswählen.`),e.target.value=``,this.newsletterPdfFile=null;return}this.newsletterPdfFile=t},async importNewsletterPdf(){if(!this.newsletterPdfFile)return;this.isNewsletterImporting=!0;let e=new FormData;e.append(`file`,this.newsletterPdfFile);try{this.newsletterImportResult=(await c.post(`/worships/import/newsletter-pdf`,e,{headers:{"Content-Type":`multipart/form-data`}})).data}catch(e){let t=e.response?.data?.message||`Fehler beim Parsen der PDF-Datei.`;alert(`Fehler: ${t}`)}finally{this.isNewsletterImporting=!1}}}},u={class:`newsletter-import`},d={class:`import-section`},f={class:`import-content`},p={key:0,class:`selected-file`},m=[`disabled`],h={key:0,class:`newsletter-preview`},g={class:`newsletter-meta`},_={class:`newsletter-counts`},v={key:0,class:`questions`};function y(a,c,l,y,b,x){return s(),r(`div`,u,[c[6]||=t(`h2`,null,`Gemeindebrief-Import (PDF)`,-1),t(`div`,d,[c[3]||=t(`p`,{class:`hint`},` Diese Seite parst den Gemeindebrief und zeigt eine Vorschau nach Kategorien. Die finale Übernahme bauen wir auf Basis der Parser-Ergebnisse schrittweise aus. `,-1),t(`div`,f,[c[2]||=t(`label`,{for:`newsletter-import-file`},`Datei auswählen (.pdf):`,-1),t(`input`,{id:`newsletter-import-file`,ref:`newsletterFileInput`,type:`file`,accept:`.pdf`,onChange:c[0]||=(...e)=>x.handleNewsletterPdfSelect&&x.handleNewsletterPdfSelect(...e)},null,544),b.newsletterPdfFile?(s(),r(`div`,p,` Ausgewählte PDF: `+n(b.newsletterPdfFile.name),1)):o(``,!0),t(`button`,{type:`button`,class:`submit-import-button`,disabled:!b.newsletterPdfFile||b.isNewsletterImporting,onClick:c[1]||=(...e)=>x.importNewsletterPdf&&x.importNewsletterPdf(...e)},n(b.isNewsletterImporting?`Parse PDF...`:`PDF parsen`),9,m)])]),b.newsletterImportResult?(s(),r(`div`,h,[c[5]||=t(`h3`,null,`Vorschau`,-1),t(`p`,g,` Seiten: `+n(b.newsletterImportResult.meta?.pages||`-`)+`, Zeilen: `+n(b.newsletterImportResult.meta?.lineCount||`-`),1),t(`ul`,_,[t(`li`,null,`Gottesdienste: `+n(b.newsletterImportResult.parsed?.gottesdienste?.length||0),1),t(`li`,null,`Regelmäßige Termine: `+n(b.newsletterImportResult.parsed?.regelmaessigeTermine?.length||0),1),t(`li`,null,`Besondere Gottesdienste: `+n(b.newsletterImportResult.parsed?.besondereGottesdienste?.length||0),1),t(`li`,null,`Miriamtreff: `+n(b.newsletterImportResult.parsed?.miriamtreff?.length||0),1),t(`li`,null,`Kinder und Jugend: `+n(b.newsletterImportResult.parsed?.kinderUndJugend?.length||0),1)]),b.newsletterImportResult.questions?.length?(s(),r(`div`,v,[c[4]||=t(`h4`,null,`Offene Fragen`,-1),t(`ul`,null,[(s(!0),r(i,null,e(b.newsletterImportResult.questions,(e,t)=>(s(),r(`li`,{key:t},n(e),1))),128))])])):o(``,!0)])):o(``,!0)])}var b=a(l,[[`render`,y],[`__scopeId`,`data-v-f4ebbd8f`]]);export{b as default};
|
||||
//# sourceMappingURL=NewsletterImportManagement-Jlvsipct.js.map
|
||||
Reference in New Issue
Block a user