Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
1a4642d
display artist
darrell-k May 2, 2026
33893cd
album join fix
darrell-k May 7, 2026
53b9540
draft schema changes
darrell-k May 18, 2026
45888ca
oops
darrell-k May 18, 2026
e2ea843
implement 3nf schema changes
darrell-k May 18, 2026
7b9889b
Merge branch 'LMS-Community:public/9.2' into display_artist
darrell-k May 18, 2026
8e0f88a
new table clear
darrell-k May 18, 2026
71ad0ff
Extract _getOrCreateDisplayContributor helper from inline _newTrack code
Rouzax May 18, 2026
22d8f5e
Replace tag swap with display string capture in _newTrack
Rouzax May 18, 2026
9f31f1c
Fix rescan path: populate display_contributor on track update
Rouzax May 18, 2026
b7490c9
Populate contributor_track_display junction for track-level display
Rouzax May 18, 2026
5c64d69
Add track-level display_artist to queries with aliased JOINs
Rouzax May 18, 2026
9414398
Add usePluralArtistTags preference for plural tag contributor creation
Rouzax May 18, 2026
d676985
Index display_artist in fulltext search via contributor_display JOINs
Rouzax May 18, 2026
6416924
Add changelog entry for #1555 display_artist support
Rouzax May 18, 2026
00cc68c
Fix pref persistence, rescan trigger, and scalar plural tag handling
Rouzax May 19, 2026
81b63ba
Improve usePluralArtistTags description for non-technical users
Rouzax May 19, 2026
5258c10
Merge pull request #21 from Rouzax/pr/darrell-3nf-rebase
darrell-k May 19, 2026
6f661ea
pass album artist for queue
darrell-k May 20, 2026
0985bc3
Merge branch 'LMS-Community:public/9.2' into display_artist
darrell-k May 20, 2026
3f5fc9e
use 'A' tag for display_artist in status query
darrell-k May 22, 2026
7c11250
Merge branch 'public/9.2' into display_artist
darrell-k May 22, 2026
baa2a58
Display Artist: Simplify Scan
darrell-k May 22, 2026
a1b5cdb
Merge remote-tracking branch 'origin/display_artist' into display_artist
darrell-k May 22, 2026
8fd765c
Merge pull request #24 from darrell-k/display_artist_simplify_scan
darrell-k May 22, 2026
3ef4055
WIP
darrell-k May 24, 2026
67ced17
WIP
darrell-k May 27, 2026
c333340
Merge branch 'LMS-Community:public/9.2' into display_artist
darrell-k May 27, 2026
586cb84
Merge branch 'public/9.2' into display_artist
darrell-k Jun 8, 2026
1127737
Merge branch 'public/9.2' into display_artist
darrell-k Jun 9, 2026
fa202a8
WIP
darrell-k Jul 15, 2026
ef54932
merge latest 9.2
darrell-k Jul 15, 2026
2e51dd1
take out some logging
darrell-k Jul 15, 2026
0044c09
fix album links when no artist_ids
darrell-k Jul 16, 2026
984ba4f
fix album_header population
darrell-k Jul 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Changelog9.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ <h2><a name="v9.2.0" id="v9.2.0"></a>Version 9.2.0</h2>
<li><a href="https://github.com/LMS-Community/slimserver/pull/1541">#1541</a> - Add per-player timezone support: players can now display date and time, and fire alarms, in their own timezone rather than the server's. (@boudekerk)</li>
<li><a href="https://github.com/LMS-Community/slimserver/pull/1546">#1546</a> - Add "Default Adjustment for Local Tracks" player option. (@SamInPgh)</li>
<li><a href="https://github.com/LMS-Community/slimserver/pull/1564">#1564</a> - Add Dismiss option to Jive alarm popup (@boudekerk)</li>
<li><a href="https://github.com/LMS-Community/slimserver/issues/1555">#1555</a> - Store display_artist from ALBUMARTIST/ARTIST tags separately from individual contributors. Optional use of ALBUMARTISTS/ARTISTS plural tags for contributor creation. (@Rouzax, @darrell-k)</li>
<li><a href="https://github.com/LMS-Community/slimserver/pull/1605">#1605</a> - MusicMagic: add configurable host for remote MusicIP instances (@jonstahl)</li>
</ul>
<br />
Expand Down
9 changes: 9 additions & 0 deletions HTML/EN/settings/server/behavior.html
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,15 @@
</select>
[% END %]

[% WRAPPER setting title="SETUP_USEPLURALARTISTTAGS" desc="SETUP_USEPLURALARTISTTAGS_DESC"%]
<select class="stdedit" name="pref_usePluralArtistTags" id="usePluralArtistTags">

<option [% IF NOT prefs.pref_usePluralArtistTags %]selected [% END %]value="0">[% 'SETUP_USEPLURALARTISTTAGS_0' | string %]</option>
<option [% IF prefs.pref_usePluralArtistTags %]selected [% END %]value="1">[% 'SETUP_USEPLURALARTISTTAGS_1' | string %]</option>

</select>
[% END %]

[% WRAPPER setting title="SETUP_YEARMENU" desc="SETUP_YEARMENU_DESC"%]
<select class="stdedit" name="pref_onlyAlbumYears" id="onlyAlbumYears">

