Fix brand theme application and add comprehensive translations
- Fixed theme not being reflected on gallery and admin login pages - Created GlobalThemeProvider to apply themes globally - Updated gallery and admin login pages to use dynamic CSS variables - Added complete translations for all admin sections in English and German: - Notifications management - Event view and creation - Photo upload functionality - Category management - Archive page view - Analytics dashboard - Branding and theme settings - System settings - CMS page management - Email configuration - Fixed admin photo management display issues - Fixed photo upload category assignment - Added password reset functionality for galleries - Improved error handling and user feedback 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
const axios = require('axios');
|
||||
const FormData = require('form-data');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
async function testUpload() {
|
||||
try {
|
||||
// First login
|
||||
console.log('1. Logging in as admin...');
|
||||
const loginResponse = await axios.post('http://localhost:3000/api/admin/auth/login', {
|
||||
username: 'admin',
|
||||
password: 'admin123'
|
||||
});
|
||||
|
||||
const token = loginResponse.data.token;
|
||||
console.log('✓ Login successful');
|
||||
|
||||
// Create a test image file
|
||||
const testImagePath = path.join(__dirname, 'test-image.png');
|
||||
const imageBuffer = Buffer.from('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==', 'base64');
|
||||
fs.writeFileSync(testImagePath, imageBuffer);
|
||||
|
||||
// Test upload
|
||||
console.log('\n2. Testing upload with category_id=7...');
|
||||
const form = new FormData();
|
||||
form.append('photos', fs.createReadStream(testImagePath), 'test-image.png');
|
||||
form.append('category_id', '7');
|
||||
|
||||
console.log('Form data headers:', form.getHeaders());
|
||||
|
||||
try {
|
||||
const uploadResponse = await axios.post(
|
||||
'http://localhost:3000/api/admin/events/12/upload',
|
||||
form,
|
||||
{
|
||||
headers: {
|
||||
...form.getHeaders(),
|
||||
'Authorization': `Bearer ${token}`
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
console.log('✓ Upload successful:', uploadResponse.data);
|
||||
} catch (error) {
|
||||
console.error('✗ Upload failed:', error.response?.status, error.response?.data);
|
||||
if (error.response?.data) {
|
||||
console.error('Error details:', JSON.stringify(error.response.data, null, 2));
|
||||
}
|
||||
}
|
||||
|
||||
// Clean up
|
||||
fs.unlinkSync(testImagePath);
|
||||
|
||||
} catch (error) {
|
||||
console.error('Error:', error.message);
|
||||
}
|
||||
}
|
||||
|
||||
testUpload();
|
||||
Reference in New Issue
Block a user