diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/DatasetWizardController.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/DatasetWizardController.java index 9e2cfec16..0fe93362b 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/DatasetWizardController.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/DatasetWizardController.java @@ -77,8 +77,7 @@ public class DatasetWizardController extends BaseController { public @ResponseBody ResponseEntity> getSingle(@PathVariable String id, @ClaimedAuthorities(claims = {ANONYMOUS}) Principal principal) { try { - DatasetWizardModel dataset = new DatasetManager().getSingle(this.getApiContext().getOperationsContext().getDatabaseRepository().getDatasetDao(), this.getApiContext().getOperationsContext().getDatasetRepository() - , id); + DatasetWizardModel dataset = new DatasetManager().getSingle(this.getApiContext().getOperationsContext().getDatabaseRepository().getDatasetDao(), this.getApiContext().getOperationsContext().getDatasetRepository(), id); return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().status(ApiMessageCode.NO_MESSAGE).payload(dataset)); } catch (Exception ex) { ex.printStackTrace(); diff --git a/dmp-frontend/src/app/app.component.ts b/dmp-frontend/src/app/app.component.ts index f67d2bb2c..601db7867 100644 --- a/dmp-frontend/src/app/app.component.ts +++ b/dmp-frontend/src/app/app.component.ts @@ -78,7 +78,7 @@ export class AppComponent implements OnInit { // this language will be used as a fallback when a translation isn't found in the current language this.translate.setDefaultLang('en'); - this.cultureService.cultureSelected(environment.defaultCulture); + this.authentication.current() ? this.cultureService.cultureSelected(this.authentication.current().culture) : this.cultureService.cultureSelected(environment.defaultCulture); //this.setupChangeListeners(); } diff --git a/dmp-frontend/src/app/app.module.ts b/dmp-frontend/src/app/app.module.ts index e01fcfabf..2f8c76a13 100644 --- a/dmp-frontend/src/app/app.module.ts +++ b/dmp-frontend/src/app/app.module.ts @@ -110,12 +110,12 @@ import { CultureService } from './utilities/culture/culture-service'; { provide: MAT_DATE_LOCALE, deps: [CultureService], - useFactory: (cultureService) => cultureService.getCurrentCulture().name + useFactory: (cultureService) => cultureService.getCurrentCulture() }, { provide: LOCALE_ID, deps: [CultureService], - useFactory: (cultureService) => cultureService.getCurrentCulture().name + useFactory: (cultureService) => cultureService.getCurrentCulture() }, ], bootstrap: [AppComponent] diff --git a/dmp-frontend/src/app/datasets/dataset-public/dataset-public-listing.component.ts b/dmp-frontend/src/app/datasets/dataset-public/dataset-public-listing.component.ts index eb7d5882b..68b3e0d68 100644 --- a/dmp-frontend/src/app/datasets/dataset-public/dataset-public-listing.component.ts +++ b/dmp-frontend/src/app/datasets/dataset-public/dataset-public-listing.component.ts @@ -50,6 +50,7 @@ export class DatasetPublicListingComponent implements OnInit { ngOnInit() { + this.route.params.subscribe(async (params: Params) => { this.dmpId = params['dmpId']; this.criteria.setCriteria(this.getDefaultCriteria(this.dmpId)); @@ -68,7 +69,7 @@ export class DatasetPublicListingComponent implements OnInit { } rowClick(rowId: String) { - this.router.navigate(['/datasets/edit/' + rowId]); + this.router.navigate(['/datasets/publicEdit/' + rowId]); } getDefaultCriteria(dmpId: String): DatasetCriteria { diff --git a/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.html b/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.html index bc0f0d055..6a525e23f 100644 --- a/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.html +++ b/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.html @@ -36,7 +36,8 @@ @@ -54,7 +55,7 @@ @@ -87,7 +88,7 @@ @@ -129,7 +130,7 @@ @@ -156,7 +157,7 @@ @@ -183,7 +184,7 @@ @@ -204,7 +205,8 @@ @@ -213,7 +215,8 @@ diff --git a/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.ts b/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.ts index 9117adeb6..813a6d1fc 100644 --- a/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.ts +++ b/dmp-frontend/src/app/datasets/dataset-wizard/dataset-wizard.component.ts @@ -46,8 +46,8 @@ import { DataManagementPlanListingModel } from '../../models/data-managemnt-plan }) export class DatasetWizardComponent implements OnInit, IBreadCrumbComponent { breadCrumbs: Observable; + viewOnly = false; @ViewChild('stepper') stepper: MatStepper; - //autocomplete Display Functions; externalDatasetDisplayFunc = (item) => item ? item.label : null; registriesDisplayFunc = (item) => item ? item.label : null; @@ -100,6 +100,12 @@ export class DatasetWizardComponent implements OnInit, IBreadCrumbComponent { secondFormGroup: FormGroup; ngOnInit() { + + + this.route + .data + .subscribe(v => this.viewOnly = v["public"]); + let dmpRequestItem: RequestItem = new RequestItem(); dmpRequestItem.criteria = new DataManagementPlanCriteria(); @@ -168,6 +174,7 @@ export class DatasetWizardComponent implements OnInit, IBreadCrumbComponent { ] }]) this.formGroup = this.datasetWizardModel.buildForm(); + if (this.viewOnly) this.formGroup.disable(); this.loadDatasetProfiles(); }); } else if (dmpId != null) { @@ -202,6 +209,8 @@ export class DatasetWizardComponent implements OnInit, IBreadCrumbComponent { } else { this.datasetWizardModel = new DatasetWizardModel(); this.formGroup = this.datasetWizardModel.buildForm() + if (this.viewOnly) this.formGroup.disable(); + this.formGroup.get('dmp').valueChanges.subscribe(x => { this.loadDatasetProfiles(); }) diff --git a/dmp-frontend/src/app/datasets/dataset.routes.ts b/dmp-frontend/src/app/datasets/dataset.routes.ts index 2381287dd..abca900b7 100644 --- a/dmp-frontend/src/app/datasets/dataset.routes.ts +++ b/dmp-frontend/src/app/datasets/dataset.routes.ts @@ -16,10 +16,19 @@ export const DatasetRoutes: Routes = [ { path: "edit/:id", component: DatasetWizardComponent, + canActivate: [AuthGuard], + data: { + breadcrumb: true, + public: false + }, + }, + { + path: "publicEdit/:id", + component: DatasetWizardComponent, //canActivate: [AuthGuard], data: { - breadcrumb: true - }, + public: true + } }, { path: "new", diff --git a/dmp-frontend/src/app/form/dynamic-form/dynamic-form.component.html b/dmp-frontend/src/app/form/dynamic-form/dynamic-form.component.html index 3e913d2d6..e98248d79 100644 --- a/dmp-frontend/src/app/form/dynamic-form/dynamic-form.component.html +++ b/dmp-frontend/src/app/form/dynamic-form/dynamic-form.component.html @@ -44,4 +44,4 @@ - \ No newline at end of file + diff --git a/dmp-frontend/src/app/form/dynamic-form/dynamic-form.component.ts b/dmp-frontend/src/app/form/dynamic-form/dynamic-form.component.ts index 9ddbc5678..a27e6c426 100644 --- a/dmp-frontend/src/app/form/dynamic-form/dynamic-form.component.ts +++ b/dmp-frontend/src/app/form/dynamic-form/dynamic-form.component.ts @@ -32,6 +32,7 @@ export class DynamicFormComponent implements OnInit { @Input() path: string; @Input() form: FormGroup; id: string; + // @Input() datasetId: string; pathName: string; pages: Array; @@ -58,6 +59,7 @@ export class DynamicFormComponent implements OnInit { ngOnInit() { + let rules: Rule[] = JsonSerializer.fromJSONArray(this.dataModel.datasetProfileDefinition.rules, Rule); this.visibilityRulesService.formGroup = this.form; this.visibilityRulesService.buildVisibilityRules(rules) diff --git a/dmp-frontend/src/app/projects/projects.module.ts b/dmp-frontend/src/app/projects/projects.module.ts index df39fc1df..5f332f4f1 100644 --- a/dmp-frontend/src/app/projects/projects.module.ts +++ b/dmp-frontend/src/app/projects/projects.module.ts @@ -10,12 +10,14 @@ import { CommonModule } from '@angular/common'; import { SharedModule } from '../shared/shared.module' -import { NgModule } from '@angular/core'; +import { NgModule, LOCALE_ID } from '@angular/core'; import { ProjectService } from '../services/project/project.service'; import { ProjectFileUploaderService } from '../services/files/project-file-uploader.service'; import { RouterModule } from '@angular/router'; import { BaseHttpModule } from '../utilities/cite-http-service-module/cite-http.module'; import { MaterialModule } from '../shared/material/material.module'; +import { CultureService } from '../utilities/culture/culture-service'; +import { MAT_DATE_LOCALE } from '@angular/material'; @NgModule({ imports: [ @@ -50,6 +52,17 @@ import { MaterialModule } from '../shared/material/material.module'; ProjectService, ProjectFileUploaderService, /* ProjectResolver */ + CultureService, + { + provide: MAT_DATE_LOCALE, + deps: [CultureService], + useFactory: (cultureService) => cultureService.getCurrentCulture() + }, + { + provide: LOCALE_ID, + deps: [CultureService], + useFactory: (cultureService) => cultureService.getCurrentCulture() + } ] }) diff --git a/dmp-frontend/src/app/shared/components/external-items/external-item-listing/external-item-listing.component.html b/dmp-frontend/src/app/shared/components/external-items/external-item-listing/external-item-listing.component.html index 0d367c29e..56aa867b8 100644 --- a/dmp-frontend/src/app/shared/components/external-items/external-item-listing/external-item-listing.component.html +++ b/dmp-frontend/src/app/shared/components/external-items/external-item-listing/external-item-listing.component.html @@ -3,19 +3,19 @@
- + {{ option.label }} - +
-
+
diff --git a/dmp-frontend/src/app/shared/components/external-items/external-item-listing/external-item-listing.component.ts b/dmp-frontend/src/app/shared/components/external-items/external-item-listing/external-item-listing.component.ts index 1963ea052..4c970f813 100644 --- a/dmp-frontend/src/app/shared/components/external-items/external-item-listing/external-item-listing.component.ts +++ b/dmp-frontend/src/app/shared/components/external-items/external-item-listing/external-item-listing.component.ts @@ -27,6 +27,9 @@ export class ExternalItemListingComponent implements OnInit { @Input() public disabled = true; + @Input() + public viewOnly = false; + @Input() public titleKey: string; diff --git a/dmp-frontend/src/app/shared/shared.module.ts b/dmp-frontend/src/app/shared/shared.module.ts index e909bef36..af3472610 100644 --- a/dmp-frontend/src/app/shared/shared.module.ts +++ b/dmp-frontend/src/app/shared/shared.module.ts @@ -3,7 +3,7 @@ import { FigurecardComponent } from './components/figurecard/figurecard.componen import { CommonModule } from '@angular/common'; import { FlexLayoutModule } from '@angular/flex-layout'; -import { NgModule } from '@angular/core'; +import { NgModule, LOCALE_ID } from '@angular/core'; import { RouterModule } from '@angular/router'; import { NavigationComponent } from './components/navigation/navigation.component'; import { SnackBarNotificationComponent } from './components/notificaiton/snack-bar-notification.component'; @@ -26,6 +26,8 @@ import { MultipleAutoCompleteComponent } from './components/autocompletes/multip import { UserDialogComponent } from './components/user-dialog/user-dialog.component'; import { SearchBarComponent } from './components/search-bar/search-bar.component'; import { TimezoneInfoDisplayPipe } from '../utilities/culture/pipes/TimezoneInfoDisplayPipe'; +import { CultureService } from '../utilities/culture/culture-service'; +import { MAT_DATE_LOCALE } from '@angular/material'; @NgModule({ imports: [ @@ -85,7 +87,8 @@ import { TimezoneInfoDisplayPipe } from '../utilities/culture/pipes/TimezoneInfo ], entryComponents: [ UserDialogComponent - ] + ], + }) export class SharedModule { } diff --git a/dmp-frontend/src/app/user-management/login/login.component.html b/dmp-frontend/src/app/user-management/login/login.component.html index 63dcb2465..61bc01c0d 100644 --- a/dmp-frontend/src/app/user-management/login/login.component.html +++ b/dmp-frontend/src/app/user-management/login/login.component.html @@ -19,7 +19,7 @@
- diff --git a/dmp-frontend/src/app/user-management/login/login.component.scss b/dmp-frontend/src/app/user-management/login/login.component.scss index e2acfe0ae..3695e9d37 100644 --- a/dmp-frontend/src/app/user-management/login/login.component.scss +++ b/dmp-frontend/src/app/user-management/login/login.component.scss @@ -160,3 +160,8 @@ span.iconmedium { width: 100px; height: 56px; } + +.b2access-button{ + margin-top: 10px; + width: fit-content; +} diff --git a/dmp-frontend/src/app/users/activity/recent-activity.component.html b/dmp-frontend/src/app/users/activity/recent-activity.component.html index 27206f25a..75e6aadc3 100644 --- a/dmp-frontend/src/app/users/activity/recent-activity.component.html +++ b/dmp-frontend/src/app/users/activity/recent-activity.component.html @@ -7,7 +7,7 @@ - +

{{activity.label}} diff --git a/dmp-frontend/src/app/users/profile/user-profile.component.ts b/dmp-frontend/src/app/users/profile/user-profile.component.ts index 0ada5237d..ec9d47a07 100644 --- a/dmp-frontend/src/app/users/profile/user-profile.component.ts +++ b/dmp-frontend/src/app/users/profile/user-profile.component.ts @@ -64,7 +64,7 @@ export class UserProfileComponent implements OnInit { timezone: new FormControl(result["additionalinfo"]["timezone"]), culture: new FormControl(result["additionalinfo"]["culture"]) }) - this.formGroup.get('language').valueChanges.subscribe(x => { if (x) this.translate.use(x.value) }) + //this.formGroup.get('language').valueChanges.subscribe(x => { if (x) this.translate.use(x.value) }) this.formGroup.get('timezone').valueChanges.subscribe(x => { if (x) this.timezones = this._filterTimezone(x) }); this.formGroup.get('culture').valueChanges.subscribe(x => { if (x) this.cultures = this._filterCulture(x) }); this.formGroup.disable() @@ -123,6 +123,8 @@ export class UserProfileComponent implements OnInit { this.userReferenceService.updateUserSettings(this.formGroup.value).subscribe( x => { this.editMode = false; + this.translate.use(this.formGroup.value.language) + this.authService.current().culture = this.formGroup.value.culture.name this.formGroup.disable(); }, error => { diff --git a/dmp-frontend/src/app/utilities/culture/culture-service.ts b/dmp-frontend/src/app/utilities/culture/culture-service.ts index 05e688083..859a29d12 100644 --- a/dmp-frontend/src/app/utilities/culture/culture-service.ts +++ b/dmp-frontend/src/app/utilities/culture/culture-service.ts @@ -2,6 +2,7 @@ import { Injectable } from '@angular/core'; import { Observable, Subject } from 'rxjs'; import { CultureInfo } from './models/culture-info'; import { registerLocaleData } from '@angular/common'; +import { AuthService } from '../../services/auth/auth.service'; const availableCultures: CultureInfo[] = require('../../../assets/resources/available-cultures.json'); @@ -13,6 +14,7 @@ export class CultureService { private currentCulture: CultureInfo; constructor( + private authService: AuthService ) { if (availableCultures) { this.cultureValues = new Map(); @@ -63,7 +65,7 @@ export class CultureService { return this.cultureChangeSubject.asObservable(); } - getCurrentCulture(): CultureInfo { - return this.currentCulture; + getCurrentCulture(): String { + return this.authService.current() && this.authService.current().culture ? this.authService.current().culture : this.currentCulture.name; } }