87: Add support for split project confirmation page
This commit is contained in:
parent
f33956068d
commit
739bf1c0bd
view/src/main/java/se/su/dsv/scipro
@ -294,6 +294,7 @@ public class SciProApplication extends LifecycleManagedWebApplication {
|
||||
mountPage("admin/maintenance", SystemMaintenancePage.class);
|
||||
mountPage("admin/project", ProjectManagementPage.class);
|
||||
mountPage("admin/project/create", AdminCreateProjectPage.class);
|
||||
mountPage("admin/project/split", AdminSplitProjectPage.class);
|
||||
mountPage("admin/project/survey", AdminSurveyPage.class);
|
||||
mountPage("admin/project/reviewer", AdminAssignReviewerPage.class);
|
||||
mountPage("admin/project/reviewer/capacity", AdminReviewerCapacityManagementPage.class);
|
||||
|
@ -0,0 +1,30 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org" lang="en">
|
||||
<body>
|
||||
<wicket:extend>
|
||||
<div class="row">
|
||||
<div class="col-lg-5">
|
||||
<h4 wicket:id="projectTitle"></h4>
|
||||
|
||||
<p wicket:id="errorInfo"></p>
|
||||
|
||||
<form class="form-horizontal" wicket:id="splitProjectForm">
|
||||
<p>This project will be split between following authors:</p>
|
||||
|
||||
<div class="mb-3">
|
||||
<ul wicket:id="authorList">
|
||||
<li wicket:id="author"></li>
|
||||
</ul>
|
||||
</div>
|
||||
<button class="btn btn-success" type="submit">Split Project</button>
|
||||
</form>
|
||||
|
||||
<div class="mt-5">
|
||||
<a class="btn btn-success" wicket:id="cancelLink">Cancel</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</wicket:extend>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,75 @@
|
||||
package se.su.dsv.scipro.admin.pages;
|
||||
|
||||
import jakarta.inject.Inject;
|
||||
import org.apache.wicket.RestartResponseException;
|
||||
import org.apache.wicket.markup.html.form.Form;
|
||||
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
|
||||
import org.apache.wicket.markup.html.list.ListItem;
|
||||
import org.apache.wicket.markup.html.list.ListView;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.request.mapper.parameter.PageParameters;
|
||||
import se.su.dsv.scipro.components.menuhighlighting.MenuHighlightAdminProjectManagement;
|
||||
import se.su.dsv.scipro.data.DetachableServiceModel;
|
||||
import se.su.dsv.scipro.project.Project;
|
||||
import se.su.dsv.scipro.project.ProjectService;
|
||||
import se.su.dsv.scipro.security.auth.Authorization;
|
||||
import se.su.dsv.scipro.security.auth.roles.Roles;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
import se.su.dsv.scipro.util.PageParameterKeys;
|
||||
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.link.AbstractLink;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@Authorization(authorizedRoles = { Roles.SYSADMIN })
|
||||
public class AdminSplitProjectPage extends AbstractAdminProjectPage implements MenuHighlightAdminProjectManagement {
|
||||
|
||||
@Inject
|
||||
private ProjectService projectService;
|
||||
|
||||
public AdminSplitProjectPage(PageParameters pp) {
|
||||
final long id = pp.get(PageParameterKeys.MAP.get(Project.class)).toLong(0);
|
||||
final Project project = projectService.findOne(id);
|
||||
if (project == null) {
|
||||
throw new RestartResponseException(AdminCreateProjectPage.class);
|
||||
}
|
||||
DetachableServiceModel<Project> dsModel = new DetachableServiceModel<>(projectService, project);
|
||||
|
||||
add(new Label("projectTitle", dsModel.map(Project::getTitle)));
|
||||
|
||||
add(new Label("errorInfo", Model.of("error Info!!")) {
|
||||
@Override
|
||||
protected void onConfigure() {
|
||||
super.onConfigure();
|
||||
setVisibilityAllowed(false);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
add(new SplitProjectForm("splitProjectForm", dsModel));
|
||||
|
||||
add(new BookmarkablePageLink<Void>("cancelLink", ProjectManagementPage.class));
|
||||
}
|
||||
|
||||
private class SplitProjectForm extends Form<Project> {
|
||||
public SplitProjectForm(String id, final IModel<Project> model) {
|
||||
super(id, model);
|
||||
|
||||
add(new ListView<>("authorList", model.map(Project::getProjectParticipants).map(ArrayList::new)) {
|
||||
@Override
|
||||
protected void populateItem(ListItem<User> item) {
|
||||
item.add(new Label("author", item.getModel().map(User::getFullName)));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSubmit() {
|
||||
Long projectId = getModel().getObject().getId();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -7,10 +7,12 @@ import org.apache.wicket.markup.html.link.BookmarkablePageLink;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.request.mapper.parameter.PageParameters;
|
||||
import se.su.dsv.scipro.project.Project;
|
||||
import se.su.dsv.scipro.project.ProjectStatus;
|
||||
import se.su.dsv.scipro.security.auth.roles.Roles;
|
||||
import se.su.dsv.scipro.session.SciProSession;
|
||||
import se.su.dsv.scipro.util.PageParameterKeys;
|
||||
|
||||
public class AdminSplitProjectPanel extends Panel {
|
||||
private enum SplittableStatus {
|
||||
@ -23,7 +25,10 @@ public class AdminSplitProjectPanel extends Panel {
|
||||
Project project = projectModel.getObject();
|
||||
SplittableStatus splittableStatus = getSplitStatus(project);
|
||||
|
||||
AbstractLink splitProjectLink = new BookmarkablePageLink<Void>("splitProjectLink", AdminCreateProjectPage.class) {
|
||||
final PageParameters pp = new PageParameters();
|
||||
pp.set(PageParameterKeys.MAP.get(Project.class), project.getId());
|
||||
|
||||
AbstractLink splitProjectLink = new BookmarkablePageLink<Void>("splitProjectLink", AdminSplitProjectPage.class, pp) {
|
||||
@Override
|
||||
protected void onConfigure() {
|
||||
super.onConfigure();
|
||||
@ -37,6 +42,7 @@ public class AdminSplitProjectPanel extends Panel {
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
add(splitProjectLink);
|
||||
|
||||
if (splittableStatus == SplittableStatus.NOT_TWO_PARTICIPANTS) {
|
||||
|
@ -1 +1 @@
|
||||
splitButton = Split ProjectX
|
||||
splitButton = Split Project
|
Loading…
x
Reference in New Issue
Block a user