-import { Component, OnInit } from '@angular/core';
+import { Component } from '@angular/core'
-import { Friend, FriendService } from '../shared';
+import { NotificationsService } from 'angular2-notifications'
+import { ServerDataSource } from 'ng2-smart-table'
+
+import { ConfirmService } from '../../../core'
+import { Utils } from '../../../shared'
+import { FriendService } from '../shared'
+import { Pod } from '../../../../../../shared'
@Component({
selector: 'my-friend-list',
templateUrl: './friend-list.component.html',
styleUrls: [ './friend-list.component.scss' ]
})
-export class FriendListComponent implements OnInit {
- friends: Friend[];
+export class FriendListComponent {
+ friendsSource = null
+ tableSettings = {
+ mode: 'external',
+ attr: {
+ class: 'table-hover'
+ },
+ hideSubHeader: true,
+ actions: {
+ position: 'right',
+ add: false,
+ edit: false,
+ delete: true
+ },
+ delete: {
+ deleteButtonContent: Utils.getRowDeleteButton()
+ },
+ columns: {
+ id: {
+ title: 'ID',
+ sort: false,
+ sortDirection: 'asc'
+ },
+ host: {
+ title: 'Host',
+ sort: false
+ },
+ email: {
+ title: 'Email',
+ sort: false
+ },
+ score: {
+ title: 'Score',
+ sort: false
+ },
+ createdAt: {
+ title: 'Created Date',
+ sort: false,
+ valuePrepareFunction: Utils.dateToHuman
+ }
+ }
+ }
- constructor(private friendService: FriendService) { }
+ constructor (
+ private notificationsService: NotificationsService,
+ private confirmService: ConfirmService,
+ private friendService: FriendService
+ ) {
+ this.friendsSource = this.friendService.getDataSource()
+ }
- ngOnInit() {
- this.getFriends();
+ hasFriends () {
+ return this.friendsSource.count() !== 0
}
- quitFriends() {
- if (!confirm('Are you sure?')) return;
+ quitFriends () {
+ const confirmMessage = 'Do you really want to quit your friends? All their videos will be deleted.'
+ this.confirmService.confirm(confirmMessage, 'Quit friends').subscribe(
+ res => {
+ if (res === false) return
- this.friendService.quitFriends().subscribe(
- status => {
- alert('Quit friends!');
- this.getFriends();
- },
- error => alert(error.text)
- );
+ this.friendService.quitFriends().subscribe(
+ status => {
+ this.notificationsService.success('Success', 'Friends left!')
+ this.friendsSource.refresh()
+ },
+
+ err => this.notificationsService.error('Error', err.text)
+ )
+ }
+ )
}
- private getFriends() {
- this.friendService.getFriends().subscribe(
- res => this.friends = res.friends,
+ removeFriend ({ data }) {
+ const confirmMessage = 'Do you really want to remove this friend ? All its videos will be deleted.'
+ const friend: Pod = data
+
+ this.confirmService.confirm(confirmMessage, 'Remove').subscribe(
+ res => {
+ if (res === false) return
+
+ this.friendService.removeFriend(friend).subscribe(
+ status => {
+ this.notificationsService.success('Success', 'Friend removed')
+ this.friendsSource.refresh()
+ },
- err => alert(err.text)
- );
+ err => this.notificationsService.error('Error', err.text)
+ )
+ }
+ )
}
}