PolyGerrit: Add support for showing or hiding the star from the change list

Bug: Issue 7406
Change-Id: Ia7be6898bc00dbe9273f061761566587786f930e
(cherry picked from commit 0771a491c8)
This commit is contained in:
Paladox none
2017-10-12 11:29:45 +00:00
parent efa8666c48
commit f5f89beb70
11 changed files with 41 additions and 17 deletions

View File

@@ -25,6 +25,7 @@ limitations under the License.
columnNames: {
type: Array,
value: [
'Star',
'Subject',
'Status',
'Owner',

View File

@@ -58,6 +58,7 @@ limitations under the License.
test('getComplementColumns', () => {
let columns = [
'Star',
'Subject',
'Status',
'Owner',
@@ -70,6 +71,7 @@ limitations under the License.
assert.deepEqual(element.getComplementColumns(columns), []);
columns = [
'Star',
'Subject',
'Status',
'Assignee',
@@ -84,6 +86,7 @@ limitations under the License.
test('isColumnHidden', () => {
const columnToCheck = 'Project';
let columnsToDisplay = [
'Star',
'Subject',
'Status',
'Owner',
@@ -96,6 +99,7 @@ limitations under the License.
assert.isFalse(element.isColumnHidden(columnToCheck, columnsToDisplay));
columnsToDisplay = [
'Star',
'Subject',
'Status',
'Owner',

View File

@@ -109,7 +109,8 @@ limitations under the License.
<td class="cell keyboard">
<span class="positionIndicator">&#x25b6;</span>
</td>
<td class="cell star" hidden$="[[!showStar]]" hidden>
<td class="cell star"
hidden$="[[_computeHideStar(loggedIn, visibleChangeTableColumns)]]">
<gr-change-star change="{{change}}"></gr-change-star>
</td>
<td class="cell number" hidden$="[[!showNumber]]" hidden>

View File

@@ -29,11 +29,8 @@
type: String,
computed: '_computeChangeURL(change)',
},
showStar: {
type: Boolean,
value: false,
},
showNumber: Boolean,
loggedIn: Boolean,
},
behaviors: [
@@ -115,5 +112,10 @@
if (!change.topic) { return ''; }
return Gerrit.Nav.getUrlForTopic(change.topic);
},
_computeHideStar(loggedIn, visibleChangeTableColumns) {
return !loggedIn ||
this.isColumnHidden('Star', visibleChangeTableColumns) ? true : false;
},
});
})();

View File

@@ -116,6 +116,7 @@ limitations under the License.
test('no hidden columns', () => {
element.visibleChangeTableColumns = [
'Star',
'Subject',
'Status',
'Owner',
@@ -136,6 +137,7 @@ limitations under the License.
test('no hidden columns', () => {
element.visibleChangeTableColumns = [
'Star',
'Subject',
'Status',
'Owner',
@@ -156,6 +158,7 @@ limitations under the License.
test('project column hidden', () => {
element.visibleChangeTableColumns = [
'Star',
'Subject',
'Status',
'Owner',

View File

@@ -64,8 +64,7 @@ limitations under the License.
class$="[[_computeUserHeaderClass(_userId)]]"></gr-user-header>
<gr-change-list
changes="{{_changes}}"
selected-index="{{viewState.selectedChangeIndex}}"
show-star="[[loggedIn]]"></gr-change-list>
selected-index="{{viewState.selectedChangeIndex}}"></gr-change-list>
<nav>
<a id="prevArrow"
href$="[[_computeNavLink(_query, _offset, -1, _changesPerPage)]]"

View File

@@ -58,10 +58,11 @@ limitations under the License.
<table id="changeList">
<tr class="headerRow">
<th class="topHeader keyboard"></th>
<th class="topHeader star" hidden$="[[!showStar]]" hidden></th>
<th class="topHeader star"
hidden$="[[_computeHideStar(_loggedIn, visibleChangeTableColumns)]]"></th>
<th class="topHeader number" hidden$="[[!showNumber]]" hidden>#</th>
<template is="dom-repeat" items="[[changeTableColumns]]" as="item">
<th class$="[[_lowerCase(item)]] topHeader"
<th class$="topHeader [[_lowerCase(item)]]"
hidden$="[[isColumnHidden(item, visibleChangeTableColumns)]]">
[[item]]
</th>
@@ -100,8 +101,8 @@ limitations under the License.
change="[[change]]"
visible-change-table-columns="[[visibleChangeTableColumns]]"
show-number="[[showNumber]]"
show-star="[[showStar]]"
label-names="[[labelNames]]"></gr-change-list-item>
label-names="[[labelNames]]"
logged-in="[[_loggedIn]]"></gr-change-list-item>
</template>
</template>
</table>

View File

@@ -75,10 +75,6 @@
notify: true,
},
showNumber: Boolean, // No default value to prevent flickering.
showStar: {
type: Boolean,
value: false,
},
showReviewedState: {
type: Boolean,
value: false,
@@ -89,6 +85,10 @@
},
changeTableColumns: Array,
visibleChangeTableColumns: Array,
_loggedIn: {
type: Boolean,
value: false,
},
},
behaviors: [
@@ -137,7 +137,11 @@
_loadPreferences() {
return this._getLoggedIn().then(loggedIn => {
this.changeTableColumns = this.columnNames;
this._loggedIn = loggedIn;
this.changeTableColumns = this.columnNames.filter(column => {
return column !== 'Star';
});
if (!loggedIn) {
this.showNumber = false;
@@ -314,6 +318,11 @@
return null;
},
_computeHideStar(loggedIn, visibleChangeTableColumns) {
return !loggedIn ||
this.isColumnHidden('Star', visibleChangeTableColumns) ? true : false;
},
_getListItems() {
return Polymer.dom(this.root).querySelectorAll('gr-change-list-item');
},

View File

@@ -301,6 +301,7 @@ limitations under the License.
legacycid_in_change_table: true,
time_format: 'HHMM_12',
change_table: [
'Star',
'Subject',
'Status',
'Owner',
@@ -332,6 +333,7 @@ limitations under the License.
legacycid_in_change_table: true,
time_format: 'HHMM_12',
change_table: [
'Star',
'Subject',
'Status',
'Owner',

View File

@@ -43,7 +43,6 @@ limitations under the License.
<div class="loading" hidden$="[[!_loading]]">Loading...</div>
<div hidden$="[[_loading]]" hidden>
<gr-change-list
show-star
show-reviewed-state
account="[[account]]"
selected-index="{{viewState.selectedChangeIndex}}"

View File

@@ -42,6 +42,7 @@ limitations under the License.
sandbox = sinon.sandbox.create();
columns = [
'Star',
'Subject',
'Status',
'Owner',
@@ -147,6 +148,7 @@ limitations under the License.
let checked = false;
assert.deepEqual(element._updateDisplayedColumns(columns, name, checked),
[
'Star',
'Status',
'Owner',
'Assignee',
@@ -158,6 +160,7 @@ limitations under the License.
checked = true;
assert.deepEqual(element._updateDisplayedColumns(columns, name, checked),
[
'Star',
'Subject',
'Status',
'Owner',