Revision 62389
Added by Andreas Mantas over 1 year ago
modules/uoa-repository-dashboard-gui/trunk/src/app/pages/sources/sources-register/sr-data.component.ts | ||
---|---|---|
1 |
/* |
|
2 |
* created by myrto on 12/12/2017 |
|
3 |
*/ |
|
4 |
|
|
5 |
import { Component, OnInit } from '@angular/core'; |
|
6 |
import { RegisterExistingDatasourceComponent } from './register-existing-datasource.component'; |
|
7 |
|
|
8 |
@Component ({ |
|
9 |
selector: 'app-sr-data', |
|
10 |
templateUrl: './register-existing-datasource.component.html' |
|
11 |
}) |
|
12 |
|
|
13 |
export class SrDataComponent extends RegisterExistingDatasourceComponent implements OnInit { |
|
14 |
|
|
15 |
ngOnInit() { |
|
16 |
this.datasourceType = 'data'; |
|
17 |
this.currentMode = 're3data'; |
|
18 |
super.ngOnInit(); |
|
19 |
} |
|
20 |
|
|
21 |
} |
|
22 | 0 |
modules/uoa-repository-dashboard-gui/trunk/src/app/pages/sources/sources-register/sr-literature.component.ts | ||
---|---|---|
1 |
/* |
|
2 |
* updated by myrto on 19/12/2018 |
|
3 |
*/ |
|
4 |
|
|
5 |
import { Component, OnInit } from '@angular/core'; |
|
6 |
import { RegisterExistingDatasourceComponent } from './register-existing-datasource.component'; |
|
7 |
|
|
8 |
@Component ({ |
|
9 |
selector: 'app-sr-literature', |
|
10 |
templateUrl: './register-existing-datasource.component.html' |
|
11 |
}) |
|
12 |
export class SrLiteratureComponent extends RegisterExistingDatasourceComponent implements OnInit { |
|
13 |
|
|
14 |
ngOnInit() { |
|
15 |
this.datasourceType = 'literature'; |
|
16 |
this.currentMode = 'opendoar'; |
|
17 |
super.ngOnInit(); |
|
18 |
} |
|
19 |
|
|
20 |
} |
|
21 | 0 |
modules/uoa-repository-dashboard-gui/trunk/src/app/app.component.ts | ||
---|---|---|
67 | 67 |
() => { |
68 | 68 |
// console.log(this.reposOfUser); |
69 | 69 |
this.reposOfUser.forEach(repo => { |
70 |
if (!repo.consentTermsOfUse || !repo.fullTextDownload) {
|
|
70 |
if (repo.consentTermsOfUse === null || repo.fullTextDownload === null) {
|
|
71 | 71 |
this.addTerm(repo.officialname, repo.id, repo.consentTermsOfUse); |
72 | 72 |
this.isModalShown = true; |
73 | 73 |
} |
modules/uoa-repository-dashboard-gui/trunk/src/app/shared/reusablecomponents/sources-forms/datasource-update-terms-form.component.html | ||
---|---|---|
29 | 29 |
Agree to the <a href="https://www.openaire.eu/terms-of-use-for-content-providers#consent" target="_blank">re-use of full texts</a> |
30 | 30 |
</label> |
31 | 31 |
</form-inline> |
32 |
<!-- FIXME: replace consentTermsOfUseDate with registrationDate --> |
|
33 |
<div class="uk-margin-top" *ngIf="selectedRepo.consentTermsOfUseDate">Data source registration date: {{selectedRepo.consentTermsOfUseDate | date}}</div> |
|
34 |
<div class="uk-margin-small-top">Last date of acceptance of the Terms of Use: {{selectedRepo.lastConsentTermsOfUseDate ? (selectedRepo.lastConsentTermsOfUseDate | date) : '-'}}</div> |
|
32 |
<ng-container *ngIf="showButton"> |
|
33 |
<div class="uk-margin-top" *ngIf="selectedRepo.registrationdate">Data source registration date: {{selectedRepo.registrationdate | date}}</div> |
|
34 |
<div class="uk-margin-small-top">Last date of acceptance of the Terms of Use: {{selectedRepo.lastConsentTermsOfUseDate ? (selectedRepo.lastConsentTermsOfUseDate | date) : '-'}}</div> |
|
35 |
</ng-container> |
|
35 | 36 |
<p class="uk-text-meta">Note: OpenAIRE will not provide the full text files for public distribution, the users will access from the original datasource.</p> |
36 | 37 |
<div *ngIf="showButton" class="form-group"> |
37 | 38 |
<button class="uk-button uk-button-primary updateRepoInfoButton" type="button" (click)="updateRepo()">Update Information</button> |
modules/uoa-repository-dashboard-gui/trunk/src/app/domain/oa-description.ts | ||
---|---|---|
131 | 131 |
|
132 | 132 |
export const datasourceTypeDesc = { |
133 | 133 |
desc: 'The type of your repository', |
134 |
label: 'Repository Type',
|
|
134 |
label: 'Data source type',
|
|
135 | 135 |
mandatory: true, |
136 | 136 |
recommended: false |
137 | 137 |
}; |
modules/uoa-repository-dashboard-gui/trunk/src/app/pages/sources/sources.module.ts | ||
---|---|---|
4 | 4 |
import { SourcesRegisterComponent } from './sources-register.component'; |
5 | 5 |
import { CommonModule } from '@angular/common'; |
6 | 6 |
import { TabsModule } from 'ngx-bootstrap'; |
7 |
import { SrLiteratureComponent } from './sources-register/sr-literature.component'; |
|
8 | 7 |
import { ReusableComponentsModule } from '../../shared/reusablecomponents/reusable-components.module'; |
9 | 8 |
import { FormsModule, ReactiveFormsModule } from '@angular/forms'; |
10 | 9 |
import { RepoFilter } from './sourcesPipes'; |
11 |
import { SrDataComponent } from './sources-register/sr-data.component'; |
|
12 | 10 |
import { RegisterDatasourceSelectExistingComponent } from './sources-register/register-datasource-select-existing.component'; |
13 | 11 |
import { SrJournalComponent } from './sources-register/sr-journal.component'; |
14 | 12 |
import { SrAggregatorComponent } from './sources-register/sr-aggregator.component'; |
... | ... | |
16 | 14 |
import { RegisterExistingDatasourceComponent } from './sources-register/register-existing-datasource.component'; |
17 | 15 |
import { DatasourceUpdateTermsFormComponent } from '../../shared/reusablecomponents/sources-forms/datasource-update-terms-form.component'; |
18 | 16 |
import {SrCrisComponent} from './sources-register/sr-cris.component'; |
17 |
import {SrRepositoryComponent} from './sources-register/sr-repository.component'; |
|
19 | 18 |
|
20 | 19 |
@NgModule ({ |
21 | 20 |
imports: [ |
... | ... | |
34 | 33 |
SourcesRegisterComponent, |
35 | 34 |
RegisterNewDatasourceComponent, |
36 | 35 |
RegisterExistingDatasourceComponent, |
37 |
SrLiteratureComponent, |
|
38 |
SrDataComponent, |
|
36 |
SrRepositoryComponent, |
|
39 | 37 |
SrJournalComponent, |
40 | 38 |
SrAggregatorComponent, |
41 | 39 |
SrCrisComponent, |
modules/uoa-repository-dashboard-gui/trunk/src/app/services/repository.service.ts | ||
---|---|---|
47 | 47 |
|
48 | 48 |
updateInterface(repoId: string, registeredBy: string, comment: string, interfaceInfo: RepositoryInterface): Observable<RepositoryInterface> { |
49 | 49 |
let url; |
50 |
console.log(comment); |
|
50 | 51 |
if (comment == null || comment === '') { |
51 | 52 |
url = `${this.apiUrl}updateRepositoryInterface?repoId=${repoId}®isteredBy=${registeredBy}`; |
52 | 53 |
} else { |
... | ... | |
161 | 162 |
return this.httpClient.get<Map<string, string>>(url, headerOptions); |
162 | 163 |
} |
163 | 164 |
|
164 |
getDatasourceClasses(mode: string): Observable<Map<string, string>> {
|
|
165 |
getDatasourceClasses(mode: string): Observable<Object> {
|
|
165 | 166 |
const url = `${this.apiUrl}getDatasourceClasses/${mode}`; |
166 | 167 |
console.log(`knocking on: ${url}`); |
167 | 168 |
return this.httpClient.get<Map<string, string>>(url, headerOptions); |
modules/uoa-repository-dashboard-gui/trunk/src/app/domain/typeScriptClasses.ts | ||
---|---|---|
1 | 1 |
// Generated using typescript-generator version 1.29.366 on 2018-02-05 16:06:12. |
2 | 2 |
|
3 | 3 |
export class BrowseData { |
4 |
data: { [index: string]: FieldData };
|
|
5 |
fields: string[];
|
|
4 |
data: { [index: string]: FieldData }; |
|
5 |
fields: string[]; |
|
6 | 6 |
} |
7 | 7 |
|
8 | 8 |
export class DataCollectionAccessProtocol { |
9 |
value: string;
|
|
10 |
username: string;
|
|
11 |
password: string;
|
|
9 |
value: string; |
|
10 |
username: string; |
|
11 |
password: string; |
|
12 | 12 |
} |
13 | 13 |
|
14 | 14 |
export class DataCollectionInterface { |
15 |
protocol: DataCollectionAccessProtocol;
|
|
16 |
baseUrl: string;
|
|
17 |
format: string;
|
|
18 |
filter: string;
|
|
15 |
protocol: DataCollectionAccessProtocol; |
|
16 |
baseUrl: string; |
|
17 |
format: string; |
|
18 |
filter: string; |
|
19 | 19 |
} |
20 | 20 |
|
21 | 21 |
export class DataCollectionType { |
22 |
dataCollectionInterface: DataCollectionInterface;
|
|
23 |
id: string;
|
|
24 |
label: string;
|
|
25 |
group: string;
|
|
22 |
dataCollectionInterface: DataCollectionInterface; |
|
23 |
id: string; |
|
24 |
label: string; |
|
25 |
group: string; |
|
26 | 26 |
} |
27 | 27 |
|
28 | 28 |
export class Document { |
29 |
map: { [index: string]: string[] };
|
|
30 |
fieldNames: string[];
|
|
29 |
map: { [index: string]: string[] }; |
|
30 |
fieldNames: string[]; |
|
31 | 31 |
} |
32 | 32 |
|
33 | 33 |
export class FieldData { |
34 |
fieldRowList: FieldRow[];
|
|
35 |
count: number[];
|
|
36 |
values: string[];
|
|
34 |
fieldRowList: FieldRow[]; |
|
35 |
count: number[]; |
|
36 |
values: string[]; |
|
37 | 37 |
} |
38 | 38 |
|
39 | 39 |
export class FieldRow { |
40 |
value: string;
|
|
41 |
count: number;
|
|
40 |
value: string; |
|
41 |
count: number; |
|
42 | 42 |
} |
43 | 43 |
|
44 | 44 |
export class FormattedSearchResult { |
45 |
formattedResult: string;
|
|
46 |
resultsNumber: number;
|
|
45 |
formattedResult: string; |
|
46 |
resultsNumber: number; |
|
47 | 47 |
} |
48 | 48 |
|
49 | 49 |
export class Hint { |
50 |
alternateTerm: string;
|
|
51 |
autoFollowHint: boolean;
|
|
50 |
alternateTerm: string; |
|
51 |
autoFollowHint: boolean; |
|
52 | 52 |
} |
53 | 53 |
|
54 | 54 |
export class DriverResource implements Serializable { |
55 |
resourceId: string;
|
|
56 |
resourceUri: string;
|
|
57 |
resourceKind: string;
|
|
58 |
resourceType: string;
|
|
59 |
dateOfCreation: Date;
|
|
55 |
resourceId: string; |
|
56 |
resourceUri: string; |
|
57 |
resourceKind: string; |
|
58 |
resourceType: string; |
|
59 |
dateOfCreation: Date; |
|
60 | 60 |
} |
61 | 61 |
|
62 | 62 |
export class MDFormatDataStructure extends DriverResource { |
63 |
resourceName: string;
|
|
64 |
layouts: { [index: string]: LayoutField[] };
|
|
63 |
resourceName: string; |
|
64 |
layouts: { [index: string]: LayoutField[] }; |
|
65 | 65 |
} |
66 | 66 |
|
67 | 67 |
export class PiwikInfo implements IsSerializable { |
68 |
repositoryId: string;
|
|
69 |
openaireId: string;
|
|
70 |
repositoryName: string;
|
|
71 |
country: string;
|
|
72 |
siteId: string;
|
|
73 |
authenticationToken: string;
|
|
74 |
creationDate: Date;
|
|
75 |
requestorName: string;
|
|
76 |
requestorEmail: string;
|
|
77 |
validated: boolean;
|
|
78 |
validationDate: Date;
|
|
79 |
comment: string;
|
|
68 |
repositoryId: string; |
|
69 |
openaireId: string; |
|
70 |
repositoryName: string; |
|
71 |
country: string; |
|
72 |
siteId: string; |
|
73 |
authenticationToken: string; |
|
74 |
creationDate: Date; |
|
75 |
requestorName: string; |
|
76 |
requestorEmail: string; |
|
77 |
validated: boolean; |
|
78 |
validationDate: Date; |
|
79 |
comment: string; |
|
80 | 80 |
} |
81 | 81 |
|
82 |
export class Repository extends DriverResource implements IsSerializable {
|
|
82 |
export class DatasourceDetails {
|
|
83 | 83 |
id: string; |
84 |
officialName: string; |
|
85 |
englishName: string; |
|
86 |
websiteUrl: string; |
|
87 |
logoUrl: string; |
|
88 |
contactEmail: string; |
|
89 |
countryName: string; |
|
90 |
countryCode: string; |
|
91 |
organization: string; |
|
84 |
openaireId: string; |
|
85 |
officialname: string; |
|
86 |
englishname: string; |
|
87 |
websiteurl: string; |
|
88 |
logourl: string; |
|
89 |
contactemail: string; |
|
92 | 90 |
latitude: number; |
93 | 91 |
longitude: number; |
94 |
timezone: number; |
|
95 |
namespacePrefix: string; |
|
96 |
odNumberOfItems: string; |
|
97 |
odNumberOfItemsDate: string; |
|
98 |
odPolicies: string; |
|
99 |
odLanguages: string; |
|
100 |
odContentTypes: string; |
|
101 |
collectedFrom: string; |
|
102 |
inferred: boolean; |
|
103 |
deletedByInference: boolean; |
|
104 |
trust: number; |
|
105 |
inferenceProvenance: string; |
|
106 |
dateOfValidation: Date; |
|
107 |
datasourceClass: string; |
|
108 |
provenanceActionClass: string; |
|
109 |
dateOfCollection: Date; |
|
110 |
typology: string; |
|
92 |
namespaceprefix: string; |
|
93 |
languages: string; |
|
94 |
dateofvalidation: Date; |
|
95 |
eoscDatasourceType: string; |
|
96 |
dateofcollection: Date; |
|
97 |
platform: string; |
|
111 | 98 |
activationId: string; |
112 |
mergehomonyms: boolean; |
|
113 | 99 |
description: string; |
114 |
releaseStartDate: Date; |
|
115 |
releaseEndDate: Date; |
|
116 |
missionStatementUrl: string; |
|
117 |
dataProvider: boolean; |
|
118 |
serviceProvider: boolean; |
|
119 |
databaseAccessType: string; |
|
120 |
dataUploadType: string; |
|
121 |
databaseAccessRestriction: string; |
|
122 |
dataUploadRestriction: string; |
|
123 |
versioning: boolean; |
|
124 |
citationGuidelineUrl: string; |
|
125 |
qualityManagementKind: string; |
|
126 |
pidSystems: string; |
|
127 |
certificates: string; |
|
128 |
aggregator: string; |
|
129 | 100 |
issn: string; |
130 | 101 |
eissn: string; |
131 | 102 |
lissn: string; |
132 |
interfaces: RepositoryInterface[]; |
|
103 |
registeredby: string; |
|
104 |
subjects: string; |
|
105 |
aggregator: string; |
|
106 |
collectedfrom: string; |
|
107 |
managed: boolean; |
|
108 |
registrationdate: Date; |
|
109 |
consentTermsOfUseDate: Date; |
|
110 |
lastConsentTermsOfUseDate: Date; |
|
133 | 111 |
consentTermsOfUse: boolean; |
134 | 112 |
fullTextDownload: boolean; |
135 |
consentTermsOfUseDate: Date; |
|
136 |
lastConsentTermsOfUseDate: Date; |
|
137 |
availableDiskSpace: string; |
|
138 |
securityParameters: string; |
|
139 |
protocol: string; |
|
140 |
registeredBy: string; |
|
141 |
datasourceType: string; |
|
142 |
datasourceAggregatorId: string; |
|
143 |
datasourceOriginalIdValue: string; |
|
144 |
datasourceOriginalIdProvenance: string; |
|
145 |
datasourceAggregated: boolean; |
|
146 |
datasourceComplianceDegreeValue: string; |
|
147 |
datasourceComplianceDegreeEncoding: string; |
|
148 |
numberOfObjects: number; |
|
149 |
maxSizeOfDatastructure: number; |
|
150 |
maxNumberOfDataStructures: number; |
|
151 |
registered: boolean; |
|
152 |
extraFields: { [index: string]: string }; |
|
113 |
organizations: OrganizationDetails[] = new Array<OrganizationDetails>(); |
|
114 |
identities: IdentitiesDetails[]; |
|
115 |
status: string; |
|
116 |
typology: string; |
|
117 |
} |
|
118 |
|
|
119 |
export class Repository extends DatasourceDetails implements IsSerializable { |
|
120 |
timezone: number; |
|
121 |
interfaces: RepositoryInterface[]; |
|
153 | 122 |
piwikInfo: PiwikInfo; |
154 | 123 |
environments: string[]; |
155 |
registrationDate: Date; |
|
156 |
verified: boolean; |
|
124 |
namespacePrefix: string; |
|
125 |
dateOfValidation: Date; |
|
126 |
dateOfCollection: Date; |
|
157 | 127 |
dataCollectionTypes: DataCollectionType[]; |
158 | 128 |
} |
159 | 129 |
|
... | ... | |
162 | 132 |
officialname: string; |
163 | 133 |
englishname: string; |
164 | 134 |
websiteurl: string; |
165 |
typology: string; |
|
166 | 135 |
registeredby: string; |
167 |
organizations: Organization[]; |
|
168 | 136 |
registrationdate: Date; |
169 |
piwikInfo: PiwikInfo;
|
|
137 |
eoscDatasourceType: string;
|
|
170 | 138 |
logoUrl: string; |
171 | 139 |
description: string; |
172 | 140 |
consentTermsOfUse: boolean; |
141 |
consentTermsOfUseDate: Date; |
|
142 |
lastConsentTermsOfUseDate: Date; |
|
173 | 143 |
fullTextDownload: boolean; |
174 |
consentTermsOfUseDate: Date; |
|
144 |
organizations: OrganizationDetails[]; |
|
145 |
typology: string; |
|
146 |
piwikInfo: PiwikInfo; |
|
175 | 147 |
} |
176 | 148 |
|
177 | 149 |
export class TermsOfUse { |
... | ... | |
182 | 154 |
consentTermsOfUseDate: Date; |
183 | 155 |
} |
184 | 156 |
|
185 |
export class Organization { |
|
186 |
country: string; |
|
187 |
legalname: string; |
|
188 |
websiteurl: string; |
|
189 |
legalshortname: string; |
|
190 |
logourl: string; |
|
191 |
} |
|
192 |
|
|
193 | 157 |
export class RepositoryAccessProtocol { |
194 |
value: string;
|
|
195 |
username: string;
|
|
196 |
password: string;
|
|
197 |
filter: string;
|
|
158 |
value: string; |
|
159 |
username: string; |
|
160 |
password: string; |
|
161 |
filter: string; |
|
198 | 162 |
} |
199 | 163 |
|
200 | 164 |
export class RepositoryBlackboard { |
201 |
lastrequest: string;
|
|
202 |
lastresponse: string;
|
|
203 |
messages: RepositoryBlackboardMessage[];
|
|
165 |
lastrequest: string; |
|
166 |
lastresponse: string; |
|
167 |
messages: RepositoryBlackboardMessage[]; |
|
204 | 168 |
} |
205 | 169 |
|
206 | 170 |
export class RepositoryBlackboardMessage { |
207 |
id: string;
|
|
208 |
action: Action;
|
|
209 |
actionStatus: ActionStatus;
|
|
210 |
parameters: string[];
|
|
171 |
id: string; |
|
172 |
action: Action; |
|
173 |
actionStatus: ActionStatus; |
|
174 |
parameters: string[]; |
|
211 | 175 |
} |
212 | 176 |
|
213 | 177 |
export class RepositoryComparator implements Comparator<Repository> { |
214 | 178 |
} |
215 | 179 |
|
216 |
export class RepositoryInterface implements Serializable, IsSerializable { |
|
217 |
desiredCompatibilityLevel: string; |
|
218 |
complianceName: string; |
|
219 |
upgradeToV3: string; |
|
220 |
deleteApi: boolean; |
|
221 |
accessSet: string; |
|
222 |
accessFormat: string; |
|
180 |
// export class RepositoryInterface implements Serializable, IsSerializable { |
|
181 |
// desiredCompatibilityLevel: string; |
|
182 |
// complianceName: string; |
|
183 |
// upgradeToV3: string; |
|
184 |
// deleteApi: boolean; |
|
185 |
// accessSet: string; |
|
186 |
// accessFormat: string; |
|
187 |
// metadataIdentifierPath: string; |
|
188 |
// lastCollectionDate: string; |
|
189 |
// nextScheduledExecution: string; |
|
190 |
// status: string; |
|
191 |
// collectedFrom: string; |
|
192 |
// id: string; |
|
193 |
// typology: string; |
|
194 |
// compatibility: string; |
|
195 |
// contentdescription: string; |
|
196 |
// protocol: string; |
|
197 |
// baseurl: string; |
|
198 |
// active: boolean; |
|
199 |
// removable: boolean; |
|
200 |
// apiParams: { [index: string]: string }; |
|
201 |
// extraFields: { [index: string]: string }; |
|
202 |
// comments: string; |
|
203 |
// } |
|
204 |
|
|
205 |
export class ApiDetails { |
|
206 |
id: string; |
|
207 |
protocol: string; |
|
208 |
datasource: string; |
|
209 |
contentdescription: string; |
|
210 |
eoscDatasourceType: string; |
|
211 |
compatibility: string; |
|
212 |
compatibilityOverride: string; |
|
213 |
lastCollectionTotal: number; |
|
214 |
lastCollectionDate: Date; |
|
215 |
lastAggregationTotal: number; |
|
216 |
lastAggregationDate: Date; |
|
217 |
lastDownloadTotal: number; |
|
218 |
lastDownloadDate: Date; |
|
219 |
baseurl: string; |
|
220 |
removable: boolean; |
|
221 |
apiParams: ApiParamDetails[] = new Array<ApiParamDetails>(); |
|
223 | 222 |
metadataIdentifierPath: string; |
224 |
lastCollectionDate: string; |
|
225 |
nextScheduledExecution: string; |
|
226 |
status: string; |
|
227 |
collectedFrom: string; |
|
228 |
id: string; |
|
229 | 223 |
typology: string; |
230 |
compliance: string; |
|
231 |
contentDescription: string; |
|
232 |
accessProtocol: string; |
|
233 |
baseUrl: string; |
|
234 |
active: boolean; |
|
235 |
removable: boolean; |
|
236 |
accessParams: { [index: string]: string }; |
|
237 |
extraFields: { [index: string]: string }; |
|
238 | 224 |
comments: string; |
239 | 225 |
} |
240 | 226 |
|
227 |
export class RepositoryInterface extends ApiDetails { |
|
228 |
|
|
229 |
} |
|
230 |
|
|
231 |
export class ApiParamDetails { |
|
232 |
param: string; |
|
233 |
value: string; |
|
234 |
|
|
235 |
constructor(param, value) { |
|
236 |
this.param = param; |
|
237 |
this.value = value; |
|
238 |
} |
|
239 |
|
|
240 |
} |
|
241 |
|
|
241 | 242 |
export class SearchCriteriaImpl implements SearchCriteria { |
242 |
startsWith: string;
|
|
243 |
endsWith: string;
|
|
244 |
contains: string;
|
|
243 |
startsWith: string; |
|
244 |
endsWith: string; |
|
245 |
contains: string; |
|
245 | 246 |
} |
246 | 247 |
|
247 | 248 |
export class RepositorySearchCriteria extends SearchCriteriaImpl implements SearchCriteria { |
248 |
haveDocuments: boolean;
|
|
249 |
protocolType: string;
|
|
250 |
adminInfo: string;
|
|
251 |
officialName: string;
|
|
252 |
registeredBy: string;
|
|
253 |
country: string;
|
|
254 |
verified: boolean;
|
|
249 |
haveDocuments: boolean; |
|
250 |
protocolType: string; |
|
251 |
adminInfo: string; |
|
252 |
officialName: string; |
|
253 |
registeredBy: string; |
|
254 |
country: string; |
|
255 |
verified: boolean; |
|
255 | 256 |
} |
256 | 257 |
|
257 | 258 |
export class SearchResult { |
258 |
query: string;
|
|
259 |
locale: string;
|
|
260 |
total: number;
|
|
261 |
page: number;
|
|
262 |
size: number;
|
|
263 |
fields: string[];
|
|
264 |
searchResults: string[];
|
|
265 |
browseResults: string[];
|
|
259 |
query: string; |
|
260 |
locale: string; |
|
261 |
total: number; |
|
262 |
page: number; |
|
263 |
size: number; |
|
264 |
fields: string[]; |
|
265 |
searchResults: string[]; |
|
266 |
browseResults: string[]; |
|
266 | 267 |
} |
267 | 268 |
|
268 | 269 |
export class SimilarDocument { |
269 |
id: string;
|
|
270 |
score: number;
|
|
270 |
id: string; |
|
271 |
score: number; |
|
271 | 272 |
} |
272 | 273 |
|
273 | 274 |
export class StoreInfo { |
274 |
serviceUrl: string;
|
|
275 |
storeId: string;
|
|
275 |
serviceUrl: string; |
|
276 |
storeId: string; |
|
276 | 277 |
} |
277 | 278 |
|
278 | 279 |
export class StoreObjectInfo { |
279 |
storeInfo: StoreInfo;
|
|
280 |
objectId: string;
|
|
280 |
storeInfo: StoreInfo; |
|
281 |
objectId: string; |
|
281 | 282 |
} |
282 | 283 |
|
283 | 284 |
export class SuggestiveResult { |
284 |
epr: EPR;
|
|
285 |
alternativeTerm: string;
|
|
286 |
autofollow: boolean;
|
|
285 |
epr: EPR; |
|
286 |
alternativeTerm: string; |
|
287 |
autofollow: boolean; |
|
287 | 288 |
} |
288 | 289 |
|
289 | 290 |
export class CustomProperties implements IsSerializable { |
290 |
properties: { [index: string]: string };
|
|
291 |
properties: { [index: string]: string }; |
|
291 | 292 |
} |
292 | 293 |
|
293 | 294 |
export class JobForValidation implements IsSerializable { |
294 |
officialName: string;
|
|
295 |
baseUrl: string;
|
|
296 |
userEmail: string;
|
|
297 |
validationSet: string;
|
|
298 |
datasourceId: string;
|
|
299 |
interfaceId: string;
|
|
300 |
desiredCompatibilityLevel: string;
|
|
301 |
activationId: string;
|
|
302 |
repoType: string;
|
|
303 |
interfaceIdOld: string;
|
|
304 |
groupByXpath: string;
|
|
305 |
metadataPrefix: string;
|
|
306 |
records: number;
|
|
307 |
registration: boolean;
|
|
308 |
updateExisting: boolean;
|
|
309 |
cris: boolean;
|
|
310 |
crisReferentialChecks: boolean;
|
|
311 |
selectedCrisEntities: string[];
|
|
312 |
selectedContentRules: number[];
|
|
313 |
selectedUsageRules: number[];
|
|
314 |
adminEmails: string[];
|
|
295 |
officialName: string; |
|
296 |
baseUrl: string; |
|
297 |
userEmail: string; |
|
298 |
validationSet: string; |
|
299 |
datasourceId: string; |
|
300 |
interfaceId: string; |
|
301 |
desiredCompatibilityLevel: string; |
|
302 |
activationId: string; |
|
303 |
repoType: string; |
|
304 |
interfaceIdOld: string; |
|
305 |
groupByXpath: string; |
|
306 |
metadataPrefix: string; |
|
307 |
records: number; |
|
308 |
registration: boolean; |
|
309 |
updateExisting: boolean; |
|
310 |
cris: boolean; |
|
311 |
crisReferentialChecks: boolean; |
|
312 |
selectedCrisEntities: string[]; |
|
313 |
selectedContentRules: number[]; |
|
314 |
selectedUsageRules: number[]; |
|
315 |
adminEmails: string[]; |
|
315 | 316 |
} |
316 | 317 |
|
317 | 318 |
export class JobResultEntry implements IsSerializable { |
318 |
name: string;
|
|
319 |
description: string;
|
|
320 |
successes: string;
|
|
321 |
weight: number;
|
|
322 |
errors: string[];
|
|
323 |
ruleId: number;
|
|
324 |
hasErrors: boolean;
|
|
325 |
mandatory: boolean;
|
|
326 |
type: string;
|
|
319 |
name: string; |
|
320 |
description: string; |
|
321 |
successes: string; |
|
322 |
weight: number; |
|
323 |
errors: string[]; |
|
324 |
ruleId: number; |
|
325 |
hasErrors: boolean; |
|
326 |
mandatory: boolean; |
|
327 |
type: string; |
|
327 | 328 |
} |
328 | 329 |
|
329 | 330 |
export class Rule implements IsSerializable { |
330 |
id: number;
|
|
331 |
name: string;
|
|
332 |
description: string;
|
|
333 |
type: string;
|
|
334 |
mandatory: boolean;
|
|
335 |
weight: number;
|
|
336 |
provider_information: string;
|
|
337 |
job_type: string;
|
|
338 |
entity_type: string;
|
|
339 |
for_cris: boolean;
|
|
340 |
configuration: CustomProperties;
|
|
331 |
id: number; |
|
332 |
name: string; |
|
333 |
description: string; |
|
334 |
type: string; |
|
335 |
mandatory: boolean; |
|
336 |
weight: number; |
|
337 |
provider_information: string; |
|
338 |
job_type: string; |
|
339 |
entity_type: string; |
|
340 |
for_cris: boolean; |
|
341 |
configuration: CustomProperties; |
|
341 | 342 |
} |
342 | 343 |
|
343 | 344 |
export class RuleSet implements Serializable, IsSerializable { |
344 |
id: number;
|
|
345 |
name: string;
|
|
346 |
description: string;
|
|
347 |
guidelinesAcronym: string;
|
|
348 |
shortName: string;
|
|
349 |
visibility: string[];
|
|
350 |
contentRules: Rule[];
|
|
351 |
usageRules: Rule[];
|
|
352 |
contentRulesIds: number[];
|
|
353 |
usageRulesIds: number[];
|
|
345 |
id: number; |
|
346 |
name: string; |
|
347 |
description: string; |
|
348 |
guidelinesAcronym: string; |
|
349 |
shortName: string; |
|
350 |
visibility: string[]; |
|
351 |
contentRules: Rule[]; |
|
352 |
usageRules: Rule[]; |
|
353 |
contentRulesIds: number[]; |
|
354 |
usageRulesIds: number[]; |
|
354 | 355 |
} |
355 | 356 |
|
356 | 357 |
export class StoredJob extends JobForValidation implements IsSerializable { |
357 |
contentJobStatus: string;
|
|
358 |
usageJobStatus: string;
|
|
359 |
started: string;
|
|
360 |
ended: string;
|
|
361 |
duration: string;
|
|
362 |
error: string;
|
|
363 |
validationType: string;
|
|
364 |
jobType: string;
|
|
365 |
guidelinesShortName: string;
|
|
366 |
validationStatus: string;
|
|
367 |
recordsTested: number;
|
|
368 |
id: number;
|
|
369 |
contentJobScore: number;
|
|
370 |
usageJobScore: number;
|
|
371 |
rules: number[];
|
|
372 |
resultEntries: JobResultEntry[];
|
|
373 |
filteredScores: { [index: string]: number };
|
|
358 |
contentJobStatus: string; |
|
359 |
usageJobStatus: string; |
|
360 |
started: string; |
|
361 |
ended: string; |
|
362 |
duration: string; |
|
363 |
error: string; |
|
364 |
validationType: string; |
|
365 |
jobType: string; |
|
366 |
guidelinesShortName: string; |
|
367 |
validationStatus: string; |
|
368 |
recordsTested: number; |
|
369 |
id: number; |
|
370 |
contentJobScore: number; |
|
371 |
usageJobScore: number; |
|
372 |
rules: number[]; |
|
373 |
resultEntries: JobResultEntry[]; |
|
374 |
filteredScores: { [index: string]: number }; |
|
374 | 375 |
} |
375 | 376 |
|
376 | 377 |
export class AdvQueryObject implements IsSerializable { |
377 |
datasource: string;
|
|
378 |
topic: string;
|
|
379 |
titles: string[];
|
|
380 |
subjects: string[];
|
|
381 |
authors: string[];
|
|
382 |
dates: Range[];
|
|
383 |
trust: Range;
|
|
384 |
page: number;
|
|
378 |
datasource: string; |
|
379 |
topic: string; |
|
380 |
titles: string[]; |
|
381 |
subjects: string[]; |
|
382 |
authors: string[]; |
|
383 |
dates: Range[]; |
|
384 |
trust: Range; |
|
385 |
page: number; |
|
385 | 386 |
} |
386 | 387 |
|
387 | 388 |
export class BrowseEntry implements Comparable<BrowseEntry>, IsSerializable { |
388 |
value: string;
|
|
389 |
size: number;
|
|
389 |
value: string; |
|
390 |
size: number; |
|
390 | 391 |
} |
391 | 392 |
|
392 | 393 |
export class ConditionParams implements IsSerializable { |
393 |
value: string;
|
|
394 |
otherValue: string;
|
|
394 |
value: string; |
|
395 |
otherValue: string; |
|
395 | 396 |
} |
396 | 397 |
|
397 | 398 |
export class OaBrokerRelatedDataset implements IsSerializable { |
398 |
openaireId: string;
|
|
399 |
originalId: string;
|
|
400 |
title: string;
|
|
401 |
collectedFrom: string;
|
|
402 |
pids: OaBrokerTypedValue[];
|
|
403 |
instances: OaBrokerInstance[];
|
|
399 |
openaireId: string; |
|
400 |
originalId: string; |
|
401 |
title: string; |
|
402 |
collectedFrom: string; |
|
403 |
pids: OaBrokerTypedValue[]; |
|
404 |
instances: OaBrokerInstance[]; |
|
404 | 405 |
} |
405 | 406 |
|
406 | 407 |
export class DatasourcesBroker implements IsSerializable { |
407 |
datasourcesOfUser: Tuple<BrowseEntry, string>[];
|
|
408 |
sharedDatasources: Tuple<BrowseEntry, string>[];
|
|
409 |
datasourcesOfOthers: Tuple<BrowseEntry, string>[];
|
|
408 |
datasourcesOfUser: Tuple<BrowseEntry, string>[]; |
|
409 |
sharedDatasources: Tuple<BrowseEntry, string>[]; |
|
410 |
datasourcesOfOthers: Tuple<BrowseEntry, string>[]; |
|
410 | 411 |
} |
411 | 412 |
|
412 | 413 |
export class OaBrokerRelatedDatasource implements IsSerializable { |
... | ... | |
417 | 418 |
} |
418 | 419 |
|
419 | 420 |
export class EventsPage implements IsSerializable { |
420 |
datasource: string;
|
|
421 |
topic: string;
|
|
422 |
currPage: number;
|
|
423 |
totalPages: number;
|
|
424 |
total: number;
|
|
425 |
values: OaBrokerEventPayload[];
|
|
421 |
datasource: string; |
|
422 |
topic: string; |
|
423 |
currPage: number; |
|
424 |
totalPages: number; |
|
425 |
total: number; |
|
426 |
values: OaBrokerEventPayload[]; |
|
426 | 427 |
} |
427 | 428 |
|
428 | 429 |
export class OaBrokerExternalReference implements IsSerializable { |
429 |
url: string;
|
|
430 |
sitename: string;
|
|
431 |
type: string;
|
|
432 |
refidentifier: string;
|
|
430 |
url: string; |
|
431 |
sitename: string; |
|
432 |
type: string; |
|
433 |
refidentifier: string; |
|
433 | 434 |
} |
434 | 435 |
|
435 | 436 |
export class OaBrokerInstance implements IsSerializable { |
436 |
url: string;
|
|
437 |
license: string;
|
|
438 |
hostedby: string;
|
|
439 |
instancetype: string;
|
|
437 |
url: string; |
|
438 |
license: string; |
|
439 |
hostedby: string; |
|
440 |
instancetype: string; |
|
440 | 441 |
} |
441 | 442 |
|
442 | 443 |
export class OaBrokerJournal implements IsSerializable { |
443 |
name: string;
|
|
444 |
issn: string;
|
|
445 |
eissn: string;
|
|
446 |
lissn: string;
|
|
444 |
name: string; |
|
445 |
issn: string; |
|
446 |
eissn: string; |
|
447 |
lissn: string; |
|
447 | 448 |
} |
448 | 449 |
|
449 | 450 |
export class MapConditions implements IsSerializable { |
450 |
field: string;
|
|
451 |
fieldType: MapValueType;
|
|
452 |
operator: ConditionOperator;
|
|
453 |
listParams: ConditionParams[];
|
|
451 |
field: string; |
|
452 |
fieldType: MapValueType; |
|
453 |
operator: ConditionOperator; |
|
454 |
listParams: ConditionParams[]; |
|
454 | 455 |
} |
455 | 456 |
|
456 | 457 |
export class OaBrokerEventPayload implements IsSerializable { |
457 |
result: OaBrokerMainEntity; // old publication: Publication; ??
|
|
458 |
highlight: OaBrokerMainEntity;
|
|
459 |
provenance: OaBrokerProvenance;
|
|
460 |
trust: number;
|
|
458 |
result: OaBrokerMainEntity; // old publication: Publication; ?? |
|
459 |
highlight: OaBrokerMainEntity; |
|
460 |
provenance: OaBrokerProvenance; |
|
461 |
trust: number; |
|
461 | 462 |
} |
462 | 463 |
|
463 | 464 |
export class OaBrokerAuthor implements IsSerializable { |
... | ... | |
466 | 467 |
} |
467 | 468 |
|
468 | 469 |
export class OpenaireSubscription implements IsSerializable { |
469 |
subscriber: string;
|
|
470 |
frequency: NotificationFrequency;
|
|
471 |
mode: NotificationMode;
|
|
472 |
query: AdvQueryObject;
|
|
470 |
subscriber: string; |
|
471 |
frequency: NotificationFrequency; |
|
472 |
mode: NotificationMode; |
|
473 |
query: AdvQueryObject; |
|
473 | 474 |
} |
474 | 475 |
|
475 | 476 |
export class OaBrokerTypedValue implements IsSerializable { |
476 |
value: string;
|
|
477 |
type: string;
|
|
477 |
value: string; |
|
478 |
type: string; |
|
478 | 479 |
} |
479 | 480 |
|
480 | 481 |
export class OaBrokerProject implements IsSerializable { |
481 |
openaireId: string;
|
|
482 |
code: string;
|
|
483 |
acronym: string;
|
|
484 |
title: string;
|
|
485 |
funder: string;
|
|
486 |
fundingProgram: string;
|
|
487 |
jurisdiction: string;
|
|
482 |
openaireId: string; |
|
483 |
code: string; |
|
484 |
acronym: string; |
|
485 |
title: string; |
|
486 |
funder: string; |
|
487 |
fundingProgram: string; |
|
488 |
jurisdiction: string; |
|
488 | 489 |
} |
489 | 490 |
|
490 | 491 |
export class OaBrokerProvenance implements IsSerializable { |
491 |
repositoryName: string;
|
|
492 |
repositoryType: string;
|
|
493 |
url: string;
|
|
494 |
id: string;
|
|
492 |
repositoryName: string; |
|
493 |
repositoryType: string; |
|
494 |
url: string; |
|
495 |
id: string; |
|
495 | 496 |
} |
496 | 497 |
|
497 | 498 |
export class OaBrokerRelatedPublication implements IsSerializable { |
... | ... | |
505 | 506 |
} |
506 | 507 |
|
507 | 508 |
export class OaBrokerMainEntity implements IsSerializable { |
508 |
openaireId: string;
|
|
509 |
originalId: string;
|
|
510 |
typology: string;
|
|
511 |
titles: string[];
|
|
512 |
abstracts: string[];
|
|
513 |
language: string;
|
|
514 |
subjects: OaBrokerTypedValue[];
|
|
515 |
creators: OaBrokerAuthor[];
|
|
516 |
publicationdate: string;
|
|
517 |
publisher: string;
|
|
518 |
embargoenddate: string;
|
|
519 |
contributor: string[];
|
|
520 |
journal: OaBrokerJournal;
|
|
521 |
pids: OaBrokerTypedValue[];
|
|
522 |
instances: OaBrokerInstance[];
|
|
523 |
externalReferences: OaBrokerExternalReference[];
|
|
524 |
publications: OaBrokerRelatedPublication[];
|
|
525 |
projects: OaBrokerProject[];
|
|
526 |
datasets: OaBrokerRelatedDataset[];
|
|
527 |
softwares: OaBrokerRelatedSoftware[];
|
|
528 |
datasources: OaBrokerRelatedDatasource[];
|
|
509 |
openaireId: string; |
|
510 |
originalId: string; |
|
511 |
typology: string; |
|
512 |
titles: string[]; |
|
513 |
abstracts: string[]; |
|
514 |
language: string; |
|
515 |
subjects: OaBrokerTypedValue[]; |
|
516 |
creators: OaBrokerAuthor[]; |
|
517 |
publicationdate: string; |
|
518 |
publisher: string; |
|
519 |
embargoenddate: string; |
|
520 |
contributor: string[]; |
|
521 |
journal: OaBrokerJournal; |
|
522 |
pids: OaBrokerTypedValue[]; |
|
523 |
instances: OaBrokerInstance[]; |
|
524 |
externalReferences: OaBrokerExternalReference[]; |
|
525 |
publications: OaBrokerRelatedPublication[]; |
|
526 |
projects: OaBrokerProject[]; |
|
527 |
datasets: OaBrokerRelatedDataset[]; |
|
528 |
softwares: OaBrokerRelatedSoftware[]; |
|
529 |
datasources: OaBrokerRelatedDatasource[]; |
|
529 | 530 |
} |
530 | 531 |
|
531 | 532 |
export class Range implements IsSerializable { |
532 |
min: string;
|
|
533 |
max: string;
|
|
533 |
min: string; |
|
534 |
max: string; |
|
534 | 535 |
} |
535 | 536 |
|
536 | 537 |
export class SimpleSubscriptionDesc implements IsSerializable { |
537 |
id: string;
|
|
538 |
datasource: string;
|
|
539 |
topic: string;
|
|
540 |
count: number;
|
|
541 |
creationDate: Date;
|
|
542 |
lastNotificationDate: Date;
|
|
538 |
id: string; |
|
539 |
datasource: string; |
|
540 |
topic: string; |
|
541 |
count: number; |
|
542 |
creationDate: Date; |
|
543 |
lastNotificationDate: Date; |
|
543 | 544 |
} |
544 | 545 |
|
545 | 546 |
export class OaBrokerRelatedSoftware implements IsSerializable { |
... | ... | |
551 | 552 |
} |
552 | 553 |
|
553 | 554 |
export class Subscription implements IsSerializable { |
554 |
subscriptionId: string;
|
|
555 |
subscriber: string;
|
|
556 |
topic: string;
|
|
557 |
frequency: NotificationFrequency;
|
|
558 |
mode: NotificationMode;
|
|
559 |
creationDate: Date;
|
|
560 |
lastNotificationDate: Date;
|
|
561 |
conditions: string;
|
|
562 |
conditionsAsList: MapConditions[];
|
|
555 |
subscriptionId: string; |
|
556 |
subscriber: string; |
|
557 |
topic: string; |
|
558 |
frequency: NotificationFrequency; |
|
559 |
mode: NotificationMode; |
|
560 |
creationDate: Date; |
|
561 |
lastNotificationDate: Date; |
|
562 |
conditions: string; |
|
563 |
conditionsAsList: MapConditions[]; |
|
563 | 564 |
} |
564 | 565 |
|
565 | 566 |
export class LayoutField { |
566 |
name: string;
|
|
567 |
xpath: string;
|
|
568 |
type: string;
|
|
569 |
indexable: boolean;
|
|
570 |
result: boolean;
|
|
571 |
stat: boolean;
|
|
572 |
tokenizable: boolean;
|
|
567 |
name: string; |
|
568 |
xpath: string; |
|
569 |
type: string; |
|
570 |
indexable: boolean; |
|
571 |
result: boolean; |
|
572 |
stat: boolean; |
|
573 |
tokenizable: boolean; |
|
573 | 574 |
} |
574 | 575 |
|
575 | 576 |
export interface IsSerializable { |
... | ... | |
582 | 583 |
} |
583 | 584 |
|
584 | 585 |
export class EPR { |
585 |
epr: string;
|
|
586 |
address: string;
|
|
587 |
serviceName: string;
|
|
588 |
endpointName: string;
|
|
589 |
parameterNames: string[];
|
|
586 |
epr: string; |
|
587 |
address: string; |
|
588 |
serviceName: string; |
|
589 |
endpointName: string; |
|
590 |
parameterNames: string[]; |
|
590 | 591 |
} |
591 | 592 |
|
592 | 593 |
export class Tuple<K, V> implements IsSerializable { |
593 |
first: K;
|
|
594 |
second: V;
|
|
594 |
first: K; |
|
595 |
second: V; |
|
595 | 596 |
} |
596 | 597 |
|
597 | 598 |
export interface Comparator<T> { |
... | ... | |
600 | 601 |
export interface Comparable<T> { |
601 | 602 |
} |
602 | 603 |
|
603 |
export type ConditionOperator = "EXACT" | "MATCH_ANY" | "MATCH_ALL" | "RANGE";
|
|
604 |
export type ConditionOperator = 'EXACT' | 'MATCH_ANY' | 'MATCH_ALL' | 'RANGE';
|
|
604 | 605 |
|
605 |
export type MapValueType = "STRING" | "INTEGER" | "FLOAT" | "DATE" | "BOOLEAN" | "LIST_STRING" | "LIST_INTEGER" | "LIST_FLOAT" | "LIST_DATE" | "LIST_BOOLEAN"; |
|
606 |
export type MapValueType = |
|
607 |
'STRING' |
|
608 |
| 'INTEGER' |
|
609 |
| 'FLOAT' |
|
610 |
| 'DATE' |
|
611 |
| 'BOOLEAN' |
|
612 |
| 'LIST_STRING' |
|
613 |
| 'LIST_INTEGER' |
|
614 |
| 'LIST_FLOAT' |
|
615 |
| 'LIST_DATE' |
|
616 |
| 'LIST_BOOLEAN'; |
|
606 | 617 |
|
607 |
export type NotificationFrequency = "never" | "realtime" | "daily" | "weekly" | "monthly";
|
|
618 |
export type NotificationFrequency = 'never' | 'realtime' | 'daily' | 'weekly' | 'monthly';
|
|
608 | 619 |
|
609 |
export type NotificationMode = "MOCK" | "EMAIL";
|
|
620 |
export type NotificationMode = 'MOCK' | 'EMAIL';
|
|
610 | 621 |
|
611 |
export type Action = "CREATE" | "DELETE" | "UPDATE" | "MANAGE" | "RELEASE" | "CANCEL";
|
|
622 |
export type Action = 'CREATE' | 'DELETE' | 'UPDATE' | 'MANAGE' | 'RELEASE' | 'CANCEL';
|
|
612 | 623 |
|
613 |
export type ActionStatus = "DONE" | "ONGOING" | "FAILED" | "WAITING" | "ASSIGNED";
|
|
624 |
export type ActionStatus = 'DONE' | 'ONGOING' | 'FAILED' | 'WAITING' | 'ASSIGNED';
|
|
614 | 625 |
|
615 | 626 |
|
616 |
|
|
617 | 627 |
export class Country { |
618 | 628 |
name: string; |
619 | 629 |
code: string; |
... | ... | |
681 | 691 |
lastTransformation: AggregationDetails[]; |
682 | 692 |
} |
683 | 693 |
|
684 |
export class UserInfo implements IsSerializable {
|
|
694 |
export class UserInfo implements IsSerializable { |
|
685 | 695 |
sub: string; |
686 | 696 |
role: string[]; |
687 | 697 |
name: string; |
... | ... | |
732 | 742 |
lastName: string; |
733 | 743 |
email: string; |
734 | 744 |
} |
745 |
|
|
746 |
export class OrganizationDetails { |
|
747 |
legalshortname: string; |
|
748 |
legalname: string; |
|
749 |
websiteurl: string; |
|
750 |
logourl: string; |
|
751 |
country: string; |
|
752 |
} |
|
753 |
|
|
754 |
export class IdentitiesDetails { |
|
755 |
pid: string; |
|
756 |
issuertype: string; |
|
757 |
} |
modules/uoa-repository-dashboard-gui/trunk/src/app/pages/adminPg/adminPg-registrations.component.html | ||
---|---|---|
121 | 121 |
<!-- REPOSITORY CARD --> |
122 | 122 |
<div *ngFor="let res of repositorySnippet" class="md-card repositoryCard"> |
123 | 123 |
<div class="md-card-content large-padding"> |
124 |
<div class="uk-text-meta">{{res.typology.split('::')[0]}} {{res.typology.split('::')[1]}} {{res.typology.split('::')[2]}}</div>
|
|
124 |
<div class="uk-text-meta">{{res.eoscDatasourceType.split('::')[0]}} {{res.eoscDatasourceType.split('::')[1]}} {{res.eoscDatasourceType.split('::')[2]}}</div>
|
|
125 | 125 |
<div class="repositoryCardHeader uk-margin-bottom uk-margin-small-top"><a [routerLink]="['/repositoryAdmin/' + res.id]">{{res.officialname}}</a></div> |
126 | 126 |
<div class="uk-margin-small-bottom"><span class="uk-badge uk-badge-primary uk-badge-notification uk-margin-small-right">ID</span>{{res.id}}</div> |
127 | 127 |
<div class="uk-margin-small-bottom"><span class="uk-badge uk-badge-primary uk-badge-notification uk-margin-small-right">RM</span>{{res.registeredby}}</div> |
modules/uoa-repository-dashboard-gui/trunk/src/app/shared/reusablecomponents/sources-forms/datasource-create-form.component.ts | ||
---|---|---|
41 | 41 |
countries: Country[] = []; |
42 | 42 |
datasourceClasses: Map<string, string> = new Map<string, string>(); |
43 | 43 |
classCodes: string[] = []; |
44 |
// classCodes: string[] = []; |
|
44 | 45 |
|
45 | 46 |
@Input() mode: string; |
46 | 47 |
|
... | ... | |
57 | 58 |
softwarePlatform : ['', Validators.required], |
58 | 59 |
platformName : '', |
59 | 60 |
officialName : ['', Validators.required], |
60 |
issn : ['', [Validators.pattern('^\\d{4}-\\d{3}[\\dxX]$')] ],
|
|
61 |
eissn : ['', Validators.pattern('^\\d{4}-\\d{3}[\\dxX]$') ],
|
|
62 |
lissn : ['', Validators.pattern('^\\d{4}-\\d{3}[\\dxX]$') ],
|
|
61 |
issn : ['', [Validators.pattern('^(\\d{4}-\\d{3}[\\dxX])|([0-9]{7}[\\dxX]$)')] ],
|
|
62 |
eissn : ['', Validators.pattern('^(\\d{4}-\\d{3}[\\dxX])|([0-9]{7}[\\dxX]$)') ],
|
|
63 |
lissn : ['', Validators.pattern('^(\\d{4}-\\d{3}[\\dxX])|([0-9]{7}[\\dxX]$)') ],
|
|
63 | 64 |
repoDescription : ['', Validators.required], |
64 | 65 |
country : ['', Validators.required], |
65 | 66 |
longtitude : ['', [Validators.required, Validators.min(-180), Validators.max(180)] ], |
... | ... | |
110 | 111 |
this.group = this.fb.group(this.groupDefinition); |
111 | 112 |
if (this.mode === 'journal') { |
112 | 113 |
this.group.get('issn').clearValidators(); |
113 |
this.group.get('issn').setValidators([Validators.required, Validators.pattern('^\\d{4}-\\d{3}[\\dxX]$')]);
|
|
114 |
this.group.get('issn').setValidators([Validators.required, Validators.pattern('^(\\d{4}-\\d{3}[\\dxX])|([0-9]{7}[\\dxX]$)')]);
|
|
114 | 115 |
} |
115 | 116 |
this.getTypologies(); |
116 | 117 |
this.getTimezones(); |
... | ... | |
124 | 125 |
|
125 | 126 |
setupForm() { |
126 | 127 |
if (this.selectedRepo) { |
127 |
console.log(`my datasource type is: ${this.selectedRepo.datasourceType}`);
|
|
128 |
console.log(`my datasource type is: ${this?.selectedRepo?.eoscDatasourceType}`);
|
|
128 | 129 |
|
129 | 130 |
this.group.setValue({ |
130 |
softwarePlatform: this.selectedRepo.typology,
|
|
131 |
softwarePlatform: this.selectedRepo.platform,
|
|
131 | 132 |
platformName: '', |
132 |
officialName: this.selectedRepo.officialName,
|
|
133 |
officialName: this.selectedRepo.officialname,
|
|
133 | 134 |
issn: '', |
134 | 135 |
eissn: '', |
135 | 136 |
lissn: '', |
136 | 137 |
repoDescription: this.selectedRepo.description, |
137 |
country: this.selectedRepo.countryCode,
|
|
138 |
country: this.selectedRepo.organizations[0].country, // countryCode
|
|
138 | 139 |
longtitude: this.selectedRepo.longitude, |
139 | 140 |
latitude: this.selectedRepo.latitude, |
140 |
websiteUrl: this.selectedRepo.websiteUrl,
|
|
141 |
institutionName: this.selectedRepo.organization, |
|
142 |
englishName: this.selectedRepo.englishName,
|
|
143 |
logoUrl: this.selectedRepo.logoUrl,
|
|
141 |
websiteUrl: this.selectedRepo.websiteurl,
|
|
142 |
institutionName: this.selectedRepo.organizations[0].legalname,
|
|
143 |
englishName: this.selectedRepo.englishname,
|
|
144 |
logoUrl: this.selectedRepo.logourl,
|
|
144 | 145 |
timezone: this.selectedRepo.timezone, |
145 |
datasourceType: this.selectedRepo.datasourceClass,
|
|
146 |
adminEmail: this.selectedRepo.contactEmail
|
|
146 |
datasourceType: this.selectedRepo.eoscDatasourceType, // TODO: still needed?
|
|
147 |
adminEmail: this.selectedRepo.contactemail
|
|
147 | 148 |
}); |
148 | 149 |
|
149 |
if (this.selectedRepo.datasourceType === 'journal') {
|
|
150 |
if (this.selectedRepo.eoscDatasourceType === 'Journal archive') {
|
|
150 | 151 |
|
151 | 152 |
let ssnToShow = this.selectedRepo.issn.slice(0, 4) + '-' + this.selectedRepo.issn.toString().slice(4); |
152 | 153 |
this.group.get('issn').setValue(ssnToShow); |
... | ... | |
185 | 186 |
|
186 | 187 |
getDatasourceClasses() { |
187 | 188 |
this.repoService.getDatasourceClasses(this.mode).subscribe( |
188 |
classes => this.datasourceClasses = classes, |
|
189 |
classes => { |
|
190 |
for (const [key, value] of Object.entries(classes)) { |
|
191 |
this.datasourceClasses.set(key, value); |
|
192 |
} |
|
193 |
}, |
|
189 | 194 |
error => { |
190 | 195 |
this.errorMessage = noServiceMessage; |
191 | 196 |
console.log(error); |
192 | 197 |
}, |
193 | 198 |
() => { |
194 |
for (const key of Object.keys(this.datasourceClasses)) { |
|
195 |
this.classCodes.push(key); |
|
196 |
} |
|
199 |
this.classCodes = Array.from(this.datasourceClasses.keys()); |
|
197 | 200 |
} |
198 | 201 |
); |
199 | 202 |
} |
... | ... | |
227 | 230 |
} |
228 | 231 |
|
229 | 232 |
createNewRepository(): Repository { |
230 |
const newRepo: Repository = new Repository(); |
|
231 |
newRepo.officialName = this.group.get('officialName').value.toString(); |
|
232 |
newRepo.englishName = this.group.get('englishName').value.toString(); |
|
233 |
newRepo.websiteUrl = this.group.get('websiteUrl').value; |
|
234 |
newRepo.logoUrl = this.group.get('logoUrl').value; |
|
235 |
newRepo.contactEmail = this.group.get('adminEmail').value; |
|
236 |
newRepo.countryName = this.countries.filter(x => x.code === this.group.get('country').value)[0].name; |
|
237 |
newRepo.countryCode = this.group.get('country').value; |
|
238 |
newRepo.organization = this.group.get('institutionName').value.toString(); |
|
233 |
const newRepo = new Repository(); |
|
234 |
newRepo.officialname = this.group.get('officialName').value.toString(); |
|
235 |
newRepo.englishname = this.group.get('englishName').value.toString(); |
|
236 |
newRepo.websiteurl = this.group.get('websiteUrl').value; |
|
237 |
newRepo.logourl = this.group.get('logoUrl').value; |
|
238 |
newRepo.contactemail = this.group.get('adminEmail').value; |
|
239 |
newRepo.organizations.push({ |
|
240 |
legalshortname: null, |
|
241 |
legalname: this.group.get('institutionName').value.toString(), |
|
242 |
websiteurl: null, |
|
243 |
logourl: null, |
|
244 |
country: this.group.get('country').value |
|
245 |
}); |
|
239 | 246 |
newRepo.latitude = this.group.get('latitude').value; |
240 | 247 |
newRepo.longitude = this.group.get('longtitude').value; |
241 | 248 |
newRepo.timezone = this.group.get('timezone').value; |
242 |
newRepo.datasourceClass = this.group.get('datasourceType').value;
|
|
243 |
if (this.group.get('softwarePlatform').value ) {
|
|
244 |
newRepo.typology = this.group.get('softwarePlatform').value;
|
|
249 |
if (this.group.get('softwarePlatform').value !== '') {
|
|
250 |
console.log('1//', this.group.get('softwarePlatform').value);
|
|
251 |
newRepo.platform = this.group.get('softwarePlatform').value;
|
|
245 | 252 |
} else if (this.group.get('platformName').value) { |
246 |
newRepo.typology = this.group.get('platformName').value; |
|
253 |
newRepo.platform = this.group.get('platformName').value; |
|
254 |
console.log('2//', this.group.get('platformName').value); |
|
247 | 255 |
} |
248 |
// newRepo.typology = this.group.get('softwarePlatform').value; |
|
256 |
newRepo.typology = this.group.get('datasourceType').value; |
|
257 |
// newRepo.eoscDatasourceType = this.datasourceClasses.get(this.group.get('datasourceType').value); |
|
258 |
// console.warn(newRepo.eoscDatasourceType); |
|
249 | 259 |
newRepo.description = this.group.get('repoDescription').value.toString(); |
250 | 260 |
newRepo.issn = ''; |
251 | 261 |
newRepo.eissn = ''; |
... | ... | |
267 | 277 |
} |
268 | 278 |
} |
269 | 279 |
|
270 |
newRepo.registeredBy = this.authService.getUserEmail();
|
|
280 |
newRepo.registeredby = this.authService.getUserEmail();
|
|
271 | 281 |
|
272 | 282 |
/* THE BELOW FIELDS ARE NOT SET IN GWT CODE*/ |
273 |
newRepo.datasourceType = this.mode; |
|
274 |
newRepo.dateOfCreation = new Date(Date.now()); // NOT NEEDED ?? |
|
275 |
newRepo.registered = true; |
|
276 |
newRepo.registrationDate = new Date(Date.now()); // NOT NEEDED ?? |
|
283 |
newRepo.eoscDatasourceType = this.mode; // TODO: delete this? |
|
284 |
console.warn(newRepo.eoscDatasourceType); |
|
285 |
newRepo.managed = true; |
|
277 | 286 |
|
287 |
const now = new Date(Date.now()); |
|
288 |
newRepo.consentTermsOfUseDate = now; |
|
289 |
newRepo.lastConsentTermsOfUseDate = now; |
|
290 |
newRepo.registrationdate = now; |
|
278 | 291 |
return newRepo; |
279 | 292 |
} |
280 | 293 |
|
modules/uoa-repository-dashboard-gui/trunk/src/app/shared/reusablecomponents/sources-forms/datasource-new-interface-form.component.ts | ||
---|---|---|
1 | 1 |
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; |
2 | 2 |
import { FormBuilder, FormGroup, Validators } from '@angular/forms'; |
3 | 3 |
import { baseUrlDesc, compatibilityLevelDesc, customValSetDesc, Description, existingValSetDesc, commentDesc } from '../../../domain/oa-description'; |
4 |
import { InterfaceInformation, RepositoryInterface } from '../../../domain/typeScriptClasses';
|
|
4 |
import {ApiParamDetails, InterfaceInformation, RepositoryInterface} from '../../../domain/typeScriptClasses';
|
|
5 | 5 |
import { ValidatorService } from '../../../services/validator.service'; |
6 | 6 |
import { RepositoryService } from '../../../services/repository.service'; |
7 | 7 |
import { formErrorWasntSaved, formInfoLoading, formSubmitting, formSuccessAddedInterface, formSuccessUpdatedInterface, invalidCustomBaseUrl, |
... | ... | |
37 | 37 |
|
38 | 38 |
repoInterfaceForm: FormGroup; |
39 | 39 |
readonly repoInterfaceFormDef = { |
40 |
baseUrl: ['', Validators.required],
|
|
40 |
baseurl: ['', Validators.required],
|
|
41 | 41 |
selectValidationSet: [''], |
42 | 42 |
customValidationSet: [''], |
43 | 43 |
compatibilityLevel: [''], |
... | ... | |
71 | 71 |
this.chooseValSet(true); |
72 | 72 |
if (this.data[3]) { |
73 | 73 |
this.currentInterface = this.data[3]; |
74 |
this.repoInterfaceForm.get('baseUrl').setValue(this.currentInterface.baseUrl);
|
|
75 |
this.repoInterfaceForm.get('compatibilityLevel').setValue(this.currentInterface.desiredCompatibilityLevel);
|
|
74 |
this.repoInterfaceForm.get('baseurl').setValue(this.currentInterface.baseurl);
|
|
75 |
this.repoInterfaceForm.get('compatibilityLevel').setValue(this.currentInterface.compatibilityOverride);
|
|
76 | 76 |
} |
77 | 77 |
this.getInterfaceInfo(); |
78 | 78 |
this.getCompatibilityClasses(); |
... | ... | |
84 | 84 |
this.successMessage = ''; |
85 | 85 |
this.errorMessage = ''; |
86 | 86 |
|
87 |
const baseUrl = this.repoInterfaceForm.get('baseUrl').value;
|
|
88 |
if (baseUrl) {
|
|
87 |
const baseurl = this.repoInterfaceForm.get('baseurl').value;
|
|
88 |
if (baseurl) {
|
|
89 | 89 |
this.loadingMessage = formInfoLoading; |
90 |
this.valService.getInterfaceInformation(baseUrl).subscribe(
|
|
90 |
this.valService.getInterfaceInformation(baseurl).subscribe(
|
|
91 | 91 |
info => { |
92 | 92 |
this.interfaceInfo = info; |
93 | 93 |
if (this.interfaceInfo.identified) { |
... | ... | |
95 | 95 |
this.showIdentifiedBaseUrl = true; |
96 | 96 |
} else { |
97 | 97 |
this.errorMessage = invalidCustomBaseUrl; |
98 |
this.identifiedBaseUrl = true; // pass interface without baseUrl identification
|
|
98 |
this.identifiedBaseUrl = true; // pass interface without baseurl identification
|
|
99 | 99 |
this.showIdentifiedBaseUrl = false; |
100 | 100 |
} |
101 | 101 |
if (this.interfaceInfo.sets) { |
102 | 102 |
this.valsetList = this.interfaceInfo.sets; |
103 |
console.log(this.valsetList); |
|
103 |
// console.log(this.valsetList);
|
|
104 | 104 |
} |
105 | 105 |
}, |
106 | 106 |
error => { |
... | ... | |
110 | 110 |
this.errorMessage = noServiceMessage; |
111 | 111 |
}, |
112 | 112 |
() => { |
113 |
if ( this.currentInterface && this.currentInterface.accessParams && this.currentInterface.accessParams['set'] ) {
|
|
114 |
if ( this.valsetList.some( x => x === this.currentInterface.accessParams['set']) ) {
|
|
115 |
this.repoInterfaceForm.get('selectValidationSet').setValue(this.currentInterface.accessParams['set']);
|
|
113 |
if ( this.currentInterface && this.currentInterface.apiParams && this.currentInterface.apiParams.find(entry => entry.param === 'set')) {
|
|
114 |
if ( this.valsetList.some( x => x === this.currentInterface.apiParams['set']) ) {
|
|
115 |
this.repoInterfaceForm.get('selectValidationSet').setValue(this.currentInterface.apiParams.find(entry => entry.param === 'set').value);
|
|
116 | 116 |
} else { |
117 |
this.repoInterfaceForm.get('customValidationSet').setValue(this.currentInterface.accessParams['set']);
|
|
117 |
this.repoInterfaceForm.get('customValidationSet').setValue(this.currentInterface.apiParams.find(entry => entry.param === 'set').value);
|
|
118 | 118 |
} |
119 | 119 |
} |
120 | 120 |
this.loadingMessage = ''; |
... | ... | |
148 | 148 |
|
149 | 149 |
getExistingCompatibilityLevel() { |
150 | 150 |
if (this.currentInterface) { |
151 |
if (this.currentInterface.desiredCompatibilityLevel &&
|
|
152 |
this.classCodes.some( x => x === this.currentInterface.desiredCompatibilityLevel ) ) {
|
|
153 |
this.existingCompLevel = this.compClasses[this.currentInterface.desiredCompatibilityLevel];
|
|
151 |
if (this.currentInterface.compatibilityOverride &&
|
|
152 |
this.classCodes.some( x => x === this.currentInterface.compatibilityOverride ) ) {
|
|
153 |
this.existingCompLevel = this.compClasses[this.currentInterface.compatibilityOverride];
|
|
154 | 154 |
} else { |
155 | 155 |
this.repoInterfaceForm.get('compatibilityLevel').setValue(''); |
156 |
this.existingCompLevel = this.currentInterface.desiredCompatibilityLevel;
|
|
156 |
this.existingCompLevel = this.currentInterface.compatibilityOverride;
|
|
157 | 157 |
} |
158 | 158 |
} |
159 | 159 |
} |
... | ... | |
199 | 199 |
this.errorMessage = ''; |
200 | 200 |
this.successMessage = ''; |
201 | 201 |
if (this.formIsValid()) { |
202 |
const baseUrl = this.repoInterfaceForm.get('baseUrl').value;
|
|
202 |
const baseurl = this.repoInterfaceForm.get('baseurl').value;
|
|
203 | 203 |
let valset = ''; |
204 | 204 |
if (this.existingValSet) { |
205 | 205 |
valset = this.repoInterfaceForm.get('selectValidationSet').value; |
... | ... | |
220 | 220 |
} |
221 | 221 |
|
222 | 222 |
if (this.currentInterface) { |
223 |
this.updateCurrent(baseUrl, valset, compLvl, comment);
|
|
223 |
this.updateCurrent(baseurl, valset, compLvl, comment);
|
|
224 | 224 |
} else { |
225 |
this.addCurrent(baseUrl, valset, compLvl, comment);
|
|
225 |
this.addCurrent(baseurl, valset, compLvl, comment);
|
|
226 | 226 |
} |
227 | 227 |
} else { |
228 | 228 |
this.interfaceToExport = null; |
... | ... | |
231 | 231 |
} |
232 | 232 |
|
233 | 233 |
getCurrentValues() { |
234 |
console.log('getcurrentvalues'); |
|
234 | 235 |
let intrf = this.currentInterface; |
235 | 236 |
if (intrf == null) { |
236 | 237 |
intrf = new RepositoryInterface(); |
237 | 238 |
} |
238 |
intrf.baseUrl = this.repoInterfaceForm.get('baseUrl').value; |
|
239 |
if (this.existingValSet) { |
|
240 |
intrf.accessSet = this.repoInterfaceForm.get('selectValidationSet').value; |
|
241 |
intrf.accessParams = {'set': this.repoInterfaceForm.get('selectValidationSet').value}; |
|
242 |
} else { |
|
243 |
intrf.accessSet = this.repoInterfaceForm.get('customValidationSet').value; |
|
244 |
intrf.accessParams = {'set': this.repoInterfaceForm.get('customValidationSet').value}; |
|
245 |
} |
|
239 |
intrf.baseurl = this.repoInterfaceForm.get('baseurl').value; |
|
240 |
this.updateValidationSet(intrf, this.repoInterfaceForm.get(this.existingValSet ? 'selectValidationSet' : 'customValidationSet').value); |
|
241 |
console.log(intrf); |
|
246 | 242 |
if (this.repoInterfaceForm.get('compatibilityLevel').value) { |
247 |
intrf.desiredCompatibilityLevel = this.repoInterfaceForm.get('compatibilityLevel').value;
|
|
248 |
intrf.compliance = this.repoInterfaceForm.get('compatibilityLevel').value;
|
|
243 |
intrf.compatibilityOverride = this.repoInterfaceForm.get('compatibilityLevel').value;
|
|
244 |
intrf.compatibility = this.repoInterfaceForm.get('compatibilityLevel').value;
|
|
249 | 245 |
} else { |
250 |
intrf.desiredCompatibilityLevel = this.existingCompLevel;
|
|
251 |
intrf.compliance = this.existingCompLevel;
|
|
246 |
intrf.compatibilityOverride = this.existingCompLevel;
|
|
247 |
intrf.compatibility = this.existingCompLevel;
|
|
252 | 248 |
} |
253 | 249 |
intrf.typology = this.currentRepo.datasourceClass; |
254 | 250 |
|
255 | 251 |
return intrf; |
256 | 252 |
} |
257 | 253 |
|
Also available in: Unified diff
svn merge -r 62321:HEAD http://svn.driver.research-infrastructures.eu/driver/dnet45/modules/uoa-repository-dashboard-gui/branches/new-datasource-mode