feat: Courses-redesign + Tjing-import (#8) #22
Reference in New Issue
Block a user
Delete Branch "feat/courses-redesign-tjing-import-8"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
6e05d30—searchTjingCourses+getTjingCoursemot Tjing GraphQL,getOrCreateLayouticourse.js, nya endpoints/api/tjing/search+/api/tjing/import/:tjingId, klientfunktioner för sök/importera.saveCourseToDB:this.lastID = 0vidON CONFLICT DO UPDATEledde till orphan-layouts vid Tjing-re-import — nu fallback tillSELECT id WHERE link = ?.Closes #8
Test plan
/coursesladdar utan 500-felShowing N of Muppdateras--ink, hover/open → accent, meta-rad 11px--ink-3("N layouts" eller "N layouts · K active").refresh-icon.spinning.row-openoch.is-openconsole.*isrc/Notes
feat:)..results-linkligger kvar icourses.css(elementet togs bort i fix-fasen) — kan rensas i nästa PR, påverkar inget.course-cards.ejs(mobile) tar nutotal-prop men ingenquery— mobile-filter är ute scope för #8 per design.- Fix saveCourseToDB returning 0 on conflict by falling back to SELECT - Fix inactive layouts showing 'Never played' when last_played exists - Add .icon-btn.spinning to courses.css for refresh button feedback - Remove duplicate .btn-primary from courses.css (use shared.css version) - Tokenize rating tier colors into --rating-tier-{high,mid,low} CSS vars - Convert var to const/let throughout courses.js - Fix logger.error calls to use {err} object form (pino convention) - Extract RATING_TIER_HIGH/MID constants in course-layouts.ejs scriptlet - Remove dead href='#' View all link from courses.ejs (deferred) - Pass total prop explicitly from course-table.ejs to course-cards.ejs - Remove dead #search-results-info selector from mobile.css - Remove redundant .replace(/"/g, '"') from data attributes in course-table.ejs