upload-issue #9
@ -1,5 +1,5 @@
|
||||
---
|
||||
// src/pages/contribute/knowledgebase.astro - SIMPLIFIED: Issues only, minimal validation
|
||||
// src/pages/contribute/knowledgebase.astro
|
||||
import BaseLayout from '../../layouts/BaseLayout.astro';
|
||||
import { withAuth } from '../../utils/auth.js';
|
||||
import { getToolsData } from '../../utils/dataService.js';
|
||||
@ -242,7 +242,6 @@ class KnowledgebaseForm {
|
||||
|
||||
constructor() {
|
||||
this.init();
|
||||
this.checkUploadStatus();
|
||||
}
|
||||
|
||||
private init() {
|
||||
@ -313,7 +312,7 @@ class KnowledgebaseForm {
|
||||
// Client-side validation before upload
|
||||
const validation = this.validateFileBeforeUpload(file);
|
||||
if (!validation.valid) {
|
||||
this.showMessage('error', `Cannot upload ${file.name}: ${validation.error}`);
|
||||
console.log('[UPLOAD]Cannot upload ', file.name, ' Error: ', validation.error);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -409,7 +408,6 @@ class KnowledgebaseForm {
|
||||
fileItem.url = responseData.url;
|
||||
this.renderFileList();
|
||||
|
||||
this.showMessage('success', `Successfully uploaded ${fileItem.name}`);
|
||||
} else {
|
||||
|
||||
if (responseData && responseData.details) {
|
||||
@ -424,7 +422,6 @@ class KnowledgebaseForm {
|
||||
? error.message
|
||||
: 'Unknown upload error';
|
||||
|
||||
this.showMessage('error', `Failed to upload ${fileItem.name}: ${errorMessage}`);
|
||||
this.removeFile(fileId);
|
||||
}
|
||||
}
|
||||
@ -496,7 +493,6 @@ class KnowledgebaseForm {
|
||||
|
||||
} catch (error) {
|
||||
console.error('[KB FORM] Submission error:', error);
|
||||
this.showMessage('error', 'Submission failed. Please try again.');
|
||||
} finally {
|
||||
this.isSubmitting = false;
|
||||
(this.elements.submitBtn as HTMLButtonElement).disabled = false;
|
||||
@ -525,65 +521,6 @@ class KnowledgebaseForm {
|
||||
this.renderFileList();
|
||||
}
|
||||
|
||||
private showMessage(type: 'success' | 'error' | 'warning', message: string, details?: string) {
|
||||
const container = document.getElementById('message-container');
|
||||
if (!container) return;
|
||||
|
||||
const messageEl = document.createElement('div');
|
||||
messageEl.className = `message message-${type}`;
|
||||
|
||||
// Create message content with optional details
|
||||
const messageContent = document.createElement('div');
|
||||
messageContent.className = 'message-content';
|
||||
messageContent.textContent = message;
|
||||
|
||||
messageEl.appendChild(messageContent);
|
||||
|
||||
// Add details if provided
|
||||
if (details) {
|
||||
const detailsEl = document.createElement('div');
|
||||
detailsEl.className = 'message-details';
|
||||
detailsEl.textContent = details;
|
||||
messageEl.appendChild(detailsEl);
|
||||
}
|
||||
|
||||
// Add close button
|
||||
const closeBtn = document.createElement('button');
|
||||
closeBtn.className = 'message-close';
|
||||
closeBtn.innerHTML = '×';
|
||||
closeBtn.onclick = () => messageEl.remove();
|
||||
messageEl.appendChild(closeBtn);
|
||||
|
||||
container.appendChild(messageEl);
|
||||
|
||||
// Auto-remove after 10 seconds for errors (to give time to read), 5 seconds for others
|
||||
const timeout = type === 'error' ? 10000 : 5000;
|
||||
setTimeout(() => {
|
||||
if (messageEl.parentNode) {
|
||||
messageEl.remove();
|
||||
}
|
||||
}, timeout);
|
||||
}
|
||||
|
||||
private async checkUploadStatus() {
|
||||
try {
|
||||
console.log('[DIAGNOSTIC] Checking upload endpoint status');
|
||||
const response = await fetch('/api/upload/media', { method: 'GET' });
|
||||
const status = await response.json();
|
||||
console.log('[DIAGNOSTIC] Upload status:', status);
|
||||
|
||||
if (!status.storage?.nextcloud?.configured && !status.storage?.local?.available) {
|
||||
this.showMessage('warning', 'No upload storage configured. Check server configuration.');
|
||||
}
|
||||
|
||||
return status;
|
||||
} catch (error) {
|
||||
console.error('[DIAGNOSTIC] Failed to check upload status:', error);
|
||||
this.showMessage('error', 'Could not connect to upload service');
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public removeFileById(fileId: string) {
|
||||
this.removeFile(fileId);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user