mirror of
https://github.com/R0m1k3/noteflow.git
synced 2026-10-22 14:48:18 +02:00
Feature: Système de tags et liste automatique des modèles OpenRouter
Ajouts majeurs: - Système de tags complet pour les notes * Table note_tags en base de données avec indexes * API REST pour CRUD des tags (GET/POST/DELETE) * UI avec onglet Tags dans l'éditeur de notes * Badges cliquables avec icônes et suppression au survol * Modal pour ajouter des tags - Liste automatique des modèles OpenRouter * Nouvelle route API /api/openrouter/models * Cache des modèles avec rafraîchissement automatique (1h) * Dropdown dans l'admin avec tous les modèles disponibles * Bouton "Actualiser" pour forcer le refresh * Affichage du nom et description de chaque modèle * Fallback sur input manuel si pas de clé API Améliorations UI: - Ajout de dates de création et modification dans les notes - Affichage des dates dans les cartes et l'éditeur - Format français pour toutes les dates - Onglets passés de 4 à 5 colonnes pour inclure Tags - Animation de chargement sur le bouton refresh des modèles Architecture: - Nouveau service TagsService.ts pour la gestion des tags - Nouveau service OpenRouterService.ts pour l'API OpenRouter - Nouvelles routes openrouter.routes.js - Support Select component pour les dropdowns - Modals InputModal utilisés pour les tags
This commit is contained in:
7 files changed
+580
-10
No files matched your search
@@ -167,12 +167,26 @@ function initDatabase() {
|
||||
)
|
||||
`);
|
||||
|
||||
// Table note_tags (tags pour les notes)
|
||||
db.run(`
|
||||
CREATE TABLE IF NOT EXISTS note_tags (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
note_id INTEGER NOT NULL,
|
||||
tag TEXT NOT NULL,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (note_id) REFERENCES notes(id) ON DELETE CASCADE,
|
||||
UNIQUE(note_id, tag)
|
||||
)
|
||||
`);
|
||||
|
||||
// Créer les index pour la performance
|
||||
db.run('CREATE INDEX IF NOT EXISTS idx_notes_user ON notes(user_id)');
|
||||
db.run('CREATE INDEX IF NOT EXISTS idx_note_todos ON note_todos(note_id)');
|
||||
db.run('CREATE INDEX IF NOT EXISTS idx_global_todos_user ON global_todos(user_id)');
|
||||
db.run('CREATE INDEX IF NOT EXISTS idx_note_images ON note_images(note_id)');
|
||||
db.run('CREATE INDEX IF NOT EXISTS idx_note_files ON note_files(note_id)');
|
||||
db.run('CREATE INDEX IF NOT EXISTS idx_note_tags ON note_tags(note_id)');
|
||||
db.run('CREATE INDEX IF NOT EXISTS idx_note_tags_tag ON note_tags(tag)');
|
||||
db.run('CREATE INDEX IF NOT EXISTS idx_settings_key ON settings(key)');
|
||||
db.run('CREATE INDEX IF NOT EXISTS idx_rss_articles_feed ON rss_articles(feed_id)');
|
||||
db.run('CREATE INDEX IF NOT EXISTS idx_rss_articles_date ON rss_articles(pub_date)');
|
||||
|
||||
Reference in new issue
Block a user