3204 Maintain scroll position when updating a reviewer's target
This commit is contained in:
parent
671cf74104
commit
5b402bd8c2
view/src/main/java/se/su/dsv/scipro
@ -53,7 +53,7 @@
|
||||
Managing targets for <strong wicket:id="period"></strong>.
|
||||
</p>
|
||||
<div class="card mb-3" wicket:id="reviewers">
|
||||
<wicket:container wicket:id="reviewer">
|
||||
<div wicket:id="reviewer">
|
||||
<div class="row g-0">
|
||||
<div class="col-auto">
|
||||
<img class="img-fluid rounded-start profile-picture-md" wicket:id="profile_image">
|
||||
@ -110,7 +110,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</wicket:container>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -17,6 +17,7 @@ import org.apache.wicket.markup.html.list.ListView;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import org.apache.wicket.model.LoadableDetachableModel;
|
||||
import org.apache.wicket.model.Model;
|
||||
import se.su.dsv.scipro.components.ScrollIntoView;
|
||||
import se.su.dsv.scipro.data.DetachableServiceModel;
|
||||
import se.su.dsv.scipro.profile.UserLabel;
|
||||
import se.su.dsv.scipro.profile.UserProfileImage;
|
||||
@ -214,6 +215,8 @@ public class AdminReviewerCapacityManagementPage extends AbstractAdminProjectPag
|
||||
Target target = new Target(selectedPeriod.getObject(), springTarget.getObject(), autumnTarget.getObject(), note.getObject());
|
||||
reviewerCapacityService.assignTarget(getModelObject(), target);
|
||||
success("Target assigned");
|
||||
|
||||
add(new ScrollIntoView(ReviewerCard.this));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,27 @@
|
||||
package se.su.dsv.scipro.components;
|
||||
|
||||
import org.apache.wicket.Component;
|
||||
import org.apache.wicket.behavior.Behavior;
|
||||
import org.apache.wicket.markup.head.IHeaderResponse;
|
||||
import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
|
||||
|
||||
public class ScrollIntoView extends Behavior {
|
||||
private Component component;
|
||||
|
||||
public ScrollIntoView(Component component) {
|
||||
this.component = component;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isTemporary(Component component) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderHead(Component component, IHeaderResponse response) {
|
||||
super.renderHead(component, response);
|
||||
response.render(OnDomReadyHeaderItem.forScript(
|
||||
"document.getElementById('%s').scrollIntoView({behavior:\"instant\"})".formatted(
|
||||
this.component.getMarkupId(true))));
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user