Project

General

Profile

« Previous | Next » 

Revision 62389

View differences:

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}&registeredBy=${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

  
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff