added ajax behaviors to peer request list panel as well, and removed filter buttons
This commit is contained in:
parent
cddd9f3278
commit
bea57c0249
src/main/java/se/su/dsv/scipro
peer/panels
FilterFormRequestStatusPanel.javaPeerRequestListPanel.htmlPeerRequestListPanel.javaPeerReviewListPanel.html
springdata/serviceimpls
@ -3,6 +3,8 @@ package se.su.dsv.scipro.peer.panels;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||||
|
import org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior;
|
||||||
import org.apache.wicket.markup.html.WebMarkupContainer;
|
import org.apache.wicket.markup.html.WebMarkupContainer;
|
||||||
import org.apache.wicket.markup.html.basic.Label;
|
import org.apache.wicket.markup.html.basic.Label;
|
||||||
import org.apache.wicket.markup.html.form.Check;
|
import org.apache.wicket.markup.html.form.Check;
|
||||||
@ -15,7 +17,7 @@ import org.apache.wicket.model.CompoundPropertyModel;
|
|||||||
import se.su.dsv.scipro.peer.enums.RequestStatus;
|
import se.su.dsv.scipro.peer.enums.RequestStatus;
|
||||||
|
|
||||||
|
|
||||||
public class FilterFormRequestStatusPanel extends Panel {
|
public abstract class FilterFormRequestStatusPanel extends Panel {
|
||||||
|
|
||||||
private static final long serialVersionUID = 8862892008428526067L;
|
private static final long serialVersionUID = 8862892008428526067L;
|
||||||
|
|
||||||
@ -50,6 +52,14 @@ public class FilterFormRequestStatusPanel extends Panel {
|
|||||||
};
|
};
|
||||||
checkGroup.add(statusView);
|
checkGroup.add(statusView);
|
||||||
checkGroup.setOutputMarkupId(true);
|
checkGroup.setOutputMarkupId(true);
|
||||||
|
checkGroup.add(new AjaxFormChoiceComponentUpdatingBehavior(){
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onUpdate(AjaxRequestTarget target) {
|
||||||
|
ajaxUpdate(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
container.add(checkGroup);
|
container.add(checkGroup);
|
||||||
add(container);
|
add(container);
|
||||||
}
|
}
|
||||||
@ -65,4 +75,6 @@ public class FilterFormRequestStatusPanel extends Panel {
|
|||||||
public List<RequestStatus> getSelectedStatuses(){
|
public List<RequestStatus> getSelectedStatuses(){
|
||||||
return (List<RequestStatus>) checkGroup.getModelObject();
|
return (List<RequestStatus>) checkGroup.getModelObject();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public abstract void ajaxUpdate(AjaxRequestTarget target);
|
||||||
}
|
}
|
||||||
|
@ -6,10 +6,12 @@
|
|||||||
|
|
||||||
<div class="span-24 prepend-top last">
|
<div class="span-24 prepend-top last">
|
||||||
<form wicket:id="form">
|
<form wicket:id="form">
|
||||||
|
<div class="span-6">
|
||||||
<label>Filter by requesting author:</label>
|
<label>Filter by requesting author:</label>
|
||||||
<br />
|
<br />
|
||||||
<input wicket:id="filterAuthor" />
|
<input wicket:id="filterAuthor" />
|
||||||
<br />
|
<br />
|
||||||
|
</div>
|
||||||
<div class="span-6" wicket:id="statusFilter"></div>
|
<div class="span-6" wicket:id="statusFilter"></div>
|
||||||
<div class="span-10" wicket:id="supervisorContainer">
|
<div class="span-10" wicket:id="supervisorContainer">
|
||||||
<label>Show only my projects:</label>
|
<label>Show only my projects:</label>
|
||||||
@ -17,9 +19,6 @@
|
|||||||
<input type="checkbox" wicket:id="supervisorCheckBox" />
|
<input type="checkbox" wicket:id="supervisorCheckBox" />
|
||||||
<br />
|
<br />
|
||||||
</div>
|
</div>
|
||||||
<div class="span-20 append-bottom">
|
|
||||||
<input wicket:id="filterButton" type="submit" value="Filter" />
|
|
||||||
</div>
|
|
||||||
</form>
|
</form>
|
||||||
<div class="span-24">
|
<div class="span-24">
|
||||||
<span class="left">Requests found: <span wicket:id="countLabel"></span></span>
|
<span class="left">Requests found: <span wicket:id="countLabel"></span></span>
|
||||||
|
@ -7,7 +7,7 @@ import java.util.Iterator;
|
|||||||
|
|
||||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||||
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
|
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
|
||||||
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
|
import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox;
|
||||||
import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackHeadersToolbar;
|
import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackHeadersToolbar;
|
||||||
import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxNavigationToolbar;
|
import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxNavigationToolbar;
|
||||||
import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
|
import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
|
||||||
@ -16,7 +16,6 @@ import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColu
|
|||||||
import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
|
import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
|
||||||
import org.apache.wicket.markup.html.basic.EnclosureContainer;
|
import org.apache.wicket.markup.html.basic.EnclosureContainer;
|
||||||
import org.apache.wicket.markup.html.basic.Label;
|
import org.apache.wicket.markup.html.basic.Label;
|
||||||
import org.apache.wicket.markup.html.form.CheckBox;
|
|
||||||
import org.apache.wicket.markup.html.form.Form;
|
import org.apache.wicket.markup.html.form.Form;
|
||||||
import org.apache.wicket.markup.html.panel.Panel;
|
import org.apache.wicket.markup.html.panel.Panel;
|
||||||
import org.apache.wicket.model.AbstractReadOnlyModel;
|
import org.apache.wicket.model.AbstractReadOnlyModel;
|
||||||
@ -121,40 +120,50 @@ public class PeerRequestListPanel extends Panel {
|
|||||||
@Override
|
@Override
|
||||||
protected void action(AjaxRequestTarget pTarget, Student newSelection) {
|
protected void action(AjaxRequestTarget pTarget, Student newSelection) {
|
||||||
params.setAuthor(newSelection);
|
params.setAuthor(newSelection);
|
||||||
|
updateTarget(pTarget, params);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
add(authorField);
|
add(authorField);
|
||||||
final FilterFormRequestStatusPanel statusFilter = new FilterFormRequestStatusPanel("statusFilter");
|
final FilterFormRequestStatusPanel statusFilter = new FilterFormRequestStatusPanel("statusFilter") {
|
||||||
|
private static final long serialVersionUID = -6601997321551916230L;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void ajaxUpdate(AjaxRequestTarget target) {
|
||||||
|
if(!getSelectedStatuses().isEmpty()){
|
||||||
|
params.setStatuses(getSelectedStatuses());
|
||||||
|
}
|
||||||
|
updateTarget(target, params);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
params.setStatuses(statusFilter.getSelectedStatuses());
|
||||||
add(statusFilter);
|
add(statusFilter);
|
||||||
final CheckBox supervisorProjects = new CheckBox("supervisorCheckBox", new Model<Boolean>());
|
final AjaxCheckBox supervisorProjects = new AjaxCheckBox("supervisorCheckBox", new Model<Boolean>()) {
|
||||||
|
private static final long serialVersionUID = -7624763782876907386L;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onUpdate(AjaxRequestTarget target) {
|
||||||
|
if(this.getModelObject()){
|
||||||
|
Employee supervisor = supervisorService.findByUser(SciProSession.get().getUser());
|
||||||
|
params.setSupervisor(supervisor);
|
||||||
|
} else {
|
||||||
|
params.setSupervisor(null);
|
||||||
|
}
|
||||||
|
updateTarget(target, params);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
supervisorProjects.setDefaultModelObject(false);
|
supervisorProjects.setDefaultModelObject(false);
|
||||||
supervisorProjects.setVisible(isSupervisorView);
|
supervisorProjects.setVisible(isSupervisorView);
|
||||||
EnclosureContainer cont = new EnclosureContainer("supervisorContainer", supervisorProjects);
|
EnclosureContainer cont = new EnclosureContainer("supervisorContainer", supervisorProjects);
|
||||||
cont.add(supervisorProjects);
|
cont.add(supervisorProjects);
|
||||||
add(cont);
|
add(cont);
|
||||||
|
}
|
||||||
|
|
||||||
add(new AjaxButton("filterButton") { //button to click for performing overriden method
|
private void updateTarget(AjaxRequestTarget pTarget, FilterParams params) {
|
||||||
private static final long serialVersionUID = 1L;
|
dataProvider.setFilterParams(params);
|
||||||
@Override
|
pTarget.addComponent(table);
|
||||||
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
|
pTarget.addComponent(countLabel);
|
||||||
if(authorField.getInput().equals(""))
|
}
|
||||||
params.setAuthor(null);
|
|
||||||
if(!statusFilter.getSelectedStatuses().isEmpty()){
|
|
||||||
params.setStatuses(statusFilter.getSelectedStatuses());
|
|
||||||
}
|
|
||||||
if(supervisorProjects.getModelObject()){
|
|
||||||
Employee supervisor = supervisorService.findByUser(SciProSession.get().getUser());
|
|
||||||
params.setSupervisor(supervisor);
|
|
||||||
} else {
|
|
||||||
params.setSupervisor(null);
|
|
||||||
}
|
|
||||||
dataProvider.setFilterParams(params);
|
|
||||||
target.addComponent(table);
|
|
||||||
target.addComponent(countLabel);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private class PeerRequestProvider extends SortableDataProvider<PeerRequest> {
|
private class PeerRequestProvider extends SortableDataProvider<PeerRequest> {
|
||||||
|
@ -12,8 +12,8 @@
|
|||||||
<input wicket:id="filterAuthor"/>
|
<input wicket:id="filterAuthor"/>
|
||||||
<br/>
|
<br/>
|
||||||
</div>
|
</div>
|
||||||
<div class="span-4" wicket:id="statusFilter"></div>
|
<div class="span-6" wicket:id="statusFilter"></div>
|
||||||
<div class="span-4" wicket:id="supervisorContainer">
|
<div class="span-10" wicket:id="supervisorContainer">
|
||||||
<label>Show only my projects:</label>
|
<label>Show only my projects:</label>
|
||||||
<br>
|
<br>
|
||||||
<input type="checkbox" wicket:id="supervisorCheckBox"/>
|
<input type="checkbox" wicket:id="supervisorCheckBox"/>
|
||||||
|
@ -15,7 +15,6 @@ import org.springframework.data.domain.Pageable;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import se.su.dsv.scipro.SciProSession;
|
|
||||||
import se.su.dsv.scipro.data.dataobjects.Employee;
|
import se.su.dsv.scipro.data.dataobjects.Employee;
|
||||||
import se.su.dsv.scipro.data.dataobjects.Project;
|
import se.su.dsv.scipro.data.dataobjects.Project;
|
||||||
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
|
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
|
||||||
@ -30,7 +29,6 @@ import se.su.dsv.scipro.springdata.services.PeerRequestService;
|
|||||||
|
|
||||||
import com.mysema.query.BooleanBuilder;
|
import com.mysema.query.BooleanBuilder;
|
||||||
import com.mysema.query.jpa.JPQLQuery;
|
import com.mysema.query.jpa.JPQLQuery;
|
||||||
import com.mysema.query.jpa.hibernate.HibernateQuery;
|
|
||||||
import com.mysema.query.jpa.impl.JPAQuery;
|
import com.mysema.query.jpa.impl.JPAQuery;
|
||||||
import com.mysema.query.types.Predicate;
|
import com.mysema.query.types.Predicate;
|
||||||
import com.mysema.query.types.expr.BooleanExpression;
|
import com.mysema.query.types.expr.BooleanExpression;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user