Retire Artists sidebar entry, redirect entry points to Search, bump to 2.46
Phase 4b of the Search/Artists unification. Cin flagged that 'Artists' in the sidebar read like a library section but was actually a dedicated artist-search page, duplicating what unified Search already does. Removed the sidebar entry so users funnel through Search. - Sidebar Artists button gone - 'Browse Artists' on empty Watchlist now opens Search - 'View artist from Wishlist' opens Search pre-filled with the name - Profile Home Page + Page Access drop the Artists option artists.js stays on disk: it defines ~30 shared helpers used across the app (escapeHtml, openDownloadMissingModalForArtistAlbum, service status, download bubbles, image helpers) that library/discover/etc. depend on. Wholesale deletion would orphan too much. The inline Artists page and its selectArtistForDetail flow are still there — just unreachable from the sidebar — so /artists deep links keep working for bookmarks.
This commit is contained in:
parent
9361c29965
commit
09f15ce7d2
5 changed files with 29 additions and 15 deletions
|
|
@ -37,7 +37,7 @@ _log_dir = Path(_log_path).parent
|
|||
logger = setup_logging(_log_level, _log_path)
|
||||
|
||||
# App version — single source of truth for backup metadata, version-info endpoint, etc.
|
||||
_SOULSYNC_BASE_VERSION = "2.45"
|
||||
_SOULSYNC_BASE_VERSION = "2.46"
|
||||
|
||||
def _build_version_string():
|
||||
"""Append short commit hash to version when available (e.g. 2.35+abc1234)."""
|
||||
|
|
@ -22809,6 +22809,18 @@ def get_version_info():
|
|||
"title": "What's New in SoulSync",
|
||||
"subtitle": f"Version {SOULSYNC_VERSION} — Latest Changes",
|
||||
"sections": [
|
||||
{
|
||||
"title": "Artists Sidebar Entry Retired — Use Search Instead",
|
||||
"description": "Cin flagged that 'Artists' in the sidebar read like a library section but was actually a dedicated artist-search page, duplicating what the unified Search already does. The sidebar entry is gone; the same flow now runs through Search",
|
||||
"features": [
|
||||
"• Sidebar → Search → type an artist's name → click their result → land on the artist detail page (same page Library links to)",
|
||||
"• 'Browse Artists' button on the empty Watchlist page now opens Search instead of the retired Artists page",
|
||||
"• 'View artist from Wishlist' button now opens Search pre-filled with the artist's name",
|
||||
"• Removed 'Artists' from the profile Home Page and Page Access options so new profiles don't point to a missing sidebar entry",
|
||||
"• Deep link to /artists still resolves so old bookmarks work; the page and its inline search just aren't promoted anywhere",
|
||||
"• Phase 4b of the Search/Artists unification project",
|
||||
],
|
||||
},
|
||||
{
|
||||
"title": "Artist Links Everywhere Go to the Same Page",
|
||||
"description": "Clicking an artist result in Search, Discover, the API Monitor, or anywhere else now lands on the standalone artist detail page Library already uses — instead of swapping into the Artists page's inline detail view",
|
||||
|
|
|
|||
|
|
@ -100,7 +100,6 @@
|
|||
<option value="sync">Sync</option>
|
||||
<option value="search">Search</option>
|
||||
<option value="discover">Discover</option>
|
||||
<option value="artists">Artists</option>
|
||||
<option value="automations">Automations</option>
|
||||
<option value="active-downloads">Downloads</option>
|
||||
<option value="library">Library</option>
|
||||
|
|
@ -115,7 +114,6 @@
|
|||
<label><input type="checkbox" value="sync" checked> Sync</label>
|
||||
<label><input type="checkbox" value="search" checked> Search</label>
|
||||
<label><input type="checkbox" value="discover" checked> Discover</label>
|
||||
<label><input type="checkbox" value="artists" checked> Artists</label>
|
||||
<label><input type="checkbox" value="automations" checked> Automations</label>
|
||||
<label><input type="checkbox" value="active-downloads" checked> Downloads</label>
|
||||
<label><input type="checkbox" value="library" checked> Library</label>
|
||||
|
|
@ -208,10 +206,6 @@
|
|||
<span class="nav-icon"><svg class="nav-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="5" r="3"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="12" x2="5" y2="18"/><line x1="12" y1="12" x2="19" y2="18"/><circle cx="5" cy="19" r="2"/><circle cx="19" cy="19" r="2"/><line x1="12" y1="12" x2="12" y2="18"/><circle cx="12" cy="19" r="2"/></svg></span>
|
||||
<span class="nav-text">Explorer</span>
|
||||
</button>
|
||||
<button class="nav-button" data-page="artists">
|
||||
<span class="nav-icon"><svg class="nav-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M9 18V5l12-2v13"/><circle cx="6" cy="18" r="3"/><circle cx="18" cy="16" r="3"/></svg></span>
|
||||
<span class="nav-text">Artists</span>
|
||||
</button>
|
||||
<button class="nav-button" data-page="watchlist">
|
||||
<span class="nav-icon"><svg class="nav-svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></svg></span>
|
||||
<span class="nav-text">Watchlist</span>
|
||||
|
|
@ -6941,8 +6935,8 @@
|
|||
<svg width="64" height="64" viewBox="0 0 24 24" fill="none" stroke="rgba(255,255,255,0.15)" stroke-width="1.5"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></svg>
|
||||
</div>
|
||||
<h3>Your watchlist is empty</h3>
|
||||
<p>Add artists from the Artists page to monitor them for new releases.</p>
|
||||
<button class="watchlist-action-btn watchlist-action-primary" onclick="navigateToPage('artists')">Browse Artists</button>
|
||||
<p>Use Search to find an artist, then add them to your watchlist from the artist page.</p>
|
||||
<button class="watchlist-action-btn watchlist-action-primary" onclick="navigateToPage('search')">Open Search</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1231,13 +1231,16 @@ function _renderWishlistNebula(albumTracks, singleTracks, artistImageMap, curren
|
|||
field.innerHTML = html;
|
||||
}
|
||||
|
||||
// Enhancement 8: navigate to artist detail from wishlist
|
||||
// Enhancement 8: navigate to the Search page pre-filled with this artist's name
|
||||
function _navigateToArtistFromWishlist(artistName) {
|
||||
// Try to find the artist in the library DB by searching
|
||||
navigateToPage('artists');
|
||||
navigateToPage('search');
|
||||
setTimeout(() => {
|
||||
const searchInput = document.querySelector('.artist-search-input, #artist-search');
|
||||
if (searchInput) { searchInput.value = artistName; searchInput.dispatchEvent(new Event('input')); }
|
||||
const searchInput = document.getElementById('enhanced-search-input');
|
||||
if (searchInput) {
|
||||
searchInput.value = artistName;
|
||||
searchInput.dispatchEvent(new Event('input'));
|
||||
searchInput.focus();
|
||||
}
|
||||
}, 300);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3599,6 +3599,11 @@ function closeHelperSearch() {
|
|||
// ═══════════════════════════════════════════════════════════════════════════
|
||||
|
||||
const WHATS_NEW = {
|
||||
'2.46': [
|
||||
// --- April 23, 2026 (late night) ---
|
||||
{ date: 'April 23, 2026 (late night)' },
|
||||
{ title: 'Artists Sidebar Entry Retired — Use Search Instead', desc: 'Cin flagged that "Artists" in the sidebar read like a library section but was actually a dedicated artist-search page, duplicating what the unified Search already does. The sidebar entry is gone. New flow: Sidebar → Search → type artist name → click their result → land on the artist detail page (same page Library links to). "Browse Artists" on the empty Watchlist page and "View artist from Wishlist" now open Search pre-filled with the artist\'s name. Removed "Artists" from profile Home Page + Page Access options. Deep link to /artists still resolves so old bookmarks keep working — the page just isn\'t promoted anywhere. Phase 4b of the Search/Artists unification project', page: 'search' },
|
||||
],
|
||||
'2.45': [
|
||||
// --- April 23, 2026 (night) ---
|
||||
{ date: 'April 23, 2026 (night)' },
|
||||
|
|
|
|||
|
|
@ -2021,7 +2021,7 @@ async function openDiscographyModal() {
|
|||
}
|
||||
|
||||
if (!artist || !discography) {
|
||||
showToast('No discography found. Try searching this artist on the Artists page instead.', 'error');
|
||||
showToast('No discography found. Try searching this artist from the Search page instead.', 'error');
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue