mirror of
https://github.com/navidrome/navidrome.git
synced 2025-08-10 00:52:20 +00:00
@@ -53,6 +53,7 @@ func NewPlaylistRepository(ctx context.Context, db dbx.Builder) model.PlaylistRe
|
||||
r.db = db
|
||||
r.tableName = "playlist"
|
||||
r.registerModel(&model.Playlist{}, map[string]filterFunc{
|
||||
"id": idFilter(r.tableName),
|
||||
"q": playlistFilter,
|
||||
"smart": smartPlaylistFilter,
|
||||
"starred": booleanFilter,
|
||||
@@ -97,7 +98,7 @@ func (r *playlistRepository) CountAll(options ...model.QueryOptions) (int64, err
|
||||
}
|
||||
|
||||
func (r *playlistRepository) Exists(id string) (bool, error) {
|
||||
return r.exists(And{Eq{"id": id}, r.userFilter()})
|
||||
return r.exists(And{Eq{"playlist.id": id}, r.userFilter()})
|
||||
}
|
||||
|
||||
func (r *playlistRepository) Delete(id string) error {
|
||||
@@ -111,7 +112,7 @@ func (r *playlistRepository) Delete(id string) error {
|
||||
return rest.ErrPermissionDenied
|
||||
}
|
||||
}
|
||||
return r.delete(And{Eq{"id": id}, r.userFilter()})
|
||||
return r.delete(And{Eq{"playlist.id": id}, r.userFilter()})
|
||||
}
|
||||
|
||||
func (r *playlistRepository) Put(p *model.Playlist) error {
|
||||
|
||||
@@ -147,7 +147,9 @@ func (api *Router) setStar(ctx context.Context, star bool, ids ...string) error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
event = event.With("playlist", id)
|
||||
event = event.With("playlist", "*")
|
||||
// Ensure the refresh event is sent to all clients, including the originator
|
||||
ctx = events.BroadcastToAll(ctx)
|
||||
continue
|
||||
}
|
||||
err = tx.MediaFile(ctx).SetStar(star, id)
|
||||
|
||||
@@ -45,8 +45,7 @@ var _ = Describe("MediaAnnotationController", func() {
|
||||
|
||||
event := eventBroker.Events[0].(*events.RefreshResource)
|
||||
data := event.Data(event)
|
||||
Expect(data).To(ContainSubstring("playlist"))
|
||||
Expect(data).To(ContainSubstring("pls-1"))
|
||||
Expect(data).To(ContainSubstring(`"playlist":["*"]`))
|
||||
})
|
||||
|
||||
It("should send refresh resource event when unstarring a playlist", func() {
|
||||
@@ -63,8 +62,7 @@ var _ = Describe("MediaAnnotationController", func() {
|
||||
|
||||
event := eventBroker.Events[0].(*events.RefreshResource)
|
||||
data := event.Data(event)
|
||||
Expect(data).To(ContainSubstring("playlist"))
|
||||
Expect(data).To(ContainSubstring("pls-1"))
|
||||
Expect(data).To(ContainSubstring(`"playlist":["*"]`))
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ const PlaylistMenuItemLink = ({ pls, sidebarIsOpen }) => {
|
||||
|
||||
const PlaylistsSubMenu = ({ state, setState, sidebarIsOpen, dense }) => {
|
||||
const history = useHistory()
|
||||
useResourceRefresh('playlist')
|
||||
useResourceRefresh()
|
||||
const { data, loaded } = useQueryWithStore({
|
||||
type: 'getList',
|
||||
resource: 'playlist',
|
||||
|
||||
Reference in New Issue
Block a user