-
Notifications
You must be signed in to change notification settings - Fork 1
/
browseBase.js
51 lines (47 loc) · 1.82 KB
/
browseBase.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
'use strict';
const massiveActions = require('./massiveActions');
const appearance = require('./appearance');
const rowLink = require('../customLink');
const rowCollapse = require('./rowCollapse');
const themes = require('../themes');
const getEndpointParameters = require('../endpointParameters');
const filters = require('../../browse/modules/filters');
const sortableFields = require('../../common/sortableFields');
const statusBar = require('../../common/statusBar');
const makeExportImportSchema = require('./import-export');
const PAGE_SIZES = [15, 30, 60, 100, 'none'];
const DEFAULT_PAGE_SIZE = 60;
const getBrowseBaseSchema = (isPage = false) => {
return {
source: { $ref: 'schemaDefinitions#/definitions/endpoint' },
fields: {
type: 'array',
items: { $ref: 'schemaDefinitions#/definitions/browseField' },
minItems: 1
},
sortEndpoint: { $ref: 'schemaDefinitions#/definitions/endpoint' },
fieldSortEndpoint: { type: 'string' },
dependencies: { $ref: 'schemaDefinitions#/definitions/dependencies' },
autoRefresh: { $ref: 'schemaDefinitions#/definitions/autoRefresh' },
graphs: { $ref: 'schemaDefinitions#/definitions/graphs' },
massiveActions: massiveActions(isPage),
endpointParameters: getEndpointParameters(isPage),
canExport: makeExportImportSchema(),
canImport: makeExportImportSchema(false),
canPreview: { type: 'boolean', default: false },
canCreate: { $ref: 'schemaDefinitions#/definitions/canCreate', default: true },
canView: { type: 'boolean', default: false },
canEdit: { type: 'boolean' },
canRefresh: { type: 'boolean' },
statusBar,
appearance,
rowLink,
rowCollapse,
themes,
filters,
sortableFields,
featureFlags: { $ref: 'schemaDefinitions#/definitions/featureFlags' },
pageSize: { enum: PAGE_SIZES, default: DEFAULT_PAGE_SIZE }
};
};
module.exports = getBrowseBaseSchema;