some structure changes to make idea submission on a new page instead of a dialog
This commit is contained in:
parent
eaeba71038
commit
4aa9bba308
src/main/java/se/su/dsv/scipro/supervisor
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user