import {Component, ElementRef, Input, OnInit, ViewChild} from '@angular/core'; import {ActivatedRoute, Router} from "@angular/router"; import {RemoveContentProvidersComponent} from './remove-content-providers.component'; import {Session} from '../../openaireLibrary/login/utils/helper.class'; import {LoginErrorCodes} from '../../openaireLibrary/login/utils/guardHelper.class'; import {HelperFunctions} from "../../openaireLibrary/utils/HelperFunctions.class"; import {Title} from '@angular/platform-browser'; import {FullScreenModalComponent} from "../../openaireLibrary/utils/modal/full-screen-modal/full-screen-modal.component"; import {StringUtils} from "../../openaireLibrary/utils/string-utils.class"; import {EnvProperties} from "../../openaireLibrary/utils/properties/env-properties"; import {properties} from "../../../environments/environment"; import {Subscriber} from "rxjs"; @Component({ selector: 'manage-content-providers', template: `
If you cannot find a content provider relevant to your community, probably it is not OpenAIRE compliant. Feel free to contact us ({{properties.feedbackmailForMissingEntities}}) to let us know and we'll try to get the provider on board!
` }) export class ManageContentProvidersComponent implements OnInit { @Input() communityContentProviders = []; @ViewChild(RemoveContentProvidersComponent) removeContentProvidersComponent: RemoveContentProvidersComponent; @ViewChild('fsModal', { static: true }) fullscreen: FullScreenModalComponent; public toggle: boolean = false; private subscriptions: any[] = []; public showLoadingInRemove: boolean = true; public body: string = "Send from page"; public properties: EnvProperties = properties; public communityId: string = ""; constructor(private element: ElementRef, private title: Title, private route: ActivatedRoute, private _router: Router) { } ngOnInit() { this.subscriptions.push(this.route.params.subscribe(params => { this.communityId = params['community']; if (this.communityId) { this.title.setTitle(this.communityId.toUpperCase() + ' | Content Providers'); this.body = "[Please write your message here]"; this.body = StringUtils.URIEncode(this.body); } })); this.fullscreen.title = "Search and Add Content Providers"; this.fullscreen.okButtonText = "Done"; this.fullscreen.okButton = true; } public ngOnDestroy() { this.subscriptions.forEach(sub => { if (sub instanceof Subscriber) { sub.unsubscribe(); } }); } public toggleAction() { if (!Session.isLoggedIn()) { this._router.navigate(['/user-info'], { queryParams: {'errorCode': LoginErrorCodes.NOT_VALID, 'redirectUrl': this._router.url} }); } else { HelperFunctions.scroll(); this.toggle = !this.toggle; if (this.toggle) { this.fullscreen.open(); } } } public communityContentProvidersChanged($event) { this.communityContentProviders = $event.value; this.showLoadingInRemove = false; if (this.toggle) { this.removeContentProvidersComponent.applyFilters(); } } }