TAMAMLANDI 25 Aralık 2025

Context Menu Sistemi - Kapsamlı Düzeltme

Muzibu müzik platformu için sağ tık menüsü ve tüm aksiyonların düzeltilmesi

Basit Anlatım (Herkes İçin)

Ne Yapıldı? Müzik sitesinde herhangi bir şarkıya, albüme, playlist'e veya radyoya sağ tıkladığında açılan menü artık düzgün çalışıyor.

Önceki Sorun: "Çal" butonuna basınca "Şarkı bulunamadı" hatası veriyordu. Playlist'ler yüklenmiyordu. Favoriler çalışmıyordu.

Şimdi: Tüm butonlar çalışıyor - Çal, Sıraya Ekle, Favorilere Ekle, Playliste Ekle, Albüme Git, Sanatçıya Git.

Teknik Özet

API Düzeltmeleri

  • • Song API: hls_path, file_path eklendi
  • • Playlist API: playlist wrapper eklendi
  • • Album API: album wrapper eklendi
  • • Route sıralaması düzeltildi

JS Düzeltmeleri

  • • Global window exports eklendi
  • • playContent response format fix
  • • Dinamik favori ikonu (fas/far)
  • • credentials: same-origin eklendi

Yapılan Değişiklikler

1. API Yanıt Formatları

Endpoint Eski Format Yeni Format Durum
/api/muzibu/songs/{id} title, duration (eksik) + hls_path, file_path, album_cover
/api/muzibu/playlists/{id} { songs: [...] } { playlist: { songs: [...] } }
/api/muzibu/albums/{id} { songs: [...] } { album: { songs: [...] } }
/api/muzibu/playlists/my-playlists Route çakışması /{id}'den önce tanımlı

2. JavaScript Düzeltmeleri

play-helpers.js
  • window.playAlbum, window.playPlaylist, window.playGenres, window.playSector, window.playRadio global export eklendi
  • playContent('song'): data.song → song direkt kullanım
  • addContentToQueue('song'): Aynı düzeltme
  • • Tüm fetch'lere credentials: 'same-origin' eklendi
menu-builder.js
  • • Tüm menu item'lara iconPrefix property eklendi
  • • Favori ikonu dinamik: is_favorite ? 'fas' : 'far'
  • is_owner || is_mine kontrolü eklendi
context-menu.blade.php
  • • İkon prefix dinamik: ${action.iconPrefix || 'fas'}
  • • Favori ikonu kırmızı renk eklendi

3. Blade Component Düzeltmeleri

themes/muzibu/components/

  • album-card.blade.php - context menu eklendi
  • radio-card.blade.php - context menu eklendi
  • playlist-card.blade.php - zaten vardı

components/muzibu/

  • song-card.blade.php
  • album-card.blade.php
  • playlist-card.blade.php
  • genre-card.blade.php
  • sector-card.blade.php
  • radio-card.blade.php
  • artist-card.blade.php

Context Menu Aksiyonları

Aksiyon Song Album Playlist Genre/Sector Radio Artist
Çal
Sıraya Ekle
Favorilere Ekle
Puan Ver - - - - -
Playliste Ekle - - - - -
Albüme Git - - - - -
Sanatçıya Git - - - -
Düzenle / Sil - - (sahip) - - -

Değiştirilen Dosyalar

M Modules/Muzibu/routes/api.php
M Modules/Muzibu/app/Http/Controllers/Api/SongController.php
M Modules/Muzibu/app/Http/Controllers/Api/PlaylistController.php
M Modules/Muzibu/app/Http/Controllers/Api/AlbumController.php
M public/themes/muzibu/js/player/features/play-helpers.js
M public/themes/muzibu/js/context-menus/menu-builder.js
M resources/views/themes/muzibu/components/context-menu.blade.php
M resources/views/themes/muzibu/components/album-card.blade.php
M resources/views/themes/muzibu/components/radio-card.blade.php

API Test Sonuçları

/api/muzibu/songs/320 → song_id: 320, hls_path: ✓
/api/muzibu/playlists/2 → playlist.songs: 22
/api/muzibu/albums/12 → album.songs: 11
/api/muzibu/playlists/my-playlists → 302 (auth required)