mirror of
				https://github.com/Frooodle/Stirling-PDF.git
				synced 2025-10-25 11:17:28 +02:00 
			
		
		
		
	Metrics changes (#2273)
* Update downloader.js * Update downloader.js * Update common.html * Update downloader.js
This commit is contained in:
		
							parent
							
								
									a6ae3734ca
								
							
						
					
					
						commit
						d0d6a70250
					
				| @ -96,14 +96,31 @@ | ||||
|     }); | ||||
|   }); | ||||
| 
 | ||||
|   async function getPDFPageCount(file) { | ||||
|     try { | ||||
|       const arrayBuffer = await file.arrayBuffer(); | ||||
|       pdfjsLib.GlobalWorkerOptions.workerSrc = '/pdfjs-legacy/pdf.worker.mjs' | ||||
|       const pdf = await pdfjsLib.getDocument({ data: arrayBuffer }).promise; | ||||
|       return pdf.numPages; | ||||
|     } catch (error) { | ||||
|       console.error('Error getting PDF page count:', error); | ||||
|       return null; | ||||
|     } | ||||
|   } | ||||
|    | ||||
|   async function handleSingleDownload(url, formData, isMulti = false, isZip = false) { | ||||
|     const startTime = performance.now(); | ||||
|     const file = formData.get('fileInput'); | ||||
|     let success = false; | ||||
|     let errorMessage = null; | ||||
|      | ||||
|     try { | ||||
|       const response = await fetch(url, { method: "POST", body: formData }); | ||||
|       const contentType = response.headers.get("content-type"); | ||||
| 
 | ||||
|       if (!response.ok) { | ||||
|         errorMessage = response.status; | ||||
|         if (response.status === 401) { | ||||
|           // Handle 401 Unauthorized error
 | ||||
|           showSessionExpiredPrompt(); | ||||
|           return; | ||||
|         } | ||||
| @ -118,6 +135,8 @@ | ||||
|       let filename = getFilenameFromContentDisposition(contentDisposition); | ||||
| 
 | ||||
|       const blob = await response.blob(); | ||||
|       success = true; | ||||
|        | ||||
|       if (contentType.includes("application/pdf") || contentType.includes("image/")) { | ||||
|         clearFileInput(); | ||||
|         return handleResponse(blob, filename, !isMulti, isZip); | ||||
| @ -127,9 +146,25 @@ | ||||
|       } | ||||
| 
 | ||||
|     } catch (error) { | ||||
|       success = false; | ||||
|       errorMessage = error.message; | ||||
|       clearFileInput(); | ||||
|       console.error("Error in handleSingleDownload:", error); | ||||
|       throw error; | ||||
|     } finally { | ||||
|       const processingTime = performance.now() - startTime; | ||||
|        | ||||
|       // Capture analytics
 | ||||
|       const pageCount = file && file.type === 'application/pdf' ? await getPDFPageCount(file) : null; | ||||
|        | ||||
|       posthog.capture('file_processing', { | ||||
|         success: success, | ||||
|         file_type: file ? file.type || 'unknown' : 'unknown', | ||||
|         file_size: file ? file.size : 0, | ||||
|         processing_time: processingTime, | ||||
|         error_message: errorMessage, | ||||
|         pdf_pages: pageCount | ||||
|       }); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|  | ||||
| @ -201,6 +201,7 @@ | ||||
|                     window.stirlingPDF.error = /*[[#{error}]]*/ "Error"; | ||||
|                   })(); | ||||
|                 </script> | ||||
|                 <script type="module" th:src="@{'/pdfjs-legacy/pdf.mjs'}"></script> | ||||
|                 <script th:src="@{'/js/downloader.js'}"></script> | ||||
| 
 | ||||
|                 <div class="custom-file-chooser" th:attr="data-bs-unique-id=${name}, data-bs-element-id=${name+'-input'}, data-bs-files-selected=#{filesSelected}, data-bs-pdf-prompt=#{pdfPrompt}"> | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user