Changeset f45fc82 in Klonkt for src/routes/admin.js


Ignore:
Timestamp:
06/15/2026 01:14:02 AM (3 months ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
bd7f10d
Parents:
b50a885
Message:

feat: posts/drafts list on the dashboard — drafts findable again

Drafts (status!=published) were nowhere to be found: the timeline only shows
published posts and the dashboard had no posts list. Now a Posts block on the
god/solo and artist dashboard with DRAFTS ON TOP, a draft badge, and
mode-aware Edit/View links.

Co-Authored-By: Claude <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/routes/admin.js

    rb50a885 rf45fc82  
    1212
    1313const router = express.Router();
     14
     15// Recente posts van één site, CONCEPTEN BOVENAAN, met mode-bewuste edit/view-URLs.
     16// Lost op dat drafts (status != published) nergens terug te vinden waren: de
     17// tijdlijn toont alleen gepubliceerde posts.
     18function sitePosts(siteId, siteSlug, tenancy, limit = 60) {
     19  const base = tenancy === 'hub' ? `/user/${siteSlug}` : '';
     20  return db.prepare(`
     21    SELECT slug, title, status, published_at, created_at, updated_at
     22    FROM posts WHERE site_id = ?
     23    ORDER BY (status != 'published') DESC, COALESCE(updated_at, published_at, created_at) DESC
     24    LIMIT ?
     25  `).all(siteId, limit).map((p) => ({
     26    ...p,
     27    isDraft: p.status !== 'published',
     28    editUrl: `${base}/posts/${p.slug}/edit`,
     29    viewUrl: `${base}/${p.slug}`,
     30  }));
     31}
    1432
    1533router.get('/', requireAuth, (req, res) => {
     
    3553      mySite,
    3654      mine,
     55      posts: sitePosts(mySite.id, mySite.slug, 'hub'), // my-site is hub-only
    3756    });
    3857  }
     
    4160
    4261  // De primaire/owner-site — in solo dé site, in hub de hoofdsite. Geeft de
    43   // "Uiterlijk"-tegel z'n edit-link.
     62  // "Uiterlijk"-tegel z'n edit-link + de posts/concepten-lijst.
    4463  const primarySite = db.prepare(
    45     'SELECT slug, title FROM sites ORDER BY created_at ASC LIMIT 1'
     64    'SELECT id, slug, title FROM sites ORDER BY created_at ASC LIMIT 1'
    4665  ).get() || null;
    4766
     
    7190  `).all() : [];
    7291
     92  // Posts/concepten van de primaire site (in solo = de site; in hub = de
     93  // hoofdsite van de admin). Concepten staan bovenaan zodat ze vindbaar zijn.
     94  const posts = primarySite ? sitePosts(primarySite.id, primarySite.slug, tenancy) : [];
     95
    7396  renderPage(req, res, 'pages/admin', {
    7497    pageTitle: 'Beheer',
     
    78101    stats,
    79102    sites,
     103    posts,
    80104    users,
    81105  });
Note: See TracChangeset for help on using the changeset viewer.