Tog bort projectsupervisorpoolpage eftersom datat sätts i daisy

Change-Id: I2596d57fde61c7498c138b09ef5b1e74013e59bf
This commit is contained in:
joha-asc 2011-07-11 13:59:53 +02:00
parent edc46cdaf6
commit 41f4ef02cb
4 changed files with 0 additions and 284 deletions

@ -44,18 +44,6 @@ import se.su.dsv.scipro.knol.resource.page.ResourcePage;
import se.su.dsv.scipro.loginlogout.pages.LoginPage;
import se.su.dsv.scipro.loginlogout.pages.LogoutPage;
import se.su.dsv.scipro.message.pages.PrivateMessagesPage;
import se.su.dsv.scipro.peer.pages.PeerRequestSubmissionPage;
import se.su.dsv.scipro.peer.pages.PeerReviewTemplateCreationPage;
import se.su.dsv.scipro.peer.pages.PeerReviewTemplatePage;
import se.su.dsv.scipro.peer.pages.PeerReviewTemplatePreviewPage;
import se.su.dsv.scipro.peer.pages.ProjectPeerPortalPage;
import se.su.dsv.scipro.peer.pages.ProjectPeerReviewGuidePage;
import se.su.dsv.scipro.peer.pages.ProjectPeerReviewPage;
import se.su.dsv.scipro.peer.pages.ProjectPeerStatsPage;
import se.su.dsv.scipro.peer.pages.SupervisorPeerPortalPage;
import se.su.dsv.scipro.peer.pages.SupervisorPeerReviewGuidePage;
import se.su.dsv.scipro.peer.pages.SupervisorPeerReviewPage;
import se.su.dsv.scipro.peer.pages.SupervisorPeerStatsPage;
import se.su.dsv.scipro.project.pages.FinalSeminarProjectListPage;
import se.su.dsv.scipro.project.pages.NoActiveProjectPage;
import se.su.dsv.scipro.project.pages.ProjectEventPage;
@ -64,7 +52,6 @@ import se.su.dsv.scipro.project.pages.ProjectOppositionPage;
import se.su.dsv.scipro.project.pages.ProjectScheduleGeneratorPage;
import se.su.dsv.scipro.project.pages.ProjectSchedulePlannerPage;
import se.su.dsv.scipro.project.pages.ProjectStartPage;
import se.su.dsv.scipro.project.pages.ProjectSupervisorPoolPage;
import se.su.dsv.scipro.repository.RepositoryApplication;
import se.su.dsv.scipro.repository.pages.RepositoryDownloadPage;
import se.su.dsv.scipro.repository.pages.SysAdminFilePage;
@ -206,7 +193,6 @@ public class SciProApplication extends RepositoryApplication implements IThemabl
mountBookmarkablePage("project/files", ProjectFilePage.class);
mountBookmarkablePage("project/schedule", ProjectSchedulePlannerPage.class);
mountBookmarkablePage("project/opposition", ProjectOppositionPage.class);
mountBookmarkablePage("project/supervisorpool", ProjectSupervisorPoolPage.class);
mountBookmarkablePage("project/allfinalseminars", FinalSeminarProjectListPage.class);
mountBookmarkablePage("project", ProjectStartPage.class);
mountBookmarkablePage("noproject", NoActiveProjectPage.class);

@ -1,44 +0,0 @@
<!DOCTYPE html>
<html
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd">
<body>
<wicket:extend>
<div wicket:id="container" class="margin">
<h3>Chosen co-supervisor(s)</h3>
<table>
<tr>
<th>Name</th>
<th>Choosen</th>
</tr>
<tr wicket:id="listView">
<td><span wicket:id="userInfo"></span></td>
<td><input type="checkbox" wicket:id="selected" /></td>
</tr>
</table>
</div>
<h3>Available co-supervisor(s)</h3>
<div>
<label for="search">Search:</label> <input type="text" class="text"
id="search" wicket:id="searchField" />
</div>
<div wicket:id="availableContainer" class="margin">
<table>
<tr>
<th>Name</th>
<th>Choosen</th>
</tr>
<tr wicket:id="userDataView">
<td><span wicket:id="userInfo"></span></td>
<td><input type="checkbox" wicket:id="choosen" /></td>
</tr>
</table>
<div wicket:id="pagingNavigator"></div>
</div>
</wicket:extend>
</body>
</html>

