From e1a8bb09cfbdafb4d33535f13d7a2ac9d71620d5 Mon Sep 17 00:00:00 2001 From: Fredrik Friis <fred-fri@dsv.su.se> Date: Fri, 24 Feb 2012 19:28:22 +0900 Subject: [PATCH 1/7] added a new profile panel thats halfway done. todo: fix nullpointer for users who are not employees --- .../pages/SupervisorProfilePage.java | 10 +- .../supervisor/panels/ProfilePanel.html | 25 ++++ .../supervisor/panels/ProfilePanel.java | 124 ++++++++++++++++++ 3 files changed, 157 insertions(+), 2 deletions(-) create mode 100644 src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.html create mode 100644 src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java diff --git a/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorProfilePage.java b/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorProfilePage.java index 6a4553170e..c558859256 100644 --- a/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorProfilePage.java +++ b/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorProfilePage.java @@ -1,19 +1,25 @@ package se.su.dsv.scipro.supervisor.pages; import org.apache.wicket.PageParameters; +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())); + add(new ProfilePanel("supervisorProfile", new Model<Employee>(supervisorDao.getFrom(getUser())))); } } diff --git a/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.html b/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.html new file mode 100644 index 0000000000..3eeba9359b --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.html @@ -0,0 +1,25 @@ +<!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>Languages:</label> + <div wicket:id="languagelistview"> + <span wicket:id="languagelabel"></span> <input type="checkbox" + wicket:id="languagecheckbox" /> + </div> + </div> + <div class="append-bottom"> + <label>Regular:</label> + <div wicket:id="regularlistview"> + <span wicket:id="regularlabel"></span> <input type="checkbox" + wicket:id="regularcheckbox" /> + </div> + </div> + + </form> + </wicket:panel> +</body> +</html> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java b/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java new file mode 100644 index 0000000000..0f95f8e359 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java @@ -0,0 +1,124 @@ +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.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; + + 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 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(); + 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())); + } + }); + } + }; + add(regularListView); + +// final KeywordType unitType = keywordTypeDao.findByType(KeywordTypeDao.TYPE.UNIT); + + + + } + } +} From 44b25c139e8d28a81717b3e732518cf716f03a49 Mon Sep 17 00:00:00 2001 From: Fredrik Friis <fred-fri@dsv.su.se> Date: Fri, 24 Feb 2012 19:37:37 +0900 Subject: [PATCH 2/7] adding if statement to supervisorprofilepage --- .../scipro/supervisor/pages/SupervisorProfilePage.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorProfilePage.java b/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorProfilePage.java index c558859256..4a08c2260e 100644 --- a/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorProfilePage.java +++ b/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorProfilePage.java @@ -20,6 +20,12 @@ public class SupervisorProfilePage extends AbstractSupervisorPage { public SupervisorProfilePage(final PageParameters pp){ super(pp); //add(factory.createUserProfilePanelForUser("supervisorProfile",getUser())); - add(new ProfilePanel("supervisorProfile", new Model<Employee>(supervisorDao.getFrom(getUser())))); + if (supervisorDao.getFrom(e)){ + + }get + else { + + } + add(new ProfilePanel("supervisorProfile", new Model<Employee>(supervisorDao.getFrom(getUser())))); } } From 50069ca7eba8b0b67d26281d8df18cda65297f9c Mon Sep 17 00:00:00 2001 From: Fredrik Friis <fred-fri@dsv.su.se> Date: Mon, 27 Feb 2012 10:48:39 +0900 Subject: [PATCH 3/7] almost finished, just need to put the active on the right an inactive on the left --- .../pages/SupervisorProfilePage.java | 13 +- .../supervisor/panels/ProfilePanel.html | 29 ++- .../supervisor/panels/ProfilePanel.java | 181 +++++++++++++----- 3 files changed, 162 insertions(+), 61 deletions(-) diff --git a/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorProfilePage.java b/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorProfilePage.java index 4a08c2260e..e48d9220bb 100644 --- a/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorProfilePage.java +++ b/src/main/java/se/su/dsv/scipro/supervisor/pages/SupervisorProfilePage.java @@ -1,8 +1,10 @@ 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; @@ -20,12 +22,11 @@ public class SupervisorProfilePage extends AbstractSupervisorPage { public SupervisorProfilePage(final PageParameters pp){ super(pp); //add(factory.createUserProfilePanelForUser("supervisorProfile",getUser())); - if (supervisorDao.getFrom(e)){ - - }get - else { - + if (supervisorDao.getFrom(getUser()) == null){ + add(new EmptyPanel("supervisorProfile")); + } + else { + add(new ProfilePanel("supervisorProfile", new Model<Employee>(supervisorDao.getFrom(getUser())))); } - add(new ProfilePanel("supervisorProfile", new Model<Employee>(supervisorDao.getFrom(getUser())))); } } diff --git a/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.html b/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.html index 3eeba9359b..63689dbaad 100644 --- a/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.html +++ b/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.html @@ -5,20 +5,39 @@ <wicket:panel> <form wicket:id="form"> <div class="append-bottom"> - <label>Languages:</label> + <label>Unit:</label> + <div wicket:id="unitlabel"></div> + </div> + <div class="append-bottom"> + <label>Languages: </label> <div wicket:id="languagelistview"> <span wicket:id="languagelabel"></span> <input type="checkbox" wicket:id="languagecheckbox" /> </div> </div> <div class="append-bottom"> - <label>Regular:</label> - <div wicket:id="regularlistview"> - <span wicket:id="regularlabel"></span> <input type="checkbox" - wicket:id="regularcheckbox" /> + <label>Research areas: </label> + <div wicket:id="arealistview"> + <span wicket:id="arealabel"></span> <input type="checkbox" + wicket:id="areacheckbox" /> </div> </div> + <div wicket:id="regularcontainer"> + <div class="append-bottom"> + <label>Regular: </label> + + + <div wicket:id="regularlistview"> + <span wicket:id="regularlabel"></span> <input type="checkbox" + wicket:id="regularcheckbox" /> + </div> + <div wicket:id="regularlistview2"> + <span wicket:id="regularlabel"></span> <input type="checkbox" + wicket:id="regularcheckbox" /> + </div> + </div> + </div> </form> </wicket:panel> </body> diff --git a/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java b/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java index 0f95f8e359..9d96b713a5 100644 --- a/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java +++ b/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java @@ -6,6 +6,7 @@ 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; @@ -29,40 +30,41 @@ import se.su.dsv.scipro.match.dataobject.KeywordType; * Time: 3:07 PM */ public class ProfilePanel extends Panel { - + private static final long serialVersionUID = 1L; - - public ProfilePanel(String id, Model<Employee> employeeModel) { - super(id); - add(new ProfileForm("form", employeeModel)); - } + private WebMarkupContainer regularContainer; - 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); + 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()) { - 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))){ + 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) { @@ -78,26 +80,32 @@ public class ProfilePanel extends Panel { employeeModel.getObject().getCapabilities().setLanguages(languages); employeeModel.setObject(employeeDao.save(employeeModel.getObject())); } - }); - } - }; - add(languageListView); - - - 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; + }); + } + }; + 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 aren't 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() + " (imported from Daisy)")); + } + + final KeywordType areaType = keywordTypeDao.findByType(KeywordTypeDao.TYPE.RESEARCH_AREA); + 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("regularlabel", kw.getKeyword())); - item.add(new AjaxCheckBox("regularcheckbox", new Model<Boolean>(employeeModel.getObject().getKeywords().getFiltered(regularType).contains(kw))){ + item.add(new Label("arealabel", kw.getKeyword())); + 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()); @@ -109,16 +117,89 @@ public class ProfilePanel extends Panel { employeeModel.getObject().getKeywords().setKeywords(oldKeywords); employeeModel.setObject(employeeDao.save(employeeModel.getObject())); + + target.addComponent(regularContainer); } }); } - }; - add(regularListView); - -// final KeywordType unitType = keywordTypeDao.findByType(KeywordTypeDao.TYPE.UNIT); - - - - } - } + }; + 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); + + + } + } } From d5c228389c9f3fab10ced161b6de3ea4b65c6ff0 Mon Sep 17 00:00:00 2001 From: Fredrik Friis <fred-fri@dsv.su.se> Date: Mon, 27 Feb 2012 10:57:55 +0900 Subject: [PATCH 4/7] better markup now --- .../supervisor/panels/ProfilePanel.html | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.html b/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.html index 63689dbaad..7c734a23c1 100644 --- a/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.html +++ b/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.html @@ -22,22 +22,32 @@ wicket:id="areacheckbox" /> </div> </div> - - <div wicket:id="regularcontainer"> - <div class="append-bottom"> - <label>Regular: </label> - - - <div wicket:id="regularlistview"> + + <div><label>Regular: </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 wicket:id="regularlistview2"> + </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> From 981e8dc5cc0998309d1d0d83a2037df0036f55f6 Mon Sep 17 00:00:00 2001 From: Fredrik Friis <fred-fri@dsv.su.se> Date: Mon, 27 Feb 2012 11:39:24 +0900 Subject: [PATCH 5/7] some fixes --- .../supervisor/panels/ProfilePanel.html | 27 ++++++++++--------- .../supervisor/panels/ProfilePanel.java | 15 ++++++++--- 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.html b/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.html index 7c734a23c1..ae28e552c4 100644 --- a/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.html +++ b/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.html @@ -5,35 +5,38 @@ <wicket:panel> <form wicket:id="form"> <div class="append-bottom"> - <label>Unit:</label> + <label>Unit: (imported from Daisy)</label> <div wicket:id="unitlabel"></div> </div> + <div class="append-bottom"> - <label>Languages: </label> + <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 class="append-bottom"> - <label>Research areas: </label> - <div wicket:id="arealistview"> - <span wicket:id="arealabel"></span> <input type="checkbox" - wicket:id="areacheckbox" /> - </div> - </div> - <div><label>Regular: </label></div> + <div><label>Select keywords: </label></div> <div class="span-22 last" wicket:id="regularcontainer"> <div class="span-11"> - <label>Available: </label> + <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> + <label>Selected</label> <div wicket:id="regularlistview2"> <span wicket:id="regularlabel"></span> <input type="checkbox" wicket:id="regularcheckbox" /> diff --git a/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java b/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java index 9d96b713a5..99a5c60794 100644 --- a/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java +++ b/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java @@ -87,19 +87,25 @@ public class ProfilePanel extends Panel { 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 aren't registered under any existing/active unit in Daisy. Please make sure you are registered under an existing/active unit in Daisy ASAP.")); + 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() + " (imported from Daisy)")); + 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 research areas selected in Daisy. Please make sure that you select at least one 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 @@ -117,13 +123,16 @@ public class ProfilePanel extends Panel { employeeModel.getObject().getKeywords().setKeywords(oldKeywords); employeeModel.setObject(employeeDao.save(employeeModel.getObject())); - + target.addComponent(regularContainer); } }); } }; add(areaListView); + // } + + regularContainer = new WebMarkupContainer("regularcontainer"); regularContainer.setOutputMarkupId(true); From 5a91b9d7f372b1992684104efa4bede783e08488 Mon Sep 17 00:00:00 2001 From: Fredrik Friis <fred-fri@dsv.su.se> Date: Mon, 27 Feb 2012 11:42:46 +0900 Subject: [PATCH 6/7] some fixes --- .../java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java b/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java index 99a5c60794..e1fbaa5843 100644 --- a/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java +++ b/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java @@ -95,7 +95,7 @@ public class ProfilePanel extends Panel { final KeywordType areaType = keywordTypeDao.findByType(KeywordTypeDao.TYPE.RESEARCH_AREA); - add(new Label("emptylabel", "You do not have any research areas selected in Daisy. Please make sure that you select at least one research area in Daisy ASAP.").setVisible(employeeModel.getObject().getKeywords().getFiltered(areaType) == null || employeeModel.getObject().getKeywords().getFiltered(areaType).isEmpty())); + 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; From 7cfba3d236c16a3180726fcdaffe2f4d9d9170a3 Mon Sep 17 00:00:00 2001 From: Fredrik Friis <fred-fri@dsv.su.se> Date: Mon, 27 Feb 2012 11:53:35 +0900 Subject: [PATCH 7/7] some fixes --- .../java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java b/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java index e1fbaa5843..08c55fbc08 100644 --- a/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java +++ b/src/main/java/se/su/dsv/scipro/supervisor/panels/ProfilePanel.java @@ -130,9 +130,6 @@ public class ProfilePanel extends Panel { } }; add(areaListView); - // } - - regularContainer = new WebMarkupContainer("regularcontainer"); regularContainer.setOutputMarkupId(true); @@ -208,7 +205,6 @@ public class ProfilePanel extends Panel { }; regularContainer.add(regularListView2); - } } }