added popup dialog to abstract project idea page so the popup with confirmed/unconfirmed ideas now comes up on all authors project idea pages
This commit is contained in:
parent
aa25711278
commit
a7e7876097
src/main/java/se/su/dsv/scipro/project
@ -3,6 +3,9 @@
|
||||
<body>
|
||||
<wicket:extend>
|
||||
<div class="span-24 last append-bottom">
|
||||
<div wicket:id="abstractDialog">
|
||||
<div wicket:id="abstractDialogPanel"></div>
|
||||
</div>
|
||||
<div wicket:id="ideaSub"></div>
|
||||
</div>
|
||||
<wicket:child/>
|
||||
|
@ -1,21 +1,37 @@
|
||||
package se.su.dsv.scipro.project.pages;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.Cookie;
|
||||
|
||||
import org.apache.wicket.PageParameters;
|
||||
import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
|
||||
import org.apache.wicket.markup.html.panel.EmptyPanel;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.protocol.http.WebRequest;
|
||||
import org.apache.wicket.protocol.http.WebResponse;
|
||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||
import org.apache.wicket.util.time.Duration;
|
||||
import org.odlabs.wiquery.ui.dialog.Dialog;
|
||||
|
||||
import se.su.dsv.scipro.SciProSession;
|
||||
import se.su.dsv.scipro.data.DomainObjectDetachableModel;
|
||||
import se.su.dsv.scipro.data.dao.interfaces.ProjectDao;
|
||||
import se.su.dsv.scipro.data.dataobjects.Project;
|
||||
import se.su.dsv.scipro.data.dataobjects.Student;
|
||||
import se.su.dsv.scipro.data.dataobjects.User;
|
||||
import se.su.dsv.scipro.match.dataobject.SupervisorIdea;
|
||||
import se.su.dsv.scipro.match.dataobject.Idea.IdeaStatus;
|
||||
import se.su.dsv.scipro.project.panels.AcceptIdeaDialogPanel;
|
||||
import se.su.dsv.scipro.project.panels.CompleteIdeaDialogPanel;
|
||||
import se.su.dsv.scipro.project.panels.ProjectIdeaTabMenuPanel;
|
||||
import se.su.dsv.scipro.project.panels.ProjectSubTabMenuPanel;
|
||||
import se.su.dsv.scipro.springdata.services.StudentService;
|
||||
import se.su.dsv.scipro.springdata.services.SupervisorIdeaService;
|
||||
/**
|
||||
*
|
||||
* @author Martin Peters - mpeters@dsv.su.se
|
||||
@ -25,6 +41,12 @@ public abstract class AbstractProjectIdeaPage extends ProjectPage {
|
||||
|
||||
public static final String COOKIE_KEY = "authorLastVisitedPID";
|
||||
|
||||
@SpringBean
|
||||
private SupervisorIdeaService ideaService;
|
||||
@SpringBean
|
||||
private StudentService studentService;
|
||||
private Dialog dialog;
|
||||
|
||||
public AbstractProjectIdeaPage(PageParameters pp) {
|
||||
super(pp);
|
||||
|
||||
@ -32,7 +54,75 @@ public abstract class AbstractProjectIdeaPage extends ProjectPage {
|
||||
* This is the submenu
|
||||
*/
|
||||
add(new ProjectIdeaTabMenuPanel("ideaSub", this.getClass()));
|
||||
|
||||
|
||||
/**
|
||||
* Pop up dialog if author is part of a project
|
||||
*/
|
||||
addDialog();
|
||||
checkForUnconfirmedIdeas(getUser());
|
||||
|
||||
}
|
||||
|
||||
private void addDialog() {
|
||||
dialog = new Dialog("abstractDialog");
|
||||
dialog.setModal(true);
|
||||
dialog.setAutoOpen(false);
|
||||
dialog.setWidth(500);
|
||||
dialog.setHeight(600);
|
||||
dialog.add(new EmptyPanel("abstractDialogPanel"));
|
||||
add(dialog);
|
||||
}
|
||||
|
||||
private void checkForUnconfirmedIdeas(final User currentUser) {
|
||||
boolean hasUnconfirmed = ideaService.hasTakenIdeas(currentUser, false);
|
||||
if(hasUnconfirmed) {
|
||||
Student author = studentService.findByUser(currentUser);
|
||||
final List<SupervisorIdea> ideas = ideaService.findIdeas(IdeaStatus.TAKEN, author, false);
|
||||
if(ideas.size()>1)
|
||||
System.out.println("More than one unconfirmed idea");
|
||||
else {
|
||||
add(new AbstractAjaxTimerBehavior(Duration.milliseconds(1)) {
|
||||
private static final long serialVersionUID = 8249890924500999472L;
|
||||
|
||||
@Override
|
||||
protected void onTimer(AjaxRequestTarget target) {
|
||||
dialog.replace(new AcceptIdeaDialogPanel("abstractDialogPanel",Model.of(ideas.get(0)), currentUser, true));
|
||||
dialog.setTitle("Supervisor project idea");
|
||||
target.addComponent(dialog);
|
||||
dialog.open(target);
|
||||
stop();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
else {
|
||||
checkForConfirmedIdeas(currentUser);
|
||||
}
|
||||
}
|
||||
|
||||
private void checkForConfirmedIdeas(final User currentUser) {
|
||||
boolean hasConfirmed = ideaService.hasTakenIdeas(currentUser, true);
|
||||
if(hasConfirmed){
|
||||
Student author = studentService.findByUser(currentUser);
|
||||
final List<SupervisorIdea> ideas = ideaService.findIdeas(IdeaStatus.TAKEN, author, true);
|
||||
add(new AbstractAjaxTimerBehavior(Duration.milliseconds(1)) {
|
||||
private static final long serialVersionUID = 8249890924500999472L;
|
||||
|
||||
@Override
|
||||
protected void onTimer(AjaxRequestTarget target) {
|
||||
dialog.replace(new CompleteIdeaDialogPanel("abstractDialogPanel",Model.of(ideas.get(0))));
|
||||
dialog.setWidth(550);
|
||||
dialog.setHeight(700);
|
||||
dialog.setTitle("Selected supervisor project idea");
|
||||
target.addComponent(dialog);
|
||||
dialog.open(target);
|
||||
stop();
|
||||
}
|
||||
});
|
||||
} else
|
||||
System.out.println("No confirmed ideas");
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -44,7 +44,6 @@ public class ProjectIdeaOverviewPanel extends Panel {
|
||||
super(id);
|
||||
addDialog();
|
||||
addDataTable(currentUser);
|
||||
checkForUnconfirmedIdeas(currentUser);
|
||||
add(new FilterForm("form"));
|
||||
}
|
||||
|
||||
@ -101,58 +100,7 @@ public class ProjectIdeaOverviewPanel extends Panel {
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void checkForUnconfirmedIdeas(final User currentUser) {
|
||||
boolean hasUnconfirmed = ideaService.hasTakenIdeas(currentUser, false);
|
||||
if(hasUnconfirmed) {
|
||||
Student author = studentService.findByUser(currentUser);
|
||||
final List<SupervisorIdea> ideas = ideaService.findIdeas(IdeaStatus.TAKEN, author, false);
|
||||
if(ideas.size()>1)
|
||||
System.out.println("More than one unconfirmed idea");
|
||||
else {
|
||||
add(new AbstractAjaxTimerBehavior(Duration.milliseconds(1)) {
|
||||
private static final long serialVersionUID = 8249890924500999472L;
|
||||
|
||||
@Override
|
||||
protected void onTimer(AjaxRequestTarget target) {
|
||||
dialog.replace(new AcceptIdeaDialogPanel("dialogPanel",Model.of(ideas.get(0)), currentUser, true));
|
||||
dialog.setTitle("Supervisor project idea");
|
||||
target.addComponent(dialog);
|
||||
dialog.open(target);
|
||||
stop();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
else {
|
||||
checkForConfirmedIdeas(currentUser);
|
||||
}
|
||||
}
|
||||
|
||||
private void checkForConfirmedIdeas(final User currentUser) {
|
||||
boolean hasConfirmed = ideaService.hasTakenIdeas(currentUser, true);
|
||||
if(hasConfirmed){
|
||||
Student author = studentService.findByUser(currentUser);
|
||||
final List<SupervisorIdea> ideas = ideaService.findIdeas(IdeaStatus.TAKEN, author, true);
|
||||
add(new AbstractAjaxTimerBehavior(Duration.milliseconds(1)) {
|
||||
private static final long serialVersionUID = 8249890924500999472L;
|
||||
|
||||
@Override
|
||||
protected void onTimer(AjaxRequestTarget target) {
|
||||
dialog.replace(new CompleteIdeaDialogPanel("dialogPanel",Model.of(ideas.get(0))));
|
||||
dialog.setWidth(550);
|
||||
dialog.setHeight(700);
|
||||
dialog.setTitle("Selected supervisor project idea");
|
||||
target.addComponent(dialog);
|
||||
dialog.open(target);
|
||||
stop();
|
||||
}
|
||||
});
|
||||
} else
|
||||
System.out.println("No confirmed ideas");
|
||||
}
|
||||
|
||||
private class FilterForm extends Form<Void> {
|
||||
private static final long serialVersionUID = -5646495880236201368L;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user