2021-05-19 13:40:29 +02:00
import { Component , OnInit } from "@angular/core" ;
import { Title } from "@angular/platform-browser" ;
import { ActivatedRoute } from "@angular/router" ;
import { CommunityService } from "../../../openaireLibrary/connect/community/community.service" ;
import { Subscriber } from "rxjs" ;
2022-06-28 20:15:05 +02:00
import { CommunityInfo } from "../../../openaireLibrary/connect/community/communityInfo" ;
2021-05-19 13:40:29 +02:00
@Component ( {
selector : 'users-subscribers' ,
template : `
2022-06-28 20:15:05 +02:00
< subscribers [ id ] = " community.communityId " [ type ] = " ' community ' " [ name ] = " community.shortTitle "
[ inviteDisableMessage ] = "inviteDisableMessage" ( stickyEmitter ) = "stickyPageHeader = $event" >
< div class = "uk-flex uk-flex-middle uk-margin-top info" [ class.uk - active ] = " stickyPageHeader " >
< div >
< div class = "uk-margin-remove uk-text-background uk-text-bold uk-h6" > Admin Dashboard - Manage Members < / div >
< h1 class = "uk-h4 uk-margin-remove" > { { community . shortTitle } } < / h1 >
< / div >
< / div >
< users - tabs tab = "member" > < / u s e r s - t a b s >
2021-05-19 13:40:29 +02:00
< / subscribers >
`
} )
export class UsersSubscribersComponent implements OnInit {
2022-06-28 20:15:05 +02:00
public community : CommunityInfo ;
2021-05-19 13:40:29 +02:00
public loading : boolean ;
public inviteDisableMessage : string ;
2022-06-28 20:15:05 +02:00
public stickyPageHeader : boolean = false ;
2021-05-19 13:40:29 +02:00
private subscriptions : any [ ] = [ ] ;
constructor ( private communityService : CommunityService ,
private route : ActivatedRoute ,
private title : Title ) {
}
ngOnInit() {
this . loading = true ;
this . subscriptions . push ( this . communityService . getCommunityAsObservable ( ) . subscribe ( community = > {
if ( community ) {
2022-06-28 20:15:05 +02:00
this . community = community ;
this . title . setTitle ( this . community . shortTitle . toUpperCase ( ) + " | Subscribers" ) ;
2021-05-19 13:40:29 +02:00
if ( community . status !== "all" ) {
this . inviteDisableMessage = "<div class='uk-padding-small'>Community's status is " + ( community . status === 'manager' ? 'Visible to managers' : 'Hidden' ) + " and invitation to subscribe to the Research community dashboard is disabled. Update the community status to enable invitations.</div>"
}
this . loading = false ;
}
} ) ) ;
}
ngOnDestroy() {
this . subscriptions . forEach ( value = > {
if ( value instanceof Subscriber ) {
value . unsubscribe ( ) ;
}
} ) ;
}
}