Project

General

Profile

1
import { Component, ViewChild, OnInit, ViewEncapsulation, Input, ElementRef } from '@angular/core';
2
import { ActivatedRoute, Router } from "@angular/router";
3

    
4
import {RemoveContentProvidersComponent} from './remove-content-providers.component';
5
import {AddContentProvidersComponent} from './add-content-providers.component';
6

    
7
import {Session} from '../../../openaireLibrary/login/utils/helper.class';
8
import {LoginErrorCodes} from '../../../openaireLibrary/login/utils/guardHelper.class';
9
import {HelperFunctions} from "../../../openaireLibrary/utils/HelperFunctions.class";
10
import {Title} from '@angular/platform-browser';
11

    
12
@Component({
13
    selector: 'manage-content-providers',
14
    template: `
15
      <div id="manage-content-providers">
16
        <div class="menubar uk-margin-bottom ">
17
          <a *ngIf="!toggle" (click)="updateCommunityContentProviders()" uk-toggle="target: .toggle-usage" class="uk-button uk-button-primary uk-float-right">{{toggleLinkMessage}}</a>
18
          <div class="manage-content-providers-title uk-text-large">{{pageTitle}}</div>
19
        </div>
20

    
21
        <div class="toggle-usage">
22
          <remove-content-providers (communityContentProvidersChanged)="communityContentProvidersChanged($event)"></remove-content-providers>
23
          <fab (clicked)="updateCommunityContentProviders()" uk-toggle="target: .toggle-usage"></fab>
24
        </div>
25
        <div class="toggle-usage" hidden>
26
          <add-content-providers [(communityContentProviders)]="communityContentProviders"></add-content-providers>
27
        </div>
28
      </div>
29
    `
30
})
31

    
32
export class ManageContentProvidersComponent implements OnInit {
33
  private community: string = '';
34

    
35
  @Input() communityContentProviders =[];
36
  @ViewChild (RemoveContentProvidersComponent) removeContentProvidersComponent : RemoveContentProvidersComponent ;
37
  @ViewChild (AddContentProvidersComponent) addContentProvidersComponent : AddContentProvidersComponent ;
38

    
39
  public warningMessage = "";
40
  public infoMessage = "";
41

    
42
  public toggle: boolean = true;
43
  public updateCommunityContentProvidersOnToggle: boolean = false;
44
  public pageTitle: string = "Manage content providers";
45
  public toggleLinkMessage: string = "Manage content providers";
46

    
47
  ngOnInit() {
48
    this.route.queryParams.subscribe(params => {
49
      if(params['communityId']) {
50
        this.community = params['communityId'];
51
        this.title.setTitle('Administration Dashboard | Content Providers');
52
      }
53
      HelperFunctions.scroll();
54
    });
55
  }
56

    
57
  constructor(private element: ElementRef,
58
              private title: Title,
59
              private route: ActivatedRoute, private _router: Router) {}
60

    
61
  public ngOnDestroy() {}
62

    
63
  public updateCommunityContentProviders() {
64
    if(!Session.isLoggedIn()){
65
      this._router.navigate(['/user-info'], { queryParams: { "errorCode": LoginErrorCodes.NOT_VALID, "redirectUrl":  this._router.url} });
66
    } else {
67
      HelperFunctions.scroll();
68

    
69
      this.toggle = !this.toggle;
70
      if(this.toggle) {
71
        this.pageTitle = "Manage content providers";
72
        //this.toggleLinkMessage = "Missing content providers?";
73

    
74
        this.removeContentProvidersComponent._getCommunityContentProviders();
75
        this.addContentProvidersComponent.undo = {};
76
      } else {
77
        this.updateCommunityContentProvidersOnToggle = false;
78
        this.pageTitle = "Search content providers";
79
        //this.toggleLinkMessage = "Manage content providers";
80
      }
81
    }
82
  }
83

    
84
  public communityContentProvidersChanged($event) {
85
    this.communityContentProviders = $event.value;
86
  }
87
}
(5-5/7)