95 lines
2.7 KiB
TypeScript
95 lines
2.7 KiB
TypeScript
/** @file
|
|
* @author Edouard DUPIN
|
|
* @copyright 2018, Edouard DUPIN, all right reserved
|
|
* @license PROPRIETARY (see license file)
|
|
*/
|
|
|
|
import { Component, OnInit } from '@angular/core';
|
|
|
|
import { ArtistService, ArianeService, AlbumService, TrackService, PlayerService } from 'app/service';
|
|
import { NodeData } from 'common/model';
|
|
|
|
@Component({
|
|
selector: 'app-artists',
|
|
templateUrl: './artists.html',
|
|
})
|
|
|
|
export class ArtistsScene implements OnInit {
|
|
cover: string = '';
|
|
covers: Array<string> = [];
|
|
name: string = "Artists";
|
|
description: string = "All available artists";
|
|
artists: NodeData[];
|
|
countTrack: (id: number) => Promise<Number>;
|
|
countAlbum: (id: number) => Promise<Number>;
|
|
|
|
constructor(
|
|
private artistService: ArtistService,
|
|
private albumService: AlbumService,
|
|
private trackService: TrackService,
|
|
private playerService: PlayerService,
|
|
private arianeService: ArianeService) {
|
|
|
|
}
|
|
|
|
ngOnInit() {
|
|
let self = this;
|
|
this.countTrack = (id:number) => {return self.countTrackCallback(id);};
|
|
this.countAlbum = (id:number) => {return self.countAlbumCallback(id);};
|
|
// this.idPlaylist = parseInt(this.route.snapshot.paramMap.get('universId'));
|
|
// this.idType = parseInt(this.route.snapshot.paramMap.get('typeId'));
|
|
this.artistService.getOrder()
|
|
.then((response: NodeData[]) => {
|
|
self.artists = response;
|
|
//console.log("get artists: " + JSON.stringify(self.artists));
|
|
}).catch((response) => {
|
|
self.artists = undefined;
|
|
});
|
|
}
|
|
onSelectArtist(event: any, idSelected: number):void {
|
|
if (event.ctrlKey) {
|
|
this.arianeService.navigateArtistEdit({id: idSelected, newWindows:event.which === 2} );
|
|
} else {
|
|
this.arianeService.navigateArtist({artistId: idSelected, newWindows:event.which === 2} );
|
|
}
|
|
}
|
|
|
|
countTrackCallback(artistId: number) : Promise<Number> {
|
|
return this.artistService.countTrack(artistId);
|
|
}
|
|
countAlbumCallback(artistId: number) : Promise<Number> {
|
|
return this.artistService.countAlbum(artistId);
|
|
}
|
|
playAll(event: any):void {
|
|
this.playerService.clear();
|
|
let self = this;
|
|
this.trackService.getData()
|
|
.then((response: NodeData[]) => {
|
|
let ids = [];
|
|
response.forEach(element => {
|
|
ids.push(element.id);
|
|
});
|
|
self.playerService.setNewPlaylist(ids);
|
|
})
|
|
.catch(() => {
|
|
console.log(`error to get list o ftrack ...`)
|
|
});
|
|
}
|
|
playShuffe(event: any):void {
|
|
this.playerService.clear();
|
|
let self = this;
|
|
this.trackService.getData()
|
|
.then((response: NodeData[]) => {
|
|
let ids = [];
|
|
response.forEach(element => {
|
|
ids.push(element.id);
|
|
});
|
|
self.playerService.setNewPlaylistShuffle(ids);
|
|
})
|
|
.catch(() => {
|
|
console.log(`error to get list o ftrack ...`)
|
|
});
|
|
}
|
|
}
|
|
|