added Glossary and FAQs

This commit is contained in:
Diamantis Tziotzios 2019-09-05 13:29:59 +03:00
parent cab0d68fc2
commit 21c4de8f21
11 changed files with 222 additions and 23 deletions

View File

@ -0,0 +1,39 @@
<div class="row d-flex flex-row">
<div mat-dialog-title class="col-auto">
{{'FAQ.TITLE' | translate}}
</div>
<div class="col-auto ml-auto close-btn" (click)="close()">
<mat-icon>close</mat-icon>
</div>
</div>
<div mat-dialog-content class="row">
<h4>What is OpenDMP?</h4>
<p>OpenDMP is an open and collaborative platform for creating Data Management Plans according to funders or institutions open science policy requirements. OpenDMP technology provides solutions and workflows that connect the DMP to the actual data where they are stored and link to other useful information such as publications and funding information, thus enabling the association between research outputs and processes and leading to the creation of coherent/ complete research entities. OpenDMP is comprised of two major features: the OpenDMP template and the Dataset Description.</p>
<br />
<h4>Who is it for?</h4>
<p>OpenDMP is inclusive to all researchers and research coordinators who may use the tool to create machine actionable DMPs. Funding and Research Performing Organizations as well as research communities may use the tool and create Dataset Description templates according to their preferences or requirements. OpenDMP may be used for purposes other than research projects, such as on the occasion of trainings that familiarise scientists with the data management planning process.</p>
<br />
<h4>How can I use it?</h4>
<p>OpenDMP is comprised of two main functionalities: DMP templates and Dataset Descriptions. Additional entities are Projects that link to funders and grants information.<br />OpenDMP can be used for:
<br /><br /><u style="padding:20px;"> A. viewing/ consulting publicly released DMPs and Dataset Descriptions or Projects corresponding to DMPs</u><br /><br />
The tool offers options for publishing DMPs in two modes, private or public. To view public DMPs and Dataset Descriptions, there is no need for login to the platform.
<br /><br /><u style="padding:20px;"> B. writing and publishing a DMP</u><br /><br />
The tool helps researchers comply with mandates that may be attached to their grant proposal/ project funding. They can therefore choose from the most suitable to their needs template from the Dataset Descriptions collection and proceed with answering the corresponding questions. Once finalized, researchers can assign a DOI to their DMP, publish and eventually cite it.
<br /><br /><u style="padding:20px;"> C. practicing in writing DMPs and Dataset Descriptions</u><br /><br />
Given that Data Management Planning reflects the data management lifecycle and in accordance/ response to the increasing demand of the global scientific/ research community for training in Research Data Management (RDM), openDMP may be used for educational purposes. Examples may refer to embedding DMP and DMP tools in specific curricula or even utilization of the tool for researchers and students familiarization with the concept and process, as part of library instructions sessions.
</p>
<br />
<h4>What is the difference between the “Wizard” and the “Expert” modes/ features?</h4>
<p>There are two ways of creating a DMP: the “Wizard” and the “Expert”. The DMP Wizard combines the most necessary fields of the DMP template and the Data Description template. It is an easy way of starting a DMP and completing a Dataset Description. The downside when using the Wizard is that it only supports one Dataset Description. To add more datasets documentation, someone must open the DMP from DMP Expert.
<br />DMP expert contains extra fields for describing the project, grant, funding, contributors and associations between DMP authors, etc. DMP Expert is advised for use when further modification and personalization is to take place.
</p>
</div>
<div mat-dialog-actions class="row">
<div class="ml-auto col-auto"><button mat-button mat-dialog-close mat-raised-button color="primary" (click)="cancel()">{{'FAQ.CLOSE' | translate}}</button></div>
</div>

View File

@ -0,0 +1,13 @@
.form {
min-width: 150px;
max-width: 500px;
width: 100%;
}
.full-width {
width: 100%;
}
.close-btn {
cursor: pointer;
}

View File

@ -0,0 +1,28 @@
import { Component, Inject } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
@Component({
selector: 'app-faq-dialog',
templateUrl: './faq-dialog.component.html',
styleUrls: ['./faq-dialog.component.scss']
})
export class FaqDialogComponent {
constructor(
public dialogRef: MatDialogRef<FaqDialogComponent>,
@Inject(MAT_DIALOG_DATA) public data: FormGroup
) { }
cancel() {
this.dialogRef.close();
}
send() {
this.dialogRef.close(this.data);
}
close() {
this.dialogRef.close(false);
}
}

View File

