Merge "Add aria-label to size bar"
diff --git a/plugins/replication b/plugins/replication
index 3854fe6..d614bfa 160000
--- a/plugins/replication
+++ b/plugins/replication
@@ -1 +1 @@
-Subproject commit 3854fe670a93235840be4886415203f6ee22c5ad
+Subproject commit d614bfad94a6310eced5579a879ef1a9eb2e9f9a
diff --git a/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions.js b/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions.js
index 03a64a5..41d89df 100644
--- a/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions.js
+++ b/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions.js
@@ -87,12 +87,14 @@
PRIVATE: 'private',
PRIVATE_DELETE: 'private.delete',
PUBLISH_EDIT: 'publishEdit',
+ REBASE: 'rebase',
REBASE_EDIT: 'rebaseEdit',
RESTORE: 'restore',
REVERT: 'revert',
REVERT_SUBMISSION: 'revert_submission',
REVIEWED: 'reviewed',
STOP_EDIT: 'stopEdit',
+ SUBMIT: 'submit',
UNIGNORE: 'unignore',
UNREVIEWED: 'unreviewed',
WIP: 'wip',
@@ -1353,6 +1355,8 @@
case ChangeActions.DELETE_EDIT:
case ChangeActions.PUBLISH_EDIT:
case ChangeActions.REBASE_EDIT:
+ case ChangeActions.REBASE:
+ case ChangeActions.SUBMIT:
GerritNav.navigateToChange(this.change);
break;
case ChangeActions.REVERT_SUBMISSION:
diff --git a/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions_test.html b/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions_test.html
index a763250..cda53c5 100644
--- a/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions_test.html
+++ b/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions_test.html
@@ -415,6 +415,17 @@
});
});
+ test('rebase change calls navigateToChange', done => {
+ const navigateToChangeStub = sandbox.stub(GerritNav, 'navigateToChange');
+ sandbox.stub(element.$.restAPI, 'getResponseObject').returns(
+ Promise.resolve({}));
+ element._handleResponse({__key: 'rebase'}, {});
+ flush(() => {
+ assert.isTrue(navigateToChangeStub.called);
+ done();
+ });
+ });
+
test(`rebase dialog gets recent changes each time it's opened`, done => {
const fetchChangesStub = sandbox.stub(element.$.confirmRebase,
'fetchRecentChanges').returns(Promise.resolve([]));
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js
index 0b29298..26aecca 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js
@@ -1515,15 +1515,8 @@
});
}
- _handleReloadChange(e) {
- return this._reload().then(() => {
- // If the change was rebased or submitted, we need to reload the page
- // with the latest patch.
- const action = e.detail.action;
- if (action === 'rebase' || action === 'submit') {
- GerritNav.navigateToChange(this._change);
- }
- });
+ _handleReloadChange() {
+ return this._reload();
}
_handleGetChangeDetailError(response) {
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.js b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.js
index d0b91e2..3c949f2 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.js
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.js
@@ -1218,20 +1218,6 @@
assert.isTrue(collapseStub.calledTwice);
});
- test('related changes are updated and new patch selected after rebase',
- done => {
- element._changeNum = '42';
- sandbox.stub(element, 'computeLatestPatchNum', () => 1);
- sandbox.stub(element, '_reload',
- () => Promise.resolve());
- const e = {detail: {action: 'rebase'}};
- element._handleReloadChange(e).then(() => {
- assert.isTrue(navigateToChangeStub.lastCall.calledWithExactly(
- element._change));
- done();
- });
- });
-
test('related changes are not updated after other action', done => {
sandbox.stub(element, '_reload', () => Promise.resolve());
sandbox.stub(element.$.relatedChanges, 'reload');
diff --git a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_html.js b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_html.js
index 279e66c..d1238f3 100644
--- a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_html.js
+++ b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_html.js
@@ -75,6 +75,7 @@
font-size: var(--font-size-small);
background-color: var(--dark-add-highlight-color);
}
+ .status.invisible,
.status.M {
display: none;
}
diff --git a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list-experimental.js b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list-experimental.js
index 9037152..ae3a7d2 100644
--- a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list-experimental.js
+++ b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list-experimental.js
@@ -313,6 +313,11 @@
m.commentThreads = computeThreads(m, combinedMessages, changeComments);
m._revision_number = computeRevision(m, combinedMessages);
m.tag = computeTag(m);
+ });
+ // computeIsImportant() depends on tags and revision numbers already being
+ // updated for all messages, so we have to compute this in its own forEach
+ // loop.
+ combinedMessages.forEach(m => {
m.isImportant = computeIsImportant(m, combinedMessages);
});
return combinedMessages;
diff --git a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list-experimental_test.html b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list-experimental_test.html
index 65229e1..c520b05 100644
--- a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list-experimental_test.html
+++ b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list-experimental_test.html
@@ -420,6 +420,17 @@
assert.isFalse(TEST_ONLY.computeIsImportant(m3, [m1, m2, m3]));
});
+ test('isImportant is evaluated after tag update', () => {
+ const m1 = randomMessage(
+ {tag: MessageTag.TAG_NEW_PATCHSET, _revision_number: 1});
+ const m2 = randomMessage(
+ {tag: MessageTag.TAG_NEW_WIP_PATCHSET, _revision_number: 2});
+ element.messages = [m1, m2];
+ flushAsynchronousOperations();
+ assert.isFalse(m1.isImportant);
+ assert.isTrue(m2.isImportant);
+ });
+
test('messages without author do not throw', () => {
const messages = [{
_index: 5,
diff --git a/polygerrit-ui/app/elements/shared/gr-change-star/gr-change-star.js b/polygerrit-ui/app/elements/shared/gr-change-star/gr-change-star.js
index 886f0c1..dac1755 100644
--- a/polygerrit-ui/app/elements/shared/gr-change-star/gr-change-star.js
+++ b/polygerrit-ui/app/elements/shared/gr-change-star/gr-change-star.js
@@ -53,6 +53,10 @@
return `gr-icons:star${starred ? '' : '-border'}`;
}
+ _computeAriaLabel(starred) {
+ return starred ? 'Unstar this change' : 'Star this change';
+ }
+
toggleStar() {
const newVal = !this.change.starred;
this.set('change.starred', newVal);
diff --git a/polygerrit-ui/app/elements/shared/gr-change-star/gr-change-star_html.js b/polygerrit-ui/app/elements/shared/gr-change-star/gr-change-star_html.js
index f723717a..3b7b1af 100644
--- a/polygerrit-ui/app/elements/shared/gr-change-star/gr-change-star_html.js
+++ b/polygerrit-ui/app/elements/shared/gr-change-star/gr-change-star_html.js
@@ -37,7 +37,11 @@
);
}
</style>
- <button aria-label="Change star" on-click="toggleStar">
+ <button
+ role="checkbox"
+ aria-label="[[_computeAriaLabel(change.starred)]]]"
+ on-click="toggleStar"
+ >
<iron-icon
class$="[[_computeStarClass(change.starred)]]"
icon$="[[_computeStarIcon(change.starred)]]"
diff --git a/polygerrit-ui/app/elements/shared/gr-change-status/gr-change-status_html.js b/polygerrit-ui/app/elements/shared/gr-change-status/gr-change-status_html.js
index 904ef1d..38e620f 100644
--- a/polygerrit-ui/app/elements/shared/gr-change-status/gr-change-status_html.js
+++ b/polygerrit-ui/app/elements/shared/gr-change-status/gr-change-status_html.js
@@ -25,43 +25,43 @@
white-space: nowrap;
}
:host(.merged) .chip {
- background-color: #5b9d52;
- color: #5b9d52;
+ background-color: var(--status-merged);
+ color: var(--status-merged);
}
:host(.abandoned) .chip {
- background-color: #afafaf;
- color: #afafaf;
+ background-color: var(--status-abandoned);
+ color: var(--status-abandoned);
}
:host(.wip) .chip {
- background-color: #8f756c;
- color: #8f756c;
+ background-color: var(--status-wip);
+ color: var(--status-wip);
}
:host(.private) .chip {
- background-color: #c17ccf;
- color: #c17ccf;
+ background-color: var(--status-private);
+ color: var(--status-private);
}
:host(.merge-conflict) .chip {
- background-color: #dc5c60;
- color: #dc5c60;
+ background-color: var(--status-conflict);
+ color: var(--status-conflict);
}
:host(.active) .chip {
- background-color: #29b6f6;
- color: #29b6f6;
+ background-color: var(--status-active);
+ color: var(--status-active);
}
:host(.ready-to-submit) .chip {
- background-color: #e10ca3;
- color: #e10ca3;
+ background-color: var(--status-ready);
+ color: var(--status-ready);
}
:host(.custom) .chip {
- background-color: #825cc2;
- color: #825cc2;
+ background-color: var(--status-custom);
+ color: var(--status-custom);
}
:host([flat]) .chip {
background-color: transparent;
padding: 0;
}
:host(:not([flat])) .chip {
- color: white;
+ color: var(--status-text-color);
}
</style>
<gr-tooltip-content
diff --git a/polygerrit-ui/app/elements/shared/gr-comment/gr-comment_html.js b/polygerrit-ui/app/elements/shared/gr-comment/gr-comment_html.js
index b83cdf2..8b3ef8a 100644
--- a/polygerrit-ui/app/elements/shared/gr-comment/gr-comment_html.js
+++ b/polygerrit-ui/app/elements/shared/gr-comment/gr-comment_html.js
@@ -270,13 +270,13 @@
>
<iron-icon id="icon" icon="gr-icons:delete"></iron-icon>
</gr-button>
- <span class="date" on-click="_handleAnchorClick">
+ <span class="date" tabindex="0" on-click="_handleAnchorClick">
<gr-date-formatter
has-tooltip=""
date-str="[[comment.updated]]"
></gr-date-formatter>
</span>
- <div class="show-hide">
+ <div class="show-hide" tabindex="0">
<label
class="show-hide"
aria-label="[[_computeShowHideAriaLabel(collapsed)]]"
diff --git a/polygerrit-ui/app/styles/themes/app-theme.js b/polygerrit-ui/app/styles/themes/app-theme.js
index d76efe1..718d6a5 100644
--- a/polygerrit-ui/app/styles/themes/app-theme.js
+++ b/polygerrit-ui/app/styles/themes/app-theme.js
@@ -39,6 +39,7 @@
/* Used on text color for change list that doesn't need user's attention. */
--reviewed-text-color: black;
--vote-text-color: black;
+ --status-text-color: white;
--tooltip-text-color: white;
--negative-red-text-color: #d93025;
--positive-green-text-color: #188038;
@@ -84,6 +85,16 @@
--border-color: #e8e8e8;
--comment-separator-color: #dadce0;
+ /* status colors */
+ --status-merged: #188038;
+ --status-abandoned: #5f6368;
+ --status-wip: #795548;
+ --status-private: #a142f4;
+ --status-conflict: #d93025;
+ --status-active: #1976d2;
+ --status-ready: #b80672;
+ --status-custom: #681da8;
+
/* fonts */
--font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
--header-font-family: 'Open Sans', 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
diff --git a/polygerrit-ui/app/styles/themes/dark-theme.html b/polygerrit-ui/app/styles/themes/dark-theme.html
index f4cacd2..18b2fd6 100644
--- a/polygerrit-ui/app/styles/themes/dark-theme.html
+++ b/polygerrit-ui/app/styles/themes/dark-theme.html
@@ -37,6 +37,7 @@
/* Used on text color for change list doesn't need user's attention. */
--reviewed-text-color: #dadce0;
--vote-text-color: black;
+ --status-text-color: black;
--tooltip-text-color: white;
--negative-red-text-color: #f28b82;
--positive-green-text-color: #81c995;
@@ -72,6 +73,16 @@
--border-color: #5f6368;
--comment-separator-color: var(--border-color);
+ /* status colors */
+ --status-merged: #5bb974;
+ --status-abandoned: #dadce0;
+ --status-wip: #bcaaa4;
+ --status-private: #d7aefb;
+ --status-conflict: #f28b82;
+ --status-active: #669df6;
+ --status-ready: #f439a0;
+ --status-custom: #af5cf7;
+
/* fonts */
--font-weight-bold: 700; /* 700 is the same as 'bold' */