fix: address code-review findings from pass 1 + 2 (#8)

- 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
This commit is contained in:
Samuel Enocsson
2026-05-25 09:54:15 +02:00
parent 4bbf6d9728
commit 9cb78c9c98
9 changed files with 97 additions and 96 deletions
+9 -3
View File
@@ -12,10 +12,12 @@
inactiveLayouts.push(l);
}
});
var RATING_TIER_HIGH = 970;
var RATING_TIER_MID = 940;
function ratingTier(r) {
if (r == null) return null;
if (r >= 970) return 'green';
if (r >= 940) return 'amber';
if (r >= RATING_TIER_HIGH) return 'green';
if (r >= RATING_TIER_MID) return 'amber';
return 'orange';
}
%>
@@ -48,7 +50,11 @@
<li class="layout-card layout-card--inactive">
<div class="layout-info">
<span class="layout-name"><%= l.name %></span>
<span class="layout-never-played">Never played</span>
<% if (l.last_played) { %>
<span class="layout-last-played">Last played: <%= l.last_played %></span>
<% } else { %>
<span class="layout-never-played">Never played</span>
<% } %>
</div>
<div class="layout-chips">
<span class="chip chip-par">Par <%= l.par %></span>
+2 -2
View File
@@ -6,7 +6,7 @@
var layoutCount = course.layoutCount || 0;
var activeLayoutCount = course.activeLayoutCount || 0;
%>
<div class="course-row expandable-row" data-course-id="<%= course.id %>" data-course-name="<%= (course.name || '').toLowerCase().replace(/"/g, '&quot;') %>" data-course-city="<%= (course.city || '').toLowerCase().replace(/"/g, '&quot;') %>" onclick="toggleCourseLayouts(<%= course.id %>)">
<div class="course-row expandable-row" data-course-id="<%= course.id %>" data-course-name="<%= (course.name || '').toLowerCase() %>" data-course-city="<%= (course.city || '').toLowerCase() %>" onclick="toggleCourseLayouts(<%= course.id %>)">
<div class="course-cell">
<span class="course-name"><%= course.name %></span>
<span class="course-meta">
@@ -35,5 +35,5 @@
</div>
<% }); %>
</div>
<%- include('course-cards', { courses: courses }) %>
<%- include('course-cards', { courses: courses, total: courses.length }) %>
<% } %>