mirror of
				https://github.com/SuperBFG7/ympd
				synced 2025-10-31 05:43:01 +00:00 
			
		
		
		
	Fix: use mpd taglist in songdetails modal
Feat: link album in playback card
This commit is contained in:
		| @@ -87,7 +87,7 @@ | ||||
|           <small>Artist</small> | ||||
|           <h4 id="currentArtist" data-href="{'cmd': 'artistClick', 'options': []}"></h4> | ||||
|           <small>Album</small> | ||||
|           <h4 id="currentAlbum"></h4> | ||||
|           <h4 id="currentAlbum" data-href="{'cmd': 'albumClick', 'options': []}"></h4> | ||||
|         </div> | ||||
|       </div> | ||||
|       <div class="card-footer card-footer-playback"> | ||||
| @@ -805,20 +805,6 @@ | ||||
|           <div class="table-responsive-md"> | ||||
|             <table class="table table-sm"> | ||||
|               <tbody> | ||||
|                 <tr data-name="artist"><th>Artist</th><td></td></tr> | ||||
|                 <tr data-name="album"><th>Album</th><td></td></tr> | ||||
|                 <tr data-name="track"><th>Track</th><td></td></tr> | ||||
|                 <tr data-name="albumartist"><th>Albumartist</th><td></td></tr> | ||||
|                 <tr data-name="composer"><th>Composer</th><td></td></tr> | ||||
|                 <tr data-name="performer"><th>Performer</th><td></td></tr>                 | ||||
|                 <tr data-name="genre"><th>Genre</th><td></td></tr> | ||||
|                 <tr data-name="date"><th>Date</th><td></td></tr> | ||||
|                 <tr data-name="uri"><th>Uri</th><td></td></tr> | ||||
|                 <tr class="stickers"><th colspan="2">Statistics</th></tr> | ||||
|                 <tr class="stickers" data-name="playCount"><th>Play count</th><td></td></tr> | ||||
|                 <tr class="stickers" data-name="skipCount"><th>Skip count</th><td></td></tr> | ||||
|                 <tr class="stickers" data-name="lastPlayed"><th>Last played</th><td></td></tr> | ||||
|                 <tr class="stickers" data-name="like"><th>Like</th><td></td></tr> | ||||
|               </tbody> | ||||
|             </table> | ||||
|           </div> | ||||
|   | ||||
| @@ -1438,7 +1438,13 @@ function songClick() { | ||||
| function artistClick() { | ||||
|     var albumartist = domCache.currentArtist.getAttribute('data-albumartist'); | ||||
|     if (albumartist != '')  | ||||
|         appGoto('Browse', 'Database', 'Album', '0/-/' + albumartist); | ||||
|         appGoto('Browse', 'Database', 'AlbumArtist', '0/-/' + albumartist); | ||||
| } | ||||
|  | ||||
| function albumClick() { | ||||
|     var album = domCache.currentAlbum.getAttribute('data-album'); | ||||
|     if (album != '')  | ||||
|         appGoto('Browse', 'Database', 'Album', '0/-/' + album); | ||||
| } | ||||
|  | ||||
| function songDetails(uri) { | ||||
| @@ -1450,36 +1456,36 @@ function parseSongDetails(obj) { | ||||
|     var modal = document.getElementById('modalSongDetails'); | ||||
|     modal.getElementsByClassName('album-cover')[0].style.backgroundImage = 'url("' + obj.data.cover + '")'; | ||||
|     modal.getElementsByTagName('h1')[0].innerText = obj.data.title; | ||||
|     var tr = modal.getElementsByTagName('tr'); | ||||
|     var trLen = tr.length; | ||||
|     for (var i = 0; i < trLen; i++) { | ||||
|         var key = tr[i].getAttribute('data-name'); | ||||
|         if (!key) | ||||
|             continue; | ||||
|         var value = obj.data[key]; | ||||
|         if (key == 'duration') { | ||||
|             var minutes = Math.floor(value / 60); | ||||
|             var seconds = value - minutes * 60; | ||||
|             value = minutes + ':' + (seconds < 10 ? '0' : '') + seconds;         | ||||
|         } | ||||
|         else if (key == 'lastPlayed') { | ||||
|             if (value == 0)  | ||||
|                 value = 'never';     | ||||
|             else { | ||||
|                 var d = new Date(value * 1000); | ||||
|                 value = d.toUTCString(); | ||||
|      | ||||
|     var songDetails = ''; | ||||
|     for (var key in settings.tags) { | ||||
|         if (settings.tags[key] == true) { | ||||
|             var value = obj.data[key.toLowerCase()]; | ||||
|             if (key == 'duration') { | ||||
|                 var minutes = Math.floor(value / 60); | ||||
|                 var seconds = value - minutes * 60; | ||||
|                 value = minutes + ':' + (seconds < 10 ? '0' : '') + seconds;         | ||||
|             } | ||||
|             songDetails += '<tr><th>' + key + '</th><td>' + value + '</td></tr>'; | ||||
|         } | ||||
|         else if (key == 'like') { | ||||
|             if (value == 0) value = '<span class="material-icons">thumb_down_alt</span>'; | ||||
|             else if (value == 2) value = '<span class="material-icons">thumb_up_alt</span>'; | ||||
|             else value = 'not voted'; | ||||
|         } | ||||
|         else if (key == 'uri') { | ||||
|             value = '<a class="text-success" href="/library/' + value + '">' + value + '</a>'; | ||||
|         } | ||||
|         tr[i].getElementsByTagName('td')[0].innerHTML = value; | ||||
|     } | ||||
|      | ||||
|     songDetails += '<tr><th>Uri</th><td><a class="text-success" href="/library/' + obj.data.uri + '">' + obj.data.uri + '</a></td></tr>'; | ||||
|      | ||||
|     if (settings.stickers == true) { | ||||
|         var like = 'not voted'; | ||||
|         if (obj.data.like == 0) | ||||
|             like = '<span class="material-icons">thumb_down_alt</span>'; | ||||
|         else if (obj.data.like == 2) | ||||
|             '<span class="material-icons">thumb_up_alt</span>'; | ||||
|         songDetails += '<tr class="stickers"><th colspan="2">Statistics</th></tr>' + | ||||
|             '<tr><th>Play count</th><td>' + obj.data.playCount + '</td></tr>' + | ||||
|             '<tr><th>Skip count</th><td>' + obj.data.skipCount + '</td></tr>' + | ||||
|             '<tr><th>Last played</th><td>' + (obj.data.lastPlayed == 0 ? 'never' : new Date(value * 1000).toUTCString()) + '</td></tr>' + | ||||
|             '<tr><th>Like</th><td>' + like + '</td></tr>'; | ||||
|     } | ||||
|      | ||||
|     modal.getElementsByTagName('tbody')[0].innerHTML = songDetails; | ||||
| } | ||||
|  | ||||
| function playlistDetails(uri) { | ||||
| @@ -2066,6 +2072,7 @@ function songChange(obj) { | ||||
|         textNotification += ' - ' + obj.data.album; | ||||
|         htmlNotification += '<br/>' + obj.data.album; | ||||
|         domCache.currentAlbum.innerText = obj.data.album; | ||||
|         domCache.currentAlbum.setAttribute('data-album', obj.data.album); | ||||
|     } | ||||
|     else | ||||
|         domCache.currentAlbum.innerText = ''; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 jcorporation
					jcorporation