@oneuptime/common 11.7.2 → 11.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Models/AnalyticsModels/KubernetesCostAllocation.ts +103 -0
- package/Models/DatabaseModels/TableView.ts +40 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785241000000-AddColumnsToTableView.ts +13 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
- package/Tests/Models/AnalyticsModels/KubernetesCostAllocation.test.ts +16 -0
- package/Tests/Types/JSONFunctions.test.ts +103 -1
- package/Tests/UI/Components/ModelTable/BaseModelTableColumnCustomization.test.tsx +679 -0
- package/Tests/UI/Components/ModelTable/ColumnCustomizationModal.test.tsx +572 -0
- package/Tests/UI/Components/ModelTable/ColumnPreference.test.ts +1678 -0
- package/Tests/UI/Components/ModelTable/CustomFieldColumns.test.tsx +1094 -0
- package/Tests/Utils/UserPreferences.test.ts +563 -0
- package/Types/JSONFunctions.ts +7 -2
- package/Types/Kubernetes/KubernetesCostIngest.ts +37 -1
- package/UI/Components/MasterPage/MasterPage.tsx +65 -0
- package/UI/Components/ModelTable/BaseModelTable.tsx +387 -4
- package/UI/Components/ModelTable/Column.ts +17 -0
- package/UI/Components/ModelTable/ColumnCustomizationModal.tsx +420 -0
- package/UI/Components/ModelTable/ColumnPreference.ts +482 -0
- package/UI/Components/ModelTable/CustomFieldColumns.tsx +326 -0
- package/UI/Components/ModelTable/TableView.tsx +24 -2
- package/UI/Components/ModelTable/useCustomFieldColumns.ts +150 -0
- package/UI/Components/SideMenu/SideMenu.tsx +24 -4
- package/UI/Components/Table/Table.tsx +14 -1
- package/UI/Components/Table/TableRow.tsx +180 -175
- package/UI/Components/Table/Types/Column.ts +2 -0
- package/Utils/UserPreferences.ts +53 -0
- package/build/dist/Models/AnalyticsModels/KubernetesCostAllocation.js +86 -0
- package/build/dist/Models/AnalyticsModels/KubernetesCostAllocation.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TableView.js +40 -0
- package/build/dist/Models/DatabaseModels/TableView.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785241000000-AddColumnsToTableView.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785241000000-AddColumnsToTableView.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Types/JSONFunctions.js +8 -3
- package/build/dist/Types/JSONFunctions.js.map +1 -1
- package/build/dist/Types/Kubernetes/KubernetesCostIngest.js.map +1 -1
- package/build/dist/UI/Components/MasterPage/MasterPage.js +50 -1
- package/build/dist/UI/Components/MasterPage/MasterPage.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js +239 -7
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/ColumnCustomizationModal.js +189 -0
- package/build/dist/UI/Components/ModelTable/ColumnCustomizationModal.js.map +1 -0
- package/build/dist/UI/Components/ModelTable/ColumnPreference.js +258 -0
- package/build/dist/UI/Components/ModelTable/ColumnPreference.js.map +1 -0
- package/build/dist/UI/Components/ModelTable/CustomFieldColumns.js +168 -0
- package/build/dist/UI/Components/ModelTable/CustomFieldColumns.js.map +1 -0
- package/build/dist/UI/Components/ModelTable/TableView.js +13 -2
- package/build/dist/UI/Components/ModelTable/TableView.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/useCustomFieldColumns.js +84 -0
- package/build/dist/UI/Components/ModelTable/useCustomFieldColumns.js.map +1 -0
- package/build/dist/UI/Components/SideMenu/SideMenu.js +15 -5
- package/build/dist/UI/Components/SideMenu/SideMenu.js.map +1 -1
- package/build/dist/UI/Components/Table/Table.js +15 -2
- package/build/dist/UI/Components/Table/Table.js.map +1 -1
- package/build/dist/UI/Components/Table/TableRow.js +11 -6
- package/build/dist/UI/Components/Table/TableRow.js.map +1 -1
- package/build/dist/Utils/UserPreferences.js +33 -0
- package/build/dist/Utils/UserPreferences.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
export const EmptyColumnPreference = {
|
|
2
|
+
order: [],
|
|
3
|
+
hidden: [],
|
|
4
|
+
};
|
|
5
|
+
const slugify = (value) => {
|
|
6
|
+
return value
|
|
7
|
+
.toLowerCase()
|
|
8
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
9
|
+
.replace(/^-+|-+$/g, "");
|
|
10
|
+
};
|
|
11
|
+
/*
|
|
12
|
+
* The identity a column would have if no other column competed for it. An
|
|
13
|
+
* explicit `id` always wins; otherwise it is the field the column reads,
|
|
14
|
+
* which is the one thing about a column that survives re-ordering, renaming
|
|
15
|
+
* and re-styling. `selectedProperty` is part of it so that every custom field
|
|
16
|
+
* on one JSON column gets its own id ("customFields.Severity").
|
|
17
|
+
*/
|
|
18
|
+
export const getColumnBaseId = (column) => {
|
|
19
|
+
if (column.id) {
|
|
20
|
+
return column.id;
|
|
21
|
+
}
|
|
22
|
+
const fieldKey = column.field
|
|
23
|
+
? Object.keys(column.field)[0]
|
|
24
|
+
: undefined;
|
|
25
|
+
if (fieldKey) {
|
|
26
|
+
return column.selectedProperty
|
|
27
|
+
? `${fieldKey}.${column.selectedProperty}`
|
|
28
|
+
: fieldKey;
|
|
29
|
+
}
|
|
30
|
+
return slugify(column.title || "") || "column";
|
|
31
|
+
};
|
|
32
|
+
/*
|
|
33
|
+
* Ids for a whole column set, in declaration order and guaranteed unique.
|
|
34
|
+
*
|
|
35
|
+
* Collisions are real and common: a table often carries several cells that
|
|
36
|
+
* render from `getElement` off the same placeholder `field: { _id: true }`.
|
|
37
|
+
* Those are disambiguated by title first (stable, and what the viewer
|
|
38
|
+
* actually sees in the picker) and only then by position, which is the one
|
|
39
|
+
* part that can shift when a column is inserted. A shifted id is harmless -
|
|
40
|
+
* it simply reads as a new column, so it defaults to visible.
|
|
41
|
+
*/
|
|
42
|
+
export const getColumnIds = (columns) => {
|
|
43
|
+
const baseIds = columns.map((column) => {
|
|
44
|
+
return getColumnBaseId(column);
|
|
45
|
+
});
|
|
46
|
+
const baseIdCounts = {};
|
|
47
|
+
for (const baseId of baseIds) {
|
|
48
|
+
baseIdCounts[baseId] = (baseIdCounts[baseId] || 0) + 1;
|
|
49
|
+
}
|
|
50
|
+
const candidateIds = columns.map((column, index) => {
|
|
51
|
+
const baseId = baseIds[index];
|
|
52
|
+
if ((baseIdCounts[baseId] || 0) < 2) {
|
|
53
|
+
return baseId;
|
|
54
|
+
}
|
|
55
|
+
const titleSlug = slugify(column.title || "");
|
|
56
|
+
return titleSlug ? `${baseId}:${titleSlug}` : baseId;
|
|
57
|
+
});
|
|
58
|
+
const usedIds = {};
|
|
59
|
+
const ids = [];
|
|
60
|
+
for (const candidateId of candidateIds) {
|
|
61
|
+
const timesUsed = usedIds[candidateId] || 0;
|
|
62
|
+
usedIds[candidateId] = timesUsed + 1;
|
|
63
|
+
ids.push(timesUsed === 0 ? candidateId : `${candidateId}#${timesUsed + 1}`);
|
|
64
|
+
}
|
|
65
|
+
return ids;
|
|
66
|
+
};
|
|
67
|
+
const isHiddenByDefault = (column) => {
|
|
68
|
+
return Boolean(column.isHiddenByDefault) && !column.isNotCustomizable;
|
|
69
|
+
};
|
|
70
|
+
/*
|
|
71
|
+
* The picker's model: every column the viewer may act on, already in the
|
|
72
|
+
* order they arranged them, each tagged with whether it is currently on.
|
|
73
|
+
*
|
|
74
|
+
* Pinned columns keep their declared position rather than being dragged
|
|
75
|
+
* around by a stale layout - they are not in the picker, so the viewer has no
|
|
76
|
+
* way to put them back if a persisted `order` moved them.
|
|
77
|
+
*/
|
|
78
|
+
export const getCustomizableColumns = (data) => {
|
|
79
|
+
const { columns, preference } = data;
|
|
80
|
+
const ids = getColumnIds(columns);
|
|
81
|
+
const entries = columns.map((column, index) => {
|
|
82
|
+
const id = ids[index];
|
|
83
|
+
const isPinned = Boolean(column.isNotCustomizable);
|
|
84
|
+
let isVisible = !isHiddenByDefault(column);
|
|
85
|
+
if (preference && !isPinned) {
|
|
86
|
+
if (preference.hidden.includes(id)) {
|
|
87
|
+
isVisible = false;
|
|
88
|
+
}
|
|
89
|
+
else if (preference.order.includes(id)) {
|
|
90
|
+
/*
|
|
91
|
+
* The viewer has arranged this column at least once and did not
|
|
92
|
+
* put it in `hidden`, so it is on - even if the table now ships it
|
|
93
|
+
* hidden by default.
|
|
94
|
+
*/
|
|
95
|
+
isVisible = true;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return { id, column, isVisible, isPinned };
|
|
99
|
+
});
|
|
100
|
+
if (!preference || preference.order.length === 0) {
|
|
101
|
+
return entries;
|
|
102
|
+
}
|
|
103
|
+
const orderIndexById = {};
|
|
104
|
+
preference.order.forEach((id, index) => {
|
|
105
|
+
if (orderIndexById[id] === undefined) {
|
|
106
|
+
orderIndexById[id] = index;
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
/*
|
|
110
|
+
* A column the layout does not mention keeps its declared neighbours: it
|
|
111
|
+
* sorts just after the last arranged column that precedes it in the
|
|
112
|
+
* declaration, so a newly shipped column appears where its author put it
|
|
113
|
+
* rather than being swept to the end.
|
|
114
|
+
*/
|
|
115
|
+
const sortKeys = [];
|
|
116
|
+
let lastKnownOrderIndex = -1;
|
|
117
|
+
entries.forEach((entry) => {
|
|
118
|
+
const knownIndex = entry.isPinned
|
|
119
|
+
? undefined
|
|
120
|
+
: orderIndexById[entry.id];
|
|
121
|
+
if (knownIndex !== undefined) {
|
|
122
|
+
lastKnownOrderIndex = knownIndex;
|
|
123
|
+
sortKeys.push(knownIndex);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
sortKeys.push(lastKnownOrderIndex + 0.5);
|
|
127
|
+
});
|
|
128
|
+
return entries
|
|
129
|
+
.map((entry, index) => {
|
|
130
|
+
return { entry, key: sortKeys[index], at: index };
|
|
131
|
+
})
|
|
132
|
+
.sort((a, b) => {
|
|
133
|
+
// Stable: equal keys keep declaration order.
|
|
134
|
+
return a.key === b.key ? a.at - b.at : a.key - b.key;
|
|
135
|
+
})
|
|
136
|
+
.map((item) => {
|
|
137
|
+
return item.entry;
|
|
138
|
+
});
|
|
139
|
+
};
|
|
140
|
+
/*
|
|
141
|
+
* The column set the table should actually render. Refuses to return an empty
|
|
142
|
+
* set: a layout that hides everything would replace the table with an empty
|
|
143
|
+
* shell the viewer cannot get out of, so it falls back to showing everything.
|
|
144
|
+
*/
|
|
145
|
+
export const applyColumnPreference = (data) => {
|
|
146
|
+
const entries = getCustomizableColumns(data);
|
|
147
|
+
const visible = entries
|
|
148
|
+
.filter((entry) => {
|
|
149
|
+
return entry.isVisible;
|
|
150
|
+
})
|
|
151
|
+
.map((entry) => {
|
|
152
|
+
return entry.column;
|
|
153
|
+
});
|
|
154
|
+
if (visible.length === 0) {
|
|
155
|
+
return entries.map((entry) => {
|
|
156
|
+
return entry.column;
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
return visible;
|
|
160
|
+
};
|
|
161
|
+
/*
|
|
162
|
+
* The inverse of getCustomizableColumns: turn what the picker is showing back
|
|
163
|
+
* into something storable. Pinned columns are left out entirely - they are
|
|
164
|
+
* not the viewer's to arrange, so recording them would only create entries
|
|
165
|
+
* that go stale when a table stops pinning a column.
|
|
166
|
+
*/
|
|
167
|
+
export const buildColumnPreference = (entries) => {
|
|
168
|
+
const order = [];
|
|
169
|
+
const hidden = [];
|
|
170
|
+
for (const entry of entries) {
|
|
171
|
+
if (entry.isPinned) {
|
|
172
|
+
continue;
|
|
173
|
+
}
|
|
174
|
+
order.push(entry.id);
|
|
175
|
+
if (!entry.isVisible) {
|
|
176
|
+
hidden.push(entry.id);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return { order, hidden };
|
|
180
|
+
};
|
|
181
|
+
/*
|
|
182
|
+
* Drop everything that no longer names a column on this table. A stored
|
|
183
|
+
* layout outlives the release that produced it, so it routinely mentions
|
|
184
|
+
* columns that have since been renamed, removed, or - for custom fields -
|
|
185
|
+
* deleted from the project.
|
|
186
|
+
*/
|
|
187
|
+
export const sanitizeColumnPreference = (data) => {
|
|
188
|
+
const { preference, knownColumnIds } = data;
|
|
189
|
+
if (!preference) {
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
const known = new Set(knownColumnIds);
|
|
193
|
+
const keep = (ids) => {
|
|
194
|
+
const seen = new Set();
|
|
195
|
+
return ids.filter((id) => {
|
|
196
|
+
if (!known.has(id) || seen.has(id)) {
|
|
197
|
+
return false;
|
|
198
|
+
}
|
|
199
|
+
seen.add(id);
|
|
200
|
+
return true;
|
|
201
|
+
});
|
|
202
|
+
};
|
|
203
|
+
const sanitized = {
|
|
204
|
+
order: keep(preference.order),
|
|
205
|
+
hidden: keep(preference.hidden),
|
|
206
|
+
};
|
|
207
|
+
if (sanitized.order.length === 0 && sanitized.hidden.length === 0) {
|
|
208
|
+
return null;
|
|
209
|
+
}
|
|
210
|
+
return sanitized;
|
|
211
|
+
};
|
|
212
|
+
export const isEmptyColumnPreference = (preference) => {
|
|
213
|
+
return Boolean(!preference ||
|
|
214
|
+
(preference.order.length === 0 && preference.hidden.length === 0));
|
|
215
|
+
};
|
|
216
|
+
// A layout that changes nothing is stored as nothing.
|
|
217
|
+
export const toJSON = (preference) => {
|
|
218
|
+
if (isEmptyColumnPreference(preference)) {
|
|
219
|
+
return null;
|
|
220
|
+
}
|
|
221
|
+
return {
|
|
222
|
+
order: [...preference.order],
|
|
223
|
+
hidden: [...preference.hidden],
|
|
224
|
+
};
|
|
225
|
+
};
|
|
226
|
+
/*
|
|
227
|
+
* Read a stored layout back. Anything on the way in is untrusted - it may
|
|
228
|
+
* have been hand-edited in devtools or written by an older release - so each
|
|
229
|
+
* list is validated on its own and a malformed one degrades to empty instead
|
|
230
|
+
* of taking the other down with it.
|
|
231
|
+
*/
|
|
232
|
+
export const fromJSON = (json) => {
|
|
233
|
+
if (!json || typeof json !== "object" || Array.isArray(json)) {
|
|
234
|
+
return null;
|
|
235
|
+
}
|
|
236
|
+
const readIds = (value) => {
|
|
237
|
+
if (!Array.isArray(value)) {
|
|
238
|
+
return [];
|
|
239
|
+
}
|
|
240
|
+
const seen = new Set();
|
|
241
|
+
return value.filter((entry) => {
|
|
242
|
+
if (typeof entry !== "string" || entry.length === 0 || seen.has(entry)) {
|
|
243
|
+
return false;
|
|
244
|
+
}
|
|
245
|
+
seen.add(entry);
|
|
246
|
+
return true;
|
|
247
|
+
});
|
|
248
|
+
};
|
|
249
|
+
const preference = {
|
|
250
|
+
order: readIds(json["order"]),
|
|
251
|
+
hidden: readIds(json["hidden"]),
|
|
252
|
+
};
|
|
253
|
+
if (isEmptyColumnPreference(preference)) {
|
|
254
|
+
return null;
|
|
255
|
+
}
|
|
256
|
+
return preference;
|
|
257
|
+
};
|
|
258
|
+
//# sourceMappingURL=ColumnPreference.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColumnPreference.js","sourceRoot":"","sources":["../../../../../UI/Components/ModelTable/ColumnPreference.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import FieldType from "../Types/FieldType";
|
|
2
|
+
import CustomFieldType from "../../../Types/CustomField/CustomFieldType";
|
|
3
|
+
import React from "react";
|
|
4
|
+
export const CustomFieldsColumnKey = "customFields";
|
|
5
|
+
/*
|
|
6
|
+
* Dropdown options are stored as one option per line, the same format the
|
|
7
|
+
* settings page writes.
|
|
8
|
+
*/
|
|
9
|
+
export const parseDropdownOptions = (value) => {
|
|
10
|
+
if (typeof value !== "string" || !value) {
|
|
11
|
+
return [];
|
|
12
|
+
}
|
|
13
|
+
return value
|
|
14
|
+
.split("\n")
|
|
15
|
+
.map((line) => {
|
|
16
|
+
return line.trim();
|
|
17
|
+
})
|
|
18
|
+
.filter((line) => {
|
|
19
|
+
return line.length > 0;
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
/*
|
|
23
|
+
* Normalise whatever the definition API returned into a plain, sorted list.
|
|
24
|
+
*
|
|
25
|
+
* Sorting matters: the definition models carry no ordering column and the
|
|
26
|
+
* list endpoint is queried with an empty sort, so Postgres is free to hand
|
|
27
|
+
* back a different order on every request. Without a deterministic order
|
|
28
|
+
* here, a viewer's saved column layout would appear to shuffle itself
|
|
29
|
+
* between page loads.
|
|
30
|
+
*/
|
|
31
|
+
export const getCustomFieldDefinitions = (items) => {
|
|
32
|
+
const definitions = [];
|
|
33
|
+
const seenNames = new Set();
|
|
34
|
+
for (const item of items || []) {
|
|
35
|
+
const name = item === null || item === void 0 ? void 0 : item["name"];
|
|
36
|
+
if (typeof name !== "string" || name.trim().length === 0) {
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
const trimmedName = name.trim();
|
|
40
|
+
if (seenNames.has(trimmedName)) {
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
seenNames.add(trimmedName);
|
|
44
|
+
const description = item["description"];
|
|
45
|
+
const customFieldType = item["customFieldType"];
|
|
46
|
+
const dropdownOptions = item["dropdownOptions"];
|
|
47
|
+
definitions.push({
|
|
48
|
+
name: trimmedName,
|
|
49
|
+
description: typeof description === "string" ? description : undefined,
|
|
50
|
+
customFieldType: typeof customFieldType === "string"
|
|
51
|
+
? customFieldType
|
|
52
|
+
: undefined,
|
|
53
|
+
dropdownOptions: typeof dropdownOptions === "string" ? dropdownOptions : undefined,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
return definitions.sort((a, b) => {
|
|
57
|
+
return a.name.localeCompare(b.name);
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
export const getCustomFieldValue = (item, name) => {
|
|
61
|
+
const customFields = item === null || item === void 0 ? void 0 : item[CustomFieldsColumnKey];
|
|
62
|
+
if (!customFields || typeof customFields !== "object") {
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
return customFields[name];
|
|
66
|
+
};
|
|
67
|
+
const badge = (data) => {
|
|
68
|
+
return (React.createElement("span", { key: data.key, className: "inline-flex items-center gap-x-1.5 px-2 py-1 rounded-md bg-indigo-50 text-indigo-700 text-xs font-medium ring-1 ring-inset ring-indigo-700/10" },
|
|
69
|
+
React.createElement("svg", { className: "h-1.5 w-1.5 fill-indigo-500", viewBox: "0 0 6 6", "aria-hidden": "true" },
|
|
70
|
+
React.createElement("circle", { cx: 3, cy: 3, r: 3 })),
|
|
71
|
+
data.label));
|
|
72
|
+
};
|
|
73
|
+
export const renderCustomFieldValue = (data) => {
|
|
74
|
+
var _a;
|
|
75
|
+
const { value, definition } = data;
|
|
76
|
+
const noValueMessage = (_a = data.noValueMessage) !== null && _a !== void 0 ? _a : "-";
|
|
77
|
+
const empty = (React.createElement("span", { className: "text-gray-400" }, noValueMessage));
|
|
78
|
+
if (value === undefined || value === null || value === "") {
|
|
79
|
+
return empty;
|
|
80
|
+
}
|
|
81
|
+
if (definition.customFieldType === CustomFieldType.Boolean) {
|
|
82
|
+
/*
|
|
83
|
+
* A boolean custom field renders "No" rather than falling into the empty
|
|
84
|
+
* branch above - `false` is a real answer, not a missing one.
|
|
85
|
+
*/
|
|
86
|
+
const isTrue = value === true || value === "true";
|
|
87
|
+
return (React.createElement("span", { className: isTrue
|
|
88
|
+
? "inline-flex items-center px-2 py-1 rounded-md bg-green-50 text-green-700 text-xs font-medium ring-1 ring-inset ring-green-600/20"
|
|
89
|
+
: "inline-flex items-center px-2 py-1 rounded-md bg-gray-50 text-gray-600 text-xs font-medium ring-1 ring-inset ring-gray-500/10" }, isTrue ? "Yes" : "No"));
|
|
90
|
+
}
|
|
91
|
+
if (definition.customFieldType === CustomFieldType.MultiSelectDropdown) {
|
|
92
|
+
/*
|
|
93
|
+
* Tolerant on the way out: an older single-select value that was later
|
|
94
|
+
* switched to multi-select is still a bare string in the JSON.
|
|
95
|
+
*/
|
|
96
|
+
const values = Array.isArray(value) ? value : [value];
|
|
97
|
+
const labels = values
|
|
98
|
+
.filter((entry) => {
|
|
99
|
+
return entry !== undefined && entry !== null && entry !== "";
|
|
100
|
+
})
|
|
101
|
+
.map((entry) => {
|
|
102
|
+
return String(entry);
|
|
103
|
+
});
|
|
104
|
+
if (labels.length === 0) {
|
|
105
|
+
return empty;
|
|
106
|
+
}
|
|
107
|
+
return (React.createElement("div", { className: "flex flex-wrap gap-1.5" }, labels.map((label, index) => {
|
|
108
|
+
return badge({ label, key: `${label}-${index}` });
|
|
109
|
+
})));
|
|
110
|
+
}
|
|
111
|
+
if (definition.customFieldType === CustomFieldType.Dropdown) {
|
|
112
|
+
return badge({ label: String(value), key: String(value) });
|
|
113
|
+
}
|
|
114
|
+
if (Array.isArray(value)) {
|
|
115
|
+
return React.createElement("span", null, value.join(", "));
|
|
116
|
+
}
|
|
117
|
+
if (typeof value === "object") {
|
|
118
|
+
return React.createElement("span", null, JSON.stringify(value));
|
|
119
|
+
}
|
|
120
|
+
return React.createElement("span", null, String(value));
|
|
121
|
+
};
|
|
122
|
+
/*
|
|
123
|
+
* Custom field columns default to hidden. A project is free to define a dozen
|
|
124
|
+
* of them, and turning every one on by default would push the columns the
|
|
125
|
+
* table was designed around off the side of the screen the first time anyone
|
|
126
|
+
* opens it. They are all listed in the column picker, one click away.
|
|
127
|
+
*/
|
|
128
|
+
export const getCustomFieldColumns = (data) => {
|
|
129
|
+
const isHidden = data.isHiddenByDefault !== false;
|
|
130
|
+
return (data.definitions || []).map((definition) => {
|
|
131
|
+
return {
|
|
132
|
+
id: `${CustomFieldsColumnKey}.${definition.name}`,
|
|
133
|
+
field: {
|
|
134
|
+
[CustomFieldsColumnKey]: true,
|
|
135
|
+
},
|
|
136
|
+
selectedProperty: definition.name,
|
|
137
|
+
title: definition.name,
|
|
138
|
+
description: definition.description,
|
|
139
|
+
type: FieldType.Element,
|
|
140
|
+
/*
|
|
141
|
+
* See the file header: sorting a jsonb key is not something the
|
|
142
|
+
* query path can express.
|
|
143
|
+
*/
|
|
144
|
+
disableSort: true,
|
|
145
|
+
isHiddenByDefault: isHidden,
|
|
146
|
+
getExportValue: (item) => {
|
|
147
|
+
const value = getCustomFieldValue(item, definition.name);
|
|
148
|
+
if (value === undefined || value === null) {
|
|
149
|
+
return "";
|
|
150
|
+
}
|
|
151
|
+
if (Array.isArray(value)) {
|
|
152
|
+
return value.join(", ");
|
|
153
|
+
}
|
|
154
|
+
if (typeof value === "object") {
|
|
155
|
+
return JSON.stringify(value);
|
|
156
|
+
}
|
|
157
|
+
return String(value);
|
|
158
|
+
},
|
|
159
|
+
getElement: (item) => {
|
|
160
|
+
return renderCustomFieldValue({
|
|
161
|
+
value: getCustomFieldValue(item, definition.name),
|
|
162
|
+
definition: definition,
|
|
163
|
+
});
|
|
164
|
+
},
|
|
165
|
+
};
|
|
166
|
+
});
|
|
167
|
+
};
|
|
168
|
+
//# sourceMappingURL=CustomFieldColumns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomFieldColumns.js","sourceRoot":"","sources":["../../../../../UI/Components/ModelTable/CustomFieldColumns.tsx"],"names":[],"mappings":"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"}
|
|
@@ -49,6 +49,7 @@ const TableViewElement = (props) => {
|
|
|
49
49
|
query: true,
|
|
50
50
|
name: true,
|
|
51
51
|
facets: true,
|
|
52
|
+
columns: true,
|
|
52
53
|
},
|
|
53
54
|
sort: {
|
|
54
55
|
name: SortOrder.Ascending,
|
|
@@ -129,6 +130,13 @@ const TableViewElement = (props) => {
|
|
|
129
130
|
return false;
|
|
130
131
|
}));
|
|
131
132
|
const hasActiveFilters = hasQueryFilters || hasFacetState;
|
|
133
|
+
/*
|
|
134
|
+
* A customized column layout is worth saving on its own - "the columns I
|
|
135
|
+
* care about, in my order" is a view even when nothing is filtered.
|
|
136
|
+
*/
|
|
137
|
+
const hasColumnLayout = Boolean(props.currentColumns &&
|
|
138
|
+
Object.keys(props.currentColumns).length > 0);
|
|
139
|
+
const hasSavableState = hasActiveFilters || hasColumnLayout;
|
|
132
140
|
const getMenuContents = () => {
|
|
133
141
|
if (isLoading) {
|
|
134
142
|
return [React.createElement(BarLoader, { key: -1, color: "var(--ou-link, #4f46e5)" })];
|
|
@@ -137,7 +145,7 @@ const TableViewElement = (props) => {
|
|
|
137
145
|
if (allTableViews.length > 0) {
|
|
138
146
|
elements.push(React.createElement(MoreMenuSection, { title: "Saved Views" }, getViewItems()));
|
|
139
147
|
}
|
|
140
|
-
if (
|
|
148
|
+
if (hasSavableState) {
|
|
141
149
|
elements.push(React.createElement(MoreMenuItem, { key: "save-new-view", text: "Save as New View", className: "bg-gray-50 hover:bg-gray-100 text-gray-700 hover:text-gray-900 font-medium -mt-2", icon: IconProp.Add, iconClassName: "", onClick: () => {
|
|
142
150
|
setShowCreateNewViewModel(true);
|
|
143
151
|
} }));
|
|
@@ -200,6 +208,9 @@ const TableViewElement = (props) => {
|
|
|
200
208
|
if (props.currentFacetState) {
|
|
201
209
|
tableView.facets = props.currentFacetState;
|
|
202
210
|
}
|
|
211
|
+
if (props.currentColumns) {
|
|
212
|
+
tableView.columns = props.currentColumns;
|
|
213
|
+
}
|
|
203
214
|
return Promise.resolve(tableView);
|
|
204
215
|
}, onSuccess: async (tableView) => {
|
|
205
216
|
var _a;
|
|
@@ -262,7 +273,7 @@ const TableViewElement = (props) => {
|
|
|
262
273
|
};
|
|
263
274
|
if (!isLoading &&
|
|
264
275
|
allTableViews.length === 0 &&
|
|
265
|
-
!
|
|
276
|
+
!hasSavableState &&
|
|
266
277
|
!currentlySelectedView) {
|
|
267
278
|
return React.createElement(React.Fragment, null);
|
|
268
279
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableView.js","sourceRoot":"","sources":["../../../../../UI/Components/ModelTable/TableView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAgB,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,SAAS,MAAM,0CAA0C,CAAC;AAEjE,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,QAAQ,MAAM,+BAA+B,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,SAAS,MAAM,uCAAuC,CAAC;AAC9D,OAAO,GAAG,MAAM,oBAAoB,CAAC;AACrC,OAAO,eAAe,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,YAAY,MAAM,uBAAuB,CAAC;AACjD,OAAO,cAAc,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,mBAAmB,MAAM,oCAAoC,CAAC;AAGrE,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAC9C,OAAO,IAAI,MAAM,kBAAkB,CAAC;AACpC,OAAO,IAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAwBzD,MAAM,gBAAgB,GAEF,CAClB,KAAwB,EACV,EAAE;IAChB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IAC/C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IAC3D,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAmB,EAAE,CAAC,CAAC;IACzE,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAExD,SAAS,CAAC,CAAC;IACb,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CACpD,SAAS,CACV,CAAC;IACF,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,GACvD,QAAQ,CAAU,KAAK,CAAC,CAAC;IAE3B,MAAM,WAAW,GAAsC,MAAM,EAAE,CAAC;IAEhE,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GACrD,QAAQ,CAAmB,IAAI,CAAC,CAAC;IAEnC,SAAS,CAAC,GAAG,EAAE;QACb,wBAAwB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAEtB,2DAA2D;IAC3D,MAAM,eAAe,GAAwB,KAAK,IAAmB,EAAE;QACrE,IAAI,CAAC;YACH,QAAQ,CAAC,EAAE,CAAC,CAAC;YACb,YAAY,CAAC,IAAI,CAAC,CAAC;YAEnB,MAAM,UAAU,GAA0B,MAAM,QAAQ,CAAC,OAAO,CAAC;gBAC/D,SAAS,EAAE,SAAS;gBACpB,KAAK,EAAE;oBACL,SAAS,EAAE,WAAW,CAAC,mBAAmB,EAAG;oBAC7C,eAAe,EAAE,IAAI,CAAC,SAAS,EAAE;oBACjC,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB;gBACD,KAAK,EAAE,iBAAiB;gBACxB,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE;oBACN,IAAI,EAAE,IAAI;oBACV,WAAW,EAAE,IAAI;oBACjB,KAAK,EAAE,IAAI;oBACX,IAAI,EAAE,IAAI;oBACV,MAAM,EAAE,IAAI;iBACb;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,SAAS,CAAC,SAAS;iBAC1B;aACF,CAAC,CAAC;YAEH,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,CAAC,uBAAuB,CAAC,GAAY,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,CAAC;IAIF,MAAM,eAAe,GAA4B,KAAK,EACpD,SAAoB,EACL,EAAE;QACjB,MAAM,WAAW,GAAa,SAAS,CAAC,EAAG,CAAC;QAE5C,IAAI,CAAC;YACH,QAAQ,CAAC,EAAE,CAAC,CAAC;YACb,YAAY,CAAC,IAAI,CAAC,CAAC;YAEnB,MAAM,QAAQ,CAAC,UAAU,CAAC;gBACxB,SAAS,EAAE,SAAS;gBACpB,EAAE,EAAE,WAAW;aAChB,CAAC,CAAC;YAEH,MAAM,eAAe,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,CAAC,uBAAuB,CAAC,GAAY,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;YACrC,QAAQ,CAAC,GAAG,CAAC,uBAAuB,CAAC,GAAY,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAMP,MAAM,mCAAmC,GACvC,CAAC,IAAe,EAAgB,EAAE;QAChC,OAAO,CACL,6BAAK,SAAS,EAAC,MAAM;YACnB,6BAAK,SAAS,EAAC,cAAc;gBAC3B,oBAAC,IAAI,IACH,IAAI,EAAE,QAAQ,CAAC,IAAI,EACnB,SAAS,EAAC,mCAAmC,EAC7C,IAAI,EAAE,QAAQ,CAAC,OAAO,EACtB,KAAK,EAAE,SAAS,CAAC,KAAK,EACtB,OAAO,EAAE,GAAG,EAAE;wBACZ,kBAAkB,CAAC,IAAI,CAAC,CAAC;oBAC3B,CAAC,GACD,CACE;YACN,6BAAK,SAAS,EAAC,SAAS;gBACtB,oBAAC,IAAI,IACH,SAAS,EAAC,mCAAmC,EAC7C,IAAI,EAAE,QAAQ,CAAC,KAAK,EACpB,IAAI,EAAE,QAAQ,CAAC,OAAO,EACtB,KAAK,EAAE,SAAS,CAAC,KAAK,EACtB,OAAO,EAAE,GAAG,EAAE;wBACZ,oBAAoB,CAAC,IAAI,CAAC,CAAC;oBAC7B,CAAC,GACD,CACE,CACF,CACP,CAAC;IACJ,CAAC,CAAC;IAIJ,MAAM,YAAY,GAAyB,GAAwB,EAAE;QACnE,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,IAAe,EAAE,KAAa,EAAE,EAAE;YAC1D,OAAO,CACL,oBAAC,YAAY,IACX,GAAG,EAAE,KAAK,EACV,YAAY,EAAE,mCAAmC,CAAC,IAAI,CAAC,EACvD,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,EACrB,SAAS,EAAC,mCAAmC,EAC7C,IAAI,EAAE,QAAQ,CAAC,MAAM,EACrB,OAAO,EAAE,GAAG,EAAE;;oBACZ,MAAA,KAAK,CAAC,YAAY,sDAAG,IAAI,CAAC,CAAC;oBAC3B,wBAAwB,CAAC,IAAI,CAAC,CAAC;gBACjC,CAAC,GACD,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,eAAe,GACnB,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAuC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAExE;;;;;;;;OAQG;IACH,MAAM,aAAa,GAAY,OAAO,CACpC,KAAK,CAAC,iBAAiB;QACrB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAU,EAAE,EAAE;YACzD,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrB,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACtB,CAAC;YACD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,CAA4B,CAAC,CAAC,IAAI,CACrD,CAAC,KAAc,EAAE,EAAE;oBACjB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAClE,CAAC,CACF,CAAC;YACJ,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CACL,CAAC;IAEF,MAAM,gBAAgB,GAAY,eAAe,IAAI,aAAa,CAAC;IAEnE,MAAM,eAAe,GACnB,GAAwB,EAAE;QACxB,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,oBAAC,SAAS,IAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAC,yBAAyB,GAAG,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,QAAQ,GAAwB,EAAE,CAAC;QAEzC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,QAAQ,CAAC,IAAI,CACX,oBAAC,eAAe,IAAC,KAAK,EAAC,aAAa,IACjC,YAAY,EAAE,CACC,CACnB,CAAC;QACJ,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC;YACrB,QAAQ,CAAC,IAAI,CACX,oBAAC,YAAY,IACX,GAAG,EAAE,eAAe,EACpB,IAAI,EAAC,kBAAkB,EACvB,SAAS,EAAC,kFAAkF,EAC5F,IAAI,EAAE,QAAQ,CAAC,GAAG,EAClB,aAAa,EAAC,EAAE,EAChB,OAAO,EAAE,GAAG,EAAE;oBACZ,yBAAyB,CAAC,IAAI,CAAC,CAAC;gBAClC,CAAC,GACa,CACjB,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEJ,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CACL,oBAAC,YAAY,IACX,KAAK,EAAE,yBAAyB,EAChC,WAAW,EAAE,KAAK,EAClB,SAAS,EAAE,KAAK,EAChB,gBAAgB,EAAE,OAAO,EACzB,QAAQ,EAAE,GAAG,EAAE;gBACb,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC,GACD,CACH,CAAC;IACJ,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,CACL,oBAAC,cAAc,IACb,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,eAAe,CAAC,EAAG,EAClC,IAAI,EAAC,WAAW,EAChB,KAAK,EAAC,WAAW,EACjB,WAAW,EAAC,sDAAsD,EAClE,OAAO,EAAE,GAAG,EAAE;gBACZ,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAChC,CAAC,EACD,gBAAgB,EAAC,cAAc,EAC/B,SAAS,EAAE,KAAK,IAAI,EAAE;gBACpB,kBAAkB,CAAC,SAAS,CAAC,CAAC;gBAE9B,MAAM,eAAe,EAAE,CAAC;YAC1B,CAAC,EACD,SAAS,EAAE;gBACT,IAAI,EAAE,WAAW;gBACjB,SAAS,EAAE,SAAS;gBACpB,EAAE,EAAE,iBAAiB;gBACrB,MAAM,EAAE;oBACN;wBACE,KAAK,EAAE;4BACL,IAAI,EAAE,IAAI;yBACX;wBACD,SAAS,EAAE,mBAAmB,CAAC,IAAI;wBACnC,WAAW,EAAE,kBAAkB;wBAC/B,WAAW,EAAE,uCAAuC;wBACpD,KAAK,EAAE,MAAM;wBACb,QAAQ,EAAE,IAAI;qBACf;iBACF;gBACD,QAAQ,EAAE,QAAQ,CAAC,MAAM;aAC1B,GACD,CACH,CAAC;IACJ,CAAC;IAED,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,CACL,oBAAC,YAAY,IACX,WAAW,EAAE,0CAA0C,iBAAiB,CAAC,IAAI,GAAG,EAChF,KAAK,EAAE,UAAU,iBAAiB,CAAC,IAAI,EAAE,EACzC,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,KAAK,IAAI,EAAE;gBACnB,MAAM,eAAe,CAAC,iBAAiB,CAAC,CAAC;gBACzC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC,EACD,OAAO,EAAE,GAAG,EAAE;gBACZ,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC,EACD,gBAAgB,EAAE,QAAQ,EAC1B,gBAAgB,EAAE,eAAe,CAAC,MAAM,GACxC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,sBAAsB,EAAE,CAAC;QAC3B,OAAO,CACL,oBAAC,cAAc,IACb,SAAS,EAAE,SAAS,EACpB,IAAI,EAAC,eAAe,EACpB,KAAK,EAAC,eAAe,EACrB,WAAW,EAAC,wDAAwD,EACpE,OAAO,EAAE,GAAG,EAAE;gBACZ,yBAAyB,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC,EACD,gBAAgB,EAAC,cAAc,EAC/B,cAAc,EAAE,CAAC,SAAoB,EAAE,EAAE;gBACvC,IAAI,IAAI,GAAY,EAAE,CAAC;gBAEvB,IAAI,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;oBAClD,IAAI,GAAG;wBACL,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,gBAAgB;qBACnC,CAAC;gBACf,CAAC;gBAED,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;gBAClC,SAAS,CAAC,KAAK;oBACZ,KAAK,CAAC,YAEL,IAAI,EAAE,CAAC;gBACX,SAAS,CAAC,WAAW,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,kBAAkB,KAAI,EAAE,CAAC;gBACxD,SAAS,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBAC5B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;oBAC5B,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC;gBAC7C,CAAC;gBACD,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACpC,CAAC,EACD,SAAS,EAAE,KAAK,EAAE,SAAoB,EAAE,EAAE;;gBACxC,yBAAyB,CAAC,KAAK,CAAC,CAAC;gBACjC,MAAM,eAAe,EAAE,CAAC;gBACxB,sBAAsB;gBACtB,MAAA,KAAK,CAAC,YAAY,sDAAG,SAAS,CAAC,CAAC;YAClC,CAAC,EACD,SAAS,EAAE;gBACT,IAAI,EAAE,eAAe;gBACrB,SAAS,EAAE,SAAS;gBACpB,EAAE,EAAE,iBAAiB;gBACrB,MAAM,EAAE;oBACN;wBACE,KAAK,EAAE;4BACL,IAAI,EAAE,IAAI;yBACX;wBACD,SAAS,EAAE,mBAAmB,CAAC,IAAI;wBACnC,WAAW,EAAE,kBAAkB;wBAC/B,WAAW,EAAE,uCAAuC;wBACpD,KAAK,EAAE,MAAM;wBACb,QAAQ,EAAE,IAAI;qBACf;iBACF;gBACD,QAAQ,EAAE,QAAQ,CAAC,MAAM;aAC1B,GACD,CACH,CAAC;IACJ,CAAC;IAID,MAAM,kCAAkC,GACtC,GAAiB,EAAE;QACjB;;;WAGG;QACH,MAAM,WAAW,GACf,2HAA2H,CAAC;QAE9H,IAAI,qBAAqB,EAAE,CAAC;YAC1B,OAAO,CACL,6BACE,SAAS,EAAE,GAAG,WAAW,6FAA6F,EACtH,KAAK,EAAE,eAAe,qBAAqB,CAAC,IAAI,EAAE;gBAElD,oBAAC,IAAI,IACH,IAAI,EAAE,QAAQ,CAAC,QAAQ,EACvB,SAAS,EAAC,mCAAmC,GAC7C;gBACF,8BAAM,SAAS,EAAC,mEAAmE;oBACjF,8BAAM,SAAS,EAAC,kEAAkE,WAE3E;oBACP,8BAAM,SAAS,EAAC,8CAA8C,IAC3D,qBAAqB,CAAC,IAAI,CACtB,CACF;gBACP,6CACc,MAAM,EAClB,SAAS,EAAC,+BAA+B,GACzC;gBACF,gCACE,IAAI,EAAC,QAAQ,gBACF,kBAAkB,EAC7B,KAAK,EAAC,kBAAkB,EACxB,SAAS,EAAC,8MAA8M,EACxN,OAAO,EAAE,CAAC,KAA0C,EAAE,EAAE;;wBACtD,KAAK,CAAC,eAAe,EAAE,CAAC;wBACxB,wBAAwB,CAAC,IAAI,CAAC,CAAC;wBAC/B,MAAA,KAAK,CAAC,YAAY,sDAAG,IAAI,CAAC,CAAC;wBAC3B,iBAAiB,EAAE,CAAC;oBACtB,CAAC;oBAED,oBAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAC,SAAS,GAAG,CAC3C;gBACT,oBAAC,IAAI,IACH,IAAI,EAAE,QAAQ,CAAC,WAAW,EAC1B,SAAS,EAAC,uCAAuC,GACjD,CACE,CACP,CAAC;QACJ,CAAC;QAED,OAAO,CACL,6BACE,SAAS,EAAE,GAAG,WAAW,gFAAgF,EACzG,KAAK,EAAC,aAAa;YAEnB,oBAAC,IAAI,IACH,IAAI,EAAE,QAAQ,CAAC,QAAQ,EACvB,SAAS,EAAC,iCAAiC,GAC3C;YACF,8BAAM,SAAS,EAAC,SAAS,kBAAmB;YAC3C,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAC3B,8BAAM,SAAS,EAAC,gIAAgI,IAC7I,aAAa,CAAC,MAAM,CAAC,cAAc,EAAE,CACjC,CACR;YACD,oBAAC,IAAI,IACH,IAAI,EAAE,QAAQ,CAAC,WAAW,EAC1B,SAAS,EAAC,qCAAqC,GAC/C,CACE,CACP,CAAC;IACJ,CAAC,CAAC;IAEJ,MAAM,iBAAiB,GAAiB,GAAS,EAAE;QACjD,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACvB,WAAW,CAAC,OAAe,CAAC,aAAa,EAAE,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC;IAEF,IACE,CAAC,SAAS;QACV,aAAa,CAAC,MAAM,KAAK,CAAC;QAC1B,CAAC,gBAAgB;QACjB,CAAC,qBAAqB,EACtB,CAAC;QACD,OAAO,yCAAK,CAAC;IACf,CAAC;IAED,OAAO,CACL,oBAAC,QAAQ,IACP,+BAA+B,EAAE,kCAAkC,EAAE,EACrE,GAAG,EAAE,WAAW,IAEf,eAAe,EAAE,CACT,CACZ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"TableView.js","sourceRoot":"","sources":["../../../../../UI/Components/ModelTable/TableView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { getCustomFieldColumns, getCustomFieldDefinitions, } from "./CustomFieldColumns";
|
|
2
|
+
import ModelAPI from "../../Utils/ModelAPI/ModelAPI";
|
|
3
|
+
import ProjectUtil from "../../Utils/Project";
|
|
4
|
+
import { Logger } from "../../Utils/Logger";
|
|
5
|
+
import { LIMIT_PER_PROJECT } from "../../../Types/Database/LimitMax";
|
|
6
|
+
import { useEffect, useMemo, useState } from "react";
|
|
7
|
+
const useCustomFieldColumns = (data) => {
|
|
8
|
+
var _a;
|
|
9
|
+
const { customFieldsModelType } = data;
|
|
10
|
+
const [definitions, setDefinitions] = useState([]);
|
|
11
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
12
|
+
const [error, setError] = useState("");
|
|
13
|
+
const projectId = (_a = data.projectId) !== null && _a !== void 0 ? _a : ProjectUtil.getCurrentProjectId();
|
|
14
|
+
const projectIdString = (projectId === null || projectId === void 0 ? void 0 : projectId.toString()) || "";
|
|
15
|
+
const modelName = (customFieldsModelType === null || customFieldsModelType === void 0 ? void 0 : customFieldsModelType.name) || "";
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
if (!customFieldsModelType || !projectId) {
|
|
18
|
+
setDefinitions([]);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
let isCancelled = false;
|
|
22
|
+
const load = async () => {
|
|
23
|
+
setIsLoading(true);
|
|
24
|
+
setError("");
|
|
25
|
+
try {
|
|
26
|
+
const result = await ModelAPI.getList({
|
|
27
|
+
modelType: customFieldsModelType,
|
|
28
|
+
query: {
|
|
29
|
+
projectId: projectId,
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
31
|
+
},
|
|
32
|
+
limit: LIMIT_PER_PROJECT,
|
|
33
|
+
skip: 0,
|
|
34
|
+
select: {
|
|
35
|
+
name: true,
|
|
36
|
+
customFieldType: true,
|
|
37
|
+
description: true,
|
|
38
|
+
dropdownOptions: true,
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
40
|
+
},
|
|
41
|
+
sort: {},
|
|
42
|
+
});
|
|
43
|
+
if (isCancelled) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
setDefinitions(getCustomFieldDefinitions(result.data || []));
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
if (isCancelled) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
/*
|
|
53
|
+
* Custom fields are a paid feature and the caller may not have read
|
|
54
|
+
* access to the definition table, so a failure here is expected in
|
|
55
|
+
* normal operation. It costs the viewer some optional columns; it must
|
|
56
|
+
* never take the table down with it.
|
|
57
|
+
*/
|
|
58
|
+
Logger.warn(`Could not load custom field definitions for ${modelName}: ${(err === null || err === void 0 ? void 0 : err.message) || String(err)}`);
|
|
59
|
+
setDefinitions([]);
|
|
60
|
+
setError((err === null || err === void 0 ? void 0 : err.message) || "");
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
if (!isCancelled) {
|
|
64
|
+
setIsLoading(false);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
load().catch(() => {
|
|
69
|
+
// load() already funnels every failure into the catch above.
|
|
70
|
+
});
|
|
71
|
+
return () => {
|
|
72
|
+
isCancelled = true;
|
|
73
|
+
};
|
|
74
|
+
}, [modelName, projectIdString]);
|
|
75
|
+
const columns = useMemo(() => {
|
|
76
|
+
if (definitions.length === 0) {
|
|
77
|
+
return [];
|
|
78
|
+
}
|
|
79
|
+
return getCustomFieldColumns({ definitions });
|
|
80
|
+
}, [definitions]);
|
|
81
|
+
return { columns, definitions, isLoading, error };
|
|
82
|
+
};
|
|
83
|
+
export default useCustomFieldColumns;
|
|
84
|
+
//# sourceMappingURL=useCustomFieldColumns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCustomFieldColumns.js","sourceRoot":"","sources":["../../../../../UI/Components/ModelTable/useCustomFieldColumns.ts"],"names":[],"mappings":"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"}
|