feat(frontend): Convert admin library to SSR with TypeScript
Complete refactor of /admin/library page to use server-side rendering and TypeScript, fixing broken Create Library button and improving UX. Backend Integration: - Update template signature to accept libraries and users parameters - Add SSR rendering of library list (no empty state) - Add SSR rendering of user select dropdown - Data fetched in router handler and passed to template TypeScript Conversion: - Create web/src/library.ts (394 lines) - complete rewrite of inline JS - Convert all inline JavaScript to TypeScript - Fix critical data.data API response bug - Replace broken HTMX form with fetch() API calls - Implement event delegation for dynamic button clicks - Add missing editLibrary() function (placeholder) - Add proper error handling with toast notifications Template Changes: - Remove 229 lines of inline JavaScript - Update Create Library button: onclick → data-action - Update form: remove HTMX attributes, add onsubmit handler - Remove duplicate script tags from <head> section - Keep all script loading at end of <body> for performance Bug Fixes: - Fix API response handling: data → data.data - Replace broken hx-headers (JavaScript not supported in HTMX) - Fix modal z-index and visibility classes Progressive Enhancement: - Page works without JavaScript (SSR content visible) - JavaScript enhances with interactive features - Follows PROJECT_GUIDELINES: procedural style, no OOP
This commit is contained in:
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user