feat(genres): Genre frontend implementation#1459
feat(genres): Genre frontend implementation#1459jozefKruszynski wants to merge 12 commits intomainfrom
Conversation
|
I'll do some refactoring 😃 |
|
@stvncode I refactored into smaller components and migrated all code to shadcn-vue. |
|
@jozefKruszynski Ok done. I replaced ui components, refactored some comps that were a bit big and also make the genre list refresh after a delete or an addition. |
|
Thanks for putting in the time |
d47f205 to
6fafc66
Compare
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.OpenSSF Scorecard
Scanned Files
|
stvncode
left a comment
There was a problem hiding this comment.
Code is good ✅
@marcelveldt @MarvinSchenkel, if you want to double check the ui/ux
|
@stvncode Please could you give this another once over as there have been some quite significant changes. I think I also might have screwed up the immediate refresh of some things, either that or my browser cache is just being particularly stubborn |
da622f9 to
53605dd
Compare
53605dd to
c888cb8
Compare
|
@stvncode |
|
@jozefKruszynski ok thanks, i had just pulled your be pr but on dev it works better! But i still have two errors on link alias and add alias: |
|
I'll get right on it |
|
Both actions work fine for me, perhaps the DB migratio did not complete properly in the backend |
|
Which in itself is not good, do you have a backup of your .music_assistant folder? |




PR: Genre V2 Frontend Implementation
Branch:
feat/genres-v2-implementationBase:
mainBuild: Passes
Lint: Passes
Summary
Complete frontend implementation for the Genre V2 system. Introduces first-class genre and alias management with the relational model: Genre -> Aliases -> Media Items.
New Files
src/views/GenreDetails.vueGenre detail page:
getGenreOverviewRows— artists, albums, tracks, etc. with "see all" navigation to filtered library viewssrc/views/LibraryGenres.vueGenre library listing:
ItemsListingintegration (list/panel/compact view modes)MEDIA_ITEM_ADDEDeventssrc/components/AddGenreAliasDialog.vueReusable dialog for creating genres or aliases:
typeprop:MediaType.GENREorMediaType.GENRE_ALIASsrc/views/settings/GenreManagement.vueGenre management settings page (admin only):
API Layer (
src/plugins/api/index.ts)Genre Endpoints
getLibraryGenresCount()music/genres/countgetLibraryGenres()music/genres/library_itemsgetGenre()music/genres/getaddGenreToLibrary()music/genres/addremoveGenreFromLibrary()music/genres/removegetGenreOverviewRows()music/genres/overviewgetGenreRadioBaseTracks()music/genres/radio_mode_base_tracksrestoreGenreDefaults()music/genres/restore_defaultsAlias Endpoints
getLibraryAliases()music/aliases/library_itemsaddAliasToLibrary()music/aliases/addremoveAliasFromLibrary()music/aliases/removeRelationship Endpoints
addAliasToGenre()music/genres/add_alias_mappingremoveAliasFromGenre()music/genres/remove_alias_mappingpromoteAliasToGenre()music/aliases/promote_to_genreGenre Filtering on Existing Endpoints
Added
genre_idsparameter to:getLibraryArtists,getLibraryAlbums,getLibraryTracks,getLibraryPlaylists,getLibraryRadios,getLibraryAudiobooks,getLibraryPodcasts.