@ -1,224 +0,0 @@
package se.su.dsv.scipro.project.pages;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.SortedSet;
import org.apache.wicket.PageParameters;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;
import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.html.navigation.paging.PagingNavigator;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.markup.repeater.data.DataView;
import org.apache.wicket.markup.repeater.data.IDataProvider;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.spring.injection.annot.SpringBean;
import se.su.dsv.scipro.SciProSession;
import se.su.dsv.scipro.data.dao.interfaces.ProjectDao;
import se.su.dsv.scipro.data.dao.interfaces.ProjectFollowerDao;
import se.su.dsv.scipro.data.dao.interfaces.RoleDao;
import se.su.dsv.scipro.data.dao.interfaces.UserDao;
import se.su.dsv.scipro.data.dataobjects.Employee;
import se.su.dsv.scipro.data.dataobjects.Project;
import se.su.dsv.scipro.data.dataobjects.ProjectFollower;
import se.su.dsv.scipro.data.dataobjects.ProjectTeamMember;
import se.su.dsv.scipro.data.dataobjects.User;
import se.su.dsv.scipro.data.enums.ProjectTeamMemberRoles;
import se.su.dsv.scipro.dataproviders.UserSearchDataProvider;
import se.su.dsv.scipro.security.auth.Authorization;
import se.su.dsv.scipro.security.auth.roles.Roles;
@Authorization(authorizedRoles={Roles.SYSADMIN})
public class ProjectSupervisorPoolPage extends ProjectPage {
public static final String MAIN_MENU_LABEL = "Supervisor Pool";
@SpringBean
ProjectDao projectDao;
@SpringBean
ProjectFollowerDao projectFollowerDao;
@SpringBean
UserDao userDao;
@SpringBean
RoleDao roleDao;
private String userSearch;
private DataView<User> dataView;
private ListView<User> listView;
private WebMarkupContainer container, availableContainer;
private TextField<String> searchField;
public ProjectSupervisorPoolPage(PageParameters pp) {
super(pp);
searchField = new TextField<String>("searchField",
new PropertyModel<String>(this, "userSearch"));
container = new WebMarkupContainer("container");
container.setOutputMarkupId(true);
availableContainer = new WebMarkupContainer("availableContainer");
availableContainer.setOutputMarkupId(true);
OnChangeAjaxBehavior userSearchTextBehaviour = new OnChangeAjaxBehavior() {
private static final long serialVersionUID = -3243439315735164519L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
if (userSearch != null) {
if (userSearch.length() >= 3) {
checkRole();
}
} else {
checkRole();
}
target.addComponent(container);
target.addComponent(availableContainer);
};
};
searchField.add(userSearchTextBehaviour);
availableContainer.add(searchField);
checkRole();
add(searchField);
add(container);
add(availableContainer);
}
public void checkRole() {
List<User> notIncludeList = new ArrayList<User>();
List<User> projectFollowerList = new ArrayList<User>();
notIncludeList.add(SciProSession.get().getActiveProject().getHeadSupervisor().getUser());
for (ProjectFollower projectFollower : SciProSession.get().getActiveProject().getProjectFollowers()) {
notIncludeList.add(projectFollower.getFollower().getUser());
projectFollowerList.add(projectFollower.getFollower().getUser());
}
loadUserDataView(new UserSearchDataProvider(userSearch, Employee.class, notIncludeList), projectFollowerList);
container.removeAll();
container.add(listView);
availableContainer.removeAll();
availableContainer.add(dataView);
availableContainer.add(new PagingNavigator("pagingNavigator", dataView));
}
public void loadUserDataView(IDataProvider<User> userDataProvider, List<User> userList) {
dataView = new DataView<User>("userDataView", userDataProvider, 10) {
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(Item<User> item) {
final User user = item.getModelObject();
String userInfo = user.getFirstName() + " " + user.getLastName() + " <"
+ user.getEmailAddress() + ">";
Label userInfoLabel = new Label("userInfo", userInfo);
item.add(userInfoLabel);
boolean choosen = false;
if (projectDao.isSupervisorOrFollowerOf(user, SciProSession.get()
.getActiveProject())) {
choosen = true;
}
AjaxCheckBox studentCheckBox = new AjaxCheckBox("choosen", new Model<Boolean>(
choosen)) {
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
Boolean model = (Boolean) getDefaultModelObject();
ProjectFollower projectFollower = new ProjectFollower();
projectFollower.setProjectRole(ProjectTeamMemberRoles.CO_SUPERVISOR);
projectFollower.setProject(SciProSession.get().getActiveProject());
ProjectTeamMember projectTeamMember = (ProjectTeamMember) roleDao
.makeEmployee(userDao.reLoad(user));
projectFollower.setFollower(projectTeamMember);
projectFollower = projectFollowerDao.save(projectFollower);
Project activeProject = SciProSession.get().getActiveProject();
activeProject.getProjectFollowers().add(projectFollower);
projectDao.save(activeProject);
checkRole();
target.addComponent(container);
target.addComponent(availableContainer);
}
};
item.add(studentCheckBox);
}
};
listView = new ListView<User>("listView", userList) {
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(ListItem<User> item) {
final User user = item.getModelObject();
String userInfo = user.getFirstName() + " " + user.getLastName() + " <"
+ user.getEmailAddress() + ">";
Label userInfoLabel = new Label("userInfo", userInfo);
item.add(userInfoLabel);
boolean choosen = false;
if (projectDao.isSupervisorOrFollowerOf(user, SciProSession.get()
.getActiveProject())) {
choosen = true;
}
AjaxCheckBox studentCheckBox = new AjaxCheckBox("selected", new Model<Boolean>(
choosen)) {
private static final long serialVersionUID = 1L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
Boolean model = (Boolean) getDefaultModelObject();
if (model) {
ProjectFollower projectFollower = new ProjectFollower();
projectFollower.setProjectRole(ProjectTeamMemberRoles.CO_SUPERVISOR);
projectFollower.setProject(SciProSession.get().getActiveProject());
ProjectTeamMember projectTeamMember = (ProjectTeamMember) roleDao
.makeEmployee(userDao.reLoad(user));
projectFollower.setFollower(projectTeamMember);
projectFollower = projectFollowerDao.save(projectFollower);
Project activeProject = SciProSession.get().getActiveProject();
activeProject.getProjectFollowers().add(projectFollower);
projectDao.save(activeProject);
} else{
Project activeProject = SciProSession.get().getActiveProject();
SortedSet<ProjectFollower> projectFollowers = activeProject.getProjectFollowers();
for(Iterator<ProjectFollower> it = projectFollowers.iterator(); it.hasNext();){
if(it.next().getFollower().getUser().equals(user))
it.remove();
}
projectDao.save(activeProject);
}
checkRole();
target.addComponent(container);
target.addComponent(availableContainer);
}
};
item.add(studentCheckBox);
}
};
}
}

@ -17,7 +17,6 @@ import se.su.dsv.scipro.project.pages.ProjectPage;
import se.su.dsv.scipro.project.pages.ProjectPartnerPage;
import se.su.dsv.scipro.project.pages.ProjectSchedulePlannerPage;
import se.su.dsv.scipro.project.pages.ProjectStartPage;
import se.su.dsv.scipro.project.pages.ProjectSupervisorPoolPage;
import se.su.dsv.scipro.repository.panels.ProjectFilePanel;
/**
@ -45,7 +44,6 @@ public class ProjectTabMenuPanel extends AbstractMenuPanel {
itemList.add(new MenuItem("Files", ProjectFilePage.class, ProjectFilePanel.getPrefabricatedPageParameters(activeProject)));
itemList.add(new MenuItem("Opposition & Active participation", ProjectOppositionPage.class));
itemList.add(new MenuItem("Peer review", ProjectPeerPortalPage.class));
itemList.add(new MenuItem("Supervisor Pool", ProjectSupervisorPoolPage.class));
itemList.add(new MenuItem("All Final Seminars", FinalSeminarProjectListPage.class));
} else {
itemList.add(new MenuItem("No active project!", NoActiveProjectPage.class));