1 |
43785
|
argiro.kok
|
import {Component, Input} from '@angular/core';
|
2 |
44072
|
konstantin
|
import {ActivatedRoute, Params} from '@angular/router';
|
3 |
43785
|
argiro.kok
|
|
4 |
44619
|
argiro.kok
|
import { SearchPublicationsComponent } from '../../searchPages/simple/searchPublications.component';
|
5 |
44072
|
konstantin
|
import { SearchPublicationsService } from '../../services/searchPublications.service';
|
6 |
44619
|
argiro.kok
|
import { SearchDatasetsComponent } from '../../searchPages/simple/searchDatasets.component';
|
7 |
44072
|
konstantin
|
import { SearchDatasetsService } from '../../services/searchDatasets.service';
|
8 |
44796
|
konstantin
|
import { SearchProjectsComponent } from '../../searchPages/simple/searchProjects.component';
|
9 |
|
|
import { SearchProjectsService } from '../../services/searchProjects.service';
|
10 |
|
|
import { SearchDataprovidersComponent } from '../../searchPages/simple/searchDataproviders.component';
|
11 |
|
|
import { SearchDataprovidersService } from '../../services/searchDataproviders.service';
|
12 |
44072
|
konstantin
|
|
13 |
43785
|
argiro.kok
|
@Component({
|
14 |
|
|
selector: 'tabs',
|
15 |
|
|
template: `
|
16 |
44732
|
konstantin
|
<ul *ngIf="tabs != undefined" class="nav nav-tabs">
|
17 |
43785
|
argiro.kok
|
<li *ngIf="tabs.length>0" class="active">
|
18 |
44796
|
konstantin
|
<a data-toggle="tab" href="#{{tabs[0].content}}">
|
19 |
43785
|
argiro.kok
|
{{tabs[0].name}}
|
20 |
44072
|
konstantin
|
<span class="badge" *ngIf="tabs[0].content=='publicationsTab'">
|
21 |
44726
|
argiro.kok
|
{{searchPublicationsComponent.searchUtils.totalResults}}
|
22 |
44072
|
konstantin
|
</span>
|
23 |
|
|
<span class="badge" *ngIf="tabs[0].content=='datasetsTab'">
|
24 |
44726
|
argiro.kok
|
{{searchDatasetsComponent.searchUtils.totalResults}}
|
25 |
44072
|
konstantin
|
</span>
|
26 |
44796
|
konstantin
|
<span class="badge" *ngIf="tabs[0].content=='projectsTab'">
|
27 |
|
|
{{searchProjectsComponent.searchUtils.totalResults}}
|
28 |
|
|
</span>
|
29 |
|
|
<span class="badge" *ngIf="tabs[0].content=='datasourcesTab'">
|
30 |
|
|
{{searchDataprovidersComponent.searchUtils.totalResults}}
|
31 |
|
|
</span>
|
32 |
|
|
<span class="badge" *ngIf="tabs[0].content=='organizationsTab'">
|
33 |
|
|
{{organizations.length}}
|
34 |
|
|
</span>
|
35 |
43785
|
argiro.kok
|
</a>
|
36 |
|
|
</li>
|
37 |
|
|
|
38 |
|
|
<li *ngFor="let tab of tabs; let i=index" role="presentation">
|
39 |
44796
|
konstantin
|
<a *ngIf="i>0"
|
40 |
|
|
(click)="search(tab.content, 1, 10)" data-toggle="tab" href="#{{tab.content}}">
|
41 |
|
|
{{tab.name}}
|
42 |
|
|
<span class="badge" *ngIf="tab.content=='publicationsTab'">
|
43 |
|
|
{{searchPublicationsComponent.searchUtils.totalResults}}
|
44 |
|
|
</span>
|
45 |
|
|
<span class="badge" *ngIf="tab.content=='datasetsTab'">
|
46 |
|
|
{{searchDatasetsComponent.searchUtils.totalResults}}
|
47 |
|
|
</span>
|
48 |
|
|
<span class="badge" *ngIf="tab.content=='projectsTab'">
|
49 |
|
|
{{searchProjectsComponent.searchUtils.totalResults}}
|
50 |
|
|
</span>
|
51 |
|
|
<span class="badge" *ngIf="tab.content=='datasourcesTab'">
|
52 |
|
|
{{searchDataprovidersComponent.searchUtils.totalResults}}
|
53 |
|
|
</span>
|
54 |
|
|
<span class="badge" *ngIf="tab.content=='organizationsTab'">
|
55 |
|
|
{{organizations.length}}
|
56 |
|
|
</span>
|
57 |
43785
|
argiro.kok
|
</a>
|
58 |
|
|
</li>
|
59 |
|
|
</ul>
|
60 |
|
|
|
61 |
44732
|
konstantin
|
<div *ngIf="tabs != undefined" class="tab-content">
|
62 |
43785
|
argiro.kok
|
<div *ngIf="tabs.length>0" id="{{tabs[0].content}}" class="tab-pane fade in active panel-body">
|
63 |
|
|
<publicationsTab *ngIf="tabs[0].content=='publicationsTab'"
|
64 |
44406
|
konstantin
|
[paramsForSearchLink]="paramsForSearchLink"
|
65 |
44072
|
konstantin
|
[searchPublicationsComponent]="searchPublicationsComponent">
|
66 |
43785
|
argiro.kok
|
</publicationsTab>
|
67 |
|
|
<datasetsTab *ngIf="tabs[0].content=='datasetsTab'"
|
68 |
44406
|
konstantin
|
[paramsForSearchLink]="paramsForSearchLink"
|
69 |
44072
|
konstantin
|
[searchDatasetsComponent]="searchDatasetsComponent">
|
70 |
43785
|
argiro.kok
|
</datasetsTab>
|
71 |
|
|
<statisticsTab *ngIf="tabs[0].content=='statisticsTab'"
|
72 |
44796
|
konstantin
|
[statistics]="statistics">
|
73 |
43785
|
argiro.kok
|
</statisticsTab>
|
74 |
|
|
<projectsTab *ngIf="tabs[0].content=='projectsTab'"
|
75 |
44796
|
konstantin
|
[paramsForSearchLink]="paramsForSearchLink"
|
76 |
|
|
[searchProjectsComponent]="searchProjectsComponent">
|
77 |
43785
|
argiro.kok
|
</projectsTab>
|
78 |
|
|
<datasourcesTab *ngIf="tabs[0].content=='datasourcesTab'"
|
79 |
44796
|
konstantin
|
[paramsForSearchLink]="paramsForSearchLink"
|
80 |
|
|
[searchDataprovidersComponent]="searchDataprovidersComponent">
|
81 |
43785
|
argiro.kok
|
</datasourcesTab>
|
82 |
44796
|
konstantin
|
<organizationsTab *ngIf="tabs[0].content=='organizationsTab'">
|
83 |
|
|
[organizations]="organizations"
|
84 |
|
|
</organizationsTab>
|
85 |
43785
|
argiro.kok
|
</div>
|
86 |
|
|
|
87 |
|
|
<div *ngFor="let tab of tabs; let i=index" id="{{tab.content}}" class="tab-pane fade panel-body">
|
88 |
44072
|
konstantin
|
<publicationsTab *ngIf="i>0 && tab.content=='publicationsTab'"
|
89 |
44406
|
konstantin
|
[paramsForSearchLink]="paramsForSearchLink"
|
90 |
44072
|
konstantin
|
[searchPublicationsComponent] = "searchPublicationsComponent">
|
91 |
|
|
</publicationsTab>
|
92 |
44406
|
konstantin
|
<datasetsTab *ngIf="i>0 && tab.content=='datasetsTab'"
|
93 |
|
|
[paramsForSearchLink]="paramsForSearchLink"
|
94 |
|
|
[searchDatasetsComponent]="searchDatasetsComponent">
|
95 |
|
|
</datasetsTab>
|
96 |
44382
|
konstantin
|
<statisticsTab *ngIf="i>0 && tab.content=='statisticsTab'"></statisticsTab>
|
97 |
44796
|
konstantin
|
<projectsTab *ngIf="i>0 && tab.content=='projectsTab'"
|
98 |
|
|
[paramsForSearchLink]="paramsForSearchLink"
|
99 |
|
|
[searchProjectsComponent]="searchProjectsComponent">
|
100 |
|
|
</projectsTab>
|
101 |
|
|
<datasourcesTab *ngIf="i>0 && tab.content=='datasourcesTab'"
|
102 |
|
|
[paramsForSearchLink]="paramsForSearchLink"
|
103 |
|
|
[searchDataprovidersComponent]="searchDataprovidersComponent">
|
104 |
|
|
</datasourcesTab>
|
105 |
|
|
<organizationsTab *ngIf="i>0 && tab.content=='organizationsTab'"
|
106 |
|
|
[organizations]="organizations">
|
107 |
|
|
</organizationsTab>
|
108 |
43785
|
argiro.kok
|
</div>
|
109 |
|
|
</div>
|
110 |
|
|
`
|
111 |
|
|
})
|
112 |
|
|
|
113 |
|
|
export class TabsComponent {
|
114 |
|
|
|
115 |
44072
|
konstantin
|
@Input() id: string;
|
116 |
44382
|
konstantin
|
@Input() resultsBy: string;
|
117 |
43785
|
argiro.kok
|
@Input() tabs: {"name": string, "content": string}[];
|
118 |
44072
|
konstantin
|
//@Input() publications;
|
119 |
|
|
//@Input() datasets;
|
120 |
43785
|
argiro.kok
|
@Input() statistics;
|
121 |
44796
|
konstantin
|
//@Input() projects;
|
122 |
|
|
//@Input() datasources;
|
123 |
|
|
@Input() organizations: {"name": string, "url": string}[];
|
124 |
43785
|
argiro.kok
|
|
125 |
44826
|
argiro.kok
|
public paramsForSearchLink: string = "";
|
126 |
44406
|
konstantin
|
|
127 |
44826
|
argiro.kok
|
public reloadPublications: boolean = true;
|
128 |
|
|
public reloadDatasets: boolean = true;
|
129 |
|
|
public reloadProjects: boolean = true;
|
130 |
|
|
public reloadDataproviders: boolean = true;
|
131 |
44382
|
konstantin
|
|
132 |
44826
|
argiro.kok
|
public searchPublicationsComponent : SearchPublicationsComponent;
|
133 |
|
|
public searchDatasetsComponent: SearchDatasetsComponent;
|
134 |
|
|
public searchProjectsComponent: SearchProjectsComponent;
|
135 |
|
|
public searchDataprovidersComponent: SearchDataprovidersComponent;
|
136 |
43785
|
argiro.kok
|
|
137 |
44072
|
konstantin
|
constructor (private route: ActivatedRoute,
|
138 |
|
|
private _searchPublicationsService: SearchPublicationsService,
|
139 |
44796
|
konstantin
|
private _searchDatasetsService: SearchDatasetsService,
|
140 |
|
|
private _searchProjectsService: SearchProjectsService,
|
141 |
|
|
private _searchDataprovidersService: SearchDataprovidersService) {
|
142 |
44072
|
konstantin
|
this.searchPublicationsComponent = new SearchPublicationsComponent(this.route, this._searchPublicationsService);
|
143 |
44383
|
argiro.kok
|
this.searchDatasetsComponent = new SearchDatasetsComponent(this.route, this._searchDatasetsService);
|
144 |
44796
|
konstantin
|
this.searchProjectsComponent = new SearchProjectsComponent(this.route, this._searchProjectsService);
|
145 |
|
|
this.searchDataprovidersComponent = new SearchDataprovidersComponent(this.route, this._searchDataprovidersService);
|
146 |
44072
|
konstantin
|
}
|
147 |
|
|
|
148 |
|
|
ngOnInit() {
|
149 |
44732
|
konstantin
|
if(this.tabs != undefined && this.tabs.length > 0) {
|
150 |
44796
|
konstantin
|
this.search(this.tabs[0].content, 1, 10);
|
151 |
|
|
this.count(1, 0);
|
152 |
44382
|
konstantin
|
}
|
153 |
44406
|
konstantin
|
|
154 |
|
|
if(this.resultsBy == "collectedFrom") {
|
155 |
|
|
this.paramsForSearchLink = "?collectedfromdatasourceid="+this.id;
|
156 |
|
|
} else if (this.resultsBy == "hostedBy") {
|
157 |
|
|
this.paramsForSearchLink = "?resulthostingdatasourceid="+this.id;
|
158 |
|
|
}
|
159 |
44072
|
konstantin
|
}
|
160 |
|
|
|
161 |
44796
|
konstantin
|
private count(page: number, size: number) {
|
162 |
|
|
console.info("number of tabs: "+this.tabs.length);
|
163 |
|
|
|
164 |
|
|
for(let i=1; i<this.tabs.length; i++) {
|
165 |
|
|
let content: string = this.tabs[i].content;
|
166 |
|
|
if(content=='publicationsTab') {
|
167 |
|
|
this.countPublications(page, size);
|
168 |
|
|
} else if(content=='datasetsTab') {
|
169 |
|
|
this.countDatasets(page, size);
|
170 |
|
|
} else if(content=='projectsTab') {
|
171 |
|
|
this.countProjects(page, size);
|
172 |
|
|
} else if(content=='datasourcesTab') {
|
173 |
|
|
this.countDataproviders(page, size);
|
174 |
|
|
}
|
175 |
44382
|
konstantin
|
}
|
176 |
44072
|
konstantin
|
}
|
177 |
|
|
|
178 |
44796
|
konstantin
|
private search(content: string, page: number, size: number) {
|
179 |
44382
|
konstantin
|
if(content=='publicationsTab') {
|
180 |
44796
|
konstantin
|
this.searchPublications(page, size);
|
181 |
44382
|
konstantin
|
} else if(content=='datasetsTab') {
|
182 |
44796
|
konstantin
|
this.searchDatasets(page, size);
|
183 |
|
|
} else if(content=='projectsTab') {
|
184 |
|
|
this.searchProjects(page, size);
|
185 |
|
|
} else if(content=='datasourcesTab') {
|
186 |
|
|
this.searchDataproviders(page, size);
|
187 |
44382
|
konstantin
|
}
|
188 |
|
|
}
|
189 |
|
|
|
190 |
44796
|
konstantin
|
private searchPublications(page: number, size: number) {
|
191 |
44382
|
konstantin
|
if(this.reloadPublications) {
|
192 |
44796
|
konstantin
|
this.searchPublicationsComponent.getResultsForDataproviders(this.id, this.resultsBy, page, size);
|
193 |
44382
|
konstantin
|
}
|
194 |
|
|
this.reloadPublications = false;
|
195 |
44072
|
konstantin
|
}
|
196 |
|
|
|
197 |
44796
|
konstantin
|
private countPublications(page: number, size: number) {
|
198 |
|
|
this.searchPublicationsComponent.getResultsForDataproviders(this.id, this.resultsBy, page, size);
|
199 |
|
|
}
|
200 |
|
|
|
201 |
|
|
private searchDatasets(page: number, size: number) {
|
202 |
44382
|
konstantin
|
if(this.reloadDatasets) {
|
203 |
44796
|
konstantin
|
this.searchDatasetsComponent.getResultsForDataproviders(this.id, this.resultsBy, page, size);
|
204 |
44382
|
konstantin
|
}
|
205 |
|
|
this.reloadDatasets = false;
|
206 |
44072
|
konstantin
|
}
|
207 |
44796
|
konstantin
|
|
208 |
|
|
private countDatasets(page: number, size: number) {
|
209 |
|
|
this.searchDatasetsComponent.getResultsForDataproviders(this.id, this.resultsBy, page, size);
|
210 |
|
|
}
|
211 |
|
|
|
212 |
|
|
private searchProjects(page: number, size: number) {
|
213 |
|
|
if(this.reloadProjects) {
|
214 |
|
|
this.searchProjectsComponent.getResultsForDataproviders(this.id, page, size);
|
215 |
|
|
}
|
216 |
|
|
this.reloadProjects = false;
|
217 |
|
|
}
|
218 |
|
|
|
219 |
|
|
private countProjects(page: number, size: number) {
|
220 |
|
|
this.searchProjectsComponent.getResultsForDataproviders(this.id, page, size);
|
221 |
|
|
}
|
222 |
|
|
|
223 |
|
|
private searchDataproviders(page: number, size: number) {
|
224 |
|
|
if(this.reloadDataproviders) {
|
225 |
|
|
this.searchDataprovidersComponent.getResultsForDataproviders(this.id, page, size);
|
226 |
|
|
}
|
227 |
|
|
this.reloadDataproviders = false;
|
228 |
|
|
}
|
229 |
|
|
|
230 |
|
|
private countDataproviders(page: number, size: number) {
|
231 |
|
|
this.searchDataprovidersComponent.getResultsForDataproviders(this.id, page, size);
|
232 |
|
|
}
|
233 |
43785
|
argiro.kok
|
}
|