Don't bold outgoing reviews in the dashboard

+ Also change property to needs-review since ‘unreviewed’ was
  kinda bleh.

Change-Id: Ia779e7d50c57315a108777774908b485d856fbce
This commit is contained in:
Andrew Bonventre
2016-03-02 16:58:15 -05:00
parent 0522c52daf
commit cad3e68d8b
5 changed files with 44 additions and 12 deletions

View File

@@ -126,6 +126,7 @@ limitations under the License.
</template>
<template is="dom-if" if="{{_showDashboardView}}" restamp="true">
<gr-dashboard-view
account="[[account]]"
params="[[params]]"
view-state="{{_viewState.dashboardView}}"></gr-dashboard-view>
</template>

View File

@@ -31,7 +31,7 @@ limitations under the License.
:host([selected]) {
background-color: #ebf5fb;
}
:host([unreviewed]) {
:host([needs-review]) {
font-weight: bold;
}
.cell {
@@ -98,7 +98,7 @@ limitations under the License.
value: false,
reflectToAttribute: true,
},
unreviewed: {
needsReview: {
type: Boolean,
value: false,
reflectToAttribute: true,

View File

@@ -55,7 +55,7 @@ limitations under the License.
<template is="dom-repeat" items="[[changeGroup]]" as="change">
<gr-change-list-item
selected$="[[_computeItemSelected(index, groupIndex, selectedIndex)]]"
unreviewed="[[_computeItemUnreviewed(change, showReviewedState)]]"
needs-review="[[_computeItemNeedsReview(account, change, showReviewedState)]]"
change="[[change]]"
show-star="[[showStar]]"
label-names="[[labelNames]]"></gr-change-list-item>
@@ -75,6 +75,14 @@ limitations under the License.
},
properties: {
/**
* The logged-in user's account, or an empty object if no user is logged
* in.
*/
account: {
type: Object,
value: function() { return {}; },
},
/**
* An array of ChangeInfo objects to render.
* https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#change-info
@@ -162,9 +170,10 @@ limitations under the License.
return idx == selectedIndex;
},
_computeItemUnreviewed: function(change, showReviewedState) {
_computeItemNeedsReview: function(account, change, showReviewedState) {
return showReviewedState && !change.reviewed &&
change.status != this.ChangeStatus.MERGED;
change.status != this.ChangeStatus.MERGED &&
account._account_id != change.owner._account_id;
},
_handleKey: function(e) {

View File

@@ -54,6 +54,7 @@ limitations under the License.
<gr-change-list
show-star
show-reviewed-state
account="[[account]]"
selected-index="{{viewState.selectedChangeIndex}}"
groups="{{_results}}"
group-titles="[[_groupTitles]]"></gr-change-list>
@@ -73,6 +74,10 @@ limitations under the License.
*/
properties: {
account: {
type: Object,
value: function() { return {}; },
},
viewState: Object,
_results: Array,

View File

@@ -105,35 +105,52 @@ limitations under the License.
}, 1);
});
test('unreviewed changes', function() {
test('changes needing review', function() {
element.changes = [
{
_number: 0,
reviewed: true,
owner: { _account_id: 0 },
},
{
_number: 1,
owner: { _account_id: 0 },
},
{
_number: 2,
status: 'MERGED',
owner: { _account_id: 0 },
},
{
_number: 3,
owner: { _account_id: 42 },
}
];
flushAsynchronousOperations();
var elementItems = Polymer.dom(element.root).querySelectorAll(
'gr-change-list-item');
assert.equal(elementItems.length, 3);
assert.equal(elementItems.length, 4);
for (var i = 0; i < elementItems.length; i++) {
assert.isFalse(elementItems[i].hasAttribute('unreviewed'));
assert.isFalse(elementItems[i].hasAttribute('needs-review'));
}
element.showReviewedState = true;
var elementItems = Polymer.dom(element.root).querySelectorAll(
'gr-change-list-item');
assert.equal(elementItems.length, 3);
assert.isFalse(elementItems[0].hasAttribute('unreviewed'));
assert.isTrue(elementItems[1].hasAttribute('unreviewed'));
assert.isFalse(elementItems[2].hasAttribute('unreviewed'));
assert.equal(elementItems.length, 4);
assert.isFalse(elementItems[0].hasAttribute('needs-review'));
assert.isTrue(elementItems[1].hasAttribute('needs-review'));
assert.isFalse(elementItems[2].hasAttribute('needs-review'));
assert.isTrue(elementItems[3].hasAttribute('needs-review'));
element.account = { _account_id: 42 };
var elementItems = Polymer.dom(element.root).querySelectorAll(
'gr-change-list-item');
assert.equal(elementItems.length, 4);
assert.isFalse(elementItems[0].hasAttribute('needs-review'));
assert.isTrue(elementItems[1].hasAttribute('needs-review'));
assert.isFalse(elementItems[2].hasAttribute('needs-review'));
assert.isFalse(elementItems[3].hasAttribute('needs-review'));
});
test('no changes', function() {