Expand Down
Empty file added SQL/SQLite/schema_27_down.sql
Empty file.
36 changes: 36 additions & 0 deletions SQL/SQLite/schema_27_up.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
-- full relational solution for display_artist

DROP TABLE IF EXISTS contributor_display;
CREATE TABLE contributor_display (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name blob);
ALTER TABLE albums ADD display_contributor integer;

DROP TABLE IF EXISTS contributor_album_display;
CREATE TABLE contributor_album_display (
contributor_display int(10),
contributor int(10),
album int(10),
PRIMARY KEY (contributor_display,contributor,album),
FOREIGN KEY (`album`) REFERENCES `albums` (`id`) ON DELETE CASCADE,
FOREIGN KEY (`contributor`) REFERENCES `contributors` (`id`) ON DELETE CASCADE
);
CREATE INDEX contributor_album_displayContribIndex ON contributor_album_display (contributor);
CREATE INDEX contributor_album_displayAlbumIndex ON contributor_album_display (album);
CREATE INDEX contributor_album_displayContributorDisplayIndex ON contributor_album_display (contributor_display);

ALTER TABLE tracks ADD display_contributor integer;

DROP TABLE IF EXISTS contributor_track_display;
CREATE TABLE contributor_track_display (
contributor_display int(10),
contributor int(10),
track int(10),
PRIMARY KEY (contributor_display,contributor,track),
FOREIGN KEY (`track`) REFERENCES `tracks` (`id`) ON DELETE CASCADE,
FOREIGN KEY (`contributor`) REFERENCES `contributors` (`id`) ON DELETE CASCADE
);
CREATE INDEX contributor_track_displayContribIndex ON contributor_track_display (contributor);
CREATE INDEX contributor_track_displayTrackIndex ON contributor_track_display (track);
CREATE INDEX contributor_track_displayContributorDisplayIndex ON contributor_track_display (contributor_display);

8 changes: 7 additions & 1 deletion SQL/SQLite/schema_clear.sql
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,12 @@ DELETE FROM library_album;
DELETE FROM library_contributor;
DELETE FROM library_genre;

DELETE FROM contributor_display;

DELETE FROM contributor_album_display;

DELETE FROM contributor_track_display;

-- these table are created by the Fulltext Search plugin
DROP TABLE IF EXISTS fulltext;
DROP TABLE IF EXISTS fulltext_terms;
Expand All @@ -40,4 +46,4 @@ UPDATE metainformation SET value = 0 WHERE name = 'lastRescanTime';
-- start the contributor ID at the old offset to prevent ID overlap between scans
UPDATE SQLITE_SEQUENCE SET seq = (SELECT old.seq FROM old_autoincrement AS old WHERE old.name = 'contributors') WHERE name = 'contributors';

DROP TABLE old_autoincrement;
DROP TABLE old_autoincrement;
Empty file added SQL/mysql/schema_27_down.sql
Empty file.
36 changes: 36 additions & 0 deletions SQL/mysql/schema_27_up.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
-- full relational solution for display_artist.

DROP TABLE IF EXISTS contributor_display;
CREATE TABLE contributor_display (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name blob);
ALTER TABLE albums ADD display_contributor integer;

DROP TABLE IF EXISTS contributor_album_display;
CREATE TABLE contributor_album_display (
contributor_display int(10),
contributor int(10),
album int(10),
PRIMARY KEY (contributor_display,contributor,album),
FOREIGN KEY (`album`) REFERENCES `albums` (`id`) ON DELETE CASCADE,
FOREIGN KEY (`contributor`) REFERENCES `contributors` (`id`) ON DELETE CASCADE
);
CREATE INDEX contributor_album_displayContribIndex ON contributor_album_display (contributor);
CREATE INDEX contributor_album_displayAlbumIndex ON contributor_album_display (album);
CREATE INDEX contributor_album_displayContributorDisplayIndex ON contributor_album_display (contributor_display);

ALTER TABLE tracks ADD display_contributor integer;

DROP TABLE IF EXISTS contributor_track_display;
CREATE TABLE contributor_track_display (
contributor_display int(10),
contributor int(10),
track int(10),
PRIMARY KEY (contributor_display,contributor,track),
FOREIGN KEY (`track`) REFERENCES `tracks` (`id`) ON DELETE CASCADE,
FOREIGN KEY (`contributor`) REFERENCES `contributors` (`id`) ON DELETE CASCADE
);
CREATE INDEX contributor_track_displayContribIndex ON contributor_track_display (contributor);
CREATE INDEX contributor_track_displayTrackIndex ON contributor_track_display (track);
CREATE INDEX contributor_track_displayContributorDisplayIndex ON contributor_track_display (contributor_display);

6 changes: 6 additions & 0 deletions SQL/mysql/schema_clear.sql
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,12 @@ DELETE FROM scanned_files;

DELETE FROM works;

DELETE FROM contributor_display;

DELETE FROM contributor_album_display;

DELETE FROM contributor_track_display;

UPDATE metainformation SET value = 0 WHERE name = 'lastRescanTime';

UPDATE tracks_persistent SET track = NULL;
Expand Down
Loading