Skip to content

Commit

Permalink
Merge pull request #3389 from dzhw/dev-2024-2-2
Browse files Browse the repository at this point in the history
Bugfix Release 2024.2.2 Third Batch
  • Loading branch information
tilovillwock authored Nov 11, 2024
2 parents a063921 + c114182 commit 0949755
Show file tree
Hide file tree
Showing 9 changed files with 98 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -498,7 +498,10 @@ angular.module('metadatamanagementApp')

ctrl.saveDataPackage = function() {
if ($scope.dataPackageForm.$valid) {
if (CurrentProjectService.getCurrentProject().release.isPreRelease) {
if (CurrentProjectService.getCurrentProject() &&
CurrentProjectService.getCurrentProject().release &&
CurrentProjectService.getCurrentProject().release.isPreRelease)
{
CommonDialogsService.showConfirmEditPreReleaseDialog(
'global.common-dialogs' +
'.confirm-edit-pre-released-project.title',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,19 +74,24 @@ function($interpolate, LanguageService, $filter, $rootScope) {
});
};

var generateBibtexForAttachment = function(attachment) {
var generateBibtexForAttachment = function(attachment, dataPackage) {
if ($rootScope.bowser.msie) {
throw 'citation.js is not compatible with IE11';
}
var citeJson = {
title: attachment.title,
type: 'report',
DOI: dataPackage.doi,
publisher: attachment.citationDetails.institution,
'publisher-place': attachment.citationDetails.location,
issued: [{'date-parts': [attachment.citationDetails.publicationYear]}],
author: mapPeopleToCiteJson(attachment.citationDetails.authors)
};
return new Cite(citeJson).format('bibtex')
return new Cite(citeJson).format('biblatex') // use biblatex to include the doi and map fields back to bibtex names
.replace('@report', '@techreport')
.replace('date =', 'year =')
.replace('location =', 'address =')
.replace('publisher =', 'institution =')
// remove spaces in latex code for umlauts
.replace(/{\\.\s./g, function(match) {
return match.replace(' ', '');
Expand Down Expand Up @@ -118,14 +123,17 @@ function($interpolate, LanguageService, $filter, $rootScope) {
};
};

var generateCitationHintForAttachment = function(attachment) {
var generateCitationHintForAttachment = function(attachment, dataPackage) {
var citationHint =
'{{attachment.citationDetails.authors | displayPersons}} ' +
'({{attachment.citationDetails.publicationYear}}). ' +
'{{attachment.title}}. ' +
'{{attachment.citationDetails.location}}: ' +
'{{attachment.citationDetails.institution}}.';
return $interpolate(citationHint)({attachment: attachment});
if (!!dataPackage.doi) {
citationHint += ' https://doi.org/{{dataPackage.doi}}';
}
return $interpolate(citationHint)({attachment: attachment, dataPackage: dataPackage});
};

return {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@ angular.module('metadatamanagementApp')
ctrl.methodReportsCitationHint = {
de: germanMethodReports.length > 0 ?
CitationHintGeneratorService.generateCitationHintForAttachment(
germanMethodReports[0]) : null,
germanMethodReports[0], dataPackage) : null,
en: englishMethodReports.length > 0 ?
CitationHintGeneratorService.generateCitationHintForAttachment(
englishMethodReports[0]) : null,
englishMethodReports[0], dataPackage) : null,
};
ctrl.methodReports = {
de: germanMethodReports.length > 0 ? germanMethodReports[0] : null,
Expand Down Expand Up @@ -74,7 +74,7 @@ angular.module('metadatamanagementApp')
}
if (methodReport) {
ctrl.saveBibtex(CitationHintGeneratorService
.generateBibtexForAttachment(methodReport));
.generateBibtexForAttachment(methodReport, dataPackage));
}
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

import lombok.AllArgsConstructor;

import java.util.List;

/**
* Class representing the DDI fileTxt element.
*/
Expand All @@ -16,9 +18,9 @@ public class FileTxt {
public FileTxt() {}

@XmlElement(name = "fileName")
String fileName;
List<TextElement> fileName;

@XmlElement(name = "fileCont")
TextElement fileCont;
List<TextElement> fileCont;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package eu.dzhw.fdz.metadatamanagement.datapackagemanagement.domain.ddicodebook;

import lombok.AllArgsConstructor;

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlValue;

/**
* ID element for the study (e.g. DOI).
*/
@AllArgsConstructor
public class IdNo {

public IdNo() {}

/**
* The agency the ID is registered with (e.g. 'DOI').
*/
@XmlAttribute
String agency;

/**
* The data package version (e.g. '1.0.0').
*/
@XmlAttribute
String elementVersion;

/**
* The ID value.
*/
@XmlValue
String value;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package eu.dzhw.fdz.metadatamanagement.datapackagemanagement.domain.ddicodebook;

import lombok.AllArgsConstructor;

import javax.xml.bind.annotation.XmlAttribute;

/**
* A wrapper element for the dataset ID a variable is linked to.
*/
@AllArgsConstructor
public class Location {

/**
* The dataset ID a variable is linked to (e.g. 'project-ds1').
*/
@XmlAttribute(name = "fileid")
String fileId;
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,6 @@ public TitlStmt() {}
@XmlElement(name = "parTitl")
TextElement parTitle;

@XmlElement(name = "IDNo")
IdNo idNo;
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ public Var() {}
@XmlAttribute(name = "name")
String name;

@XmlAttribute(name = "files")
String files;
@XmlElement
Location location;

@XmlElement(name = "labl")
List<TextElement> labl;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@
import eu.dzhw.fdz.metadatamanagement.datapackagemanagement.domain.ddicodebook.DataDscr;
import eu.dzhw.fdz.metadatamanagement.datapackagemanagement.domain.ddicodebook.FileDscr;
import eu.dzhw.fdz.metadatamanagement.datapackagemanagement.domain.ddicodebook.FileTxt;
import eu.dzhw.fdz.metadatamanagement.datapackagemanagement.domain.ddicodebook.IdNo;
import eu.dzhw.fdz.metadatamanagement.datapackagemanagement.domain.ddicodebook.LanguageEnum;
import eu.dzhw.fdz.metadatamanagement.datapackagemanagement.domain.ddicodebook.Location;
import eu.dzhw.fdz.metadatamanagement.datapackagemanagement.domain.ddicodebook.StdyDscr;
import eu.dzhw.fdz.metadatamanagement.datapackagemanagement.domain.ddicodebook.TextElement;
import eu.dzhw.fdz.metadatamanagement.datapackagemanagement.domain.ddicodebook.TitlStmt;
Expand Down Expand Up @@ -243,8 +245,8 @@ private Var getDdiVar(VariableSubDocument variableDoc) {
log.error("An exception occurred querying the variables index. ", e);
}
String name = variableDoc.getId().split("\\$")[0];
String files = variableDoc.getDataSetId().split("\\$")[0];
return new Var(name, files, varLablList,
final var location = new Location(variableDoc.getDataSetId().split("\\$")[0]);
return new Var(name, location, varLablList,
qstnList.size() > 0 ? qstnList : null,
txtList.size() > 0 ? txtList : null,
catgryList);
Expand All @@ -256,9 +258,17 @@ private Var getDdiVar(VariableSubDocument variableDoc) {
* @return the fileDscr element
*/
private FileDscr getDdiFileDsrc(DataSetSubDocument dataset) {
String id = dataset.getId().split("\\$")[0];
TextElement fileCont = new TextElement(LanguageEnum.de, dataset.getDescription().getDe());
FileTxt fileTxt = new FileTxt(id, fileCont);
var id = dataset.getId().split("\\$")[0];
final var fileTxt = new FileTxt(
List.of(
new TextElement(LanguageEnum.de, id),
new TextElement(LanguageEnum.en, id)
),
List.of(
new TextElement(LanguageEnum.de, dataset.getDescription().getDe()),
new TextElement(LanguageEnum.en, dataset.getDescription().getEn())
)
);
return new FileDscr(id, fileTxt);
}

Expand All @@ -270,7 +280,11 @@ private FileDscr getDdiFileDsrc(DataSetSubDocument dataset) {
private StdyDscr getDdiStdyDscr(DataPackageSearchDocument doc) {
TextElement titl = new TextElement(LanguageEnum.de, doc.getTitle().getDe());
TextElement parTitl = new TextElement(LanguageEnum.en, doc.getTitle().getEn());
Citation citation = new Citation(new TitlStmt(titl, parTitl));
IdNo idNo = null;
if (doc.getDoi() != null && !doc.getDoi().isBlank()) {
idNo = new IdNo("DOI", doc.getRelease().getVersion(), doc.getDoi());
}
Citation citation = new Citation(new TitlStmt(titl, parTitl, idNo));
return new StdyDscr(citation);
}
}

0 comments on commit 0949755

Please sign in to comment.