3204 Make it possible to collapse the reviewer card when managing targets

This commit is contained in:
Andreas Svanberg 2024-01-17 12:27:53 +01:00
parent f2c45f9461
commit e5e59f4cbd
2 changed files with 26 additions and 4 deletions

@ -58,13 +58,16 @@
<div class="col-auto">
<img class="img-fluid rounded-start profile-picture-md" wicket:id="profile_image">
</div>
<div class="col-auto">
<div class="col">
<div class="card-body">
<h4 class="card-title" wicket:id="name">[John Doe]</h4>
</div>
</div>
<a class="col-auto w-64-px align-self-center" wicket:id="expand">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22"><defs><clipPath><path fill="#00f" fill-opacity=".514" d="m-7 1024.36h34v34h-34z"/></clipPath><clipPath><path fill="#aade87" fill-opacity=".472" d="m-6 1028.36h32v32h-32z"/></clipPath></defs><path d="m345.44 248.29l-194.29 194.28c-12.359 12.365-32.397 12.365-44.75 0-12.354-12.354-12.354-32.391 0-44.744l171.91-171.91-171.91-171.9c-12.354-12.359-12.354-32.394 0-44.748 12.354-12.359 32.391-12.359 44.75 0l194.29 194.28c6.177 6.18 9.262 14.271 9.262 22.366 0 8.099-3.091 16.196-9.267 22.373" transform="matrix(.03541-.00013.00013.03541 2.98 3.02)" fill="#4d4d4d"/></svg>
</a>
</div>
<div class="card-body">
<div class="card-body" wicket:id="expanded">
<div class="row">
<div class="col-lg-8 mb-3 mb-lg-0">
<form class="row" wicket:id="form">

@ -1,7 +1,9 @@
package se.su.dsv.scipro.admin.pages;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.feedback.FencedFeedbackPanel;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
@ -124,7 +126,24 @@ public class AdminReviewerCapacityManagementPage extends AbstractAdminProjectPag
add(new UserProfileImage("profile_image", reviewer, UserProfileImage.Size.MEDIUM));
add(new UserLabel("name", reviewer));
add(new AssignTargetForm("form", reviewer));
WebMarkupContainer expanded = new WebMarkupContainer("expanded");
expanded.setOutputMarkupPlaceholderTag(true);
add(expanded);
AjaxLink<Void> expandToggle = new AjaxLink<>("expand") {
@Override
public void onClick(AjaxRequestTarget target) {
expanded.setVisible(!expanded.isVisible());
target.add(expanded);
target.add(this);
}
};
expandToggle.add(AttributeModifier.append("class", () -> expanded.isVisible() ? "rotate-90" : ""));
expandToggle.setOutputMarkupId(true);
add(expandToggle);
expanded.add(new AssignTargetForm("form", reviewer));
IModel<List<Target>> history = LoadableDetachableModel.of(() -> reviewerCapacityService.getTargetHistory(reviewer.getObject(), selectedPeriod.getObject()));
ListView<Target> historyComponent = new ListView<>("history", history) {
@Override
@ -135,7 +154,7 @@ public class AdminReviewerCapacityManagementPage extends AbstractAdminProjectPag
}
};
historyComponent.setViewSize(3);
add(historyComponent);
expanded.add(historyComponent);
}
private class AssignTargetForm extends Form<User> {