diff --git a/src/main/java/se/su/dsv/scipro/admin/pages/AbstractAdminSettingsPage.java b/src/main/java/se/su/dsv/scipro/admin/pages/AbstractAdminSettingsPage.java index c78d650e5e..54746f2ca4 100644 --- a/src/main/java/se/su/dsv/scipro/admin/pages/AbstractAdminSettingsPage.java +++ b/src/main/java/se/su/dsv/scipro/admin/pages/AbstractAdminSettingsPage.java @@ -34,7 +34,7 @@ public abstract class AbstractAdminSettingsPage extends AbstractAdminPage { items.add(new MenuItem("Server Environment", AdminServerEnvironmentSettingsPage.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("Level settings", AdminPeerSettingsPage.class)); + items.add(new MenuItem("Peer portal settings", AdminPeerSettingsPage.class)); items.add(new MenuItem("Edit levels", AdminProjectClassSettingsPage.class)); return items; diff --git a/src/main/java/se/su/dsv/scipro/admin/pages/settings/AdminServerEnvironmentSettingsPage.html b/src/main/java/se/su/dsv/scipro/admin/pages/settings/AdminServerEnvironmentSettingsPage.html index 6772a65c5e..122526fde7 100644 --- a/src/main/java/se/su/dsv/scipro/admin/pages/settings/AdminServerEnvironmentSettingsPage.html +++ b/src/main/java/se/su/dsv/scipro/admin/pages/settings/AdminServerEnvironmentSettingsPage.html @@ -3,15 +3,16 @@ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> <body> <wicket:extend> - <h3 class="section">Server/Request environment</h3> - <div style="overflow:auto;height:390px;"> - <ul> - <li wicket:id="requestAttributes"> - <span wicket:id="name">[name]</span>: - <span wicket:id="value">[value]</span> - </li> - </ul> + <h5 class="peer-title">Server/Request environment</h5> + <div> + <div style="overflow: auto; height: 360px;"> + <ul> + <li wicket:id="requestAttributes"><span wicket:id="name">[name]</span>: + <span wicket:id="value">[value]</span> + </li> + </ul> + </div> </div> -</wicket:extend> + </wicket:extend> </body> </html> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/basepages/BasePage.html b/src/main/java/se/su/dsv/scipro/basepages/BasePage.html index a29f83d2cd..c9cbc78e51 100644 --- a/src/main/java/se/su/dsv/scipro/basepages/BasePage.html +++ b/src/main/java/se/su/dsv/scipro/basepages/BasePage.html @@ -25,10 +25,6 @@ <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" />--> -<!-- <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.2.min.js"></script> - <script type="text/javascript" src="js/jquery-ui-1.8.10.custom.min.js"></script> --> - <script type="text/javascript"> var _gaq = _gaq || []; diff --git a/src/main/java/se/su/dsv/scipro/basepanels/AbstractBaseMenuPanel.java b/src/main/java/se/su/dsv/scipro/basepanels/AbstractBaseMenuPanel.java new file mode 100644 index 0000000000..ee8e09ce82 --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/basepanels/AbstractBaseMenuPanel.java @@ -0,0 +1,16 @@ +package se.su.dsv.scipro.basepanels; + +import org.apache.wicket.Page; + +import se.su.dsv.scipro.components.AbstractMenuPanel; + +public abstract class AbstractBaseMenuPanel extends AbstractMenuPanel { + private static final long serialVersionUID = 3738086567246191811L; + public AbstractBaseMenuPanel(final String id,final Class<? extends Page> menuContainerCommonSuperClass, final Class<? extends Page> containerClass) { + super(id,menuContainerCommonSuperClass,containerClass); + } + @Override + protected MenuType getMenuType() { + return MenuType.TAB; + } +} diff --git a/src/main/java/se/su/dsv/scipro/basepanels/HeaderPanel.html b/src/main/java/se/su/dsv/scipro/basepanels/HeaderPanel.html index 75b642fb2e..f9857256a4 100644 --- a/src/main/java/se/su/dsv/scipro/basepanels/HeaderPanel.html +++ b/src/main/java/se/su/dsv/scipro/basepanels/HeaderPanel.html @@ -1,13 +1,19 @@ <!DOCTYPE html> -<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> +<html + xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> <body> -<wicket:panel> - <header id="main-header" class="span-24"> - <div class="prepend-1 span-5"> - <h1 id="logo"><a href="#" wicket:id="homeLink" title="SciPro">SciPro</a></h1> - </div> - <div wicket:id="mainMenuPanel"></div> - </header> -</wicket:panel> + <wicket:panel> + <header id="main-header" class="span-24"> + <div class="prepend-1 span-5"> + <h1 id="logo"> + <a href="#" wicket:id="homeLink" title="SciPro">SciPro</a> + </h1> + </div> + <div class="prepend-2 span-15 last user-links" + wicket:id="userLinksPanel"></div> + <div wicket:id="mainMenuPanel" class="main-menu prepend-6"></div> + <div wicket:id="serviceMenuPanel" class="service-menu"></div> + </header> + </wicket:panel> </body> </html> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/basepanels/HeaderPanel.java b/src/main/java/se/su/dsv/scipro/basepanels/HeaderPanel.java index e1c3763515..d270f8c03b 100644 --- a/src/main/java/se/su/dsv/scipro/basepanels/HeaderPanel.java +++ b/src/main/java/se/su/dsv/scipro/basepanels/HeaderPanel.java @@ -1,9 +1,7 @@ package se.su.dsv.scipro.basepanels; import org.apache.wicket.Page; -import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.link.BookmarkablePageLink; -import org.apache.wicket.markup.html.panel.EmptyPanel; import org.apache.wicket.markup.html.panel.Panel; import se.su.dsv.scipro.SciProApplication; @@ -14,17 +12,13 @@ import se.su.dsv.scipro.SciProApplication; * */ public class HeaderPanel extends Panel { - private static final long serialVersionUID = 1L; - public HeaderPanel(String id, Class<? extends Page> containerClass) { super(id); - add(new BookmarkablePageLink<Void>("homeLink", SciProApplication.get().getHomePage())); - - MainMenuPanel mainMenuPanel = new MainMenuPanel("mainMenuPanel", containerClass); - add(mainMenuPanel); - + add(new MainMenuPanel("mainMenuPanel", containerClass)); + add(new ServiceMenuPanel("serviceMenuPanel", containerClass)); + add(new UserLinksPanel("userLinksPanel")); } } diff --git a/src/main/java/se/su/dsv/scipro/basepanels/MainMenuPanel.html b/src/main/java/se/su/dsv/scipro/basepanels/MainMenuPanel.html deleted file mode 100644 index 4a61b067fd..0000000000 --- a/src/main/java/se/su/dsv/scipro/basepanels/MainMenuPanel.html +++ /dev/null @@ -1,23 +0,0 @@ -<!DOCTYPE html> -<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> -<body> -<wicket:panel> -<nav id="main-nav"> - <div class="span-18 last"> - <div class="prepend-2 span-15 last" id="user-links" wicket:id="userLinksPanel"></div> - <div class="span-18 last"> - <ul id="nav-list"> - <li class="nav-list-item" id="home-menu-item" wicket:id="homeMenuItem"></li> - <li class="nav-list-item" id="messages-menu-item" wicket:id="messagesMenuItem"></li> - <li class="nav-list-item" id="project-menu-item" wicket:id="projectMenuItem"></li> - <li class="nav-list-item" id="supervisor-menu-item" wicket:id="supervisorMenuItem"></li> - <li class="nav-list-item" id="resources-menu-item" wicket:id="resourcesMenuItem"></li> - <li class="nav-list-item" id="admin-menu-item" wicket:id="adminMenuItem"></li> - </ul> - </div> - </div> - -</nav> -</wicket:panel> -</body> -</html> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/basepanels/MainMenuPanel.java b/src/main/java/se/su/dsv/scipro/basepanels/MainMenuPanel.java index 1598d646fe..9f10150a21 100644 --- a/src/main/java/se/su/dsv/scipro/basepanels/MainMenuPanel.java +++ b/src/main/java/se/su/dsv/scipro/basepanels/MainMenuPanel.java @@ -4,123 +4,25 @@ import java.util.ArrayList; import java.util.List; import org.apache.wicket.Page; -import org.apache.wicket.PageParameters; -import org.apache.wicket.markup.html.link.BookmarkablePageLink; -import org.apache.wicket.markup.html.panel.Panel; -import org.odlabs.wiquery.core.commons.IWiQueryPlugin; -import org.odlabs.wiquery.core.commons.WiQueryResourceManager; -import org.odlabs.wiquery.core.javascript.JsStatement; import se.su.dsv.scipro.HomePage; -import se.su.dsv.scipro.SciProApplication; -import se.su.dsv.scipro.admin.pages.AdminScheduleTemplatesPage; import se.su.dsv.scipro.admin.pages.AdminStartPage; -import se.su.dsv.scipro.admin.pages.ProjectManagementPage; -import se.su.dsv.scipro.admin.pages.SystemMaintenancePage; -import se.su.dsv.scipro.basepages.MenuPage; -import se.su.dsv.scipro.basepanels.mainmenu.MainMenuItem; -import se.su.dsv.scipro.basepanels.mainmenu.MenuItem; -import se.su.dsv.scipro.knol.resource.page.ResourcePage; -import se.su.dsv.scipro.message.pages.PrivateMessagesPage; -import se.su.dsv.scipro.peer.pages.PeerReviewTemplatePage; -import se.su.dsv.scipro.project.pages.FinalSeminarProjectListPage; -import se.su.dsv.scipro.project.pages.ProjectOppositionPage; -import se.su.dsv.scipro.project.pages.ProjectPartnerPage; import se.su.dsv.scipro.project.pages.ProjectStartPage; -import se.su.dsv.scipro.project.pages.ProjectChecklistPage; -import se.su.dsv.scipro.security.auth.MetaDataActionStrategy; -import se.su.dsv.scipro.security.auth.roles.Roles; -import se.su.dsv.scipro.supervisor.pages.SupervisorProjectsFinalSeminarPage; import se.su.dsv.scipro.supervisor.pages.SupervisorStartPage; -import se.su.dsv.scipro.wiquery.mainmenu.MainMenuJavascriptResourceReference; -public class MainMenuPanel extends Panel implements IWiQueryPlugin { +public class MainMenuPanel extends AbstractBaseMenuPanel { private static final long serialVersionUID = 3738086567246191811L; public MainMenuPanel(String id, Class<? extends Page> containerClass) { - super(id); - - add(new MainMenuItem("homeMenuItem", HomePage.MAIN_MENU_LABEL, HomePage.class, containerClass, null)); - - /* - * Messages - */ - MainMenuItem messagesMenuItem = new MainMenuItem("messagesMenuItem", PrivateMessagesPage.MAIN_MENU_LABEL, PrivateMessagesPage.class, containerClass, null); - MetaDataActionStrategy.authorize(messagesMenuItem, Roles.SYSADMIN); // TODO: Hidden for initial deployment - add(messagesMenuItem); - - /* - * Project/Author - */ - List<MenuItem> projectMenuSubItems = new ArrayList<MenuItem>(); - projectMenuSubItems.add(new MenuItem(ProjectStartPage.MAIN_MENU_LABEL, ProjectStartPage.class)); - projectMenuSubItems.add(new MenuItem(ProjectOppositionPage.MAIN_MENU_LABEL, ProjectOppositionPage.class)); - projectMenuSubItems.add(new MenuItem(FinalSeminarProjectListPage.MAIN_MENU_LABEL, FinalSeminarProjectListPage.class)); - MainMenuItem projectMenuItem = new MainMenuItem("projectMenuItem", ProjectStartPage.MAIN_MENU_LABEL, ProjectStartPage.class, containerClass, projectMenuSubItems); - add(projectMenuItem); - - /* - * Supervisor - */ - List<MenuItem> supervisorMenuSubItems = new ArrayList<MenuItem>(); - //supervisorMenuSubItems.add(new MenuItem("Schedule Templates", SupervisorProjectsFinalSeminarPage.class)); - supervisorMenuSubItems.add(new MenuItem(SupervisorStartPage.MAIN_MENU_LABEL, SupervisorStartPage.class)); - supervisorMenuSubItems.add(new MenuItem(SupervisorProjectsFinalSeminarPage.MAIN_MENU_LABEL, SupervisorProjectsFinalSeminarPage.class)); - MainMenuItem supervisorMenuItem = new MainMenuItem("supervisorMenuItem", SupervisorStartPage.MAIN_MENU_LABEL, SupervisorStartPage.class, containerClass, supervisorMenuSubItems); - MetaDataActionStrategy.authorize(supervisorMenuItem, new Roles[]{Roles.EXTERNAL, Roles.EMPLOYEE}); - add(supervisorMenuItem); - - /* - * Resource - */ - MainMenuItem resourcesMenuItem = new MainMenuItem("resourcesMenuItem", ResourcePage.MAIN_MENU_LABEL, ResourcePage.class, containerClass, null); - MetaDataActionStrategy.authorize(resourcesMenuItem, Roles.SYSADMIN ); // TODO: Hidden for initial deployment - add(resourcesMenuItem); - - /* - * Admin - */ - List<MenuItem> adminMenuSubItems = new ArrayList<MenuItem>(); - adminMenuSubItems.add(new MenuItem(AdminScheduleTemplatesPage.MAIN_MENU_LABEL, AdminScheduleTemplatesPage.class)); - adminMenuSubItems.add(new MenuItem(SystemMaintenancePage.MAIN_MENU_LABEL, SystemMaintenancePage.class)); - adminMenuSubItems.add(new MenuItem(ProjectManagementPage.MAIN_MENU_LABEL, ProjectManagementPage.class)); - adminMenuSubItems.add(new MenuItem(PeerReviewTemplatePage.MAIN_MENU_LABEL, PeerReviewTemplatePage.class)); - MainMenuItem adminMenuItem = new MainMenuItem("adminMenuItem", AdminStartPage.MAIN_MENU_LABEL, AdminStartPage.class, containerClass, adminMenuSubItems); - MetaDataActionStrategy.authorize(adminMenuItem, Roles.ADMIN); - add(adminMenuItem); - - UserLinksPanel userLinksPanel = new UserLinksPanel("userLinksPanel"); - add(userLinksPanel); + super(id,HomePage.class,containerClass); } - @Override - public void contribute(WiQueryResourceManager wiQueryResourceManager) { - wiQueryResourceManager.addJavaScriptResource(MainMenuJavascriptResourceReference.get()); - } - - @Override - public JsStatement statement() { - return null; - } - - /** - * @deprecated see {@link se.su.dsv.scipro.basepanels.mainmenu.AbstractMainMenuItem#getMenuLink(String)} - */ - @SuppressWarnings("unused") - private BookmarkablePageLink<Void> getMenuLink(String id, final Class<? extends Page> targetPageClass, final Class<? extends Page> containerClass){ - return getMenuLink(id, targetPageClass, null, containerClass); + protected List<MenuItem> getItemList(){ + List<MenuItem> list = new ArrayList<MenuItem>(); + list.add(new MenuItem(ProjectStartPage.MAIN_MENU_LABEL,ProjectStartPage.class)); + list.add(new MenuItem(SupervisorStartPage.MAIN_MENU_LABEL,SupervisorStartPage.class)); + list.add(new MenuItem(AdminStartPage.MAIN_MENU_LABEL,AdminStartPage.class)); + return list; } - /** - * @deprecated see {@link se.su.dsv.scipro.basepanels.mainmenu.AbstractMainMenuItem#getMenuLink(String, PageParameters)} - */ - private BookmarkablePageLink<Void> getMenuLink(String id, final Class<? extends Page> targetPageClass, final PageParameters pp, final Class<? extends Page> containerClass){ - BookmarkablePageLink<Void> result = new BookmarkablePageLink<Void>(id, targetPageClass, pp); - result.setOutputMarkupId(true); - if(targetPageClass == containerClass || (targetPageClass.getSuperclass().isAssignableFrom(containerClass) && targetPageClass.getSuperclass() != MenuPage.class) ){ - result.setMarkupId("current"); - } - return result; - } - } diff --git a/src/main/java/se/su/dsv/scipro/basepanels/ServiceMenuPanel.java b/src/main/java/se/su/dsv/scipro/basepanels/ServiceMenuPanel.java new file mode 100644 index 0000000000..b88315a26f --- /dev/null +++ b/src/main/java/se/su/dsv/scipro/basepanels/ServiceMenuPanel.java @@ -0,0 +1,24 @@ +package se.su.dsv.scipro.basepanels; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.wicket.Page; + +import se.su.dsv.scipro.basepages.MenuPage; +import se.su.dsv.scipro.knol.resource.page.ResourcePage; +import se.su.dsv.scipro.message.pages.PrivateMessagesPage; + +public class ServiceMenuPanel extends AbstractBaseMenuPanel { + private static final long serialVersionUID = 3738086567246191811L; + public ServiceMenuPanel(String id, Class<? extends Page> containerClass) { + super(id,MenuPage.class,containerClass); + } + @Override + protected List<MenuItem> getItemList(){ + List<MenuItem> list = new ArrayList<MenuItem>(); + list.add(new MenuItem(ResourcePage.MAIN_MENU_LABEL,ResourcePage.class)); + list.add(new MenuItem(PrivateMessagesPage.MAIN_MENU_LABEL,PrivateMessagesPage.class)); + return list; + } +} diff --git a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/AbstractMainMenuItem.java b/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/AbstractMainMenuItem.java deleted file mode 100644 index 4febedf585..0000000000 --- a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/AbstractMainMenuItem.java +++ /dev/null @@ -1,62 +0,0 @@ -package se.su.dsv.scipro.basepanels.mainmenu; - -import org.apache.wicket.Page; -import org.apache.wicket.PageParameters; -import org.apache.wicket.markup.html.link.BookmarkablePageLink; -import org.apache.wicket.markup.html.panel.Panel; - -import se.su.dsv.scipro.basepages.MenuPage; - -/** - * Abstract Class for Main Menu Items - * - * @author patrick - * - */ -public abstract class AbstractMainMenuItem extends Panel { - - private static final long serialVersionUID = 2849283400267381932L; - protected Class<? extends Page> targetPageClass; - protected Class<? extends Page> containerPageClass; - private String menuLabel; - protected BookmarkablePageLink<Void> menuItemLink; - - public AbstractMainMenuItem(String id, String label, Class<? extends Page> targetPageClass, Class<? extends Page> containerPageClass) { - super(id); - this.menuLabel = label; - this.targetPageClass = targetPageClass; - this.containerPageClass = containerPageClass; - } - - public String getMenuLabel() { - return menuLabel; - } - - - /** - * {@link #getMenuLink(String, PageParameters)} - */ - protected BookmarkablePageLink<Void> getMenuLink(String id) { - return getMenuLink(id, null); - } - - /** - * Creates a bookmarkable page link for the main menu. - * - * @param id - * @param pp - * @return - * @author Martin Peters - */ - protected BookmarkablePageLink<Void> getMenuLink(String id, final PageParameters pp) { - BookmarkablePageLink<Void> result = new BookmarkablePageLink<Void>(id, targetPageClass, pp); - result.setOutputMarkupId(true); - if(targetPageClass == containerPageClass || (targetPageClass.getSuperclass().isAssignableFrom(containerPageClass) && targetPageClass.getSuperclass() != MenuPage.class) ){ - //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; - } - -} diff --git a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuItem.html b/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuItem.html deleted file mode 100644 index 53103e9295..0000000000 --- a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuItem.html +++ /dev/null @@ -1,12 +0,0 @@ -<!DOCTYPE html> -<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> -<body> -<wicket:panel> -<span class="menu-item"> - <a wicket:id="mainMenuItemLink"><span wicket:id="mainMenuItemLabel"></span></a> - <img class="nav-arrow" wicket:id="mainMenuItemArrow" /> -</span> -<div class="submenu rounded-bl rounded-br"><span wicket:id="mainMenuListItemSubMenu"><span wicket:id="subMenuItem"></span></span></div> -</wicket:panel> -</body> -</html> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuItem.java b/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuItem.java deleted file mode 100644 index b87b20e291..0000000000 --- a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuItem.java +++ /dev/null @@ -1,79 +0,0 @@ -package se.su.dsv.scipro.basepanels.mainmenu; - -import java.util.List; - -import org.apache.wicket.Page; -import org.apache.wicket.behavior.AttributeAppender; -import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.html.image.ContextImage; -import org.apache.wicket.markup.html.list.ListItem; -import org.apache.wicket.markup.html.list.ListView; -import org.apache.wicket.model.Model; - -/** - * Main Menu Item, the upper level of the main menu hierarchy. - * - * @author patrick - * - */ -public class MainMenuItem extends AbstractMainMenuItem { - - private static final long serialVersionUID = 6103131868992599100L; - - @SuppressWarnings("unused") - private List<MenuItem> subItems; - - public MainMenuItem(String id, String label, final Class<? extends Page> targetPageClass, final Class<? extends Page> containerClass, final List<MenuItem> subItems) { - super(id, label, targetPageClass, containerClass); - this.subItems = subItems; - - if (subItems != null) - this.add(new AttributeAppender("class", true, new Model<String>("parent"), " ")); - - menuItemLink = getMenuLink("mainMenuItemLink"); - menuItemLink.add(new Label("mainMenuItemLabel", getMenuLabel())); - - add(menuItemLink); - - ContextImage mainMenuItemArrow = new ContextImage("mainMenuItemArrow", "images/site_nav_arrow2.png") { - - private static final long serialVersionUID = 1793336840409311960L; - - /* (non-Javadoc) - * @see org.apache.wicket.Component#isVisible() - */ - @Override - public boolean isVisible() { - return subItems != null; - } - - }; - mainMenuItemArrow.setOutputMarkupPlaceholderTag(true); - add(mainMenuItemArrow); - - ListView<MenuItem> subItemListView = new ListView<MenuItem>("mainMenuListItemSubMenu", subItems) { - - private static final long serialVersionUID = -1444218885819118389L; - - @Override - protected void populateItem(ListItem<MenuItem> item) { - MenuItem obj = item.getModelObject(); - item.add(obj.createSubItem("subMenuItem", containerClass)); - add(item); - } - - /* (non-Javadoc) - * @see org.apache.wicket.Component#isVisible() - */ - @Override - public boolean isVisible() { - return subItems != null; - } - - - }; - subItemListView.setOutputMarkupPlaceholderTag(true); - add(subItemListView); - } - -} diff --git a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuSubItem.html b/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuSubItem.html deleted file mode 100644 index 43e852090a..0000000000 --- a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuSubItem.html +++ /dev/null @@ -1,8 +0,0 @@ -<!DOCTYPE html> -<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> -<body> -<wicket:panel> - <a href="#" wicket:id="mainMenuSubItemLink"><span wicket:id="mainMenuSubItemLabel">[Link]</span></a> -</wicket:panel> -</body> -</html> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuSubItem.java b/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuSubItem.java deleted file mode 100644 index 565a880183..0000000000 --- a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MainMenuSubItem.java +++ /dev/null @@ -1,27 +0,0 @@ -package se.su.dsv.scipro.basepanels.mainmenu; - -import org.apache.wicket.Page; -import org.apache.wicket.markup.html.basic.Label; - -/** - * Main Menu Sub Items - * - * @author patrick - * - */ -public class MainMenuSubItem extends AbstractMainMenuItem { - - private static final long serialVersionUID = 8903203088965767242L; - - public MainMenuSubItem(String id, String label, Class<? extends Page> targetPageClass, - Class<? extends Page> containerPageClass) { - super(id, label, targetPageClass, containerPageClass); - - menuItemLink = getMenuLink("mainMenuSubItemLink"); - menuItemLink.add(new Label("mainMenuSubItemLabel", getMenuLabel())); - - add(menuItemLink); - } - - -} diff --git a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MenuItem.java b/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MenuItem.java deleted file mode 100644 index ca12d4b265..0000000000 --- a/src/main/java/se/su/dsv/scipro/basepanels/mainmenu/MenuItem.java +++ /dev/null @@ -1,47 +0,0 @@ -package se.su.dsv.scipro.basepanels.mainmenu; - -import java.util.List; - -import org.apache.wicket.IClusterable; -import org.apache.wicket.Page; - -/** - * Helper Class for preparing the creation of main menu items - * @author patrick - * - */ -public class MenuItem implements IClusterable { - - private static final long serialVersionUID = -5341715569517881163L; - - private String menuLabel; - private Class<? extends Page> targetPageClass; - - public MenuItem(String menuLabel, Class<? extends Page> targetPageClass) { - this.menuLabel = menuLabel; - this.targetPageClass = targetPageClass; - } - - /** - * Creates a Main Menu Sub Item - * - * @param id - * @param containerPageClass - * @return - */ - public MainMenuSubItem createSubItem(String id, Class<? extends Page> containerPageClass) { - return new MainMenuSubItem(id, menuLabel, targetPageClass, containerPageClass); - } - - /** - * Creates a Main Menu Item - * - * @param id - * @param containerPageClass - * @param subItems - * @return - */ - public MainMenuItem createMenuItem(String id, Class<? extends Page> containerPageClass, List<MenuItem> subItems) { - return new MainMenuItem(id, menuLabel, targetPageClass, containerPageClass, subItems); - } -} diff --git a/src/main/java/se/su/dsv/scipro/components/AbstractMenuPanel.java b/src/main/java/se/su/dsv/scipro/components/AbstractMenuPanel.java index 75f046c4e0..1493f65bd0 100644 --- a/src/main/java/se/su/dsv/scipro/components/AbstractMenuPanel.java +++ b/src/main/java/se/su/dsv/scipro/components/AbstractMenuPanel.java @@ -18,6 +18,11 @@ import org.apache.wicket.model.Model; import se.su.dsv.scipro.icons.ImageIcon; +/** + * ABC-class for menu's of different types. + * Subclasses should implement their own data feed mechanics via <code>getItemList</code> and provide a menu type via <code>getMenuType</code> + * The returned menu-type is used to provide CSS-class mappings for the menu structure, see the MenuType enum for alternatives. + */ public abstract class AbstractMenuPanel extends Panel { private static final long serialVersionUID = 1L; @@ -33,6 +38,9 @@ public abstract class AbstractMenuPanel extends Panel { } }; + /** + * Enumeration of supported menu types. + */ public enum MenuType { NONE, TAB, @@ -41,7 +49,12 @@ public abstract class AbstractMenuPanel extends Panel { VERTICAL } - + /** + * Superclass constructor, arguments + * @param id Wicket identifier for the component + * @param menuContainerCommonSuperClass [Needs documentation] + * @param containerClass [Needs documentation] + */ public AbstractMenuPanel(final String id, final Class<? extends Page> menuContainerCommonSuperClass,final Class<? extends Page> containerClass) { super(id); @@ -104,7 +117,10 @@ public abstract class AbstractMenuPanel extends Panel { * @return */ protected abstract List<MenuItem> getItemList(); - + /** + * Implement in subclass to return the wanted MenuType. + * @return + */ protected abstract MenuType getMenuType(); /** diff --git a/src/main/java/se/su/dsv/scipro/conference/panels/ConferencePanel.java b/src/main/java/se/su/dsv/scipro/conference/panels/ConferencePanel.java index cf5a5225ff..083e4f8b85 100644 --- a/src/main/java/se/su/dsv/scipro/conference/panels/ConferencePanel.java +++ b/src/main/java/se/su/dsv/scipro/conference/panels/ConferencePanel.java @@ -92,10 +92,8 @@ public class ConferencePanel extends Panel { webMarkupContainer.setOutputMarkupId(true); webMarkupContainer.add(new PagingNavigator("pagingNavigator", dataView)); add(webMarkupContainer); - if (boardMessageModel != null) { - + if (boardMessageModel != null) { int index = boardMessageDao.getBoardMessageSortOrderIndex(boardMessageModel.getObject()); - System.out.println(index); dataView.setCurrentPage(index/BOARDMESSAGESPERPAGE); } } diff --git a/src/main/java/se/su/dsv/scipro/data/controllers/FinalSeminarUploadController.java b/src/main/java/se/su/dsv/scipro/data/controllers/FinalSeminarUploadController.java index 0c03a098ff..0d2252d6d8 100644 --- a/src/main/java/se/su/dsv/scipro/data/controllers/FinalSeminarUploadController.java +++ b/src/main/java/se/su/dsv/scipro/data/controllers/FinalSeminarUploadController.java @@ -6,11 +6,10 @@ import org.apache.wicket.markup.html.form.upload.FileUpload; import se.su.dsv.scipro.data.dataobjects.FinalSeminar; import se.su.dsv.scipro.data.dataobjects.FinalSeminarOpposition; import se.su.dsv.scipro.data.dataobjects.User; +import se.su.dsv.scipro.repository.util.FileStorageException; public interface FinalSeminarUploadController extends IClusterable { - void deleteSeminarFilesRecursive(FinalSeminar seminar); - void deleteOpponentFiles(FinalSeminarOpposition opp); /** @@ -20,6 +19,15 @@ public interface FinalSeminarUploadController extends IClusterable { * @throws Exception */ FinalSeminar deleteSeminarReport(FinalSeminar seminar) throws Exception; + + /** + * Delete the upload report for the seminar, adminOverrideMode = true means no intentional exceptions will be thrown + * @param seminar + * @param adminOverrideMode + * @return + * @throws Exception + */ + FinalSeminar deleteSeminarReport(FinalSeminar seminar, boolean adminOverrideMode) throws Exception; void storeSeminarDocument(FileUpload upload, User uploader, FinalSeminar seminar) throws Exception; diff --git a/src/main/java/se/su/dsv/scipro/data/controllers/impl/FinalSeminarUploadControllerImpl.java b/src/main/java/se/su/dsv/scipro/data/controllers/impl/FinalSeminarUploadControllerImpl.java index c010bb8378..866dbc8ce7 100644 --- a/src/main/java/se/su/dsv/scipro/data/controllers/impl/FinalSeminarUploadControllerImpl.java +++ b/src/main/java/se/su/dsv/scipro/data/controllers/impl/FinalSeminarUploadControllerImpl.java @@ -78,17 +78,9 @@ public class FinalSeminarUploadControllerImpl implements FinalSeminarUploadContr } private void delete(String path) { - fileRepository.delete(path); } - public void deleteSeminarFilesRecursive(final FinalSeminar seminar) throws FileStorageException { - if (seminar.getDocument() != null) { - //delete(getRepositorySeminarPath(seminar)); Use of deprecated path/method - delete(seminar.getDocument().getPath()); - } - } - public void deleteOpponentFiles(final FinalSeminarOpposition opp) throws FileStorageException { if (opp.getOpponentReport() != null) { //delete(getRepositoryOppositionPath(opp)); Use of deprecated path/method @@ -103,18 +95,31 @@ public class FinalSeminarUploadControllerImpl implements FinalSeminarUploadContr * @return * @throws Exception */ - public FinalSeminar deleteSeminarReport(FinalSeminar seminar) throws Exception { + public FinalSeminar deleteSeminarReport(FinalSeminar seminar) throws Exception{ + return deleteSeminarReport(seminar, false); + } + /** + * Delete the upload report for the seminar, adminOverrideMode = true means no intentional exceptions will be thrown + * @param seminar + * @param adminOverrideMode + * @return + * @throws Exception + */ + public FinalSeminar deleteSeminarReport(FinalSeminar seminar, boolean adminOverrideMode) throws Exception { seminar = finalSeminarDao.reLoad(seminar); - if (!seminar.getOppositions().isEmpty() || !seminar.getActiveParticipations().isEmpty()) { - throw new Exception( - "Cannot delete seminar report, seminar has opponents or active participants"); + if( !adminOverrideMode ){ + if (!seminar.getOppositions().isEmpty() || !seminar.getActiveParticipations().isEmpty()) { + throw new Exception( + "Cannot delete seminar report, seminar has opponents or active participants"); + } } for (CheckPlagiarismEvent cpe : checkPlagiarismEventDao.getWithFileDescription(seminar .getDocument())) { checkPlagiarismEventDao.delete(cpe); } - - fileRepository.delete(seminar.getDocument().getPath()); + if(seminar.getDocument() != null) + if(seminar.getDocument().getPath() != null) + fileRepository.delete(seminar.getDocument().getPath()); seminar.setDocument(null); return finalSeminarDao.save(seminar); } diff --git a/src/main/java/se/su/dsv/scipro/opponent/panels/FinalSeminarDetailsPanel.html b/src/main/java/se/su/dsv/scipro/opponent/panels/FinalSeminarDetailsPanel.html index 4dd16f9bd7..9df136e249 100644 --- a/src/main/java/se/su/dsv/scipro/opponent/panels/FinalSeminarDetailsPanel.html +++ b/src/main/java/se/su/dsv/scipro/opponent/panels/FinalSeminarDetailsPanel.html @@ -2,78 +2,73 @@ <html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> <body> - <wicket:panel> - <div wicket:id="titleContainer"> - <strong>Project Title: </strong> <span wicket:id="projectTitle"></span> - <div> - <strong>Room: </strong> <span wicket:id="room"></span> - </div> - </div> - <div class="append-bottom"> - <div> - <strong>Head supervisor:</strong> - </div> - <span wicket:id="headSupervisor"></span> - </div> - <div> - <strong>Author(s): </strong> - <ul class="no-list-style"> - <li wicket:id="authorsList"><span wicket:id="author"></span></li> - </ul> - </div> +<wicket:panel> + <div wicket:id="feedback"></div> + <div wicket:id="titleContainer"><strong>Project Title: </strong> + <span wicket:id="projectTitle"></span> + <div><strong>Room: </strong> <span wicket:id="room"></span></div> + </div> + <div class="append-bottom"> + <div><strong>Head supervisor:</strong></div> + <span wicket:id="headSupervisor"></span></div> + <div><strong>Author(s): </strong> + <ul class="no-list-style"> + <li wicket:id="authorsList"><span wicket:id="author"></span></li> + </ul> + </div> - <div> - <strong>Co-supervisor(s): </strong> - <ul class="no-list-style"> - <li wicket:id="coSupervisorsList"><span - wicket:id="coSupervisor"></span></li> - </ul> - </div> + <div><strong>Co-supervisor(s): </strong> + <ul class="no-list-style"> + <li wicket:id="coSupervisorsList"><span wicket:id="coSupervisor"></span></li> + </ul> + </div> - <div> - <strong>Reviewer(s): </strong> - <ul class="no-list-style"> - <li wicket:id="reviewersList"><span wicket:id="reviewer"></span> - </li> - </ul> - </div> + <div><strong>Reviewer(s): </strong> + <ul class="no-list-style"> + <li wicket:id="reviewersList"><span wicket:id="reviewer"></span> + </li> + </ul> + </div> - <div wicket:id="detailsContainer"> - <div> - <strong>Opponent(s): </strong> - <ul class="no-list-style"> - <li wicket:id="opponentsList"><span wicket:id="opponent"></span> - </li> - </ul> - </div> - - <div> - <strong>Active participant(s): </strong> - <ul class="no-list-style"> - <li wicket:id="activeParticipantsList"><span - wicket:id="activeParticipant"></span></li> - </ul> - </div> - <div> - <strong>Presentation Language: </strong> - <div wicket:id="seminarLanguage"></div> - </div> - <div> - <strong>Thesis/Report Language: </strong> - <div wicket:id="thesisLanguage"></div> - </div> - - <strong>Thesis/Report: </strong> - <div> - <span wicket:id="seminarReportTitle"></span> <span - wicket:id="uploadInfoContainer"> <a href="#" - wicket:id="open"><img - src="images/icons/document-preview_16x16.png" alt="Open/Preview" /> - </a> <a href="#" wicket:id="download"><img - src="images/icons/download_16x16.png" alt="Download" /> </a> </span> - </div> + <div wicket:id="detailsContainer"> + <div><strong>Opponent(s): </strong> + <ul class="no-list-style"> + <li wicket:id="opponentsList"><span wicket:id="opponent"></span> + <div wicket:id="oppositionContainer"><strong>Report:</strong> <span wicket:id="oppositionReportTitle"></span> <a href="#" + wicket:id="open"><img + src="images/icons/document-preview_16x16.png" alt="Open/Preview" /> + </a> <a href="#" wicket:id="download"><img + src="images/icons/download_16x16.png" alt="Download" /> </a> <a href="#" + wicket:id="deleteOppositionReport"><img + src="images/icons/delete_16x16.png" alt="delete" /> </a> </div> - </wicket:panel> + </li> + </ul> + </div> + + <div><strong>Active participant(s): </strong> + <ul class="no-list-style"> + <li wicket:id="activeParticipantsList"><span + wicket:id="activeParticipant"></span></li> + </ul> + </div> + <div><strong>Presentation Language: </strong> + <div wicket:id="seminarLanguage"></div> + </div> + <div><strong>Thesis/Report Language: </strong> + <div wicket:id="thesisLanguage"></div> + </div> + + <strong>Thesis/Report: </strong> + <div><span wicket:id="seminarReportTitle"></span> <span + wicket:id="uploadInfoContainer"> <a href="#" wicket:id="open"><img + src="images/icons/document-preview_16x16.png" alt="Open/Preview" /> </a> + <a href="#" wicket:id="download"><img + src="images/icons/download_16x16.png" alt="Download" /> </a> <a href="#" + wicket:id="deleteSeminarReport"><img + src="images/icons/delete_16x16.png" alt="delete" /> </a> </span></div> + </div> +</wicket:panel> </body> </html> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/opponent/panels/FinalSeminarDetailsPanel.java b/src/main/java/se/su/dsv/scipro/opponent/panels/FinalSeminarDetailsPanel.java index 172fa064a5..21d74e01be 100644 --- a/src/main/java/se/su/dsv/scipro/opponent/panels/FinalSeminarDetailsPanel.java +++ b/src/main/java/se/su/dsv/scipro/opponent/panels/FinalSeminarDetailsPanel.java @@ -3,16 +3,21 @@ package se.su.dsv.scipro.opponent.panels; import java.util.ArrayList; import java.util.List; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.ajax.markup.html.AjaxLink; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; 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.FeedbackPanel; 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.controllers.FinalSeminarUploadController; import se.su.dsv.scipro.data.dao.interfaces.FinalSeminarDao; +import se.su.dsv.scipro.data.dao.interfaces.FinalSeminarOppositionDao; import se.su.dsv.scipro.data.dataobjects.FinalSeminar; import se.su.dsv.scipro.data.dataobjects.FinalSeminarActiveParticipation; import se.su.dsv.scipro.data.dataobjects.FinalSeminarOpposition; @@ -23,6 +28,9 @@ import se.su.dsv.scipro.data.dataobjects.User; import se.su.dsv.scipro.data.enums.ProjectTeamMemberRoles; import se.su.dsv.scipro.repository.components.FileDownloadLink; import se.su.dsv.scipro.repository.components.FileOpenLink; +import se.su.dsv.scipro.security.auth.MetaDataActionStrategy; +import se.su.dsv.scipro.security.auth.roles.Roles; +import se.su.dsv.scipro.util.JavascriptEventConfirmation; public class FinalSeminarDetailsPanel extends Panel { @@ -30,11 +38,15 @@ public class FinalSeminarDetailsPanel extends Panel { @SpringBean private FinalSeminarDao finalSeminarDao; + @SpringBean + private FinalSeminarOppositionDao finalSeminarOppositionDao; + @SpringBean + private FinalSeminarUploadController finalSeminarUploadController; - public FinalSeminarDetailsPanel(final String id, final FinalSeminar seminar2, - final boolean details) { + public FinalSeminarDetailsPanel(final String id, final FinalSeminar seminar2, final boolean details) { super(id); - + this.setOutputMarkupId(true); + add(new FeedbackPanel("feedback")); final FinalSeminar seminar = finalSeminarDao.reLoad(seminar2); final Project project = seminar.getProject(); WebMarkupContainer titleContainer = new WebMarkupContainer("titleContainer") { @@ -53,8 +65,7 @@ public class FinalSeminarDetailsPanel extends Panel { }); titleContainer.add(new Label("room", seminar.getRoom())); add(titleContainer); - add(new ListView<Student>("authorsList", new ArrayList<Student>( - project.getProjectParticipants())) { + add(new ListView<Student>("authorsList", new ArrayList<Student>(project.getProjectParticipants())) { private static final long serialVersionUID = 1L; @Override @@ -111,41 +122,77 @@ public class FinalSeminarDetailsPanel extends Panel { }; - detailsContainer.add(new ListView<FinalSeminarOpposition>("opponentsList", seminar - .getOppositions()) { + detailsContainer.add(new ListView<FinalSeminarOpposition>("opponentsList", seminar.getOppositions()) { private static final long serialVersionUID = 1L; @Override - protected void populateItem(ListItem<FinalSeminarOpposition> item) { - item.add(item.getModelObject().getOpponent().getUser() - .getDisplayComponent("opponent", true)); + protected void populateItem(final ListItem<FinalSeminarOpposition> item) { + item.add(item.getModelObject().getOpponent().getUser().getDisplayComponent("opponent", true)); + WebMarkupContainer oppCon = new WebMarkupContainer("oppositionContainer"){ + private static final long serialVersionUID = 1L; + + @Override + public boolean isVisible(){ + return item.getModelObject().getOpponentReport() != null; + } + }; + //Students are not allowed to view other students opposition reports + MetaDataActionStrategy.authorize(oppCon, Roles.EMPLOYEE); + item.add(oppCon); + + String reportTitle = ""; + if(item.getModelObject().getOpponentReport() != null) + reportTitle = item.getModelObject().getOpponentReport().getName(); + oppCon.add(new Label("oppositionReportTitle", reportTitle)); + + oppCon.add(new FileDownloadLink("download", item.getModelObject().getOpponentReport())); + oppCon.add(new FileOpenLink("open", item.getModelObject().getOpponentReport())); + oppCon.add(new AjaxLink<Void>("deleteOppositionReport"){ + private static final long serialVersionUID = 1L; + { + MetaDataActionStrategy.authorize(this, Roles.ADMIN); + this.add(new JavascriptEventConfirmation("onclick", "Do you really want to delete this user-uploaded report?")); + } + + @Override + public void onClick(AjaxRequestTarget target) { + try{ + finalSeminarUploadController.deleteOpponentFiles(item.getModelObject()); + FinalSeminarOpposition opp = item.getModelObject(); + opp.setOpponentReport(null); + opp = finalSeminarOppositionDao.save(opp); + item.setModelObject(opp); + info("Opposition report deleted"); + } catch(Exception e){ + e.printStackTrace(); + error("Something went wrong, see log files for stacktrace"); + } + target.addComponent(FinalSeminarDetailsPanel.this); + } + }); add(item); } }); - detailsContainer.add(new ListView<FinalSeminarActiveParticipation>( - "activeParticipantsList", seminar.getActiveParticipations()) { + detailsContainer.add(new ListView<FinalSeminarActiveParticipation>("activeParticipantsList", seminar.getActiveParticipations()) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<FinalSeminarActiveParticipation> item) { - item.add(item.getModelObject().getUser() - .getDisplayComponent("activeParticipant", true)); + item.add(item.getModelObject().getUser().getDisplayComponent("activeParticipant", true)); add(item); } }); - detailsContainer.add(new Label("seminarLanguage", seminar.getPresentationLanguage() - .toString())); + detailsContainer.add(new Label("seminarLanguage", seminar.getPresentationLanguage().toString())); detailsContainer.add(new Label("thesisLanguage", seminar.getReportLanguage().toString())); detailsContainer.add(new Label("seminarReportTitle", new Model<String>() { private static final long serialVersionUID = 1L; @Override public String getObject() { - return seminar.getDocument() == null ? "No thesis/report uploaded" : seminar - .getDocument().getName(); + return seminar.getDocument() == null ? "No thesis/report uploaded" : seminar.getDocument().getName(); } })); @@ -161,6 +208,27 @@ public class FinalSeminarDetailsPanel extends Panel { uploadInfoContainer.add(new FileDownloadLink("download", seminar.getDocument())); uploadInfoContainer.add(new FileOpenLink("open", seminar.getDocument())); + uploadInfoContainer.add(new AjaxLink<Void>("deleteSeminarReport") { + private static final long serialVersionUID = 1L; + { + MetaDataActionStrategy.authorize(this, Roles.ADMIN); + this.add(new JavascriptEventConfirmation("onclick", "Do you really want to delete this user-uploaded report?")); + } + + @Override + public void onClick(AjaxRequestTarget target) { + try { + finalSeminarUploadController.deleteSeminarReport(seminar, true); + seminar.setDocument(null); //Only to repaint the ajax call without the document icons + info("Report deleted"); + } catch (Exception e) { + e.printStackTrace(); + error("Deletion failed"); + } + target.addComponent(FinalSeminarDetailsPanel.this); + } + }); + detailsContainer.add(uploadInfoContainer); add(detailsContainer); diff --git a/src/main/java/se/su/dsv/scipro/opponent/panels/OpponentListViewPanel.html b/src/main/java/se/su/dsv/scipro/opponent/panels/OpponentListViewPanel.html index e1b8c0eed1..acc47fd40b 100644 --- a/src/main/java/se/su/dsv/scipro/opponent/panels/OpponentListViewPanel.html +++ b/src/main/java/se/su/dsv/scipro/opponent/panels/OpponentListViewPanel.html @@ -5,6 +5,7 @@ <wicket:panel> <div class="span-22 prepend-top last"> + <div wicket:id="feedback"></div> <table class="rounded-table seminar-table even-rows"> <tr> <th>Date</th> diff --git a/src/main/java/se/su/dsv/scipro/opponent/panels/OpponentListViewPanel.java b/src/main/java/se/su/dsv/scipro/opponent/panels/OpponentListViewPanel.java index 2132c6d34b..b8bca3392b 100644 --- a/src/main/java/se/su/dsv/scipro/opponent/panels/OpponentListViewPanel.java +++ b/src/main/java/se/su/dsv/scipro/opponent/panels/OpponentListViewPanel.java @@ -47,8 +47,8 @@ import se.su.dsv.scipro.opponent.models.OpponentModel; public class OpponentListViewPanel extends Panel { /** - * - */ + * + */ private static final long serialVersionUID = 4988253889884804250L; @SpringBean @@ -76,6 +76,10 @@ public class OpponentListViewPanel extends Panel { super(id); this.adminView = adminView; loadListView(seminarList); + feedbackPanel = new FeedbackPanel("feedback"); + add(feedbackPanel); + this.setOutputMarkupId(true); + editSeminarDialogContainer = new WebMarkupContainer("dialogContainer"); editSeminarDialog = new Dialog("dialog"); editSeminarDialog.setModal(true); @@ -96,7 +100,7 @@ public class OpponentListViewPanel extends Panel { add(contactsSeminarDialog); contactsDialogContainer.setOutputMarkupId(true); contactsDialogContainer.add(contactsSeminarForm = new ContactsSeminarForm( - "contactsSeminarForm")); + "contactsSeminarForm")); contactsSeminarForm.setOutputMarkupId(true); add(linkListView); @@ -125,7 +129,7 @@ public class OpponentListViewPanel extends Panel { User headSupervisor = seminar.getProject().getHeadSupervisor().getUser(); headSupervisorString += headSupervisor.getFirstName() + " " - + headSupervisor.getLastName(); + + headSupervisor.getLastName(); item.add(new Label("headSupervisor", headSupervisorString)); item.add(new Label("projectClass", seminar.getProject().getProjectClass().getName())); @@ -191,20 +195,25 @@ public class OpponentListViewPanel extends Panel { @Override public void onClick(AjaxRequestTarget target) { FinalSeminar seminar2 = finalSeminarDao.reLoad(seminar); - seminarUploadController.deleteSeminarFilesRecursive(seminar2); - for (FinalSeminarActiveParticipation al : seminar2 - .getActiveParticipations()) { - finalSeminarActiveParticipationDao.delete(al); - } + try{ + seminarUploadController.deleteSeminarReport(seminar2, true); + for (FinalSeminarActiveParticipation al : seminar2 + .getActiveParticipations()) { + finalSeminarActiveParticipationDao.delete(al); + } - for (FinalSeminarOpposition fso : seminar2 - .getOppositions()) { - seminarUploadController.deleteOpponentFiles(fso); - finalSeminarOppositionDao.delete(fso); + for (FinalSeminarOpposition fso : seminar2 + .getOppositions()) { + seminarUploadController.deleteOpponentFiles(fso); + finalSeminarOppositionDao.delete(fso); + } + finalSeminarDao.delete(seminar2); + info("Final seminar deleted"); + } catch (Exception e){ + error("Something went wrong, see logs for stacktrace"); + e.printStackTrace(); } - finalSeminarDao.delete(seminar2); - setResponsePage(AdminFinalSeminarPage.class); - + target.addComponent(OpponentListViewPanel.this); } @Override @@ -227,7 +236,7 @@ public class OpponentListViewPanel extends Panel { @Override public CharSequence decorateScript(CharSequence script) { String ret = "if(!confirm('The attendees of this seminar will NOT be notified that the seminar has been deleted, are you sure you wish to delete it?')) return false; " - + script; + + script; return ret; } }; @@ -243,8 +252,8 @@ public class OpponentListViewPanel extends Panel { private class EditSeminarForm extends Form<OpponentModel> { /** - * - */ + * + */ private static final long serialVersionUID = -5004827722926732419L; public EditSeminarForm(String name) { @@ -257,8 +266,8 @@ public class OpponentListViewPanel extends Panel { private class EditForm extends Form<Void> { /** - * - */ + * + */ private static final long serialVersionUID = 5882957818616996808L; public EditForm(String name, final FinalSeminar seminar) { @@ -290,8 +299,8 @@ public class OpponentListViewPanel extends Panel { private class ContactsSeminarForm extends Form<OpponentModel> { /** - * - */ + * + */ private static final long serialVersionUID = -5004827722926732419L; public ContactsSeminarForm(String name) { @@ -306,8 +315,8 @@ public class OpponentListViewPanel extends Panel { private class ContactsForm extends Form<Void> { /** - * - */ + * + */ private static final long serialVersionUID = -8271761600388217566L; public ContactsForm(String name, final FinalSeminar seminar) { @@ -316,8 +325,8 @@ public class OpponentListViewPanel extends Panel { add(new AjaxButton("contacts", new Model<String>("Details")) { /** - * - */ + * + */ private static final long serialVersionUID = 1211337464815824507L; @Override diff --git a/src/main/java/se/su/dsv/scipro/opponent/panels/ProjectFinalSeminarPanel.java b/src/main/java/se/su/dsv/scipro/opponent/panels/ProjectFinalSeminarPanel.java index aaa19fdec7..1f5223261e 100644 --- a/src/main/java/se/su/dsv/scipro/opponent/panels/ProjectFinalSeminarPanel.java +++ b/src/main/java/se/su/dsv/scipro/opponent/panels/ProjectFinalSeminarPanel.java @@ -221,7 +221,7 @@ public class ProjectFinalSeminarPanel extends Panel { public boolean isVisible() { return !isSupervisorView && seminar.getActiveParticipations().isEmpty() - && seminar.getOppositions().isEmpty() && seminar.getTurnitinId() != null; + && seminar.getOppositions().isEmpty() && seminar.getTurnitinId() == null; } @Override diff --git a/src/main/java/se/su/dsv/scipro/peer/pages/PeerRequestSubmissionPage.html b/src/main/java/se/su/dsv/scipro/peer/pages/PeerRequestSubmissionPage.html index f631ee2539..77ceb00a1d 100644 --- a/src/main/java/se/su/dsv/scipro/peer/pages/PeerRequestSubmissionPage.html +++ b/src/main/java/se/su/dsv/scipro/peer/pages/PeerRequestSubmissionPage.html @@ -1,86 +1,102 @@ <!DOCTYPE html> -<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> +<html + xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> <body> -<wicket:extend> - <div class="span-22"> - <div wicket:id="feedbackPanel"></div> - <form wicket:id="requestForm" class="wizard-form"> - <div class="span-22 last"> - <div class="span-11 colborder"> - <div> - <fieldset> - <legend>Step 1 - Read instructions</legend> - <p>The instructions are located in the box to the right</p> - </fieldset> - <fieldset> - <legend wicket:id="fileUploadLabel">[Step 2 - Attach a file]</legend> - <input wicket:id="fileUpload" type="file" /> - </fieldset> - <fieldset> - <legend>Step 3 - Write review guideline/comment (optional)</legend> - <textarea wicket:id="comment"></textarea> - </fieldset> - </div> - </div> - <div class="span-8 last info-box rounded-box"> - <ul> - <li><p>Providing a review template is of great help for the reviewer, browse available templates and try to find an appropriate one!</p></li> - <li><p>If you cannot find an suitable review template, make sure to use the review guideline/comment to point out what you'd like feedback on.</p></li> - <li><p>If a review template covers too much, make sure to point out questions that you don't feel like they apply</p></li> - <li><p>If you're missing relevant questions in the review template, make sure to mention them in the comment.</p></li> - <li><p>If you have several files you'd like to attach, compress them to an archived file (ie. zip-file).</p></li> - <li><p><strong>Remember that the more guidelines (review template, questions you'd like answered etc.) you provide the reviewer, the greater the chance of a useful review!</strong></p></li> - </ul> + <wicket:extend> + <div class="span-22"> + <div wicket:id="feedbackPanel"></div> + <form wicket:id="requestForm" class="wizard-form"> + <div class="span-22"> + <div> + <h5 class="peer-title">Step 1 - Read instructions</h5> + <ul> + <li>Providing a review template is of great help for the + reviewer, browse available templates and try to find an + appropriate one!</li> + <li>If you cannot find an suitable review template, make + sure to use the review guideline/comment to point out what you'd + like feedback on.</li> + <li>If a review template covers too much, make sure to point + out questions that you don't feel like they apply</li> + <li>If you're missing relevant questions in the review + template, make sure to mention them in the comment.</li> + <li>If you have several files you'd like to attach, compress + them to an archived file (ie. zip-file).</li> + <li>Remember that the more guidelines (review template, + questions you'd like answered etc.) you provide the reviewer, + the greater the chance of a useful review!</li> + </ul> + </div> + <div class="span-22 forcedPaddingBottom"> + <div class="span-11 first"> + <h5 class="peer-title" wicket:id="fileUploadLabel">[Step 2 - + Attach a file]</h5> + <input wicket:id="fileUpload" type="file" style="margin-top:2em;"/> + </div> + <div class="span-11 last"> + <h5 class="peer-title">Step 3 - Write review + guideline/comment (optional)</h5> + <textarea wicket:id="comment"></textarea> + </div> + </div> </div> - </div> - <div class="span-22 last"> - <fieldset> - <legend>Step 4 - Select a suitable review template (optional)</legend> - <div wicket:id="listContainer"> - <table class="rounded-table"> - <tr> - <th>Select</th> - <th>Name</th> - <th>Description</th> - <th>Questions</th> - <th>Preview</th> - </tr> - <tr> - <td colspan="5"><i><span wicket:id="noTemplatesFoundMsg"></span></i></td> - </tr> - <tr wicket:id="templateList"> - <td><a wicket:id="selectTemplateLink" href="#">Select</a></td> - <td><span wicket:id="templateName"></span></td> - <td><div class="span-8"><span wicket:id="templateDescription"></span></div></td> - <td><span wicket:id="templateNumQuestions"></span></td> - <td><a href="#" wicket:id="previewTemplateLink">Preview</a></td> - </tr> - <tr><td wicket:id="pager" colspan="5"></td></tr> - </table> - </div> - <div wicket:id="selectedTemplateContainer"> - <strong>Selected template: </strong> - <span wicket:id="selectedTemplate"></span> - <a href="#" wicket:id="unSelectTemplateLink"> - <img class="icon-12" src="images/icons/delete_16x16.png" alt="Unselect template"/> Unselect - </a> - </div> - </fieldset> - - <fieldset> - <legend>Step 5 - Submit your request</legend> - <div wicket:id="feedbackPanel"> - <!-- The feedback panel --> - </div> - <div> - <button wicket:id="sendRequestButton" class="button">Submit your request for review - <img src="css/blueprint/plugins/buttons/icons/tick.png" alt=""/> + <div class="span-22"> + <h5 class="peer-title">Step 4 - Select a suitable review + template (optional)</h5> + <div wicket:id="listContainer"> + <table class="rounded-table"> + <tr> + <th>Select</th> + <th>Name</th> + <th>Description</th> + <th>Questions</th> + <th>Preview</th> + </tr> + <tr> + <td colspan="5"><i><span + wicket:id="noTemplatesFoundMsg"></span> + </i> + </td> + </tr> + <tr wicket:id="templateList"> + <td><a wicket:id="selectTemplateLink" href="#">Select</a> + </td> + <td><span wicket:id="templateName"></span> + </td> + <td><div class="span-8"> + <span wicket:id="templateDescription"></span> + </div> + </td> + <td><span wicket:id="templateNumQuestions"></span> + </td> + <td><a href="#" wicket:id="previewTemplateLink"><img src="images/icons/document-preview_16x16.png" class="icon-16" alt="Preview template"/></a> + </td> + </tr> + <tr> + <td wicket:id="pager" colspan="5"></td> + </tr> + </table> + </div> + <div wicket:id="selectedTemplateContainer" class="forcedPaddingBottom"> + <strong>Selected template: </strong> <span + wicket:id="selectedTemplate"></span> <a href="#" + wicket:id="unSelectTemplateLink"> <img class="icon-12" + src="images/icons/delete_16x16.png" alt="Unselect template" /> + Unselect </a> + </div> + <h5 class="peer-title">Step 5 - Submit your request</h5> + <div wicket:id="feedbackPanel"> + <!-- The feedback panel --> + </div> + <div> + <button wicket:id="sendRequestButton" class="button"> + Submit your request for review <img + src="css/blueprint/plugins/buttons/icons/tick.png" alt="" /> </button> - </div> - </fieldset> - </div> - </form> - </div> -</wicket:extend> + </div> + </div> + </form> + </div> + </wicket:extend> </body> </html> \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/peer/panels/StudentPeerInfoRequestsPanel.html b/src/main/java/se/su/dsv/scipro/peer/panels/StudentPeerInfoRequestsPanel.html index 404fb4e62d..c103d699bd 100644 --- a/src/main/java/se/su/dsv/scipro/peer/panels/StudentPeerInfoRequestsPanel.html +++ b/src/main/java/se/su/dsv/scipro/peer/panels/StudentPeerInfoRequestsPanel.html @@ -6,7 +6,7 @@ <body> <wicket:panel> <div class="append-bottom"> - <h6>Requests with completed reviews</h6> + <h6>Completed reviews</h6> <i wicket:id="noReceivedReviewsCompletedMessage"></i> <ul class="no-list-style small"> <li wicket:id="receivedReviewsCompleted"> @@ -20,7 +20,7 @@ </div> <div class="append-bottom"> - <h6>Requests with reviews in progress</h6> + <h6>In progress</h6> <i wicket:id="noReceivedReviewsInProgressMessage"></i> <ul class="no-list-style small"> <li wicket:id="receivedReviewsInProgress"> @@ -34,7 +34,7 @@ </div> <div class="append-bottom"> - <h6>Requests waiting to be accepted</h6> + <h6>Awaiting review</h6> <div wicket:id="peerInfoRequestsFeedback"></div> <i wicket:id="noAwaitingAcceptMsg"></i> <ul class="no-list-style small"> diff --git a/src/main/java/se/su/dsv/scipro/peer/panels/StudentPeerInfoReviewsPanel.html b/src/main/java/se/su/dsv/scipro/peer/panels/StudentPeerInfoReviewsPanel.html index 4626e86bad..aaa71585ed 100644 --- a/src/main/java/se/su/dsv/scipro/peer/panels/StudentPeerInfoReviewsPanel.html +++ b/src/main/java/se/su/dsv/scipro/peer/panels/StudentPeerInfoReviewsPanel.html @@ -6,7 +6,7 @@ <body> <wicket:panel> <div class="append-bottom"> - <h6>Reviews completed</h6> + <h6>Completed</h6> <i wicket:id="noAcceptedReviewsCompletedMessage"></i> <ul class="no-list-style small"> <li wicket:id="acceptedReviewsCompleted"> @@ -19,7 +19,7 @@ </div> <div class="append-bottom"> - <h6>Reviews in progress</h6> + <h6>In progress</h6> <i wicket:id="noAcceptedInProgressMessage"></i> <ul class="no-list-style small"> <li wicket:id="acceptedInProgress"> @@ -32,7 +32,7 @@ </div> <div> - <h6>Reviews aborted: <span wicket:id="abortedReviews"></span></h6> + <h6>Aborted: <span wicket:id="abortedReviews"></span></h6> </div> </wicket:panel> </body> diff --git a/src/main/java/se/su/dsv/scipro/project/panels/ProjectTabMenuPanel.java b/src/main/java/se/su/dsv/scipro/project/panels/ProjectTabMenuPanel.java index d1ad784e74..8ce4db2f10 100644 --- a/src/main/java/se/su/dsv/scipro/project/panels/ProjectTabMenuPanel.java +++ b/src/main/java/se/su/dsv/scipro/project/panels/ProjectTabMenuPanel.java @@ -58,7 +58,7 @@ public class ProjectTabMenuPanel extends AbstractMenuPanel { @Override protected MenuType getMenuType() { - return MenuType.TAB; + return MenuType.TAB_MULTIPLE_ROWS; } } diff --git a/src/main/java/se/su/dsv/scipro/repository/icons/document-open-folder.png b/src/main/java/se/su/dsv/scipro/repository/icons/document-open-folder.png index 98b8a9448a..89eea033be 100644 Binary files a/src/main/java/se/su/dsv/scipro/repository/icons/document-open-folder.png and b/src/main/java/se/su/dsv/scipro/repository/icons/document-open-folder.png differ diff --git a/src/main/java/se/su/dsv/scipro/repository/icons/folder-documents.png b/src/main/java/se/su/dsv/scipro/repository/icons/folder-documents.png index c02a648a50..a6c11bb0e7 100644 Binary files a/src/main/java/se/su/dsv/scipro/repository/icons/folder-documents.png and b/src/main/java/se/su/dsv/scipro/repository/icons/folder-documents.png differ diff --git a/src/main/java/se/su/dsv/scipro/repository/panels/AbstractFilePanel.html b/src/main/java/se/su/dsv/scipro/repository/panels/AbstractFilePanel.html index d1cd51adda..bce6646f81 100644 --- a/src/main/java/se/su/dsv/scipro/repository/panels/AbstractFilePanel.html +++ b/src/main/java/se/su/dsv/scipro/repository/panels/AbstractFilePanel.html @@ -64,7 +64,7 @@ <tbody> <tr> <td></td> - <td><a href="#" wicket:id="up">[..]</a></td> + <td><a href="#" wicket:id="up"><img src="images/icons/daisyIcons/plain/folder_up.png" class="icon-24" alt="Parent folder"/></a></td> </tr> </tbody> @@ -72,7 +72,7 @@ <tr wicket:id="content"> <td><a href="delete" wicket:id="delete"><img src="images/icons/edit-delete_16x16.png" alt="X" /></a></td> - <td><a href="#" wicket:id="link"><img wicket:id="folderIcon" src="#" alt="folderIcon" /> <span wicket:id="name">name</span></a></td> + <td><a href="#" wicket:id="link"><img wicket:id="folderIcon" src="#" alt="folderIcon" class="icon-24"/> <span wicket:id="name">name</span></a></td> <td><span wicket:id="created"></span></td> </tr> </tbody> diff --git a/src/main/java/se/su/dsv/scipro/wiquery/mainmenu/MainMenuJavascriptResourceReference.java b/src/main/java/se/su/dsv/scipro/wiquery/mainmenu/MainMenuJavascriptResourceReference.java deleted file mode 100644 index e8be4f6e39..0000000000 --- a/src/main/java/se/su/dsv/scipro/wiquery/mainmenu/MainMenuJavascriptResourceReference.java +++ /dev/null @@ -1,20 +0,0 @@ -package se.su.dsv.scipro.wiquery.mainmenu; - -import org.apache.wicket.markup.html.resources.JavascriptResourceReference; - -public class MainMenuJavascriptResourceReference extends - JavascriptResourceReference { - - private static final long serialVersionUID = -5062441830192125794L; - - private static MainMenuJavascriptResourceReference INSTANCE = - new MainMenuJavascriptResourceReference(); - - private MainMenuJavascriptResourceReference() { - super(MainMenuJavascriptResourceReference.class, "jquery.mainmenu.js"); - } - - public static MainMenuJavascriptResourceReference get() { - return INSTANCE; - } -} diff --git a/src/main/java/se/su/dsv/scipro/wiquery/mainmenu/jquery.mainmenu.js b/src/main/java/se/su/dsv/scipro/wiquery/mainmenu/jquery.mainmenu.js deleted file mode 100644 index 7efe8da153..0000000000 --- a/src/main/java/se/su/dsv/scipro/wiquery/mainmenu/jquery.mainmenu.js +++ /dev/null @@ -1,49 +0,0 @@ -$(document).ready(function() { - $("img.nav-arrow").click(function() { - var parent = $(this).parents(".parent"); - if (parent != null) - showMenu(parent); - }) - .mouseover(function() { - //$(this).attr("src", "./images/site_nav_arrow_hover.png"); - }) - .mouseout(function() { - //$(this).attr("src", "./images/site_nav_arrow.png"); - }); - - $(document).click(function(e) { - if ($(e.target).parents("#nav-list").length == 0) { - closeMenus(null); - } - }); - - $(document).mouseover(function(e) { - if ($(e.target).parents("#main-nav").length == 0) { - closeMenus(null); - } - }); - - addCurrentClassToIdentifier = function(identifier) { - var t = $("#nav-list").find(identifier).parents(".nav-list-item").get(0); - $(t).addClass("current"); - }; - - closeMenus = function(node) { - $("#nav-list .parent").children(".over").each(function() { - if (this != node || node == null) { - $(this).removeClass("over"); - } - }); - }; - - showMenu = function(node) { - var thisMenu = $(node); - var isActive = $(node).find("div.submenu").hasClass("over"); - closeMenus(thisMenu); - if (!isActive) { - thisMenu.find("div.submenu").toggleClass("over"); - } - }; - - addCurrentClassToIdentifier("#current"); -}); \ No newline at end of file diff --git a/src/main/webapp/css/menu.css b/src/main/webapp/css/menu.css index 9a83ca77c0..ea13b18f47 100644 --- a/src/main/webapp/css/menu.css +++ b/src/main/webapp/css/menu.css @@ -1,98 +1,14 @@ -#main-nav { - -} - -#nav-list { - margin-top: 4px; - z-index: 8001; -} - -#nav-list li.nav-list-item { - float: left; - display: inline; - margin: 5px 8px 0 8px; - position: relative; -} - -#nav-list li.nav-list-item .menu-item { - display: block; - height: 23px; - padding: 4px 2px 3px 2px; -} -#nav-list li.nav-list-item .menu-item a { - color: #fff; - font: 1.1em/1.5 arial, sans-serif; - font-weight: bold; - text-decoration: none; - padding: 0px 4px; -} -#nav-list li.nav-list-item .menu-item > a#current { - /* padding: 0 10px 7px 10px; - border-bottom: 5px solid #ccc; */ -} -.menu-item img.nav-arrow { - vertical-align: middle; - width: 23px; - height: 23px; - margin-left: 4px; - margin-right: -3px; -} - -#nav-list a#current { - /* Feel free to replace with something nicer */ - /* padding-bottom: 7px; */ - /* border-bottom: 5px solid #ccc; */ -} -#nav-list li.current .menu-item, -#nav-list li.nav-list-item:hover .menu-item { - background-color: #fff; - -webkit-border-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; - border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - -moz-border-radius-topright: 4px; - border-top-right-radius: 4px; - text-decoration: none; -} -#nav-list li.current .menu-item a, -#nav-list li.nav-list-item:hover .menu-item a { - color: #002f5f; -} - -#nav-list li.nav-list-item.parent .submenu { - position: absolute; - top: 30px; - left: -1px; - width: 140px; - background: #fff; - padding: 5px; - display: none; - border-bottom: 1px solid #ccc; - border-left: 1px solid #ccc; - border-right: 1px solid #ccc; - z-index: 8000; -} -#nav-list li.nav-list-item.parent .over { - display: block; -} -#nav-list li.nav-list-item.parent .submenu { - font-size: 0.9em; - -} -#nav-list li.nav-list-item.parent .submenu a:link, -#nav-list li.nav-list-item.parent .submenu a:visited, -#nav-list li.nav-list-item.parent .submenu a:hover { - display: block; - padding: 4px; - text-decoration: none; -} - -#main-nav #user-links { - margin-top: 5px; +.user-links{ + margin-top:5px; font-size: 0.9em; text-align: right; } - -#main-nav #user-links a { +.user-links a{ color: #99acbf; +} +.main-menu{ + float:left; +} +.service-menu{ + float: right; } \ No newline at end of file diff --git a/src/main/webapp/css/scipro.css b/src/main/webapp/css/scipro.css index a607f46718..0bd1fd7ae7 100644 --- a/src/main/webapp/css/scipro.css +++ b/src/main/webapp/css/scipro.css @@ -63,6 +63,7 @@ img.department-logotype { #main-content { min-height: 500px; background: url('../images/background.png') repeat-y; + padding-bottom: 1.5em; } #main-content h1, @@ -236,6 +237,10 @@ ul.no-list-style li { margin-left: -1.5em; } +.rounded-table, +.rounded-table-top{ + padding-top: 0.5em; +} .rounded-table th, .rounded-table-top th { background: #ccc; @@ -831,7 +836,6 @@ td.active { text-align:right; white-space: nowrap; } - .question-rounded-box { font-size: 0.9em; padding:1.5em; @@ -930,7 +934,9 @@ h5.peer-box-subtitle { .shortened-table-header { cursor: help; } - +.forcedPaddingBottom{ + padding-bottom: 1.5em; +} table.seminar-table { font-size: 0.9em; } diff --git a/src/main/webapp/images/icons/daisyIcons/plain/about.png b/src/main/webapp/images/icons/daisyIcons/plain/about.png new file mode 100644 index 0000000000..f49ee9f52b Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/about.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/add2.png b/src/main/webapp/images/icons/daisyIcons/plain/add2.png new file mode 100644 index 0000000000..25afcff531 Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/add2.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/bullet_ball_glass_blue.png b/src/main/webapp/images/icons/daisyIcons/plain/bullet_ball_glass_blue.png new file mode 100644 index 0000000000..9b48dd2034 Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/bullet_ball_glass_blue.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/bullet_ball_glass_green.png b/src/main/webapp/images/icons/daisyIcons/plain/bullet_ball_glass_green.png new file mode 100644 index 0000000000..e14d3a017f Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/bullet_ball_glass_green.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/bullet_ball_glass_red.png b/src/main/webapp/images/icons/daisyIcons/plain/bullet_ball_glass_red.png new file mode 100644 index 0000000000..776fac7269 Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/bullet_ball_glass_red.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/bullet_ball_glass_yellow.png b/src/main/webapp/images/icons/daisyIcons/plain/bullet_ball_glass_yellow.png new file mode 100644 index 0000000000..a5a2f617c2 Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/bullet_ball_glass_yellow.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/check.png b/src/main/webapp/images/icons/daisyIcons/plain/check.png new file mode 100644 index 0000000000..1cced5b5a2 Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/check.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/check2.png b/src/main/webapp/images/icons/daisyIcons/plain/check2.png new file mode 100644 index 0000000000..a144c40770 Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/check2.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/copy.png b/src/main/webapp/images/icons/daisyIcons/plain/copy.png new file mode 100644 index 0000000000..fde32253cd Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/copy.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/delete2.png b/src/main/webapp/images/icons/daisyIcons/plain/delete2.png new file mode 100644 index 0000000000..e24f744391 Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/delete2.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/document.png b/src/main/webapp/images/icons/daisyIcons/plain/document.png new file mode 100644 index 0000000000..2c001f69dd Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/document.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/document_add.png b/src/main/webapp/images/icons/daisyIcons/plain/document_add.png new file mode 100644 index 0000000000..aac984195b Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/document_add.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/document_down.png b/src/main/webapp/images/icons/daisyIcons/plain/document_down.png new file mode 100644 index 0000000000..35ade52942 Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/document_down.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/document_edit.png b/src/main/webapp/images/icons/daisyIcons/plain/document_edit.png new file mode 100644 index 0000000000..b78dc0037e Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/document_edit.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/documents.png b/src/main/webapp/images/icons/daisyIcons/plain/documents.png new file mode 100644 index 0000000000..51f6aa1e6c Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/documents.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/folder_add.png b/src/main/webapp/images/icons/daisyIcons/plain/folder_add.png new file mode 100644 index 0000000000..78ddbbbac4 Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/folder_add.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/folder_closed.png b/src/main/webapp/images/icons/daisyIcons/plain/folder_closed.png new file mode 100644 index 0000000000..89eea033be Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/folder_closed.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/folder_delete.png b/src/main/webapp/images/icons/daisyIcons/plain/folder_delete.png new file mode 100644 index 0000000000..18f4baa280 Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/folder_delete.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/folder_document.png b/src/main/webapp/images/icons/daisyIcons/plain/folder_document.png new file mode 100644 index 0000000000..a6c11bb0e7 Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/folder_document.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/folder_edit.png b/src/main/webapp/images/icons/daisyIcons/plain/folder_edit.png new file mode 100644 index 0000000000..71726bce4a Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/folder_edit.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/folder_up.png b/src/main/webapp/images/icons/daisyIcons/plain/folder_up.png new file mode 100644 index 0000000000..d3fbff15bc Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/folder_up.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/folder_view.png b/src/main/webapp/images/icons/daisyIcons/plain/folder_view.png new file mode 100644 index 0000000000..3aa65417ad Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/folder_view.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/gear.png b/src/main/webapp/images/icons/daisyIcons/plain/gear.png new file mode 100644 index 0000000000..e0dd63cb22 Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/gear.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/help2.png b/src/main/webapp/images/icons/daisyIcons/plain/help2.png new file mode 100644 index 0000000000..1e671d6d10 Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/help2.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/navigate_close.png b/src/main/webapp/images/icons/daisyIcons/plain/navigate_close.png new file mode 100644 index 0000000000..51aa3f2ca8 Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/navigate_close.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/navigate_left.png b/src/main/webapp/images/icons/daisyIcons/plain/navigate_left.png new file mode 100644 index 0000000000..3b510ec6e8 Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/navigate_left.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/navigate_left2.png b/src/main/webapp/images/icons/daisyIcons/plain/navigate_left2.png new file mode 100644 index 0000000000..4280a3896a Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/navigate_left2.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/navigate_open.png b/src/main/webapp/images/icons/daisyIcons/plain/navigate_open.png new file mode 100644 index 0000000000..c00c19ae63 Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/navigate_open.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/navigate_right.png b/src/main/webapp/images/icons/daisyIcons/plain/navigate_right.png new file mode 100644 index 0000000000..1a91320823 Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/navigate_right.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/navigate_right2.png b/src/main/webapp/images/icons/daisyIcons/plain/navigate_right2.png new file mode 100644 index 0000000000..7f838b63f0 Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/navigate_right2.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/star_blue.png b/src/main/webapp/images/icons/daisyIcons/plain/star_blue.png new file mode 100644 index 0000000000..ca898a2944 Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/star_blue.png differ diff --git a/src/main/webapp/images/icons/daisyIcons/plain/user1.png b/src/main/webapp/images/icons/daisyIcons/plain/user1.png new file mode 100644 index 0000000000..014e5deca5 Binary files /dev/null and b/src/main/webapp/images/icons/daisyIcons/plain/user1.png differ diff --git a/src/main/webapp/styles/global.css b/src/main/webapp/styles/global.css deleted file mode 100644 index f310472cf1..0000000000 --- a/src/main/webapp/styles/global.css +++ /dev/null @@ -1,230 +0,0 @@ -@CHARSET "UTF-8"; - -html, body { - font-family: Calibri, Tahoma, Verdana, sans-serif; - margin: 0 0 0 0; - padding: 0 0 0 0; - font-size: 0.94em; - line-height: 1.5em; - padding-top: 30px; -} - -h1, h2, h3 { - font-family: Cambria, Tahoma, Verdana, sans-serif; -} - -#container { - width: 960px; - margin: auto; -} - -#ajax-loader { - z-index:9999; - position: fixed; - top: 0; - left: 0; - width: 80px; - height: 30px; - background-color: #FFFF80; - border-bottom: 1px solid black; - border-right: 1px solid black; -} - -#veil { - opacity:0.3; - filter:alpha(opacity=50); - position:absolute; - width: 100%; - height: 100%; - z-index:9998; - background-color: white; -} - -#veil-loader { - z-index:9999; - position: absolute; - top: 30%; - left: 45%; - width: 100px; - height: 100px; - background: url(../images/ajax-loader.gif) center no-repeat; -} - -p.inline { - display: inline; -} - -.connectedSortable { - cursor: move; -} - -.float-right { - float:right; -} - -.float-left { - float:left; -} - -td.icon, -span.icon { - padding-left: 20px; - line-height: 20px; /* To center the text vertically with the icon */ -} - -span.floating-icon { - width: 20px; - height: 20px; -} - -td.icon-button, -span.icon-button { - cursor: pointer; -} - -td.icon-user, -span.icon-user { /*The background image*/ - background: url(../images/user.png) no-repeat left center; -} - -td.icon-project, -span.icon-project { /*The background image*/ - background: url(../images/project.png) no-repeat left center; -} - -td.icon-arrowDown, -span.icon-arrowDown { - background: url(../images/icons/arrow-down.png) no-repeat left center; -} - -td.icon-plus, -span.icon-plus { - background: url(../images/icons/add.gif) no-repeat left center; -} - -td.icon-minus, -span.icon-minus { - background: url(../images/icons/minus.gif) no-repeat left center; -} - -td.icon-check, -span.icon-check { - background: url(../images/icons/circle-check.png) no-repeat left center; -} - -td.icon-pencil, -span.icon-pencil { /*The background image*/ - background: url(../images/icons/pencil.png) no-repeat left center; -} - -td.icon-delete, -span.icon-delete { /*The background image*/ - background: url(../images/icons/circle-delete.png) no-repeat left center; -} - -td.icon-zoom-in, -span.icon-zoom-in { /*The background image*/ - background: url(../images/icons/zoom-in.png) no-repeat left center; -} - -.bordered-box { - border: 1px solid #CCE6FF; - padding: 0.5em 0.5em; -} - -.float-left { - float: left; -} - -.float-right { - float: right; -} - -.boxContent { - margin: 0.5em 0.5em; -} - -.boxContent h4 { - border: 1px solid #0099CC; - background-color: #CCE6FF; - padding: 0.3em 0.3em; -} - -.dashboardBox { - border: 1px solid #3300CC; - width: 50em; - min-height: 10em; -} - -.dashboardBox h3 { - border-bottom: 1px solid #3300CC; - background-color: blue; - color: white; - padding: 0.2em; - margin: 0 0; -} - -form.div { - display:block; -} - -form.formRow { - display: inline; -} - -#schedulePlannerCtrlContainer { - border: 1px solid #CCE6FF; -} - -#schedulePlannerCtrlContainer ul { - list-style-type: none; - display: inline; -} - -.scheduleEventList { - margin: 1em 0; -} - -.scheduleEvent { - padding: 0.2em 0.2em; - -webkit-border-radius: 3px; - background-color: #E5F3FF; - border: 1px solid #B3DBFF; -} - -.scheduleEventHeader { - padding: 0.4em 0.2em; -} - -.scheduleEventHeaderBar { - margin-left: 0.5em; -} - -.scheduleEventHeaderBar img { - float:left; - margin-right: 1em; - margin-left: 0.5em; -} - -.scheduleEventHeaderBar span { - display: inline; - margin-left: 0.1em; -} - -.scheduleEventIconbar { - margin: 0.4em 1em; - padding: 0.3em; -} - -.scheduleEventContent { - padding: 0.3em 0.5em; - width: 45em; -} - -.scheduleEventFooter { - margin-top: 1em; -} - -form.dialogForm { - font-size: 0.9em; -} \ No newline at end of file