VulpesOS/assets/webapps/music.gaiamobile.org/views/albums/view.js
OverSu b38dea0597 Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
2026-09-30 23:13:03 +02:00

2 lines
No EOL
1.8 KiB
JavaScript

;'use strict';var AlbumsView=View.extend(function AlbumsView(){View.call(this);this.searchBox=document.getElementById('search-box');this.searchResults=document.getElementById('search-results');this.list=document.getElementById('list');this.client.on('databaseChange',()=>this.update());this.setupSearch();this.setupList();this.update();});AlbumsView.prototype.update=function(){return this.getAlbums().then((albums)=>{this.albums=albums;return this.render();});};AlbumsView.prototype.destroy=function(){this.client.destroy();View.prototype.destroy.call(this);};AlbumsView.prototype.render=function(){return this.list.setModel(this.albums).then(()=>this.list.cache()).then(this.onRenderDone);};AlbumsView.prototype.getAlbums=function(){return document.l10n.formatValues('unknownAlbum','unknownArtist').then(([unknownAlbum,unknownArtist])=>{return this.fetch('/api/albums/list').then(response=>response.json()).then((albums)=>{return albums.map((album)=>{return{name:album.name,url:'/album-detail?id='+encodeURIComponent(album.name),album:album.metadata.album||unknownAlbum,artist:album.metadata.artist||unknownArtist};});});});};AlbumsView.prototype.getThumbnail=function(filePath){return this.fetch('/api/artwork/url/thumbnail/'+filePath).then(response=>response.json());};AlbumsView.prototype.search=function(query){if(!query){return Promise.resolve(this.searchResults.clearResults());}
return document.l10n.formatValues('unknownAlbum','unknownArtist').then(([unknownAlbum,unknownArtist])=>{return this.fetch('/api/search/album/'+query).then(response=>response.json()).then((albums)=>{var results=albums.map((album)=>{return{name:album.name,title:album.metadata.album||unknownAlbum,subtitle:album.metadata.artist||unknownArtist,section:'albums',url:'/album-detail?id='+encodeURIComponent(album.name)};});return this.searchResults.setResults(results);});});};window.view=new AlbumsView();