diff --git a/dmp-backend/core/src/main/java/eu/eudat/authorization/Permission.java b/dmp-backend/core/src/main/java/eu/eudat/authorization/Permission.java index d032e5083..990163acb 100644 --- a/dmp-backend/core/src/main/java/eu/eudat/authorization/Permission.java +++ b/dmp-backend/core/src/main/java/eu/eudat/authorization/Permission.java @@ -46,5 +46,6 @@ public final class Permission { // UI Pages public static String ViewDescriptionTemplateTypePage = "ViewDescriptionTemplateTypePage"; - + public static String ViewDmpBlueprintPage = "ViewDmpBlueprintPage"; + } diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/UserSettingsController.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/UserSettingsController.java index c1ab218a5..730f44015 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/UserSettingsController.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/v2/UserSettingsController.java @@ -33,7 +33,6 @@ import javax.management.InvalidApplicationException; import java.util.*; @RestController -@CrossOrigin @RequestMapping(path = "api/user-settings") public class UserSettingsController { diff --git a/dmp-frontend/src/app/app-routing.module.ts b/dmp-frontend/src/app/app-routing.module.ts index 6d94faf13..fbd5a9dcc 100644 --- a/dmp-frontend/src/app/app-routing.module.ts +++ b/dmp-frontend/src/app/app-routing.module.ts @@ -82,8 +82,12 @@ const appRoutes: Routes = [ path: 'dmp-blueprints', loadChildren: () => import('./ui/admin/dmp-blueprint/dmp-blueprint.module').then(m => m.DmpBlueprintModule), data: { - breadcrumb: true, - title: 'GENERAL.TITLES.DMP-BLUEPRINTS' + authContext: { + permissions: [AppPermission.ViewDmpBlueprintPage] + }, + ...BreadcrumbService.generateRouteDataConfiguration({ + title: 'BREADCRUMBS.DMP-BLUEPRINTS' + }) } }, { @@ -106,8 +110,6 @@ const appRoutes: Routes = [ path: 'description-template-type', loadChildren: () => import('./ui/admin/description-types/description-template-type.module').then(m => m.DescriptionTemplateTypesModule), data: { - breadcrumb: true, - title: 'GENERAL.TITLES.DESCRIPTION-TEMPLATE-TYPES', authContext: { permissions: [AppPermission.ViewDescriptionTemplateTypePage] }, diff --git a/dmp-frontend/src/app/core/common/enum/permission.enum.ts b/dmp-frontend/src/app/core/common/enum/permission.enum.ts index 063694faf..c73fa420a 100644 --- a/dmp-frontend/src/app/core/common/enum/permission.enum.ts +++ b/dmp-frontend/src/app/core/common/enum/permission.enum.ts @@ -5,6 +5,7 @@ export enum AppPermission { DeleteDescriptionTemplateType = "DeleteDescriptionTemplateType", // UI Pages - ViewDescriptionTemplateTypePage = "ViewDescriptionTemplateTypePage" + ViewDescriptionTemplateTypePage = "ViewDescriptionTemplateTypePage", + ViewDmpBlueprintPage = "ViewDmpBlueprintPage" } diff --git a/dmp-frontend/src/app/ui/admin/description-types/listing/description-template-type-listing.component.html b/dmp-frontend/src/app/ui/admin/description-types/listing/description-template-type-listing.component.html index 2e9a96d09..45491ae4f 100644 --- a/dmp-frontend/src/app/ui/admin/description-types/listing/description-template-type-listing.component.html +++ b/dmp-frontend/src/app/ui/admin/description-types/listing/description-template-type-listing.component.html @@ -1,4 +1,4 @@ -
+
@@ -29,9 +29,9 @@ -
diff --git a/dmp-frontend/src/app/ui/admin/description-types/listing/description-template-type-listing.component.ts b/dmp-frontend/src/app/ui/admin/description-types/listing/description-template-type-listing.component.ts index 7282e2bde..0ca906b0b 100644 --- a/dmp-frontend/src/app/ui/admin/description-types/listing/description-template-type-listing.component.ts +++ b/dmp-frontend/src/app/ui/admin/description-types/listing/description-template-type-listing.component.ts @@ -98,11 +98,6 @@ export class DescriptionTemplateTypeListingComponent extends BaseListingComponen languageName: 'DESCRIPTION-TEMPLATE-TYPE-LISTING.FIELDS.STATUS', cellTemplate: this.descriptionTemplateTypeStatus }, - // { - // prop: nameof(x => x.isExclude), - // languageName: 'DESCRIPTION-TEMPLATE-TYPE-LISTING.FIELDS.IS-EXCLUDE', - // pipe: this.pipeService.getPipe(IsExcludeTypePipe) - // }, { prop: nameof(x => x.createdAt), sortable: true, @@ -151,8 +146,8 @@ export class DescriptionTemplateTypeListingComponent extends BaseListingComponen public deleteType(id: Guid) { if (id) { const dialogRef = this.dialog.open(ConfirmationDialogComponent, { - maxWidth: '300px', data: { + isDeleteConfirmation: true, message: this.language.instant('GENERAL.CONFIRMATION-DIALOG.DELETE-ITEM'), confirmButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CONFIRM'), cancelButton: this.language.instant('GENERAL.CONFIRMATION-DIALOG.ACTIONS.CANCEL') 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 92114accd..858d209f7 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 @@ -1,4 +1,4 @@ -
+
@@ -29,9 +29,9 @@ -
@@ -51,7 +51,7 @@
+ [ngClass]="{'status-chip-finalized': item.status === dmpBlueprintStatuses.Finalized, 'status-chip-draft' : item.status === dmpBlueprintStatuses.Draft}"> {{enumUtils.toDescriptionTemplateTypeStatusString(item.status) | nullifyValue}}
@@ -78,10 +78,10 @@
- +
+ [ngClass]="{'status-chip-finalized': row.status === dmpBlueprintStatuses.Finalized, 'status-chip-draft' : row.status === dmpBlueprintStatuses.Draft}"> {{enumUtils.toDescriptionTemplateTypeStatusString(row.status) | nullifyValue}}
@@ -97,13 +97,13 @@ - - - @@ -111,119 +111,4 @@
- - - \ No newline at end of file + \ No newline at end of file diff --git a/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/dmp-blueprint-listing.component.scss b/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/dmp-blueprint-listing.component.scss index 1887bb1f2..4380a8f0c 100644 --- a/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/dmp-blueprint-listing.component.scss +++ b/dmp-frontend/src/app/ui/admin/dmp-blueprint/listing/dmp-blueprint-listing.component.scss @@ -1,77 +1,83 @@ .mat-table { margin-top: 47px; - border-radius: 4px; + border-radius: 4px; } -.dmp-blueprint-listing { - margin-top: 1.3rem; - margin-left: 1rem; - margin-right: 2rem; - .mat-header-row{ - background: #f3f5f8; - } - .mat-card { - margin: 16px 0; - padding: 0px; - } - - .mat-row { - cursor: pointer; - min-height: 4.5em; - } - - mat-row:hover { - background-color: #eef5f6; - } - .mat-fab-bottom-right { - float: right; - z-index: 5; - } +.dmp-blueprint-listing { + margin-top: 1.3rem; + margin-left: 1rem; + margin-right: 2rem; + + .mat-header-row { + background: #f3f5f8; + } + + .mat-card { + margin: 16px 0; + padding: 0px; + } + + .mat-row { + cursor: pointer; + min-height: 4.5em; + } + + mat-row:hover { + background-color: #eef5f6; + } + + .mat-fab-bottom-right { + float: right; + z-index: 5; + } } + // PAGINATOR :host ::ng-deep .mat-paginator-container { - flex-direction: row-reverse !important; - justify-content: space-between !important; - background-color: #f6f6f6; - align-items: center; + flex-direction: row-reverse !important; + justify-content: space-between !important; + background-color: #f6f6f6; + align-items: center; } -.create-btn { - border-radius: 30px; - background-color: var(--secondary-color); - padding-left: 2em; - padding-right: 2em; - // color: #000; - .button-text{ - display: inline-block; - } +.create-btn { + border-radius: 30px; + background-color: var(--secondary-color); + padding-left: 2em; + padding-right: 2em; + // color: #000; + + .button-text { + display: inline-block; + } } .import-btn { - background: #ffffff 0% 0% no-repeat padding-box; - border-radius: 30px; - // color: var(--primary-color); - // border: 1px solid var(--primary-color); - padding-left: 2em; - padding-right: 2em; - color: #000; - border: 1px solid #000; + background: #ffffff 0% 0% no-repeat padding-box; + border-radius: 30px; + // color: var(--primary-color); + // border: 1px solid var(--primary-color); + padding-left: 2em; + padding-right: 2em; + color: #000; + border: 1px solid #000; } -.status-chip{ - border-radius: 20px; - padding-left: 1em; - padding-right: 1em; - padding-top: 0.2em; - font-size: .8em; +.status-chip { + + border-radius: 20px; + padding-left: 1em; + padding-right: 1em; + padding-top: 0.2em; + font-size: .8em; } -.status-chip-finalized{ - color: #568b5a; - background: #9dd1a1 0% 0% no-repeat padding-box; +.status-chip-finalized { + color: #568b5a; + background: #9dd1a1 0% 0% no-repeat padding-box; } -.status-chip-draft{ - color: #00c4ff; - background: #d3f5ff 0% 0% no-repeat padding-box; -} \ No newline at end of file +.status-chip-draft { + color: #00c4ff; + background: #d3f5ff 0% 0% no-repeat padding-box; +} 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 1e1c31937..a53290abd 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 @@ -8,6 +8,7 @@ import { DmpBlueprint } from '@app/core/model/dmp-blueprint/dmp-blueprint'; import { DmpBlueprintLookup } from '@app/core/query/dmp-blueprint.lookup'; import { AuthService } from '@app/core/services/auth/auth.service'; import { DmpBlueprintService } from '@app/core/services/dmp/dmp-blueprint.service'; +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 { QueryParamsService } from '@app/core/services/utilities/query-params.service'; @@ -34,9 +35,9 @@ export class DmpBlueprintListingComponent extends BaseListingComponent; + @ViewChild('dmpBlueprintStatus', { static: true }) dmpBlueprintStatus?: TemplateRef; @ViewChild('actions', { static: true }) actions?: TemplateRef; @ViewChild(HybridListingComponent, { static: true }) hybridListingComponent: HybridListingComponent; @@ -61,6 +62,7 @@ export class DmpBlueprintListingComponent extends BaseListingComponent(x => x.status), sortable: true, languageName: 'DMP-BLUEPRINT-LISTING.FIELDS.STATUS', - cellTemplate: this.DmpBlueprintStatus + cellTemplate: this.dmpBlueprintStatus }, - // { - // prop: nameof(x => x.isExclude), - // languageName: 'DMP-BLUEPRINT-LISTING.FIELDS.IS-EXCLUDE', - // pipe: this.pipeService.getPipe(IsExcludeTypePipe) - // }, { prop: nameof(x => x.createdAt), sortable: true, @@ -152,11 +150,11 @@ export class DmpBlueprintListingComponent extends BaseListingComponent { + // const blob = new Blob([response.body], { type: 'application/xml' }); + // const filename = this.getFilenameFromContentDispositionHeader(response.headers.get('Content-Disposition')); + // FileSaver.saveAs(blob, filename); + // }); + } } // ngOnInit() { - // this.matomoService.trackPageView('Admin: DMP Templates'); - // this.route.params - // .pipe(takeUntil(this._destroyed)) - // .subscribe((params: Params) => { - // this.dmpId = params['dmpId']; - // this.criteria.setCriteria(this.getDefaultCriteria()); - // this.refresh(); - // this.criteria.setRefreshCallback(() => this.refresh()); - // this.breadCrumbs = observableOf([{ - // parentComponentName: null, - // label: this.languageService.instant('NAV-BAR.DMP-BLUEPRINTS-CAPS'), - // url: '/dmp-blueprints' - // }]); - // }); - // } + // refresh() { // this.dataSource = new DatasetDataSource(this.dmpBlueprintService, this._paginator, this.sort, this.criteria); diff --git a/dmp-frontend/src/assets/i18n/en.json b/dmp-frontend/src/assets/i18n/en.json index 6e30b0aab..8e6f8714a 100644 --- a/dmp-frontend/src/assets/i18n/en.json +++ b/dmp-frontend/src/assets/i18n/en.json @@ -233,7 +233,7 @@ "DESCRIPTION-TEMPLATE-TYPES": "Description Types", "NEW-DESCRIPTION-TEMPLATE-TYPE": "New", "EDIT-DESCRIPTION-TEMPLATE-TYPE": "Edit", - "DMP-BLUEPRINTS": "DMP Bluperints", + "DMP-BLUEPRINTS": "DMP Blueprints", "NEW-DMP-BLUEPRINT": "New", "EDIT-DMP-BLUEPRINT": "Edit" },