From 51cc5f4fd96b22887d788da54f915028cc614822 Mon Sep 17 00:00:00 2001 From: Diamantis Tziotzios Date: Wed, 25 Oct 2023 18:15:41 +0300 Subject: [PATCH] dmp blueprint frontend cleanup --- .../dmp-blueprint/dmp-associated-profile.ts | 4 -- .../dmp-blueprint-external-autocomplete.ts | 7 -- .../dmp-blueprint/dmp-blueprint-field.ts | 13 ---- .../src/app/core/model/dmp/dmp-listing.ts | 2 - .../src/app/core/model/dmp/dmp-overview.ts | 2 - .../recent-dmp-activity.model.ts | 6 +- .../dmp-blueprint/dmp-blueprint.module.ts | 8 +-- .../editor/dmp-blueprint-editor.component.ts | 20 ------ ...l-autocomplete-field-editor.component.html | 22 ------ ...l-autocomplete-field-editor.component.scss | 13 ---- ...nal-autocomplete-field-editor.component.ts | 17 ----- ...xternal-autocomplete-field-editor.model.ts | 32 --------- .../dmp-blueprint-criteria.component.html | 23 ------ .../dmp-blueprint-criteria.component.scss | 17 ----- .../dmp-blueprint-criteria.component.ts | 69 ------------------ .../dmp-blueprint-listing.component.html | 34 ++++----- .../dmp-blueprint-listing.component.ts | 53 +++++++++++--- ...mport-dmp-blueprint.dialog.component.html} | 2 +- ...mport-dmp-blueprint.dialog.component.scss} | 0 .../import-dmp-blueprint.dialog.component.ts} | 27 ++++--- .../src/app/ui/dashboard/dashboard.module.ts | 2 - .../dmp-info-counter.component.css | 71 ------------------- .../dmp-info-counter.component.html | 32 --------- .../dmp-info-counter.component.ts | 28 -------- .../dataset-copy-dialogue.component.ts | 5 -- .../src/app/ui/dmp/editor/dmp-editor.model.ts | 39 ---------- 26 files changed, 74 insertions(+), 474 deletions(-) delete mode 100644 dmp-frontend/src/app/core/model/dmp-blueprint/dmp-associated-profile.ts delete mode 100644 dmp-frontend/src/app/core/model/dmp-blueprint/dmp-blueprint-external-autocomplete.ts delete mode 100644 dmp-frontend/src/app/core/model/dmp-blueprint/dmp-blueprint-field.ts delete mode 100644 dmp-frontend/src/app/ui/admin/dmp-blueprint/editor/external-autocomplete/dmp-blueprint-external-autocomplete-field-editor.component.html delete mode 100644 dmp-frontend/src/app/ui/admin/dmp-blueprint/editor/external-autocomplete/dmp-blueprint-external-autocomplete-field-editor.component.scss delete mode 100644 dmp-frontend/src/app/ui/admin/dmp-blueprint/editor/external-autocomplete/dmp-blueprint-external-autocomplete-field-editor.component.ts delete mode 100644 dmp-frontend/src/app/ui/admin/dmp-blueprint/editor/external-autocomplete/dmp-blueprint-external-autocomplete-field-editor.model.ts delete mode 100644 dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/criteria/dmp-blueprint-criteria.component.html delete mode 100644 dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/criteria/dmp-blueprint-criteria.component.scss delete mode 100644 dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/criteria/dmp-blueprint-criteria.component.ts rename dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/{criteria/dialog-confirmation-upload-blueprint/dialog-confirmation-upload-blueprints.component.html => import-dmp-blueprint/import-dmp-blueprint.dialog.component.html} (96%) rename dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/{criteria/dialog-confirmation-upload-blueprint/dialog-confirmation-upload-blueprints.component.scss => import-dmp-blueprint/import-dmp-blueprint.dialog.component.scss} (100%) rename dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/{criteria/dialog-confirmation-upload-blueprint/dialog-confirmation-upload-blueprints.component.ts => import-dmp-blueprint/import-dmp-blueprint.dialog.component.ts} (60%) delete mode 100644 dmp-frontend/src/app/ui/dashboard/dmp-info-counter/dmp-info-counter.component.css delete mode 100644 dmp-frontend/src/app/ui/dashboard/dmp-info-counter/dmp-info-counter.component.html delete mode 100644 dmp-frontend/src/app/ui/dashboard/dmp-info-counter/dmp-info-counter.component.ts diff --git a/dmp-frontend/src/app/core/model/dmp-blueprint/dmp-associated-profile.ts b/dmp-frontend/src/app/core/model/dmp-blueprint/dmp-associated-profile.ts deleted file mode 100644 index 668762d52..000000000 --- a/dmp-frontend/src/app/core/model/dmp-blueprint/dmp-associated-profile.ts +++ /dev/null @@ -1,4 +0,0 @@ -export interface DmpAssociatedProfileModel { - id: String; - label: String; -} diff --git a/dmp-frontend/src/app/core/model/dmp-blueprint/dmp-blueprint-external-autocomplete.ts b/dmp-frontend/src/app/core/model/dmp-blueprint/dmp-blueprint-external-autocomplete.ts deleted file mode 100644 index de6f53f7a..000000000 --- a/dmp-frontend/src/app/core/model/dmp-blueprint/dmp-blueprint-external-autocomplete.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface DmpBlueprintExternalAutoCompleteField { - url: string; - optionsRoot: string; - multiAutoComplete: boolean; - label: string; - value: string; -} diff --git a/dmp-frontend/src/app/core/model/dmp-blueprint/dmp-blueprint-field.ts b/dmp-frontend/src/app/core/model/dmp-blueprint/dmp-blueprint-field.ts deleted file mode 100644 index 35b0a85da..000000000 --- a/dmp-frontend/src/app/core/model/dmp-blueprint/dmp-blueprint-field.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { DmpBlueprintExtraFieldDataType } from '../../common/enum/dmp-blueprint-field-type'; -import { DmpBlueprintType } from '../../common/enum/dmp-blueprint-type'; -import { DmpBlueprintExternalAutoCompleteFieldDataEditorModel } from '../../../ui/admin/dmp-blueprint/editor/external-autocomplete/dmp-blueprint-external-autocomplete-field-editor.model'; - -export interface DmpBlueprintField { - id: string; - type: DmpBlueprintType; - dataType: DmpBlueprintExtraFieldDataType; - required: boolean; - label: string; - value: any; - externalAutocomplete?: DmpBlueprintExternalAutoCompleteFieldDataEditorModel; -} diff --git a/dmp-frontend/src/app/core/model/dmp/dmp-listing.ts b/dmp-frontend/src/app/core/model/dmp/dmp-listing.ts index 65179ce21..b7423fa67 100644 --- a/dmp-frontend/src/app/core/model/dmp/dmp-listing.ts +++ b/dmp-frontend/src/app/core/model/dmp/dmp-listing.ts @@ -1,5 +1,4 @@ import { DmpStatus } from "../../common/enum/dmp-status"; -import { DmpAssociatedProfileModel } from '../dmp-blueprint/dmp-associated-profile'; export interface DmpListingModel { id: string; @@ -18,7 +17,6 @@ export interface DmpListingModel { groupId: string; version: number; datasets: any[]; - associatedProfiles: DmpAssociatedProfileModel[]; users: any[]; public: boolean; } diff --git a/dmp-frontend/src/app/core/model/dmp/dmp-overview.ts b/dmp-frontend/src/app/core/model/dmp/dmp-overview.ts index d8679633e..9dfff2490 100644 --- a/dmp-frontend/src/app/core/model/dmp/dmp-overview.ts +++ b/dmp-frontend/src/app/core/model/dmp/dmp-overview.ts @@ -1,6 +1,5 @@ import { OrganizationModel } from "../organisation/organization"; import { UserInfoListingModel } from "../user/user-info-listing"; -import { DmpAssociatedProfileModel } from "../dmp-blueprint/dmp-associated-profile"; import { ResearcherModel } from "../researcher/researcher"; import { GrantOverviewModel } from "../grant/grant-overview"; import { DatasetOverviewModel } from "../dataset/dataset-overview"; @@ -18,7 +17,6 @@ export interface DmpOverviewModel { groupId: string; description: string; grant: GrantOverviewModel; - associatedProfiles: DmpAssociatedProfileModel[]; users: UserInfoListingModel[]; organisations: OrganizationModel[]; datasets: DatasetOverviewModel[]; diff --git a/dmp-frontend/src/app/core/model/recent-activity/recent-dmp-activity.model.ts b/dmp-frontend/src/app/core/model/recent-activity/recent-dmp-activity.model.ts index 77fdf6486..b9037b771 100644 --- a/dmp-frontend/src/app/core/model/recent-activity/recent-dmp-activity.model.ts +++ b/dmp-frontend/src/app/core/model/recent-activity/recent-dmp-activity.model.ts @@ -1,14 +1,10 @@ -import { RecentActivityModel } from './recent-activity.model'; -import { RecentDatasetModel } from './recent-dataset-activity.model'; -import { DmpAssociatedProfileModel } from '../dmp-blueprint/dmp-associated-profile'; -import { UserInfoListingModel } from '../user/user-info-listing'; import { DatasetUrlListing } from '../dataset/dataset-url-listing'; +import { RecentActivityModel } from './recent-activity.model'; export class RecentDmpModel extends RecentActivityModel { doi: String; extraProperties: Map; datasets: DatasetUrlListing[]; - associatedProfiles: DmpAssociatedProfileModel[]; organisations: String; groupId: string; } diff --git a/dmp-frontend/src/app/ui/admin/dmp-blueprint/dmp-blueprint.module.ts b/dmp-frontend/src/app/ui/admin/dmp-blueprint/dmp-blueprint.module.ts index aabdcff94..c0cce8cea 100644 --- a/dmp-frontend/src/app/ui/admin/dmp-blueprint/dmp-blueprint.module.ts +++ b/dmp-frontend/src/app/ui/admin/dmp-blueprint/dmp-blueprint.module.ts @@ -12,11 +12,9 @@ import { CommonUiModule } from '@common/ui/common-ui.module'; import { NgxDropzoneModule } from "ngx-dropzone"; import { DmpBlueprintRoutingModule } from './dmp-blueprint.routing'; import { DmpBlueprintEditorComponent } from './editor/dmp-blueprint-editor.component'; -import { DmpBlueprintExternalAutocompleteFieldEditorComponent } from './editor/external-autocomplete/dmp-blueprint-external-autocomplete-field-editor.component'; -import { DialodConfirmationUploadDmpBlueprints } from './listing/criteria/dialog-confirmation-upload-blueprint/dialog-confirmation-upload-blueprints.component'; -import { DmpBlueprintCriteriaComponent } from './listing/criteria/dmp-blueprint-criteria.component'; import { DmpBlueprintListingComponent } from './listing/dmp-blueprint-listing.component'; import { DmpBlueprintListingFiltersComponent } from "./listing/filters/dmp-blueprint-listing-filters.component"; +import { ImportDmpBlueprintDialogComponent } from './listing/import-dmp-blueprint/import-dmp-blueprint.dialog.component'; @NgModule({ imports: [ @@ -37,9 +35,7 @@ import { DmpBlueprintListingFiltersComponent } from "./listing/filters/dmp-bluep DmpBlueprintEditorComponent, DmpBlueprintListingComponent, DmpBlueprintListingFiltersComponent, - DmpBlueprintCriteriaComponent, - DialodConfirmationUploadDmpBlueprints, - DmpBlueprintExternalAutocompleteFieldEditorComponent + ImportDmpBlueprintDialogComponent ] }) export class DmpBlueprintModule { } diff --git a/dmp-frontend/src/app/ui/admin/dmp-blueprint/editor/dmp-blueprint-editor.component.ts b/dmp-frontend/src/app/ui/admin/dmp-blueprint/editor/dmp-blueprint-editor.component.ts index b58df63a5..f25269990 100644 --- a/dmp-frontend/src/app/ui/admin/dmp-blueprint/editor/dmp-blueprint-editor.component.ts +++ b/dmp-frontend/src/app/ui/admin/dmp-blueprint/editor/dmp-blueprint-editor.component.ts @@ -770,24 +770,4 @@ export class DmpBlueprintEditorComponent extends BaseEditor -
-
{{'DMP-BLUEPRINT-EDITOR.FIELDS.EXTERNAL-AUTOCOMPLETE.TITLE' | translate}}
- - {{'DMP-BLUEPRINT-EDITOR.FIELDS.EXTERNAL-AUTOCOMPLETE.MULTIPLE-AUTOCOMPLETE' | translate}} - - - - - - - - - - - - - - -
- diff --git a/dmp-frontend/src/app/ui/admin/dmp-blueprint/editor/external-autocomplete/dmp-blueprint-external-autocomplete-field-editor.component.scss b/dmp-frontend/src/app/ui/admin/dmp-blueprint/editor/external-autocomplete/dmp-blueprint-external-autocomplete-field-editor.component.scss deleted file mode 100644 index fdb51b6d5..000000000 --- a/dmp-frontend/src/app/ui/admin/dmp-blueprint/editor/external-autocomplete/dmp-blueprint-external-autocomplete-field-editor.component.scss +++ /dev/null @@ -1,13 +0,0 @@ -.external-autocomplete { - margin-bottom: 10px; - - .centered-row-item { - align-items: center; - display: flex; - } -} - -.external-autocomplete-field { - margin-left: auto; - background: aliceblue; -} diff --git a/dmp-frontend/src/app/ui/admin/dmp-blueprint/editor/external-autocomplete/dmp-blueprint-external-autocomplete-field-editor.component.ts b/dmp-frontend/src/app/ui/admin/dmp-blueprint/editor/external-autocomplete/dmp-blueprint-external-autocomplete-field-editor.component.ts deleted file mode 100644 index cf297e202..000000000 --- a/dmp-frontend/src/app/ui/admin/dmp-blueprint/editor/external-autocomplete/dmp-blueprint-external-autocomplete-field-editor.component.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Component, Input, OnInit } from '@angular/core'; -import { UntypedFormGroup } from '@angular/forms'; -import { DmpBlueprintExternalAutoCompleteFieldDataEditorModel } from './dmp-blueprint-external-autocomplete-field-editor.model'; - -@Component({ - selector: 'app-dmp-blueprint-external-autocomplete-field-editor-component', - styleUrls: ['./dmp-blueprint-external-autocomplete-field-editor.component.scss'], - templateUrl: './dmp-blueprint-external-autocomplete-field-editor.component.html' -}) -export class DmpBlueprintExternalAutocompleteFieldEditorComponent implements OnInit { - - @Input() form: UntypedFormGroup - private externalAutocomplete: DmpBlueprintExternalAutoCompleteFieldDataEditorModel; - - ngOnInit() { - } -} diff --git a/dmp-frontend/src/app/ui/admin/dmp-blueprint/editor/external-autocomplete/dmp-blueprint-external-autocomplete-field-editor.model.ts b/dmp-frontend/src/app/ui/admin/dmp-blueprint/editor/external-autocomplete/dmp-blueprint-external-autocomplete-field-editor.model.ts deleted file mode 100644 index 35c4bf1e2..000000000 --- a/dmp-frontend/src/app/ui/admin/dmp-blueprint/editor/external-autocomplete/dmp-blueprint-external-autocomplete-field-editor.model.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { UntypedFormGroup, UntypedFormBuilder } from "@angular/forms"; -import { DmpBlueprintExternalAutoCompleteField } from "../../../../../core/model/dmp-blueprint/dmp-blueprint-external-autocomplete"; - -export class DmpBlueprintExternalAutoCompleteFieldDataEditorModel { - - public url: string; - public optionsRoot: string; - public multiAutoComplete: boolean = false; - public label: string; - public value: string; - - buildForm(disabled: boolean = false, skipDisable: Array = []): UntypedFormGroup { - const formGroup = new UntypedFormBuilder().group({ - url: [{ value: this.url, disabled: (disabled && !skipDisable.includes('DmpBlueprintExternalAutoCompleteFieldDataEditorModel.url')) }], - optionsRoot: [{ value: this.optionsRoot, disabled: (disabled && !skipDisable.includes('DmpBlueprintExternalAutoCompleteFieldDataEditorModel.optionsRoot')) }], - multiAutoComplete: [{ value: this.multiAutoComplete, disabled: (disabled && !skipDisable.includes('DmpBlueprintExternalAutoCompleteFieldDataEditorModel.multiAutoComplete')) }], - label: [{ value: this.label, disabled: (disabled && !skipDisable.includes('DmpBlueprintExternalAutoCompleteFieldDataEditorModel.label')) }], - value: [{ value: this.value, disabled: (disabled && !skipDisable.includes('DmpBlueprintExternalAutoCompleteFieldDataEditorModel.value')) }], - - }); - return formGroup; - } - - fromModel(item: DmpBlueprintExternalAutoCompleteField): DmpBlueprintExternalAutoCompleteFieldDataEditorModel { - this.url = item.url; - this.optionsRoot = item.optionsRoot; - this.multiAutoComplete = item.multiAutoComplete; - this.label = item.label; - this.value = item.value; - return this; - } -} diff --git a/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/criteria/dmp-blueprint-criteria.component.html b/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/criteria/dmp-blueprint-criteria.component.html deleted file mode 100644 index f1a256ced..000000000 --- a/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/criteria/dmp-blueprint-criteria.component.html +++ /dev/null @@ -1,23 +0,0 @@ -
-
-
- {{'CRITERIA.USERS.SHOW' | translate}}: -
- - - - {{'BLUEPRINT-STATUS.NONE' | translate}} - {{'BLUEPRINT-STATUS.DRAFT' | translate}} - {{'BLUEPRINT-STATUS.FINALIZED' | translate}} - - - -
-
- - - search - -
-
diff --git a/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/criteria/dmp-blueprint-criteria.component.scss b/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/criteria/dmp-blueprint-criteria.component.scss deleted file mode 100644 index 9b64c055a..000000000 --- a/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/criteria/dmp-blueprint-criteria.component.scss +++ /dev/null @@ -1,17 +0,0 @@ -.mat-form-field{ - display: inline-block !important; -} - -:host ::ng-deep .status-form-field .mat-form-field-wrapper { - background-color: white !important; - padding-bottom: 0 !important; -} - -:host ::ng-deep .search-form-field .mat-form-field-wrapper { - background-color: white !important; - padding-bottom: 0 !important; -} - -:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-infix { - padding: 0.3rem 0rem 0.6rem 0rem !important; -} \ No newline at end of file diff --git a/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/criteria/dmp-blueprint-criteria.component.ts b/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/criteria/dmp-blueprint-criteria.component.ts deleted file mode 100644 index 5d832395c..000000000 --- a/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/criteria/dmp-blueprint-criteria.component.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { Component, Input, OnInit } from '@angular/core'; -import { MatDialog } from '@angular/material/dialog'; -import { DmpBlueprintCriteria } from '@app/core/query/dmp/dmp-blueprint-criteria'; -import { DmpBlueprintService } from '@app/core/services/dmp/dmp-blueprint.service'; -import { BaseCriteriaComponent } from '@app/ui/misc/criteria/base-criteria.component'; -import { ValidationErrorModel } from '@common/forms/validation/error-model/validation-error-model'; -import { TranslateService } from '@ngx-translate/core'; - -@Component({ - selector: 'app-dmp-blueprint-criteria-component', - templateUrl: './dmp-blueprint-criteria.component.html', - styleUrls: ['./dmp-blueprint-criteria.component.scss'], -}) -export class DmpBlueprintCriteriaComponent extends BaseCriteriaComponent implements OnInit { - - public criteria: DmpBlueprintCriteria = new DmpBlueprintCriteria(); - - constructor( - private dmpBlueprintService: DmpBlueprintService, - private dialog: MatDialog, - private language: TranslateService - ) { - super(new ValidationErrorModel()); - } - - ngOnInit() { - super.ngOnInit(); - if (this.criteria == null) { this.criteria = new DmpBlueprintCriteria(); } - } - - setCriteria(criteria: DmpBlueprintCriteria): void { - this.criteria = criteria; - } - - onCallbackError(error: any) { - this.setErrorModel(error.error); - } - - controlModified(): void { - this.clearErrorModel(); - if (this.refreshCallback != null && - (this.criteria.like == null || this.criteria.like.length === 0 || this.criteria.like.length > 2) - ) { - this.refreshCallback(); - } - } - - - // openDialog(): void { - // const dialogRef = this.dialog.open(DialodConfirmationUploadDmpBlueprints, { - // restoreFocus: false, - // data: { - // message: this.language.instant('DMP-BLUEPRINT-LISTING.UPLOAD.UPLOAD-XML-FILE-TITLE'), - // confirmButton: this.language.instant('DMP-BLUEPRINT-LISTING.UPLOAD.UPLOAD-XML'), - // cancelButton: this.language.instant('DMP-BLUEPRINT-LISTING.UPLOAD.UPLOAD-XML-FILE-CANCEL'), - // name: '', - // file: FileList, - // sucsess: false - // } - // }); - // dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(data => { - // if (data && data.sucsess && data.name != null && data.file != null) { - // this.dmpBlueprintService.uploadFile(data.file, data.name) - // .pipe(takeUntil(this._destroyed)) - // .subscribe(); - // } - // }); - // } -} diff --git a/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/dmp-blueprint-listing.component.html b/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/dmp-blueprint-listing.component.html index 858d209f7..8819138a9 100644 --- a/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/dmp-blueprint-listing.component.html +++ b/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/dmp-blueprint-listing.component.html @@ -8,27 +8,26 @@
- +
+ +
+
- + - + - + @@ -43,15 +42,13 @@
- {{item?.label | nullifyValue}} + {{item?.label | nullifyValue}}
-
+
{{enumUtils.toDescriptionTemplateTypeStatusString(item.status) | nullifyValue}}
@@ -80,8 +77,7 @@
-
+
{{enumUtils.toDescriptionTemplateTypeStatusString(row.status) | nullifyValue}}
diff --git a/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/dmp-blueprint-listing.component.ts b/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/dmp-blueprint-listing.component.ts index 4a12053d6..4a49a52ed 100644 --- a/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/dmp-blueprint-listing.component.ts +++ b/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/dmp-blueprint-listing.component.ts @@ -11,6 +11,7 @@ import { DmpBlueprintService } from '@app/core/services/dmp/dmp-blueprint.servic import { MatomoService } from '@app/core/services/matomo/matomo-service'; import { SnackBarNotificationLevel, UiNotificationService } from '@app/core/services/notification/ui-notification-service'; import { EnumUtils } from '@app/core/services/utilities/enum-utils.service'; +import { FileUtils } from '@app/core/services/utilities/file-utils.service'; import { QueryParamsService } from '@app/core/services/utilities/query-params.service'; import { BaseListingComponent } from '@common/base/base-listing-component'; import { PipeService } from '@common/formatting/pipe.service'; @@ -21,9 +22,11 @@ import { HttpErrorHandlingService } from '@common/modules/errors/error-handling/ import { ColumnDefinition, ColumnsChangedEvent, HybridListingComponent, PageLoadEvent } from '@common/modules/hybrid-listing/hybrid-listing.component'; import { Guid } from '@common/types/guid'; import { TranslateService } from '@ngx-translate/core'; +import * as FileSaver from 'file-saver'; import { Observable } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { nameof } from 'ts-simple-nameof'; +import { ImportDmpBlueprintDialogComponent } from './import-dmp-blueprint/import-dmp-blueprint.dialog.component'; @Component({ @@ -66,7 +69,8 @@ export class DmpBlueprintListingComponent extends BaseListingComponent { - // const blob = new Blob([response.body], { type: 'application/xml' }); - // const filename = this.fileUtils.getFilenameFromContentDispositionHeader(response.headers.get('Content-Disposition')); - // FileSaver.saveAs(blob, filename); - // }); + this.dmpBlueprintService.downloadXML(id) + .pipe(takeUntil(this._destroyed)) + .subscribe(response => { + const blob = new Blob([response.body], { type: 'application/xml' }); + const filename = this.fileUtils.getFilenameFromContentDispositionHeader(response.headers.get('Content-Disposition')); + FileSaver.saveAs(blob, filename); + }); + } + + import(): void { + const dialogRef = this.dialog.open(ImportDmpBlueprintDialogComponent, { + restoreFocus: false, + data: { + message: this.language.instant('DMP-BLUEPRINT-LISTING.IMPORT.UPLOAD-XML-FILE-TITLE'), + confirmButton: this.language.instant('DMP-BLUEPRINT-LISTING.IMPORT.UPLOAD-XML'), + cancelButton: this.language.instant('DMP-BLUEPRINT-LISTING.IMPORT.UPLOAD-XML-FILE-CANCEL'), + name: '', + file: FileList, + sucsess: false + } + }); + dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(data => { + if (data && data.sucsess && data.name != null && data.file != null) { + this.dmpBlueprintService.uploadFile(data.file, data.name) + .pipe(takeUntil(this._destroyed)) + .subscribe(_ => { + this.uiNotificationService.snackBarNotification(this.language.instant('DMP-BLUEPRINT-LISTING.MESSAGES.TEMPLATE-UPLOAD-SUCCESS'), SnackBarNotificationLevel.Success); + this.ngOnInit(); + }, + error => { + this.uiNotificationService.snackBarNotification(error.message, SnackBarNotificationLevel.Error); + }); + } + }); } } @@ -277,9 +308,9 @@ export class DmpBlueprintListingComponent extends BaseListingComponent
- +
diff --git a/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/criteria/dialog-confirmation-upload-blueprint/dialog-confirmation-upload-blueprints.component.scss b/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/import-dmp-blueprint/import-dmp-blueprint.dialog.component.scss similarity index 100% rename from dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/criteria/dialog-confirmation-upload-blueprint/dialog-confirmation-upload-blueprints.component.scss rename to dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/import-dmp-blueprint/import-dmp-blueprint.dialog.component.scss diff --git a/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/criteria/dialog-confirmation-upload-blueprint/dialog-confirmation-upload-blueprints.component.ts b/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/import-dmp-blueprint/import-dmp-blueprint.dialog.component.ts similarity index 60% rename from dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/criteria/dialog-confirmation-upload-blueprint/dialog-confirmation-upload-blueprints.component.ts rename to dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/import-dmp-blueprint/import-dmp-blueprint.dialog.component.ts index 6e8151659..5e214cdca 100644 --- a/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/criteria/dialog-confirmation-upload-blueprint/dialog-confirmation-upload-blueprints.component.ts +++ b/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/import-dmp-blueprint/import-dmp-blueprint.dialog.component.ts @@ -1,39 +1,38 @@ +import { Component, Inject } from '@angular/core'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { Inject, Component } from '@angular/core'; @Component({ - selector: 'app-dialog-confirmation-upload', - templateUrl: './dialog-confirmation-upload-blueprints.component.html', - styleUrls: ['./dialog-confirmation-upload-blueprints.component.scss'] + templateUrl: './import-dmp-blueprint.dialog.component.html', + styleUrls: ['./import-dmp-blueprint.dialog.component.scss'] }) -export class DialodConfirmationUploadDmpBlueprints { +export class ImportDmpBlueprintDialogComponent { sizeError = false; - selectFile =false; + selectFile = false; maxFileSize: number = 1048576; selectedFileName: string; constructor( - public dialogRef: MatDialogRef, + public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any ) { } selectXML(event) { let file: FileList = null; - if(event.target && event.target.files){ + if (event.target && event.target.files) { file = event.target.files; - }else if(event.addedFiles && event.addedFiles.length){ + } else if (event.addedFiles && event.addedFiles.length) { file = event.addedFiles; } - if(!file) return;//no select closed with cancel . no file selected + if (!file) return;//no select closed with cancel . no file selected const size: number = file[0].size; // Get file size. this.sizeError = size > this.maxFileSize; // Checks if file size is valid. const formdata: FormData = new FormData(); if (!this.sizeError) { this.data.file = file; - this.selectFile=true; + this.selectFile = true; this.selectedFileName = file[0].name; } this.data.name = file[0].name; @@ -50,12 +49,12 @@ export class DialodConfirmationUploadDmpBlueprints { this.dialogRef.close(this.data); } - hasBlueprint():boolean{ + hasBlueprint(): boolean { return (this.selectFile && !this.sizeError); } //remove selected file - onRemove(){ - this.data.name=""; + onRemove() { + this.data.name = ""; this.selectFile = false; this.selectedFileName = ""; } diff --git a/dmp-frontend/src/app/ui/dashboard/dashboard.module.ts b/dmp-frontend/src/app/ui/dashboard/dashboard.module.ts index f5db07c30..48e536d65 100644 --- a/dmp-frontend/src/app/ui/dashboard/dashboard.module.ts +++ b/dmp-frontend/src/app/ui/dashboard/dashboard.module.ts @@ -4,7 +4,6 @@ import { CardComponent } from '@app/ui/dashboard/card/card.component'; import { DashboardComponent } from '@app/ui/dashboard/dashboard.component'; import { DashboardRoutingModule } from '@app/ui/dashboard/dashboard.routing'; import { DatasetInfoCounterComponent } from '@app/ui/dashboard/dataset-info-counter/dataset-info-counter.component'; -import { DmpInfoCounterComponent } from '@app/ui/dashboard/dmp-info-counter/dmp-info-counter.component'; import { DraftsComponent } from '@app/ui/dashboard/drafts/drafts.component'; import { InfoCounterComponent } from '@app/ui/dashboard/info-counter/info-counter.component'; import { QuickWizardCreateAdd } from '@app/ui/dashboard/quick-wizard-create-add/quick-wizard-create-add.component'; @@ -41,7 +40,6 @@ import { FormattingModule } from '@app/core/formatting.module'; RecentVisitedActivityComponent, RecentEditedActivityComponent, DraftsComponent, - DmpInfoCounterComponent, DatasetInfoCounterComponent, RecentEditedDatasetActivityComponent, RecentEditedDmpActivityComponent diff --git a/dmp-frontend/src/app/ui/dashboard/dmp-info-counter/dmp-info-counter.component.css b/dmp-frontend/src/app/ui/dashboard/dmp-info-counter/dmp-info-counter.component.css deleted file mode 100644 index 23ba20a1a..000000000 --- a/dmp-frontend/src/app/ui/dashboard/dmp-info-counter/dmp-info-counter.component.css +++ /dev/null @@ -1,71 +0,0 @@ -.listing-item { - background-color: #ffffff; -} - -.icon { - /* color: rgb(112, 173, 71); */ - color: #08bd63; - /* color: #92d050; */ -} - -.gray-container { - letter-spacing: 5px; - color: #aaaaaa; -} - -.container-header { - display: flex; - align-items: baseline; - margin-top: 0px; - padding-top: 10px; - text-transform: uppercase; -} - -.container-header p { - letter-spacing: 5px; - color: #aaaaaa; - margin-bottom: 0px; -} - -/* .container-header :hover { - color: #4687e6; -} */ - -.about-item { - display: flex; - flex-wrap: wrap; -} - -.about-item .title { - margin: 2px 10px; -} - -.about-item p { - margin-left: auto; - margin-bottom: 0px; - padding-top: 7px; - color: #aaaaaa; -} - -.draft-icon { - color: #aaaaaa; -} - -.more-horiz { - font-size: 28px; - color: #aaaaaa; -} - -hr { - margin: 0.6em 0em; -} - -.date { - display: flex; -} - -.date p { - margin-left: auto; - margin-bottom: 0em; - color: #aaaaaa; -} diff --git a/dmp-frontend/src/app/ui/dashboard/dmp-info-counter/dmp-info-counter.component.html b/dmp-frontend/src/app/ui/dashboard/dmp-info-counter/dmp-info-counter.component.html deleted file mode 100644 index a0aa2a65c..000000000 --- a/dmp-frontend/src/app/ui/dashboard/dmp-info-counter/dmp-info-counter.component.html +++ /dev/null @@ -1,32 +0,0 @@ -
-
-
-
-

- {{dmp.grantAbbreviation}}

-
-
-
-
- radio_button_checked -

{{dmp.label}}

-
-
-
-
-

{{dmp.description}}

-
-
-
-
-
-
{{profile.label}}
-
-
-
-
-
-

{{'DMP-BLUEPRINT-LISTING.COLUMNS.PUBLISHED' | translate}} {{dmp.creationTime | date: "shortDate"}}

-
-
-
diff --git a/dmp-frontend/src/app/ui/dashboard/dmp-info-counter/dmp-info-counter.component.ts b/dmp-frontend/src/app/ui/dashboard/dmp-info-counter/dmp-info-counter.component.ts deleted file mode 100644 index f83c724c4..000000000 --- a/dmp-frontend/src/app/ui/dashboard/dmp-info-counter/dmp-info-counter.component.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core'; -import { Router } from '@angular/router'; -import { DmpListingModel } from '../../../core/model/dmp/dmp-listing'; - -@Component({ - selector: 'app-dmp-info-counter', - templateUrl: './dmp-info-counter.component.html', - styleUrls: ['./dmp-info-counter.component.css'] -}) -export class DmpInfoCounterComponent implements OnInit { - - @Input() dmp: DmpListingModel; - @Output() onClick: EventEmitter = new EventEmitter(); - - constructor(public router: Router) { } - - ngOnInit() { - } - - itemClicked() { - this.onClick.emit(this.dmp); - } - - grantClicked(grantId: String) { - // this.router.navigate(['/datasets/publicEdit/' + grantId]); - } - -} diff --git a/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-copy-dialogue/dataset-copy-dialogue.component.ts b/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-copy-dialogue/dataset-copy-dialogue.component.ts index d0ba0a000..dc98a3e37 100644 --- a/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-copy-dialogue/dataset-copy-dialogue.component.ts +++ b/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-copy-dialogue/dataset-copy-dialogue.component.ts @@ -11,7 +11,6 @@ import { DmpService } from "../../../../core/services/dmp/dmp.service"; import { Inject } from "@angular/core"; import { DmpModel } from "../../../../core/model/dmp/dmp"; import { TranslateService } from "@ngx-translate/core"; -import { DmpAssociatedProfileModel } from '../../../../core/model/dmp-blueprint/dmp-associated-profile'; @Component({ selector: 'dataset-copy-dialogue-component', @@ -65,10 +64,6 @@ export class DatasetCopyDialogueComponent { return this.dmpService.getPaged(dmpDataTableRequest, "profiles").pipe(map(x => x.data)); } - existsDatasetDescriptionTemplate(associatedProfiles: DmpAssociatedProfileModel[]): boolean { - return associatedProfiles.some((profile) => profile.id === this.data.datasetProfileId); - } - datasetProfileValidate() { return this.dmpService.getSingle(this.data.formControl.value.id).pipe(map(result => result as DmpModel), map(result => { diff --git a/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.model.ts b/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.model.ts index ffd71195b..119d31dfc 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.model.ts +++ b/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.model.ts @@ -2,7 +2,6 @@ import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms import { DmpBlueprintExtraFieldDataType } from '@app/core/common/enum/dmp-blueprint-field-type'; import { DmpBlueprintType } from '@app/core/common/enum/dmp-blueprint-type'; import { DmpStatus } from '@app/core/common/enum/dmp-status'; -import { DmpBlueprintField } from '@app/core/model/dmp-blueprint/dmp-blueprint-field'; import { DmpModel } from '@app/core/model/dmp/dmp'; import { DmpDynamicField } from '@app/core/model/dmp/dmp-dynamic-field'; import { DmpDynamicFieldDependency } from '@app/core/model/dmp/dmp-dynamic-field-dependency'; @@ -11,7 +10,6 @@ import { ResearcherModel } from '@app/core/model/researcher/researcher'; import { UserModel } from '@app/core/model/user/user'; import { UserInfoListingModel } from '@app/core/model/user/user-info-listing'; import { ValidJsonValidator } from '@app/library/auto-complete/auto-complete-custom-validator'; -import { DmpBlueprintExternalAutoCompleteFieldDataEditorModel } from '@app/ui/admin/dmp-blueprint/editor/external-autocomplete/dmp-blueprint-external-autocomplete-field-editor.model'; import { FunderFormModel } from '@app/ui/dmp/editor/grant-tab/funder-form-model'; import { GrantTabModel } from '@app/ui/dmp/editor/grant-tab/grant-tab-model'; import { ProjectFormModel } from '@app/ui/dmp/editor/grant-tab/project-form-model'; @@ -214,40 +212,3 @@ export class DmpDynamicFieldDependencyEditorModel { }); } } - -export class DmpDefinitionFieldEditorModel implements DmpBlueprintField { - public id: string; - public type: DmpBlueprintType; - public dataType: DmpBlueprintExtraFieldDataType; - public required = false; - public label: string; - public value: any; - public externalAutocomplete?: DmpBlueprintExternalAutoCompleteFieldDataEditorModel; - - fromModel(item: DmpBlueprintField): DmpDefinitionFieldEditorModel { - this.type = item.type; - this.dataType = item.dataType; - this.required = item.required; - this.label = item.label; - this.id = item.id; - this.value = item.value; - if (item.externalAutocomplete) - this.externalAutocomplete = new DmpBlueprintExternalAutoCompleteFieldDataEditorModel().fromModel(item.externalAutocomplete); - return this; - } - - buildForm(): UntypedFormGroup { - const formGroup = new UntypedFormBuilder().group({ - type: [this.type], - id: [this.id], - dataType: [this.dataType], - required: [this.required], - label: [this.label], - value: [this.value] - }); - if (this.externalAutocomplete) { - formGroup.addControl('externalAutocomplete', this.externalAutocomplete.buildForm()); - } - return formGroup; - } -}