Merge branch 'develop' of ssh://git.dsv.su.se/git/scipro/scipro into develop

This commit is contained in:
Fredrik Norberg 2011-07-13 15:38:12 +02:00
commit f1dc922ef1
16 changed files with 118 additions and 105 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 =

@ -15,6 +15,7 @@ import se.su.dsv.scipro.admin.pages.ProjectManagementPage;
import se.su.dsv.scipro.admin.pages.SystemMaintenancePage;
import se.su.dsv.scipro.admin.pages.settings.AdminGeneralSettingsPage;
import se.su.dsv.scipro.components.AbstractMenuPanel;
import se.su.dsv.scipro.icons.ImageIcon;
import se.su.dsv.scipro.peer.pages.PeerReviewTemplatePage;
public class AdminTabMenuPanel extends AbstractMenuPanel {
@ -35,7 +36,7 @@ public class AdminTabMenuPanel extends AbstractMenuPanel {
items.add(new MenuItem("System maintenance", SystemMaintenancePage.class));
items.add(new MenuItem("All final seminars", AdminFinalSeminarPage.class));
items.add(new MenuItem("Peer review templates", PeerReviewTemplatePage.class));
items.add(new MenuItem("Settings", AdminGeneralSettingsPage.class));
items.add(new MenuItem("Settings", AdminGeneralSettingsPage.class, ImageIcon.ICON_SETTINGS));
items.add(new MenuItem("Role management", AdminRolePage.class));
items.add(new MenuItem("Project partner", AdminProjectPartnerPage.class));

@ -1,6 +1,13 @@
<!DOCTYPE html>
<html lang="en"
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
<!--[if lt IE 7]> <html class="ie ie6 lte9 lte8 lte7"> <![endif]-->
<!--[if IE 7]> <html class="ie ie7 lte9 lte8 lte7"> <![endif]-->
<!--[if IE 8]> <html class="ie ie8 lte9 lte8"> <![endif]-->
<!--[if IE 9]> <html class="ie ie9 lte9"> <![endif]-->
<!--[if gt IE 9]> <html> <![endif]-->
<!--[if !IE]><!-->
<html lang="en" xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
<!--<![endif]-->
<head>
<meta charset="UTF-8" />
<title wicket:id="pageTitle">SciPro DSV</title>
@ -16,9 +23,7 @@
<!-- <link href='http://fonts.googleapis.com/css?family=Vollkorn' rel='stylesheet' type='text/css' />
<link href='http://fonts.googleapis.com/css?family=Ubuntu:regular,bold' rel='stylesheet' type='text/css' /> -->
<!--<link rel="stylesheet" href="css/scipro.css" media="screen,projection" />-->
<!--[if lte IE 9]>
<link rel="stylesheet" href="css/scipro-ie.css" media="screen,projection" />
<![endif]-->
<!-- <link type="text/css" href="css/smoothness/jquery-ui-1.8.10.custom.css" rel="stylesheet" />
<script type="text/javascript" src="js/jquery-1.5.1.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.10.custom.min.js"></script> -->
@ -30,4 +35,12 @@
<wicket:child />
</div>
</body>
</html>
</html>
<!--[if gt IE 9]> </html> <![endif]-->
<!--[if IE 9]> </html> <![endif]-->
<!--[if IE 8]> </html> <![endif]-->
<!--[if IE 7]> </html> <![endif]-->
<!--[if lt IE 7]> </html> <![endif]-->

@ -52,7 +52,9 @@ public abstract class AbstractMainMenuItem extends Panel {
BookmarkablePageLink<Void> result = new BookmarkablePageLink<Void>(id, targetPageClass, pp);
result.setOutputMarkupId(true);
if(targetPageClass == containerPageClass || (targetPageClass.getSuperclass().isAssignableFrom(containerPageClass) && targetPageClass.getSuperclass() != MenuPage.class) ){
result.setMarkupId("current");
//TODO Should prefereably be replaced with the line below because repeating id's aren't valid html. I couldn't get the CSS to work though //mpeters
result.setMarkupId("current");
//result.add(new AttributeAppender("class", new Model<String>("current"), " "));
}
return result;
}

@ -6,6 +6,7 @@ import java.util.List;
import org.apache.wicket.IClusterable;
import org.apache.wicket.Page;
import org.apache.wicket.PageParameters;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.behavior.SimpleAttributeModifier;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
@ -14,6 +15,7 @@ import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.html.panel.EmptyPanel;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.Model;
import se.su.dsv.scipro.icons.ImageIcon;
@ -55,8 +57,10 @@ public abstract class AbstractMenuPanel extends Panel {
if( (mi.getTargetClass().getSuperclass().isAssignableFrom(containerClass)
&& mi.getTargetClass().getSuperclass() != tabCommonSuperClass)
|| mi.getTargetClass() == containerClass){
item.setMarkupId("current");
item.setOutputMarkupId(true);
//item.setMarkupId("current");
//item.setOutputMarkupId(true);
//Replaced the above because it generates invalid markup if two menus are added to the same page (id no longer unique)
item.add(new AttributeAppender("class", new Model<String>("current"), " "));
}
BookmarkablePageLink<Void> link = new BookmarkablePageLink<Void>("menuItem", mi.getTargetClass(), mi.getPageParameters());

@ -65,6 +65,9 @@ public class ImageIcon extends Image {
if(alt != null){
add(new AttributeAppender("alt", true, new Model<String>(alt), " "));
}
else {
add(new AttributeAppender("alt", true, new Model<String>(name), " "));
}
}
public ImageIcon(String id, String name){

@ -78,15 +78,15 @@
<div wicket:id="mostFrequentPanel" class="append-bottom"></div>
</div>
</wicket:enclosure>
<wicket:enclosure>
<div class="rounded-box">
<div class="rounded-box" wicket:id="bestRatedContainer">
<span class="box-title">Best rated reviewers</span>
<div wicket:id="bestRatedPanel" class="append-bottom"></div>
</div>
<div>
<i><span class="small right">Last 12 months</span></i>
</div>
</wicket:enclosure>
</div>
</div>
</wicket:panel>

@ -6,12 +6,12 @@ import java.util.List;
import org.apache.wicket.PageParameters;
import org.apache.wicket.datetime.PatternDateConverter;
import org.apache.wicket.datetime.markup.html.basic.DateLabel;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.PageableListView;
import org.apache.wicket.markup.html.navigation.paging.PagingNavigator;
import org.apache.wicket.markup.html.panel.EmptyPanel;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.Model;
@ -216,7 +216,7 @@ public class PeerPortalPanel extends Panel {
GeneralSystemSettings gsettings = generalSystemSettingsDao.getGeneralSystemSettingsInstance();
final String mostFrequentPanel = "mostFrequentPanel";
final String bestRatedPanel = "bestRatedPanel";
final String bestRatedContainer = "bestRatedContainer";
if(gsettings.isPeerDisplayNumberOfReviewsPerformed()){
add(new MostFrequentReviewersPanel(mostFrequentPanel));
@ -224,9 +224,9 @@ public class PeerPortalPanel extends Panel {
add(new InvisiblePanel(mostFrequentPanel));
}
if( gsettings.isPeerRatingsEnabled() ){
add(new BestRatedReviewersPanel(bestRatedPanel));
add(new WebMarkupContainer(bestRatedContainer).add(new BestRatedReviewersPanel("bestRatedPanel") ) );
} else {
add(new InvisiblePanel(bestRatedPanel));
add(new InvisiblePanel(bestRatedContainer));
}
}

@ -1,9 +0,0 @@
#main-nav .current a,
#main-nav li:hover > a {
behavior: url('border-radius.htc');
}
/* Checked styles for IE(9) */
span.hilight > input[type=radio]:checked + label { background-color: PaleGreen;}
span.hilight > input[type=checkbox]:checked + label { background-color: PaleGreen;}

@ -438,22 +438,28 @@ ul.multiobject-selected-list li {
.tab-menu {
float:left;
width:100%;
background: url("../images/tab_bg.gif") repeat-x bottom;
font-size:93%;
background: url("../images/tab_bg.png");
font-size: 11px;
line-height:normal;
}
.ie9 .tab-menu {
background: url("../images/tab_bg_ie9.png") !important;
}
.tab-menu ul {
margin:0;
padding: 0px 10px 0;
padding: 0 10px 0;
list-style:none;
}
.tab-menu li {
float:left;
background:url("../images/tab_left.gif") no-repeat left top;
margin:0;
padding:0 0 0 9px;
margin:2px 0 0 0;
padding:0px 0 0 9px;
border-bottom: 1px solid #78645A;
}
.tab-menu a {
float:left;
display:block;
@ -463,6 +469,12 @@ ul.multiobject-selected-list li {
font-weight:bold;
color:#765;
}
.tab-menu img {
height: 12px;
vertical-align:middle;
}
/* Commented Backslash Hack
hides rule from IE5-Mac \*/
.tab-menu a {float:none;}
@ -470,13 +482,14 @@ ul.multiobject-selected-list li {
.tab-menu a:hover {
color:#333;
}
.tab-menu #current {
.tab-menu .current {
background-image:url("../images/tab_left_on.gif");
border-bottom: 1px solid white !important;
}
.tab-menu #current a {
.tab-menu .current a {
background-image:url("../images/tab_right_on.gif");
color:#333;
padding-bottom:5px;
}
.vertical-menu ul {
@ -502,7 +515,7 @@ ul.multiobject-selected-list li {
background-color: #eeeeee;
}
.vertical-menu #current a {
.vertical-menu .current a {
color: black;
background-color: #DDE7EE;
}
@ -534,7 +547,7 @@ ul.multiobject-selected-list li {
border-bottom-color: black;
}
.horizontal-menu #current a {
.horizontal-menu .current a {
border-bottom-color: #2DB300;
}
@ -789,14 +802,11 @@ span.hilight > input + label:hover, span.hilight > input:focus + label {
color: #2C7AD0;
}
/* Highlight checked form components, IE-specific variant in scipro-ie.css */
span.hilight > input[type=radio]:checked + label {
text-shadow: lime 0px 0px 5px;
}
span.hilight > input[type=checkbox]:checked + label {
text-shadow: lime 0px 0px 5px;
}
/* Highlight checked form components, IE9-specific variant below, older IE's don't work */
span.hilight > input[type=radio]:checked + label { text-shadow: lime 0px 0px 5px; }
span.hilight > input[type=checkbox]:checked + label { text-shadow: lime 0px 0px 5px; }
.ie9 span.hilight > input[type=radio]:checked + label { background-color: PaleGreen; }
.ie9 span.hilight > input[type=checkbox]:checked + label { background-color: PaleGreen; }
.question-feedback {
margin-left: 1.5em;

Binary file not shown.

After

(image error) Size: 180 B

Binary file not shown.

After

(image error) Size: 185 B