fix saving paper

pull/244/head
Anton Romanov 5 years ago
parent b99a5e9f06
commit a9fb97bd2e

@ -27,6 +27,7 @@ import ru.ulstu.user.service.UserService;
import java.io.IOException;
import java.text.MessageFormat;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
@ -131,9 +132,11 @@ public class PaperService {
paper.setUpdateDate(new Date());
paper.setDeadlines(deadlineService.saveOrCreate(paperDto.getDeadlines()));
paper.setReferences(saveOrCreateReferences(paperDto.getReferences()));
paper.setFiles(fileService.saveOrCreate(paperDto.getFiles().stream()
.filter(f -> !f.isDeleted())
.collect(toList())));
if (paperDto.getFiles() != null) {
paper.setFiles(fileService.saveOrCreate(paperDto.getFiles().stream()
.filter(f -> !f.isDeleted())
.collect(toList())));
}
paper.getAuthors().clear();
if (paperDto.getAuthorIds() != null && !paperDto.getAuthorIds().isEmpty()) {
paperDto.getAuthorIds().forEach(authorIds -> paper.getAuthors().add(userService.findById(authorIds)));
@ -142,7 +145,9 @@ public class PaperService {
}
private List<Reference> saveOrCreateReferences(List<ReferenceDto> references) {
return references
return references == null
? Collections.emptyList()
: references
.stream()
.filter(reference -> !reference.getDeleted())
.map(reference -> reference.getId() != null ? updateReference(reference) : createReference(reference))
@ -182,16 +187,20 @@ public class PaperService {
Paper.PaperStatus oldStatus = paper.getStatus();
Set<User> oldAuthors = new HashSet<>(paper.getAuthors());
for (FileDataDto file : paperDto.getFiles().stream()
.filter(f -> f.isDeleted() && f.getId() != null)
.collect(toList())) {
fileService.delete(file.getId());
if (paperDto.getFiles() != null) {
for (FileDataDto file : paperDto.getFiles().stream()
.filter(f -> f.isDeleted() && f.getId() != null)
.collect(toList())) {
fileService.delete(file.getId());
}
}
paperRepository.save(copyFromDto(paper, paperDto));
for (ReferenceDto referenceDto : paperDto.getReferences().stream()
.filter(f -> f.getDeleted() && f.getId() != null)
.collect(toList())) {
referenceRepository.deleteById(referenceDto.getId());
if (paperDto.getReferences() != null) {
for (ReferenceDto referenceDto : paperDto.getReferences().stream()
.filter(f -> f.getDeleted() && f.getId() != null)
.collect(toList())) {
referenceRepository.deleteById(referenceDto.getId());
}
}
eventService.updatePaperDeadlines(paper);

@ -56,8 +56,22 @@
});
}
function axiosPut(url, data, resolv, reject) {
axios.put(url, JSON.stringify(data), axiosConfig)
.then(function (result) {
errorHandler(result, resolv, reject);
})
.catch(function (error) {
setTimeout(function () {
throw Error(error);
}
);
});
}
return {
get: axiosGet,
post: axiosPost
post: axiosPost,
put: axiosPut
};
});

@ -9,8 +9,7 @@
<hr/>
<div class="row">
<div class="col-lg-12">
<form name="paperform" id="paper-form" method="post"
action="/papers/paper">
<form @submit.prevent="savePaper">
<div class="row">
<div class="col-md-7 col-sm-12">
<nav>
@ -28,7 +27,8 @@
aria-labelledby="nav-main-tab">
<div class="form-group">
<label for="title">Название:</label>
<input class="form-control" id="title" type="text" :value="paper.title"
<input class="form-control" id="title" type="text"
:value="paper.title"
placeholder="Название статьи"/>
</div>
<div class="form-group">
@ -149,6 +149,15 @@
if (date) {
return moment(String(new Date(date))).format('DD.MM.YYYY hh:mm')
}
},
savePaper: function (event) {
if (this.$route.query.id && Number.isInteger(parseInt(this.$route.query.id)) && parseInt(this.$route.query.id) != 0) {
axiosEx.put(appConfig.paper, this.paper);
} else {
axiosEx.post(appConfig.paper, this.paper);
}
this.$store.dispatch("addSuccessMessage", "Статья успешно сохранена!");
event.preventDefault();
}
},
mounted: function () {

Loading…
Cancel
Save