Changeset d7e72b8 in Klonkt for src/views/pages/post-edit.ejs


Ignore:
Timestamp:
08/09/2026 07:47:48 AM (4 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
b406d25
Parents:
c832064
Message:

Audio is geen keuze meer: Album en Playlist staan in de balk (shaer-cyg)

De posttype-balk had post/foto/video/audio. Audio verdwijnt als keuze -- alles
wat muziek is landt voortaan op album of playlist, en dat maakt de keuze
betekenisvol in plaats van cosmetisch. Album en Playlist delen het muziekpaneel,
want het verschil zit in de playlist en niet in wat je uploadt.

De knop Audio blijft alleen staan zolang een post nog type=audio IS. Anders zou
het openen van een oude post hem stilzwijgend van type veranderen, en dat is
precies het soort verlies dat niemand ziet gebeuren.

De lijst van geldige types stond op DRIE plaatsen los van elkaar: twee keer in
routes/posts.js en een keer in routes/types.js. Dat viel niet op zolang ze
gelijk waren, maar het faalt stil: kent het opslaan 'playlist' niet, dan wordt
de post zonder melding een gewone post en is de keuze verdwenen in plaats van
geweigerd. Nu een lijst, in config/post-types.js, die ook de editor voedt.

En de migratie: scripts/backfill-post-types.mjs zet bestaande audio-posts om via
postMusicType. Proefdraai is de standaard, --doen schrijft. Wat de afleiding
niet tot album of playlist maakt blijft met rust en wordt apart gemeld -- die
verdienen een blik en geen gok.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/views/pages/post-edit.ejs

    rc832064 rd7e72b8  
    2424        Foto → cover/insert hint. %>
    2525    <% var ptype = post.type || 'post'; %>
    26     <% var TYPE_ICONS = { post: '📝', foto: '📷', video: '🎬', audio: '🎵' }; %>
     26    <% var TYPE_ICONS = { post: '📝', foto: '📷', video: '🎬', album: '💿', playlist: '📃', audio: '🎵' }; %>
     27    <%# Audio is geen keuze meer (shaer-cyg): alles wat muziek is landt op Album
     28        of Playlist. De knop blijft alleen staan zolang deze post nog audio IS,
     29        zodat een oude post niet stilzwijgend van type verandert bij het openen. %>
     30    <% var TYPES = (typeof keuzeTypes !== 'undefined' && keuzeTypes.length)
     31                     ? keuzeTypes.slice() : ['post','foto','video','album','playlist']; %>
     32    <% if (ptype === 'audio' && TYPES.indexOf('audio') < 0) TYPES.push('audio'); %>
    2733    <section class="pe-card pe-type-card">
    2834      <div class="pe-section-title"><%= t('pedit.s_type') %></div>
    2935      <input type="hidden" name="type" id="pe-type-input" value="<%= ptype %>">
    3036      <div class="pe-typeseg" role="radiogroup" aria-label="<%= t('pedit.s_type') %>">
    31         <% ['post','foto','video','audio'].forEach(function (tt) { %>
     37        <% TYPES.forEach(function (tt) { %>
    3238          <button type="button" class="pe-typeseg-btn<%= ptype === tt ? ' is-active' : '' %>"
    3339                  data-type="<%= tt %>" role="radio" aria-checked="<%= ptype === tt ? 'true' : 'false' %>">
     
    3844      </div>
    3945
    40       <%# Audio: inline upload (transcodes + drops [[track]] into the post) %>
    41       <div class="pe-type-panel" data-panel="audio" hidden>
     46      <%# Muziek: inline upload (transcodes + drops [[track]] into the post).
     47          Album en Playlist delen dit paneel -- het verschil zit in de playlist,
     48          niet in wat je hier uploadt. Audio staat er alleen nog voor oude posts. %>
     49      <div class="pe-type-panel" data-panel="album playlist audio" hidden>
    4250        <div class="pe-audio-up" id="pe-audio-drop" tabindex="0" role="button" aria-label="<%= t('pedit.audio_up_drop') %>">
    4351          <input type="file" id="pe-audio-file" accept="audio/*,.mp3,.m4a,.ogg,.opus,.flac,.wav" multiple hidden>
Note: See TracChangeset for help on using the changeset viewer.