- `}handleFileSelect(e){const t=e.target;this.uploadedFile=t.files?.[0]||null,this.error=null}async handleAnalyze(){if(this.uploadedFile){this.isUploading=!0,this.error=null;try{const e=new FormData;e.append("file",this.uploadedFile),e.append("targetExtension",this.targetExtension);const s=await(await new u(TYPO3.settings.ajaxUrls.content_blocks_gui_upload).post(e)).resolve();s.success?(this.analysis=s.analysis,this.step="analysis",this.conflicts.clear(),s.analysis.blocks.forEach(r=>{r.conflict!==""&&this.conflicts.set(r.name,"skip")}),this.requestUpdate()):this.error=s.error||"Failed to analyze ZIP file"}catch(e){let t="Unknown error";if(e?.response)try{const s=await e.response.json();t=s.error||s.message||t}catch{t=e.response.statusText||t}else e instanceof Error?t=e.message:typeof e=="string"&&(t=e);this.error=t}finally{this.isUploading=!1}}}async handleImport(){if(this.analysis){this.step="import";try{const e={};this.conflicts.forEach((r,n)=>{e[n]=r});const s=await(await new u(TYPO3.settings.ajaxUrls.content_blocks_gui_import).post({analysis:this.analysis,targetExtension:this.targetExtension,conflicts:e})).resolve();s.success?(this.result=s.result,this.step="result"):(this.error=s.error||"Failed to import content blocks",this.step="upload")}catch(e){const t=e instanceof Error?e.message:"Unknown error";this.error=`Failed to import: ${t}`,this.step="upload"}}}setConflictResolution(e,t){this.conflicts.set(e,t),this.requestUpdate()}getImportCount(){if(!this.analysis)return 0;let e=0;return this.analysis.blocks.forEach(t=>{(t.conflict===""||this.conflicts.get(t.name)==="overwrite")&&e++}),e}closeAndReload(){this.dispatchEvent(new CustomEvent("close")),setTimeout(()=>{window.location.reload()},100)}resetToUpload(){this.step="upload",this.uploadedFile=null,this.analysis=null,this.result=null,this.error=null,this.conflicts.clear();const e=this.querySelector("#zipFile");e&&(e.value="")}renderBlocksByType(e,t,s){if(e.length===0)return h;const r=this.groupByType(e);return i`
0 commit comments