Refactor and made ui look the same between pages

Change-Id: I85de91350c8eb11d3e6191c205856011a2404c94
This commit is contained in:
mpeters 2011-07-13 15:24:38 +02:00
parent 4b7926cfd3
commit fb77243da1
5 changed files with 50 additions and 61 deletions

@ -31,7 +31,7 @@ public abstract class AbstractAdminSettingsPage extends AbstractAdminPage {
items.add(new MenuItem("General settings", AdminGeneralSettingsPage.class));
items.add(new MenuItem("Final seminar general settings", AdminFinalSeminarSettingsPage.class));
items.add(new MenuItem("Final seminar project level settings", AdminFinalSeminarSettingsPerProjectClassPage.class));
items.add(new MenuItem("Peer settings", AdminPeerSettingsPage.class, ImageIcon.ICON_SETTINGS));
items.add(new MenuItem("Peer settings", AdminPeerSettingsPage.class /*,ImageIcon.ICON_SETTINGS */));
return items;
}

@ -3,17 +3,29 @@
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
<body>
<wicket:extend>
<h3 class="section">Final Seminar Settings</h3>
<form wicket:id="maxActiveParticipationForm">
<p><label>Set max active participants on a final seminar:</label> <input wicket:id="maxActiveParticipation"
type="text" /></p>
<p><label>Set days before a final seminar a student can register as an active participant:</label> <input wicket:id="registerAsActive"
type="text" /></p>
<p><label>Set days before a final seminar a student can register as an opponent:</label> <input wicket:id="registerAsOpponent"
type="text" /></p>
<p><label>The file format of theses and opposition-reports must be PDF:</label> <input type="checkbox" wicket:id="finalSeminarThesisMustBeAPDF" /></p>
<div> <input type="submit" value="Save"
name="NoticeSubmit" /></div>
<h5 class="peer-title">Final Seminar Settings</h5>
<form wicket:id="finalSeminarSettingsForm">
<table>
<tr>
<td><label for="1">Max active participants on a final seminar:</label></td>
<td><input name="1" wicket:id="finalSeminarMaxActiveParticipants" type="text" /></td>
</tr>
<tr>
<td><label for="2">Minimum number of days before a final seminar a student can register as an active participant:</label></td>
<td><input name="2" wicket:id="daysBeforeFinalSeminarCanRegisterAsActiveParticipant" type="text" /></td>
</tr>
<tr>
<td><label for="3">Minimum number of days before a final seminar a student can register as an opponent:</label></td>
<td><input name="3" wicket:id="daysBeforeFinalSeminarCanRegisterAsOpponent" type="text" /></td>
</tr>
<tr>
<td><label for="4">File format of uploaded theses and opposition-reports must be PDF:</label></td>
<td><input name="4" type="checkbox" wicket:id="finalSeminarThesisMustBeAPDF" /></td>
</tr>
</table>
<button type="submit" ><img src="css/blueprint/plugins/buttons/icons/tick.png" alt=""/> Save changes</button>
</form>
</wicket:extend>
</body>

