diff options
author | Tomas Daarstad <tomas.daarstad@tieto.com> | 2012-03-20 12:31:04 +0100 |
---|---|---|
committer | Tomas Daarstad <tomas.daarstad@tieto.com> | 2012-03-26 12:39:06 +0200 |
commit | c8d26cd439c9e917109f683a8792541c78e1deaa (patch) | |
tree | 0564f2717e5f6ba81d9d44ad5cf161d931b9dce6 | |
parent | 63b9d6e194daccaeedf7f8c221c7f60fc3fcbe18 (diff) |
Integration release of NQt GerritRC-V2.2.1-INT-014BL-QTQAINFRA-357
Fixed JIRA issues:
167 Fixed gerrit email verification link requires insecure login
195 Added support for European style dates
220 Added a check to prevent NumberFormatException
270 Fixed review database update from StagingApprove
335 Fixed automatic update of reviewer list
340 Don't send mail for publishing comments for stage approved
347 Fixed late removal of review approvals
348 Fixed cherry pick footer settings
350 Consider sanity review column
352 Fix typo in project config's topic review checkbox label
355 Hide review panel also on diff and topic pages
366 Fixed QTQAINFRA-366, buttons are enabled when all changes are max pos reviwed
372 Validate topic current change set
375 Topic permalink copy to clipboard corrected
381 Do not permit trailing slash when pushing
382 Integration release of NQt Gerrit
382 Added a check to prevent NullPointerException Added a check to prevent ArrayIndexOutOfBoundsException
385 Keep highlight on review request
389 Set patch approval changeOpen to false
411 Updated to use current patch id in loadFileList method.
456 Remove leading and trailing whitespace in username when creating a request
462 Updated for eclipse 3.7, m2e and fixed the full name of the MAVEN2_CLASSPATH_CONTAINER
468 Fixed the Review score put on wrong change
Change-Id: I067e518444be45b51dd63aea77f37b9edca06540
5 files changed, 90 insertions, 90 deletions
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeSetComplexDisclosurePanel.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeSetComplexDisclosurePanel.java index 2ba5201d55..d904f82770 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeSetComplexDisclosurePanel.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeSetComplexDisclosurePanel.java @@ -14,7 +14,6 @@ package com.google.gerrit.client.changes; -import com.google.gerrit.client.Dispatcher; import com.google.gerrit.client.Gerrit; import com.google.gerrit.client.changes.ChangeTable.ApprovalViewType; import com.google.gerrit.client.rpc.GerritCallback; @@ -35,8 +34,8 @@ import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.DisclosurePanel; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.Grid; -import com.google.gwt.user.client.ui.Panel; import com.google.gwt.user.client.ui.HTMLTable.CellFormatter; +import com.google.gwt.user.client.ui.Panel; import java.util.ArrayList; import java.util.List; @@ -57,6 +56,8 @@ class ChangeSetComplexDisclosurePanel extends CommonComplexDisclosurePanel { protected Hyperlink next; private ChangeSet.Id diffBaseId; + Button stageChangeSetButton; + Button submitChangeSetButton; /** * Creates a closed complex disclosure panel for a change set. @@ -129,7 +130,6 @@ class ChangeSetComplexDisclosurePanel extends CommonComplexDisclosurePanel { actionsPanel.setStyleName(Gerrit.RESOURCES.css().patchSetActions()); body.add(actionsPanel); if (Gerrit.isSignedIn()) { - populateReviewAction(); if (topicDetail.isCurrentChangeSet(detail)) { populateActions(detail); } @@ -168,14 +168,16 @@ class ChangeSetComplexDisclosurePanel extends CommonComplexDisclosurePanel { private void populateActions(final ChangeSetDetail detail) { final boolean isOpen = topicDetail.getTopic().getStatus().isOpen(); final boolean isNew = topicDetail.getTopic().getStatus() == Status.NEW; + if (isOpen && isNew && topicDetail.canStage()) { - final Button b = + + stageChangeSetButton = new Button(Util.TM .stageChangeSet(detail.getChangeSet().getChangeSetId())); - b.addClickHandler(new ClickHandler() { + stageChangeSetButton.addClickHandler(new ClickHandler() { @Override public void onClick(final ClickEvent event) { - b.setEnabled(false); + stageChangeSetButton.setEnabled(false); Util.T_MANAGE_SVC.stage(changeSet.getId(), new GerritCallback<TopicDetail>() { @Override @@ -185,23 +187,22 @@ class ChangeSetComplexDisclosurePanel extends CommonComplexDisclosurePanel { @Override public void onFailure(Throwable caught) { - b.setEnabled(true); super.onFailure(caught); } }); } }); - actionsPanel.add(b); + actionsPanel.add(stageChangeSetButton); } if (isOpen && topicDetail.canSubmit()) { - final Button b = + submitChangeSetButton = new Button(Util.TM .submitChangeSet(detail.getChangeSet().getChangeSetId())); - b.addClickHandler(new ClickHandler() { + submitChangeSetButton.addClickHandler(new ClickHandler() { @Override public void onClick(final ClickEvent event) { - b.setEnabled(false); + submitChangeSetButton.setEnabled(false); Util.T_MANAGE_SVC.submit(changeSet.getId(), new GerritCallback<TopicDetail>() { public void onSuccess(TopicDetail result) { @@ -210,13 +211,12 @@ class ChangeSetComplexDisclosurePanel extends CommonComplexDisclosurePanel { @Override public void onFailure(Throwable caught) { - b.setEnabled(true); super.onFailure(caught); } }); } }); - actionsPanel.add(b); + actionsPanel.add(submitChangeSetButton); } if (topicDetail.canRevert()) { @@ -297,30 +297,6 @@ class ChangeSetComplexDisclosurePanel extends CommonComplexDisclosurePanel { } } - private void populateReviewAction() { - final Button b = new Button(Util.TC.buttonReview()); - b.addClickHandler(new ClickHandler() { - @Override - public void onClick(final ClickEvent event) { - boolean integrating = false; - for (Change change : topicDetail.getCurrentChangeSetDetail().getChanges()) { - if (change.getStatus() == Status.INTEGRATING) { - integrating = true; - break; - } - } - if (integrating) { - alertMessageBox(Util.C.headingReviewDisabled(), - Util.C.messageReviewDisabled()) - .center(); - } else { - Gerrit.display(Dispatcher.toPublish(changeSet.getId())); - } - } - }); - actionsPanel.add(b); - } - public void refresh() { Util.T_DETAIL_SVC.changeSetDetail(changeSet.getId(), new GerritCallback<ChangeSetDetail>() { @@ -398,4 +374,28 @@ class ChangeSetComplexDisclosurePanel extends CommonComplexDisclosurePanel { } }; } + + /** + * topicDetail callback that updates status for the + * submitChangeSetButton and stageChangeSetButton + */ + public void topicDetailCallback() { + Util.T_DETAIL_SVC.topicDetail(topicDetail.getTopic().getId(), new GerritCallback<TopicDetail>() { + public void onSuccess(TopicDetail result) { + + if(changeTable.getChangeSetIsReviewed()){ + submitChangeSetButton.setEnabled(true); + stageChangeSetButton.setEnabled(true); + }else{ + submitChangeSetButton.setEnabled(false); + stageChangeSetButton.setEnabled(false); + } + } + + public void onFailure(Throwable caught) { + submitChangeSetButton.setEnabled(false); + stageChangeSetButton.setEnabled(false); + } + }); + } } diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeSetsBlock.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeSetsBlock.java index aa3c945dd8..3d75b2c363 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeSetsBlock.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeSetsBlock.java @@ -65,6 +65,8 @@ public class ChangeSetsBlock extends Composite { /** Change sets on this topic, in order. */ private List<ChangeSet> changeSets; + private ChangeSetComplexDisclosurePanel changeSetCmlxDiscPanel; + ChangeSetsBlock(final TopicScreen parent) { this.parent = parent; body = new FlowPanel(); @@ -97,15 +99,14 @@ public class ChangeSetsBlock extends Composite { changeSetPanelsList = new ArrayList<ChangeSetComplexDisclosurePanel>(); for (final ChangeSet cs : changeSets) { - final ChangeSetComplexDisclosurePanel p; if (cs == currcs) { - p = new ChangeSetComplexDisclosurePanel(parent, detail, detail.getCurrentChangeSetDetail()); + changeSetCmlxDiscPanel = new ChangeSetComplexDisclosurePanel(parent, detail, detail.getCurrentChangeSetDetail()); } else { - p = new ChangeSetComplexDisclosurePanel(parent, detail, cs); + changeSetCmlxDiscPanel = new ChangeSetComplexDisclosurePanel(parent, detail, cs); } - add(p); - changeSetPanelsList.add(p); + add(changeSetCmlxDiscPanel); + changeSetPanelsList.add(changeSetCmlxDiscPanel); } } @@ -271,4 +272,13 @@ public class ChangeSetsBlock extends Composite { } } } + + /** + * Update the enable/disable status for the + * submitChangeSetButton and stageChangeSetButton + */ + public void updateButtons() { + changeSetCmlxDiscPanel.topicDetailCallback(); + + } } diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable.java index 85ef39e76e..ca3bb40d2a 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable.java @@ -22,8 +22,8 @@ import com.google.gerrit.client.patches.PatchUtil; import com.google.gerrit.client.rpc.GerritCallback; import com.google.gerrit.client.ui.AbstractKeyNavigation.Action; import com.google.gerrit.client.ui.AccountDashboardLink; -import com.google.gerrit.client.ui.ChangeLink; import com.google.gerrit.client.ui.BranchTopicLink; +import com.google.gerrit.client.ui.ChangeLink; import com.google.gerrit.client.ui.NavigationTable; import com.google.gerrit.client.ui.NeedsSignInKeyCommand; import com.google.gerrit.client.ui.ProjectLink; @@ -47,14 +47,14 @@ import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.KeyPressEvent; import com.google.gwt.resources.client.ImageResource; import com.google.gwt.user.client.DOM; +import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter; import com.google.gwt.user.client.ui.FlowPanel; +import com.google.gwt.user.client.ui.HTMLTable.Cell; +import com.google.gwt.user.client.ui.HTMLTable.CellFormatter; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.InlineLabel; import com.google.gwt.user.client.ui.UIObject; import com.google.gwt.user.client.ui.Widget; -import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter; -import com.google.gwt.user.client.ui.HTMLTable.Cell; -import com.google.gwt.user.client.ui.HTMLTable.CellFormatter; import com.google.gwtjsonrpc.client.VoidResult; import java.util.ArrayList; @@ -77,6 +77,7 @@ public class ChangeTable extends NavigationTable<ChangeInfo> { private AccountInfoCache accountCache = AccountInfoCache.empty(); private final List<ApprovalType> approvalTypes; private final int columns; + private List<Boolean> changeSetIsReviewed = new ArrayList<Boolean>(); private class KeyNavigation extends DefaultKeyNavigation { @@ -322,6 +323,7 @@ public class ChangeTable extends NavigationTable<ChangeInfo> { summary.getApprovalMap(); int col = BASE_COLUMNS; boolean haveReview = false; + boolean isGreenChecked = false; boolean displayPersonNameInReviewCategory = false; @@ -342,6 +344,7 @@ public class ChangeTable extends NavigationTable<ChangeInfo> { if (ca == null || ca.getValue() == 0) { table.clearCell(row, col); + isGreenChecked = false; } else { if (!ca.getCategoryId().equals(ApprovalCategory.SANITY_REVIEW)) { @@ -361,7 +364,7 @@ public class ChangeTable extends NavigationTable<ChangeInfo> { } else { table.setWidget(row, col, new Image(Gerrit.RESOURCES.redNot())); } - + isGreenChecked = false; } else if (type.isMaxPositive(ca)) { if (displayPersonNameInReviewCategory) { @@ -373,6 +376,7 @@ public class ChangeTable extends NavigationTable<ChangeInfo> { table.setWidget(row, col, new Image(Gerrit.RESOURCES.greenCheck())); } + isGreenChecked = true; } else { String vstr = String.valueOf(ca.getValue()); @@ -387,6 +391,7 @@ public class ChangeTable extends NavigationTable<ChangeInfo> { fmt.addStyleName(row, col, Gerrit.RESOURCES.css().negscore()); } table.setText(row, col, vstr); + isGreenChecked = false; } // Some web browsers ignore the embedded newline; some like it; @@ -395,7 +400,7 @@ public class ChangeTable extends NavigationTable<ChangeInfo> { fmt.getElement(row, col).setTitle( acv.getName() + " \nby " + FormatUtil.nameEmail(ai)); } - + changeSetIsReviewed.add(isGreenChecked); col++; } @@ -414,13 +419,39 @@ public class ChangeTable extends NavigationTable<ChangeInfo> { for (int row = dataBegin; row < dataBegin + rows; row++) { final ChangeInfo c = getRowItem(row); if (ids.containsKey(c.getId())) { - displayApprovals(row, ids.get(c.getId()), aic, highlightUnreviewed); + displayApprovals(row, ids.get(c.getId()), aic, highlightUnreviewed); } } + + // ChangeSetsBlock widget + Widget csb = + getParent().getParent().getParent().getParent().getParent() + .getParent().getParent().getParent(); + + // TopicScreen widget + Widget w = + getParent().getParent().getParent().getParent().getParent() + .getParent().getParent().getParent().getParent().getParent() + .getParent(); + + if (w instanceof TopicScreen) { + ChangeSetsBlock cb = new ChangeSetsBlock((TopicScreen) w); + cb = (ChangeSetsBlock) csb; + cb.updateButtons(); + } } }; } + + /** + * Get the changeSet reviews + * @return true if no false exist in list + */ + public boolean getChangeSetIsReviewed() { + return !changeSetIsReviewed.contains(false); + } + public class StarKeyCommand extends NeedsSignInKeyCommand { public StarKeyCommand(int mask, char key, String help) { super(mask, key, help); diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/TopicScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/TopicScreen.java index 2916a6f9b6..42a3d39a6c 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/TopicScreen.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/TopicScreen.java @@ -56,7 +56,6 @@ public class TopicScreen extends Screen { private final ChangeSet.Id openChangeSetId; private TopicDescriptionBlock descriptionBlock; - private ApprovalTable approvals; private IncludedInTable includedInTable; private DisclosurePanel includedInPanel; @@ -175,9 +174,6 @@ public class TopicScreen extends Screen { descriptionBlock = new TopicDescriptionBlock(); add(descriptionBlock); - approvals = new ApprovalTable(); - add(approvals); - includedInPanel = new DisclosurePanel(Util.C.changeScreenIncludedIn()); includedInTable = new IncludedInTable(topicId); @@ -258,7 +254,6 @@ public class TopicScreen extends Screen { } dependencies.setAccountInfoCache(detail.getAccounts()); - approvals.setAccountInfoCache(detail.getAccounts()); descriptionBlock.display(detail.getTopic(), detail.getCurrentChangeSetDetail().getInfo(),detail.getAccounts()); @@ -266,8 +261,6 @@ public class TopicScreen extends Screen { dependsOn.display(detail.getDependsOn()); neededBy.display(detail.getNeededBy()); - approvals.display(detail); - for (ChangeSet cId : detail.getChangeSets()) { if (changesList != null) { changesList.addItem(Util.TM.changeSetHeader(cId.getChangeSetId()), cId diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/TopicControl.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/TopicControl.java index b93632d659..af6f1319bc 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/project/TopicControl.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/TopicControl.java @@ -14,7 +14,6 @@ package com.google.gerrit.server.project; -import com.google.gerrit.common.data.ApprovalType; import com.google.gerrit.common.data.ApprovalTypes; import com.google.gerrit.common.data.PermissionRange; import com.google.gerrit.reviewdb.ChangeSet; @@ -24,7 +23,6 @@ import com.google.gerrit.reviewdb.ReviewDb; import com.google.gerrit.reviewdb.Topic; import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.IdentifiedUser; -import com.google.gerrit.server.workflow.TopicCategoryFunction; import com.google.gerrit.server.workflow.TopicFunctionState; import com.google.gwtorm.client.OrmException; import com.google.inject.Inject; @@ -221,22 +219,6 @@ public class TopicControl { return result; } - final List<ChangeSetApproval> all = - db.changeSetApprovals().byChangeSet(changeSetId).toList(); - - final TopicFunctionState fs = - functionStateFactory.create(topic, changeSetId, all); - - for (ApprovalType c : approvalTypes.getApprovalTypes()) { - TopicCategoryFunction.forCategory(c.getCategory()).run(c, fs); - } - - for (ApprovalType type : approvalTypes.getApprovalTypes()) { - if (!fs.isValid(type)) { - return new CanSubmitResult("Requires " + type.getCategory().getName()); - } - } - return CanSubmitResult.OK; } @@ -282,22 +264,6 @@ public class TopicControl { return result; } - final List<ChangeSetApproval> all = - db.changeSetApprovals().byChangeSet(changeSetId).toList(); - - final TopicFunctionState fs = - functionStateFactory.create(topic, changeSetId, all); - - for (ApprovalType c : approvalTypes.getApprovalTypes()) { - TopicCategoryFunction.forCategory(c.getCategory()).run(c, fs); - } - - for (ApprovalType type : approvalTypes.getApprovalTypes()) { - if (!fs.isValid(type)) { - return new CanSubmitResult("Requires " + type.getCategory().getName()); - } - } - return CanSubmitResult.OK; } } |