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,15 @@
|
||||
exports.up = async function(knex) {
|
||||
// Add read_at column to activity_logs table
|
||||
const hasReadAt = await knex.schema.hasColumn('activity_logs', 'read_at');
|
||||
if (!hasReadAt) {
|
||||
await knex.schema.table('activity_logs', (table) => {
|
||||
table.datetime('read_at').nullable();
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
exports.down = async function(knex) {
|
||||
await knex.schema.table('activity_logs', (table) => {
|
||||
table.dropColumn('read_at');
|
||||
});
|
||||
};
|
||||
@@ -28,7 +28,7 @@ async function runMigration(filename) {
|
||||
|
||||
if (migration.up) {
|
||||
console.log(`Running migration: ${filename}`);
|
||||
await migration.up();
|
||||
await migration.up(db);
|
||||
await db('migrations').insert({ filename });
|
||||
console.log(`Migration ${filename} completed`);
|
||||
}
|
||||
@@ -39,13 +39,12 @@ async function runMigrations() {
|
||||
try {
|
||||
console.log('Starting database migrations...');
|
||||
|
||||
// First run the init.js if it exists
|
||||
const initPath = path.join(__dirname, 'init.js');
|
||||
if (require.resolve(initPath)) {
|
||||
console.log('Running initial setup...');
|
||||
require(initPath);
|
||||
// Wait a bit for init to complete
|
||||
await new Promise(resolve => setTimeout(resolve, 2000));
|
||||
// First run the init.js if it exists but only if migrations table doesn't exist
|
||||
const tableExists = await db.schema.hasTable('migrations');
|
||||
if (!tableExists) {
|
||||
const { initializeDatabase } = require('../src/database/db');
|
||||
console.log('Running initial database setup...');
|
||||
await initializeDatabase();
|
||||
}
|
||||
|
||||
// Create migrations table
|
||||
|
||||
Reference in New Issue
Block a user