more cleanup
This commit is contained in:
parent
e94df66fb0
commit
d6e8e609b5
|
@ -1,5 +1,7 @@
|
||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { IsActive } from '@app/core/common/enum/is-active.enum';
|
import { IsActive } from '@app/core/common/enum/is-active.enum';
|
||||||
|
import { DescriptionPrefillingRequest, PrefillingSearchRequest } from '@app/core/model/description-prefilling-request/description-prefilling-request';
|
||||||
|
import { Description } from '@app/core/model/description/description';
|
||||||
import { Prefilling, PrefillingSource, PrefillingSourcePersist } from '@app/core/model/prefilling-source/prefilling-source';
|
import { Prefilling, PrefillingSource, PrefillingSourcePersist } from '@app/core/model/prefilling-source/prefilling-source';
|
||||||
import { PrefillingSourceLookup } from '@app/core/query/prefilling-source.lookup';
|
import { PrefillingSourceLookup } from '@app/core/query/prefilling-source.lookup';
|
||||||
import { MultipleAutoCompleteConfiguration } from '@app/library/auto-complete/multiple/multiple-auto-complete-configuration';
|
import { MultipleAutoCompleteConfiguration } from '@app/library/auto-complete/multiple/multiple-auto-complete-configuration';
|
||||||
|
@ -12,8 +14,6 @@ import { catchError, map } from 'rxjs/operators';
|
||||||
import { nameof } from 'ts-simple-nameof';
|
import { nameof } from 'ts-simple-nameof';
|
||||||
import { ConfigurationService } from '../configuration/configuration.service';
|
import { ConfigurationService } from '../configuration/configuration.service';
|
||||||
import { BaseHttpV2Service } from '../http/base-http-v2.service';
|
import { BaseHttpV2Service } from '../http/base-http-v2.service';
|
||||||
import { DescriptionPrefillingRequest, PrefillingSearchRequest } from '@app/core/model/description-profiling-request/description-profiling-request';
|
|
||||||
import { Description } from '@app/core/model/description/description';
|
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class PrefillingSourceService {
|
export class PrefillingSourceService {
|
||||||
|
@ -86,11 +86,11 @@ export class PrefillingSourceService {
|
||||||
titleFn: (item: PrefillingSource) => item.label,
|
titleFn: (item: PrefillingSource) => item.label,
|
||||||
valueAssign: (item: PrefillingSource) => item.id,
|
valueAssign: (item: PrefillingSource) => item.id,
|
||||||
};
|
};
|
||||||
|
|
||||||
public getSingleAutocompleteConfiguration(ids: Guid[]): SingleAutoCompleteConfiguration {
|
public getSingleAutocompleteConfiguration(ids: Guid[]): SingleAutoCompleteConfiguration {
|
||||||
return {
|
return {
|
||||||
initialItems: (data?: any) => this.query(this.buildAutocompleteLookup(null, null, ids && ids.length > 0 ? ids: null)).pipe(map(x => x.items)),
|
initialItems: (data?: any) => this.query(this.buildAutocompleteLookup(null, null, ids && ids.length > 0 ? ids : null)).pipe(map(x => x.items)),
|
||||||
filterFn: (searchQuery: string, data?: any) => this.query(this.buildAutocompleteLookup(searchQuery, null, ids && ids.length > 0 ? ids: null)).pipe(map(x => x.items)),
|
filterFn: (searchQuery: string, data?: any) => this.query(this.buildAutocompleteLookup(searchQuery, null, ids && ids.length > 0 ? ids : null)).pipe(map(x => x.items)),
|
||||||
getSelectedItem: (selectedItem: any) => this.query(this.buildAutocompleteLookup(null, null, [selectedItem])).pipe(map(x => x.items[0])),
|
getSelectedItem: (selectedItem: any) => this.query(this.buildAutocompleteLookup(null, null, [selectedItem])).pipe(map(x => x.items[0])),
|
||||||
displayFn: (item: PrefillingSource) => item.label,
|
displayFn: (item: PrefillingSource) => item.label,
|
||||||
titleFn: (item: PrefillingSource) => item.label,
|
titleFn: (item: PrefillingSource) => item.label,
|
||||||
|
@ -109,8 +109,8 @@ export class PrefillingSourceService {
|
||||||
|
|
||||||
public getMltipleAutocompleteConfiguration(ids: Guid[]): MultipleAutoCompleteConfiguration {
|
public getMltipleAutocompleteConfiguration(ids: Guid[]): MultipleAutoCompleteConfiguration {
|
||||||
return {
|
return {
|
||||||
initialItems: (excludedItems: any[], data?: any) => this.query(this.buildAutocompleteLookup(null, excludedItems ? excludedItems : null, ids && ids.length > 0 ? ids: null)).pipe(map(x => x.items)),
|
initialItems: (excludedItems: any[], data?: any) => this.query(this.buildAutocompleteLookup(null, excludedItems ? excludedItems : null, ids && ids.length > 0 ? ids : null)).pipe(map(x => x.items)),
|
||||||
filterFn: (searchQuery: string, excludedItems: any[]) => this.query(this.buildAutocompleteLookup(searchQuery, excludedItems, ids && ids.length > 0 ? ids: null)).pipe(map(x => x.items)),
|
filterFn: (searchQuery: string, excludedItems: any[]) => this.query(this.buildAutocompleteLookup(searchQuery, excludedItems, ids && ids.length > 0 ? ids : null)).pipe(map(x => x.items)),
|
||||||
getSelectedItems: (selectedItems: any[]) => this.query(this.buildAutocompleteLookup(null, null, selectedItems)).pipe(map(x => x.items)),
|
getSelectedItems: (selectedItems: any[]) => this.query(this.buildAutocompleteLookup(null, null, selectedItems)).pipe(map(x => x.items)),
|
||||||
displayFn: (item: PrefillingSource) => item.label,
|
displayFn: (item: PrefillingSource) => item.label,
|
||||||
titleFn: (item: PrefillingSource) => item.label,
|
titleFn: (item: PrefillingSource) => item.label,
|
||||||
|
|
|
@ -73,7 +73,7 @@ export class EnumUtils {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
toDatasetProfileFieldValidationTypeString(status: ValidationType): string {
|
toDescriptionTemplateFieldValidationTypeString(status: ValidationType): string {
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case ValidationType.None: return this.language.instant('TYPES.DESCRIPTION-TEMPLATE-FIELD-VALIDATION-TYPE.NONE');
|
case ValidationType.None: return this.language.instant('TYPES.DESCRIPTION-TEMPLATE-FIELD-VALIDATION-TYPE.NONE');
|
||||||
case ValidationType.Required: return this.language.instant('TYPES.DESCRIPTION-TEMPLATE-FIELD-VALIDATION-TYPE.REQUIRED');
|
case ValidationType.Required: return this.language.instant('TYPES.DESCRIPTION-TEMPLATE-FIELD-VALIDATION-TYPE.REQUIRED');
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
<div class="template-container" *ngIf="descriptionTemplate && formGroup">
|
<div class="template-container" *ngIf="descriptionTemplate && formGroup">
|
||||||
<div mat-dialog-title class="row d-flex m-0 header">
|
<div mat-dialog-title class="row d-flex m-0 header">
|
||||||
<!-- <span class="template-title align-self-center" matTooltip="{{descriptionTemplate.label}}">{{'DMP-LISTING.COLUMNS.PROFILE' | translate}} - {{descriptionTemplate.label}}</span> -->
|
|
||||||
<span class="template-title align-self-center" matTooltip="{{descriptionTemplate.label}}">{{'DESCRIPTION-TEMPLATE-PREVIEW.TEMPLATE' | translate}} - {{descriptionTemplate.label}}</span>
|
<span class="template-title align-self-center" matTooltip="{{descriptionTemplate.label}}">{{'DESCRIPTION-TEMPLATE-PREVIEW.TEMPLATE' | translate}} - {{descriptionTemplate.label}}</span>
|
||||||
<span class="ml-auto align-self-center" (click)="closeDialog()"><mat-icon class="close-icon">close</mat-icon></span>
|
<span class="ml-auto align-self-center" (click)="closeDialog()"><mat-icon class="close-icon">close</mat-icon></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -24,7 +24,7 @@ import { takeUntil } from 'rxjs/operators';
|
||||||
})
|
})
|
||||||
export class DescriptionTemplatePreviewDialogComponent extends BaseComponent implements OnInit {
|
export class DescriptionTemplatePreviewDialogComponent extends BaseComponent implements OnInit {
|
||||||
|
|
||||||
datasetProfileDefinitionFormGroup: UntypedFormGroup;
|
descriptionTemplateDefinitionFormGroup: UntypedFormGroup;
|
||||||
progressIndication = false;
|
progressIndication = false;
|
||||||
editorModel: DescriptionEditorModel;
|
editorModel: DescriptionEditorModel;
|
||||||
formGroup: UntypedFormGroup;
|
formGroup: UntypedFormGroup;
|
||||||
|
|
|
@ -36,7 +36,7 @@ export class DescriptionTemplateEditorFieldSetComponent extends BaseComponent im
|
||||||
@Input() form: UntypedFormGroup;
|
@Input() form: UntypedFormGroup;
|
||||||
@Input() viewOnly: boolean;
|
@Input() viewOnly: boolean;
|
||||||
|
|
||||||
@Input() datasetProfileId?: string;
|
@Input() descriptionTemplateId?: string;
|
||||||
|
|
||||||
@Input() numbering: string;
|
@Input() numbering: string;
|
||||||
@Input() hasFocus: boolean = false;
|
@Input() hasFocus: boolean = false;
|
||||||
|
@ -63,7 +63,7 @@ export class DescriptionTemplateEditorFieldSetComponent extends BaseComponent im
|
||||||
private dialog: MatDialog,
|
private dialog: MatDialog,
|
||||||
private language: TranslateService,
|
private language: TranslateService,
|
||||||
public enumUtils: EnumUtils,
|
public enumUtils: EnumUtils,
|
||||||
public datasetProfileService: DescriptionTemplateService,
|
public descriptionTemplateService: DescriptionTemplateService,
|
||||||
private configurationService: ConfigurationService,
|
private configurationService: ConfigurationService,
|
||||||
public visibilityRulesService: VisibilityRulesService,
|
public visibilityRulesService: VisibilityRulesService,
|
||||||
private referenceTypeService: ReferenceTypeService,
|
private referenceTypeService: ReferenceTypeService,
|
||||||
|
|
|
@ -67,7 +67,7 @@
|
||||||
[availableReferenceTypes]="availableReferenceTypes"
|
[availableReferenceTypes]="availableReferenceTypes"
|
||||||
[viewOnly]="viewOnly" [numbering]="numbering + '.'+ (i+1)"
|
[viewOnly]="viewOnly" [numbering]="numbering + '.'+ (i+1)"
|
||||||
[hasFocus]="fieldset.get('id').value === selectedFieldSetId"
|
[hasFocus]="fieldset.get('id').value === selectedFieldSetId"
|
||||||
[datasetProfileId]="datasetProfileId"
|
[descriptionTemplateId]="descriptionTemplateId"
|
||||||
[validationErrorModel]="validationErrorModel"
|
[validationErrorModel]="validationErrorModel"
|
||||||
[validationRootPath]="validationRootPath + '.fieldSets[' + i + ']'"
|
[validationRootPath]="validationRootPath + '.fieldSets[' + i + ']'"
|
||||||
>
|
>
|
||||||
|
|
|
@ -22,7 +22,7 @@ export class DescriptionTemplateEditorSectionFieldSetComponent implements OnInit
|
||||||
@Input() viewOnly: boolean;
|
@Input() viewOnly: boolean;
|
||||||
@Input() tocentry: ToCEntry;
|
@Input() tocentry: ToCEntry;
|
||||||
|
|
||||||
@Input() datasetProfileId?: string;
|
@Input() descriptionTemplateId?: string;
|
||||||
|
|
||||||
@Output() selectedEntryId = new EventEmitter<string>();
|
@Output() selectedEntryId = new EventEmitter<string>();
|
||||||
@Output() dataNeedsRefresh = new EventEmitter<void>();
|
@Output() dataNeedsRefresh = new EventEmitter<void>();
|
||||||
|
|
|
@ -3,16 +3,6 @@
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12 d-flex" id="title-column">
|
<div class="col-12 d-flex" id="title-column">
|
||||||
<div style="padding-left: 2em;">
|
<div style="padding-left: 2em;">
|
||||||
<!-- <h3 *ngIf="isNew == true && isClone == false && isNewVersion == false">{{'DESCRIPTION-TEMPLATE-EDITOR.TITLE.NEW-PROFILE' | translate}}</h3>
|
|
||||||
<h3 *ngIf="isNew == false && isClone == true && isNewVersion == false">
|
|
||||||
<span *ngIf="isClone">{{'DESCRIPTION-TEMPLATE-EDITOR.TITLE.NEW-PROFILE-CLONE' | translate}}</span>
|
|
||||||
{{formGroup.get('label').value}}
|
|
||||||
</h3>
|
|
||||||
<h3 *ngIf="isNew == false && isClone == false && isNewVersion == true">
|
|
||||||
<span *ngIf="isNewVersion">{{'DESCRIPTION-TEMPLATE-EDITOR.TITLE.NEW-PROFILE-VERSION' | translate}}</span>
|
|
||||||
{{formGroup.get('label').value}}
|
|
||||||
</h3> -->
|
|
||||||
<!-- <h3 *ngIf="!isNew">{{formGroup.get('label').value}}</h3> -->
|
|
||||||
<app-navigation-breadcrumb />
|
<app-navigation-breadcrumb />
|
||||||
</div>
|
</div>
|
||||||
<ng-container *ngTemplateOutlet="actions"></ng-container>
|
<ng-container *ngTemplateOutlet="actions"></ng-container>
|
||||||
|
@ -221,7 +211,7 @@
|
||||||
<app-description-template-editor-section-fieldset-component
|
<app-description-template-editor-section-fieldset-component
|
||||||
[tocentry]="selectedTocEntry"
|
[tocentry]="selectedTocEntry"
|
||||||
[viewOnly]="formGroup.disabled"
|
[viewOnly]="formGroup.disabled"
|
||||||
[datasetProfileId]="datasetProfileId"
|
[descriptionTemplateId]="descriptionTemplateId"
|
||||||
[validationErrorModel]="editorModel.validationErrorModel"
|
[validationErrorModel]="editorModel.validationErrorModel"
|
||||||
[validationRootPath]="selectedTocEntry.validationRootPath"
|
[validationRootPath]="selectedTocEntry.validationRootPath"
|
||||||
[availableReferenceTypes]="availableReferenceTypes"
|
[availableReferenceTypes]="availableReferenceTypes"
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<mat-form-field class="col-12">
|
<mat-form-field class="col-12">
|
||||||
<input matInput placeholder="{{'DESCRIPTION-TEMPLATE-LISTING.IMPORT.UPLOAD-XML-NAME'| translate}}" name="datasetBlueprintName" [(ngModel)]="data.name">
|
<input matInput placeholder="{{'DESCRIPTION-TEMPLATE-LISTING.IMPORT.UPLOAD-XML-NAME'| translate}}" name="descriptionBlueprintName" [(ngModel)]="data.name">
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<button mat-button type="button" class="cancel-btn" (click)="cancel()">{{ data.cancelButton }}</button>
|
<button mat-button type="button" class="cancel-btn" (click)="cancel()">{{ data.cancelButton }}</button>
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<mat-form-field class="col-12">
|
<mat-form-field class="col-12">
|
||||||
<input matInput placeholder="{{'DMP-BLUEPRINT-LISTING.IMPORT.UPLOAD-XML-NAME'| translate}}" name="datasetBlueprintName" [(ngModel)]="data.name">
|
<input matInput placeholder="{{'DMP-BLUEPRINT-LISTING.IMPORT.UPLOAD-XML-NAME'| translate}}" name="descriptionBlueprintName" [(ngModel)]="data.name">
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<button mat-button type="button" class="cancel-btn" (click)="cancel()">{{ data.cancelButton }}</button>
|
<button mat-button type="button" class="cancel-btn" (click)="cancel()">{{ data.cancelButton }}</button>
|
||||||
|
|
|
@ -39,12 +39,12 @@
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="row d-flex align-items-center">
|
<div class="row d-flex align-items-center">
|
||||||
<div *ngIf="!this.hasDmps()" class="col-auto p-0 add-dataset-btn d-flex">
|
<div *ngIf="!this.hasDmps()" class="col-auto p-0 add-description-btn d-flex">
|
||||||
<div class="pr-2">
|
<div class="pr-2">
|
||||||
<button type="button" class="align-self-center normal-btn" (click)="openNewDmpDialog()">{{'DASHBOARD.START-YOUR-FIRST-DMP' | translate}}</button>
|
<button type="button" class="align-self-center normal-btn" (click)="openNewDmpDialog()">{{'DASHBOARD.START-YOUR-FIRST-DMP' | translate}}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="this.hasDmps()" class="col-auto p-0 new-dataset-tour add-dataset-btn col-auto d-flex">
|
<div *ngIf="this.hasDmps()" class="col-auto p-0 new-description-tour add-description-btn col-auto d-flex">
|
||||||
<div class="pr-2">
|
<div class="pr-2">
|
||||||
<button mat-raised-button type="button" class="align-self-center yellow-btn" (click)="addNewDescription()">{{'DASHBOARD.ACTIONS.ADD-DESCRIPTION' | translate}}</button>
|
<button mat-raised-button type="button" class="align-self-center yellow-btn" (click)="addNewDescription()">{{'DASHBOARD.ACTIONS.ADD-DESCRIPTION' | translate}}</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -74,7 +74,7 @@
|
||||||
<app-recent-edited-activity [isActive]="currentType == 'descriptions'" [includeDescriptions]="true" type="descriptions" [selectedType]="currentType"></app-recent-edited-activity>
|
<app-recent-edited-activity [isActive]="currentType == 'descriptions'" [includeDescriptions]="true" type="descriptions" [selectedType]="currentType"></app-recent-edited-activity>
|
||||||
<div *ngIf="totalDatasets === 0" class="empty-list">{{'DASHBOARD.EMPTY-LIST' | translate}}</div>
|
<div *ngIf="totalDatasets === 0" class="empty-list">{{'DASHBOARD.EMPTY-LIST' | translate}}</div>
|
||||||
<div *ngIf="totalDatasets === 0" class="col-auto d-flex justify-content-center">
|
<div *ngIf="totalDatasets === 0" class="col-auto d-flex justify-content-center">
|
||||||
<button mat-raised-button class="add-dataset" (click)="addNewDescription()">
|
<button mat-raised-button class="add-description" (click)="addNewDescription()">
|
||||||
<mat-icon>add</mat-icon> {{'DASHBOARD.ACTIONS.ADD-DESCRIPTION' | translate}}
|
<mat-icon>add</mat-icon> {{'DASHBOARD.ACTIONS.ADD-DESCRIPTION' | translate}}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -156,7 +156,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmp-card,
|
.dmp-card,
|
||||||
.dataset-card {
|
.description-card {
|
||||||
min-width: 712px;
|
min-width: 712px;
|
||||||
/* min-height: 308px; */
|
/* min-height: 308px; */
|
||||||
background: #ffffff 0% 0% no-repeat padding-box;
|
background: #ffffff 0% 0% no-repeat padding-box;
|
||||||
|
@ -192,7 +192,7 @@ input[type="text"] {
|
||||||
line-height: 2.4;
|
line-height: 2.4;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dataset-label {
|
.description-label {
|
||||||
// width: 158px;
|
// width: 158px;
|
||||||
width: auto;
|
width: auto;
|
||||||
height: 37px;
|
height: 37px;
|
||||||
|
@ -214,7 +214,7 @@ input[type="text"] {
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmp-subtitle,
|
.dmp-subtitle,
|
||||||
.dataset-subtitle {
|
.description-subtitle {
|
||||||
|
|
||||||
.icon-align {
|
.icon-align {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
|
@ -224,7 +224,7 @@ input[type="text"] {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.dataset-card-actions,
|
.description-card-actions,
|
||||||
.dmp-card-actions {
|
.dmp-card-actions {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
@ -233,25 +233,25 @@ input[type="text"] {
|
||||||
color: #848484;
|
color: #848484;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dataset-card-actions a,
|
.description-card-actions a,
|
||||||
.dmp-card-actions a {
|
.dmp-card-actions a {
|
||||||
color: #848484 !important;
|
color: #848484 !important;
|
||||||
text-decoration: none !important;
|
text-decoration: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dataset-card-actions a:hover,
|
.description-card-actions a:hover,
|
||||||
.dmp-card-actions a:hover {
|
.dmp-card-actions a:hover {
|
||||||
color: var(--primary-color) !important;
|
color: var(--primary-color) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmp-dataset-descriptions-title {
|
.dmp-description-descriptions-title {
|
||||||
color: #000000;
|
color: #000000;
|
||||||
opacity: 0.6;
|
opacity: 0.6;
|
||||||
padding-top: 1.5rem;
|
padding-top: 1.5rem;
|
||||||
padding-bottom: 0.8rem;
|
padding-bottom: 0.8rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmp-dataset-descriptions-name {
|
.dmp-description-descriptions-name {
|
||||||
color: #000000;
|
color: #000000;
|
||||||
opacity: 0.6;
|
opacity: 0.6;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
@ -300,7 +300,7 @@ input[type="text"] {
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.add-dataset {
|
.add-description {
|
||||||
background: var(--secondary-color) 0% 0% no-repeat padding-box;
|
background: var(--secondary-color) 0% 0% no-repeat padding-box;
|
||||||
box-shadow: 0px 3px 6px #1e202029;
|
box-shadow: 0px 3px 6px #1e202029;
|
||||||
border-radius: 30px;
|
border-radius: 30px;
|
||||||
|
@ -333,7 +333,7 @@ input[type="text"] {
|
||||||
// top: 7px;
|
// top: 7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.add-dataset-btn {
|
.add-description-btn {
|
||||||
height: 40px;
|
height: 40px;
|
||||||
margin-left: 40px;
|
margin-left: 40px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -188,7 +188,7 @@ export class DashboardComponent extends BaseComponent implements OnInit {
|
||||||
closeAction: () => this.dialog.closeAll()
|
closeAction: () => this.dialog.closeAll()
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
selector: '.new-dataset-tour',
|
selector: '.new-description-tour',
|
||||||
content: 'Step 4',
|
content: 'Step 4',
|
||||||
orientation: Orientation.BottomLeft,
|
orientation: Orientation.BottomLeft,
|
||||||
isStepUnique: false,
|
isStepUnique: false,
|
||||||
|
|
|
@ -23,19 +23,6 @@ input[type="text"] {
|
||||||
line-height: 2.4;
|
line-height: 2.4;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dataset-label {
|
|
||||||
width: auto;
|
|
||||||
height: 37px;
|
|
||||||
background: var(--secondary-color) 0% 0% no-repeat padding-box;
|
|
||||||
border-radius: 4px 0px;
|
|
||||||
text-align: left;
|
|
||||||
line-height: 2.8;
|
|
||||||
font-size: 0.875rem;
|
|
||||||
letter-spacing: 0px;
|
|
||||||
color: #212121;
|
|
||||||
font-weight: 400;
|
|
||||||
}
|
|
||||||
|
|
||||||
.icon-align {
|
.icon-align {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
|
@ -43,7 +30,7 @@ input[type="text"] {
|
||||||
/* padding-bottom: 0.4rem; */
|
/* padding-bottom: 0.4rem; */
|
||||||
}
|
}
|
||||||
|
|
||||||
.dataset-card-actions,
|
.description-card-actions,
|
||||||
.dmp-card-actions {
|
.dmp-card-actions {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
@ -52,7 +39,7 @@ input[type="text"] {
|
||||||
color: #848484;
|
color: #848484;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dataset-card-actions,
|
.description-card-actions,
|
||||||
.dmp-card-actions {
|
.dmp-card-actions {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
@ -61,25 +48,25 @@ input[type="text"] {
|
||||||
color: #848484;
|
color: #848484;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dataset-card-actions a,
|
.description-card-actions a,
|
||||||
.dmp-card-actions a {
|
.dmp-card-actions a {
|
||||||
color: #848484 !important;
|
color: #848484 !important;
|
||||||
text-decoration: none !important;
|
text-decoration: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dataset-card-actions a:hover,
|
.description-card-actions a:hover,
|
||||||
.dmp-card-actions a:hover {
|
.dmp-card-actions a:hover {
|
||||||
color: var(--primary-color) !important;
|
color: var(--primary-color) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmp-dataset-descriptions-title {
|
.dmp-description-descriptions-title {
|
||||||
color: #000000;
|
color: #000000;
|
||||||
opacity: 0.6;
|
opacity: 0.6;
|
||||||
padding-top: 1.5rem;
|
padding-top: 1.5rem;
|
||||||
padding-bottom: 0.8rem;
|
padding-bottom: 0.8rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmp-dataset-descriptions-name {
|
.dmp-description-descriptions-name {
|
||||||
color: #000000;
|
color: #000000;
|
||||||
opacity: 0.6;
|
opacity: 0.6;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<div class="dataset-copy-dialog">
|
<div class="description-copy-dialog">
|
||||||
<div mat-dialog-title class="row d-flex flex-row">
|
<div mat-dialog-title class="row d-flex flex-row">
|
||||||
<div mat-dialog-title class="col-auto">{{'DESCRIPTION-COPY-DIALOG.TITLE' | translate}}</div>
|
<div mat-dialog-title class="col-auto">{{'DESCRIPTION-COPY-DIALOG.TITLE' | translate}}</div>
|
||||||
<div class="col-auto ml-auto close-btn" (click)="close()"><mat-icon class="close-icon">close</mat-icon></div>
|
<div class="col-auto ml-auto close-btn" (click)="close()"><mat-icon class="close-icon">close</mat-icon></div>
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dataset-copy-dialog {
|
.description-copy-dialog {
|
||||||
margin-bottom: 1.125rem;
|
margin-bottom: 1.125rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<h5 *ngIf="placeholderTitle" class="col-auto font-weight-bold">{{field.label}}</h5>
|
<h5 *ngIf="placeholderTitle" class="col-auto font-weight-bold">{{field.label}}</h5>
|
||||||
</div>
|
</div>
|
||||||
<app-description-form-field [propertiesFormGroup]="fieldSetItemPropertiesControl.get('fields')" [field]="field" [fieldSet]="fieldSet" [visibilityRulesService]="visibilityRulesService" [datasetProfileId]="datasetProfileId" [isChild]="true"></app-description-form-field>
|
<app-description-form-field [propertiesFormGroup]="fieldSetItemPropertiesControl.get('fields')" [field]="field" [fieldSet]="fieldSet" [visibilityRulesService]="visibilityRulesService" [descriptionTemplateId]="descriptionTemplateId" [isChild]="true"></app-description-form-field>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -40,7 +40,7 @@ export class DescriptionFormFieldSetComponent extends BaseComponent {
|
||||||
isVisibleByVisibilityService: boolean = true;
|
isVisibleByVisibilityService: boolean = true;
|
||||||
@Input() visibilityRulesService: VisibilityRulesService;
|
@Input() visibilityRulesService: VisibilityRulesService;
|
||||||
@Input() path: String;
|
@Input() path: String;
|
||||||
@Input() datasetProfileId: String;
|
@Input() descriptionTemplateId: String;
|
||||||
@Input() isChild: Boolean = false;
|
@Input() isChild: Boolean = false;
|
||||||
@Input() showDelete: Boolean = false;
|
@Input() showDelete: Boolean = false;
|
||||||
@Input() tocentry: ToCEntry;
|
@Input() tocentry: ToCEntry;
|
||||||
|
|
|
@ -42,7 +42,7 @@ export class DescriptionFormFieldComponent extends BaseComponent implements OnIn
|
||||||
@Input() visibilityRulesService: VisibilityRulesService;
|
@Input() visibilityRulesService: VisibilityRulesService;
|
||||||
isRequired: boolean = false;
|
isRequired: boolean = false;
|
||||||
|
|
||||||
@Input() datasetProfileId: any;
|
@Input() descriptionTemplateId: any;
|
||||||
@Input() isChild: Boolean = false;
|
@Input() isChild: Boolean = false;
|
||||||
|
|
||||||
@Input() detectChangesObservable: Observable<any>;
|
@Input() detectChangesObservable: Observable<any>;
|
||||||
|
|
|
@ -27,7 +27,7 @@ export class DescriptionFormSectionComponent extends BaseComponent implements On
|
||||||
@Input() descriptionId: Guid;
|
@Input() descriptionId: Guid;
|
||||||
|
|
||||||
|
|
||||||
// @Input() datasetProfileId: String;
|
// @Input() descriptionTemplateId: String;
|
||||||
// @Input() form: UntypedFormGroup;
|
// @Input() form: UntypedFormGroup;
|
||||||
@Input() tocentry: ToCEntry;
|
@Input() tocentry: ToCEntry;
|
||||||
@Input() pathName: string;
|
@Input() pathName: string;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
|
import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms";
|
||||||
import { DescriptionPrefillingRequest, DescriptionPrefillingRequestData } from "@app/core/model/description-profiling-request/description-profiling-request";
|
import { DescriptionPrefillingRequest, DescriptionPrefillingRequestData } from "@app/core/model/description-prefilling-request/description-prefilling-request";
|
||||||
import { BackendErrorValidator } from "@common/forms/validation/custom-validator";
|
import { BackendErrorValidator } from "@common/forms/validation/custom-validator";
|
||||||
import { ValidationErrorModel } from "@common/forms/validation/error-model/validation-error-model";
|
import { ValidationErrorModel } from "@common/forms/validation/error-model/validation-error-model";
|
||||||
import { Validation, ValidationContext } from "@common/forms/validation/validation-context";
|
import { Validation, ValidationContext } from "@common/forms/validation/validation-context";
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { Component, Inject, OnInit } from "@angular/core";
|
import { Component, Inject, OnInit } from "@angular/core";
|
||||||
import { UntypedFormGroup } from "@angular/forms";
|
import { UntypedFormGroup } from "@angular/forms";
|
||||||
import { MAT_DIALOG_DATA, MatDialogRef } from "@angular/material/dialog";
|
import { MAT_DIALOG_DATA, MatDialogRef } from "@angular/material/dialog";
|
||||||
import { DescriptionPrefillingRequest, PrefillingSearchRequest } from "@app/core/model/description-profiling-request/description-profiling-request";
|
import { DescriptionPrefillingRequest, PrefillingSearchRequest } from "@app/core/model/description-prefilling-request/description-prefilling-request";
|
||||||
import { DescriptionTemplate } from "@app/core/model/description-template/description-template";
|
import { DescriptionTemplate } from "@app/core/model/description-template/description-template";
|
||||||
import { Dmp } from "@app/core/model/dmp/dmp";
|
import { Dmp } from "@app/core/model/dmp/dmp";
|
||||||
import { Prefilling } from "@app/core/model/prefilling-source/prefilling-source";
|
import { Prefilling } from "@app/core/model/prefilling-source/prefilling-source";
|
||||||
|
|
|
@ -199,7 +199,7 @@ export class DescriptionListingComponent extends BaseListingComponent<BaseDescri
|
||||||
isStepUnique: false
|
isStepUnique: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
selector: '.dataset-tour',
|
selector: '.description-tour',
|
||||||
content: 'Step 2',
|
content: 'Step 2',
|
||||||
orientation: Orientation.Right,
|
orientation: Orientation.Right,
|
||||||
isStepUnique: false,
|
isStepUnique: false,
|
||||||
|
|
|
@ -644,7 +644,6 @@ export class DmpEditorComponent extends BaseEditor<DmpEditorModel, Dmp> implemen
|
||||||
error => this.onCallbackError(error)
|
error => this.onCallbackError(error)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
// this.formGroup.get('datasets')['controls'].splice(index, 1);
|
|
||||||
this.step = 0;
|
this.step = 0;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
<div class="form-container">
|
|
||||||
<div mat-dialog-title class="row d-flex justify-content-end m-0" (click)="closeDialog()">
|
|
||||||
<mat-icon class="close-icon">close</mat-icon>
|
|
||||||
</div>
|
|
||||||
<div class="row d-flex pt-2 pb-2">
|
|
||||||
<div class="col">
|
|
||||||
<div mat-dialog-content class="row">
|
|
||||||
<div class="col-auto">
|
|
||||||
<span>{{'GENERAL.DMP-TO-DESCRIPTION-DIALOG.FROM-DMP' | translate}} </span>
|
|
||||||
<span class="color-green">{{'GENERAL.DMP-TO-DESCRIPTION-DIALOG.DMP' | translate}}</span>.
|
|
||||||
<span> {{'GENERAL.DMP-TO-DESCRIPTION-DIALOG.TO-DESCRIPTION' | translate}} </span>
|
|
||||||
<span class="color-yellow">{{'GENERAL.DMP-TO-DESCRIPTION-DIALOG.DESCRIPTION' | translate}} </span>
|
|
||||||
<span>{{'GENERAL.DMP-TO-DESCRIPTION-DIALOG.EDITOR' | translate}}.</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div mat-mat-dialog-actions class="row mt-4 pl-3">
|
|
||||||
<div class="col-auto">
|
|
||||||
<button mat-raised-button type="button" class="start-btn" (click)="start()">{{'GENERAL.DMP-TO-DESCRIPTION-DIALOG.START' | translate}}</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<img class="col-auto ml-auto laptop-img" src="../../../assets/images/guided-tour-side.png" width="116" height="139">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
|
@ -1,59 +0,0 @@
|
||||||
.form-container {
|
|
||||||
}
|
|
||||||
|
|
||||||
.close-icon {
|
|
||||||
cursor: pointer;
|
|
||||||
margin-right: 20px;
|
|
||||||
padding: .4rem;
|
|
||||||
width: auto !important;
|
|
||||||
height: auto !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.close-icon:hover {
|
|
||||||
background-color: #ECECED !important;
|
|
||||||
border-radius: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.title {
|
|
||||||
font-size: 2.375em;
|
|
||||||
font-weight: lighter;
|
|
||||||
color: #000000;
|
|
||||||
opacity: 0.8;
|
|
||||||
margin-bottom: 0.842em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.content {
|
|
||||||
width: 31em;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
::ng-deep .mat-dialog-container {
|
|
||||||
border-radius: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.laptop-img {
|
|
||||||
padding-left: 0;
|
|
||||||
margin-top: 1.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.start-btn {
|
|
||||||
background: var(--primary-color) 0% 0% no-repeat padding-box;
|
|
||||||
border: 1px solid var(--primary-color);
|
|
||||||
border-radius: 30px;
|
|
||||||
opacity: 1;
|
|
||||||
min-width: 101px;
|
|
||||||
height: 43px;
|
|
||||||
color: #ffffff;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
.color-green {
|
|
||||||
color: var(--primary-color);
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
.color-yellow {
|
|
||||||
color: #FCD431;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
|
@ -1,27 +0,0 @@
|
||||||
import { Component, Inject, OnInit } from '@angular/core';
|
|
||||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
|
||||||
|
|
||||||
@Component({
|
|
||||||
selector: 'app-to-dataset-dialog-component',
|
|
||||||
templateUrl: 'dmp-to-description-dialog.component.html',
|
|
||||||
styleUrls: ['./dmp-to-description-dialog.component.scss'],
|
|
||||||
})
|
|
||||||
export class DmpToDescriptionDialogComponent implements OnInit {
|
|
||||||
|
|
||||||
constructor(
|
|
||||||
public dialogRef: MatDialogRef<DmpToDescriptionDialogComponent>,
|
|
||||||
@Inject(MAT_DIALOG_DATA) public data: any
|
|
||||||
) { }
|
|
||||||
|
|
||||||
ngOnInit(): void {
|
|
||||||
}
|
|
||||||
|
|
||||||
start(): void {
|
|
||||||
this.dialogRef.close(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
closeDialog(): void {
|
|
||||||
this.dialogRef.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
<h4 mat-dialog-title>{{ 'DMP-EDITOR.DESCRIPTION-TEMPLATE-LIST.TITLE' | translate }}</h4>
|
|
||||||
<div mat-dialog-content>
|
|
||||||
<mat-selection-list #datasetsprofiles [ngModel]="selectedOptions" >
|
|
||||||
<mat-list-option *ngFor="let profile of profiles" [value]="profile" [selected]='isOptionSelected(profile)' class="mb-1">
|
|
||||||
<div class="list-option">
|
|
||||||
<div class="list-option-inner">
|
|
||||||
{{profile.label}}
|
|
||||||
<br *ngIf="profile.description">
|
|
||||||
<small *ngIf="profile.description" [innerHTML]="profile.description"></small>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</mat-list-option>
|
|
||||||
</mat-selection-list>
|
|
||||||
<p>
|
|
||||||
{{ 'DMP-EDITOR.DESCRIPTION-TEMPLATE-LIST.TEXT' | translate }} {{datasetsprofiles.selectedOptions.selected.length}}
|
|
||||||
</p>
|
|
||||||
<button mat-raised-button color="primary" (click)="addProfiles(datasetsprofiles)">{{ 'DMP-EDITOR.DESCRIPTION-TEMPLATE-LIST.OK' | translate }}</button>
|
|
||||||
</div>
|
|
|
@ -1,25 +0,0 @@
|
||||||
.list-option-inner {
|
|
||||||
flex-grow: 1;
|
|
||||||
white-space: nowrap;
|
|
||||||
width: 100%;
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list-option {
|
|
||||||
width: calc(100% - 16px);
|
|
||||||
flex-grow: 1;
|
|
||||||
display: -webkit-box;
|
|
||||||
-webkit-box-orient: vertical;
|
|
||||||
-moz-box-orient: vertical;
|
|
||||||
-ms-box-orient: vertical;
|
|
||||||
box-orient: vertical;
|
|
||||||
-webkit-line-clamp: 2;
|
|
||||||
-moz-line-clamp: 2;
|
|
||||||
-ms-line-clamp: 2;
|
|
||||||
line-clamp: 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
::ng-deep .mat-list-text {
|
|
||||||
max-height: 100%;
|
|
||||||
}
|
|
|
@ -1,58 +0,0 @@
|
||||||
import { Component, Inject, OnInit } from '@angular/core';
|
|
||||||
import { UntypedFormGroup } from '@angular/forms';
|
|
||||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
|
||||||
import { BaseComponent } from '@common/base/base.component';
|
|
||||||
import { takeUntil } from 'rxjs/operators';
|
|
||||||
|
|
||||||
@Component({
|
|
||||||
styleUrls: ['available-profiles.component.scss'],
|
|
||||||
selector: 'app-available-profiles-component',
|
|
||||||
templateUrl: 'available-profiles.component.html',
|
|
||||||
})
|
|
||||||
export class AvailableProfilesComponent extends BaseComponent implements OnInit {
|
|
||||||
|
|
||||||
public formGroup: UntypedFormGroup;
|
|
||||||
public profiles: DatasetProfileModel[] = [];
|
|
||||||
public selectedProfiles: DatasetProfileModel[] = [];
|
|
||||||
public selectedOptions: any;
|
|
||||||
constructor(
|
|
||||||
private datasetService: DatasetService,
|
|
||||||
private dialogRef: MatDialogRef<AvailableProfilesComponent>,
|
|
||||||
@Inject(MAT_DIALOG_DATA) public data: any
|
|
||||||
) { super(); }
|
|
||||||
|
|
||||||
ngOnInit(): void {
|
|
||||||
this.formGroup = this.data['profiles'];
|
|
||||||
const fields: Array<string> = new Array<string>();
|
|
||||||
fields.push('asc');
|
|
||||||
const profileRequestItem: DataTableRequest<DatasetProfileCriteria> = new DataTableRequest(0, null, { fields: fields });
|
|
||||||
profileRequestItem.criteria = new DatasetProfileCriteria();
|
|
||||||
profileRequestItem.criteria.like = '';
|
|
||||||
|
|
||||||
this.datasetService.getDatasetProfiles(profileRequestItem)
|
|
||||||
.pipe(takeUntil(this._destroyed))
|
|
||||||
.subscribe(data => {
|
|
||||||
|
|
||||||
const dataArray = data;
|
|
||||||
dataArray.sort((a,b)=> (a.label as string).localeCompare(b.label));
|
|
||||||
this.profiles = dataArray;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
addProfiles(profiles) {
|
|
||||||
profiles.selectedOptions.selected.forEach(element => {
|
|
||||||
const selectedElement = {
|
|
||||||
id: element.value.id,
|
|
||||||
label: element.value.label,
|
|
||||||
description: element.value.description
|
|
||||||
}
|
|
||||||
this.selectedProfiles.push(selectedElement);
|
|
||||||
});
|
|
||||||
this.formGroup.setValue(this.selectedProfiles);
|
|
||||||
this.dialogRef.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
isOptionSelected(profile: any) {
|
|
||||||
return this.formGroup.value ? this.formGroup.value.map(x => x.id).indexOf(profile.id) !== -1 : null;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -138,7 +138,7 @@ export class DmpListingComponent extends BaseComponent implements OnInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
public dashboardTour: GuidedTour = {
|
public dashboardTour: GuidedTour = {
|
||||||
tourId: 'dmp-dataset-tour',
|
tourId: 'dmp-description-tour',
|
||||||
useOrb: true,
|
useOrb: true,
|
||||||
steps: [
|
steps: [
|
||||||
{
|
{
|
||||||
|
@ -148,7 +148,7 @@ export class DmpListingComponent extends BaseComponent implements OnInit {
|
||||||
isStepUnique: false
|
isStepUnique: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
selector: '.dataset-tour',
|
selector: '.description-tour',
|
||||||
content: 'Step 2',
|
content: 'Step 2',
|
||||||
orientation: Orientation.Right,
|
orientation: Orientation.Right,
|
||||||
isStepUnique: false,
|
isStepUnique: false,
|
||||||
|
@ -336,16 +336,16 @@ export class DmpListingComponent extends BaseComponent implements OnInit {
|
||||||
this.dashboardTour.steps[0].title = dmpText;
|
this.dashboardTour.steps[0].title = dmpText;
|
||||||
}
|
}
|
||||||
|
|
||||||
public setDashboardTourDatasetText(): void {
|
public setDashboardTourDescriptionText(): void {
|
||||||
const datasetText = this.language.instant('DESCRIPTION-LISTING.TEXT-INFO') + '\n\n' +
|
const descriptionText = this.language.instant('DESCRIPTION-LISTING.TEXT-INFO') + '\n\n' +
|
||||||
this.language.instant('DESCRIPTION-LISTING.TEXT-INFO-QUESTION') + ' ' +
|
this.language.instant('DESCRIPTION-LISTING.TEXT-INFO-QUESTION') + ' ' +
|
||||||
this.language.instant('DESCRIPTION-LISTING.GET-IDEA');
|
this.language.instant('DESCRIPTION-LISTING.GET-IDEA');
|
||||||
this.dashboardTour.steps[1].title = datasetText;
|
this.dashboardTour.steps[1].title = descriptionText;
|
||||||
}
|
}
|
||||||
|
|
||||||
public restartTour(): void {
|
public restartTour(): void {
|
||||||
this.setDashboardTourDmpText();
|
this.setDashboardTourDmpText();
|
||||||
this.setDashboardTourDatasetText();
|
this.setDashboardTourDescriptionText();
|
||||||
this.guidedTourService.startTour(this.dashboardTour);
|
this.guidedTourService.startTour(this.dashboardTour);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,12 +17,12 @@
|
||||||
<span>.</span>
|
<span>.</span>
|
||||||
<span class="col">{{ 'DMP-LISTING.GRANT' | translate }}: {{referenceService.getReferencesForTypesFirstSafe(dmp?.dmpReferences, [this.referenceTypeService.getGrantReferenceType()])?.reference?.label}}</span>
|
<span class="col">{{ 'DMP-LISTING.GRANT' | translate }}: {{referenceService.getReferencesForTypesFirstSafe(dmp?.dmpReferences, [this.referenceTypeService.getGrantReferenceType()])?.reference?.label}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-auto dmp-dataset-descriptions-title">{{'DMP-LISTING.CONTAINED-DESCRIPTIONS' | translate}}: ({{ dmp.descriptions?.length }})
|
<div class="col-auto dmp-description-descriptions-title">{{'DMP-LISTING.CONTAINED-DESCRIPTIONS' | translate}}: ({{ dmp.descriptions?.length }})
|
||||||
</div>
|
</div>
|
||||||
<div *ngFor="let description of dmp.descriptions; let i = index; let last = last" [ngClass]="{'pb-3': i === dmp.descriptions?.length - 1}">
|
<div *ngFor="let description of dmp.descriptions; let i = index; let last = last" [ngClass]="{'pb-3': i === dmp.descriptions?.length - 1}">
|
||||||
<div *ngIf="i < 3">
|
<div *ngIf="i < 3">
|
||||||
<div class="col-auto dmp-dataset-descriptions-name" *ngIf="!last && i !== 2">{{description.label}},</div>
|
<div class="col-auto dmp-description-descriptions-name" *ngIf="!last && i !== 2">{{description.label}},</div>
|
||||||
<div class="col-auto dmp-dataset-descriptions-name" *ngIf="last || i == 2">{{description.label}}</div>
|
<div class="col-auto dmp-description-descriptions-name" *ngIf="last || i == 2">{{description.label}}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<a class="d-flex justify-content-center pb-3 show-more" *ngIf="dmp.descriptions?.length > 3" [routerLink]="isPublic ? this.routerUtils.generateUrl(['/explore-plans/overview/public/', dmp.id]) : this.routerUtils.generateUrl(['/plans/overview/', dmp.id])"><u>{{'GENERAL.ACTIONS.SHOW-MORE' | translate}}</u></a>
|
<a class="d-flex justify-content-center pb-3 show-more" *ngIf="dmp.descriptions?.length > 3" [routerLink]="isPublic ? this.routerUtils.generateUrl(['/explore-plans/overview/public/', dmp.id]) : this.routerUtils.generateUrl(['/plans/overview/', dmp.id])"><u>{{'GENERAL.ACTIONS.SHOW-MORE' | translate}}</u></a>
|
||||||
|
|
|
@ -40,11 +40,11 @@ h4 > span {
|
||||||
// color: rgb(70, 135, 240);
|
// color: rgb(70, 135, 240);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
.datasets-counter {
|
.descriptions-counter {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
.datasets-counter :hover {
|
.descriptions-counter :hover {
|
||||||
color: var(--primary-color-3) !important;
|
color: var(--primary-color-3) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -112,7 +112,7 @@ p {
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmp-card,
|
.dmp-card,
|
||||||
.dataset-card {
|
.description-card {
|
||||||
min-width: 712px;
|
min-width: 712px;
|
||||||
/* min-height: 308px; */
|
/* min-height: 308px; */
|
||||||
background: #ffffff 0% 0% no-repeat padding-box;
|
background: #ffffff 0% 0% no-repeat padding-box;
|
||||||
|
@ -157,20 +157,8 @@ input[type="text"] {
|
||||||
line-height: 2.4;
|
line-height: 2.4;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dataset-label {
|
|
||||||
width: auto;
|
|
||||||
height: 37px;
|
|
||||||
background: var(--secondary-color) 0% 0% no-repeat padding-box;
|
|
||||||
border-radius: 4px 0px;
|
|
||||||
text-align: left;
|
|
||||||
line-height: 2.8;
|
|
||||||
font-size: 0.875rem;
|
|
||||||
letter-spacing: 0px;
|
|
||||||
color: #212121;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dmp-title,
|
.dmp-title,
|
||||||
.dataset-title {
|
.description-title {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
|
@ -180,7 +168,7 @@ input[type="text"] {
|
||||||
color: #212121;
|
color: #212121;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dataset-subtitle,
|
.description-subtitle,
|
||||||
.dmp-subtitle {
|
.dmp-subtitle {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
@ -193,7 +181,7 @@ input[type="text"] {
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmp-title-draft,
|
.dmp-title-draft,
|
||||||
.dataset-title-draft {
|
.description-title-draft {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
|
@ -209,7 +197,7 @@ input[type="text"] {
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmp-subtitle,
|
.dmp-subtitle,
|
||||||
.dataset-subtitle {
|
.description-subtitle {
|
||||||
|
|
||||||
.icon-align {
|
.icon-align {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
|
@ -219,7 +207,7 @@ input[type="text"] {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.dataset-card-actions,
|
.description-card-actions,
|
||||||
.dmp-card-actions {
|
.dmp-card-actions {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
@ -228,25 +216,25 @@ input[type="text"] {
|
||||||
color: #848484;
|
color: #848484;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dataset-card-actions a,
|
.description-card-actions a,
|
||||||
.dmp-card-actions a {
|
.dmp-card-actions a {
|
||||||
color: #848484 !important;
|
color: #848484 !important;
|
||||||
text-decoration: none !important;
|
text-decoration: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dataset-card-actions a:hover,
|
.description-card-actions a:hover,
|
||||||
.dmp-card-actions a:hover {
|
.dmp-card-actions a:hover {
|
||||||
color: var(--primary-color) !important;
|
color: var(--primary-color) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmp-dataset-descriptions-title {
|
.dmp-description-descriptions-title {
|
||||||
color: #000000;
|
color: #000000;
|
||||||
opacity: 0.6;
|
opacity: 0.6;
|
||||||
padding-top: 1.5rem;
|
padding-top: 1.5rem;
|
||||||
padding-bottom: 0.8rem;
|
padding-bottom: 0.8rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dmp-dataset-descriptions-name {
|
.dmp-description-descriptions-name {
|
||||||
color: #000000;
|
color: #000000;
|
||||||
opacity: 0.6;
|
opacity: 0.6;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
|
|
@ -106,14 +106,6 @@ export class DmpListingItemComponent extends BaseComponent implements OnInit {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
editClicked(dmpId: String) { //not used
|
|
||||||
this.router.navigate([this.routerUtils.generateUrl('/plans/edit/' + dmpId)]);
|
|
||||||
}
|
|
||||||
|
|
||||||
showDatasets(rowId: String, rowLabel: String) { //not used
|
|
||||||
this.router.navigate(['/datasets/dmp/' + rowId, { dmpLabel: rowLabel }]);
|
|
||||||
}
|
|
||||||
|
|
||||||
viewVersions(dmp: Dmp) {
|
viewVersions(dmp: Dmp) {
|
||||||
if (dmp.accessType == DmpAccessType.Public && dmp.status == DmpStatus.Finalized && !this.dmp.authorizationFlags?.some(x => x === AppPermission.EditDmp)) {
|
if (dmp.accessType == DmpAccessType.Public && dmp.status == DmpStatus.Finalized && !this.dmp.authorizationFlags?.some(x => x === AppPermission.EditDmp)) {
|
||||||
let url = this.router.createUrlTree(['/explore-plans/versions/', dmp.groupId]);
|
let url = this.router.createUrlTree(['/explore-plans/versions/', dmp.groupId]);
|
||||||
|
|
|
@ -13,6 +13,7 @@ import { ConfigurationService } from '@app/core/services/configuration/configura
|
||||||
import { LanguageService } from '@app/core/services/language/language.service';
|
import { LanguageService } from '@app/core/services/language/language.service';
|
||||||
import { AnalyticsService } from '@app/core/services/matomo/analytics-service';
|
import { AnalyticsService } from '@app/core/services/matomo/analytics-service';
|
||||||
import { ProgressIndicationService } from '@app/core/services/progress-indication/progress-indication-service';
|
import { ProgressIndicationService } from '@app/core/services/progress-indication/progress-indication-service';
|
||||||
|
import { RouterUtilsService } from '@app/core/services/router/router-utils.service';
|
||||||
import { SideNavService } from '@app/core/services/sidenav/side-nav.sevice';
|
import { SideNavService } from '@app/core/services/sidenav/side-nav.sevice';
|
||||||
import { StorageFileService } from '@app/core/services/storage-file/storage-file.service';
|
import { StorageFileService } from '@app/core/services/storage-file/storage-file.service';
|
||||||
import { TenantConfigurationService } from '@app/core/services/tenant-configuration/tenant-configuration.service';
|
import { TenantConfigurationService } from '@app/core/services/tenant-configuration/tenant-configuration.service';
|
||||||
|
@ -26,7 +27,6 @@ import { nameof } from 'ts-simple-nameof';
|
||||||
import { StartNewDmpDialogComponent } from '../dmp/new/start-new-dmp-dialogue/start-new-dmp-dialog.component';
|
import { StartNewDmpDialogComponent } from '../dmp/new/start-new-dmp-dialogue/start-new-dmp-dialog.component';
|
||||||
import { FaqDialogComponent } from '../faq/dialog/faq-dialog.component';
|
import { FaqDialogComponent } from '../faq/dialog/faq-dialog.component';
|
||||||
import { UserDialogComponent } from './user-dialog/user-dialog.component';
|
import { UserDialogComponent } from './user-dialog/user-dialog.component';
|
||||||
import { RouterUtilsService } from '@app/core/services/router/router-utils.service';
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-navbar',
|
selector: 'app-navbar',
|
||||||
|
@ -36,7 +36,6 @@ import { RouterUtilsService } from '@app/core/services/router/router-utils.servi
|
||||||
export class NavbarComponent extends BaseComponent implements OnInit {
|
export class NavbarComponent extends BaseComponent implements OnInit {
|
||||||
userName: string = '';
|
userName: string = '';
|
||||||
progressIndication = false;
|
progressIndication = false;
|
||||||
//private listTitles: any[];
|
|
||||||
location: Location;
|
location: Location;
|
||||||
mobile_menu_visible: any = 0;
|
mobile_menu_visible: any = 0;
|
||||||
private toggleButton: any;
|
private toggleButton: any;
|
||||||
|
@ -173,8 +172,6 @@ export class NavbarComponent extends BaseComponent implements OnInit {
|
||||||
body.classList.remove('nav-open');
|
body.classList.remove('nav-open');
|
||||||
};
|
};
|
||||||
sidebarToggle() {
|
sidebarToggle() {
|
||||||
// const toggleButton = this.toggleButton;
|
|
||||||
// const body = document.getElementsByTagName('body')[0];
|
|
||||||
var $toggle = document.getElementsByClassName('navbar-toggler')[0];
|
var $toggle = document.getElementsByClassName('navbar-toggler')[0];
|
||||||
|
|
||||||
if (this.sidebarVisible === false) {
|
if (this.sidebarVisible === false) {
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
</a>
|
</a>
|
||||||
<a class="nav-link nav-row" *ngIf="groupMenuRoute.path === '/descriptions'" [routerLink]="[routerUtils.generateUrl(groupMenuRoute.path)]">
|
<a class="nav-link nav-row" *ngIf="groupMenuRoute.path === '/descriptions'" [routerLink]="[routerUtils.generateUrl(groupMenuRoute.path)]">
|
||||||
<span class="mb-3 inner-line"></span>
|
<span class="mb-3 inner-line"></span>
|
||||||
<div class="pl-0 pt-1 pb-1 container-fluid nav-subrow dataset-tour">
|
<div class="pl-0 pt-1 pb-1 container-fluid nav-subrow description-tour">
|
||||||
<i class="mb-1 material-symbols-outlined icon">{{ groupMenuRoute.icon }}</i>
|
<i class="mb-1 material-symbols-outlined icon">{{ groupMenuRoute.icon }}</i>
|
||||||
<i class="mb-1 material-symbols-outlined icon-mask">person</i>
|
<i class="mb-1 material-symbols-outlined icon-mask">person</i>
|
||||||
<span class="pl-0 mt-1" style="text-wrap: wrap;">{{groupMenuRoute.title | translate}}</span>
|
<span class="pl-0 mt-1" style="text-wrap: wrap;">{{groupMenuRoute.title | translate}}</span>
|
||||||
|
|
|
@ -31,14 +31,11 @@ export class SidebarComponent implements OnInit {
|
||||||
generalItems: GroupMenuItem;
|
generalItems: GroupMenuItem;
|
||||||
dmpItems: GroupMenuItem;
|
dmpItems: GroupMenuItem;
|
||||||
adminItems: GroupMenuItem;
|
adminItems: GroupMenuItem;
|
||||||
datasetTemplateItems: GroupMenuItem;
|
descriptionItems: GroupMenuItem;
|
||||||
// historyItems: GroupMenuItem;
|
|
||||||
datasetItems: GroupMenuItem;
|
|
||||||
grantItems: GroupMenuItem;
|
grantItems: GroupMenuItem;
|
||||||
publicItems: GroupMenuItem;
|
publicItems: GroupMenuItem;
|
||||||
infoItems: GroupMenuItem;
|
infoItems: GroupMenuItem;
|
||||||
groupMenuItems: GroupMenuItem[] = [];
|
groupMenuItems: GroupMenuItem[] = [];
|
||||||
private toggleButton: any;
|
|
||||||
currentRoute: string;
|
currentRoute: string;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
|
@ -84,14 +81,14 @@ export class SidebarComponent implements OnInit {
|
||||||
if (this.authentication.hasPermission(AppPermission.ViewMyDescriptionPage)) this.dmpItems.routes.push({ path: '/descriptions', title: 'SIDE-BAR.MY-DESCRIPTIONS', icon: 'dns' });
|
if (this.authentication.hasPermission(AppPermission.ViewMyDescriptionPage)) this.dmpItems.routes.push({ path: '/descriptions', title: 'SIDE-BAR.MY-DESCRIPTIONS', icon: 'dns' });
|
||||||
this.groupMenuItems.push(this.dmpItems);
|
this.groupMenuItems.push(this.dmpItems);
|
||||||
|
|
||||||
this.datasetItems = {
|
this.descriptionItems = {
|
||||||
title: 'SIDE-BAR.DESCRIPTIONS',
|
title: 'SIDE-BAR.DESCRIPTIONS',
|
||||||
routes: [],
|
routes: [],
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.authentication.hasPermission(AppPermission.ViewPublicDmpPage)) this.datasetItems.routes.push({ path: '/explore-plans', title: 'SIDE-BAR.PUBLIC-DMPS', icon: 'library_books' });
|
if (this.authentication.hasPermission(AppPermission.ViewPublicDmpPage)) this.descriptionItems.routes.push({ path: '/explore-plans', title: 'SIDE-BAR.PUBLIC-DMPS', icon: 'library_books' });
|
||||||
if (this.authentication.hasPermission(AppPermission.ViewPublicDescriptionPage)) this.datasetItems.routes.push({ path: '/explore-descriptions', title: 'SIDE-BAR.PUBLIC-DESC', icon: 'dns' });
|
if (this.authentication.hasPermission(AppPermission.ViewPublicDescriptionPage)) this.descriptionItems.routes.push({ path: '/explore-descriptions', title: 'SIDE-BAR.PUBLIC-DESC', icon: 'dns' });
|
||||||
this.groupMenuItems.push(this.datasetItems);
|
this.groupMenuItems.push(this.descriptionItems);
|
||||||
|
|
||||||
this.publicItems = {
|
this.publicItems = {
|
||||||
title: 'SIDE-BAR.PUBLIC',
|
title: 'SIDE-BAR.PUBLIC',
|
||||||
|
|
|
@ -9,8 +9,8 @@ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||||
})
|
})
|
||||||
export class AddAccountDialogComponent implements OnInit {
|
export class AddAccountDialogComponent implements OnInit {
|
||||||
|
|
||||||
datasetProfileDefinitionModel: any;
|
descriptionTemplateDefinitionModel: any;
|
||||||
datasetProfileDefinitionFormGroup: UntypedFormGroup;
|
descriptionTemplateDefinitionFormGroup: UntypedFormGroup;
|
||||||
progressIndication = false;
|
progressIndication = false;
|
||||||
form: FormGroup;
|
form: FormGroup;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[
|
[
|
||||||
"DatasetProfileEditorModel.description",
|
"DescriptionTemplateEditorModel.description",
|
||||||
"DatasetProfileEditorModel.type",
|
"DescriptionTemplateEditorModel.type",
|
||||||
"DatasetProfileEditorModel.label",
|
"DescriptionTemplateEditorModel.label",
|
||||||
"SectionEditorModel.title",
|
"SectionEditorModel.title",
|
||||||
"SectionEditorModel.description",
|
"SectionEditorModel.description",
|
||||||
"FieldSetEditorModel.title",
|
"FieldSetEditorModel.title",
|
||||||
|
|
|
@ -97,7 +97,7 @@ export class NotifierListEditorComponent extends BasePendingChangesComponent imp
|
||||||
this.getExistingSelections();
|
this.getExistingSelections();
|
||||||
} catch {
|
} catch {
|
||||||
this.notificationTrackingProcess = NotificationTrackingProcess.ERROR;
|
this.notificationTrackingProcess = NotificationTrackingProcess.ERROR;
|
||||||
this.logger.error('Could not parse Dataset: ' + data);
|
this.logger.error('Could not parse Description: ' + data);
|
||||||
this.uiNotificationService.snackBarNotification(this.language.instant('COMMONS.ERRORS.DEFAULT'), SnackBarNotificationLevel.Error);
|
this.uiNotificationService.snackBarNotification(this.language.instant('COMMONS.ERRORS.DEFAULT'), SnackBarNotificationLevel.Error);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -117,7 +117,7 @@ export class NotifierListEditorComponent extends BasePendingChangesComponent imp
|
||||||
this.buildForm();
|
this.buildForm();
|
||||||
} catch {
|
} catch {
|
||||||
this.notificationTrackingProcess = NotificationTrackingProcess.ERROR;
|
this.notificationTrackingProcess = NotificationTrackingProcess.ERROR;
|
||||||
this.logger.error('Could not parse Dataset: ' + data);
|
this.logger.error('Could not parse Description: ' + data);
|
||||||
this.uiNotificationService.snackBarNotification(this.language.instant('COMMONS.ERRORS.DEFAULT'), SnackBarNotificationLevel.Error);
|
this.uiNotificationService.snackBarNotification(this.language.instant('COMMONS.ERRORS.DEFAULT'), SnackBarNotificationLevel.Error);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -60,7 +60,7 @@ export class UserProfileNotifierListEditorComponent extends BaseComponent implem
|
||||||
this.getExistingSelections();
|
this.getExistingSelections();
|
||||||
} catch {
|
} catch {
|
||||||
this.notificationTrackingProcess = NotificationTrackingProcess.ERROR;
|
this.notificationTrackingProcess = NotificationTrackingProcess.ERROR;
|
||||||
this.logger.error('Could not parse Dataset: ' + data);
|
this.logger.error('Could not parse Description: ' + data);
|
||||||
this.uiNotificationService.snackBarNotification(this.language.instant('COMMONS.ERRORS.DEFAULT'), SnackBarNotificationLevel.Error);
|
this.uiNotificationService.snackBarNotification(this.language.instant('COMMONS.ERRORS.DEFAULT'), SnackBarNotificationLevel.Error);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -84,7 +84,7 @@ export class UserProfileNotifierListEditorComponent extends BaseComponent implem
|
||||||
this.notificationTrackingProcess = NotificationTrackingProcess.SUCCESSFUL;
|
this.notificationTrackingProcess = NotificationTrackingProcess.SUCCESSFUL;
|
||||||
} catch {
|
} catch {
|
||||||
this.notificationTrackingProcess = NotificationTrackingProcess.ERROR;
|
this.notificationTrackingProcess = NotificationTrackingProcess.ERROR;
|
||||||
this.logger.error('Could not parse Dataset: ' + data);
|
this.logger.error('Could not parse Description: ' + data);
|
||||||
this.uiNotificationService.snackBarNotification(this.language.instant('COMMONS.ERRORS.DEFAULT'), SnackBarNotificationLevel.Error);
|
this.uiNotificationService.snackBarNotification(this.language.instant('COMMONS.ERRORS.DEFAULT'), SnackBarNotificationLevel.Error);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue