Merge branch 'profile' into develop
This commit is contained in:
commit
da56c4c899
src/main/java/se/su/dsv/scipro/supervisor
@ -1,19 +1,32 @@
|
||||
package se.su.dsv.scipro.supervisor.pages;
|
||||
|
||||
import org.apache.wicket.PageParameters;
|
||||
import org.apache.wicket.markup.html.panel.EmptyPanel;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||
|
||||
import se.su.dsv.scipro.data.dataobjects.Employee;
|
||||
import se.su.dsv.scipro.match.dao.interfaces.SupervisorDao;
|
||||
import se.su.dsv.scipro.security.auth.Authorization;
|
||||
import se.su.dsv.scipro.security.auth.roles.Roles;
|
||||
import se.su.dsv.scipro.supervisor.panels.ProfilePanel;
|
||||
import se.su.dsv.scipro.user.panels.UserProfilePanelFactory;
|
||||
|
||||
@Authorization(authorizedRoles={Roles.EMPLOYEE})
|
||||
//@Authorization(authorizedRoles={Roles.SYSADMIN})
|
||||
public class SupervisorProfilePage extends AbstractSupervisorPage {
|
||||
@SpringBean
|
||||
SupervisorDao supervisorDao;
|
||||
@SpringBean
|
||||
private UserProfilePanelFactory factory;
|
||||
public SupervisorProfilePage(final PageParameters pp){
|
||||
super(pp);
|
||||
add(factory.createUserProfilePanelForUser("supervisorProfile",getUser()));
|
||||
//add(factory.createUserProfilePanelForUser("supervisorProfile",getUser()));
|
||||
if (supervisorDao.getFrom(getUser()) == null){
|
||||
add(new EmptyPanel("supervisorProfile"));
|
||||
}
|
||||
else {
|
||||
add(new ProfilePanel("supervisorProfile", new Model<Employee>(supervisorDao.getFrom(getUser()))));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,57 @@
|
||||
<!DOCTYPE html>
|
||||
<html
|
||||
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
|
||||
<body>
|
||||
<wicket:panel>
|
||||
<form wicket:id="form">
|
||||
<div class="append-bottom">
|
||||
<label>Unit: (imported from Daisy)</label>
|
||||
<div wicket:id="unitlabel"></div>
|
||||
</div>
|
||||
|
||||
<div class="append-bottom">
|
||||
<label>Research areas: (imported from Daisy)</label>
|
||||
<div wicket:id="emptylabel"></div>
|
||||
<div wicket:id="arealistview">
|
||||
<span wicket:id="arealabel"></span>
|
||||
<!-- <input type="checkbox" wicket:id="areacheckbox" /> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="append-bottom">
|
||||
<label>Select what languages you can supervise in: </label>
|
||||
<div wicket:id="languagelistview">
|
||||
<span wicket:id="languagelabel"></span> <input type="checkbox"
|
||||
wicket:id="languagecheckbox" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div><label>Select keywords: </label></div>
|
||||
<div class="span-22 last" wicket:id="regularcontainer">
|
||||
<div class="span-11">
|
||||
<label>Available</label>
|
||||
<div wicket:id="regularlistview">
|
||||
<span wicket:id="regularlabel"></span> <input type="checkbox"
|
||||
wicket:id="regularcheckbox" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="span-11 last">
|
||||
<label>Selected</label>
|
||||
<div wicket:id="regularlistview2">
|
||||
<span wicket:id="regularlabel"></span> <input type="checkbox"
|
||||
wicket:id="regularcheckbox" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</wicket:panel>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,210 @@
|
||||
package se.su.dsv.scipro.supervisor.panels;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox;
|
||||
import org.apache.wicket.markup.html.WebMarkupContainer;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.form.Form;
|
||||
import org.apache.wicket.markup.html.list.ListItem;
|
||||
import org.apache.wicket.markup.html.list.ListView;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||
|
||||
import se.su.dsv.scipro.data.dao.interfaces.LanguageDao;
|
||||
import se.su.dsv.scipro.data.dataobjects.Employee;
|
||||
import se.su.dsv.scipro.data.dataobjects.Language;
|
||||
import se.su.dsv.scipro.match.dao.interfaces.KeywordDao;
|
||||
import se.su.dsv.scipro.match.dao.interfaces.KeywordTypeDao;
|
||||
import se.su.dsv.scipro.match.dao.interfaces.SupervisorDao;
|
||||
import se.su.dsv.scipro.match.dataobject.Keyword;
|
||||
import se.su.dsv.scipro.match.dataobject.KeywordType;
|
||||
|
||||
/**
|
||||
* Author: fred
|
||||
* Date: 2/24/12
|
||||
* Time: 3:07 PM
|
||||
*/
|
||||
public class ProfilePanel extends Panel {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
private WebMarkupContainer regularContainer;
|
||||
|
||||
public ProfilePanel(String id, Model<Employee> employeeModel) {
|
||||
super(id);
|
||||
add(new ProfileForm("form", employeeModel));
|
||||
}
|
||||
|
||||
public class ProfileForm extends Form<Void> {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@SpringBean
|
||||
LanguageDao languageDao;
|
||||
@SpringBean
|
||||
SupervisorDao employeeDao;
|
||||
@SpringBean
|
||||
KeywordTypeDao keywordTypeDao;
|
||||
@SpringBean
|
||||
KeywordDao keywordDao;
|
||||
|
||||
|
||||
public ProfileForm(String id, final Model<Employee> employeeModel) {
|
||||
super(id);
|
||||
|
||||
ListView<Language> languageListView = new ListView<Language>("languagelistview", languageDao.findAll()) {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Override
|
||||
protected void populateItem(ListItem<Language> item) {
|
||||
final Language l = item.getModelObject();
|
||||
item.add(new Label("languagelabel", l.getName()));
|
||||
item.add(new AjaxCheckBox("languagecheckbox", new Model<Boolean>(employeeModel.getObject().getCapabilities().getLanguages().contains(l))){
|
||||
private static final long serialVersionUID = 1L;
|
||||
@Override
|
||||
protected void onUpdate(AjaxRequestTarget target) {
|
||||
Set<Language> languages = employeeModel.getObject().getCapabilities().getLanguages();
|
||||
if (getModelObject()==true){
|
||||
languages.add(l);
|
||||
System.out.println("added language " + l.getName());
|
||||
}
|
||||
else {
|
||||
languages.remove(l);
|
||||
System.out.println("removed language " + l.getName());
|
||||
}
|
||||
employeeModel.getObject().getCapabilities().setLanguages(languages);
|
||||
employeeModel.setObject(employeeDao.save(employeeModel.getObject()));
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
add(languageListView);
|
||||
|
||||
final KeywordType unitType = keywordTypeDao.findByType(KeywordTypeDao.TYPE.UNIT);
|
||||
if (employeeModel.getObject().getKeywords().getFiltered(unitType) == null || employeeModel.getObject().getKeywords().getFiltered(unitType).isEmpty()){
|
||||
add(new Label("unitlabel", "You are not registered under any existing/active unit in Daisy. Please make sure you are registered under an existing/active unit in Daisy ASAP."));
|
||||
}
|
||||
else {
|
||||
add(new Label("unitlabel", employeeModel.getObject().getKeywords().getFiltered(unitType).get(0).getKeyword()));
|
||||
}
|
||||
|
||||
final KeywordType areaType = keywordTypeDao.findByType(KeywordTypeDao.TYPE.RESEARCH_AREA);
|
||||
|
||||
add(new Label("emptylabel", "You do not have any active/existing research areas selected in Daisy. Please make sure that you select at least one active/existing research area in Daisy ASAP.").setVisible(employeeModel.getObject().getKeywords().getFiltered(areaType) == null || employeeModel.getObject().getKeywords().getFiltered(areaType).isEmpty()));
|
||||
|
||||
ListView<Keyword> areaListView = new ListView<Keyword>("arealistview", new ArrayList<Keyword>(keywordDao.getKeywords(areaType, false))){
|
||||
private static final long serialVersionUID = 1L;
|
||||
@Override
|
||||
protected void populateItem(ListItem<Keyword> item) {
|
||||
final Keyword kw = item.getModelObject();
|
||||
item.add(new Label("arealabel", kw.getKeyword()));
|
||||
if (!employeeModel.getObject().getKeywords().getFiltered(areaType).contains(kw)){
|
||||
item.setVisible(false);
|
||||
}
|
||||
item.add(new AjaxCheckBox("areacheckbox", new Model<Boolean>(employeeModel.getObject().getKeywords().getFiltered(areaType).contains(kw))){
|
||||
private static final long serialVersionUID = 1L;
|
||||
@Override
|
||||
protected void onUpdate(AjaxRequestTarget target) {
|
||||
Set<Keyword> oldKeywords = new HashSet<Keyword>(employeeModel.getObject().getKeywords().getAll());
|
||||
|
||||
if (getModelObject()==true){
|
||||
oldKeywords.add(kw);
|
||||
System.out.println("added regular " + kw.getKeyword());
|
||||
}
|
||||
else {
|
||||
oldKeywords.remove(kw);
|
||||
System.out.println("removed regular " + kw.getKeyword());
|
||||
}
|
||||
|
||||
employeeModel.getObject().getKeywords().setKeywords(oldKeywords);
|
||||
employeeModel.setObject(employeeDao.save(employeeModel.getObject()));
|
||||
|
||||
target.addComponent(regularContainer);
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
add(areaListView);
|
||||
|
||||
regularContainer = new WebMarkupContainer("regularcontainer");
|
||||
regularContainer.setOutputMarkupId(true);
|
||||
add(regularContainer);
|
||||
|
||||
final KeywordType regularType = keywordTypeDao.findByType(KeywordTypeDao.TYPE.REGULAR);
|
||||
|
||||
ListView<Keyword> regularListView = new ListView<Keyword>("regularlistview", new ArrayList<Keyword>(keywordDao.getKeywords(regularType, false))){
|
||||
private static final long serialVersionUID = 1L;
|
||||
@Override
|
||||
protected void populateItem(ListItem<Keyword> item) {
|
||||
final Keyword kw = item.getModelObject();
|
||||
if(employeeModel.getObject().getKeywords().getFiltered(regularType).contains(kw)){
|
||||
item.setVisible(false);
|
||||
}
|
||||
item.add(new Label("regularlabel", kw.getKeyword()));
|
||||
item.add(new AjaxCheckBox("regularcheckbox", new Model<Boolean>(employeeModel.getObject().getKeywords().getFiltered(regularType).contains(kw))){
|
||||
private static final long serialVersionUID = 1L;
|
||||
@Override
|
||||
protected void onUpdate(AjaxRequestTarget target) {
|
||||
Set<Keyword> oldKeywords = new HashSet<Keyword>(employeeModel.getObject().getKeywords().getAll());
|
||||
|
||||
if (getModelObject()==true){
|
||||
oldKeywords.add(kw);
|
||||
System.out.println("added regular " + kw.getKeyword());
|
||||
}
|
||||
else {
|
||||
oldKeywords.remove(kw);
|
||||
System.out.println("removed regular " + kw.getKeyword());
|
||||
}
|
||||
|
||||
employeeModel.getObject().getKeywords().setKeywords(oldKeywords);
|
||||
employeeModel.setObject(employeeDao.save(employeeModel.getObject()));
|
||||
|
||||
target.addComponent(regularContainer);
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
regularContainer.add(regularListView);
|
||||
|
||||
ListView<Keyword> regularListView2 = new ListView<Keyword>("regularlistview2", new ArrayList<Keyword>(keywordDao.getKeywords(regularType, false))){
|
||||
private static final long serialVersionUID = 1L;
|
||||
@Override
|
||||
protected void populateItem(ListItem<Keyword> item) {
|
||||
final Keyword kw = item.getModelObject();
|
||||
if(!employeeModel.getObject().getKeywords().getFiltered(regularType).contains(kw)){
|
||||
item.setVisible(false);
|
||||
}
|
||||
item.add(new Label("regularlabel", kw.getKeyword()));
|
||||
item.add(new AjaxCheckBox("regularcheckbox", new Model<Boolean>(employeeModel.getObject().getKeywords().getFiltered(regularType).contains(kw))){
|
||||
private static final long serialVersionUID = 1L;
|
||||
@Override
|
||||
protected void onUpdate(AjaxRequestTarget target) {
|
||||
Set<Keyword> oldKeywords = new HashSet<Keyword>(employeeModel.getObject().getKeywords().getAll());
|
||||
|
||||
if (getModelObject()==true){
|
||||
oldKeywords.add(kw);
|
||||
System.out.println("added regular " + kw.getKeyword());
|
||||
}
|
||||
else {
|
||||
oldKeywords.remove(kw);
|
||||
System.out.println("removed regular " + kw.getKeyword());
|
||||
}
|
||||
|
||||
employeeModel.getObject().getKeywords().setKeywords(oldKeywords);
|
||||
employeeModel.setObject(employeeDao.save(employeeModel.getObject()));
|
||||
|
||||
target.addComponent(regularContainer);
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
regularContainer.add(regularListView2);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user