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: { columnNames: {
type: Array, type: Array,
value: [ value: [
'Star',
'Subject', 'Subject',
'Status', 'Status',
'Owner', 'Owner',

View File

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

View File

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

View File

@@ -29,11 +29,8 @@
type: String, type: String,
computed: '_computeChangeURL(change)', computed: '_computeChangeURL(change)',
}, },
showStar: {
type: Boolean,
value: false,
},
showNumber: Boolean, showNumber: Boolean,
loggedIn: Boolean,
}, },
behaviors: [ behaviors: [
@@ -115,5 +112,10 @@
if (!change.topic) { return ''; } if (!change.topic) { return ''; }
return Gerrit.Nav.getUrlForTopic(change.topic); 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', () => { test('no hidden columns', () => {
element.visibleChangeTableColumns = [ element.visibleChangeTableColumns = [
'Star',
'Subject', 'Subject',
'Status', 'Status',
'Owner', 'Owner',
@@ -136,6 +137,7 @@ limitations under the License.
test('no hidden columns', () => { test('no hidden columns', () => {
element.visibleChangeTableColumns = [ element.visibleChangeTableColumns = [
'Star',
'Subject', 'Subject',
'Status', 'Status',
'Owner', 'Owner',
@@ -156,6 +158,7 @@ limitations under the License.
test('project column hidden', () => { test('project column hidden', () => {
element.visibleChangeTableColumns = [ element.visibleChangeTableColumns = [
'Star',
'Subject', 'Subject',
'Status', 'Status',
'Owner', 'Owner',

View File

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

View File

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

View File

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

View File

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

View File

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