@ -1,73 +1,50 @@
package se.su.dsv.scipro.admin.pages.settings;
import org.apache.wicket.PageParameters;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox;
import org.apache.wicket.markup.html.form.CheckBox;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.RequiredTextField;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.IModel;
import org.apache.wicket.spring.injection.annot.SpringBean;
import se.su.dsv.scipro.admin.models.SettingsModel;
import se.su.dsv.scipro.admin.pages.AbstractAdminSettingsPage;
import se.su.dsv.scipro.data.dao.interfaces.GeneralSystemSettingsDao;
import se.su.dsv.scipro.data.dao.interfaces.ProjectClassDao;
import se.su.dsv.scipro.data.dao.interfaces.ProjectClassSettingsDao;
import se.su.dsv.scipro.data.dataobjects.GeneralSystemSettings;
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
import se.su.dsv.scipro.data.dataobjects.ProjectClassSettings;
public class AdminFinalSeminarSettingsPage extends AbstractAdminSettingsPage {
@SpringBean
private GeneralSystemSettingsDao generalSystemSettingsDao;
private GeneralSystemSettings settings;
public AdminFinalSeminarSettingsPage(final PageParameters pp){
public AdminFinalSeminarSettingsPage(final PageParameters pp) {
super(pp);
add(new MaxActiveParticipationForm("maxActiveParticipationForm"));
add(new FinalSeminarSettingsForm(
"finalSeminarSettingsForm",
new CompoundPropertyModel<GeneralSystemSettings>(generalSystemSettingsDao.getGeneralSystemSettingsInstance())));
}
private class MaxActiveParticipationForm extends Form<SettingsModel> {
private class FinalSeminarSettingsForm extends Form<GeneralSystemSettings> {
private static final long serialVersionUID = 1L;
public MaxActiveParticipationForm(String id) {
super(id, new CompoundPropertyModel<SettingsModel>(
new SettingsModel()));
settings = generalSystemSettingsDao.getGeneralSystemSettingsInstance();
TextField<Integer> activeParticipation = new TextField<Integer>(
"maxActiveParticipation");
TextField<Integer> registerAsActive = new TextField<Integer>(
"registerAsActive");
TextField<Integer> registerAsOpponent = new TextField<Integer>(
"registerAsOpponent");
CheckBox pdfCheckBox = new CheckBox(
"finalSeminarThesisMustBeAPDF");
SettingsModel settingsModel = ((SettingsModel) getDefaultModelObject());
settingsModel.setMaxActiveParticipation(settings.getFinalSeminarMaxActiveParticipants());
settingsModel.setRegisterAsActive(settings.getDaysBeforeFinalSeminarCanRegisterAsActiveParticipant());
settingsModel.setRegisterAsOpponent(settings.getDaysBeforeFinalSeminarCanRegisterAsOpponent());
settingsModel.setFinalSeminarThesisMustBeAPDF(settings.isFinalSeminarThesisMustBeAPDF());
public FinalSeminarSettingsForm(String id, IModel<GeneralSystemSettings> model) {
super(id, model );
TextField<Integer> activeParticipation = new RequiredTextField<Integer>("finalSeminarMaxActiveParticipants");
TextField<Integer> registerAsActive = new RequiredTextField<Integer>("daysBeforeFinalSeminarCanRegisterAsActiveParticipant");
TextField<Integer> registerAsOpponent = new RequiredTextField<Integer>("daysBeforeFinalSeminarCanRegisterAsOpponent");
CheckBox pdfCheckBox = new CheckBox("finalSeminarThesisMustBeAPDF");
add(registerAsActive);
add(registerAsOpponent);
add(activeParticipation);
add(pdfCheckBox);
}
@Override
protected void onSubmit() {
SettingsModel settingsModel = ((SettingsModel) getDefaultModelObject());
settings.setFinalSeminarMaxActiveParticipants(settingsModel.getMaxActiveParticipation());
settings.setDaysBeforeFinalSeminarCanRegisterAsActiveParticipant(settingsModel.getRegisterAsActive());
settings.setDaysBeforeFinalSeminarCanRegisterAsOpponent(settingsModel.getRegisterAsOpponent());
settings.setFinalSeminarThesisMustBeAPDF(settingsModel.isFinalSeminarThesisMustBeAPDF());
generalSystemSettingsDao.save(settings);
setModelObject( generalSystemSettingsDao.save(getModelObject()) );
info("Final seminar settings saved");
}
}

@ -6,7 +6,7 @@
<div class="append-bottom">
<h5 class="peer-title">Settings for levels</h5>
<form wicket:id="peerSettingsForm">
<form wicket:id="settingsForm">
<ul class="no-list-style">
<li wicket:id="projectClassList" class="append-bottom">
<h5 wicket:id="projectClassName" class="peer-box-subtitle"></h5>

@ -23,7 +23,7 @@ public class AdminFinalSeminarSettingsPerProjectClassPage extends AbstractAdminS
public AdminFinalSeminarSettingsPerProjectClassPage(final PageParameters pp){
super(pp);
final Form<Void> peerSettingsForm = new Form<Void>("peerSettingsForm"){
final Form<Void> settingsForm = new Form<Void>("settingsForm"){
private static final long serialVersionUID = 1L;
@Override
@ -32,26 +32,26 @@ public class AdminFinalSeminarSettingsPerProjectClassPage extends AbstractAdminS
}
};
peerSettingsForm.add(new ListView<ProjectClass>("projectClassList", projectClassDao.findAll()){
settingsForm.add(new ListView<ProjectClass>("projectClassList", projectClassDao.findAll()){
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(ListItem<ProjectClass> item) {
item.add(new Label("projectClassName", item.getModelObject().getName()));
item.add(new PeerProjectClassSettingsForm("projectClassSettingsForm", item.getModelObject()));
item.add(new SettingsPerProjectClassForm("projectClassSettingsForm", item.getModelObject()));
add(item);
}
});
peerSettingsForm.add(new Button("submit"));
add(peerSettingsForm);
settingsForm.add(new Button("submit"));
add(settingsForm);
}
private class PeerProjectClassSettingsForm extends Form<ProjectClassSettings> {
private class SettingsPerProjectClassForm extends Form<ProjectClassSettings> {
private static final long serialVersionUID = 1L;
public PeerProjectClassSettingsForm(final String id, final ProjectClass projectClass){
public SettingsPerProjectClassForm(final String id, final ProjectClass projectClass){
super(id, new CompoundPropertyModel<ProjectClassSettings>(projectClass.getProjectClassSettings()));
TextField<Integer> numDaysBetweenPeerReviewsOnSameProject =