diff --git a/dmp-frontend/src/app/ui/dmp/clone/clone-dialog/clone-dialog.component.html b/dmp-frontend/src/app/ui/dmp/clone/clone-dialog/clone-dialog.component.html index 5ec71e67b..2f3e58286 100644 --- a/dmp-frontend/src/app/ui/dmp/clone/clone-dialog/clone-dialog.component.html +++ b/dmp-frontend/src/app/ui/dmp/clone/clone-dialog/clone-dialog.component.html @@ -36,7 +36,7 @@
{{'DMP-EDITOR.FIELDS.TEMPLATES' | translate}}
- + {{data.formGroup.get('profiles').getError('backendError').message}} diff --git a/dmp-frontend/src/app/ui/dmp/clone/clone-dialog/clone-dialog.component.ts b/dmp-frontend/src/app/ui/dmp/clone/clone-dialog/clone-dialog.component.ts index 41325f3de..9386b4d9e 100644 --- a/dmp-frontend/src/app/ui/dmp/clone/clone-dialog/clone-dialog.component.ts +++ b/dmp-frontend/src/app/ui/dmp/clone/clone-dialog/clone-dialog.component.ts @@ -1,5 +1,5 @@ import { Component, Inject } from '@angular/core'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { DmpService } from '@app/core/services/dmp/dmp.service'; import { map, takeUntil } from 'rxjs/operators'; import { DmpModel } from '@app/core/model/dmp/dmp'; @@ -11,13 +11,15 @@ import { DatasetProfileModel } from '@app/core/model/dataset/dataset-profile'; import { DataTableRequest } from '@app/core/model/data-table/data-table-request'; import { DatasetProfileCriteria } from '@app/core/query/dataset-profile/dataset-profile-criteria'; import { AvailableProfilesComponent } from '../../editor/available-profiles/available-profiles.component'; +import { DatasetPreviewDialogComponent } from '../../dataset-preview/dataset-preview-dialog.component'; +import { BaseComponent } from '@common/base/base.component'; @Component({ selector: 'app-clone-dialog', templateUrl: './clone-dialog.component.html', styleUrls: ['./clone-dialog.component.scss'] }) -export class CloneDialogComponent { +export class CloneDialogComponent extends BaseComponent { agreePrivacyPolicyNames = false; initialItems = []; @@ -25,9 +27,12 @@ export class CloneDialogComponent { constructor( public dialogRef: MatDialogRef, + private dialog: MatDialog, private dmpService: DmpService, @Inject(MAT_DIALOG_DATA) public data: any ) { + super(); + this.selectionChanged(this.initialItems) this.profilesAutoCompleteConfiguration = { @@ -78,4 +83,31 @@ export class CloneDialogComponent { return this.dmpService.searchDMPProfiles(request); } + onPreviewTemplate(event) { + const dialogRef = this.dialog.open(DatasetPreviewDialogComponent, { + width: '590px', + minHeight: '200px', + restoreFocus: false, + data: { + template: event + }, + panelClass: 'custom-modalbox' + }); + dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(result => { + if (result) { + let profiles = this.data.formGroup.get('profiles').value; + profiles.push(event); + this.data.formGroup.get('profiles').setValue(profiles); + this.profilesAutoCompleteConfiguration = { + filterFn: this.filterProfiles.bind(this), + initialItems: (excludedItems: any[]) => this.filterProfiles('').pipe(map(result => result.filter(resultItem => (excludedItems || []).map(x => x.id).indexOf(resultItem.id) === -1))), + displayFn: (item) => item['label'], + titleFn: (item) => item['label'], + subtitleFn: (item) => item['description'], + popupItemActionIcon: 'visibility' + }; + } + }); + } + } diff --git a/dmp-frontend/src/app/ui/dmp/listing/upload-dialogue/dmp-upload-dialogue.component.html b/dmp-frontend/src/app/ui/dmp/listing/upload-dialogue/dmp-upload-dialogue.component.html index 279603fa8..cfcad8106 100644 --- a/dmp-frontend/src/app/ui/dmp/listing/upload-dialogue/dmp-upload-dialogue.component.html +++ b/dmp-frontend/src/app/ui/dmp/listing/upload-dialogue/dmp-upload-dialogue.component.html @@ -31,17 +31,17 @@
- +
- +
- +
diff --git a/dmp-frontend/src/app/ui/dmp/listing/upload-dialogue/dmp-upload-dialogue.component.scss b/dmp-frontend/src/app/ui/dmp/listing/upload-dialogue/dmp-upload-dialogue.component.scss index 39d84134c..be50ce8e5 100644 --- a/dmp-frontend/src/app/ui/dmp/listing/upload-dialogue/dmp-upload-dialogue.component.scss +++ b/dmp-frontend/src/app/ui/dmp/listing/upload-dialogue/dmp-upload-dialogue.component.scss @@ -46,6 +46,20 @@ font-weight: 500; } +.next-btn-disabled { + width: 100px; + height: 43px; + background: #ffffff 0% 0% no-repeat padding-box; + border: 1px solid #b5b5b5; + border-radius: 30px; + opacity: 1; +} + +.next-btn:hover { + background: #129d99; + color: #ffffff; +} + .attach-btn { top: -20px; } diff --git a/dmp-frontend/src/app/ui/dmp/listing/upload-dialogue/dmp-upload-dialogue.component.ts b/dmp-frontend/src/app/ui/dmp/listing/upload-dialogue/dmp-upload-dialogue.component.ts index 95ae0f6c7..5a147355d 100644 --- a/dmp-frontend/src/app/ui/dmp/listing/upload-dialogue/dmp-upload-dialogue.component.ts +++ b/dmp-frontend/src/app/ui/dmp/listing/upload-dialogue/dmp-upload-dialogue.component.ts @@ -1,19 +1,21 @@ import { Component, Inject } from '@angular/core'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { DmpService } from '../../../../core/services/dmp/dmp.service'; import { MultipleAutoCompleteConfiguration } from '@app/library/auto-complete/multiple/multiple-auto-complete-configuration'; -import { map } from 'rxjs/operators'; +import { map, takeUntil } from 'rxjs/operators'; import { Observable } from 'rxjs'; import { DatasetProfileModel } from '@app/core/model/dataset/dataset-profile'; import { DataTableRequest } from '@app/core/model/data-table/data-table-request'; import { DatasetProfileCriteria } from '@app/core/query/dataset-profile/dataset-profile-criteria'; +import { DatasetPreviewDialogComponent } from '../../dataset-preview/dataset-preview-dialog.component'; +import { BaseComponent } from '@common/base/base.component'; @Component({ selector: 'dmp-upload-dialogue', templateUrl: './dmp-upload-dialogue.component.html', styleUrls: ['./dmp-upload-dialogue.component.scss'] }) -export class DmpUploadDialogue { +export class DmpUploadDialogue extends BaseComponent { dmpTitle: string; dmpProfiles: any[] = []; files: File[] = []; @@ -31,8 +33,11 @@ export class DmpUploadDialogue { constructor( public dialogRef: MatDialogRef, private _service: DmpService, + private dialog: MatDialog, @Inject(MAT_DIALOG_DATA) public data: any, - ) { } + ) { + super(); + } cancel() { this.data.success = false; @@ -79,6 +84,34 @@ export class DmpUploadDialogue { this.dmpTitle = null; } + onPreviewTemplate(event) { + const dialogRef = this.dialog.open(DatasetPreviewDialogComponent, { + width: '590px', + minHeight: '200px', + restoreFocus: false, + data: { + template: event + }, + panelClass: 'custom-modalbox' + }); + dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(result => { + if (result) { + if(!this.dmpProfiles) { + this.dmpProfiles = []; + } + this.dmpProfiles.push(event); + this.profilesAutoCompleteConfiguration = { + filterFn: this.filterProfiles.bind(this), + initialItems: (excludedItems: any[]) => this.filterProfiles('').pipe(map(result => result.filter(resultItem => (excludedItems || []).map(x => x.id).indexOf(resultItem.id) === -1))), + displayFn: (item) => item['label'], + titleFn: (item) => item['label'], + subtitleFn: (item) => item['description'], + popupItemActionIcon: 'visibility' + }; + } + }); + } + filterProfiles(value: string): Observable { const request = new DataTableRequest(null, null, { fields: ['+label'] }); const criteria = new DatasetProfileCriteria(); 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 55efa9cd7..d30e0609b 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 @@ -118,7 +118,7 @@

-

{{ 'QUICKWIZARD.CREATE-ADD.CREATE.QUICKWIZARD_CREATE.FIRST-STEP.OR' | translate }}

- diff --git a/dmp-frontend/src/assets/i18n/de.json b/dmp-frontend/src/assets/i18n/de.json index ab86a95a6..3ba34bb19 100644 --- a/dmp-frontend/src/assets/i18n/de.json +++ b/dmp-frontend/src/assets/i18n/de.json @@ -17,6 +17,7 @@ "SUCCESSFUL-LOGIN": "Anmeldung erfolgreich", "SUCCESSFUL-LOGOUT": "Abmeldung erfolgreich", "SUCCESSFUL-EMAIL-SEND": "E-Mail erfolgreich versendet", + "SUCCESSFUL-COPY-TO-CLIPBOARD": "Copied to Clipboard", "UNSUCCESSFUL-LOGOUT": "Abmeldung fehlgeschlagen", "UNSUCCESSFUL-LOGIN": "Anmeldung fehlgeschlagen", "SUCCESSFUL-DATASET-PROFILE-DELETE": "Erfolgreich gelöscht", @@ -470,6 +471,7 @@ "START-NEW-VERSION": "Start New Version", "VIEW-VERSION": "Alle DMP-Versionen", "CLONE": "Klonen", + "COPY": "Kopieren", "DELETE": "Löschen", "DEPOSIT": "Deposit", "EXPORT": "Exportieren", diff --git a/dmp-frontend/src/assets/i18n/en.json b/dmp-frontend/src/assets/i18n/en.json index ffeb0c501..73f341dce 100644 --- a/dmp-frontend/src/assets/i18n/en.json +++ b/dmp-frontend/src/assets/i18n/en.json @@ -17,6 +17,7 @@ "SUCCESSFUL-LOGIN": "Successful Login", "SUCCESSFUL-LOGOUT": "Successful Logout", "SUCCESSFUL-EMAIL-SEND": "Email sent successfully", + "SUCCESSFUL-COPY-TO-CLIPBOARD": "Copied to Clipboard", "UNSUCCESSFUL-LOGOUT": "Unsuccessful Logout", "UNSUCCESSFUL-LOGIN": "Unsuccessful Login", "SUCCESSFUL-DATASET-PROFILE-DELETE": "Successful Delete", @@ -470,6 +471,7 @@ "START-NEW-VERSION": "Start New Version", "VIEW-VERSION": "All DMP Versions", "CLONE": "Clone", + "COPY": "Copy", "DELETE": "Delete", "DEPOSIT": "Deposit", "EXPORT": "Export", diff --git a/dmp-frontend/src/assets/i18n/es.json b/dmp-frontend/src/assets/i18n/es.json index 0643735e4..b26f1e9dc 100644 --- a/dmp-frontend/src/assets/i18n/es.json +++ b/dmp-frontend/src/assets/i18n/es.json @@ -17,6 +17,7 @@ "SUCCESSFUL-LOGIN": "Inicio de sesión correcto", "SUCCESSFUL-LOGOUT": "Cierre de sesión correcto", "SUCCESSFUL-EMAIL-SEND": "El mensaje ha sido enviado correctamente", + "SUCCESSFUL-COPY-TO-CLIPBOARD": "Copied to Clipboard", "UNSUCCESSFUL-LOGOUT": "Cierre de sesión fallido", "UNSUCCESSFUL-LOGIN": "Inicio de sesión fallido", "SUCCESSFUL-DATASET-PROFILE-DELETE": "Borrado correcto", @@ -470,6 +471,7 @@ "START-NEW-VERSION": "Iniciar una nueva versión", "VIEW-VERSION": "Todas las versiones del PGD", "CLONE": "Clonar", + "COPY": "Copiar", "DELETE": "Borrar", "DEPOSIT": "Depositar", "EXPORT": "Exportar", diff --git a/dmp-frontend/src/assets/i18n/gr.json b/dmp-frontend/src/assets/i18n/gr.json index 2288136a6..f84eb0274 100644 --- a/dmp-frontend/src/assets/i18n/gr.json +++ b/dmp-frontend/src/assets/i18n/gr.json @@ -17,6 +17,7 @@ "SUCCESSFUL-LOGIN": "Επιτυχής σύνδεση", "SUCCESSFUL-LOGOUT": "Επιτυχής αποσύνδεση", "SUCCESSFUL-EMAIL-SEND": "Το email στάλθηκε επιτυχώς", + "SUCCESSFUL-COPY-TO-CLIPBOARD": "Copied to Clipboard", "UNSUCCESSFUL-LOGOUT": "Αποτυχημένη αποσύνδεση", "UNSUCCESSFUL-LOGIN": "Αποτυχημένη σύνδεση", "SUCCESSFUL-DATASET-PROFILE-DELETE": "Επιτυχής διαγραφή", @@ -470,6 +471,7 @@ "START-NEW-VERSION": "Νέα Έκδοση", "VIEW-VERSION": "Όλες οι Εκδόσεις Σχεδίων Διαχείρισης Δεδομένων", "CLONE": "Κλώνος", + "COPY": "Αντιγραφή", "DELETE": "Διαγραφή", "DEPOSIT": "Κατάθεση", "EXPORT": "Εξαγωγή", diff --git a/dmp-frontend/src/assets/i18n/sk.json b/dmp-frontend/src/assets/i18n/sk.json index 5de3cfd72..ea2eea1a0 100644 --- a/dmp-frontend/src/assets/i18n/sk.json +++ b/dmp-frontend/src/assets/i18n/sk.json @@ -17,6 +17,7 @@ "SUCCESSFUL-LOGIN": "Úspešné prihlásenie", "SUCCESSFUL-LOGOUT": "Úspešné odhlásenie", "SUCCESSFUL-EMAIL-SEND": "Email úspešne odoslaný", + "SUCCESSFUL-COPY-TO-CLIPBOARD": "Copied to Clipboard", "UNSUCCESSFUL-LOGOUT": "Neúspešné odhlásenie", "UNSUCCESSFUL-LOGIN": "Neúspešné prihlásenie", "SUCCESSFUL-DATASET-PROFILE-DELETE": "Úspešne vymazané", @@ -470,6 +471,7 @@ "START-NEW-VERSION": "Začať novú verziu", "VIEW-VERSION": "Všetky verzie DMP", "CLONE": "Klonovať", + "COPY": "Kopírovať", "DELETE": "Vymazať", "DEPOSIT": "Vložiť", "EXPORT": "Exportovať", diff --git a/dmp-frontend/src/assets/i18n/tr.json b/dmp-frontend/src/assets/i18n/tr.json index 5e41aece1..bc07c3aee 100644 --- a/dmp-frontend/src/assets/i18n/tr.json +++ b/dmp-frontend/src/assets/i18n/tr.json @@ -17,6 +17,7 @@ "SUCCESSFUL-LOGIN": "Başarılı Giriş", "SUCCESSFUL-LOGOUT": "Başarılı Çıkış", "SUCCESSFUL-EMAIL-SEND": "E-posta başarıyla gönderildi", + "SUCCESSFUL-COPY-TO-CLIPBOARD": "Copied to Clipboard", "UNSUCCESSFUL-LOGOUT": "Başarısız Çıkış", "UNSUCCESSFUL-LOGIN": "Başarısız Giriş", "SUCCESSFUL-DATASET-PROFILE-DELETE": "Silme Başarılı", @@ -470,6 +471,7 @@ "START-NEW-VERSION": "Yeni Sürümü Başlat", "VIEW-VERSION": "Tüm VYP Sürümleri", "CLONE": "Çoğalt", + "COPY": "Kopyala", "DELETE": "Sil", "DEPOSIT": "Depozito", "EXPORT": "Dışarı Aktar",