amine_dubs
commited on
Commit
·
3bb55a6
1
Parent(s):
2ec6790
Fix document translation functionality
Browse files- static/script.js +13 -2
- templates/index.html +9 -1
static/script.js
CHANGED
@@ -8,6 +8,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
|
8 |
const docFilename = document.getElementById('doc-filename');
|
9 |
const docSourceLang = document.getElementById('doc-source-lang');
|
10 |
const errorMessageDiv = document.getElementById('error-message');
|
|
|
11 |
|
12 |
// Helper function to display errors
|
13 |
function displayError(message) {
|
@@ -28,6 +29,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
|
28 |
docOutput.textContent = '';
|
29 |
docFilename.textContent = '';
|
30 |
docSourceLang.textContent = '';
|
|
|
31 |
}
|
32 |
|
33 |
// Handle Text Translation Form Submission
|
@@ -82,6 +84,8 @@ document.addEventListener('DOMContentLoaded', () => {
|
|
82 |
|
83 |
button.disabled = true;
|
84 |
button.textContent = 'Translating...';
|
|
|
|
|
85 |
|
86 |
try {
|
87 |
const response = await fetch('/translate/document', {
|
@@ -95,12 +99,17 @@ document.addEventListener('DOMContentLoaded', () => {
|
|
95 |
}
|
96 |
|
97 |
const result = await response.json();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
docFilename.textContent = result.original_filename || 'N/A';
|
99 |
docSourceLang.textContent = result.detected_source_lang || 'N/A';
|
100 |
docOutput.textContent = result.translated_text;
|
101 |
docResultBox.style.display = 'block';
|
102 |
-
// Optionally update language direction based on result if needed
|
103 |
-
// docResultBox.dir = result.target_lang === 'ar' ? 'rtl' : 'ltr';
|
104 |
|
105 |
} catch (error) {
|
106 |
console.error('Document translation error:', error);
|
@@ -108,6 +117,8 @@ document.addEventListener('DOMContentLoaded', () => {
|
|
108 |
} finally {
|
109 |
button.disabled = false;
|
110 |
button.textContent = 'Translate Document';
|
|
|
|
|
111 |
}
|
112 |
});
|
113 |
});
|
|
|
8 |
const docFilename = document.getElementById('doc-filename');
|
9 |
const docSourceLang = document.getElementById('doc-source-lang');
|
10 |
const errorMessageDiv = document.getElementById('error-message');
|
11 |
+
const docLoadingIndicator = document.getElementById('doc-loading');
|
12 |
|
13 |
// Helper function to display errors
|
14 |
function displayError(message) {
|
|
|
29 |
docOutput.textContent = '';
|
30 |
docFilename.textContent = '';
|
31 |
docSourceLang.textContent = '';
|
32 |
+
docLoadingIndicator.style.display = 'none';
|
33 |
}
|
34 |
|
35 |
// Handle Text Translation Form Submission
|
|
|
84 |
|
85 |
button.disabled = true;
|
86 |
button.textContent = 'Translating...';
|
87 |
+
// Show loading indicator
|
88 |
+
docLoadingIndicator.style.display = 'block';
|
89 |
|
90 |
try {
|
91 |
const response = await fetch('/translate/document', {
|
|
|
99 |
}
|
100 |
|
101 |
const result = await response.json();
|
102 |
+
console.log('Document translation response:', result); // Added debug logging
|
103 |
+
|
104 |
+
// Check if result contains the expected fields
|
105 |
+
if (!result.translated_text) {
|
106 |
+
throw new Error('Translation response is missing translated text');
|
107 |
+
}
|
108 |
+
|
109 |
docFilename.textContent = result.original_filename || 'N/A';
|
110 |
docSourceLang.textContent = result.detected_source_lang || 'N/A';
|
111 |
docOutput.textContent = result.translated_text;
|
112 |
docResultBox.style.display = 'block';
|
|
|
|
|
113 |
|
114 |
} catch (error) {
|
115 |
console.error('Document translation error:', error);
|
|
|
117 |
} finally {
|
118 |
button.disabled = false;
|
119 |
button.textContent = 'Translate Document';
|
120 |
+
// Hide loading indicator
|
121 |
+
docLoadingIndicator.style.display = 'none';
|
122 |
}
|
123 |
});
|
124 |
});
|
templates/index.html
CHANGED
@@ -68,7 +68,15 @@
|
|
68 |
<label for="doc-input">Upload Document (.pdf, .docx, .xlsx, .pptx, .txt):</label>
|
69 |
<input type="file" id="doc-input" name="file" accept=".pdf,.docx,.xlsx,.pptx,.txt">
|
70 |
</div>
|
71 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
</form>
|
73 |
<div id="doc-result" class="result-box" dir="rtl"> <!- Set default to RTL for Arabic output ->
|
74 |
<h3>Translation:</h3>
|
|
|
68 |
<label for="doc-input">Upload Document (.pdf, .docx, .xlsx, .pptx, .txt):</label>
|
69 |
<input type="file" id="doc-input" name="file" accept=".pdf,.docx,.xlsx,.pptx,.txt">
|
70 |
</div>
|
71 |
+
<div class="form-group">
|
72 |
+
<button type="submit" class="btn btn-primary">Translate Document</button>
|
73 |
+
</div>
|
74 |
+
<div id="doc-loading" class="loading-spinner" style="display: none;">
|
75 |
+
<div class="spinner-border text-primary" role="status">
|
76 |
+
<span class="sr-only">Loading...</span>
|
77 |
+
</div>
|
78 |
+
<p>Translating document... This may take a few minutes for large files or first-time use.</p>
|
79 |
+
</div>
|
80 |
</form>
|
81 |
<div id="doc-result" class="result-box" dir="rtl"> <!- Set default to RTL for Arabic output ->
|
82 |
<h3>Translation:</h3>
|