fleet/frontend/components/side_panels/QuerySidePanel/helpers.js
2016-12-16 10:07:35 -06:00

98 lines
1.7 KiB
JavaScript

import { includes } from 'lodash';
const DEFAULT_NUM_COLUMNS_TO_DISPLAY = 5;
const ALL_PLATFORMS_AVAILABILITY = ['specs', 'utility'];
export const columnsToRender = (table, showAllColumns) => {
if (showAllColumns) return table.columns;
return table.columns.slice(0, DEFAULT_NUM_COLUMNS_TO_DISPLAY);
};
export const displayTypeForDataType = (dataType) => {
switch (dataType) {
case 'TEXT_TYPE':
return 'text';
case 'BIGINT_TYPE':
return 'big int';
case 'INTEGER_TYPE':
return 'integer';
default:
return dataType;
}
};
export const shouldShowAllColumns = (table) => {
const { columns } = table;
return columns.length <= DEFAULT_NUM_COLUMNS_TO_DISPLAY;
};
export const numAdditionalColumns = (table) => {
const { columns } = table;
return columns.length - DEFAULT_NUM_COLUMNS_TO_DISPLAY;
};
export const availability = (platform) => {
if (!platform) {
return [];
}
if (includes(ALL_PLATFORMS_AVAILABILITY, platform.toLowerCase())) {
return [
{
type: 'all',
display_text: 'All Platforms',
},
];
}
if (platform === 'windows') {
return [
{
display_text: 'Windows',
},
];
}
if (platform === 'posix') {
return [
{
display_text: 'macOS',
},
{
display_text: 'Ubuntu',
},
{
display_text: 'CentOS',
},
];
}
if (platform === 'linux') {
return [
{
display_text: 'Ubuntu',
},
{
display_text: 'CentOS',
},
];
}
if (platform === 'darwin') {
return [
{
display_text: 'macOS',
},
];
}
return [
{
display_text: 'Unknown',
},
];
};