Set project's maxObjectSizeLimit from UI

Change-Id: I72fa228f1f78e692c8bc639ef15582c7fd099909
This commit is contained in:
Sasa Zivkov
2013-07-01 16:49:47 +02:00
committed by David Pursehouse
parent 360340cbb9
commit 50c5cac611
3 changed files with 36 additions and 7 deletions

View File

@@ -24,6 +24,7 @@ public class ProjectDetail {
public boolean canModifyAgreements;
public boolean canModifyAccess;
public boolean canModifyState;
public boolean canModifyMaxObjectSizeLimit;
public boolean isPermissionOnly;
public InheritedBoolean useContributorAgreements;
public InheritedBoolean useSignedOffBy;
@@ -49,6 +50,10 @@ public class ProjectDetail {
canModifyState = cms;
}
public void setCanModifyMaxObjectSizeLimit(final boolean cmmosl) {
canModifyMaxObjectSizeLimit = cmmosl;
}
public void setCanModifyAgreements(final boolean cma) {
canModifyAgreements = cma;
}

View File

@@ -32,15 +32,16 @@ import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwtexpui.globalkey.client.NpTextArea;
import com.google.gwtexpui.globalkey.client.NpTextBox;
public class ProjectInfoScreen extends ProjectScreen {
private String projectName;
private Project project;
private ProjectDetail projectDetail;
private LabeledWidgetsGrid grid;
@@ -49,7 +50,7 @@ public class ProjectInfoScreen extends ProjectScreen {
private ListBox submitType;
private ListBox state;
private ListBox contentMerge;
private Label maxObjectSizeLimit;
private NpTextBox maxObjectSizeLimit;
// Section: Contributor Agreements
private ListBox contributorAgreements;
@@ -94,7 +95,8 @@ public class ProjectInfoScreen extends ProjectScreen {
new ScreenLoadCallback<ProjectDetail>(this) {
public void preDisplay(final ProjectDetail result) {
enableForm(result.canModifyAgreements,
result.canModifyDescription, result.canModifyMergeType, result.canModifyState);
result.canModifyDescription, result.canModifyMergeType, result.canModifyState,
result.canModifyMaxObjectSizeLimit);
saveProject.setVisible(
result.canModifyAgreements ||
result.canModifyDescription ||
@@ -106,9 +108,19 @@ public class ProjectInfoScreen extends ProjectScreen {
savedPanel = INFO;
}
private void enableForm() {
if (projectDetail != null) {
enableForm(projectDetail.canModifyAgreements,
projectDetail.canModifyDescription,
projectDetail.canModifyMergeType,
projectDetail.canModifyState,
projectDetail.canModifyMaxObjectSizeLimit);
}
}
private void enableForm(final boolean canModifyAgreements,
final boolean canModifyDescription, final boolean canModifyMergeType,
final boolean canModifyState) {
final boolean canModifyState, final boolean canModifyMaxObjectSizeLimit) {
submitType.setEnabled(canModifyMergeType);
state.setEnabled(canModifyState);
contentMerge.setEnabled(canModifyMergeType);
@@ -116,6 +128,7 @@ public class ProjectInfoScreen extends ProjectScreen {
contributorAgreements.setEnabled(canModifyAgreements);
signedOffBy.setEnabled(canModifyAgreements);
requireChangeID.setEnabled(canModifyMergeType);
maxObjectSizeLimit.setEnabled(canModifyMaxObjectSizeLimit);
}
private void initDescription() {
@@ -163,7 +176,8 @@ public class ProjectInfoScreen extends ProjectScreen {
saveEnabler.listenTo(requireChangeID);
grid.addHtml(Util.C.requireChangeID(), requireChangeID);
maxObjectSizeLimit = new Label();
maxObjectSizeLimit = new NpTextBox();
saveEnabler.listenTo(maxObjectSizeLimit);
grid.addHtml(Util.C.headingMaxObjectSizeLimit(), maxObjectSizeLimit);
}
@@ -285,6 +299,8 @@ public class ProjectInfoScreen extends ProjectScreen {
maxObjectSizeLimit.setText(project.getMaxObjectSizeLimit());
saveProject.setEnabled(false);
projectDetail = result;
}
private void doSave() {
@@ -293,6 +309,7 @@ public class ProjectInfoScreen extends ProjectScreen {
project.setUseSignedOffBy(getBool(signedOffBy));
project.setUseContentMerge(getBool(contentMerge));
project.setRequireChangeID(getBool(requireChangeID));
project.setMaxObjectSizeLimit(maxObjectSizeLimit.getText().trim());
if (submitType.getSelectedIndex() >= 0) {
project.setSubmitType(Project.SubmitType.valueOf(submitType
.getValue(submitType.getSelectedIndex())));
@@ -302,15 +319,21 @@ public class ProjectInfoScreen extends ProjectScreen {
.getValue(state.getSelectedIndex())));
}
enableForm(false, false, false, false);
enableForm(false, false, false, false, false);
Util.PROJECT_SVC.changeProjectSettings(project,
new GerritCallback<ProjectDetail>() {
public void onSuccess(final ProjectDetail result) {
enableForm(result.canModifyAgreements,
result.canModifyDescription, result.canModifyMergeType, result.canModifyState);
result.canModifyDescription, result.canModifyMergeType, result.canModifyState,
result.canModifyMaxObjectSizeLimit);
display(result);
}
@Override
public void onFailure(Throwable caught) {
super.onFailure(caught);
enableForm();
}
});
}

View File

@@ -69,6 +69,7 @@ class ProjectDetailFactory extends Handler<ProjectDetail> {
detail.setCanModifyDescription(userIsOwner);
detail.setCanModifyMergeType(userIsOwner);
detail.setCanModifyState(userIsOwner);
detail.setCanModifyMaxObjectSizeLimit(userIsOwner);
final InheritedBoolean useContributorAgreements = new InheritedBoolean();
final InheritedBoolean useSignedOffBy = new InheritedBoolean();