Merge "Wrap file names into multiple lines if its too long"
diff --git a/java/com/google/gerrit/common/data/SubmitTypeRecord.java b/java/com/google/gerrit/common/data/SubmitTypeRecord.java
index d16da96..afb3bac 100644
--- a/java/com/google/gerrit/common/data/SubmitTypeRecord.java
+++ b/java/com/google/gerrit/common/data/SubmitTypeRecord.java
@@ -65,7 +65,7 @@
StringBuilder sb = new StringBuilder();
sb.append(status);
if (status == Status.RULE_ERROR && errorMessage != null) {
- sb.append('(').append(errorMessage).append(")");
+ sb.append(" (").append(errorMessage).append(")");
}
if (type != null) {
sb.append('[');
diff --git a/java/com/google/gerrit/server/restapi/change/Mergeable.java b/java/com/google/gerrit/server/restapi/change/Mergeable.java
index 9b17ed6..cce8923 100644
--- a/java/com/google/gerrit/server/restapi/change/Mergeable.java
+++ b/java/com/google/gerrit/server/restapi/change/Mergeable.java
@@ -17,7 +17,6 @@
import com.google.gerrit.common.data.SubmitTypeRecord;
import com.google.gerrit.entities.Change;
import com.google.gerrit.entities.PatchSet;
-import com.google.gerrit.exceptions.StorageException;
import com.google.gerrit.extensions.client.SubmitType;
import com.google.gerrit.extensions.common.MergeableInfo;
import com.google.gerrit.extensions.restapi.AuthException;
@@ -133,10 +132,10 @@
return Response.ok(result);
}
- private SubmitType getSubmitType(ChangeData cd) {
+ private SubmitType getSubmitType(ChangeData cd) throws ResourceConflictException {
SubmitTypeRecord rec = submitRuleEvaluator.getSubmitType(cd);
if (rec.status != SubmitTypeRecord.Status.OK) {
- throw new StorageException("Submit type rule failed: " + rec);
+ throw new ResourceConflictException("submit type rule error: " + rec.errorMessage);
}
return rec.type;
}
diff --git a/plugins/gitiles b/plugins/gitiles
index 3531010..22b8e24 160000
--- a/plugins/gitiles
+++ b/plugins/gitiles
@@ -1 +1 @@
-Subproject commit 3531010e04d9d548fe1fd93662ca85ae25d4a9a6
+Subproject commit 22b8e242b5eaa9eae817b776bc862b096479ceaa
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-cursor/gr-diff-cursor.js b/polygerrit-ui/app/elements/diff/gr-diff-cursor/gr-diff-cursor.js
index 039a99fa..fc4173c 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-cursor/gr-diff-cursor.js
+++ b/polygerrit-ui/app/elements/diff/gr-diff-cursor/gr-diff-cursor.js
@@ -35,9 +35,9 @@
const LEFT_SIDE_CLASS = 'target-side-left';
const RIGHT_SIDE_CLASS = 'target-side-right';
- class GrDiffCursor extends Polymer.GestureEventListeners(
- Polymer.LegacyElementMixin(
- Polymer.Element)) {
+ class GrDiffCursor extends Polymer.mixinBehaviors([Gerrit.FireBehavior],
+ Polymer.GestureEventListeners(
+ Polymer.LegacyElementMixin(Polymer.Element))) {
static get is() { return 'gr-diff-cursor'; }
static get properties() {
@@ -105,6 +105,23 @@
];
}
+ ready() {
+ super.ready();
+ Polymer.RenderStatus.afterNextRender(this, () => {
+ /*
+ This represents the diff cursor is ready for interaction coming from
+ client components. It is more then Polymer "ready" lifecycle, as no
+ "ready" events are automatically fired by Polymer, it means
+ the cursor is completely interactable - in this case attached and
+ painted on the page. We name it "ready" instead of "rendered" as the
+ long-term goal is to make gr-diff-cursor a javascript class - not a DOM
+ element with an actual lifecycle. This will be triggered only once
+ per element.
+ */
+ this.fire('ready', null, {bubbles: false});
+ });
+ }
+
attached() {
super.attached();
// Catch when users are scrolling as the view loads.
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-cursor/gr-diff-cursor_test.html b/polygerrit-ui/app/elements/diff/gr-diff-cursor/gr-diff-cursor_test.html
index 626ab33..dff9e79 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-cursor/gr-diff-cursor_test.html
+++ b/polygerrit-ui/app/elements/diff/gr-diff-cursor/gr-diff-cursor_test.html
@@ -42,6 +42,12 @@
</template>
</test-fixture>
+<test-fixture id="empty">
+ <template>
+ <div></div>
+ </template>
+</test-fixture>
+
<script>
suite('gr-diff-cursor tests', () => {
let sandbox;
@@ -370,4 +376,24 @@
});
});
});
+
+ suite('gr-diff-cursor event tests', () => {
+ let sandbox;
+ let someEmptyDiv;
+
+ setup(() => {
+ sandbox = sinon.sandbox.create();
+ someEmptyDiv = fixture('empty');
+ });
+
+ teardown(() => sandbox.restore());
+
+ test('ready is fired after component is rendered', done => {
+ const cursorElement = document.createElement('gr-diff-cursor');
+ cursorElement.addEventListener('ready', () => {
+ done();
+ });
+ someEmptyDiv.appendChild(cursorElement);
+ });
+ });
</script>