blob: d12b2791c29134f83eb5e3df050907a8dcaee7a9 [file] [log] [blame]
/**
* @license
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
(function(window) {
'use strict';
window.Gerrit = window.Gerrit || {};
/** @polymerBehavior Gerrit.ChangeTableBehavior */
Gerrit.ChangeTableBehavior = {
properties: {
columnNames: {
type: Array,
value: [
'Subject',
'Status',
'Owner',
'Assignee',
'Repo',
'Branch',
'Updated',
'Size',
],
readOnly: true,
},
},
/**
* Returns the complement to the given column array
*
* @param {Array} columns
* @return {!Array}
*/
getComplementColumns(columns) {
return this.columnNames.filter(column => !columns.includes(column));
},
/**
* @param {string} columnToCheck
* @param {!Array} columnsToDisplay
* @return {boolean}
*/
isColumnHidden(columnToCheck, columnsToDisplay) {
if ([columnsToDisplay, columnToCheck].some(arg => arg === undefined)) {
return false;
}
return !columnsToDisplay.includes(columnToCheck);
},
/**
* The Project column was renamed to Repo, but some users may have
* preferences that use its old name. If that column is found, rename it
* before use.
*
* @param {!Array<string>} columns
* @return {!Array<string>} If the column was renamed, returns a new array
* with the corrected name. Otherwise, it returns the original param.
*/
getVisibleColumns(columns) {
const projectIndex = columns.indexOf('Project');
if (projectIndex === -1) { return columns; }
const newColumns = columns.slice(0);
newColumns[projectIndex] = 'Repo';
return newColumns;
},
};
// eslint-disable-next-line no-unused-vars
function defineEmptyMixin() {
// This is a temporary function.
// Polymer linter doesn't process correctly the following code:
// class MyElement extends Polymer.mixinBehaviors([legacyBehaviors], ...) {...}
// To workaround this issue, the mock mixin is declared in this method.
// In the following changes, legacy behaviors will be converted to mixins.
/**
* @polymer
* @mixinFunction
*/
Gerrit.ChangeTableMixin = base =>
class extends base {
static get properties() {
return {
columnNames: {
type: Array,
},
};
}
isColumnHidden(columnToCheck, columnsToDisplay) {}
};
}
})(window);