Fix of several serious bugs in final seminar file handling and
addition of possibility of deletion of all documents related to a final seminar by an admin Change-Id: If75bee176893c36e14c12deee3d17098a83fa260
This commit is contained in:
parent
ac8716d4b0
commit
0da9284647
src/main/java/se/su/dsv/scipro
@ -6,11 +6,10 @@ import org.apache.wicket.markup.html.form.upload.FileUpload;
|
||||
import se.su.dsv.scipro.data.dataobjects.FinalSeminar;
|
||||
import se.su.dsv.scipro.data.dataobjects.FinalSeminarOpposition;
|
||||
import se.su.dsv.scipro.data.dataobjects.User;
|
||||
import se.su.dsv.scipro.repository.util.FileStorageException;
|
||||
|
||||
public interface FinalSeminarUploadController extends IClusterable {
|
||||
|
||||
void deleteSeminarFilesRecursive(FinalSeminar seminar);
|
||||
|
||||
void deleteOpponentFiles(FinalSeminarOpposition opp);
|
||||
|
||||
/**
|
||||
@ -20,6 +19,15 @@ public interface FinalSeminarUploadController extends IClusterable {
|
||||
* @throws Exception
|
||||
*/
|
||||
FinalSeminar deleteSeminarReport(FinalSeminar seminar) throws Exception;
|
||||
|
||||
/**
|
||||
* Delete the upload report for the seminar, adminOverrideMode = true means no intentional exceptions will be thrown
|
||||
* @param seminar
|
||||
* @param adminOverrideMode
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
FinalSeminar deleteSeminarReport(FinalSeminar seminar, boolean adminOverrideMode) throws Exception;
|
||||
|
||||
void storeSeminarDocument(FileUpload upload, User uploader, FinalSeminar seminar) throws Exception;
|
||||
|
||||
|
@ -78,17 +78,9 @@ public class FinalSeminarUploadControllerImpl implements FinalSeminarUploadContr
|
||||
}
|
||||
|
||||
private void delete(String path) {
|
||||
|
||||
fileRepository.delete(path);
|
||||
}
|
||||
|
||||
public void deleteSeminarFilesRecursive(final FinalSeminar seminar) throws FileStorageException {
|
||||
if (seminar.getDocument() != null) {
|
||||
//delete(getRepositorySeminarPath(seminar)); Use of deprecated path/method
|
||||
delete(seminar.getDocument().getPath());
|
||||
}
|
||||
}
|
||||
|
||||
public void deleteOpponentFiles(final FinalSeminarOpposition opp) throws FileStorageException {
|
||||
if (opp.getOpponentReport() != null) {
|
||||
//delete(getRepositoryOppositionPath(opp)); Use of deprecated path/method
|
||||
@ -103,18 +95,31 @@ public class FinalSeminarUploadControllerImpl implements FinalSeminarUploadContr
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public FinalSeminar deleteSeminarReport(FinalSeminar seminar) throws Exception {
|
||||
public FinalSeminar deleteSeminarReport(FinalSeminar seminar) throws Exception{
|
||||
return deleteSeminarReport(seminar, false);
|
||||
}
|
||||
/**
|
||||
* Delete the upload report for the seminar, adminOverrideMode = true means no intentional exceptions will be thrown
|
||||
* @param seminar
|
||||
* @param adminOverrideMode
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public FinalSeminar deleteSeminarReport(FinalSeminar seminar, boolean adminOverrideMode) throws Exception {
|
||||
seminar = finalSeminarDao.reLoad(seminar);
|
||||
if (!seminar.getOppositions().isEmpty() || !seminar.getActiveParticipations().isEmpty()) {
|
||||
throw new Exception(
|
||||
"Cannot delete seminar report, seminar has opponents or active participants");
|
||||
if( !adminOverrideMode ){
|
||||
if (!seminar.getOppositions().isEmpty() || !seminar.getActiveParticipations().isEmpty()) {
|
||||
throw new Exception(
|
||||
"Cannot delete seminar report, seminar has opponents or active participants");
|
||||
}
|
||||
}
|
||||
for (CheckPlagiarismEvent cpe : checkPlagiarismEventDao.getWithFileDescription(seminar
|
||||
.getDocument())) {
|
||||
checkPlagiarismEventDao.delete(cpe);
|
||||
}
|
||||
|
||||
fileRepository.delete(seminar.getDocument().getPath());
|
||||
if(seminar.getDocument() != null)
|
||||
if(seminar.getDocument().getPath() != null)
|
||||
fileRepository.delete(seminar.getDocument().getPath());
|
||||
seminar.setDocument(null);
|
||||
return finalSeminarDao.save(seminar);
|
||||
}
|
||||
|
@ -2,78 +2,73 @@
|
||||
<html
|
||||
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
|
||||
<body>
|
||||
<wicket:panel>
|
||||
<div wicket:id="titleContainer">
|
||||
<strong>Project Title: </strong> <span wicket:id="projectTitle"></span>
|
||||
<div>
|
||||
<strong>Room: </strong> <span wicket:id="room"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="append-bottom">
|
||||
<div>
|
||||
<strong>Head supervisor:</strong>
|
||||
</div>
|
||||
<span wicket:id="headSupervisor"></span>
|
||||
</div>
|
||||
<div>
|
||||
<strong>Author(s): </strong>
|
||||
<ul class="no-list-style">
|
||||
<li wicket:id="authorsList"><span wicket:id="author"></span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<wicket:panel>
|
||||
<div wicket:id="feedback"></div>
|
||||
<div wicket:id="titleContainer"><strong>Project Title: </strong>
|
||||
<span wicket:id="projectTitle"></span>
|
||||
<div><strong>Room: </strong> <span wicket:id="room"></span></div>
|
||||
</div>
|
||||
<div class="append-bottom">
|
||||
<div><strong>Head supervisor:</strong></div>
|
||||
<span wicket:id="headSupervisor"></span></div>
|
||||
<div><strong>Author(s): </strong>
|
||||
<ul class="no-list-style">
|
||||
<li wicket:id="authorsList"><span wicket:id="author"></span></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<strong>Co-supervisor(s): </strong>
|
||||
<ul class="no-list-style">
|
||||
<li wicket:id="coSupervisorsList"><span
|
||||
wicket:id="coSupervisor"></span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div><strong>Co-supervisor(s): </strong>
|
||||
<ul class="no-list-style">
|
||||
<li wicket:id="coSupervisorsList"><span wicket:id="coSupervisor"></span></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<strong>Reviewer(s): </strong>
|
||||
<ul class="no-list-style">
|
||||
<li wicket:id="reviewersList"><span wicket:id="reviewer"></span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div><strong>Reviewer(s): </strong>
|
||||
<ul class="no-list-style">
|
||||
<li wicket:id="reviewersList"><span wicket:id="reviewer"></span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<div wicket:id="detailsContainer">
|
||||
<div>
|
||||
<strong>Opponent(s): </strong>
|
||||
<ul class="no-list-style">
|
||||
<li wicket:id="opponentsList"><span wicket:id="opponent"></span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<strong>Active participant(s): </strong>
|
||||
<ul class="no-list-style">
|
||||
<li wicket:id="activeParticipantsList"><span
|
||||
wicket:id="activeParticipant"></span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<strong>Presentation Language: </strong>
|
||||
<div wicket:id="seminarLanguage"></div>
|
||||
</div>
|
||||
<div>
|
||||
<strong>Thesis/Report Language: </strong>
|
||||
<div wicket:id="thesisLanguage"></div>
|
||||
</div>
|
||||
|
||||
<strong>Thesis/Report: </strong>
|
||||
<div>
|
||||
<span wicket:id="seminarReportTitle"></span> <span
|
||||
wicket:id="uploadInfoContainer"> <a href="#"
|
||||
wicket:id="open"><img
|
||||
src="images/icons/document-preview_16x16.png" alt="Open/Preview" />
|
||||
</a> <a href="#" wicket:id="download"><img
|
||||
src="images/icons/download_16x16.png" alt="Download" /> </a> </span>
|
||||
</div>
|
||||
<div wicket:id="detailsContainer">
|
||||
<div><strong>Opponent(s): </strong>
|
||||
<ul class="no-list-style">
|
||||
<li wicket:id="opponentsList"><span wicket:id="opponent"></span>
|
||||
<div wicket:id="oppositionContainer"><strong>Report:</strong> <span wicket:id="oppositionReportTitle"></span> <a href="#"
|
||||
wicket:id="open"><img
|
||||
src="images/icons/document-preview_16x16.png" alt="Open/Preview" />
|
||||
</a> <a href="#" wicket:id="download"><img
|
||||
src="images/icons/download_16x16.png" alt="Download" /> </a> <a href="#"
|
||||
wicket:id="deleteOppositionReport"><img
|
||||
src="images/icons/delete_16x16.png" alt="delete" /> </a>
|
||||
</div>
|
||||
</wicket:panel>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div><strong>Active participant(s): </strong>
|
||||
<ul class="no-list-style">
|
||||
<li wicket:id="activeParticipantsList"><span
|
||||
wicket:id="activeParticipant"></span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div><strong>Presentation Language: </strong>
|
||||
<div wicket:id="seminarLanguage"></div>
|
||||
</div>
|
||||
<div><strong>Thesis/Report Language: </strong>
|
||||
<div wicket:id="thesisLanguage"></div>
|
||||
</div>
|
||||
|
||||
<strong>Thesis/Report: </strong>
|
||||
<div><span wicket:id="seminarReportTitle"></span> <span
|
||||
wicket:id="uploadInfoContainer"> <a href="#" wicket:id="open"><img
|
||||
src="images/icons/document-preview_16x16.png" alt="Open/Preview" /> </a>
|
||||
<a href="#" wicket:id="download"><img
|
||||
src="images/icons/download_16x16.png" alt="Download" /> </a> <a href="#"
|
||||
wicket:id="deleteSeminarReport"><img
|
||||
src="images/icons/delete_16x16.png" alt="delete" /> </a> </span></div>
|
||||
</div>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
@ -3,16 +3,21 @@ package se.su.dsv.scipro.opponent.panels;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
import org.apache.wicket.ajax.markup.html.AjaxLink;
|
||||
import org.apache.wicket.markup.html.WebMarkupContainer;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.list.ListItem;
|
||||
import org.apache.wicket.markup.html.list.ListView;
|
||||
import org.apache.wicket.markup.html.panel.EmptyPanel;
|
||||
import org.apache.wicket.markup.html.panel.FeedbackPanel;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||
|
||||
import se.su.dsv.scipro.data.controllers.FinalSeminarUploadController;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.FinalSeminarDao;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.FinalSeminarOppositionDao;
|
||||
import se.su.dsv.scipro.data.dataobjects.FinalSeminar;
|
||||
import se.su.dsv.scipro.data.dataobjects.FinalSeminarActiveParticipation;
|
||||
import se.su.dsv.scipro.data.dataobjects.FinalSeminarOpposition;
|
||||
@ -23,6 +28,9 @@ import se.su.dsv.scipro.data.dataobjects.User;
|
||||
import se.su.dsv.scipro.data.enums.ProjectTeamMemberRoles;
|
||||
import se.su.dsv.scipro.repository.components.FileDownloadLink;
|
||||
import se.su.dsv.scipro.repository.components.FileOpenLink;
|
||||
import se.su.dsv.scipro.security.auth.MetaDataActionStrategy;
|
||||
import se.su.dsv.scipro.security.auth.roles.Roles;
|
||||
import se.su.dsv.scipro.util.JavascriptEventConfirmation;
|
||||
|
||||
public class FinalSeminarDetailsPanel extends Panel {
|
||||
|
||||
@ -30,11 +38,15 @@ public class FinalSeminarDetailsPanel extends Panel {
|
||||
|
||||
@SpringBean
|
||||
private FinalSeminarDao finalSeminarDao;
|
||||
@SpringBean
|
||||
private FinalSeminarOppositionDao finalSeminarOppositionDao;
|
||||
@SpringBean
|
||||
private FinalSeminarUploadController finalSeminarUploadController;
|
||||
|
||||
public FinalSeminarDetailsPanel(final String id, final FinalSeminar seminar2,
|
||||
final boolean details) {
|
||||
public FinalSeminarDetailsPanel(final String id, final FinalSeminar seminar2, final boolean details) {
|
||||
super(id);
|
||||
|
||||
this.setOutputMarkupId(true);
|
||||
add(new FeedbackPanel("feedback"));
|
||||
final FinalSeminar seminar = finalSeminarDao.reLoad(seminar2);
|
||||
final Project project = seminar.getProject();
|
||||
WebMarkupContainer titleContainer = new WebMarkupContainer("titleContainer") {
|
||||
@ -53,8 +65,7 @@ public class FinalSeminarDetailsPanel extends Panel {
|
||||
});
|
||||
titleContainer.add(new Label("room", seminar.getRoom()));
|
||||
add(titleContainer);
|
||||
add(new ListView<Student>("authorsList", new ArrayList<Student>(
|
||||
project.getProjectParticipants())) {
|
||||
add(new ListView<Student>("authorsList", new ArrayList<Student>(project.getProjectParticipants())) {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
@ -111,41 +122,76 @@ public class FinalSeminarDetailsPanel extends Panel {
|
||||
|
||||
};
|
||||
|
||||
detailsContainer.add(new ListView<FinalSeminarOpposition>("opponentsList", seminar
|
||||
.getOppositions()) {
|
||||
detailsContainer.add(new ListView<FinalSeminarOpposition>("opponentsList", seminar.getOppositions()) {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
protected void populateItem(ListItem<FinalSeminarOpposition> item) {
|
||||
item.add(item.getModelObject().getOpponent().getUser()
|
||||
.getDisplayComponent("opponent", true));
|
||||
protected void populateItem(final ListItem<FinalSeminarOpposition> item) {
|
||||
item.add(item.getModelObject().getOpponent().getUser().getDisplayComponent("opponent", true));
|
||||
WebMarkupContainer oppCon = new WebMarkupContainer("oppositionContainer"){
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
public boolean isVisible(){
|
||||
return item.getModelObject().getOpponentReport() != null;
|
||||
}
|
||||
};
|
||||
MetaDataActionStrategy.authorize(oppCon, Roles.ADMIN);
|
||||
item.add(oppCon);
|
||||
|
||||
String reportTitle = "";
|
||||
if(item.getModelObject().getOpponentReport() != null)
|
||||
reportTitle = item.getModelObject().getOpponentReport().getName();
|
||||
oppCon.add(new Label("oppositionReportTitle", reportTitle));
|
||||
|
||||
oppCon.add(new FileDownloadLink("download", item.getModelObject().getOpponentReport()));
|
||||
oppCon.add(new FileOpenLink("open", item.getModelObject().getOpponentReport()));
|
||||
oppCon.add(new AjaxLink<Void>("deleteOppositionReport"){
|
||||
private static final long serialVersionUID = 1L;
|
||||
{ //Extra safeguard should someone later decide that the surrounding container should be visible to all
|
||||
MetaDataActionStrategy.authorize(this, Roles.ADMIN);
|
||||
this.add(new JavascriptEventConfirmation("onclick", "Do you really want to delete this user-uploaded report?"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(AjaxRequestTarget target) {
|
||||
try{
|
||||
finalSeminarUploadController.deleteOpponentFiles(item.getModelObject());
|
||||
FinalSeminarOpposition opp = item.getModelObject();
|
||||
opp.setOpponentReport(null);
|
||||
opp = finalSeminarOppositionDao.save(opp);
|
||||
item.setModelObject(opp);
|
||||
info("Opposition report deleted");
|
||||
} catch(Exception e){
|
||||
e.printStackTrace();
|
||||
error("Something went wrong, see log files for stacktrace");
|
||||
}
|
||||
target.addComponent(FinalSeminarDetailsPanel.this);
|
||||
}
|
||||
});
|
||||
add(item);
|
||||
}
|
||||
});
|
||||
|
||||
detailsContainer.add(new ListView<FinalSeminarActiveParticipation>(
|
||||
"activeParticipantsList", seminar.getActiveParticipations()) {
|
||||
detailsContainer.add(new ListView<FinalSeminarActiveParticipation>("activeParticipantsList", seminar.getActiveParticipations()) {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
protected void populateItem(ListItem<FinalSeminarActiveParticipation> item) {
|
||||
item.add(item.getModelObject().getUser()
|
||||
.getDisplayComponent("activeParticipant", true));
|
||||
item.add(item.getModelObject().getUser().getDisplayComponent("activeParticipant", true));
|
||||
add(item);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
detailsContainer.add(new Label("seminarLanguage", seminar.getPresentationLanguage()
|
||||
.toString()));
|
||||
detailsContainer.add(new Label("seminarLanguage", seminar.getPresentationLanguage().toString()));
|
||||
detailsContainer.add(new Label("thesisLanguage", seminar.getReportLanguage().toString()));
|
||||
detailsContainer.add(new Label("seminarReportTitle", new Model<String>() {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
public String getObject() {
|
||||
return seminar.getDocument() == null ? "No thesis/report uploaded" : seminar
|
||||
.getDocument().getName();
|
||||
return seminar.getDocument() == null ? "No thesis/report uploaded" : seminar.getDocument().getName();
|
||||
}
|
||||
}));
|
||||
|
||||
@ -161,6 +207,27 @@ public class FinalSeminarDetailsPanel extends Panel {
|
||||
uploadInfoContainer.add(new FileDownloadLink("download", seminar.getDocument()));
|
||||
uploadInfoContainer.add(new FileOpenLink("open", seminar.getDocument()));
|
||||
|
||||
uploadInfoContainer.add(new AjaxLink<Void>("deleteSeminarReport") {
|
||||
private static final long serialVersionUID = 1L;
|
||||
{
|
||||
MetaDataActionStrategy.authorize(this, Roles.ADMIN);
|
||||
this.add(new JavascriptEventConfirmation("onclick", "Do you really want to delete this user-uploaded report?"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(AjaxRequestTarget target) {
|
||||
try {
|
||||
finalSeminarUploadController.deleteSeminarReport(seminar, true);
|
||||
seminar.setDocument(null); //Only to repaint the ajax call without the document icons
|
||||
info("Report deleted");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
error("Deletion failed");
|
||||
}
|
||||
target.addComponent(FinalSeminarDetailsPanel.this);
|
||||
}
|
||||
});
|
||||
|
||||
detailsContainer.add(uploadInfoContainer);
|
||||
add(detailsContainer);
|
||||
|
||||
|
@ -5,6 +5,7 @@
|
||||
<wicket:panel>
|
||||
|
||||
<div class="span-22 prepend-top last">
|
||||
<div wicket:id="feedback"></div>
|
||||
<table class="rounded-table seminar-table even-rows">
|
||||
<tr>
|
||||
<th>Date</th>
|
||||
|
@ -47,8 +47,8 @@ import se.su.dsv.scipro.opponent.models.OpponentModel;
|
||||
public class OpponentListViewPanel extends Panel {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 4988253889884804250L;
|
||||
|
||||
@SpringBean
|
||||
@ -76,6 +76,10 @@ public class OpponentListViewPanel extends Panel {
|
||||
super(id);
|
||||
this.adminView = adminView;
|
||||
loadListView(seminarList);
|
||||
feedbackPanel = new FeedbackPanel("feedback");
|
||||
add(feedbackPanel);
|
||||
this.setOutputMarkupId(true);
|
||||
|
||||
editSeminarDialogContainer = new WebMarkupContainer("dialogContainer");
|
||||
editSeminarDialog = new Dialog("dialog");
|
||||
editSeminarDialog.setModal(true);
|
||||
@ -96,7 +100,7 @@ public class OpponentListViewPanel extends Panel {
|
||||
add(contactsSeminarDialog);
|
||||
contactsDialogContainer.setOutputMarkupId(true);
|
||||
contactsDialogContainer.add(contactsSeminarForm = new ContactsSeminarForm(
|
||||
"contactsSeminarForm"));
|
||||
"contactsSeminarForm"));
|
||||
contactsSeminarForm.setOutputMarkupId(true);
|
||||
|
||||
add(linkListView);
|
||||
@ -125,7 +129,7 @@ public class OpponentListViewPanel extends Panel {
|
||||
User headSupervisor = seminar.getProject().getHeadSupervisor().getUser();
|
||||
|
||||
headSupervisorString += headSupervisor.getFirstName() + " "
|
||||
+ headSupervisor.getLastName();
|
||||
+ headSupervisor.getLastName();
|
||||
item.add(new Label("headSupervisor", headSupervisorString));
|
||||
|
||||
item.add(new Label("projectClass", seminar.getProject().getProjectClass().getName()));
|
||||
@ -191,20 +195,25 @@ public class OpponentListViewPanel extends Panel {
|
||||
@Override
|
||||
public void onClick(AjaxRequestTarget target) {
|
||||
FinalSeminar seminar2 = finalSeminarDao.reLoad(seminar);
|
||||
seminarUploadController.deleteSeminarFilesRecursive(seminar2);
|
||||
for (FinalSeminarActiveParticipation al : seminar2
|
||||
.getActiveParticipations()) {
|
||||
finalSeminarActiveParticipationDao.delete(al);
|
||||
}
|
||||
try{
|
||||
seminarUploadController.deleteSeminarReport(seminar2, true);
|
||||
for (FinalSeminarActiveParticipation al : seminar2
|
||||
.getActiveParticipations()) {
|
||||
finalSeminarActiveParticipationDao.delete(al);
|
||||
}
|
||||
|
||||
for (FinalSeminarOpposition fso : seminar2
|
||||
.getOppositions()) {
|
||||
seminarUploadController.deleteOpponentFiles(fso);
|
||||
finalSeminarOppositionDao.delete(fso);
|
||||
for (FinalSeminarOpposition fso : seminar2
|
||||
.getOppositions()) {
|
||||
seminarUploadController.deleteOpponentFiles(fso);
|
||||
finalSeminarOppositionDao.delete(fso);
|
||||
}
|
||||
finalSeminarDao.delete(seminar2);
|
||||
info("Final seminar deleted");
|
||||
} catch (Exception e){
|
||||
error("Something went wrong, see logs for stacktrace");
|
||||
e.printStackTrace();
|
||||
}
|
||||
finalSeminarDao.delete(seminar2);
|
||||
setResponsePage(AdminFinalSeminarPage.class);
|
||||
|
||||
target.addComponent(OpponentListViewPanel.this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -227,7 +236,7 @@ public class OpponentListViewPanel extends Panel {
|
||||
@Override
|
||||
public CharSequence decorateScript(CharSequence script) {
|
||||
String ret = "if(!confirm('The attendees of this seminar will NOT be notified that the seminar has been deleted, are you sure you wish to delete it?')) return false; "
|
||||
+ script;
|
||||
+ script;
|
||||
return ret;
|
||||
}
|
||||
};
|
||||
@ -243,8 +252,8 @@ public class OpponentListViewPanel extends Panel {
|
||||
private class EditSeminarForm extends Form<OpponentModel> {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -5004827722926732419L;
|
||||
|
||||
public EditSeminarForm(String name) {
|
||||
@ -257,8 +266,8 @@ public class OpponentListViewPanel extends Panel {
|
||||
private class EditForm extends Form<Void> {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 5882957818616996808L;
|
||||
|
||||
public EditForm(String name, final FinalSeminar seminar) {
|
||||
@ -290,8 +299,8 @@ public class OpponentListViewPanel extends Panel {
|
||||
private class ContactsSeminarForm extends Form<OpponentModel> {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -5004827722926732419L;
|
||||
|
||||
public ContactsSeminarForm(String name) {
|
||||
@ -306,8 +315,8 @@ public class OpponentListViewPanel extends Panel {
|
||||
private class ContactsForm extends Form<Void> {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -8271761600388217566L;
|
||||
|
||||
public ContactsForm(String name, final FinalSeminar seminar) {
|
||||
@ -316,8 +325,8 @@ public class OpponentListViewPanel extends Panel {
|
||||
add(new AjaxButton("contacts", new Model<String>("Details")) {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 1211337464815824507L;
|
||||
|
||||
@Override
|
||||
|
Loading…
x
Reference in New Issue
Block a user