diff --git a/src/main/java/se/su/dsv/scipro/settings/panels/NotificationPriorityPanel.html b/src/main/java/se/su/dsv/scipro/settings/panels/NotificationPriorityPanel.html new file mode 100644 index 0000000000..50249c3d93 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/settings/panels/NotificationPriorityPanel.html @@ -0,0 +1,13 @@ +<!DOCTYPE html> +<html + xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> +<body> + <wicket:panel> + <div class="prepend-top span-10 last"> + <div><b>What mail do you want mail notifications for?</b></div> + <div wicket:id="notificationPriority"><input type="radio" /> + </div> + </div> + </wicket:panel> +</body> +</html> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/settings/panels/NotificationPriorityPanel.java b/src/main/java/se/su/dsv/scipro/settings/panels/NotificationPriorityPanel.java new file mode 100644 index 0000000000..bab4d0c0f9 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/settings/panels/NotificationPriorityPanel.java @@ -0,0 +1,60 @@ +package se.su.dsv.scipro.settings.panels; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior; +import org.apache.wicket.markup.html.form.RadioChoice; +import org.apache.wicket.markup.html.panel.Panel; +import org.apache.wicket.model.Model; +import org.apache.wicket.model.PropertyModel; +import org.apache.wicket.spring.injection.annot.SpringBean; + +import se.su.dsv.scipro.data.dao.interfaces.UserSettingsDao; +import se.su.dsv.scipro.data.dataobjects.Employee; +import se.su.dsv.scipro.data.dataobjects.User; +import se.su.dsv.scipro.data.dataobjects.UserSettings; +import se.su.dsv.scipro.data.enums.NotificationPriority; + +/** + * + * @author Martin Peters - mpeters@dsv.su.se + * + */ +public class NotificationPriorityPanel extends Panel { + + + private static final long serialVersionUID = 7252421318647800130L; + @SpringBean + private UserSettingsDao userSettingsDao; + private UserSettings userSettings; + + public NotificationPriorityPanel(String id, final Model<Employee> employeeModel) { + super(id); + User employee = employeeModel.getObject().getUser(); + userSettings = userSettingsDao.getUserSettings(employee); + if(userSettings == null) { + userSettings = new UserSettings(employee); + userSettings = userSettingsDao.save(userSettings); + } + NotificationPriority[] array = NotificationPriority.values(); + List<NotificationPriority> notificationPriorities = new ArrayList<NotificationPriority>(Arrays.asList(array)); + + final RadioChoice<NotificationPriority> radioChoice = new RadioChoice<NotificationPriority>("notificationPriority", new PropertyModel<NotificationPriority>(userSettings, "notificationPriority"), notificationPriorities ); + radioChoice.add(new AjaxFormChoiceComponentUpdatingBehavior() { + + private static final long serialVersionUID = 771831218965227566L; + + protected void onUpdate(AjaxRequestTarget target) { + userSettings.setNotificationPriority(radioChoice.getModelObject()); + userSettings = userSettingsDao.save(userSettings); + + } + }); + add(radioChoice); + } + +} + diff --git a/src/main/java/se/su/dsv/scipro/settings/panels/UserSettingsPanel.html b/src/main/java/se/su/dsv/scipro/settings/panels/UserSettingsPanel.html index c4fb0f517d..35c7659115 100644 --- a/src/main/java/se/su/dsv/scipro/settings/panels/UserSettingsPanel.html +++ b/src/main/java/se/su/dsv/scipro/settings/panels/UserSettingsPanel.html @@ -13,11 +13,6 @@ </wicket:enclosure> <i><span wicket:id="noProjectLabel">No projects available..</span></i> </div> - <div class="span-10 last append-bottom"> - <div>What mail do you want mail notifications for?</div> - <div wicket:id="notificationPriority"><input type="radio" /> - </div> - </div> <div class="span-10 last"> <button type="submit" > Save changes</button> </div> diff --git a/src/main/java/se/su/dsv/scipro/settings/panels/UserSettingsPanel.java b/src/main/java/se/su/dsv/scipro/settings/panels/UserSettingsPanel.java index f5524e612a..af5dec833b 100644 --- a/src/main/java/se/su/dsv/scipro/settings/panels/UserSettingsPanel.java +++ b/src/main/java/se/su/dsv/scipro/settings/panels/UserSettingsPanel.java @@ -1,13 +1,11 @@ package se.su.dsv.scipro.settings.panels; -import edu.emory.mathcs.backport.java.util.Arrays; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.DropDownChoice; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.IChoiceRenderer; -import org.apache.wicket.markup.html.form.RadioChoice; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.CompoundPropertyModel; import org.apache.wicket.model.IModel; @@ -18,7 +16,6 @@ import se.su.dsv.scipro.data.dao.interfaces.ProjectDao; import se.su.dsv.scipro.data.dao.interfaces.UserSettingsDao; import se.su.dsv.scipro.data.dataobjects.Project; import se.su.dsv.scipro.data.dataobjects.UserSettings; -import se.su.dsv.scipro.data.enums.NotificationPriority; import se.su.dsv.scipro.data.enums.ProjectStatus; import java.util.ArrayList; @@ -94,26 +91,6 @@ public class UserSettingsPanel extends Panel { Label noProjectLabel = new Label("noProjectLabel","You are not registered as an author on any projects"); add(noProjectLabel); noProjectLabel.setVisible(userProjects.isEmpty()); - - NotificationPriority[] array = NotificationPriority.values(); - @SuppressWarnings("unchecked") List<NotificationPriority> notificationPriorities = new ArrayList<NotificationPriority>(Arrays.asList(array)); - - final RadioChoice<NotificationPriority> radioChoice = new RadioChoice<NotificationPriority>("notificationPriority", new PropertyModel<NotificationPriority>(userSettings, "notificationPriority"), notificationPriorities ); - radioChoice.add(new AjaxFormComponentUpdatingBehavior("onchange") { - - private static final long serialVersionUID = 771831218965227566L; - - protected void onUpdate(AjaxRequestTarget target) { - if(userSettings == null){ - userSettings = new UserSettings(SciProSession.get().getUser()); - userSettings.setNotificationPriority(NotificationPriority.LOW); - } - else { - userSettings.setNotificationPriority(radioChoice.getModelObject()); - } - } - }); - add(radioChoice); } @Override 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 7102203ece..3b6459e4c2 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 @@ -38,6 +38,7 @@ <div class="span-22 last"> <div wicket:id="skwp"></div> </div> + <div wicket:id="priorityPanel"></div> </form> 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 69d11d2e36..9060394a45 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 @@ -27,6 +27,7 @@ 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; import se.su.dsv.scipro.match.dataobject.Match.Type; +import se.su.dsv.scipro.settings.panels.NotificationPriorityPanel; /** * Author: fred @@ -152,6 +153,7 @@ public class ProfilePanel extends Panel { } }); + add(new NotificationPriorityPanel("priorityPanel", employeeModel)); } } }