some structure changes to make idea submission on a new page instead of a dialog

This commit is contained in:
Emil Siverhall 2012-07-18 14:09:43 +02:00
parent eaeba71038
commit 4aa9bba308
4 changed files with 45 additions and 55 deletions

@ -30,7 +30,7 @@ import se.su.dsv.scipro.supervisor.panels.WatsonInfoPanel;
import java.util.Iterator;
@Authorization(authorizedRoles = {Roles.EMPLOYEE})
public class SupervisorInterestPage extends AbstractSupervisorProjectIdeaPage implements MenuHighlightSupervisorProjectIdea {
public class SupervisorInterestPage extends AbstractSupervisorProjectIdeaPage {
@SpringBean
private ProjectIdeaService projectIdeaService;

@ -4,10 +4,7 @@
<body>
<wicket:extend>
<div wicket:id="feedback"></div>
<div wicket:id="dialog">
<div wicket:id="editPanel"></div>
</div>
<button wicket:id="createIdeaLink">Create new</button>
<button wicket:id="ideaLink">Create new</button>
<div class="prepend-top" wicket:id="dataPanel"></div>
</wicket:extend>
</body>

@ -1,21 +1,22 @@
package se.su.dsv.scipro.supervisor.pages;
import org.apache.wicket.PageParameters;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
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.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
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 se.su.dsv.scipro.datatables.ClickableIconColumn;
import se.su.dsv.scipro.datatables.project.GenericDataPanel;
import se.su.dsv.scipro.icons.ImageIcon;
import se.su.dsv.scipro.match.dataobject.SupervisorIdea;
import se.su.dsv.scipro.springdata.services.GenericService;
import se.su.dsv.scipro.springdata.services.SupervisorIdeaService;
import se.su.dsv.scipro.supervisor.panels.SupervisorEditIdeaPanel;
public class SupervisorProjectIdeaStartPage extends AbstractSupervisorProjectIdeaPage {
@ -23,56 +24,18 @@ public class SupervisorProjectIdeaStartPage extends AbstractSupervisorProjectIde
private SupervisorIdeaService ideaService;
private GenericDataPanel<SupervisorIdea> genericDataPanel;
private FeedbackPanel feedbackPanel;
private Dialog dialog;
public SupervisorProjectIdeaStartPage(PageParameters pp) {
super(pp);
add(feedbackPanel = new FeedbackPanel("feedback"));
feedbackPanel.setOutputMarkupId(true);
addFormDialog();
addSubmissionPageLink();
addDataTable();
}
private void addFormDialog() {
dialog = new Dialog("dialog");
dialog.setModal(true);
dialog.setAutoOpen(false);
dialog.setWidth(500);
dialog.setHeight(675);
dialog.add(new EmptyPanel("editPanel"));
add(dialog);
AjaxLink<Void> newLink = new AjaxLink<Void>("createIdeaLink"){
private static final long serialVersionUID = 8361361680142892340L;
@Override
public void onClick(AjaxRequestTarget target) {
dialog.replace(new SupervisorEditIdeaPanel("editPanel", getUser(), new Model<SupervisorIdea>(new SupervisorIdea())) {
private static final long serialVersionUID = -7322701624342450588L;
@Override
public void onUpdate(AjaxRequestTarget target) {
dialog.close(target);
info("Project idea successfully created");
target.addComponent(feedbackPanel);
target.addComponent(genericDataPanel.getWMC());
}
@Override
public boolean isEditable() {
return true;
}
});
dialog.setTitle("Create new supervisor project idea");
target.addComponent(dialog);
dialog.open(target);
}
};
add(newLink);
private void addSubmissionPageLink() {
BookmarkablePageLink<Void> ideaLink = new BookmarkablePageLink<Void>("ideaLink", SupervisorIdeaSubmissionPage.class);
add(ideaLink);
}
private void addDataTable() {
@ -87,17 +50,46 @@ public class SupervisorProjectIdeaStartPage extends AbstractSupervisorProjectIde
@Override
public String getSortString() {
return "title";
return "dateCreated";
}
@Override
public IColumn[] getColumns() {
IColumn[] columns = new IColumn[5];
IColumn[] columns = new IColumn[7];
columns[0] = new PropertyColumn<SupervisorIdea>(Model.of("Date"), "dateCreated", "dateCreated");
columns[1] = new PropertyColumn<SupervisorIdea>(Model.of("Level"), "projectClass", "projectClass");
columns[2] = new PropertyColumn<SupervisorIdea>(Model.of("Title"), "title", "title");
columns[3] = new PropertyColumn<SupervisorIdea>(Model.of("Creator"), "creator.user.lastName", "creator");
columns[4] = new PropertyColumn<SupervisorIdea>(Model.of("Taken"), "taken");
columns[4] = new PropertyColumn<SupervisorIdea>(Model.of("Status"), "ideaStatus", "ideaStatus");
columns[5] = new ClickableIconColumn<SupervisorIdea>(Model.of("Edit"), null, ImageIcon.ICON_EDIT) {
private static final long serialVersionUID = 1498638150378921520L;
@Override
protected void onClick(IModel<SupervisorIdea> clicked,
AjaxRequestTarget target) {
PageParameters pp = new PageParameters();
pp.put("idea", clicked.getObject().getId());
setResponsePage(SupervisorIdeaSubmissionPage.class, pp);
}
@Override
public boolean shouldBeVisible(IModel<SupervisorIdea> ideaModel) {
return ideaService.isIdeaEditable(ideaModel, getUser());
}
};
columns[6] = new ClickableIconColumn<SupervisorIdea>(Model.of("Delete"), null, ImageIcon.ICON_DELETE) {
private static final long serialVersionUID = 1718924441848355574L;
@Override
protected void onClick(IModel<SupervisorIdea> ideaModel,
AjaxRequestTarget target) {
ideaService.deleteWaitingIdea(ideaModel);
target.addComponent(getWMC());
}
@Override
public boolean shouldBeVisible(IModel<SupervisorIdea> ideaModel) {
return ideaService.isIdeaEditable(ideaModel, getUser());
}
};
return columns;
}

@ -6,6 +6,7 @@ import java.util.List;
import org.apache.wicket.Page;
import se.su.dsv.scipro.components.AbstractMenuPanel;
import se.su.dsv.scipro.components.menuhighlighting.MenuHighlightSupervisorProjectIdea;
import se.su.dsv.scipro.supervisor.pages.AbstractSupervisorProjectIdeaPage;
import se.su.dsv.scipro.supervisor.pages.SupervisorInterestPage;
import se.su.dsv.scipro.supervisor.pages.SupervisorMyProjectIdeasPage;
@ -22,7 +23,7 @@ public class SupervisorProjectIdeaTabMenuPanel extends AbstractMenuPanel{
@Override
protected List<MenuItem> getItemList() {
List<MenuItem> items = new ArrayList<MenuItem>();
items.add(new MenuItem("Supervisor project ideas", SupervisorProjectIdeaStartPage.class));
items.add(new MenuItem("Supervisor project ideas", SupervisorProjectIdeaStartPage.class, MenuHighlightSupervisorProjectIdea.class));
items.add(new MenuItem("Unmatched student project ideas", SupervisorInterestPage.class));
items.add(new MenuItem("My matched student project ideas", SupervisorMyProjectIdeasPage.class));
return items;