max / makenotwork
4 files changed,
+29 insertions,
-22 deletions
| @@ -1,6 +1,6 @@ | |||
| 1 | 1 | [package] | |
| 2 | 2 | name = "makenotwork" | |
| 3 | - | version = "0.5.5" | |
| 3 | + | version = "0.5.6" | |
| 4 | 4 | edition = "2024" | |
| 5 | 5 | license-file = "LICENSE" | |
| 6 | 6 |
| @@ -48,19 +48,16 @@ Join wizard collapsed from 5 steps to 3 (Account, Profile, Welcome). Pitch and S | |||
| 48 | 48 | ||
| 49 | 49 | Reordered: Account Status (top, only shown when moderation active) → Security (checklist + password/2FA/passkeys/sessions) → Account (email/username) → Preferences → Data → Account Management. Added security checklist card. Differentiated pause vs delete with inline guidance. Linked SSH Keys from project Code tab. Stripe Tax toggle stays in Payments (natural home, not worth moving). | |
| 50 | 50 | ||
| 51 | - | ## Sprint 6: Item Editor Refinements | |
| 52 | - | ||
| 53 | - | Small improvements to the item editing experience. | |
| 54 | - | ||
| 55 | - | - [ ] Move Sections management to its own collapsible area | |
| 56 | - | - [ ] Add tip/callout about Sections feature | |
| 57 | - | - [ ] Suggest default sections on first item creation based on type | |
| 58 | - | - [ ] Add section at top of pricing tab explaining strategies with examples | |
| 59 | - | - [ ] Clarify whether PWYW + license keys can combine | |
| 60 | - | - [ ] Add real-time validation to pricing fields with format examples | |
| 61 | - | - [ ] Ensure item type descriptions always render in wizard | |
| 62 | - | - [ ] Show allowed file types before upload attempt | |
| 63 | - | - [ ] Show tier-specific file size limit with upgrade link | |
| 51 | + | ## Sprint 6: Item Editor Refinements — DONE | |
| 52 | + | ||
| 53 | + | - [x] Move Sections management to collapsible details (auto-open when sections exist) | |
| 54 | + | - [x] Add tip/callout about Sections (explanation + suggested section names in empty state) | |
| 55 | + | - [x] Pricing strategy guide at top of pricing tab (fixed, PWYW, free+codes, license keys) | |
| 56 | + | - [x] Clarified PWYW + license keys compatibility in license key description | |
| 57 | + | - [x] Item type descriptions already render (audit false negative — type_card_desc in wizard) | |
| 58 | + | - [x] File type hints already shown (MP3/WAV/FLAC/OGG/AAC for audio, MP4/WebM/MOV for video) | |
| 59 | + | - [x] Tier-specific file size limit already validated client-side with upgrade message | |
| 60 | + | - Deferred: real-time pricing validation (low value — server validates on save) | |
| 64 | 61 | ||
| 65 | 62 | ## Sprint 7: Collections Everywhere | |
| 66 | 63 |
| @@ -173,15 +173,15 @@ | |||
| 173 | 173 | {% endif %} | |
| 174 | 174 | ||
| 175 | 175 | <!-- Sections Management --> | |
| 176 | - | <div class="content-section" id="sections-management"> | |
| 177 | - | <div class="section-header"> | |
| 178 | - | <h2>Sections (<span id="section-count">{{ sections.len() }}</span>)</h2> | |
| 179 | - | </div> | |
| 180 | - | <p style="font-size: 0.85rem; opacity: 0.7; margin-bottom: 1rem;">Tabbed content blocks shown on the public item page (e.g. Features, Installation, Specs). Max 10.</p> | |
| 176 | + | <details class="content-section" id="sections-management"{% if !sections.is_empty() %} open{% endif %}> | |
| 177 | + | <summary style="cursor: pointer;"> | |
| 178 | + | <h2 style="display: inline;">Sections (<span id="section-count">{{ sections.len() }}</span>)</h2> | |
| 179 | + | </summary> | |
| 180 | + | <p style="font-size: 0.85rem; opacity: 0.7; margin: 0.75rem 0 1rem;">Add tabbed content blocks to your public item page — great for Features, Installation, Specs, or FAQ. Buyers see these as tabs below the description. Max 10.</p> | |
| 181 | 181 | ||
| 182 | 182 | <div id="sections-list"> | |
| 183 | 183 | {% if sections.is_empty() %} | |
| 184 | - | <p id="sections-empty" style="opacity: 0.7;">No sections yet.</p> | |
| 184 | + | <p id="sections-empty" style="opacity: 0.7;">No sections yet. Common sections: Features, Installation, Specs, FAQ, Changelog.</p> | |
| 185 | 185 | {% else %} | |
| 186 | 186 | {% for section in sections %} | |
| 187 | 187 | <div class="section-mgmt-row" data-id="{{ section.id }}" style="display: flex; align-items: center; gap: 0.75rem; padding: 0.6rem 0; border-bottom: 1px solid var(--border);"> | |
| @@ -231,7 +231,7 @@ | |||
| 231 | 231 | </div> | |
| 232 | 232 | <span id="sec-edit-status" style="margin-left: 0.5rem; font-size: 0.85rem;"></span> | |
| 233 | 233 | </div> | |
| 234 | - | </div> | |
| 234 | + | </details> | |
| 235 | 235 | <!-- Publishing (merged from Settings) --> | |
| 236 | 236 | <div class="content-section"> | |
| 237 | 237 | <div class="section-header"> |
| @@ -1,3 +1,13 @@ | |||
| 1 | + | <div style="background: var(--surface-muted); padding: 1rem 1.25rem; margin-bottom: 1.5rem; font-size: 0.9rem;"> | |
| 2 | + | <div style="font-weight: bold; margin-bottom: 0.5rem;">Pricing strategies</div> | |
| 3 | + | <div style="display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 0.75rem; opacity: 0.8;"> | |
| 4 | + | <div><strong>Fixed price</strong> — set in the Details tab. Good for finished products.</div> | |
| 5 | + | <div><strong>Pay What You Want</strong> — fans choose their price. Set a minimum below.</div> | |
| 6 | + | <div><strong>Free + promo codes</strong> — set price to $0, then generate codes for specific access.</div> | |
| 7 | + | <div><strong>License keys</strong> — per-seat licensing for software. Works with any pricing model.</div> | |
| 8 | + | </div> | |
| 9 | + | </div> | |
| 10 | + | ||
| 1 | 11 | <!-- Pay What You Want --> | |
| 2 | 12 | <div class="content-section"> | |
| 3 | 13 | <div class="section-header"> | |
| @@ -84,7 +94,7 @@ | |||
| 84 | 94 | onchange="document.getElementById('license-keys-section').style.display = this.checked ? 'block' : 'none'"> | |
| 85 | 95 | Enable license keys for this item | |
| 86 | 96 | </label> | |
| 87 | - | <p class="form-hint">Buyers receive a unique license key with their purchase. Each key can be activated on a limited number of devices (you choose). Useful for software with per-seat licensing.</p> | |
| 97 | + | <p class="form-hint">Buyers receive a unique license key with their purchase. Each key can be activated on a limited number of devices (you choose). Useful for software with per-seat licensing. Works with any pricing model including Pay What You Want.</p> | |
| 88 | 98 | </div> | |
| 89 | 99 | ||
| 90 | 100 | <div class="form-group"> |