added some new pages for the new match3 structure and dialog to accept ideas
This commit is contained in:
parent
ca79800488
commit
2ad1722d5c
src/main/java/se/su/dsv/scipro
@ -3,6 +3,10 @@
|
||||
<body>
|
||||
<wicket:extend>
|
||||
<div class="prepend-top span-24 last">
|
||||
<div wicket:id="dialog">
|
||||
<div wicket:id="dialogPanel"></div>
|
||||
</div>
|
||||
<div class="prepend-top" wicket:id="dataPanel"></div>
|
||||
</div>
|
||||
</wicket:extend>
|
||||
</body>
|
||||
|
@ -1,13 +1,95 @@
|
||||
package se.su.dsv.scipro.project.pages;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
||||
import org.apache.wicket.PageParameters;
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
|
||||
import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn;
|
||||
import org.apache.wicket.markup.html.panel.EmptyPanel;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||
import org.odlabs.wiquery.ui.dialog.Dialog;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
|
||||
import se.su.dsv.scipro.datatables.ClickableTitleColumn;
|
||||
import se.su.dsv.scipro.datatables.project.GenericDataPanel;
|
||||
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.springdata.services.GenericService;
|
||||
import se.su.dsv.scipro.springdata.services.SupervisorIdeaService;
|
||||
|
||||
|
||||
public class ProjectIdeaStartPage extends AbstractProjectIdeaPage {
|
||||
|
||||
@SpringBean
|
||||
private SupervisorIdeaService ideaService;
|
||||
private Dialog dialog;
|
||||
private GenericDataPanel<SupervisorIdea> genericDataPanel;
|
||||
|
||||
public ProjectIdeaStartPage(PageParameters pp) {
|
||||
super(pp);
|
||||
// TODO Auto-generated constructor stub
|
||||
addDialog();
|
||||
addDataTable();
|
||||
}
|
||||
|
||||
private void addDialog() {
|
||||
dialog = new Dialog("dialog");
|
||||
dialog.setModal(true);
|
||||
dialog.setAutoOpen(false);
|
||||
dialog.setWidth(500);
|
||||
dialog.setHeight(400);
|
||||
dialog.add(new EmptyPanel("dialogPanel"));
|
||||
add(dialog);
|
||||
}
|
||||
|
||||
private void addDataTable() {
|
||||
add(genericDataPanel = new GenericDataPanel<SupervisorIdea>("dataPanel") {
|
||||
|
||||
private static final long serialVersionUID = -4539188306454725307L;
|
||||
|
||||
@Override
|
||||
public GenericService<SupervisorIdea, Long> getService() {
|
||||
return ideaService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSortString() {
|
||||
return "title";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterator<SupervisorIdea> getIterator() {
|
||||
return ideaService.findByStatus(IdeaStatus.WAITING, new PageRequest(getTable().getCurrentPage(),getTable().getRowsPerPage(), getSort())).iterator();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public IColumn[] getColumns() {
|
||||
IColumn[] columns = new IColumn[3];
|
||||
columns[0] = new PropertyColumn<SupervisorIdea>(Model.of("Date"), "dateCreated", "dateCreated");
|
||||
columns[1] = new PropertyColumn<SupervisorIdea>(Model.of("Level"), "projectClass", "projectClass");
|
||||
columns[2] = new ClickableTitleColumn<SupervisorIdea>(Model.of("Title"), "title", "title") {
|
||||
private static final long serialVersionUID = -5826739548812884588L;
|
||||
|
||||
@Override
|
||||
protected void onClick(IModel<SupervisorIdea> ideaModel,
|
||||
AjaxRequestTarget pTarget) {
|
||||
dialog.replace(new AcceptIdeaDialogPanel("dialogPanel", ideaModel, getUser()));
|
||||
dialog.setTitle("Supervisor project idea");
|
||||
pTarget.addComponent(dialog);
|
||||
dialog.open(pTarget);
|
||||
|
||||
}
|
||||
};
|
||||
return columns;
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,32 @@
|
||||
<!DOCTYPE html>
|
||||
<html
|
||||
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
|
||||
<head>
|
||||
<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>
|
||||
</head>
|
||||
<body>
|
||||
<wicket:panel>
|
||||
<form wicket:id="form">
|
||||
<div class="append-bottom"><b>Level: </b><br />
|
||||
<span wicket:id="level"></span>
|
||||
</div>
|
||||
<div class="append-bottom"><b>Required prerequisites:</b><br />
|
||||
<span wicket:id="reqs"></span>
|
||||
</div>
|
||||
<div class="append-bottom"><b>Title:</b><br />
|
||||
<span wicket:id="title"></span>
|
||||
</div>
|
||||
<div class="append-bottom"><b>Description:</b><br />
|
||||
<span wicket:id="description"></span>
|
||||
</div>
|
||||
<div>
|
||||
<wicket:enclosure child="partnerPanel">
|
||||
<b>Partner:</b><br />
|
||||
<div wicket:id="partnerPanel"></div>
|
||||
</wicket:enclosure>
|
||||
<span class="right"><input type="submit" wicket:id="selectButton" value="Select project"/></span>
|
||||
</div>
|
||||
</form>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,84 @@
|
||||
package se.su.dsv.scipro.project.panels;
|
||||
|
||||
import java.util.TreeSet;
|
||||
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.form.Button;
|
||||
import org.apache.wicket.markup.html.form.Form;
|
||||
import org.apache.wicket.markup.html.panel.FeedbackPanel;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||
|
||||
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
|
||||
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.reusable.AddRemoveStudentsPanel;
|
||||
import se.su.dsv.scipro.springdata.services.SupervisorIdeaService;
|
||||
import se.su.dsv.scipro.util.JavascriptEventConfirmation;
|
||||
|
||||
public class AcceptIdeaDialogPanel extends Panel {
|
||||
|
||||
@SpringBean
|
||||
private SupervisorIdeaService ideaService;
|
||||
|
||||
public AcceptIdeaDialogPanel(String id, IModel<SupervisorIdea> model, final User creator) {
|
||||
super(id, model);
|
||||
add(new AcceptIdeaForm("form", model, creator));
|
||||
}
|
||||
|
||||
private static final long serialVersionUID = 29731924490786784L;
|
||||
|
||||
private class AcceptIdeaForm extends Form<SupervisorIdea> {
|
||||
|
||||
private static final long serialVersionUID = -9118352523380756043L;
|
||||
private AddRemoveStudentsPanel partnerPanel;
|
||||
|
||||
public AcceptIdeaForm(String id, final IModel<SupervisorIdea> model, final User creator) {
|
||||
super(id, model);
|
||||
add(new Label("level", model.getObject().getProjectClass().getName()));
|
||||
add(new Label("reqs", model.getObject().getRequirements()));
|
||||
add(new Label("title", model.getObject().getTitle()));
|
||||
add(new Label("description", model.getObject().getDescription()));
|
||||
addPartnerPanel(model);
|
||||
addButton(model, creator);
|
||||
}
|
||||
|
||||
private void addPartnerPanel(IModel<SupervisorIdea> model) {
|
||||
partnerPanel = new AddRemoveStudentsPanel("partnerPanel", new TreeSet<Student>()) {
|
||||
private static final long serialVersionUID = 8432765543881357453L;
|
||||
|
||||
@Override
|
||||
public void onUpdate(AjaxRequestTarget target) {
|
||||
//do nothing
|
||||
}
|
||||
};
|
||||
partnerPanel.setVisible(model.getObject().getProjectClass().getCode().equals(ProjectClass.BACHELOR));
|
||||
add(partnerPanel);
|
||||
}
|
||||
|
||||
private void addButton(final IModel<SupervisorIdea> model, final User creator) {
|
||||
Button button = new Button("selectButton") {
|
||||
|
||||
private static final long serialVersionUID = 8805671593150004137L;
|
||||
|
||||
@Override
|
||||
public void onSubmit() {
|
||||
System.out.println(partnerPanel.getStudentSet());
|
||||
if(ideaService.acceptIdea(model, creator, partnerPanel.getStudentSet())){
|
||||
System.out.println("COOL");
|
||||
} else {
|
||||
System.out.println("ERROR");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
};
|
||||
button.add(new JavascriptEventConfirmation("onClick", "Are you sure you want to select this project idea?"));
|
||||
add(button);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
<!DOCTYPE html>
|
||||
<html
|
||||
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
|
||||
<body>
|
||||
<wicket:extend>
|
||||
<div wicket:id="editPanel"></div>
|
||||
</wicket:extend>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,31 @@
|
||||
package se.su.dsv.scipro.supervisor.pages;
|
||||
|
||||
import org.apache.wicket.PageParameters;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||
|
||||
import se.su.dsv.scipro.components.menuhighlighting.MenuHighlightSupervisorProjectIdea;
|
||||
import se.su.dsv.scipro.match.dataobject.SupervisorIdea;
|
||||
import se.su.dsv.scipro.springdata.services.SupervisorIdeaService;
|
||||
import se.su.dsv.scipro.supervisor.panels.SupervisorEditIdeaPanel;
|
||||
|
||||
public class SupervisorIdeaSubmissionPage extends
|
||||
AbstractSupervisorProjectIdeaPage implements MenuHighlightSupervisorProjectIdea{
|
||||
|
||||
@SpringBean
|
||||
private SupervisorIdeaService ideaService;
|
||||
|
||||
public SupervisorIdeaSubmissionPage(PageParameters pp) {
|
||||
super(pp);
|
||||
Long ideaId = pp.getAsLong("idea");
|
||||
SupervisorIdea idea;
|
||||
if(ideaId!=null)
|
||||
idea = ideaService.findOne(ideaId);
|
||||
else {
|
||||
idea = new SupervisorIdea();
|
||||
}
|
||||
add(new SupervisorEditIdeaPanel("editPanel", getUser(), new Model<SupervisorIdea>(idea)));
|
||||
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user