feat: overhaul TODO.md and enhance Kanban components
- Updated TODO.md to reflect the new project structure and phases, marking several tasks as completed. - Enhanced Kanban components with a tech-inspired design, including new styles for columns and task cards. - Removed the obsolete reminders service and task processor, streamlining the codebase for better maintainability. - Introduced a modern API for task management, including CRUD operations and improved error handling. - Updated global styles for a cohesive dark theme and added custom scrollbar styles.
This commit is contained in:
@@ -1,41 +1,37 @@
|
||||
/**
|
||||
* Configuration de l'application TowerControl
|
||||
* Configuration de l'application TowerControl (version standalone)
|
||||
*/
|
||||
|
||||
export interface AppConfig {
|
||||
reminders: {
|
||||
targetList: string;
|
||||
syncInterval: number; // en minutes
|
||||
enabledLists: string[];
|
||||
app: {
|
||||
name: string;
|
||||
version: string;
|
||||
};
|
||||
jira: {
|
||||
baseUrl?: string;
|
||||
username?: string;
|
||||
apiToken?: string;
|
||||
projects: string[];
|
||||
ui: {
|
||||
theme: 'light' | 'dark' | 'system';
|
||||
itemsPerPage: number;
|
||||
};
|
||||
sync: {
|
||||
autoSync: boolean;
|
||||
batchSize: number;
|
||||
features: {
|
||||
enableDragAndDrop: boolean;
|
||||
enableNotifications: boolean;
|
||||
autoSave: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
// Configuration par défaut
|
||||
const defaultConfig: AppConfig = {
|
||||
reminders: {
|
||||
targetList: process.env.REMINDERS_TARGET_LIST || 'Boulot',
|
||||
syncInterval: parseInt(process.env.REMINDERS_SYNC_INTERVAL || '15'),
|
||||
enabledLists: (process.env.REMINDERS_ENABLED_LISTS || 'Boulot').split(',')
|
||||
app: {
|
||||
name: 'TowerControl',
|
||||
version: '2.0.0'
|
||||
},
|
||||
jira: {
|
||||
baseUrl: process.env.JIRA_BASE_URL,
|
||||
username: process.env.JIRA_USERNAME,
|
||||
apiToken: process.env.JIRA_API_TOKEN,
|
||||
projects: (process.env.JIRA_PROJECTS || '').split(',').filter(p => p.length > 0)
|
||||
ui: {
|
||||
theme: (process.env.NEXT_PUBLIC_THEME as 'light' | 'dark' | 'system') || 'system',
|
||||
itemsPerPage: parseInt(process.env.NEXT_PUBLIC_ITEMS_PER_PAGE || '50')
|
||||
},
|
||||
sync: {
|
||||
autoSync: process.env.AUTO_SYNC === 'true',
|
||||
batchSize: parseInt(process.env.SYNC_BATCH_SIZE || '50')
|
||||
features: {
|
||||
enableDragAndDrop: process.env.NEXT_PUBLIC_ENABLE_DRAG_DROP !== 'false',
|
||||
enableNotifications: process.env.NEXT_PUBLIC_ENABLE_NOTIFICATIONS === 'true',
|
||||
autoSave: process.env.NEXT_PUBLIC_AUTO_SAVE !== 'false'
|
||||
}
|
||||
};
|
||||
|
||||
@@ -46,33 +42,11 @@ export function getConfig(): AppConfig {
|
||||
return defaultConfig;
|
||||
}
|
||||
|
||||
/**
|
||||
* Récupère la liste cible des rappels
|
||||
*/
|
||||
export function getTargetRemindersList(): string {
|
||||
return getConfig().reminders.targetList;
|
||||
}
|
||||
|
||||
/**
|
||||
* Récupère les listes autorisées pour la synchronisation
|
||||
*/
|
||||
export function getEnabledRemindersLists(): string[] {
|
||||
return getConfig().reminders.enabledLists;
|
||||
}
|
||||
|
||||
/**
|
||||
* Vérifie si une liste est autorisée pour la synchronisation
|
||||
*/
|
||||
export function isListEnabled(listName: string): boolean {
|
||||
const enabledLists = getEnabledRemindersLists();
|
||||
return enabledLists.includes(listName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Configuration pour le développement/debug
|
||||
*/
|
||||
export const DEBUG_CONFIG = {
|
||||
logAppleScript: process.env.NODE_ENV === 'development',
|
||||
mockData: process.env.USE_MOCK_DATA === 'true',
|
||||
verboseLogging: process.env.VERBOSE_LOGGING === 'true'
|
||||
isDevelopment: process.env.NODE_ENV === 'development',
|
||||
verboseLogging: process.env.VERBOSE_LOGGING === 'true',
|
||||
enableDevTools: process.env.NODE_ENV === 'development'
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user