@ -0,0 +1,26 @@
<div class="row d-flex flex-row">
<div mat-dialog-title class="col-auto">
{{'GLOSSARY.TITLE' | translate}}
</div>
<div class="col-auto ml-auto close-btn" (click)="close()">
<mat-icon>close</mat-icon>
</div>
</div>
<div mat-dialog-content class="row">
<h4>DMP</h4>
<p>A DMP - short for Data Management Plan - is a document describing the processes that the data have undergone and the tools used for their handling and storage during a research lifecycle. Most importantly, DMPs secure provenance and enable re-use of data by appointing data managers and by including information on how data can be re-used by others in the future. Therefore, a DMP is a living document which is modified according to the data developments of a project before its completed and handed over at the end of the project.
Public funders increasingly contain DMPs in their grant proposals or policy funding requirements. A good paradigm is the European Commission demands for the production and delivery of DMPs for projects funded under the Horizon 2020 Funding Programme. On that note, and to encourage good data management practices uptake, many European institutions include DMPs in post-graduate researchers policies and offer relevant support to staff and students.
</p>
<h4>DMP template</h4>
<p>DMP template contains general but vital information about the name and the duration of the project that the DMP corresponds to, the contributing organisations and individuals as well as the datasets that are under the Dataset Description section. It also offers the possibility of describing datasets other than primary data generated, under “External References” section. A DMP template can have many Dataset Descriptions.
</p>
<h4>Dataset Description</h4>
<p>Dataset Description documents the management processes of datasets following funders or institutions requirements. A dataset description is essentially a questionnaire template with underlying added value services for interoperability and machine readability of information which is developed based on the given requirements. Management requirements differ from funder to funder and from institution to institution, hence the growing collection of Dataset Descriptions to select from.
Moreover, a Dataset Description links to the documentation of one dataset, hence a DMP template may contain more than one dataset descriptions on the occasion when multiple datasets were used during the project. When documentation of some of the projects datasets falls under additional requirements (e.g. projects receiving multiple grants from different sources), there is the possibility of describing datasets with more than one Dataset Description template.
</p>
</div>
<div mat-dialog-actions class="row">
<div class="ml-auto col-auto"><button mat-button mat-dialog-close mat-raised-button color="primary" (click)="cancel()">{{'GLOSSARY.CLOSE' | translate}}</button></div>
</div>

View File

@ -0,0 +1,13 @@
.form {
min-width: 150px;
max-width: 500px;
width: 100%;
}
.full-width {
width: 100%;
}
.close-btn {
cursor: pointer;
}

View File

@ -0,0 +1,28 @@
import { Component, Inject } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
@Component({
selector: 'app-glossary-dialog',
templateUrl: './glossary-dialog.component.html',
styleUrls: ['./glossary-dialog.component.scss']
})
export class GlossaryDialogComponent {
constructor(
public dialogRef: MatDialogRef<GlossaryDialogComponent>,
@Inject(MAT_DIALOG_DATA) public data: FormGroup
) { }
cancel() {
this.dialogRef.close();
}
send() {
this.dialogRef.close(this.data);
}
close() {
this.dialogRef.close(false);
}
}

View File

