summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomas Daarstad <tomas.daarstad@tieto.com>2012-03-20 12:31:04 +0100
committerTomas Daarstad <tomas.daarstad@tieto.com>2012-03-26 12:39:06 +0200
commitc8d26cd439c9e917109f683a8792541c78e1deaa (patch)
tree0564f2717e5f6ba81d9d44ad5cf161d931b9dce6
parent63b9d6e194daccaeedf7f8c221c7f60fc3fcbe18 (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
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeSetComplexDisclosurePanel.java74
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeSetsBlock.java20
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable.java45
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/TopicScreen.java7
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/project/TopicControl.java34
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;
}
}