From a502d96a860456ec5e8c96761db70f7cabb74751 Mon Sep 17 00:00:00 2001 From: Paul Martin <paul@paulsputer.com> Date: Sat, 30 Apr 2016 04:19:14 -0400 Subject: [PATCH] Merge pull request #1073 from gitblit/1062-DocEditorUpdates --- src/main/java/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java | 53 +++++++++++++++++++++++++++++------------------------ 1 files changed, 29 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java b/src/main/java/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java index 4156cd1..447e178 100644 --- a/src/main/java/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java +++ b/src/main/java/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java @@ -43,7 +43,6 @@ import com.gitblit.Constants.AccessPermission; import com.gitblit.Constants.PermissionType; import com.gitblit.Constants.RegistrantType; -import com.gitblit.GitBlit; import com.gitblit.models.RegistrantAccessPermission; import com.gitblit.models.UserModel; import com.gitblit.utils.DeepCopier; @@ -52,17 +51,17 @@ /** * Allows user to manipulate registrant access permissions. - * + * * @author James Moger * */ public class RegistrantPermissionsPanel extends BasePanel { private static final long serialVersionUID = 1L; - + public enum Show { specified, mutable, effective; - + public boolean show(RegistrantAccessPermission ap) { switch (this) { case specified: @@ -76,9 +75,9 @@ } } } - + private Show activeState = Show.mutable; - + public RegistrantPermissionsPanel(String wicketId, RegistrantType registrantType, List<String> allRegistrants, final List<RegistrantAccessPermission> permissions, final Map<AccessPermission, String> translations) { super(wicketId); setOutputMarkupId(true); @@ -97,7 +96,7 @@ */ RefreshingView<RegistrantAccessPermission> dataView = new RefreshingView<RegistrantAccessPermission>("permissionRow") { private static final long serialVersionUID = 1L; - + @Override protected Iterator<IModel<RegistrantAccessPermission>> getItemModels() { // the iterator returns RepositoryPermission objects, but we need it to @@ -116,7 +115,8 @@ // 'even' for decoration return new OddEvenItem<RegistrantAccessPermission>(id, index, model); } - + + @Override public void populateItem(final Item<RegistrantAccessPermission> item) { final RegistrantAccessPermission entry = item.getModelObject(); if (RegistrantType.REPOSITORY.equals(entry.registrantType)) { @@ -135,19 +135,19 @@ Label label = new Label("registrant", entry.registrant); WicketUtils.setCssStyle(label, "font-weight: bold;"); item.add(label); - } + } } else if (RegistrantType.USER.equals(entry.registrantType)) { // user PersonIdent ident = new PersonIdent(entry.registrant, ""); - UserModel user = GitBlit.self().getUserModel(entry.registrant); + UserModel user = app().users().getUserModel(entry.registrant); if (user != null) { ident = new PersonIdent(user.getDisplayName(), user.emailAddress == null ? user.getDisplayName() : user.emailAddress); } Fragment userFragment = new Fragment("registrant", "userRegistrant", RegistrantPermissionsPanel.this); - userFragment.add(new GravatarImage("userAvatar", ident, 20, false)); - userFragment.add(new Label("userName", entry.registrant)); - item.add(userFragment); + userFragment.add(new AvatarImage("userAvatar", ident, 20)); + userFragment.add(new Label("userName", entry.registrant)); + item.add(userFragment); } else { // team Fragment teamFragment = new Fragment("registrant", "teamRegistrant", RegistrantPermissionsPanel.this); @@ -209,9 +209,10 @@ permissionChoice.setOutputMarkupId(true); if (entry.mutable) { permissionChoice.add(new AjaxFormComponentUpdatingBehavior("onchange") { - + private static final long serialVersionUID = 1L; + @Override protected void onUpdate(AjaxRequestTarget target) { target.addComponent(permissionChoice); } @@ -259,35 +260,39 @@ if (rp.permission == null) { return; } + if (rp.registrant == null) { + return; + } RegistrantAccessPermission copy = DeepCopier.copy(rp); if (StringUtils.findInvalidCharacter(copy.registrant) != null) { copy.permissionType = PermissionType.REGEX; copy.source = copy.registrant; } permissions.add(copy); - + // resort permissions after insert to convey idea of eval order Collections.sort(permissions); - + // remove registrant from available choices registrants.remove(rp.registrant); - + // force the panel to refresh target.addComponent(RegistrantPermissionsPanel.this); } }; addPermissionForm.add(button); - + // only show add permission form if we have a registrant choice add(addPermissionForm.setVisible(registrants.size() > 0)); } - + + @Override protected boolean getStatelessHint() { return false; } - + private class AccessPermissionRenderer implements IChoiceRenderer<AccessPermission> { private static final long serialVersionUID = 1L; @@ -308,18 +313,18 @@ return Integer.toString(index); } } - + private class ShowStateButton extends AjaxButton { private static final long serialVersionUID = 1L; Show buttonState; - + public ShowStateButton(String wicketId, Show state) { super(wicketId); this.buttonState = state; setOutputMarkupId(true); } - + @Override protected void onBeforeRender() { @@ -330,7 +335,7 @@ WicketUtils.setCssClass(this, cssClass); super.onBeforeRender(); } - + @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { RegistrantPermissionsPanel.this.activeState = buttonState; -- Gitblit v1.9.1