summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Fick <mfick@codeaurora.org>2011-03-21 14:25:23 -0600
committerMartin Fick <mfick@codeaurora.org>2011-04-07 18:11:57 -0600
commita97262446d28db3939cf7d98466c5b76ba406b34 (patch)
treed7bfd9317a8aa8bd831c2b219175e36b4590126a
parenta8d749b3e233cf989bcae137fa50a4b4fd530bf8 (diff)
Add "Show Inherited Rights" checkbox to Project Access Screen
The new "Show Inherited Rights" checkbox on the Project Access Screen makes it possible to hide any inherited access rights and only display access rights specific to the current project. Change-Id: Id93254d7f139f7ce53fc92c535a05ba60f72284e
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.java1
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties1
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectAccessScreen.java39
3 files changed, 33 insertions, 8 deletions
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.java
index bb826789b5..e2af6eed1f 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.java
@@ -48,6 +48,7 @@ public interface AdminConstants extends Constants {
String headingCreateGroup();
String headingAccessRights();
String headingAgreements();
+ String headingShowInherited();
String projectSubmitType_FAST_FORWARD_ONLY();
String projectSubmitType_MERGE_ALWAYS();
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties
index 1b31d7b455..49060bd464 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties
@@ -29,6 +29,7 @@ headingExternalGroup = Selected External Group
headingCreateGroup = Create New Group
headingAccessRights = Access Rights
headingAgreements = Contributor Agreements
+headingShowInherited = Show Inherited Rights
projectSubmitType_FAST_FORWARD_ONLY = Fast Forward Only
projectSubmitType_MERGE_IF_NECESSARY = Merge If Necessary
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectAccessScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectAccessScreen.java
index 547e81faee..4d3483a02b 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectAccessScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectAccessScreen.java
@@ -35,6 +35,7 @@ import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.CheckBox;
+import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
@@ -82,11 +83,24 @@ public class ProjectAccessScreen extends ProjectScreen {
}
private void initParent() {
- parentPanel = new VerticalPanel();
- parentPanel.add(new SmallHeading(Util.C.headingParentProjectName()));
-
parentName = new Hyperlink("", "");
- parentPanel.add(parentName);
+
+ final CheckBox show = new CheckBox();
+ show.setChecked(true);
+ show.addClickHandler(new ClickHandler() {
+ public void onClick(ClickEvent event) {
+ rights.showInherited(show.isChecked());
+ }
+ });
+
+ Grid g = new Grid(2, 3);
+ g.setWidget(0, 0, new SmallHeading(Util.C.headingParentProjectName()));
+ g.setWidget(1, 0, parentName);
+ g.setWidget(1, 1, show);
+ g.setText(1, 2, Util.C.headingShowInherited());
+
+ parentPanel = new VerticalPanel();
+ parentPanel.add(g);
add(parentPanel);
}
@@ -149,7 +163,7 @@ public class ProjectAccessScreen extends ProjectScreen {
}
}
- private class RightsTable extends FancyFlexTable<RefRight> {
+ private class RightsTable extends FancyFlexTable<InheritedRefRight> {
boolean canDelete;
Map<AccountGroup.Id, AccountGroup> groups;
@@ -180,7 +194,7 @@ public class ProjectAccessScreen extends ProjectScreen {
HashSet<RefRight.Key> getRefRightIdsChecked() {
final HashSet<RefRight.Key> refRightIds = new HashSet<RefRight.Key>();
for (int row = 1; row < table.getRowCount(); row++) {
- RefRight r = getRowItem(row);
+ RefRight r = getRowItem(row).getRight();
if (r != null && table.getWidget(row, 1) instanceof CheckBox
&& ((CheckBox) table.getWidget(row, 1)).getValue()) {
refRightIds.add(r.getKey());
@@ -204,9 +218,10 @@ public class ProjectAccessScreen extends ProjectScreen {
populate(row, r);
}
}
+
protected void onOpenRow(final int row) {
if (row > 0) {
- RefRight right = getRowItem(row);
+ RefRight right = getRowItem(row).getRight();
rightEditor.load(right, groups.get(right.getAccountGroupId()));
}
}
@@ -271,7 +286,15 @@ public class ProjectAccessScreen extends ProjectScreen {
fmt.addStyleName(row, 6, Gerrit.RESOURCES.css()
.projectAdminApprovalCategoryRangeLine());
- setRowItem(row, right);
+ setRowItem(row, r);
+ }
+
+ public void showInherited(boolean visible) {
+ for (int r = 0; r < table.getRowCount(); r++) {
+ if (getRowItem(r) != null && getRowItem(r).isInherited()) {
+ table.getRowFormatter().setVisible(r, visible);
+ }
+ }
}
private void formatValue(final SafeHtmlBuilder m, final short v,