import { Component, OnInit } from '@angular/core'; import { Observable } from 'rxjs/Observable'; import { Meeting } from '../../meeting/meeting.model'; import { Group, GroupEditInput } from '../group.model'; import { GroupService } from '../group.service'; import { ActivatedRoute, Router } from '@angular/router'; import { User } from '../../user/user.model'; @Component({ selector: 'civ-group-admin', template: `
`, styles: [] }) export class GroupAdminPageComponent implements OnInit { meetings$: Observable; group$: Observable; reps$: Observable<{ [id: string]: User }>; savePending: boolean = false; saveError: string | null = null; constructor(private groupSvc: GroupService, private router: Router, private route: ActivatedRoute) { this.meetings$ = this.groupSvc.getMeetingsOfSelectedGroup() .filter(it => !!it) .map(arr => arr.filter(it => !!it)); this.group$ = this.groupSvc.getActiveGroup().filter(it => !!it); } ngOnInit() { } showMeetingAdmin(meetingId: string) { this.router.navigate([ 'meeting', meetingId, 'admin' ], { relativeTo: this.route.parent.parent }); } showNewMeeting() { this.router.navigate([ 'new-meeting' ], { relativeTo: this.route }); } saveChanges(input: GroupEditInput) { this.savePending = true; this.groupSvc.saveChanges(input).then(() => { this.savePending = false; this.saveError = null; }).catch(err => { this.savePending = false; this.saveError = err.message; }) } }