research area and unit filtering on match - supervisor settings now uses new filter panel to save space
This commit is contained in:
parent
a1be79e4e5
commit
97e72bb6b4
src/main/java/se/su/dsv/scipro/match/panel
@ -5,26 +5,31 @@
|
||||
<wicket:panel>
|
||||
<form wicket:id="form">
|
||||
<h5 class="peer-title append-bottom">Manage supervisors</h5>
|
||||
<div class="span-22 last">
|
||||
<div class="span-14">
|
||||
<label for="supervisorField">Search using supervisor name:</label><br />
|
||||
<input style="width:300px;" wicket:id="supervisorField" type="text" /><br />
|
||||
<label for="keywordField">Search on keywords used by supervisor:</label><br />
|
||||
<input style="width:300px;" wicket:id="keywordField" type="text" />
|
||||
<div class="span-22 prepend-top append-bottom last">
|
||||
|
||||
<div class="span-5">
|
||||
</div>
|
||||
<div class="span-8 last">
|
||||
<label>DO NOT TOUCH unless you know what you're doing!</label>
|
||||
<div><button wicket:id="resetAllBachelorButton">Reset all supervisor Bachelor count numbers</button></div>
|
||||
<div><button wicket:id="resetAllMasterButton">Reset all supervisor Master count numbers</button></div>
|
||||
</div>
|
||||
<div class="span-20">
|
||||
<div class="span-8">
|
||||
<label for="unitPanel">Filter by unit:</label><br />
|
||||
<span wicket:id="unitPanel"></span>
|
||||
</div>
|
||||
<div class="span-5">
|
||||
<div class="span-10">
|
||||
<label for="researchAreaPanel">Filter by research area:</label>
|
||||
<span wicket:id="researchAreaPanel"></span>
|
||||
</div>
|
||||
<div class="span-5 last append-bottom">
|
||||
<label>Filter</label>
|
||||
</div>
|
||||
<div class="span-5 last">
|
||||
<div class="append-bottom"><input wicket:id="filterButton" type="submit" /></div>
|
||||
<label>DO NOT TOUCH unless you know what you're doing!</label>
|
||||
<div><button wicket:id="resetAllBachelorButton">Reset all supervisor Bachelor count numbers</button></div>
|
||||
<div><button wicket:id="resetAllMasterButton">Reset all supervisor Master count numbers</button></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
package se.su.dsv.scipro.match.panel;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@ -132,6 +133,7 @@ public class AdminManageSupervisorPanel extends Panel {
|
||||
}
|
||||
};
|
||||
dataView.setItemsPerPage(10);
|
||||
emptyLabel.setVisible(dataView.getItemCount()==0);
|
||||
container.add(dataView);
|
||||
container.add(emptyLabel);
|
||||
container.add(new PagingNavigator("nav", dataView));
|
||||
@ -190,8 +192,7 @@ public class AdminManageSupervisorPanel extends Panel {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private TextField<String> supervisorField, keywordField;
|
||||
private FilterFormKeywordPanel unitPanel;
|
||||
private FilterKeywordDropdownPanel researchAreaPanel;
|
||||
private FilterKeywordDropdownPanel researchAreaPanel, unitPanel;
|
||||
|
||||
public FilterForm(String id) {
|
||||
super(id);
|
||||
@ -200,6 +201,11 @@ public class AdminManageSupervisorPanel extends Panel {
|
||||
add(supervisorField);
|
||||
add(keywordField);
|
||||
|
||||
researchAreaPanel = new FilterKeywordDropdownPanel("researchAreaPanel", KeywordTypeDao.TYPE.RESEARCH_AREA);
|
||||
unitPanel = new FilterKeywordDropdownPanel("unitPanel", KeywordTypeDao.TYPE.UNIT);
|
||||
|
||||
add(unitPanel);
|
||||
add(researchAreaPanel);
|
||||
AjaxButton filterButton = new AjaxButton("filterButton", new Model<String>("Filter")) {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
@ -207,10 +213,13 @@ public class AdminManageSupervisorPanel extends Panel {
|
||||
@Override
|
||||
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
|
||||
|
||||
//container.removeAll();
|
||||
//params = new SupervisorDaoParams();
|
||||
List<Keyword> keywords = unitPanel.getSelectedKeywords();
|
||||
keywords.addAll(researchAreaPanel.getSelectedKeywords());
|
||||
Set<Keyword> keywords = new HashSet<Keyword>();
|
||||
if(unitPanel.getSelectedKeywords()!=null&&!unitPanel.getSelectedKeywords().isEmpty()){
|
||||
keywords.addAll(unitPanel.getSelectedKeywords());
|
||||
}
|
||||
if(researchAreaPanel.getSelectedKeywords()!=null&&!researchAreaPanel.getSelectedKeywords().isEmpty()) {
|
||||
keywords.addAll(researchAreaPanel.getSelectedKeywords());
|
||||
}
|
||||
|
||||
KeywordType kwType = keywordTypeDao.findByType(KeywordTypeDao.TYPE.REGULAR);
|
||||
Set<Keyword> tmpWords = keywordDao.getKeywords(kwType, true);
|
||||
@ -222,22 +231,17 @@ public class AdminManageSupervisorPanel extends Panel {
|
||||
|
||||
if(!keywords.isEmpty()){
|
||||
params.setKeywords(keywords);
|
||||
} else {
|
||||
params.setKeywords(null);
|
||||
}
|
||||
|
||||
params.setNameLike(supervisorField.getModelObject());
|
||||
emptyLabel.setVisible(dataView.getItemCount()==0); //Rule for the empty label
|
||||
target.addComponent(container);
|
||||
/* loadUserDataView(new QueryableDataProvider<Employee, SupervisorDaoParams>(
|
||||
supervisorDao, params));*/
|
||||
}
|
||||
};
|
||||
|
||||
unitPanel = new FilterFormKeywordPanel("unitPanel", KeywordTypeDao.TYPE.UNIT);
|
||||
//researchAreaPanel = new FilterFormKeywordPanel("researchAreaPanel", KeywordTypeDao.TYPE.RESEARCH_AREA);
|
||||
researchAreaPanel = new FilterKeywordDropdownPanel("researchAreaPanel", KeywordTypeDao.TYPE.RESEARCH_AREA);
|
||||
|
||||
add(unitPanel);
|
||||
add(researchAreaPanel);
|
||||
|
||||
|
||||
add(filterButton);
|
||||
|
||||
|
@ -10,9 +10,8 @@
|
||||
<div wicket:id="container">
|
||||
<select wicket:id="dropdown"></select>
|
||||
<div wicket:id="listView">
|
||||
<span wicket:id="name"></span><a href="#" wicket:id="removeLink"><img wicket:id="removeIcon" /></a>
|
||||
<span wicket:id="name"></span> <a href="#" wicket:id="removeLink"><img wicket:id="removeIcon" /></a>
|
||||
</div>
|
||||
<!-- <div wicket:id="selectedChoices"></div> -->
|
||||
</div>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
|
@ -1,7 +1,9 @@
|
||||
package se.su.dsv.scipro.match.panel;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
|
||||
@ -22,6 +24,10 @@ import se.su.dsv.scipro.match.dao.interfaces.KeywordTypeDao;
|
||||
import se.su.dsv.scipro.match.dataobject.Keyword;
|
||||
import se.su.dsv.scipro.match.dataobject.KeywordType;
|
||||
|
||||
/**
|
||||
* Keyword filtering component that takes a Keyword type in the constructor.
|
||||
* The component is a multiple choice dropdown, where the selected choices is being rendered underneath the choice component.
|
||||
*/
|
||||
public class FilterKeywordDropdownPanel extends Panel {
|
||||
|
||||
|
||||
@ -29,14 +35,11 @@ public class FilterKeywordDropdownPanel extends Panel {
|
||||
|
||||
@SpringBean
|
||||
private KeywordDao keywordDao;
|
||||
|
||||
@SpringBean
|
||||
private KeywordTypeDao keywordTypeDao;
|
||||
|
||||
private List<Keyword> remoteKeywords, selected;
|
||||
|
||||
private final DropDownChoice<Keyword> dropdown;
|
||||
|
||||
|
||||
public FilterKeywordDropdownPanel(String id, KeywordTypeDao.TYPE type) {
|
||||
super(id);
|
||||
final WebMarkupContainer container = new WebMarkupContainer("container");
|
||||
@ -47,10 +50,9 @@ public class FilterKeywordDropdownPanel extends Panel {
|
||||
params.setType(kwType);
|
||||
params.setIncludeDeleted(true);
|
||||
remoteKeywords = keywordDao.getKeywordList(params);
|
||||
final List<Keyword> selected = new ArrayList<Keyword>();
|
||||
selected = new ArrayList<Keyword>();
|
||||
IModel<Keyword> model = new Model<Keyword>();
|
||||
dropdown = new DropDownChoice<Keyword>("dropdown",model, remoteKeywords);
|
||||
//dropdown.setModel(Model.of(keywords.get(0)));
|
||||
final DropDownChoice<Keyword> dropdown = new DropDownChoice<Keyword>("dropdown",model, remoteKeywords);
|
||||
dropdown.add(new AjaxFormComponentUpdatingBehavior("onchange"){
|
||||
|
||||
private static final long serialVersionUID = 1027524203735088565L;
|
||||
@ -58,7 +60,6 @@ public class FilterKeywordDropdownPanel extends Panel {
|
||||
@Override
|
||||
protected void onUpdate(AjaxRequestTarget target) {
|
||||
selected.add(dropdown.getModelObject());
|
||||
System.out.println(selected);
|
||||
target.addComponent(container);
|
||||
}
|
||||
|
||||
@ -93,6 +94,6 @@ public class FilterKeywordDropdownPanel extends Panel {
|
||||
}
|
||||
|
||||
public List<Keyword> getSelectedKeywords(){
|
||||
return selected;
|
||||
return this.selected;
|
||||
}
|
||||
}
|
||||
|
@ -1,2 +1,2 @@
|
||||
dropdown.nullValid=Choose research area(s)
|
||||
dropdown.null=Choose research area(s)
|
||||
dropdown.nullValid=Choose one or more:
|
||||
dropdown.null=Choose one or more:
|
Loading…
x
Reference in New Issue
Block a user