@ -13,6 +13,7 @@
border-radius: 0px;
color: white;
cursor: pointer;
display: inline-flex;
}
.sidebar-footer :hover {

View File

@ -1,9 +1,19 @@
<div class="sidebar-footer d-flex justify-content-around">
<!-- <a class="option vl" href="#">
<i class="material-icons style-icon">mode_comment</i>
Glossary
</a>
<a class="option vl" href="#"><i class="fa fa-book style-icon"></i>Guide</a>
<a class="option" href="#"><i class="fa fa-life-ring style-icon"></i>Help</a> -->
<p class="option" (click)="openContactDialog()"><i class="fa fa-question-circle pr-2"></i>{{'CONTACT.SUPPORT.TITLE' | translate}}</p>
<div class="sidebar-footer row col-12">
<!-- <div class="sidebar-footer d-flex justify-content-around">
<a class="option vl" href="#">
<i class="material-icons style-icon">mode_comment</i>
Glossary
</a>
<a class="option vl" href="#"><i class="fa fa-book style-icon"></i>Guide</a>
<a class="option" href="#"><i class="fa fa-life-ring style-icon"></i>Help</a>
</div> -->
<div class="col-6 text-center">
<p class="option" (click)="openGlossaryDialog()"><i class="fa fa-book pr-2"></i>{{'FOOTER.GLOSSARY' | translate}}</p>
</div>
<div class="col-6 text-center">
<p class="option" (click)="openFaqDialog()"><i class="fa fa-question-circle pr-2"></i>{{'FOOTER.FAQ' | translate}}</p>
</div>
<div class="col-12 text-center">
<p class="option" (click)="openContactDialog()"><i class="fa fa-envelope-open pr-2"></i>{{'FOOTER.CONTACT-SUPPORT' | translate}}</p>
</div>
</div>

View File

@ -1,14 +1,16 @@
import { Component, OnInit } from '@angular/core';
import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';
import { MatDialog } from '@angular/material';
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../../core/common/base/base.component';
import { ContactDialogComponent } from '../../../library/contact-dialog/contact-dialog.component';
import { ContactSupportService } from '../../../core/services/contact-support/contact-support.service';
import { UiNotificationService, SnackBarNotificationLevel } from '../../../core/services/notification/ui-notification-service';
import { TranslateService } from '@ngx-translate/core';
import { ContactEmailFormModel } from '../../../core/model/contact/contact-email-form-model';
import { FormGroup, AbstractControl, FormControl, FormArray } from '@angular/forms';
import { takeUntil } from 'rxjs/operators';
import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model';
import { BaseComponent } from '../../../core/common/base/base.component';
import { ContactEmailFormModel } from '../../../core/model/contact/contact-email-form-model';
import { ContactSupportService } from '../../../core/services/contact-support/contact-support.service';
import { SnackBarNotificationLevel, UiNotificationService } from '../../../core/services/notification/ui-notification-service';
import { ContactDialogComponent } from '../../../library/contact-dialog/contact-dialog.component';
import { FaqDialogComponent } from './faq/faq-dialog.component';
import { GlossaryDialogComponent } from './glossary/glossary-dialog.component';
@Component({
selector: 'app-sidebar-footer',
@ -41,10 +43,7 @@ export class SidebarFooterComponent extends BaseComponent implements OnInit {
else {
const dialogRef = this.dialog.open(ContactDialogComponent, {
width: '400px',
hasBackdrop: true,
autoFocus: false,
closeOnNavigation: true,
disableClose: false,
disableClose: true,
data: this.formGroup
});
dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(data => {
@ -61,6 +60,28 @@ export class SidebarFooterComponent extends BaseComponent implements OnInit {
}
}
openGlossaryDialog() {
if (this.dialog.openDialogs.length > 0) {
this.dialog.closeAll();
}
else {
const dialogRef = this.dialog.open(GlossaryDialogComponent, {
disableClose: true,
});
}
}
openFaqDialog() {
if (this.dialog.openDialogs.length > 0) {
this.dialog.closeAll();
}
else {
const dialogRef = this.dialog.open(FaqDialogComponent, {
disableClose: true,
});
}
}
onCallbackSuccess(): void {
this.uiNotificationService.snackBarNotification(this.language.instant('GENERAL.SNACK-BAR.SUCCESSFUL-EMAIL-SEND'), SnackBarNotificationLevel.Success);
}

View File

@ -2,9 +2,11 @@ import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { CommonFormsModule } from '../../common/forms/common-forms.module';
import { CommonUiModule } from '../../common/ui/common-ui.module';
import { SidebarComponent } from './sidebar.component';
import { SidebarFooterComponent } from './sidebar-footer/sidebar-footer.component';
import { ContactDialogModule } from '../../library/contact-dialog/contact-dialog.module';
import { FaqDialogComponent } from './sidebar-footer/faq/faq-dialog.component';
import { GlossaryDialogComponent } from './sidebar-footer/glossary/glossary-dialog.component';
import { SidebarFooterComponent } from './sidebar-footer/sidebar-footer.component';
import { SidebarComponent } from './sidebar.component';
@NgModule({
imports: [
@ -15,9 +17,14 @@ import { ContactDialogModule } from '../../library/contact-dialog/contact-dialog
],
declarations: [
SidebarComponent,
SidebarFooterComponent
SidebarFooterComponent,
GlossaryDialogComponent,
FaqDialogComponent
],
entryComponents: [
GlossaryDialogComponent,
FaqDialogComponent
],
entryComponents: [],
exports: [SidebarComponent]
})
export class SidebarModule { }

View File

@ -872,6 +872,19 @@
"WELCOME": "Welcome to OpenDMP",
"WELCOME-MESSAGE": "Create, Link, Share Data Management Plans"
},
"FOOTER": {
"CONTACT-SUPPORT": "Contact Support",
"FAQ": "FAQ",
"GLOSSARY": "Glossary"
},
"GLOSSARY": {
"TITLE": "Glossary",
"CLOSE": "Close"
},
"FAQ": {
"TITLE": "FAQ",
"CLOSE": "Close"
},
"CONTACT": {
"SUPPORT": {
"TITLE": "Contact Support",