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:
@@ -25,6 +25,7 @@ limitations under the License.
|
|||||||
columnNames: {
|
columnNames: {
|
||||||
type: Array,
|
type: Array,
|
||||||
value: [
|
value: [
|
||||||
|
'Star',
|
||||||
'Subject',
|
'Subject',
|
||||||
'Status',
|
'Status',
|
||||||
'Owner',
|
'Owner',
|
||||||
|
@@ -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',
|
||||||
|
@@ -109,7 +109,8 @@ limitations under the License.
|
|||||||
<td class="cell keyboard">
|
<td class="cell keyboard">
|
||||||
<span class="positionIndicator">▶</span>
|
<span class="positionIndicator">▶</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>
|
||||||
|
@@ -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;
|
||||||
|
},
|
||||||
});
|
});
|
||||||
})();
|
})();
|
||||||
|
@@ -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',
|
||||||
|
@@ -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)]]"
|
||||||
|
@@ -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>
|
||||||
|
@@ -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');
|
||||||
},
|
},
|
||||||
|
@@ -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',
|
||||||
|
@@ -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}}"
|
||||||
|
@@ -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',
|
||||||
|
Reference in New Issue
Block a user