+
+
+

{{ 'ABOUT.WELCOME' | translate }}

+

{{ 'ABOUT.WELCOME-MESSAGE' | translate }}

+
+
+
@@ -14,7 +20,7 @@
-
+
- - -
-
+
settings

{{roleDisplay(dmp.users).toUpperCase()}}

-
- +
+ storage diff --git a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.ts b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.ts index e41f78acd..0f20ccc2d 100644 --- a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.ts +++ b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.ts @@ -5,7 +5,7 @@ import { DmpInvitationDialogComponent } from '../../invitation/dmp-invitation.co import { Router, ActivatedRoute } from '@angular/router'; import { DatasetService } from '../../../../core/services/dataset/dataset.service'; import { AuthService } from '../../../../core/services/auth/auth.service'; -import { Principal } from '../../../../core/model/auth/Principal'; +import { Principal } from '../../../../core/model/auth/principal'; import { TranslateService } from '@ngx-translate/core'; import { DmpStatus } from '../../../../core/common/enum/dmp-status'; @@ -18,6 +18,7 @@ export class DmpListingItemComponent implements OnInit { @Input() dmp: DmpListingModel; @Input() showDivider: boolean = true; + @Input() isPublic: boolean; @Output() onClick: EventEmitter = new EventEmitter(); isDraft: boolean; diff --git a/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.html b/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.html index cb45ad27f..5151ecd9b 100644 --- a/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.html +++ b/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.html @@ -71,7 +71,7 @@
diff --git a/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts b/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts index 98c25aac9..c363c8595 100644 --- a/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts +++ b/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts @@ -4,7 +4,7 @@ import { MatDialog } from '@angular/material/dialog'; import { ActivatedRoute, Params, Router } from '@angular/router'; import { DatasetStatus } from '@app/core/common/enum/dataset-status'; import { DmpStatus } from '@app/core/common/enum/dmp-status'; -import { Principal } from '@app/core/model/auth/Principal'; +import { Principal } from '@app/core/model/auth/principal'; import { DatasetOverviewModel } from '@app/core/model/dataset/dataset-overview'; import { DatasetsToBeFinalized } from '@app/core/model/dataset/datasets-toBeFinalized'; import { DmpOverviewModel } from '@app/core/model/dmp/dmp-overview'; @@ -22,6 +22,13 @@ import { Observable, of as observableOf } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { Role } from "@app/core/common/enum/role"; import { DmpInvitationDialogComponent } from '../invitation/dmp-invitation.component'; +import { MultipleChoiceDialogModule } from '@common/modules/multiple-choice-dialog/multiple-choice-dialog.module'; +import { MultipleChoiceDialogComponent } from '@common/modules/multiple-choice-dialog/multiple-choice-dialog.component'; +import { ConfigurationService } from '@app/core/services/configuration/configuration.service'; +import { Oauth2DialogComponent } from '@app/ui/misc/oauth2-dialog/oauth2-dialog.component'; +import { Oauth2DialogService } from '@app/ui/misc/oauth2-dialog/service/oauth2-dialog.service'; +import { isNullOrUndefined } from 'util'; +import { UserService } from '@app/core/services/user/user.service'; @Component({ selector: 'app-dmp-overview', @@ -38,6 +45,7 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit { breadCrumbs: Observable = observableOf(); isUserOwner: boolean; expand = false; + hasDOIToken = false; constructor( private route: ActivatedRoute, @@ -47,7 +55,10 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit { private authentication: AuthService, private dialog: MatDialog, private language: TranslateService, - private uiNotificationService: UiNotificationService + private uiNotificationService: UiNotificationService, + private configurationService: ConfigurationService, + private oauth2DialogService: Oauth2DialogService, + private userService: UserService ) { super(); } @@ -95,10 +106,10 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit { this.breadCrumbs = observableOf(breadCrumbs); }, (error: any) => { if (error.status === 404) { - return this.onFetchingDeletedCallbackError('/plans/'); + return this.onFetchingDeletedCallbackError('/explore-plans'); } if (error.status === 403) { - return this.onFetchingForbiddenCallbackError('/plans/'); + return this.onFetchingForbiddenCallbackError('/explore-plans'); } }); } @@ -139,14 +150,14 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit { this.expand = !this.expand; } - checkOverflow (element) { + checkOverflow(element) { if (this.expand || (element.offsetHeight < element.scrollHeight || element.offsetWidth < element.scrollWidth)) { - return true; + return true; } else { - return false; + return false; } - } + } datasetClicked(datasetId: String) { if (this.isPublicView) { @@ -321,12 +332,32 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit { return dmp.doi == null ? true : false; } + getAccessUrl(): string { + const redirectUri = this.configurationService.app + 'oauth2'; + const url = this.configurationService.loginProviders.zenodoConfiguration.oauthUrl + + '?client_id=' + this.configurationService.loginProviders.zenodoConfiguration.clientId + + '&response_type=code&scope=deposit:write+deposit:actions+user:email&state=astate&redirect_uri=' + + redirectUri; + return url; + } + getDoi(dmp: DmpOverviewModel) { + this.userService.hasDOIToken().subscribe(response => { + this.hasDOIToken = true; + this.showConfirmationDOIDialog(dmp); + }, error => { + this.hasDOIToken = false; + this.showErrorConfirmationDOIDialog(error.error.message, dmp); + }); + } + + + showConfirmationDOIDialog(dmp: DmpOverviewModel) { const dialogRef = this.dialog.open(ConfirmationDialogComponent, { maxWidth: '600px', restoreFocus: false, data: { - message: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ZENODO-DOI'), + message: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ZENODO-DOI', { 'username': this.hasDOIToken ? this.authentication.current().zenodoEmail : 'default' }), confirmButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CONFIRM'), cancelButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CANCEL'), } @@ -346,6 +377,44 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit { }); } + showErrorConfirmationDOIDialog(message: string, dmp: DmpOverviewModel) { + const dialogRef = this.dialog.open(MultipleChoiceDialogComponent, { + maxWidth: '600px', + restoreFocus: false, + data: { + message: message, + titles: [this.language.instant('DMP-OVERVIEW.MULTIPLE-DIALOG.ZENODO-LOGIN'), this.language.instant('DMP-OVERVIEW.MULTIPLE-DIALOG.USE-DEFAULT')] + } + }); + dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(result => { + switch (result) { + case 0: + // this.authentication.logout(); + // this.router.navigate(['/login/external/zenodo']); + this.showOauth2Dialog(this.getAccessUrl(), dmp); + break; + case 1: + this.showConfirmationDOIDialog(dmp); + break; + } + }); + } + + showOauth2Dialog(url: string, dmp: DmpOverviewModel) { + this.oauth2DialogService.login(url) + .pipe(takeUntil(this._destroyed)) + .subscribe(code => { + if (!isNullOrUndefined(code)) { + this.userService.registerDOIToken(code, this.configurationService.app + 'oauth2') + .pipe(takeUntil(this._destroyed)) + .subscribe(() => { + this.hasDOIToken = true; + this.showConfirmationDOIDialog(dmp); + }); + } + }); + } + onDOICallbackSuccess(): void { this.uiNotificationService.snackBarNotification(this.language.instant('DMP-EDITOR.SNACK-BAR.SUCCESSFUL-DOI'), SnackBarNotificationLevel.Success); } @@ -453,6 +522,12 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit { this.router.navigate(['/datasets/new/' + rowId]); } + createDoiLink(doi: string): string { + const doiarr = doi.split('.'); + const id = doiarr[doiarr.length - 1]; + return this.configurationService.doiLink + id; + } + // advancedClicked() { // const dialogRef = this.dialog.open(ExportMethodDialogComponent, { // maxWidth: '500px', diff --git a/dmp-frontend/src/app/ui/dmp/wizard/dmp-wizard-editor.model.ts b/dmp-frontend/src/app/ui/dmp/wizard/dmp-wizard-editor.model.ts index 4582e91e8..7edeacf8d 100644 --- a/dmp-frontend/src/app/ui/dmp/wizard/dmp-wizard-editor.model.ts +++ b/dmp-frontend/src/app/ui/dmp/wizard/dmp-wizard-editor.model.ts @@ -1,5 +1,5 @@ import { FormBuilder, FormGroup, Validators } from "@angular/forms"; -import { Status } from '@app/core/common/enum/Status'; +import { Status } from '@app/core/common/enum/status'; import { DmpProfile, DmpProfileDefinition } from '@app/core/model/dmp-profile/dmp-profile'; import { DmpModel } from '@app/core/model/dmp/dmp'; import { DmpDynamicField } from '@app/core/model/dmp/dmp-dynamic-field'; diff --git a/dmp-frontend/src/app/ui/explore-dmp/listing-item/explore-dmp-listing-item.component.ts b/dmp-frontend/src/app/ui/explore-dmp/listing-item/explore-dmp-listing-item.component.ts index 468b239d6..327bc33be 100644 --- a/dmp-frontend/src/app/ui/explore-dmp/listing-item/explore-dmp-listing-item.component.ts +++ b/dmp-frontend/src/app/ui/explore-dmp/listing-item/explore-dmp-listing-item.component.ts @@ -1,6 +1,6 @@ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; import { DmpListingModel } from '../../../core/model/dmp/dmp-listing'; -import { Principal } from '../../../core/model/auth/Principal'; +import { Principal } from '../../../core/model/auth/principal'; import { AuthService } from '../../../core/services/auth/auth.service'; import { TranslateService } from '@ngx-translate/core'; import { Router, ActivatedRoute } from '@angular/router'; @@ -21,7 +21,7 @@ export class ExploreDmpListingItemComponent implements OnInit { private translate: TranslateService, private router: Router, private route: ActivatedRoute - ) { } + ) { } ngOnInit() { } diff --git a/dmp-frontend/src/app/ui/grant/editor/grant-editor.model.ts b/dmp-frontend/src/app/ui/grant/editor/grant-editor.model.ts index 8b783111c..28769e4a8 100644 --- a/dmp-frontend/src/app/ui/grant/editor/grant-editor.model.ts +++ b/dmp-frontend/src/app/ui/grant/editor/grant-editor.model.ts @@ -3,7 +3,7 @@ import { BackendErrorValidator } from '@common/forms/validation/custom-validator import { ValidationErrorModel } from '@common/forms/validation/error-model/validation-error-model'; import { ValidationContext } from '@common/forms/validation/validation-context'; import { GrantType } from '../../../core/common/enum/grant-type'; -import { Status } from '../../../core/common/enum/Status'; +import { Status } from '../../../core/common/enum/status'; import { ContentFile, GrantListingModel } from '../../../core/model/grant/grant-listing'; export class GrantEditorModel { diff --git a/dmp-frontend/src/app/ui/misc/navigation/user-dialog/user-dialog.component.ts b/dmp-frontend/src/app/ui/misc/navigation/user-dialog/user-dialog.component.ts index 326dd5280..21d7e79bc 100644 --- a/dmp-frontend/src/app/ui/misc/navigation/user-dialog/user-dialog.component.ts +++ b/dmp-frontend/src/app/ui/misc/navigation/user-dialog/user-dialog.component.ts @@ -2,7 +2,7 @@ import { Component, Inject, OnInit } from '@angular/core'; import { FormGroup } from '@angular/forms'; import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { Router } from '@angular/router'; -import { Principal } from '../../../../core/model/auth/Principal'; +import { Principal } from '../../../../core/model/auth/principal'; import { AuthService } from '../../../../core/services/auth/auth.service'; @Component({ diff --git a/dmp-frontend/src/app/ui/misc/oauth2-dialog/oauth2-dialog.component.html b/dmp-frontend/src/app/ui/misc/oauth2-dialog/oauth2-dialog.component.html new file mode 100644 index 000000000..a9478084f --- /dev/null +++ b/dmp-frontend/src/app/ui/misc/oauth2-dialog/oauth2-dialog.component.html @@ -0,0 +1 @@ +

oauth2-dialog works!

diff --git a/dmp-frontend/src/app/ui/misc/oauth2-dialog/oauth2-dialog.component.scss b/dmp-frontend/src/app/ui/misc/oauth2-dialog/oauth2-dialog.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/dmp-frontend/src/app/ui/misc/oauth2-dialog/oauth2-dialog.component.ts b/dmp-frontend/src/app/ui/misc/oauth2-dialog/oauth2-dialog.component.ts new file mode 100644 index 000000000..7d9c2f6aa --- /dev/null +++ b/dmp-frontend/src/app/ui/misc/oauth2-dialog/oauth2-dialog.component.ts @@ -0,0 +1,41 @@ +import { Component, OnInit, Inject } from '@angular/core'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { ActivatedRoute, Params } from '@angular/router'; +import { BaseComponent } from '@common/base/base.component'; +import { takeUntil } from 'rxjs/operators'; +import { Oauth2DialogService } from './service/oauth2-dialog.service'; + +@Component({ + selector: 'app-oauth2-dialog', + templateUrl: './oauth2-dialog.component.html', + styleUrls: ['./oauth2-dialog.component.scss'] +}) +export class Oauth2DialogComponent extends BaseComponent implements OnInit{ + + constructor( + private route: ActivatedRoute, + private oauth2dialogService: Oauth2DialogService + ) { + super(); + } + + + ngOnInit(): void { + this.route.queryParams.pipe(takeUntil(this._destroyed)) + .subscribe((params: Params) => { + const url = params['url']; + if (!params['code']) { this.loadUrl(url) } else { this.sendCode(params['code']); } + }); + } + + private loadUrl(url: string ) { + console.log(url); + window.location.href = url; + } + + private sendCode(code: string) { + localStorage.setItem('oauthCode', code); + window.close(); + } + +} diff --git a/dmp-frontend/src/app/ui/misc/oauth2-dialog/oauth2-dialog.module.ts b/dmp-frontend/src/app/ui/misc/oauth2-dialog/oauth2-dialog.module.ts new file mode 100644 index 000000000..5bdefcec4 --- /dev/null +++ b/dmp-frontend/src/app/ui/misc/oauth2-dialog/oauth2-dialog.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; + +import { Oauth2DialogComponent } from './oauth2-dialog.component'; +import { CommonUiModule } from '@common/ui/common-ui.module'; +import { Oauth2DialogService } from './service/oauth2-dialog.service'; + + +@NgModule({ + declarations: [Oauth2DialogComponent], + imports: [ + CommonUiModule + ], + providers: [ + Oauth2DialogService + ] +}) +export class Oauth2DialogModule { } diff --git a/dmp-frontend/src/app/ui/misc/oauth2-dialog/service/oauth2-dialog.service.ts b/dmp-frontend/src/app/ui/misc/oauth2-dialog/service/oauth2-dialog.service.ts new file mode 100644 index 000000000..14491196b --- /dev/null +++ b/dmp-frontend/src/app/ui/misc/oauth2-dialog/service/oauth2-dialog.service.ts @@ -0,0 +1,34 @@ +import { Injectable, Inject } from '@angular/core'; +import { BaseService } from '@common/base/base.service'; +import { BehaviorSubject, Observable, interval } from 'rxjs'; +import { ConfigurationService } from '@app/core/services/configuration/configuration.service'; +import { isNullOrUndefined } from 'util'; +import { takeUntil } from 'rxjs/operators'; + +@Injectable() +export class Oauth2DialogService extends BaseService{ + + private code: BehaviorSubject = new BehaviorSubject(undefined); + + constructor(private configurationService: ConfigurationService) { + super(); + } + + public registerCode(code: string) { + this.code.next(code); + } + + public login(url: string): Observable { + const windows = window.open(this.configurationService.app + 'oauth2?url=' + encodeURIComponent(url) ,'', `height=500px,width=500px,top=${(window.screen.height / 2) - 200}px,left=${(window.screen.width / 2) - 200}px`); + const sub = interval(300).pipe(takeUntil(this._destroyed)).subscribe(() => { + if (windows.closed) { + const oauthCode = localStorage.getItem('oauthCode'); + localStorage.removeItem('oauthCode'); + this.code.next(oauthCode); + sub.unsubscribe(); + } + }); + return this.code.asObservable(); + } + +} diff --git a/dmp-frontend/src/app/ui/quick-wizard/dmp-editor/dmp-editor-wizard-model.ts b/dmp-frontend/src/app/ui/quick-wizard/dmp-editor/dmp-editor-wizard-model.ts index fa213f870..3ec776427 100644 --- a/dmp-frontend/src/app/ui/quick-wizard/dmp-editor/dmp-editor-wizard-model.ts +++ b/dmp-frontend/src/app/ui/quick-wizard/dmp-editor/dmp-editor-wizard-model.ts @@ -1,5 +1,5 @@ import { FormBuilder, FormGroup, Validators } from '@angular/forms'; -import { Status } from '@app/core/common/enum/Status'; +import { Status } from '@app/core/common/enum/status'; import { DatasetProfileModel } from '@app/core/model/dataset/dataset-profile'; import { DmpProfileDefinition } from '@app/core/model/dmp-profile/dmp-profile'; import { DmpModel } from '@app/core/model/dmp/dmp'; diff --git a/dmp-frontend/src/app/ui/quick-wizard/grant-editor/grant-editor-wizard-model.ts b/dmp-frontend/src/app/ui/quick-wizard/grant-editor/grant-editor-wizard-model.ts index b8f30cc6e..90cbdd8ae 100644 --- a/dmp-frontend/src/app/ui/quick-wizard/grant-editor/grant-editor-wizard-model.ts +++ b/dmp-frontend/src/app/ui/quick-wizard/grant-editor/grant-editor-wizard-model.ts @@ -1,5 +1,5 @@ import { FormBuilder, FormGroup, Validators } from "@angular/forms"; -import { Status } from '@app/core/common/enum/Status'; +import { Status } from '@app/core/common/enum/status'; import { GrantListingModel } from '@app/core/model/grant/grant-listing'; import { ValidJsonValidator } from '@app/library/auto-complete/auto-complete-custom-validator'; import { BackendErrorValidator } from '@common/forms/validation/custom-validator'; diff --git a/dmp-frontend/src/app/ui/sidebar/sidebar.component.ts b/dmp-frontend/src/app/ui/sidebar/sidebar.component.ts index 9321cb07c..39335f81d 100644 --- a/dmp-frontend/src/app/ui/sidebar/sidebar.component.ts +++ b/dmp-frontend/src/app/ui/sidebar/sidebar.component.ts @@ -3,7 +3,7 @@ import { MatDialog } from '@angular/material/dialog'; import { TranslateService } from '@ngx-translate/core'; import { AuthService } from '../../core/services/auth/auth.service'; import { UserDialogComponent } from '../misc/navigation/user-dialog/user-dialog.component'; -import { Principal } from '../../core/model/auth/Principal'; +import { Principal } from '../../core/model/auth/principal'; import { AppRole } from '../../core/common/enum/app-role'; import { Router } from '@angular/router'; import { Location } from '@angular/common'; @@ -51,8 +51,8 @@ export const ADMIN_ROUTES: RouteInfo[] = [ { path: '/dmp-profiles', title: 'SIDE-BAR.DMP-TEMPLATES', icon: 'library_books' }, { path: '/dataset-profiles', title: 'SIDE-BAR.DATASET-TEMPLATES', icon: 'library_books' }, { path: '/users', title: 'SIDE-BAR.USERS', icon: 'people' }, - { path: '/language-editor', title: 'SIDE-BAR.LANGUAGE-EDITOR', icon: 'language'}, - { path: '/user-guide-editor', title: 'SIDE-BAR.GUIDE-EDITOR', icon: 'import_contacts'} + { path: '/language-editor', title: 'SIDE-BAR.LANGUAGE-EDITOR', icon: 'language' }, + { path: '/user-guide-editor', title: 'SIDE-BAR.GUIDE-EDITOR', icon: 'import_contacts' } ]; // export const HISTORY_ROUTES: RouteInfo[] = [ // { path: '/typography', title: 'SIDE-BAR.HISTORY-VISITED', icon: 'visibility'}, diff --git a/dmp-frontend/src/app/ui/user-profile/user-profile.component.html b/dmp-frontend/src/app/ui/user-profile/user-profile.component.html index f3661a928..0dd345413 100644 --- a/dmp-frontend/src/app/ui/user-profile/user-profile.component.html +++ b/dmp-frontend/src/app/ui/user-profile/user-profile.component.html @@ -63,7 +63,7 @@
- +
@@ -98,6 +98,29 @@
+ + + +
+

{{ 'USER-PROFILE.ZENODO.TITLE' | translate}}

+
+
+
+ +
+
+
+ +
+
+
+ +
+
+
+
+
+
diff --git a/dmp-frontend/src/app/ui/user-profile/user-profile.component.scss b/dmp-frontend/src/app/ui/user-profile/user-profile.component.scss index 36426b892..b96e9d794 100644 --- a/dmp-frontend/src/app/ui/user-profile/user-profile.component.scss +++ b/dmp-frontend/src/app/ui/user-profile/user-profile.component.scss @@ -25,3 +25,12 @@ .settings { line-height: 2.4em !important; } + +.zenodo-email { + color: black; +} + +.unlinkBtn { + background-color: FireBrick; + color: white; +} diff --git a/dmp-frontend/src/app/ui/user-profile/user-profile.component.ts b/dmp-frontend/src/app/ui/user-profile/user-profile.component.ts index dcef445ee..2f8b08b95 100644 --- a/dmp-frontend/src/app/ui/user-profile/user-profile.component.ts +++ b/dmp-frontend/src/app/ui/user-profile/user-profile.component.ts @@ -13,6 +13,9 @@ import * as moment from 'moment-timezone'; import { Observable, of } from 'rxjs'; import { map, takeUntil } from 'rxjs/operators'; import { LanguageService } from '@app/core/services/language/language.service'; +import { isNullOrUndefined } from 'util'; +import { Oauth2DialogService } from '../misc/oauth2-dialog/service/oauth2-dialog.service'; +import { ConfigurationService } from '@app/core/services/configuration/configuration.service'; const availableLanguages: any[] = require('../../../assets/resources/language.json'); @@ -29,6 +32,8 @@ export class UserProfileComponent extends BaseComponent implements OnInit, OnDes timezones: Observable; editMode = false; languages = availableLanguages; + zenodoToken: string; + zenodoEmail: string; formGroup: FormGroup; constructor( @@ -39,7 +44,9 @@ export class UserProfileComponent extends BaseComponent implements OnInit, OnDes private language: TranslateService, private cultureService: CultureService, private authentication: AuthService, - private languageService: LanguageService + private languageService: LanguageService, + private configurationService: ConfigurationService, + private oauth2DialogService: Oauth2DialogService ) { super(); } ngOnInit() { @@ -50,6 +57,8 @@ export class UserProfileComponent extends BaseComponent implements OnInit, OnDes const userId = !params['id'] ? 'me' : params['id']; this.user = this.userService.getUser(userId).pipe(map(result => { result['additionalinfo'] = JSON.parse(result['additionalinfo']); + this.zenodoToken = result['additionalinfo']['zenodoToken']; + this.zenodoEmail = result['additionalinfo']['zenodoEmail']; this.formGroup = new FormBuilder().group({ language: new FormControl(result['additionalinfo']['language'] ? availableLanguages.filter(x => x.value === result['additionalinfo']['language']['value']).pop() : '', [Validators.required]), timezone: new FormControl(result['additionalinfo']['timezone'], [Validators.required]), @@ -78,10 +87,10 @@ export class UserProfileComponent extends BaseComponent implements OnInit, OnDes getUserRole(dmp: DmpModel) { if (dmp.creator.id === this.currentUserId) { - return this.language.instant('USER-PROFILE.DMPS.CREATOR'); - } else if (dmp.associatedUsers.map(x => x.id).indexOf(this.currentUserId) !== -1) { - return this.language.instant('USER-PROFILE.DMPS.MEMBER'); - } + return this.language.instant('USER-PROFILE.DMPS.CREATOR'); + } else if (dmp.associatedUsers.map(x => x.id).indexOf(this.currentUserId) !== -1) { + return this.language.instant('USER-PROFILE.DMPS.MEMBER'); + } } showAllDmps() { @@ -147,4 +156,39 @@ export class UserProfileComponent extends BaseComponent implements OnInit, OnDes (ev.target as HTMLImageElement).src = 'assets/images/profile-placeholder.png'; } + public hasZenodo(): boolean { + return !isNullOrUndefined(this.zenodoToken) && this.zenodoToken !== ""; + } + + public loginToZenodo() { + this.showOauth2Dialog(this.getAccessUrl()); + } + + getAccessUrl(): string { + const redirectUri = this.configurationService.app + 'oauth2'; + const url = this.configurationService.loginProviders.zenodoConfiguration.oauthUrl + + '?client_id=' + this.configurationService.loginProviders.zenodoConfiguration.clientId + + '&response_type=code&scope=deposit:write+deposit:actions+user:email&state=astate&redirect_uri=' + + redirectUri; + return url; + } + + showOauth2Dialog(url: string) { + this.oauth2DialogService.login(url) + .pipe(takeUntil(this._destroyed)) + .subscribe(code => { + if (!isNullOrUndefined(code)) { + this.userService.registerDOIToken(code, this.configurationService.app + 'oauth2') + .pipe(takeUntil(this._destroyed)) + .subscribe(() => this.router.navigate(['/reload']).then(() => this.router.navigate(['/profile']))); + } + }); + } + + public RemoveZenodo() { + this.userService.deleteDOIToken() + .pipe(takeUntil(this._destroyed)) + .subscribe(() => this.router.navigate(['/reload']).then(() => this.router.navigate(['/profile']))); + } + } diff --git a/dmp-frontend/src/assets/config/config.json b/dmp-frontend/src/assets/config/config.json index 7298e06b8..09730c8b9 100644 --- a/dmp-frontend/src/assets/config/config.json +++ b/dmp-frontend/src/assets/config/config.json @@ -1,6 +1,6 @@ { "production": false, - "Server": "http://localhost:8080/api/", + "Server": "http://localhost:8081/api/", "App": "http://localhost:4200/", "HelpService": { "Enabled": false, @@ -37,6 +37,11 @@ "oauthUrl": "", "redirectUri": "", "state": "987654321" + }, + "zenodoConfiguration": { + "clientId": "", + "oauthUrl": "https://sandbox.zenodo.org/oauth/authorize", + "redirectUri": "http://localhost:4200/login/external/zenodo" } }, "logging": { @@ -44,5 +49,7 @@ "logLevels": ["debug", "info", "warning", "error"] }, "lockInterval": 60000, - "guideAssets": "assets/images/guide" + "guideAssets": "assets/images/guide", + "allowOrganizationCreator": true, + "doiLink": "https://sandbox.zenodo.org/record/" } diff --git a/dmp-frontend/src/assets/i18n/en.json b/dmp-frontend/src/assets/i18n/en.json index d1db35ce5..64210103d 100644 --- a/dmp-frontend/src/assets/i18n/en.json +++ b/dmp-frontend/src/assets/i18n/en.json @@ -52,7 +52,7 @@ "FINALIZE-ITEM": "Finalize this item?", "PUBLISH-ITEM": "Publish this item?", "ADD-DATASET": "Do you want to continue by adding a Dataset Description to your DMP? You can always add more Dataset Descriptions using \"Add Dataset Description (Wizard)\" menu.", - "ZENODO-DOI": "Would you like to create digital object identifier (DOI) for the DMP?", + "ZENODO-DOI": "Would you like to create digital object identifier (DOI) with {{username}} account for the DMP?", "LEAVE-PAGE": "If you leave, your changes will be lost.", "LEAVE-WARNING": "You have unsaved changes!", "PRIVACY-POLICY-NAMES": "The names of all people involved into this DMP will be publicly visible. Do you agree with that?", @@ -128,7 +128,7 @@ "FILE-TYPES": { "PDF": "PDF", "XML": "XML", - "JSON": "JSON", + "JSON": "RDA JSON", "DOC": "Document" }, "LANGUAGES": { @@ -218,7 +218,7 @@ "DATASET-TEMPLATES": "Dataset Description Templates", "DMP-TEMPLATES": "DMP Templates", "USERS": "Users", - "LANGUAGE-EDITOR":"Language Editor", + "LANGUAGE-EDITOR": "Language Editor", "GUIDE-EDITOR": "User Guide Editor" }, "DATASET-PROFILE-EDITOR": { @@ -431,7 +431,7 @@ "TITLE": "Published Data Management Plans", "OWNER": "Owner", "MEMBER": "Member", - "CREATOR":"Creator", + "CREATOR": "Creator", "VIEW-ONLY": "View Only", "TOOLTIP": { "PUBLISHED": "Public access - Closed DMP", @@ -525,6 +525,10 @@ "ERROR": { "DELETED-DMP": "The requested DMP is deleted", "FORBIDEN-DMP": "You are not allowed to access this DMP" + }, + "MULTIPLE-DIALOG": { + "ZENODO-LOGIN": "Login with Zenodo", + "USE-DEFAULT": "Use Default Token" } }, "DATASET-LISTING": { @@ -761,7 +765,8 @@ } }, "DATASET-PROFILE": { - "LIKE": "Search" + "LIKE": "Search", + "STATUS": "Status" }, "DATA-SETS": { "PERIOD-FROM": "Start", @@ -825,7 +830,8 @@ "ACTIONS": { "SAVE": "Save", "CANCEL": "Cancel", - "DELETE": "Delete" + "DELETE": "Delete", + "UPDATE": "Update" }, "VERSION-DIALOG": { "ABOUT": "Versioning is automated.", @@ -948,6 +954,14 @@ "CANCEL": "Cancel" } }, + "ADDORGANIZATION-EDITOR": { + "TITLE": "Add an Organization", + "NAME": "Name", + "ACTIONS": { + "SAVE": "Save", + "CANCEL": "Cancel" + } + }, "DMP-WIZARD": { "FIRST-STEP": { "DMP": "DMP Editor", @@ -1086,6 +1100,12 @@ "SHOW-ALL": "Show All", "CREATOR": "Creator", "MEMBER": "Member" + }, + "ZENODO": { + "LOGIN": "Login to Zenodo", + "LOGOUT": "Remove Zenodo", + "TITLE": "Zenodo Account", + "DESCRIPTION": "Linked Zenodo Account:" } }, "DATASET-REFERENCED-MODELS": { @@ -1242,5 +1262,10 @@ } }, "HINT": "(Suggested Default Name)" + }, + "DATASET-PROFILE-STATUS": { + "NONE": "None", + "DRAFT": "Draft", + "FINALIZED": "Finalized" } } diff --git a/dmp-frontend/src/assets/i18n/es.json b/dmp-frontend/src/assets/i18n/es.json index 5716873cb..7db704b15 100644 --- a/dmp-frontend/src/assets/i18n/es.json +++ b/dmp-frontend/src/assets/i18n/es.json @@ -128,7 +128,7 @@ "FILE-TYPES": { "PDF": "PDF", "XML": "XML", - "JSON": "JSON", + "JSON": "RDA JSON", "DOC": "Documento" }, "LANGUAGES": { @@ -525,6 +525,10 @@ "ERROR": { "DELETED-DMP": "El PGD solicitado está borrado", "FORBIDEN-DMP": "You are not allowed to access this DMP" + }, + "MULTIPLE-DIALOG": { + "ZENODO-LOGIN": "Login with Zenodo", + "USE-DEFAULT": "Use Default Token" } }, "DATASET-LISTING": { @@ -825,7 +829,8 @@ "ACTIONS": { "SAVE": "Grabar", "CANCEL": "Cancelar", - "DELETE": "Borrar" + "DELETE": "Borrar", + "UPDATE": "Update" }, "VERSION-DIALOG": { "ABOUT": "Versionado es automático.", @@ -948,6 +953,14 @@ "CANCEL": "Cancelar" } }, + "ADDORGANIZATION-EDITOR": { + "TITLE": "Add an Organization", + "NAME": "Name", + "ACTIONS": { + "SAVE": "Save", + "CANCEL": "Cancel" + } + }, "DMP-WIZARD": { "FIRST-STEP": { "DMP": "Editor PGD", @@ -1086,6 +1099,12 @@ "SHOW-ALL": "Mostrar todo", "CREATOR": "Creador", "MEMBER": "Miembro" + }, + "ZENODO": { + "LOGIN": "Login to Zenodo", + "LOGOUT": "Remove Zenodo", + "TITLE": "Zenodo Account", + "DESCRIPTION": "Linked Zenodo Account:" } }, "DATASET-REFERENCED-MODELS": { diff --git a/dmp-frontend/src/assets/i18n/gr.json b/dmp-frontend/src/assets/i18n/gr.json index 8004fbc3d..12975f50d 100644 --- a/dmp-frontend/src/assets/i18n/gr.json +++ b/dmp-frontend/src/assets/i18n/gr.json @@ -1,29 +1,1251 @@ { - "GENERAL": { - "VALIDATION": { - "REQUIRED": "Required" + "GENERAL": { + "VALIDATION": { + "REQUIRED": "Προαπαιτούμενο", + "GRANT-START-AFTER-END": "Η ημερομηνία έναρξης της επιχορήγησης δεν μπορεί να είναι μεταγενέστερη της ημερομηνίας λήξης", + "PATTERN-_": "Ο χαρακτήρας \"_\" δεν υποστηρίζεται" + }, + "DELETE-CONFIRMATION": { + "TITLE": "Προσοχή", + "MESSAGE": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το στοιχείο", + "POSITIVE": "Ναι", + "NEGATIVE": "Ακύρωση" + }, + "SNACK-BAR": { + "SUCCESSFUL-CREATION": "Δημιουργήθηκε με επιτυχία", + "SUCCESSFUL-UPDATE": "Ενημερώθηκε με επιτυχία", + "SUCCESSFUL-LOGIN": "Επιτυχής σύνδεση", + "SUCCESSFUL-LOGOUT": "Επιτυχής αποσύνδεση", + "SUCCESSFUL-EMAIL-SEND": "Το email στάλθηκε επιτυχώς", + "UNSUCCESSFUL-LOGOUT": "Αποτυχημένη αποσύνδεση", + "UNSUCCESSFUL-LOGIN": "Αποτυχημένη σύνδεση", + "SUCCESSFUL-DATASET-PROFILE-DELETE": "Επιτυχής διαγραφή", + "UNSUCCESSFUL-DATASET-PROFILE-DELETE": "Το template δεν μπορεί να διαγραφεί, επειδή οι περιγραφές των συνόλων δεδομένων σχετίζονται με αυτό", + "UNSUCCESSFUL-DELETE": "Αποτυχημένη διαγραφή", + "UNSUCCESSFUL-EMAIL-SEND": "Αποτυχία αποστολής email" + }, + "ERRORS": { + "HTTP-REQUEST-ERROR": "Παρουσιάστηκε μη αναμενόμενο σφάλμα" + }, + "NAMES": { + "DATASET": "Περιγραφή Συνόλου Δεδομένων" + }, + "STATUSES": { + "EDIT": "Σε επεξεργασία", + "FINALISED": "Οριστικοποιημένο" + }, + "FORM-VALIDATION-DISPLAY-DIALOG": { + "WARNING": "Προσοχή!", + "THIS-FIELD": "Πεδίο", + "HAS-ERROR": "Παρουσιάστηκε σφάλμα", + "REQUIRED": "Απαιτείται", + "EMAIL": "Μη έγκυρο e-mail", + "MIN-VALUE": "Η ελάχιστη τιμή πρέπει να είναι {{min}}", + "MAX-VALUE": "Η μέγιστη τιμή πρέπει να είναι {{max}}", + "ACTIONS": { + "CANCEL": "Κλείσιμο" + } + }, + "CONFIRMATION-DIALOG": { + "DELETE-ITEM": "Διαγραφή αυτού του στοιχείου;", + "DELETE-USER": "Αφαίρεση αυτού του συνεργάτη;", + "FINALIZE-ITEM": "Ολοκλήρωση αυτού του στοιχείου;", + "PUBLISH-ITEM": "Δημοσίευση αυτού του στοιχείου;", + "ADD-DATASET": "Θέλετε να συνεχίσετε προσθέτοντας μια Περιγραφή Συνόλου Δεδομένων στο Σχέδιο Διαχείρισης Δεδομένων σας; Μπορείτε πάντα να προσθέσετε περισσότερες Περιγραφές Συνόλων Δεδομένων χρησιμοποιώντας \"Add Dataset Description (Wizard)\" menu.", + "ZENODO-DOI": "Θέλετε να δημιουργήσετε μονοσήμαντο αναγνωριστικό ψηφιακού αντικειμένου (DOI) για το Σχέδιο Διαχείρισης Δεδομένων σας;", + "LEAVE-PAGE": "Εάν φύγετε από τη σελίδα αυτή, οι αλλαγές σας θα χαθούν.", + "LEAVE-WARNING": "Έχετε μη αποθηκευμένες αλλαγές!", + "PRIVACY-POLICY-NAMES": "Τα ονόματα όλων των ατόμων που συμμετέχουν ως συνεργάτες σε αυτό το Σχέδιο Διαχείρισης Δεδομένων θα γίνουν δημόσια ορατά. Είστε σύμφωνοι με αυτό;", + "ACTIONS": { + "CONFIRM": "Ναι", + "NO": "Όχι", + "DELETE": "Διαγραφή", + "REMOVE": "Αφαίρεση", + "CANCEL": "Ακύρωση", + "LEAVE": "Αναχώρηση", + "POLICY-AGREE": "Κάντε τα ονόματα ορατά στο κοινό.", + "REQUIRED": "Απαιτείται να κάνετε κλικ στο πλαίσιο ελέγχου." + } + }, + "NOTIFICATION-DIALOG": { + "POPUP": { + "TITLE": "Απουσία Συνόλου Δεδομένων", + "MESSAGE": "Πρέπει να δημιουργηθεί τουλάχιστον ένα σύνολο δεδομένων για να συνεχίσετε με την αποθήκευση του Σχεδίου Διαχείρισης Δεδομένων.", + "CLOSE": "Κλείσιμο" + } + }, + "ACTIONS": { + "VIEW-ALL": "Προβολή όλων", + "SHOW-MORE": "Δείτε περισσότερα", + "SHOW-LESS": "Δείτε λιγότερα", + "LOG-IN": "Σύνδεση" + }, + "PREPOSITIONS": { + "OF": "of" + }, + "TITLES": { + "PREFIX": "Ανοίξτε το Σχέδιο Διαχείρισης Δεδομένων - ", + "GENERAL": "Δημιουργός Σχεδίου Διαχείρισης Δεδομένων", + "ABOUT": "Σχετικά", + "PRIVACY": "Πολιτική Απορρήτου και Προστασίας Προσωπικών Δεδομένων", + "TERMS": "Όροι χρήσης", + "PLANS": "Τα Σχέδια Διαχείρισης Δεδομένων Μου", + "EXPLORE-PLANS": "Δημοσιευμένα Σχέδια Διαχείρισης Δεδομένων", + "QUICK-WIZARD": "Νέο Σχέδιο Διαχείρισης Δεδομένων (Wizard)", + "PLANS-NEW": "Νέο Σχέδιο Διαχείρισης Δεδομένων (Expert)", + "DATASETS": "Οι Περιγραφές Συνόλων Δεδομένων Μου", + "EXPLORE": "Δημοσιευμένες Περιγραφές Συνόλων Δεδομένων", + "DATASETCREATEWIZARD": "Προσθήκη Περιγραφής Συνόλου Δεδομένων (Wizard)", + "GRANTS": "Οι επιχορηγήσεις Μου", + "DMP-PROFILES": "Templates Σχεδίων Διαχείρισης Δεδομένων", + "DATASET-PROFILES": "Templates Περιγραφών Συνόλων Δεδομένων", + "USERS": "Χρήστες", + "PROFILE": "Το προφίλ μου", + "LOGIN": "Σύνδεση", + "DMP-OVERVIEW": "Επισκόπηση Σχεδίου Διαχείρισης Δεδομένων", + "DMP-EDIT": "Επεξεργασία Σχεδίου Διαχείρισης Δεδομένων", + "DATASET-EDIT": "Προβολή / Επεξεργασία Συνόλου Δεδομένων", + "DMP-NEW-VERSION": "Νέα έκδοση Σχεδίου Διαχείρισης Δεδομένων", + "DMP-CLONE": "Κλωνοποίηση Σχεδίου Διαχείρισης Δεδομένων", + "DATASET-NEW": "Νέα Περιγραφή Συνόλου Δεδομένων", + "GRANT-NEW": "Νέα Επιχορήγηση", + "GRANT-EDIT": "Προβολή / Επεξεργασία Επιχορήγησης", + "DMP-PROFILE-NEW": "Νέο template Σχεδίου Διαχείρισης Δεδομένων", + "DMP-PROFILE-EDIT": "Επεξεργασία template Σχεδίου Διαχείρισης Δεδομένων", + "DATASET-PROFILES-NEW": "Νέο template Περιγραφής Συνόλου Δεδομένων", + "DATASET-PROFILES-EDIT": "Επεξεργασία template Περιγραφής Συνόλου Δεδομένων", + "EXPLORE-PLANS-OVERVIEW": "Επισκόπηση Δημοσιευμένου Σχεδίου Διαχείρισης Δεδομένων", + "DATASET-PUBLIC-EDIT": "Προβολή Δημοσιευμένης Περιγραφής Συνόλου Δεδομένων", + "DMP-PUBLIC-EDIT": "Προβολή Δημοσιευμένου Σχεδίου Διαχείρισης Δεδομένων", + "DATASET-COPY": "Αντιγραφή Περιγραφής Συνόλου Δεδομένων", + "DATASET-UPDATE": "Ενημέρωση Περιγραφής Συνόλου Δεδομένων", + "DATASET-PROFILES-NEW-VERSION": "Νέα έκδοση του template Περιγραφής Συνόλου Δεδομένων", + "DATASET-PROFILES-CLONE": "Νέα Κλωνοποίηση του template Περιγραφής Συνόλου Δεδομένων", + "LANGUAGE-EDITOR": "Επεξεργασία γλώσσας", + "GUIDE-EDITOR": "Επεξεργασία Οδηγού Χρήσης", + "LANGUAGE": "Γλώσσα" + }, + "FILE-TYPES": { + "PDF": "PDF", + "XML": "XML", + "JSON": "JSON", + "DOC": "Document" + }, + "LANGUAGES": { + "ENGLISH": "Αγγλικά", + "GREEK": "Ελληνικά", + "SPANISH": "Ισπανικά" + } }, - "ACTIONS": { - "LOG-IN": "Είσοδος" + "COOKIE": { + "MESSAGE": "Αυτός ο ιστότοπος χρησιμοποιεί cookies για να βελτιώσει την εμπειρία του χρήστη.", + "DISMISS": "Αποδοχή", + "DENY": "Απόρριψη των cookies", + "LINK": "Μάθετε περισσότερα", + "POLICY": "Πολιτική για τα Cookies" }, - "LANGUAGES": { - "ENGLISH": "Αγγλικά", - "GREEK": "Ελληνικά", - "SPANISH": "Ισπανικά" + "EMAIL-CONFIRMATION": { + "EXPIRED-EMAIL": "Η πρόσκληση email έληξε", + "CARD-TITLE": "E-mail", + "REQUEST-EMAIL-HEADER": "Σχεδόν τελειώσαμε! Παρακαλώ συμπληρώστε το e-mail.", + "REQUEST-EMAIL-TEXT": "Θα πρέπει να επιβεβαιώσετε τη συναίνεσή σας για να χρησιμοποιήσετε την εφαρμογή.", + "SUBMIT": "Υποβολή", + "SENT-EMAIL-HEADER": "Το email στάλθηκε!", + "EMAIL-FOUND": "Το email είναι ήδη επιβεβαιωμένο." + }, + "HOME": { + "DMPS": "Σχέδια Διαχείρισης Δεδομένων", + "DATASETS": "Περιγραφές Συνόλων Δεδομένων", + "LOGIN": { + "TITLE": "Σύνδεση", + "TEXT": "Δεν χρειάζεται να έχετε καταχωρημένο λογαριασμό στο ARGOS" + } + }, + "NAV-BAR": { + "BREADCRUMB-ROOT": "Dashboard", + "TITLE": "ARGOS", + "GRANTS": "Επιχορηγήσεις", + "GRANT": "Επιχορήγηση", + "DMP": "Σχέδιo Διαχείρισης Δεδομένων", + "DMPS": "Σχέδια Διαχείρισης Δεδομένων", + "MY-DMPS": "Τα Σχέδια Διαχείρισης Δεδομένων Μου", + "DATASETS": "Περιγραφές Συνόλων Δεδομένων", + "DATASET": "Σύνολο Δεδομένων", + "PUBLIC-DATASETS": "Εξερευνήστε το ARGOS", + "USERS": "Χρήστες", + "DATASETS-ADMIN": "Templates Συνόλων Δεδομένων", + "DMP-PROFILES": "Templates Σχεδίων Διαχείρισης Δεδομένων", + "ABOUT": "Σχετικά", + "MY-DATASET-DESCRIPTIONS": "ΤΑ ΣΧΕΔΙΑ ΔΙΑΧΕΙΡΙΣΗΣ ΔΕΔΟΜΕΝΩΝ ΜΟΥ", + "DATASET-DESCRIPTION-WIZARD": "Wizard Περιγραφών Συνόλων Δεδομένων", + "PUBLIC DATASETS": "ΔΗΜΟΣΙΕΥΜΕΝΕΣ ΠΕΡΙΓΡΑΦΕΣ ΣΥΝΟΛΩΝ ΔΕΔΟΜΕΝΩΝ", + "PUBLIC-DMPS": "ΔΗΜΟΣΙΕΥΜΕΝΑ ΣΧΕΔΙΑ ΔΙΑΧΕΙΡΙΣΗΣ ΔΕΔΟΜΕΝΩΝ", + "HOME": "ΑΡΧΙΚΗ", + "DMP-WIZARD": "Wizard Σχεδίων Διαχείρισης Δεδομένων", + "DATASET-TEMPLATES": "TEMPLATES ΣΥΝΟΛΩΝ ΔΕΔΟΜΕΝΩΝ", + "TEMPLATE": "TEMPLATE", + "DMP-TEMPLATES": "TEMPLATES ΣΧΕΔΙΩΝ ΔΙΑΧΕΙΡΙΣΗΣ ΔΕΔΟΜΕΝΩΝ", + "USERS-BREADCRUMB": "ΧΡΗΣΤΕΣ", + "SEARCH": { + "DATASET": "Περιγραφή Συνόλου Δεδομένων", + "DMP": "Σχέδιο Διαχείρισης Δεδομένων", + "GRANT": "Επιχορήγηση", + "PUBLISHED": "Δημοσιευμένο" + } + }, + "SIDE-BAR": { + "GENERAL": "ΓΕΝΙΚΑ", + "ABOUT": "Σχετικά", + "DASHBOARD": "Αρχική", + "DMP": "ΣΧΕΔΙΑ ΔΙΑΧΕΙΡΙΣΗΣ ΔΕΔΟΜΕΝΩΝ", + "MY-DMPS": "Τα δικά μου Σχέδια Διαχείρισης Δεδομένων", + "DATASETS": "ΠΕΡΙΓΡΑΦΕΣ ΣΥΝΟΛΟΥ ΔΕΔΟΜΕΝΩΝ", + "GRANTS": "ΕΠΙΧΟΡΗΓΗΣΗ", + "NEW DATASET": "Νέα Περιγραφή Συνόλου Δεδομένων", + "QUICK-WIZARD": "Νέο Σχέδιο Διαχείρισης Δεδομένων (Wizard)", + "QUICK-WIZARD-DATASET": "Προσθήκη Περιγραφής Συνόλου Δεδομένων (Wizard)", + "ADD-EXPERT": "Νέο Σχέδιο Διαχείρισης Δεδομένων(Expert)", + "MY-DATASET-DESC": "Οι δικές μου Περιγραφές Συνόλου Δεδομένων", + "MY-GRANTS": "Οι επιχορηγήσεις μου", + "HISTORY": "ΙΣΤΟΡΙΚΟ", + "HISTORY-VISITED": "ΤΕΛΕΥΤΑΙΑ ΕΠΙΣΚΕΨΗ", + "HISTORY-EDITED": "ΤΕΛΕΥΤΑΙΑ ΕΠΕΞΕΡΓΑΣΙΑ", + "PUBLIC": "ΔΗΜΟΣΙΕΥΜΕΝΑ", + "PUBLIC-DMPS": "Δημοσιευμένα Σχέδια Διαχείρισης Δεδομένων", + "PUBLIC-DESC": "Δημοσιευμένες Περιγραφές Συνόλου Δεδομένων", + "ACCOUNT": "ΛΟΓΑΡΙΑΣΜΟΣ", + "ADMIN": "ΔΙΑΧΕΙΡΙΣΤΗΣ", + "DATASET-TEMPLATES": "Templates Περιγραφών Συνόλου Δεδομένων", + "DMP-TEMPLATES": "Templates Σχεδίων Διαχείρισης Δεδομένων", + "USERS": "Users", + "LANGUAGE-EDITOR": "Επεξεργαστής Γλώσσας", + "GUIDE-EDITOR": "Οδηγός Χρήστη" + }, + "DATASET-PROFILE-EDITOR": { + "TITLE": { + "NEW": "Νέο API", + "NEW-PROFILE": "Νέο Template Περιγραφής Συνόλου Δεδομένων", + "NEW-PROFILE-VERSION": "Νέα Έκδοση", + "NEW-PROFILE-CLONE": "Νέος Κλώνος" + }, + "FIELDS": { + "DATASET-TITLE": "Template Περιγραφής Συνόλου Δεδομένων", + "DATASET-DESCRIPTION": "Περιγραφή", + "ROLES": "Ρόλοι" + }, + "STEPS": { + "PAGES": { + "TITLE": "Περιγραφή Σελίδας", + "PAGE-PREFIX": "Σελίδα", + "PAGE-INPUT-TITLE": "Τίτλος Σελίδας", + "DATASET-DETAILS": "Λεπτομέρειες Περιγραφής Συνόλου Δεδομένων", + "EXTERNAL-REFERENCES": "Εξωτερικές Πηγές", + "DESCRIPTION": "Περιγραφή" + }, + "FORM": { + "TITLE": "Φόρμα Περιγραφής", + "SECTION": { + "TITLE": "Πληροφορίες Ενότητας", + "FIELDS": { + "ID": "Ενότητα Μοναδικού Αναγνωριστικού", + "TITLE": "Ενότητα Ονομασίας", + "PAGE": "Αναμένεται εμφάνιση σελίδας", + "ORDER": "Εντολή", + "DESCRIPTION": "Περιγραφή", + "FIELDS-TITLE": "Πεδία", + "SUB-SECTIONS-TITLE": "Υπο-ενότητες" + }, + "ACTIONS": { + "ADD-SUB-SECTION": "Προσθήκη Υπο-ενότητας +", + "ADD-FIELD": "Προσθήκη Πεδίου +" + } + }, + "COMPOSITE-FIELD": { + "TITLE": "Σύνθετες Πληροφορίες Πεδίου", + "SIMPLE-FIELD-TITLE": "Πληροφορίες Πεδίου", + "SUB-FIELDS-TITLE": "Πεδία Υπο-ομάδων", + "FIELDS": { + "COMPOSITE-CHECKBOX": "Σύνθετα Πεδία", + "MULTIPLICITY-CHECKBOX": "Πολλαπλότητα", + "COMMENT-CHECKBOX": "Προσθήκη Σχολίου στο Πεδίο", + "COMPOSITE-TITLE": "Ονομασία Σύνθετου Πεδίου", + "FIELD-TITLE": "Ονομασία Πεδίου", + "DESCRIPTION": "Περιγραφή", + "EXTENDED-DESCRIPTION": "Εκτενής Περιγραφή", + "ADDITIONAL-INFORMATION": "Επιπλέον Πληροφορίες", + "MULTIPLICITY-MIN": "Ελάχιστη τιμή Min", + "MULTIPLICITY-MAX": "Μέγιστη τιμή Max", + "MULTIPLICITY-ADD-ONE-FIELD": "Προσθήκη ακόμα ενός πεδίου", + "ORDER": "Εντολή", + "COMMENT-PLACEHOLDER": "Παρακαλώ προσδιορίστε", + "COMMENT-HINT": "Προσθέστε επιπλέον πληροφορίες ή αιτιολόγηση σχετικά με την επιλογή σας", + "RDA-COMMON-STANDARDS": "RDA Common Standards" + }, + "ACTIONS": { + "ADD-CHILD-FIELD": "Προσθήκη Πεδίου Υπο-ομάδας +" + } + }, + "FIELD": { + "FIELDS": { + "RULES-TITLE": "Κανονισμοί Ορατότητας", + "FIELD-RULES-VALUE": "Τιμή", + "ID": "Ενότητα Μοναδικού Αναγνωριστικού", + "VIEW-STYLE": "Τύπος", + "MULTIPLICITY-MIN": "Ελάχιστη Τιμή Max", + "MULTIPLICITY-MAX": "Μέγιστη Τιμή Min", + "ORDER": "Εντολή", + "DEFAULT-VALUE": "Εξορισμού Τιμή", + "VALIDATION": "Επιβεβαίωση", + "MULTIPLICITY-CHECKBOX": "Πολλαπλότητα", + "FIELD-TEXT-AREA-TITLE": "Περιοχή Κειμένου Δεδομένων", + "FIELD-TEXT-AREA-PLACEHOLDER": "Τοποθέτηση placeholder", + "FIELD-BOOLEAN-DECISION-TITLE": "Boolean Δεδομένα", + "FIELD-BOOLEAN-DECISION-PLACEHOLDER": "Τοποθέτηση placeholder", + "FIELD-CHECKBOX-TITLE": "Πλαίσιο Ελέγχου Δεδομένων", + "FIELD-CHECKBOX-PLACEHOLDER": "Τοποθέτηση placeholder", + "FIELD-FREE-TEXT-TITLE": "Ελεύθερο Κείμενο Δεδομένων", + "FIELD-FREE-TEXT-PLACEHOLDER": "Τοποθέτηση placeholder", + "FIELD-COMBO-BOX-TYPE": "Τύπος Σύνθετου Πλασίου", + "FIELD-WORD-LIST-TITLE": "Λίστα Λέξεων Δεδομένων", + "FIELD-WORD-LIST-PLACEHOLDER": "Τοποθέτηση placeholder", + "FIELD-WORD-LIST-LABEL": "Ετικέτα", + "FIELD-WORD-LIST-VALUE": "Τιμή", + "FIELD-INTERNAL-DMP-ENTITIES-TYPE": "Τύπος εσωτερικής οντότητας Σχεδίου Διαχείρισης Δεδομένων", + "FIELD-RESEARCHERS-TITLE": "Αυτόματη Συμπλήρωση Ερευνητών", + "FIELD-RESEARCHERS-PLACEHOLDER": "Τοποθέτηση placeholder", + "FIELD-DATASETS-PLACEHOLDER": "Τοποθέτηση placeholder", + "FIELD-DMPS-PLACEHOLDER": "Τοποθέτηση placeholder", + "FIELD-RADIO-BOX-TITLE": "Πλαίσιο Επιλογής Δεδομένων", + "FIELD-RADIO-BOX-PLACEHOLDER": "Τοποθέτηση placeholder", + "FIELD-RADIO-BOX-LABEL": "Ετικέτα", + "FIELD-RADIO-BOX-VALUE": "Τιμή", + "FIELD-AUTOCOMPLETE-TITLE": "Αυτόματη Συμπλήρωση Δεδομένων", + "FIELD-AUTOCOMPLETE-PLACEHOLDER": "Τοποθέτηση placeholder", + "FIELD-AUTOCOMPLETE-LABEL": "Ετικέτα", + "FIELD-AUTOCOMPLETE-VALUE": "Τιμή", + "FIELD-AUTOCOMPLETE-SOURCE": "Πηγή", + "FIELD-AUTOCOMPLETE-URL": "Url", + "FIELD-AUTOCOMPLETE-OPTIONS-ROOT": "Βάση Επιλογών", + "FIELD-DATE-PICKER-TITLE": "Επιλογή Ημερομηνίας", + "FIELD-DATE-PICKER-PLACEHOLDER": "Τοποθέτηση placeholder", + "FIELD-DATE-PICKER-LABEL": "Ετικέτα", + "FIELD-DATE-PICKER-VALUE": "Τιμή", + "FIELD-MULTIPLE-AUTOCOMPLETE": "Πολλαπλή Αυτόματη Συμπλήρωση" + }, + "DEFAULT-VALUES": { + "NONE": "Κανένα", + "BOOLEAN-DECISION": { + "YES": "Ναι", + "NO": "Όχι" + }, + "CHECK-BOX": { + "CHECKED": "Επιλεγμένα", + "UNCHECKED": "Μη-επιλεγμένα" + } + }, + "ACTIONS": { + "ADD-RULE": "Προσθήκη Κανονισμού Ορατότητας +" + } + }, + "RULE": { + "FIELDS": { + "RULE-TYPE": "Τύπος Κανονισμού", + "TARGET": "Ταυτοποίηση στοχοθετημένου πεδίου", + "VALUE": "Απαιτούμενη τιμή", + "RULE-IF": "Εάν η τιμή είναι", + "RULE-THEN": "τότε δείξε το Πεδίο με ταυτοποίηση" + } + } + } + }, + "ACTIONS": { + "SAVE": "Αποθήκευση", + "FINALIZE": "Οριστικοποίηση", + "UPDATE": "Ενημέρωση", + "CANCEL": "Ακύρωση", + "DELETE": "Διαγραφή", + "ADD-PAGE": "Προσθήκη Σελίδας +", + "ADD-SECTION": "Προσθήκη Ενότητας +" + } + }, + "GRANT-LISTING": { + "TITLE": "Επιχορηγήσεις", + "SUBTITLE": "Υπότιτλος Επιχορήγησης", + "ACTIONS": { + "NEW": "Νέα Επιχορήγηση" + } + }, + "DMP-LISTING": { + "TITLE": "Σχέδια Διαχείρισης Δεδομένων", + "OWNER": "Κάτοχος", + "MEMBER": "Μέλος", + "CREATOR": "Συντάκτης", + "COLUMNS": { + "NAME": "Τίτλος", + "GRANT": "Επιχορήγηση", + "PROFILE": "Template", + "CREATION-TIME": "Χρονική Περίοδος Δημιουργίας", + "ORGANISATIONS": "Οργανισμοί", + "LATEST_VERSION": "Τελευταία Έκδοση", + "ACTIONS": "Δράσεις", + "DATASETS": "Περιγραφές Δεδομένων", + "STATUS": "Κατάσταση", + "PEOPLE": "ʼνθρωποι", + "VERSION": "Έκδοση" + }, + "ACTIONS": { + "NEW": "Νέο Σχέδιο Διαχείρισης Δεδομένων", + "NEW-WITH-WIZARD": "Νέο Σχέδιο Διαχείρισης Δεδομένων χρησιμοποιώντας τον wizard", + "EDIT": "Επεξεργασία", + "INVITE": "Πρόσκληση Συνεργατών", + "ADD-DATASET": "Προσθήκη Περιγραφής Συνόλου Δεδομένων στο Σχέδιο Διαχείρισης Δεδομένων", + "DATASETS": "Κατάλογος όλων των Περιγραφών Συνόλου Δεδομένων", + "NEW-VERSION": "Νέα Έκδοση", + "VIEW-VERSION": "Όλες οι Εκδόσεις Σχεδίων Διαχείρισης Δεδομένων", + "CLONE": "Κλώνος", + "DELETE": "Διαγραφή", + "EXPORT": "Εξαγωγή", + "PUBLISH": "Δημοσίευση", + "FINALIZE": "Οριστικοποίηση", + "ADV-EXP": "Προχωρημένη Εξαγωγή", + "EXP-AS": "Εξαγωγή ως", + "DOWNLOAD-XML": "Λήψη XML", + "DOWNLOAD-DOCX": "Λήψη Document", + "DOWNLOAD-PDF": "Λήψη PDF", + "SETTINGS": "Ρυθμίσεις", + "GETDOI": "Λήψη μονοσήμαντου αναγνωριστικού ψηφιακού αντικειμένου (DOI)" + }, + "TOOLTIP": { + "DMP-STATUS": { + "DRAFT": "Ιδιωτική Πρόσβαση - Επεξεργάσιμο Σχέδιο Διαχείρισης Δεδομένων", + "FINALIZED": "Ιδιωτική Πρόσβαση - Κλειστό Σχέδιο Διαχείρισης Δεδομένων", + "PUBLISHED": "Δημόσια Πρόσβαση - Κλειστό Σχέδιο Διαχείρισης Δεδομένων" + }, + "LEVEL-OF-ACCESS": "Επίπεδο Πρόσβασης", + "INVOLVED-DATASETS": "Εμπλεκόμενες Περιγραφές Συνόλων Δεδομένων", + "TEMPLATES-INVOLVED": "Εμπλεκόμενα Templates Περιγραφών Συνόλων Δεδομένων" + }, + "VIEW-ALL-VERSIONS": "Όλες οι εκδόσεις" + }, + "DMP-PUBLIC-LISTING": { + "TITLE": "Δημοσιευμένα Σχέδια Διαχείρισης Δεδομένων", + "OWNER": "Κάτοχος", + "MEMBER": "Μέλος", + "CREATOR": "Συντάκτης", + "VIEW-ONLY": "Μόνο Προβολή", + "TOOLTIP": { + "PUBLISHED": "Δημόσια Πρόσβαση - Κλειστό Σχέδιο Διαχείρισης Δεδομένων", + "INVOLVED-DATASETS": "Εμπλεκόμενες Περιγραφές Συνόλων Δεδομένων", + "TEMPLATES-INVOLVED": "Εμπλεκόμενα Templates Περιγραφών Συνόλων Δεδομένων" + } + }, + "DMP-UPLOAD": { + "TITLE": "Εισαγωγή Σχεδίου Διαχείρισης Δεδομένων", + "UPLOAD-BUTTON": "Μεταφόρτωση", + "UPLOAD-SUCCESS": "Επιτυχής Εισαγωγή", + "ACTIONS": { + "IMPORT": "Εισαγωγή", + "CANCEL": "Ακυρωση" + }, + "PLACEHOLDER": "Τίτλος Σχεδίου Διαχείρισης Δεδομένων" + }, + "DATASET-WIZARD": { + "TITLE": { + "NEW": "Νεα Περιγραφή Συνόλου Δεδομένων" + }, + "EDITOR": { + "FIELDS": { + "EXTERNAL-DATASET-TYPE": "Τύπος", + "EXTERNAL-AUTOCOMPLETE-SUBTITLE": "Πηγή: ", + "EXTERNAL-AUTOCOMPLETE-NO-SOURCE": "Μη διαθέσιμη πηγή" + } + }, + "FIRST-STEP": { + "TITLE": "Πληροφορίες Περιγραφής Συνόλου Δεδομένων", + "DMP": "Σχέδιο Διαχείρισης Δεδομένων", + "PROFILE": "Template Περιγραφής Συνόλου Δεδομένων", + "SUB-TITLE": "Δημιουργήθηκε για: " + }, + "SECOND-STEP": { + "TITLE": "Εξωτερικές Πηγές", + "EXTERNAL-HINT": "Κατάλογος τιμών που παρέχονται από εξωτερικές πηγές" + }, + "THIRD-STEP": { + "TITLE": "Περιγραφή" + }, + "ACTIONS": { + "NEXT": "Επόμενο", + "BACK": "Πίσω", + "DELETE": "Διαγραφή", + "GO-TO-GRANT": "Μετάβαση σε Περιγραφή Συνόλου Δεδομένων της Επιχορήγησης", + "GO-TO-DMP": "Μετάβαση σε Περιγραφή Συνόλου Δεδομένων του Σχεδίου Διαχείρισης Δεδομένων", + "SAVE": "Save", + "SAVE-AND-FINALISE": "Αποθήκευση και Οριστικοποίηση", + "FINALIZE": "Οριστικοποίηση", + "REVERSE": "Αναίρεση Οριστικοποίησης", + "INFO": "Σύνολα Δεδομένων των οριστικοποιημένων Σχεδίων Διαχείρισης Δεδομένων δεν μπορούν να επανεπεξεργασθούν στην ίδια έκδοση", + "LOCK": "Το Σύνολο Δεδομένων είναι κλειδωμένο", + "DOWNLOAD-PDF": "Λήψη PDF", + "DOWNLOAD-XML": "Λήψη XML", + "DOWNLOAD-DOCX": "Ληψη DOCX", + "COPY-DATASET": "Αντιφραφή Περιγραφής Συνόλου Δεδομένων", + "UPDATE-DATASET-PROFILE": "Ενημέρωση Template" + }, + "MESSAGES": { + "DATASET-NOT-FOUND": "Η Περιγραφή Συνόλου Δεδομένων δεν υπάρχει", + "DATASET-NOT-ALLOWED": "Δεν έχετε πρόσβαση σε αυτή την Περιγραφή Συνόλου Δεδομένων", + "SUCCESS-UPDATE-DATASET-PROFILE": "Επιτυχία ενημέρωσης της Περιγραφής Συνόλου Δεδομένων" + }, + "UPLOAD": { + "UPLOAD-XML": "Εισαγωγή", + "UPLOAD-XML-FILE-TITLE": "Εισαγωγή Template Περιγραφής Συνόλου Δεδομένων", + "UPLOAD-XML-NAME": "Τίτλος Template Περιγραφής Συνόλου Δεδομένων", + "UPLOAD-XML-IMPORT": "Αρχείο", + "UPLOAD-XML-FILE-CANCEL": "Ακύρωση" + }, + "DIALOGUE": { + "TITLE": "Αντιγραφή Περιγραφής Συνόλου Δεδομένων στο Σχέδιο Διαχείρισης Δεδομένων", + "DMP-SEARCH": { + "PLACEHOLDER": "Αναζήτηση Σχεδίου Διαχείρισης Δεδομένων" + }, + "COPY": "Αντιγραφή", + "CANCEL": "Ακύρωση", + "ERROR-MESSAGE": "Αυτο το Template Περιγραφής Συνόλου Δεδομένων δεν περιέχεται" + } + }, + "DMP-OVERVIEW": { + "GRANT": "Επιχορήγηση", + "RESEARCHERS": "Ερευνητές", + "COLLABORATORS": "Συνεργάτες", + "TOOLTIP": { + "LEVEL-OF-ACCESS": "Επίπεδο Πρόσβασης", + "INVOLVED-DATASETS": "Εμπλεκόμενες Περιγραφές Συνόλου Δεδομένων", + "TEMPLATES-INVOLVED": "Εμπλεκόμενα Templates Περιγραφής Συνόλου Δεδομένων" + }, + "ERROR": { + "DELETED-DMP": "Το επιλεγμένο Σχέδιο Διαχείρισης Δεδομένων θα διαγραφεί", + "FORBIDEN-DMP": "Δεν επιτρέπεται η πρόσβαση σε αυτό το Σχέδιο Διαχείρισης Δεδομένων" + } + }, + "DATASET-LISTING": { + "TITLE": "Περιγραφές Συνόλων Δεδομένων", + "SELECT-DATASETS-TO-CLONE": "Επιλογή των συνόλων δεδομένων που θα συμπεριληφθούν στο νέο Σχέδιο Διαχείρισης Δεδομένων. Τα επιλεγμένα σύνολα δεδομένα θα είναι επεξεργάσιμα.", + "SELECT-DATASETS-NONE": "Μη διαθέσιμες Περιγραφές Συνόλου Δεδομένων για αυτό το Σχέδιο Διαχείρισης Δεδομένων", + "COLUMNS": { + "NAME": "Τίτλος", + "REFERNCE": "Αναφορά", + "GRANT": "Επιχορήγηση", + "URI": "Uri", + "STATUS": "Κατάσταση", + "DESCRIPTION": "Περιγραφή", + "CREATED": "Δημιουργημένα", + "PUBLISHED": "Δημοσιευμένα", + "FINALIZED": "Οριστικοποιημένα", + "LAST-EDITED": "Τελευταία Επεξεργασία", + "ACTIONS": "Δράσεις", + "DMP": "Σχέδιο Διαχείρισης Δεδομένων", + "PROFILE": "Template", + "DATAREPOSITORIES": "Αποθετήρια Δεδομένων", + "REGISTRIES": "Κατάλογος", + "SERVICES": "Υπηρεσίες" + }, + "ACTIONS": { + "EDIT": "Επεξεργασία", + "MAKE-IT-PUBLIC": "Δημοσιοποιήστε", + "VIEW": "Προβολή", + "NEW": "Νέα Περιγραφή Συνόλου Δεδομένων", + "CREATE-NEW": "Δημιουργία νέας Περιγραφής Συνόλου Δεδομένων" + }, + "TOOLTIP": { + "DATASET-STATUS": { + "DRAFT": "Ιδιωτική πρόσβαση - Επεξεργάσιμη Περιγραφή Συνόλου Δεδομένων", + "FINALIZED": "Ιδιωτική πρόσβαση - Κλειστή Περιγραφή Συνόλου Δεδομένων" + }, + "DMP": "Σχέδιο Διαχείρισης Δεδομένων", + "GRANT": "Επιχορήγηση", + "TEMPLATES-INVOLVED": "Template Περιγραφής Συνόλου Δεδομένων", + "VERSION": "Έκδοση Σχεδίου Διαχείρισης Δεδομένων" + } + }, + "DATASET-PUBLIC-LISTING": { + "TITLE": "Δημοσιευμένες Περιγραφές Συνόλων Δεδομένων", + "TOOLTIP": { + "FINALIZED": "Ιδιωτική πρόσβαση - Κλειστή Περιγραφή Συνόλου Δεδομένων", + "DMP": "Σχέδιο Διαχείρισης Δεδομένων", + "GRANT": "Επιχορήγηση", + "TEMPLATES-INVOLVED": "Template Περιγραφής Συνόλου Δεδομένων" + } + }, + "DATASET-PROFILE-LISTING": { + "TITLE": "Templates Περιγραφής Συνόλου Δεδομένων", + "COLUMNS": { + "NAME": "Τίτλος", + "REFERNCE": "Αναφορά", + "GRANT": "Επιχορήγηση", + "URI": "Uri", + "ROLE": "Ρόλος", + "TEMPLATE": "Template", + "ORGANIZATION": "Οργανισμός", + "STATUS": "Κατάσταση", + "VISITED": "Επισκεψιμότητα", + "EDITED": "Επεξεργασμένα", + "DESCRIPTION": "Περιγραφή", + "CREATED": "Δημιουργημένα", + "ACTIONS": "Δράσεις", + "DMP": "Σχέδιο Διαχείρισης Δεδομένων", + "PROFILE": "Template", + "DATAREPOSITORIES": "Αποθετήρια Δεδομένων", + "REGISTRIES": "Κατάλογοι", + "SERVICES": "Υπηρεσίες" + }, + "ACTIONS": { + "EDIT": "Επεξεργασία", + "MAKE-IT-PUBLIC": "Δημοσιοποιήστε", + "VIEW": "Προβολή", + "CLONE": "Κλώνος", + "NEW-VERSION": "Νέα Έκδοση", + "VIEW-VERSIONS": "Όλες οι εκδόσεις των Templates Περιγραφής Συνόλου Δεδομένων" + } + }, + "DATASET-UPLOAD": { + "TITLE": "Εισαγωγή Περιγραφής Συνόλου Δεδομένων", + "UPLOAD-BUTTON": "Μεταφόρτωση", + "ACTIONS": { + "IMPORT": "Εισαγωγή", + "CANCEL": "Ακύρωση" + }, + "PLACEHOLDER": "Τίτλος Περιγραφής Συνόλου Δεδομένων", + "DATASET-PROFILE": { + "SELECT": "Επιλογή Template Περιγραφής Συνόλου Δεδομένων" + }, + "SNACK-BAR": { + "SUCCESSFUL-CREATION": "Επιτυχία Εισαγωγής", + "UNSUCCESSFUL": "Κάτι πήγε στραβά" + } + }, + "DMP-PROFILE-EDITOR": { + "TITLE": { + "NEW": "Νέο Template Σχεδίου Διαχείρισης Δεδομένων", + "EDIT": "Επεξεργασία" + }, + "FIELDS": { + "TITLE": "Πεδία", + "LABEL": "Τίτλος", + "TYPE": "Τύπος", + "DATATYPE": "Τύπος Δεδομένων", + "REQUIRED": "Υποχρεωτικά", + "EXTERNAL-AUTOCOMPLETE": { + "TITLE": "Αυτόματη Συμπλήρωση Δεδομένων", + "MULTIPLE-AUTOCOMPLETE": "Πολλαπλή Αυτόματη Συμπλήρωση", + "PLACEHOLDER": "Τοποθέτηση placeholder", + "URL": "Url", + "OPTIONS-ROOT": "Βάση Επιλογών", + "LABEL": "Ετικέτα", + "VALUE": "Τιμή" + } + }, + "ACTIONS": { + "SAVE": "Αποθήκευση", + "CANCEL": "Ακύρωση", + "DELETE": "Διαγραφή", + "FINALIZE": "Οριστικοποίηση", + "DOWNLOAD-XML": "Ληψη XML" + } + }, + "GRANT-EDITOR": { + "TITLE": { + "NEW": "Νέα Επιχορήγηση", + "EDIT": "Επεξεργασία" + }, + "FIELDS": { + "LABEL": "Τίτλος", + "ABBREVIATION": "Συντόμευση", + "URI": "URL", + "START": "Έναρξη", + "END": "Λήξη", + "DESCRIPTION": "Περιγραφή", + "LOGO": "Λογότυπο Επιχορήγησης" + }, + "ACTIONS": { + "SAVE": "Αποθήκευση", + "CANCEL": "Ακύρωση", + "DELETE": "Διαγραφή", + "GO-TO-DMPS": "Μεταβείτε στα Σχέδια Διαχείρισης Δεδομένων", + "VISIT-WEBSITE": "Επίσκεψη Ιστοσελίδας" + } + }, + "DMP-EDITOR": { + "TITLE": { + "NEW": "Νέα Σχέδιο Διαχείρισης Δεδομένων", + "EDIT": "Επεξεργασία", + "SUBTITLE": "Μονοσήμαντο Αναγνωριστικό Ψηφιακού Αντικειμένου (DOI)" + }, + "FIELDS": { + "NAME": "Τίτλος", + "RELATED-GRANT": "Σχετική Επιχορήγηση", + "DESCRIPTION": "Περιγραφή", + "ORGANISATIONS": "Οργανισμοί", + "ORGANISATIONS-HINT": "Προσθήκη ονομάτων των οργανισμών που συνεισφέρουν στη δημιουργία και αναθεώρηση των Σχεδίων Διαχείρισης Δεδομένων", + "RESEARCHERS": "Ερευνητές", + "TEMPLATES": "Templates", + "TEMPLATE": "Template Σχεδίου Διαχείρισης Δεδομένων", + "DATASET-TEMPLATES": "Σχετικά Templates Περιγραφής Συνόλου Δεδομένων", + "PROFILE": "Template Σχεδίου Διαχείρισης Δεδομένων", + "PROJECT": "Έργο", + "GRANT": "Επιχορήγηση", + "FUNDER": "Χορηγός", + "STATUS": "Κατάσταση Σχεδίου Διαχείρισης Δεδομένων", + "EXTERNAL-SOURCE-HINT": "Κατάλογος των τιμών που παρέχονται από εξωτερικές πηγές", + "COLLABORATORS": "Συνεργάτες" + }, + "ACTIONS": { + "GO-TO-GRANT": "Μεταβείτε στην Επιχορήγηση Σχεδίου Διαχείρισης Δεδομένων", + "GO-TO-DATASETS": "Μεταβείτε στις Περιγραφές Συνόλου Δεδομένων", + "SAVE-CHANGES": "Αποθήκευση Αλλαγών", + "SAVE": "Αποθήκευση", + "CANCEL": "Ακύρωση", + "DELETE": "Διαγραφή", + "FINALISE": "Οριστικοποίηση", + "LOCK": "Κλειδωμένο Σχέδιο Διαχείρισης Δεδομένων", + "PERMISSION": "Δεν έχετε άδεια να επεξεργαστείτε αυτό το Σχέδιο Διαχείρισης Δεδομένων" + }, + "SNACK-BAR": { + "UNSUCCESSFUL-DOI": "Αποτυχία δημιουργίας Μονοσήμαντων Αναγνωριστικών Ψηφιακών Αντικειμένων (DOI)", + "SUCCESSFUL-DOI": "Επιτυχία δημιουργίας Μονοσήμαντων Αναγνωριστικών Ψηφιακών Αντικειμένων (DOI)", + "UNSUCCESSFUL-FINALIZE": "Αποτυχία οριστικοποιήσης Σχεδίου Διαχείρισης Δεδομένων" + }, + "DATASET-TEMPLATE-LIST": { + "TITLE": "Διαθέσιμα Templates Συνόλου Δεδομένων", + "TEXT": "Επιλογή Χαρακτηριστικών Συνόλου Δεδομένων:", + "OK": "OK" + } + }, + "DMP-PROFILE-LISTING": { + "TITLE": "Templates Σχεδίων Διαχείρισης Δεδομένων", + "COLUMNS": { + "NAME": "Τίτλος", + "STATUS": "Κατάσταση", + "CREATED": "Δημιουργημένα", + "PUBLISHED": "Δημοσιευμένα", + "LAST-EDITED": "Τελευταία Επεξεργασία" + }, + "UPLOAD": { + "UPLOAD-XML": "Εισαγωγή", + "UPLOAD-XML-FILE-TITLE": "Εισαγωγή Template Σχεδίου Διαχείρισης Δεδομένων", + "UPLOAD-XML-NAME": "Τίτλος Template Σχεδίου Διαχείρισης Δεδομένων", + "UPLOAD-XML-IMPORT": "Αρχείο", + "UPLOAD-XML-FILE-CANCEL": "Ακύρωση" + } + }, + "DYNAMIC-FORM": { + "FIELDS": { + "LABEL": "Ετικέτα" + }, + "ACTIONS": { + "PREVIEW": "Προεπισκόπηση", + "ADD-PAGE": "Προσθήκη Σελίδας +", + "ADD-SECTION": "Προσθήκη Ενότητας +" + } + }, + "CRITERIA": { + "FILTERS": "Φίλτρα", + "GRANTS": { + "LIKE": "Αναζήτηση", + "PERIOD-FROM": "Έναρξη Επιχορήγησης", + "PERIOD-TO": "Λήξη Επιχορήγησης", + "GRANT-STATE-TYPE": "Κατάσταση Επιχορήγησης", + "TYPES": { + "NONE": "-", + "ON-GOING": "Σε εξέλιξη", + "FINISHED": "Ολοκληρωμένο" + } + }, + "DATASET-PROFILE": { + "LIKE": "Αναζήτηση" + }, + "DATA-SETS": { + "PERIOD-FROM": "Έναρξη", + "PERIOD-TO": "Λήξη", + "STATUS": "Κατάσταση", + "NONE": "-", + "TAGS": "Ετικέτες", + "SELECT-TAGS": "Επιλογή Ετικέτας", + "LIKE": "Αναζήτηση Περιγραφών Συνόλου Δεδομένων", + "SELECT-GRANTS": "Επιλογή Επιχορηγήσεων", + "ROLE": "Ρόλος", + "ORGANIZATION": "Οργανισμός", + "SELECT-ORGANIZATIONS": "Επιλογή Οργανισμών", + "SELECT-SPEC": "Επιλογή Προδιαγραφών Περιγραφής Συνόλου Δεδομένων", + "RELATED-GRANT": "Σχετική Επιχορήγηση", + "SELECT-DMP": "Επιλογή Σχεδίου Διαχείρισης Δεδομένων", + "RELATED-DMP": "Σχετικά Σχέδια Διαχείρισης Δεδομένων", + "SELECT-COLLABORATORS": "Επιλογή Συνεργατών", + "RELATED-COLLABORATORS": "Σχετικοί Συνεργάτες", + "SELECT-DATASET-TEMPLATES": "Επιλογή Templates Περιγραφής Συνόλου Δεδομένων", + "RELATED-DATASET-TEMPLATES": "Σχετικά Templates Περιγραφής Συνόλων Δεδομένων", + "ALL-VERSIONS": "Από όλες τις Εκδόσεις" + }, + "DMP": { + "LIKE": "Αναζήτηση Σχεδίων Διαχείρισης Δεδομένων", + "GRANTS": "Επιχορηγήσεις", + "SELECT-GRANTS": "Επιλογή Επιχορηγήσεων", + "SELECT-COLLABORATORS": "Επιλογή Συνεργατών", + "RELATED-COLLABORATORS": "Σχετικοί Συνεργάτες", + "SELECT-DATASET-TEMPLATES": "Επιλογή Templates Περιγραφής Συνόλου Δεδομένων", + "RELATED-DATASET-TEMPLATES": "Σχετικά Templates Περιγραφής Συνόλων Δεδομένων" + }, + "USERS": { + "LABEL": "Αναζήτηση", + "ROLE": "Ρόλος" + }, + "SELECT": "Επιλογή" + }, + "DATASET-EDITOR": { + "TITLE": { + "NEW": "Νέο Σχέδιο Διαχείρισης Δεδομένων", + "EDIT": "Επεξεργασία" + }, + "FIELDS": { + "NAME": "Τίτλος Περιγραφής Συνόλου Δεδομένων", + "DESCRIPTION": "Περιγραφή", + "PROFILE": "Template", + "URI": "Uri", + "DMP": "Σχέδιο Διαχείρισης Δεδομένων", + "DATAREPOSITORIES": "Αποθετήρια Δεδομένων", + "REGISTRIES": "Κατάλογοι", + "SERVICES": "Υπηρεσίες", + "EXTERNAL-DATASETS": "Εξωτερικά Σύνολα Δεδομένων", + "EXTERNAL-DATASETS-DESCRIPTION": "Τα Σύνολα Δεδομένων που σχετίζονται με αυτά που περιγράφονται στο Σχέδιο Διαχείρισης Δεδομένων, είτε χρησιμοποιούνται για την παραγωγή του είτε είναι παράγωγα ή υποπροϊόν της χρήσης του.", + "EXTERNAL-DATASET-TYPE": "Τύπος Εξωτερικού Συνόλου Δεδομένων", + "EXTERNAL-DATASET-INFO": "Πληροφορίες για το Εξωτερικό Σύνολο Δεδομένων", + "DATAREPOSITORIES-INFO": "Πληροφορίες για τα Αποθετήρια Δεδομένων", + "TAGS": "Ετικέτες", + "CREATE": "Δημιουργία νέου" + }, + "ACTIONS": { + "SAVE": "Αποθήκευση", + "CANCEL": "Ακύρωση", + "DELETE": "Διαγραφή" + }, + "VERSION-DIALOG": { + "ABOUT": "Η δημιουργία νέας έκδοσης συμβαίνει αυτόματα", + "QUESTION": "Το Template το Συνόλου Δεδομένων που επιλέξατε χρειάζεται επικαιροποίηση. Θα θέλατε να το ενημερώσετε στην πιο πρόσφατη έκδοσή του;" + } + }, + "DATASET-CREATE-WIZARD": { + "ACTIONS": { + "NEXT": "Επόμενο", + "BACK": "Πίσω", + "SAVE": "Αποθήκευση" + }, + "FIRST-STEP": { + "TITLE": "Σχέδιο Διαχείρισης Δεδομένων", + "PLACEHOLDER": "Επιλέξτε ένα Σχέδιο Διαχείρισης Δεδομένων από τη συλλογή σας" + } + }, + "INVITATION-EDITOR": { + "TITLE": "Αποστολή Προσκλήσεων για", + "AUTOCOMPLETE-USER": "Χρήστης", + "AUTOCOMPLETE-EMAIL": "Email", + "ACTIONS": { + "SEND-INVITATION": "Αποστολή Προσκλήσεων", + "CANCEL": "Ακύρωση" + } + }, + "USERS": { + "LISTING": { + "TITLE": "Χρήστες", + "EMAIL": "Email", + "LAST-LOGGED-IN": "Τελευταία Σύνδεση", + "LABEL": "Ετικέτα", + "ROLES": "Ρόλος", + "NAME": "Όνομα", + "PERMISSIONS": "ʼδειες" + } + }, + "TYPES": { + "APP-ROLE": { + "ADMIN": "Διαχειριστής", + "USER": "Χρήστης", + "MANAGER": "Υπεύθυνος" + }, + "DMP-PROFILE-FIELD": { + "DATA-TYPE": { + "DATE": "Ημερομηνία", + "NUMBER": "Αριθμός", + "TEXT": "Κείμενο", + "EXTERNAL-AUTOCOMPLETE": "Εξωτερική Αυτόματη Συμπλήρωση" + }, + "TYPE": { + "INPUT": "Εισαγωγή" + } + }, + "DATASET-STATUS": { + "DRAFT": "Προσχέδιο", + "FINALISED": "Οριστικοποίηση", + "ANY": "Οποιοδήποτε", + "DRAFT-DESC": "Προσχέδιες Καταγραφές" + }, + "DATASET-ROLE": { + "OWNER": "Κάτοχος", + "MEMBER": "Μέλος", + "ANY": "Οποιοδήποτε" + }, + "EXTERNAL-DATASET-TYPE": { + "SOURCE": "Πηγή", + "SOURCES": "Πηγές", + "SOURCE:": "Πηγή: ", + "NO-SOURCE": "Δε συνδέεται με την πηγή", + "OUTPUT": "Αποτελέσμα" + }, + "DMP": { + "FINALISED": "Οριστικοποιημένο", + "DRAFT": "Προσχέδιο" + }, + "DMP-VISIBILITY": { + "VISIBILITY": "Ορατότητα", + "PUBLIC": "Δημοσιευμένο", + "FINALIZED": "Οριστικοποιημένο", + "DRAFT": "Προσχέδιο", + "ANY": "Οποιοδήποτε" + }, + "DATASET-PROFILE-FIELD-VALIDATION-TYPE": { + "NONE": "Κανένα", + "REQUIRED": "Υποχρεωτικό" + }, + "DATASET-PROFILE-FIELD-VIEW-STYLE": { + "BOOLEAN-DECISION": "Απόφαση Boolean", + "CHECKBOX": "Πλαίσιο Ελέγχου", + "COMBO-BOX": "Σύνθετο Πλαίσιο", + "INTERNAL-DMP-ENTITIES": "Εσωτερικές οντότητες Σχεδίου Διαχείρισης Δεδομένων", + "FREE-TEXT": "Ελεύθερο Κείμενο", + "RADIO-BOX": "Πλαίσιο Επιλογής", + "TEXT-AREA": "Περιοχή Κειμένου", + "DATE-PICKER": "Επιλογή Ημερομηνίας" + }, + "DATASET-PROFILE-COMBO-BOX-TYPE": { + "WORD-LIST": "Λίστα Λέξεων", + "AUTOCOMPLETE": "Αυτόματη Συμπλήρωση", + "EXTERNAL-SOURCE-HINT": "Κατάλογος τιμών που παρέχονται από εξωτερικές πηγές", + "ACTIONS": { + "YES": "Ναι", + "NO": "Όχι" + } + }, + "DATASET-PROFILE-INTERNAL-DMP-ENTITIES-TYPE": { + "RESEARCHERS": "Ερευνητές", + "DMPS": "Σχέδια Διαχείρισης Δεδομένων", + "DATASETS": "Περιγραφές Συνόλων Δεδομένων", + "EXTERNAL-SOURCE-HINT": "Κατάλογος τιμών που παρέχονται από εξωτερικές πηγές" + } + }, + "ADDRESEARCHERS-EDITOR": { + "TITLE": "Προσθήκη Ερευνητή", + "FIRST_NAME": "Όνομα", + "LAST_NAME": "Επώνυμο", + "ACTIONS": { + "SAVE": "Αποθήκευση", + "CANCEL": "Ακύρωση" + } + }, + "DMP-WIZARD": { + "FIRST-STEP": { + "DMP": "Συντάκτης του Σχεδίου Διαχείρισης Δεδομένων", + "DATASETS": "Περιγραφές Συνόλων Δεδομένων" + }, + "ACTIONS": { + "NEXT": "Επόμενο", + "BACK": "Πίσω", + "SAVE": "Αποθήκευση" + } + }, + "DMP-RELATED-GRANT": { + "RELATED-GRANT": "Σχετική Επιχορήγηση" + }, + "DMP-RELATED-COLLABORATOR": { + "RELATED-COLLABORATOR": "Σχετικοί Συνεργάτες", + "SELECT-COLLABORATORS": "Επιλέξτε Συνεργάτες" + }, + "DMP-RELATED-ORGANIZATION": { + "RELATED-ORGANIZATION": "Οργανισμός", + "SELECT-ORGANIZATIONS": "Επιλέξτε Οργανισμούς" + }, + "DATASET-PROFILE": { + "PREVIEW": "Προεπισκόπηση", + "FORM-DESCRIPTION": "Φόρμα Περιγραφής", + "PAGES-DESCRIPTION": "Σελίδες Περιγραφής" + }, + "RECENT-ACTIVITY": { + "MY-TITLE-GRANT": "Οι Πρόσφατες Επιχορηγήσεις μου", + "MY-TITLE-DMP": "Τα Πρόσφατα Σχέδια Διαχείρισης Δεδομένων μου", + "MY-TITLE-DATASET": "Οι Πρόσφατες Περιγραφές Συνόλων Δεδομένων μου", + "LAST-VISITED-DMP": "Τελευταία Επίσκεψη σε Σχέδια Διαχείρισης Δεδομένων", + "LAST-EDITED-DMP": "Τελευταία Επεξεργασία σε Σχέδια Διαχείρισης Δεδομένων", + "LICENSE": "Τα παρακάτω Σχέδια Διαχείρισης Δεδομένων διατίθενται δημόσια" + }, + "FILE-UPLOADER": { + "DEFAULT": "Επιλογή Αρχείου", + "GRANT": "", + "UPLOAD": "Μεταφόρτωση" + }, + "URL-LISTING-COMPONENT": { + "SHOW-MORE": "Περισσότερα" + }, + "HOMEPAGE": { + "OPEN-DMPS": { + "STATS": "ARGOS Dashboard" + }, + "MY-DMPS": { + "STATS": "Το δικό μου Dashboard" + } + }, + "ABOUT": { + "TITLE": "-Σχετικά-", + "MAIN-CONTENT": "Στόχος μας είναι να κάνουμε τα ερευνητικά σας δεδομένα FAIR, που σημαίνει να είναι ανιχνεύσιμα, προσβάσιμα, διαλειτουργικά και επαναχρησιποιήσιμα. Αυτές οι αρχές προηγούνται της εφαρμογής και δεν υποδηλώνουν απαραίτητα κάποια συγκεκριμένη τεχνολογία, πρότυπο ή λύση εφαρμογής.", + "CONTRIBUTORS": "Συνεργάτες", + "WELCOME": "Καλωσήρθατε στο ARGOS", + "WELCOME-MESSAGE": "Δημιουργήστε, Διασυνδέστε, Διαμοιραστείτε Σχέδια Διαχείρισης Δεδομένων" + }, + "FOOTER": { + "CONTACT-SUPPORT": "Επικοινωνία", + "FAQ": "Συχνές Ερωτήσεις", + "GUIDE": "Οδηγός Χρήστη", + "GLOSSARY": "Γλωσσάριο", + "TERMS-OF-SERVICE": "Όροι Χρήσης", + "PRIVACY-POLICY": "Πολιτική Απορρήτου" + }, + "GLOSSARY": { + "TITLE": "Γλωσσάριο", + "TITLE-DASHED": "-Γλωσσάριο-", + "CLOSE": "Κλείσιμο" + }, + "FAQ": { + "TITLE": "Συχνές Ερωτήσεις", + "TITLE-DASHED": "-Συχνές Ερωτήσεις-", + "CLOSE": "Κλείσιμο" + }, + "GUIDE": { + "TITLE": "Οδηγός Χρήστη", + "TITLE-DASHED": "-Οδηγός Χρήστη-", + "CLOSE": "Κλείσιμο" + }, + "PRIVACY-POLICY": { + "TITLE": "-Πολιτική Απορρήτου-", + "MAIN-CONTENT": "" + }, + "TERMS-OF-SERVICE": { + "TITLE": "-Όροι Χρήσης-", + "MAIN-CONTENT": "" + }, + "CONTACT": { + "SUPPORT": { + "TITLE": "Επικοινωνία", + "SUBTITLE": "Πώς μπορούμε να σας βοηθήσουμε;", + "SUBJECT": "Θέμα", + "DESCRIPTION": "Περιγραφή", + "CANCEL": "Ακύρωση", + "SEND": "Αποστολή" + }, + "TITLE-DASHED": "-Επικοινωνία-", + "GUIDE": "Οδηγός", + "HELP": "Βοήθεια", + "GLOSSARY": "Γλωσσάριο" + }, + "LANGUAGE": { + "TITLE": "Γλώσσα", + "TITLE-DASHED": "-Γλώσσα-", + "CLOSE": "Κλείσιμο" + }, + "DASHBOARD": { + "MY-GRANTS": "Οι Επιχορηγήσεις μου", + "GRANTS": "Επιχορηγήσεις", + "MY-DMPS": "Τα Σχέδια Διαχείρισης Δεδομένων μου", + "TITLE": "Τi είναι το ARGOS?", + "INFO-TEXT": "Το ARGOS είναι μια ανοικτή επεκτάσιμη υπηρεσία που απλοποιεί τη διαχείριση, την επικύρωση, την παρακολούθηση και τη συντήρηση των Σχεδίων Διαχείρισης Δεδομένων. Επιτρέπει στους φορείς (ερευνητές, υπεύθυνους έρευνας, διευθυντές κλπ.) να δημιουργούν ζωντανά Σχέδια Διαχείρισης Δεδομένων που μπορούν να ανταλλάσσονται ελεύθερα μεταξύ των υποδομών για τη διεξαγωγή συγκεκριμένων πτυχών της διαδικασίας διαχείρισης Δεδομένων, σύμφωνα με τις προθέσεις και τη δέσμευση των κατόχων Δεδομένων.", + "ORGANIZATIONS": "Σχετικοί Οργανισμοί", + "DMPS": "Σχέδια Διαχείρισης Δεδομένων", + "MY-DATASETS": "Οι Περιγραφές Συνόλων Δεδομένων μου", + "DATASETS": "Περιγραφές Συνόλων Δεδομένων", + "SEARCH": "ΑΝΑΖΗΤΗΣΗ...", + "DATA-MANAGEMENT-PLANS": "ΣΧΕΔΙΑ ΔΙΑΧΕΙΡΙΣΗΣ ΔΕΔΟΜΕΝΩΝ" + }, + "USER-DIALOG": { + "USER-PROFILE": "Το Προφίλ μου", + "EXIT": "Έξοδος ", + "LOG-OUT": "Αποσύνδεση" + }, + "USER-PROFILE": { + "SETTINGS": { + "TITLE": "Ρυθμίσεις", + "TIMEZONE": "Ζώνη Ώρας", + "CULTURE": "Κουλτούρα", + "LANGUAGE": "Γλώσσα" + }, + "ASSOCIATED-DMPS": "Συσχετιζόμενα Σχέδια Διαχείρισης Δεδομένων", + "DMPS": { + "SHOW-ALL": "Προβολή Όλων", + "CREATOR": "Συντάκτης", + "MEMBER": "Μέλος" + } + }, + "DATASET-REFERENCED-MODELS": { + "SERVICES": { + "TITLE": "Προσθήκη Νέας Υπηρεσίας", + "LABEL": "Ετικέτα", + "ABBREVIATION": "Συντόμευση", + "URI": "Uri" + }, + "DATA-REPOSITORY": { + "TITLE": "Προσθήκη Νέου Αποθετηρίου Δεδομένων", + "LABEL": "Ετικέτα", + "ABBREVIATION": "Συντόμευση", + "URI": "Διεύθυνση Uri" + }, + "EXTERNAL-DATASET": { + "TITLE": "Προσθήκη Νέας Εξωτερικής Περιγραφής Συνόλου Δεδομένων", + "LABEL": "Ετικέτα", + "ABBREVIATION": "Συντόμευση" + }, + "REGISTRY": { + "TITLE": "Προσθήκη Νέου Καταλόγου", + "LABEL": "Ετικέτα", + "ABBREVIATION": "Συντόμευση", + "URI": "Uri" + } + }, + "FACET-SEARCH": { + "FILTER": "Φίλτρα", + "GRANT-STATUS": { + "TITLE": "Κατάσταση Επιχορήγησης", + "OPTIONS": { + "ANY": "Οποιοδήποτε", + "ACTIVE": "Ενεργή", + "INACTIVE": "Μη-ενεργή" + } + }, + "GRANT": { + "TITLE": "Σχετική Επιχορήγηση", + "FILTER": "Φίλτρα Επιχορήγησης" + }, + "PROFILES": { + "TITLE": "Προδιαγραφές Περιγραφών Συνόλου Δεδομένων" + }, + "ROLE": { + "TITLE": "Ρόλου", + "ANY": "Οποιοσδήποτε", + "OWNER": "Κάτοχος", + "MEMBER": "Μέλος" + }, + "DMP-ORGANISATIONS": { + "TITLE": "Οργανισμός", + "FILTER": "Φίλτρα Οργανισμών" + } + }, + "DMP-FINALISE-DIALOG": { + "DMP": "Σχέδια Διαχείρισης Δεδομένων", + "DATASETS": "Περιγραφές Συνόλου Δεδομένων", + "EMPTY": "Δεν υπάρχει καμία Διαθέσιμη Περιγραφή Συνόλου Δεδομένων μέχρι τώρα για αυτό το Σχέδιο Διαχείρισης Δεδομένων", + "SUBMIT": "Υποβολή", + "FINALISE-TITLE": "Θέλετε να οριστικοποιήσετε κάποια από τις ακόλουθες Περιγραφές Συνόλων Δεδομένων;", + "ALREADY-FINALISED-DATASETS": "Ήδη Οριστικοποιημένες Περιγραφές Συνόλων Δεδομένων", + "NONE": "Καμία", + "VALIDATION": { + "AT-LEAST-ONE-DATASET-FINALISED": "Πρέπει να έχετε οριστικοποιήσει τουλάχιστον μία Περιγραφή Συνόλου Δεδομένων." + }, + "IMPACT": "Αυτή η επιλογή θα οριστικοποιήσει το Σχέδιο Διαχείρισης Δεδομένων σας και δε θα μπορείτε να το επεξεργαστείτε ξανά σε αυτήν την έκδοση.", + "AFTER-FINALIZATION": "Μετά την οριστικοποίηση του Σχεδίου Διαχείρισης Δεδομένων σας, μπορείτε να το δημοσιεύσετε και να το διαθέσετε δημόσια στο εργαλείο ARGOS." + }, + "DRAFTS": { + "FOR-DMP": "Για Σχέδιο Διαχείρισης Δεδομένων:", + "FOR-GRANT": "Για Επιχορήγηση:" + }, + "QUICKWIZARD": { + "CREATE-ADD": { + "CREATE": { + "TITLE": "Δημιουργία Νέου Σχεδίου Διαχείρισης Δεδομένων", + "SUBTITLE": "Δημιουργήστε ένα νέο Σχέδιο Διαχείρισης Δεδομένων και περιγράψτε τα Σύνολα Δεδομένων σας σύμφωνα με τα βήματα που υπάρχουν στον wizard για γρήγορα και εύκολη συμπλήρωση των πιο βασικών στοιχείων του Σχεδίου Διαχείρισης Δεδομένων.", + "QUICKWIZARD_CREATE": { + "TITLE": "Wizard Σχεδίου Διαχείρισης Δεδομένων", + "POST-SELECTION-INFO": "Αυτός ο wizard σας επιτρέπει να δημιουργήσετε ένα νέο Σχέδιο Διαχείρισης Δεδομένων παρέχοντας τις πιο βασικές και αναγκαίες πληροφορίες, στις οποίες μπορείτε να προσθέστε στη συνέχεια μία ή περισσότερες Περιγραφές Συνόλου Δεδομένων που αφορούν αυτό το Σχέδιο Διαχείρισης Δεδομένων. Αφού ολοκληρώσετε με τον wizard, θα είστε σε θέση να επεξεργαστείτε περαιτέρω το Σχέδιο Διαχείρισης Δεδομένων έχοντας πρόσβαση στις προχωρημένες ιδιότητες μέσω του πλήρους επεξεργαστή Σχεδίου Διαχείρισης Δεδομένων, ώστε να προσθέσετε ακόμα περισσότερες Περιγραφές Συνόλου Δεδομένων ή να επεξεργαστείτε προηγούμενες.", + "ACTIONS": { + "DELETE": "Διαγραφή", + "SAVE": "Αποθήκευση", + "SAVE-AND-FINALIZE": "Αποθήκευση και Οριστικοποίηση", + "NEXT": "Επόμενο", + "BACK": "Πίσω", + "CREATE-NEW-GRANT": "Προσθήκη Επιχορήγησης", + "EXIST-GRANT": "Επιλογή Επιχορήγησης", + "CREATE-NEW-FUNDER": "Προσθήκη Χρηματοδότη", + "EXIST-FUNDER": "Επιλογή Χρηματοδότη", + "CREATE-NEW-PROJECT": "Προσθήκη Έργου", + "EXIST-PROJECT": "Επιλογή Έργου" + }, + "FIRST-STEP": { + "TITLE": "Επιχορήγηση", + "ABOUT-GRANT": "Βρείτε την επιχορήγηση με την οποία συσχετίζεται το Σχέδιο Διαχείρισης Δεδομένων σας και συνδέστε τη με τις πληροφορίες του χρηματοδότη. Εάν η επιχορήγηση δε βρίσκεται στον κατάλογο ή δημιουργείτε Σχέδιο Διαχείρισης Δεδομένων για μία αίτηση υποβολής πρότασης ή για άλλους σκοπούς, χρησιμοποιήστε την επιλογή “Προσθήκη Επιχορήγησης”.", + "ABOUT-NEW-GRANT": "Εάν δημιουργείτε Σχέδιο Διαχείρισης Δεδομένων για αίτηση υποβολής πρότασης,ιδρυματική ή ερευνητική χρήση ή για εκπαιδευτικούς σκοπούς, προσθέστε πληροφορίες παρακάτω δημιουργώντας μία νέα επιχορήγηση.", + "ABOUT-FUNDER": "Βρείτε τον χρηματοδότη με τον οποίο θα θέλατε να συσχετίσετε το Σχέδιο Διαχείριση Δεδομένων που δημιουργείτε και στη συνέχεια επιλέξτε μια επιχορήγηση με την οποία συνδέεται ο χρηματοδότης. Εάν ο χρηματοδότης δε βρίσκεται στον κατάλογο, χρησιμοποιήστε την επιλογή \"Προσθήκη Χρηματοδότη\"", + "ABOUT-NEW-FUNDER": "Εάν δημιουργείτε Σχέδιο Διαχείρισης Δεδομένων για αίτηση υποβολής πρότασης,ιδρυματική ή ερευνητική χρήση ή για εκπαιδευτικούς σκοπούς, προσθέστε πληροφορίες παρακάτω δημιουργώντας ένα νέο χρηματοδότη", + "ABOUT-PROJECT": "Βρείτε το έργο με το οποίο συσχετίζεται το Σχέδιο Διαχείρισης Δεδομένων σας. Εάν το έργο δε βρίσκεται στον κατάλογο, χρησιμοποιήστε την επιλογή \"Προσθήκη Έργου\"", + "ABOUT-NEW-PROJECT": "", + "OR": "or", + "FIELDS": { + "SELECT-GRANT": "Επιλέξτε την επιχορήγηση με την οποία συσχετίζεται το Σχέδιο Διαχείρισης Δεδομένων", + "SELECT-FUNDER": "Επιλέξτε τον χρηματοδότη της επιχορήγησης με τον οποίο συσχετίζεται το Σχέδιο Διαχείρισης Δεδομένων", + "SELECT-PROJECT": "Επιλέξτε το έργο με το οποίο συσχετίζεται το Σχέδιο Διαχείρισης Δεδομένων", + "GRANT-LABEL": "Τίτλος Επιχορήγησης", + "FUNDER-LABEL": "Τίτλος Χρηματοδότη", + "PROJECT-LABEL": "Τίτλος Έργου", + "LABEL-HINT": "Προσθήκη του τίτλου της επιχορήγησης όπως εμφανίζεται στην πρόσκληση υποβολής πρότασης", + "DESCRIPTION": "Περιγραφή", + "DESCRIPTION-HINT": "Περιγράψτε σύντομα τον σκοπό και τους στόχους της επιχορήγησης" + } + }, + "SECOND-STEP": { + "TITLE": "Προφίλ Σχεδίου Διαχείρισης Δεδομένων", + "ABOUT": "Ένα Σχέδιο Διαχείρισης Δεδομένων αποτελείται από ένα σύνολο ερωτήσεων που πρέπει να απαντήσετε ανάλογα με το κατάλληλο επίπεδο λεπτομέρειας που απαιτεί η επιχορήγηση ή ανάλογα με το σκοπό δημιουργίας του Σχεδίου Διαχείρισης Δεδομένων. Τα περιεχόμενα του κάθε Σχεδίου Διαχείρισης Δεδομένων ποικίλουν ανάλογα με τα επιλεγμένα templates που περιγράφονται τα σύνολα δεδομένων (Templates Περιγραφών Συνόλων Δεδομένων), τα οποία περιέχουν ένα σύνολο προσαρμοσμένων ερωτήσεων σύμφωνα με τις απαιτήσεις της πολιτικής των χρηματοδοτών, των ιδρυμάτων και των ερευνητικών κοινοτήτων.", + "NEW-TITLE": "", + "DMP-NAME": "Σχέδιο Διαχείρισης Δεδομένων για Επιχορήγηση:", + "FIELDS": { + "NAME": "Τίτλος Σχεδίου Διαχείρισης Δεδομένων", + "DESCRIPTION": "Σύνοψη", + "DESCRIPTION-HINT": "Περιγράψτε σύντομα το περιεχόμενο και τον σκοπό του Σχεδίου Διαχείρισης Δεδομένων", + "PROFILE": "Template Περιγραφής Συνόλου Δεδομένων", + "PROFILE-HINT": "Επιλέξτε ένα Template για να σχολιάσετε τις Περιγραφές Συνόλου Δεδομένων. Εάν θέλετε να επιλέξετε πολλαπλά Templates χρησιμοποιήστε την επιλογή \"Νέο Σχέδιο Διαχείρισης Δεδομένων (Expert)\". Μπορείτε, επίσης, να προσθέσετε νέες Περιγραφές Συνόλου Δεδομένων οποιαδήποτε στιγμή μετά τη δημιουργία του Σχεδίου Διαχείρισης Δεδομένων.", + "HELP": "Έάν δεν βρίσκετε template ή θέλετε να δημιουργήσετε ένα εξατομικευμένο template για το ίδρυμά σας, την ερευνητική σας κοινότητα ή για εκπαιδευτικές ανάγκες, παρακαλώ επικοινωνήστε μαζί μας." + } + }, + "THIRD-STEP": { + "TITLE": "Περιγραφή Συνόλου Δεδομένων", + "NEW-TITLE": "", + "DATASET-LABEL": "Τίτλος Περιγραφής Συνόλου Δεδομένων", + "DATASET-NAME": "Περιγραφή Συνόλου Δεδομένων: ", + "DATASET-NAME-FOR": " Για το Σχέδιο Διαχείρισης Δεδομένων: ", + "LIST-BUTTON-TOOLTIP": "Κατάλογος Περιγραφών Συνόλου Δεδομένων", + "ADD-BUTTON-TOOLTIP": "Προσθήκη Περιγραφής Συνόλου Δεδομένων" + } + } + }, + "ADD": { + "TITLE": "Προσθήκη Περιγραφής Συνόλου Δεδομένων σε ένα Σχέδιο Διαχείρισης Δεδομένων της συλλογής σας", + "DATASET-WIZARD": "Wizard Περιγραφής Συνόλου Δεδομένων", + "POST-SELECTION-INFO": "Αυτός ο wizard απλοποιεί τη διαδικασία προσθήκης νέων Περιγραφών Συνόλου Δεδομένων σε Σχέδια Διαχείρισης Δεδομένων που έχετε στη συλλογή σας κάνοντας υποχρεωτικά μόνο τα στοιχεία ή τις πληροφορίες που είναι απαραίτητες για την ολοκλήρωση της εργασίας. Πλήρης πρόσβαση στα χαρακτηριστικά της Περιγραφής Συνόλου Δεδομένων μπορεί να αποκτηθεί στη συνέχεια και μέσω των επιλογών πρόσβασης Περιγραφής Συνόλου Δεδομένων του συστήματος.", + "SUBTITLE": "Αυτός ο wizard σας επιτρέπει να σχολιάσετε επιπλέον Περιγραφές Συνόλων Δεδομένων που διαχειρίζονται στο πλαίσιο ενός Σχεδίου Διαχείρισης Δεδομένων παρέχοντας μόνο τις απαραίτητες πληροφορίες για την περιγραφή.", + "CREATED": "Δημιουργήθηκε " + } + }, + "SAVE-DIALOG": { + "TITLE": "Θα θέλατε να προσθέσετε άλλη Περιγραφή Συνόλου Δεδομένων;", + "ACTIONS": { + "AFFIRMATIVE": "Ναι", + "NEGATIVE": "Όχι" + } + }, + "HINT": "(Προτεινόμενος Προεπιλεγμένος Τίτλος)" + }, + "DATASET-PROFILE-STATUS": { + "NONE": "Όλα", + "DRAFT": "Πρόχειρα", + "FINALIZED": "Οριστικοποιημένα" } - }, - "USER-PROFILE": { - "SETTINGS": { - "TITLE": "Ρυθμίσεις", - "TIMEZONE": "Ζώνη Ώρας", - "CULTURE": "Κουλτούρα", - "LANGUAGE": "Γλώσσα" - }, - "ASSOCIATED-DMPS": "Συσχετιζόμενα DMPs", - "DMPS": { - "SHOW-ALL": "Όλα", - "CREATOR": "Δημιουργός", - "MEMBER": "Μέλος" - } - } -} +} \ No newline at end of file diff --git a/dmp-frontend/src/common/modules/multiple-choice-dialog/multiple-choice-dialog.component.html b/dmp-frontend/src/common/modules/multiple-choice-dialog/multiple-choice-dialog.component.html new file mode 100644 index 000000000..87029a992 --- /dev/null +++ b/dmp-frontend/src/common/modules/multiple-choice-dialog/multiple-choice-dialog.component.html @@ -0,0 +1,30 @@ +
+
+
+ {{ data.icon }} +
+
{{ data.warning }}
+
+ close +
+
+
+
{{ data.message }}
+
+ close +
+
+
+
{{ data.privacyPolicyNames }}
+ + {{'GENERAL.CONFIRMATION-DIALOG.ACTIONS.POLICY-AGREE' | translate}} + +
{{'GENERAL.CONFIRMATION-DIALOG.ACTIONS.REQUIRED' | translate}}
+
+
+
+ +
+
+
+
diff --git a/dmp-frontend/src/common/modules/multiple-choice-dialog/multiple-choice-dialog.component.scss b/dmp-frontend/src/common/modules/multiple-choice-dialog/multiple-choice-dialog.component.scss new file mode 100644 index 000000000..1e529f1f5 --- /dev/null +++ b/dmp-frontend/src/common/modules/multiple-choice-dialog/multiple-choice-dialog.component.scss @@ -0,0 +1,44 @@ +.confirmation-dialog { + .confirmation { + padding-bottom: 20px; + } + + .privacy-policy-names { + font-weight: 700; + padding: 1em; + } + + .close-btn { + margin-left: auto; + cursor: pointer; + } + + .warn-text { + color: #f44336; + } + + .cancel { + background-color: #aaaaaa; + color: #ffffff; + } + + .confirm { + background-color: #2cba6c; + color: #ffffff; + } + + .delete { + background-color: #ba2c2c; + color: #ffffff; + } + + .checkbox-privacy { + padding: 0em 1em; + } + + .required-policy { + padding: 0em 1.2em 1em; + font-size: smaller; + color: #f44336; + } + } diff --git a/dmp-frontend/src/common/modules/multiple-choice-dialog/multiple-choice-dialog.component.ts b/dmp-frontend/src/common/modules/multiple-choice-dialog/multiple-choice-dialog.component.ts new file mode 100644 index 000000000..8abce91d7 --- /dev/null +++ b/dmp-frontend/src/common/modules/multiple-choice-dialog/multiple-choice-dialog.component.ts @@ -0,0 +1,25 @@ +import { Component, Inject } from '@angular/core'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; + +@Component({ + selector: 'app-multiple-choice-dialog', + templateUrl: './multiple-choice-dialog.component.html', + styleUrls: ['./multiple-choice-dialog.component.scss'] +}) +export class MultipleChoiceDialogComponent { + agreePrivacyPolicyNames = false; + + constructor( + public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: any + ) { + } + + close() { + this.dialogRef.close(false); + } + + apply(i: number) { + this.dialogRef.close(i); + } +} diff --git a/dmp-frontend/src/common/modules/multiple-choice-dialog/multiple-choice-dialog.module.ts b/dmp-frontend/src/common/modules/multiple-choice-dialog/multiple-choice-dialog.module.ts new file mode 100644 index 000000000..5f435c90b --- /dev/null +++ b/dmp-frontend/src/common/modules/multiple-choice-dialog/multiple-choice-dialog.module.ts @@ -0,0 +1,15 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { MultipleChoiceDialogComponent } from './multiple-choice-dialog.component'; +import { CommonUiModule } from '@common/ui/common-ui.module'; +import { FormsModule } from '@angular/forms'; + + + +@NgModule({ + imports: [CommonUiModule, FormsModule], + declarations: [MultipleChoiceDialogComponent], + exports: [MultipleChoiceDialogComponent], + entryComponents: [MultipleChoiceDialogComponent] +}) +export class MultipleChoiceDialogModule { } diff --git a/docker-compose.yml b/docker-compose.yml index 1b94552b3..18412a920 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,212 +1,62 @@ ---- -version: '3' +version: "2.4" + services: - # The environment variable "TAG" is used throughout this file to - # specify the version of the images to run. The default is set in the - # '.env' file in this folder. It can be overridden with any normal - # technique for setting environment variables, for example: - # - # TAG=6.0.0-beta1 docker-compose up - # - # REF: https://docs.docker.com/compose/compose-file/#variable-substitution - # - # Also be sure to set the ELASTIC_VERSION variable. For released versions, - # ${TAG} and ${ELASTIC_VERSION} will be identical, but for pre-release - # versions, ${TAG} might contain an extra build identifier, like - # "6.0.0-beta1-3eab5b40", so a full invocation might look like: - # - # ELASTIC_VERSION=6.0.0-beta1 TAG=6.0.0-beta1-3eab5b40 docker-compose up - # - -##########################DMP###################################################################### + dmp-db: + image: postgres + container_name: opendmp-db + restart: unless-stopped + ports: + - "5001:5432" + expose: + - "5432" + volumes: + - dmpdata:/var/lib/postgresql/data + - ./dmp-db-scema:/docker-entrypoint-initdb.d/ + - ./dmp-db-scema/main:/main + - ./dmp-db-scema/updates:/updates + env_file: ./dmp-db-scema/Docker/dmp-db.env + networks: + - opendmp-backend-network dmp-backend: build: - context: ./dmp-backend - args: - PROFILE: ${PROFILE} - container_name: dmp-backend - ports: ['0.0.0.0:8080:8080'] - links: - # - logstash:logstash - - elasticsearch-dmp:elasticsearch-dmp - networks: ['stack','elasticsearch-dmp'] + context: ./dmp-backend + container_name: opendmp-backend + env_file: ./dmp-backend/Docker/dmp-backend.env + restart: unless-stopped + mem_limit: 2048m + ports: + - "8081:8081" + networks: + - opendmp-backend-network + volumes: + - ./openDMP/dmp-backend/config:/app/config + - ./openDMP/dmp-backend/user-guide:/app/user-guide + - ./openDMP/dmp-backend/i18n:/app/i18n + - ./openDMP/dmp-backend/externalUrls:/app/externalUrls + - ./openDMP/dmp-backend/templates:/app/templates + - ./openDMP/dmp-backend/opendmp-logs:/app/logs + - ./openDMP/dmp-backend/tmp:/app/tmp + - ./openDMP/dmp-backend/logging:/app/logging + - ./openDMP/dmp-backend/documents:/app/documents dmp-frontend: build: - context: ./dmp-frontend - args: - env: ${ENV} - aot: ${AOT} - container_name: dmp-frontend + context: ./dmp-frontend + container_name: opendmp-frontend + mem_limit: 2048m + restart: unless-stopped + ports: + - "8080:4200" volumes: - - ./static:/usr/share/nginx/static - - /srv/docker/wwwcert:/usr/share/nginx/wwwcert - ports: ['0.0.0.0:80:80'] - networks: ['stack'] - -##########################ELASTIC###################################################################### - elasticsearch-dmp: - image: docker.elastic.co/elasticsearch/elasticsearch:${TAG} - container_name: elasticsearch-dmp - volumes: - - ./elastic-config/elasticsearch-custom.yml:/usr/share/elasticsearch/config/elasticsearch.yml - environment: ['http.host=0.0.0.0','transport.host=0.0.0.0','discovery.type=single-node'] - ports: ['0.0.0.0:9201:9200','0.0.0.0:9301:9300'] - networks: ['elasticsearch-dmp'] - volumes: - - esdata-dmp:/usr/share/elasticsearch/data - -##########################ELK-STACK###################################################################### - - elasticsearch: - image: docker.elastic.co/elasticsearch/elasticsearch:${TAG} - container_name: elasticsearch - environment: ['http.host=0.0.0.0', 'transport.host=127.0.0.1', 'ELASTIC_PASSWORD=${ELASTIC_PASSWORD}','discovery.type=single-node'] - ports: ['0.0.0.0:9200:9200'] - networks: ['stack'] - volumes: - - esdata:/usr/share/elasticsearch/data - - kibana: - image: docker.elastic.co/kibana/kibana:${TAG} - container_name: kibana - ports: ['0.0.0.0:5601:5601'] - networks: ['stack'] - depends_on: ['elasticsearch'] - - logstash: - image: docker.elastic.co/logstash/logstash:${TAG} - container_name: logstash - volumes: - - ./ELK.Docker/config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf - ports: ['0.0.0.0:31311:31311'] - - networks: ['stack'] - depends_on: ['elasticsearch', 'setup_logstash'] - - #filebeat: - # image: docker.elastic.co/beats/filebeat:${TAG} - # container_name: filebeat - # command: -e -E 'output.elasticsearch.password=${ELASTIC_PASSWORD}' - # networks: ['stack'] - # depends_on: ['elasticsearch', 'setup_filebeat'] - - #heartbeat: - # image: docker.elastic.co/beats/heartbeat:${TAG} - # container_name: heartbeat - # command: -e -E 'output.elasticsearch.password=${ELASTIC_PASSWORD}' - # networks: ['stack'] - # depends_on: ['elasticsearch', 'setup_heartbeat'] - - # Run a short-lived container to set up Logstash. - setup_logstash: - image: centos:7 - container_name: setup_logstash - volumes: ['./ELK.Docker/scripts/setup-logstash.sh:/usr/local/bin/setup-logstash.sh:ro'] - command: ['/bin/bash', '-c', 'cat /usr/local/bin/setup-logstash.sh | tr -d "\r" | bash'] - environment: ['ELASTIC_PASSWORD=${ELASTIC_PASSWORD}'] - networks: ['stack'] - depends_on: ['elasticsearch'] - - setup_kibana: - image: centos:7 - container_name: setup_kibana - volumes: ['./ELK.Docker/scripts/setup-kibana.sh:/usr/local/bin/setup-kibana.sh:ro'] - command: ['/bin/bash', '-c', 'cat /usr/local/bin/setup-kibana.sh | tr -d "\r" | bash'] - environment: ['ELASTIC_PASSWORD=${ELASTIC_PASSWORD}'] - networks: ['stack'] - depends_on: ['elasticsearch'] - - #setup_filebeat: - # image: docker.elastic.co/beats/filebeat:${TAG} - # container_name: setup_filebeat - # volumes: ['./ELK.Docker/scripts/setup-beat.sh:/usr/local/bin/setup-beat.sh:ro'] - # command: ['/bin/bash', '-c', 'cat /usr/local/bin/setup-beat.sh | tr -d "\r" | bash -s filebeat'] - # environment: ['ELASTIC_PASSWORD=${ELASTIC_PASSWORD}'] - # networks: ['stack'] - # depends_on: ['kibana'] - - #setup_heartbeat: - # image: docker.elastic.co/beats/heartbeat:${TAG} - # container_name: setup_heartbeat - # volumes: ['./ELK.Docker/scripts/setup-beat.sh:/usr/local/bin/setup-beat.sh:ro'] - # command: ['/bin/bash', '-c', 'cat /usr/local/bin/setup-beat.sh | tr -d "\r" | bash -s heartbeat'] - # environment: ['ELASTIC_PASSWORD=${ELASTIC_PASSWORD}'] - # networks: ['stack'] - # depends_on: ['kibana'] - -##########################DOCSBOX###################################################################### - # web: - # restart: always - # build: ./docsbox-master/docsbox - # expose: - # - "8000" - # links: - # - redis:redis - # volumes: - # - docsbox:/home/docsbox - # - media:/home/docsbox/media - # command: gunicorn -b :8000 docsbox:app - # networks: ['stack'] - - # rqworker: - # restart: always - # build: ./docsbox-master/docsbox - # links: - # - redis:redis - # volumes: - # - web - # command: rq worker -c docsbox.settings - # networks: ['stack'] - - # rqscheduler: - # restart: always - # build: ./docsbox-master/docsbox - # links: - # - redis:redis - # volumes: - # - web - # command: rqscheduler -H redis -p 6379 -d 0 - # networks: ['stack'] - - # nginx: - # restart: always - # build: ./docsbox-master/nginx/ - # ports: - # - "81:80" - # volumes: - # - web - # links: - # - web:web - # networks: ['stack'] - - # redis: - # restart: always - # image: redis:latest - # expose: - # - "6379" - # volumes: - # - redisdata:/data - # networks: ['stack'] - - -##########################SETTINGS###################################################################### - -volumes: - esdata: - driver: local - esdata-dmp: - driver: local - #redisdata: - # driver: local - # docsbox: - # driver: local - # media: - # driver: local -networks: - stack: {} - elasticsearch-dmp: {} - - + - ./openDMP/dmp-frontend/static-files:/usr/share/nginx/static + - ./openDMP/dmp-frontend/webapp/config:/usr/share/nginx/html/assets/config + networks: + - opendmp-frontend-network +networks: + opendmp-frontend-network: + opendmp-backend-network: +volumes: + dmpdata: + external: true diff --git a/openDMP/dmp-backend/opendmp-logs/.gitkeep b/openDMP/dmp-backend/opendmp-logs/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/openDMP/dmp-backend/tmp/.gitkeep b/openDMP/dmp-backend/tmp/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/openDMP/dmp-frontend/static-files/.gitkeep b/openDMP/dmp-frontend/static-files/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/openDMP/dmp-frontend/webapp/.gitkeep b/openDMP/dmp-frontend/webapp/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/guide/UserGuideDRAFT.html b/user-guide/UserGuideDRAFT.html similarity index 100% rename from guide/UserGuideDRAFT.html rename to user-guide/UserGuideDRAFT.html