Merge changes I6ff6e744,Ida428b34,I18ff5d2d,I769d2378,I68858427
* changes:
Remove unused getNaturalHeight form gr-diff-comment-thread
Explicitly make file comments dependent on the comments prop
Provide proper redirect upon login
Vertically align gr-diff-view controls
Don’t attempt to set label values on old patch sets
diff --git a/polygerrit-ui/app/elements/change/gr-comment-list/gr-comment-list.html b/polygerrit-ui/app/elements/change/gr-comment-list/gr-comment-list.html
index 263fb28..da15406 100644
--- a/polygerrit-ui/app/elements/change/gr-comment-list/gr-comment-list.html
+++ b/polygerrit-ui/app/elements/change/gr-comment-list/gr-comment-list.html
@@ -42,12 +42,12 @@
word-wrap: break-word;
}
</style>
- <template is="dom-repeat" items="{{_files}}" as="file">
+ <template is="dom-repeat" items="[[_files]]" as="file">
<div class="file">
<a href$="[[_computeFileDiffURL(file, changeNum, patchNum)]]">[[file]]</a>:
</div>
<template is="dom-repeat"
- items="[[_computeCommentsForFile(file)]]" as="comment">
+ items="[[_computeCommentsForFile(comments, file)]]" as="comment">
<div class="container">
<a class="lineNum"
href$="[[_computeDiffLineURL(file, changeNum, comment.patch_set, comment)]]">
diff --git a/polygerrit-ui/app/elements/change/gr-comment-list/gr-comment-list.js b/polygerrit-ui/app/elements/change/gr-comment-list/gr-comment-list.js
index b40c18e..c23c373 100644
--- a/polygerrit-ui/app/elements/change/gr-comment-list/gr-comment-list.js
+++ b/polygerrit-ui/app/elements/change/gr-comment-list/gr-comment-list.js
@@ -19,17 +19,17 @@
properties: {
changeNum: Number,
- comments: {
- type: Object,
- observer: '_commentsChanged',
- },
+ comments: Object,
patchNum: Number,
- _files: Array,
+ _files: {
+ type: Array,
+ computed: '_computeFiles(comments)',
+ },
},
- _commentsChanged: function(value) {
- this._files = Object.keys(value || {}).sort();
+ _computeFiles: function(comments) {
+ return Object.keys(comments || {}).sort();
},
_computeFileDiffURL: function(file, changeNum, patchNum) {
@@ -45,8 +45,8 @@
return diffURL;
},
- _computeCommentsForFile: function(file) {
- return this.comments[file];
+ _computeCommentsForFile: function(comments, file) {
+ return comments[file];
},
_computePatchDisplayName: function(comment) {
diff --git a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.js b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.js
index ae57be3..c89cb93 100644
--- a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.js
+++ b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.js
@@ -146,6 +146,10 @@
};
for (var label in this.permittedLabels) {
var selectorEl = this.$$('iron-selector[data-label="' + label + '"]');
+
+ // The selector may not be present if it’s not at the latest patch set.
+ if (!selectorEl) { continue; }
+
var selectedVal = selectorEl.selectedItem.getAttribute('data-value');
selectedVal = parseInt(selectedVal, 10);
obj.labels[label] = selectedVal;
diff --git a/polygerrit-ui/app/elements/core/gr-main-header/gr-main-header.html b/polygerrit-ui/app/elements/core/gr-main-header/gr-main-header.html
index c6d8dbc..930c8cf 100644
--- a/polygerrit-ui/app/elements/core/gr-main-header/gr-main-header.html
+++ b/polygerrit-ui/app/elements/core/gr-main-header/gr-main-header.html
@@ -148,7 +148,7 @@
<div class="rightItems">
<gr-search-bar value="{{searchQuery}}" role="search"></gr-search-bar>
<div class="accountContainer" id="accountContainer">
- <a class="loginButton" href$="[[_computeRelativeURL('/login')]]" on-tap="_loginTapHandler">Sign in</a>
+ <a class="loginButton" href$="[[_loginURL]]" on-tap="_loginTapHandler">Sign in</a>
<gr-account-dropdown account="[[_account]]"></gr-account-dropdown>
</div>
</div>
diff --git a/polygerrit-ui/app/elements/core/gr-main-header/gr-main-header.js b/polygerrit-ui/app/elements/core/gr-main-header/gr-main-header.js
index 186932a..6fc3cc1 100644
--- a/polygerrit-ui/app/elements/core/gr-main-header/gr-main-header.js
+++ b/polygerrit-ui/app/elements/core/gr-main-header/gr-main-header.js
@@ -56,6 +56,10 @@
type: Array,
computed: '_computeLinks(_defaultLinks, _userLinks)',
},
+ _loginURL: {
+ type: String,
+ value: '/login',
+ },
_userLinks: {
type: Array,
value: function() { return []; },
@@ -68,6 +72,18 @@
attached: function() {
this._loadAccount();
+ this.listen(window, 'location-change', '_handleLocationChange');
+ },
+
+ detached: function() {
+ this.unlisten(window, 'location-change', '_handleLocationChange');
+ },
+
+ _handleLocationChange: function(e) {
+ this._loginURL = '/login/' + encodeURIComponent(
+ window.location.pathname +
+ window.location.search +
+ window.location.hash);
},
_computeRelativeURL: function(path) {
diff --git a/polygerrit-ui/app/elements/core/gr-router/gr-router.js b/polygerrit-ui/app/elements/core/gr-router/gr-router.js
index 9145ba1..dea0d1d 100644
--- a/polygerrit-ui/app/elements/core/gr-router/gr-router.js
+++ b/polygerrit-ui/app/elements/core/gr-router/gr-router.js
@@ -23,6 +23,12 @@
// Middleware
page(function(ctx, next) {
document.body.scrollTop = 0;
+
+ // Fire asynchronously so that the URL is changed by the time the event
+ // is processed.
+ app.async(function() {
+ app.fire('location-change');
+ }, 1);
next();
});
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-comment-thread/gr-diff-comment-thread.js b/polygerrit-ui/app/elements/diff/gr-diff-comment-thread/gr-diff-comment-thread.js
index b827d26..a6e65ef 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-comment-thread/gr-diff-comment-thread.js
+++ b/polygerrit-ui/app/elements/diff/gr-diff-comment-thread/gr-diff-comment-thread.js
@@ -41,10 +41,6 @@
_orderedComments: Array,
},
- get naturalHeight() {
- return this.$.container.offsetHeight;
- },
-
observers: [
'_commentsChanged(comments.splices)',
],
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.html b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.html
index 68fed9e..0e99a15 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.html
+++ b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.html
@@ -97,6 +97,7 @@
color: #666;
}
.header {
+ align-items: center;
display: flex;
justify-content: space-between;
margin: 0 var(--default-horizontal-margin) .75em;
diff --git a/polygerrit-ui/app/elements/gr-app.js b/polygerrit-ui/app/elements/gr-app.js
index 684120e..affcd44 100644
--- a/polygerrit-ui/app/elements/gr-app.js
+++ b/polygerrit-ui/app/elements/gr-app.js
@@ -17,6 +17,12 @@
Polymer({
is: 'gr-app',
+ /**
+ * Fired when the URL location changes.
+ *
+ * @event location-change
+ */
+
properties: {
params: Object,
keyEventTarget: {