Some bugfixes
parent
fd188a4f92
commit
3f4da7553c
|
|
@ -70,12 +70,12 @@ public class PublicationRepository
|
|||
criteriaBuilder.equal(from.get("publicationId"), publicationId)
|
||||
);
|
||||
|
||||
final TypedQuery<T> query = getEntityManager().createQuery(
|
||||
criteriaQuery
|
||||
);
|
||||
|
||||
try {
|
||||
return Optional.of(query.getSingleResult());
|
||||
return Optional.of(
|
||||
getEntityManager()
|
||||
.createQuery(criteriaQuery)
|
||||
.getSingleResult()
|
||||
);
|
||||
} catch (NoResultException ex) {
|
||||
return Optional.empty();
|
||||
}
|
||||
|
|
@ -101,12 +101,19 @@ public class PublicationRepository
|
|||
public <T extends Publication> Optional<T> findByUuidAndType(
|
||||
final String uuid, final Class<T> type
|
||||
) {
|
||||
final CriteriaBuilder criteriaBuilder = getEntityManager()
|
||||
.getCriteriaBuilder();
|
||||
final CriteriaQuery<T> criteriaQuery = criteriaBuilder.createQuery(type);
|
||||
final Root<T> from = criteriaQuery.from(type);
|
||||
|
||||
criteriaQuery.where(
|
||||
criteriaBuilder.equal(from.get("uuid"), uuid)
|
||||
);
|
||||
|
||||
try {
|
||||
return Optional.of(
|
||||
getEntityManager()
|
||||
.createNamedQuery("Publication.findByUuidAndType", type)
|
||||
.setParameter("uuid", uuid)
|
||||
.setParameter("type", type)
|
||||
.createQuery(criteriaQuery)
|
||||
.getSingleResult()
|
||||
);
|
||||
} catch (NoResultException ex) {
|
||||
|
|
@ -123,19 +130,33 @@ public class PublicationRepository
|
|||
}
|
||||
|
||||
public <T extends Publication> List<T> findByType(final Class<T> type) {
|
||||
final CriteriaBuilder criteriaBuilder = getEntityManager()
|
||||
.getCriteriaBuilder();
|
||||
final CriteriaQuery<T> criteriaQuery = criteriaBuilder.createQuery(type);
|
||||
criteriaQuery.from(type);
|
||||
|
||||
return getEntityManager()
|
||||
.createNamedQuery("Publication.findByType", type)
|
||||
.setParameter("type", type)
|
||||
.createQuery(criteriaQuery)
|
||||
.getResultList();
|
||||
}
|
||||
|
||||
public <T extends Publication> List<T> findByTitleAndType(
|
||||
final String title, final Class<T> type
|
||||
) {
|
||||
final CriteriaBuilder criteriaBuilder = getEntityManager()
|
||||
.getCriteriaBuilder();
|
||||
final CriteriaQuery<T> criteriaQuery = criteriaBuilder.createQuery(type);
|
||||
final Root<T> from = criteriaQuery.from(type);
|
||||
|
||||
criteriaQuery.where(
|
||||
criteriaBuilder.like(
|
||||
criteriaBuilder.lower(from.get("title")),
|
||||
String.format("%%%s%%", title)
|
||||
)
|
||||
);
|
||||
|
||||
return getEntityManager()
|
||||
.createNamedQuery("Publication.findByTitleAndType", type)
|
||||
.setParameter("title", title)
|
||||
.setParameter("type", type)
|
||||
.createQuery(criteriaQuery)
|
||||
.getResultList();
|
||||
}
|
||||
|
||||
|
|
@ -149,10 +170,17 @@ public class PublicationRepository
|
|||
public <T extends Publication> List<T> findByAuthorAndType(
|
||||
final Person author, final Class<T> type
|
||||
) {
|
||||
final CriteriaBuilder criteriaBuilder = getEntityManager()
|
||||
.getCriteriaBuilder();
|
||||
final CriteriaQuery<T> criteriaQuery = criteriaBuilder.createQuery(type);
|
||||
final Root<T> from = criteriaQuery.from(type);
|
||||
|
||||
criteriaQuery.where(
|
||||
criteriaBuilder.equal(from.get("author"), author)
|
||||
);
|
||||
|
||||
return getEntityManager()
|
||||
.createNamedQuery("Publication.findByAuthorAndType", type)
|
||||
.setParameter("author", author)
|
||||
.setParameter("type", type)
|
||||
.createQuery(criteriaQuery)
|
||||
.getResultList();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -114,6 +114,7 @@ public class Publications {
|
|||
final JsonObjectBuilder objectBuilder = Json
|
||||
.createObjectBuilder()
|
||||
.add("publicationId", publication.getPublicationId())
|
||||
.add("uuid", publication.getUuid())
|
||||
.add(
|
||||
"authors",
|
||||
publication
|
||||
|
|
@ -135,7 +136,17 @@ public class Publications {
|
|||
publication.getTitle()
|
||||
)
|
||||
)
|
||||
.add("year", publication.getYearOfPublication());
|
||||
.add(
|
||||
"type",
|
||||
publication.getClass().getSimpleName()
|
||||
);
|
||||
|
||||
|
||||
if (publication.getYearOfPublication() == null) {
|
||||
objectBuilder.addNull("year");
|
||||
} else {
|
||||
publication.getYearOfPublication();
|
||||
}
|
||||
|
||||
if (publication instanceof PublicationWithPublisher) {
|
||||
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@
|
|||
</cc:interface>
|
||||
|
||||
<cc:implementation>
|
||||
<div class="scicms-publications-picker"
|
||||
<div class="scicms-publication-picker"
|
||||
data-publicationtype="#{cc.attrs.publicationType}"
|
||||
data-baseUrl="#{cc.attrs.baseUrl}"
|
||||
data-contentsection="#{cc.attrs.contentSection}"
|
||||
|
|
@ -114,30 +114,31 @@
|
|||
label="#{SciPublicationsUiMessageBundle['publicationpicker.filter.label']}"
|
||||
inputId="#{cc.attrs.publicationPickerId}-filter"
|
||||
name="" />
|
||||
</form>
|
||||
<template id="#{cc.attrs.publicationPickerId}-row">
|
||||
<tr>
|
||||
<td class="col-name"></td>
|
||||
<td class="col-type"></td>
|
||||
<td class="col-action">
|
||||
<button class="btn btn-primary"
|
||||
data-publicationuuid=""
|
||||
type="button">
|
||||
#{SciPublicationsUiMessageBundle['publicationpicker.select']}
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</template>
|
||||
<table>
|
||||
<thead>
|
||||
|
||||
<template id="#{cc.attrs.publicationPickerId}-row">
|
||||
<tr>
|
||||
<th>#{SciPublicationsUiMessageBundle['publicationpicker.column.name']}</th>
|
||||
<th>#{SciPublicationsUiMessageBundle['publicationpicker.column.type']}</th>
|
||||
<th>#{SciPublicationsUiMessageBundle['publicationpicker.column.action']}</th>
|
||||
<td class="col-name"></td>
|
||||
<td class="col-type"></td>
|
||||
<td class="col-action">
|
||||
<button class="btn btn-primary"
|
||||
data-publicationuuid=""
|
||||
type="button">
|
||||
#{SciPublicationsUiMessageBundle['publicationpicker.select']}
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody></tbody>
|
||||
</table>
|
||||
</template>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#{SciPublicationsUiMessageBundle['publicationpicker.column.name']}</th>
|
||||
<th>#{SciPublicationsUiMessageBundle['publicationpicker.column.type']}</th>
|
||||
<th>#{SciPublicationsUiMessageBundle['publicationpicker.column.action']}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody></tbody>
|
||||
</table>
|
||||
</form>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-warning"
|
||||
data-dismiss="modal"
|
||||
|
|
|
|||
|
|
@ -87,6 +87,10 @@
|
|||
</c:choose>
|
||||
|
||||
</ui:define>
|
||||
|
||||
<ui:define name="publicationScripts">
|
||||
<script src="#{request.contextPath}/assets/@scipublications/publication-picker.js" />
|
||||
</ui:define>
|
||||
|
||||
</ui:composition>
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,8 @@ async function initPublicationPicker(publicationPickerElem: Element) {
|
|||
"data-contentsection"
|
||||
);
|
||||
|
||||
const fetchUrl = `/content-sections/${contentSection}/publications?type=${publicationType}`;
|
||||
// const fetchUrl = `/content-sections/${contentSection}/publications?type=${publicationType}`;
|
||||
const fetchUrl = `/scipublications/publications?type=${publicationType}`;
|
||||
|
||||
try {
|
||||
const response = await fetch(fetchUrl);
|
||||
|
|
@ -39,7 +40,7 @@ async function initPublicationPicker(publicationPickerElem: Element) {
|
|||
const selectButton = row.querySelector(".col-action button");
|
||||
|
||||
if (colName) {
|
||||
colName.textContent = publication["name"];
|
||||
colName.textContent = publication["title"];
|
||||
}
|
||||
if (colType) {
|
||||
colType.textContent = publication["type"];
|
||||
|
|
@ -84,4 +85,16 @@ async function selectPublication(
|
|||
return;
|
||||
}
|
||||
|
||||
const publicationPickerParam = publicationPickerElem.querySelector(
|
||||
".publicationpicker-param"
|
||||
) as HTMLInputElement;
|
||||
if (!publicationPickerParam) {
|
||||
console.error("publicationPickerParam is null.");
|
||||
return;
|
||||
}
|
||||
publicationPickerParam.value = `UUID-${publicationUuid}`;
|
||||
|
||||
const form = publicationPickerElem.querySelector("form") as HTMLFormElement;
|
||||
form.submit();
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue