@quillsql/admin 1.3.7 → 1.3.9
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/dist/cjs/Admin.d.ts +0 -5
- package/dist/cjs/Admin.d.ts.map +1 -1
- package/dist/cjs/Admin.js +56 -108
- package/dist/cjs/AdminProvider.d.ts +9 -5
- package/dist/cjs/AdminProvider.d.ts.map +1 -1
- package/dist/cjs/AdminProvider.js +73 -84
- package/dist/cjs/api/ConnectionClient.d.ts +12 -10
- package/dist/cjs/api/ConnectionClient.d.ts.map +1 -1
- package/dist/cjs/api/ConnectionClient.js +102 -30
- package/dist/cjs/assets/ArrowDownHeadIcon.d.ts +5 -0
- package/dist/cjs/assets/ArrowDownHeadIcon.d.ts.map +1 -0
- package/dist/cjs/assets/ArrowDownHeadIcon.js +5 -0
- package/dist/cjs/assets/XIcon.d.ts +5 -0
- package/dist/cjs/assets/XIcon.d.ts.map +1 -0
- package/dist/cjs/assets/XIcon.js +5 -0
- package/dist/cjs/assets/index.d.ts +3 -0
- package/dist/cjs/assets/index.d.ts.map +1 -0
- package/dist/cjs/assets/index.js +10 -0
- package/dist/cjs/components/DatabaseMismatchCard.d.ts +6 -0
- package/dist/cjs/components/DatabaseMismatchCard.d.ts.map +1 -0
- package/dist/cjs/components/DatabaseMismatchCard.js +18 -0
- package/dist/cjs/components/DatabaseSelector.d.ts +2 -1
- package/dist/cjs/components/DatabaseSelector.d.ts.map +1 -1
- package/dist/cjs/components/DatabaseSelector.js +2 -2
- package/dist/cjs/components/DropDownMenuWithLabel.d.ts +2 -1
- package/dist/cjs/components/DropDownMenuWithLabel.d.ts.map +1 -1
- package/dist/cjs/components/DropDownMenuWithLabel.js +160 -39
- package/dist/cjs/components/DynamicBanner.d.ts +11 -0
- package/dist/cjs/components/DynamicBanner.d.ts.map +1 -0
- package/dist/cjs/components/DynamicBanner.js +22 -0
- package/dist/cjs/components/EnvSelectPopover.d.ts.map +1 -1
- package/dist/cjs/components/EnvSelectPopover.js +0 -1
- package/dist/cjs/components/OrgSelect.d.ts +23 -0
- package/dist/cjs/components/OrgSelect.d.ts.map +1 -1
- package/dist/cjs/components/OrgSelect.js +55 -15
- package/dist/cjs/components/SqlTextEditor.d.ts +7 -0
- package/dist/cjs/components/SqlTextEditor.d.ts.map +1 -0
- package/dist/cjs/components/SqlTextEditor.js +44 -0
- package/dist/cjs/components/UiComponents.d.ts +119 -0
- package/dist/cjs/components/UiComponents.d.ts.map +1 -0
- package/dist/cjs/components/UiComponents.js +268 -0
- package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts +3 -2
- package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
- package/dist/cjs/forms/client_onboard/ConnectDatabase.js +101 -43
- package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts +3 -1
- package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
- package/dist/cjs/forms/client_onboard/ConnectSchema.js +13 -14
- package/dist/cjs/forms/client_onboard/CreateSqlViews.d.ts +10 -1
- package/dist/cjs/forms/client_onboard/CreateSqlViews.d.ts.map +1 -1
- package/dist/cjs/forms/client_onboard/CreateSqlViews.js +13 -13
- package/dist/cjs/forms/sql_views/CreateEditSqlView.d.ts +23 -0
- package/dist/cjs/forms/sql_views/CreateEditSqlView.d.ts.map +1 -0
- package/dist/cjs/forms/sql_views/CreateEditSqlView.js +161 -0
- package/dist/cjs/modals/NewDashboardModal.js +1 -1
- package/dist/cjs/primitives/TextInputPrimitive.d.ts +1 -0
- package/dist/cjs/primitives/TextInputPrimitive.d.ts.map +1 -1
- package/dist/cjs/primitives/TextInputPrimitive.js +2 -2
- package/dist/cjs/public_components/CreateEnvironment.d.ts.map +1 -1
- package/dist/cjs/public_components/CreateEnvironment.js +34 -8
- package/dist/cjs/public_components/DashboardBuilder.d.ts.map +1 -1
- package/dist/cjs/public_components/DashboardBuilder.js +30 -16
- package/dist/cjs/public_components/DashboardManager.d.ts.map +1 -1
- package/dist/cjs/public_components/DashboardManager.js +114 -104
- package/dist/cjs/public_components/SQLViewManager.d.ts.map +1 -1
- package/dist/cjs/public_components/SQLViewManager.js +252 -333
- package/dist/cjs/utils/dataEditor.d.ts +4 -0
- package/dist/cjs/utils/dataEditor.d.ts.map +1 -0
- package/dist/cjs/utils/dataEditor.js +144 -0
- package/dist/cjs/utils/dataFetcher.d.ts +3 -0
- package/dist/cjs/utils/dataFetcher.d.ts.map +1 -0
- package/dist/cjs/utils/dataFetcher.js +68 -0
- package/dist/cjs/utils/databases.d.ts +13 -2
- package/dist/cjs/utils/databases.d.ts.map +1 -1
- package/dist/cjs/utils/databases.js +52 -9
- package/dist/cjs/utils/table.d.ts +2 -0
- package/dist/cjs/utils/table.d.ts.map +1 -1
- package/dist/esm/Admin.d.ts +0 -5
- package/dist/esm/Admin.d.ts.map +1 -1
- package/dist/esm/Admin.js +56 -107
- package/dist/esm/AdminProvider.d.ts +9 -5
- package/dist/esm/AdminProvider.d.ts.map +1 -1
- package/dist/esm/AdminProvider.js +71 -85
- package/dist/esm/api/ConnectionClient.d.ts +12 -10
- package/dist/esm/api/ConnectionClient.d.ts.map +1 -1
- package/dist/esm/api/ConnectionClient.js +99 -29
- package/dist/esm/assets/ArrowDownHeadIcon.d.ts +5 -0
- package/dist/esm/assets/ArrowDownHeadIcon.d.ts.map +1 -0
- package/dist/esm/assets/ArrowDownHeadIcon.js +3 -0
- package/dist/esm/assets/XIcon.d.ts +5 -0
- package/dist/esm/assets/XIcon.d.ts.map +1 -0
- package/dist/esm/assets/XIcon.js +3 -0
- package/dist/esm/assets/index.d.ts +3 -0
- package/dist/esm/assets/index.d.ts.map +1 -0
- package/dist/esm/assets/index.js +2 -0
- package/dist/esm/components/DatabaseMismatchCard.d.ts +6 -0
- package/dist/esm/components/DatabaseMismatchCard.d.ts.map +1 -0
- package/dist/esm/components/DatabaseMismatchCard.js +15 -0
- package/dist/esm/components/DatabaseSelector.d.ts +2 -1
- package/dist/esm/components/DatabaseSelector.d.ts.map +1 -1
- package/dist/esm/components/DatabaseSelector.js +2 -2
- package/dist/esm/components/DropDownMenuWithLabel.d.ts +2 -1
- package/dist/esm/components/DropDownMenuWithLabel.d.ts.map +1 -1
- package/dist/esm/components/DropDownMenuWithLabel.js +137 -39
- package/dist/esm/components/DynamicBanner.d.ts +11 -0
- package/dist/esm/components/DynamicBanner.d.ts.map +1 -0
- package/dist/esm/components/DynamicBanner.js +16 -0
- package/dist/esm/components/EnvSelectPopover.d.ts.map +1 -1
- package/dist/esm/components/EnvSelectPopover.js +0 -1
- package/dist/esm/components/OrgSelect.d.ts +23 -0
- package/dist/esm/components/OrgSelect.d.ts.map +1 -1
- package/dist/esm/components/OrgSelect.js +52 -16
- package/dist/esm/components/SqlTextEditor.d.ts +7 -0
- package/dist/esm/components/SqlTextEditor.d.ts.map +1 -0
- package/dist/esm/components/SqlTextEditor.js +38 -0
- package/dist/esm/components/UiComponents.d.ts +119 -0
- package/dist/esm/components/UiComponents.d.ts.map +1 -0
- package/dist/esm/components/UiComponents.js +254 -0
- package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts +3 -2
- package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
- package/dist/esm/forms/client_onboard/ConnectDatabase.js +102 -44
- package/dist/esm/forms/client_onboard/ConnectSchema.d.ts +3 -1
- package/dist/esm/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
- package/dist/esm/forms/client_onboard/ConnectSchema.js +13 -14
- package/dist/esm/forms/client_onboard/CreateSqlViews.d.ts +10 -1
- package/dist/esm/forms/client_onboard/CreateSqlViews.d.ts.map +1 -1
- package/dist/esm/forms/client_onboard/CreateSqlViews.js +12 -14
- package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts +23 -0
- package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts.map +1 -0
- package/dist/esm/forms/sql_views/CreateEditSqlView.js +155 -0
- package/dist/esm/modals/NewDashboardModal.js +1 -1
- package/dist/esm/primitives/TextInputPrimitive.d.ts +1 -0
- package/dist/esm/primitives/TextInputPrimitive.d.ts.map +1 -1
- package/dist/esm/primitives/TextInputPrimitive.js +2 -2
- package/dist/esm/public_components/CreateEnvironment.d.ts.map +1 -1
- package/dist/esm/public_components/CreateEnvironment.js +12 -9
- package/dist/esm/public_components/DashboardBuilder.d.ts.map +1 -1
- package/dist/esm/public_components/DashboardBuilder.js +30 -16
- package/dist/esm/public_components/DashboardManager.d.ts.map +1 -1
- package/dist/esm/public_components/DashboardManager.js +115 -105
- package/dist/esm/public_components/SQLViewManager.d.ts.map +1 -1
- package/dist/esm/public_components/SQLViewManager.js +254 -335
- package/dist/esm/utils/dataEditor.d.ts +4 -0
- package/dist/esm/utils/dataEditor.d.ts.map +1 -0
- package/dist/esm/utils/dataEditor.js +138 -0
- package/dist/esm/utils/dataFetcher.d.ts +3 -0
- package/dist/esm/utils/dataFetcher.d.ts.map +1 -0
- package/dist/esm/utils/dataFetcher.js +63 -0
- package/dist/esm/utils/databases.d.ts +13 -2
- package/dist/esm/utils/databases.d.ts.map +1 -1
- package/dist/esm/utils/databases.js +52 -9
- package/dist/esm/utils/table.d.ts +2 -0
- package/dist/esm/utils/table.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/esm/Admin.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
// @ts-nocheck
|
|
3
3
|
import { useState, useEffect } from 'react';
|
|
4
|
-
import { QuillProvider, useQuill, Chart,
|
|
4
|
+
import { QuillProvider, useQuill, Chart, ChartEditor, useDashboard, QuillTable, } from '@quillsql/react';
|
|
5
5
|
import prismTheme from 'prism-react-renderer/themes/nightOwlLight';
|
|
6
6
|
import Highlight, { defaultProps } from 'prism-react-renderer';
|
|
7
7
|
import { DndContext, closestCenter, KeyboardSensor, PointerSensor, useSensor, useSensors, MeasuringStrategy, TouchSensor, } from '@dnd-kit/core';
|
|
@@ -16,6 +16,7 @@ import DashboardBuilder from './public_components/DashboardBuilder';
|
|
|
16
16
|
import SQLViewManager from './public_components/SQLViewManager';
|
|
17
17
|
import { InitialDateRangeOptions, QUILL_SERVER, defaultDateRange, } from './utils/constants';
|
|
18
18
|
import TogglePrimitive from './primitives/TogglePrimitive';
|
|
19
|
+
// chartColors: ["#6269E9", "#E14F62"],
|
|
19
20
|
const defaultTheme = {
|
|
20
21
|
fontFamily: 'Inter; Helvetica',
|
|
21
22
|
backgroundColor: '#FFFFFF',
|
|
@@ -24,7 +25,6 @@ const defaultTheme = {
|
|
|
24
25
|
chartLabelFontFamily: 'Inter; Helvetica',
|
|
25
26
|
chartLabelColor: '#666666',
|
|
26
27
|
chartTickColor: '#CCCCCC',
|
|
27
|
-
// chartColors: ["#6269E9", "#E14F62"],
|
|
28
28
|
borderColor: '#E5E7EB',
|
|
29
29
|
primaryButtonColor: '#364153',
|
|
30
30
|
borderWidth: 1,
|
|
@@ -55,7 +55,7 @@ export function EditFiltersModal({ isOpen, dashboardData, selectedDashboard, cli
|
|
|
55
55
|
setIsDateComparison(!!state.dateFilter?.comparison ?? false);
|
|
56
56
|
}, [state.dateFilter]);
|
|
57
57
|
useEffect(() => {
|
|
58
|
-
if (state.tables
|
|
58
|
+
if (state.tables?.length) {
|
|
59
59
|
const defaultTable = state.tables[0];
|
|
60
60
|
const name = state.editDashboardData?.filters[0]?.table;
|
|
61
61
|
const table = state.tables.find((t) => t.name === name) ?? defaultTable;
|
|
@@ -72,7 +72,7 @@ export function EditFiltersModal({ isOpen, dashboardData, selectedDashboard, cli
|
|
|
72
72
|
}
|
|
73
73
|
}, [dashboardData]);
|
|
74
74
|
const handleAddFilter = async () => {
|
|
75
|
-
setNewFilters([...newFilters, { label: ''
|
|
75
|
+
setNewFilters([...newFilters, { label: '' }]);
|
|
76
76
|
};
|
|
77
77
|
const handleSubmitDashboardChanges = async () => {
|
|
78
78
|
if (!selectedDashboardName ||
|
|
@@ -88,9 +88,10 @@ export function EditFiltersModal({ isOpen, dashboardData, selectedDashboard, cli
|
|
|
88
88
|
return;
|
|
89
89
|
}
|
|
90
90
|
const updatedFilters = newFilters.map((filter) => {
|
|
91
|
-
const
|
|
91
|
+
const table = state.tables.find((table) => table.name === filter.table);
|
|
92
|
+
const filterType = getPostgresBasicType(table.columns.find((col) => col.name === filter.field));
|
|
92
93
|
return {
|
|
93
|
-
table:
|
|
94
|
+
table: filter.table,
|
|
94
95
|
field: filter.field,
|
|
95
96
|
labelField: filter.field,
|
|
96
97
|
label: filter.label,
|
|
@@ -135,12 +136,15 @@ export function EditFiltersModal({ isOpen, dashboardData, selectedDashboard, cli
|
|
|
135
136
|
const body = {
|
|
136
137
|
newDashboardName: selectedDashboardName,
|
|
137
138
|
filters: updatedFilters,
|
|
138
|
-
dateFilter: newDateFilter
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
139
|
+
dateFilter: newDateFilter
|
|
140
|
+
? {
|
|
141
|
+
...newDateFilter,
|
|
142
|
+
comparison: isDateComparison,
|
|
143
|
+
primaryRange: initialRange,
|
|
144
|
+
}
|
|
145
|
+
: null,
|
|
143
146
|
name: selectedDashboard,
|
|
147
|
+
databaseType: state.client.databaseType,
|
|
144
148
|
};
|
|
145
149
|
dispatch({ type: 'SET_DATE_FILTER', payload: body.dateFilter });
|
|
146
150
|
const headers = {
|
|
@@ -180,7 +184,10 @@ export function EditFiltersModal({ isOpen, dashboardData, selectedDashboard, cli
|
|
|
180
184
|
await fetch(URL, {
|
|
181
185
|
method: 'DELETE',
|
|
182
186
|
headers: { 'Content-Type': 'application/json' },
|
|
183
|
-
body: JSON.stringify({
|
|
187
|
+
body: JSON.stringify({
|
|
188
|
+
clientId: client._id,
|
|
189
|
+
databaseType: state.client.databaseType,
|
|
190
|
+
}),
|
|
184
191
|
});
|
|
185
192
|
setIsOpen(false);
|
|
186
193
|
setNewFilters([]);
|
|
@@ -282,13 +289,22 @@ export function EditFiltersModal({ isOpen, dashboardData, selectedDashboard, cli
|
|
|
282
289
|
? { ...otherFilter, label: e.target.value }
|
|
283
290
|
: otherFilter);
|
|
284
291
|
setNewFilters(updatedFilters);
|
|
285
|
-
} })] }), _jsxs("div", { style: {
|
|
292
|
+
}, width: "230px" })] }), _jsxs("div", { style: {
|
|
286
293
|
display: 'flex',
|
|
287
294
|
flexDirection: 'column',
|
|
288
295
|
maxWidth: 300,
|
|
289
|
-
}, children: [index === 0 && _jsx(InputLabel, { children: "Table" }), _jsx(SelectComponent, { defaultValue: "", value:
|
|
290
|
-
|
|
291
|
-
|
|
296
|
+
}, children: [index === 0 && _jsx(InputLabel, { children: "Table" }), _jsx(SelectComponent, { defaultValue: "", value: filter.table, onChange: (e) => {
|
|
297
|
+
const updatedFilters = newFilters.map((otherFilter, i) => index === i
|
|
298
|
+
? { ...otherFilter, table: e }
|
|
299
|
+
: otherFilter);
|
|
300
|
+
setNewFilters(updatedFilters);
|
|
301
|
+
}, options: [
|
|
302
|
+
{ label: 'Select', value: '' },
|
|
303
|
+
...state.tables.map((table) => {
|
|
304
|
+
return { label: table.name, value: table.name };
|
|
305
|
+
}),
|
|
306
|
+
,
|
|
307
|
+
] })] }), _jsxs("div", { style: {
|
|
292
308
|
display: 'flex',
|
|
293
309
|
flexDirection: 'column',
|
|
294
310
|
maxWidth: 300,
|
|
@@ -300,7 +316,9 @@ export function EditFiltersModal({ isOpen, dashboardData, selectedDashboard, cli
|
|
|
300
316
|
display: 'flex',
|
|
301
317
|
flexDirection: 'row',
|
|
302
318
|
alignItems: 'center',
|
|
303
|
-
}, children: [_jsx(SelectComponent, { defaultValue: "", value: filter && filter.field ? filter.field : '', options:
|
|
319
|
+
}, children: [_jsx(SelectComponent, { defaultValue: "", value: filter && filter.field ? filter.field : '', options: state.tables
|
|
320
|
+
.find((table) => table.name === filter.table)
|
|
321
|
+
?.columns.map((column) => {
|
|
304
322
|
return {
|
|
305
323
|
label: column.name,
|
|
306
324
|
value: column.name,
|
|
@@ -317,7 +335,7 @@ export function EditFiltersModal({ isOpen, dashboardData, selectedDashboard, cli
|
|
|
317
335
|
justifyContent: 'center',
|
|
318
336
|
display: 'flex',
|
|
319
337
|
cursor: 'pointer',
|
|
320
|
-
}, children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "#4C5462", width: "20", height: "20", children: _jsx("path", { fillRule: "evenodd", d: "M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z", clipRule: "evenodd" }) }) })] }) })] })] }));
|
|
338
|
+
}, children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "#4C5462", width: "20", height: "20", children: _jsx("path", { fillRule: "evenodd", d: "M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z", clipRule: "evenodd" }) }) })] }) })] })] }, index));
|
|
321
339
|
}) })), _jsx("div", { style: { height: 12 } }), _jsx(SecondaryButtonComponent, { onClick: handleAddFilter, label: "Add filter +" })] }), _jsx(CardSection, { children: "Chart order" }), _jsx("div", { style: { maxWidth: 230 }, children: _jsx(SecondaryButtonComponent, { onClick: () => openEditOrderModal(selectedDashboardName), label: "Edit chart order" }) }), _jsx(CardSection, { children: "Danger Zone" }), _jsx("div", { style: { maxWidth: 230 }, children: _jsx(SecondaryButtonComponent, { onClick: handleDeleteDashboard, label: "Delete Dashboard" }) }), _jsx("div", { style: { height: 18 } }), _jsx("div", { style: { maxWidth: 230 }, children: _jsx(ButtonComponent, { onClick: handleSubmitDashboardChanges, label: "Save changes" }) })] }) }));
|
|
322
340
|
}
|
|
323
341
|
export function AddFilterModal({ isOpen, selectedDashboard, client, setIsOpen, ModalComponent, TextInputComponent, SelectComponent, HeaderComponent, ButtonComponent, openAddDashboardModal, }) {
|
|
@@ -328,7 +346,7 @@ export function AddFilterModal({ isOpen, selectedDashboard, client, setIsOpen, M
|
|
|
328
346
|
const [dateRange, setDateRange] = useState([new Date(), new Date()]);
|
|
329
347
|
const { state, dispatch } = useAdmin();
|
|
330
348
|
useEffect(() => {
|
|
331
|
-
if (state.tables
|
|
349
|
+
if (state.tables?.length) {
|
|
332
350
|
setSelectedTable(state.tables[0]);
|
|
333
351
|
// setField(tables[0].columns.map((elem) => elem.name));
|
|
334
352
|
setField(state.tables[0].columns[0].name);
|
|
@@ -532,6 +550,7 @@ export const theme = {
|
|
|
532
550
|
borderWidth: 1,
|
|
533
551
|
primaryButtonColor: '#212121',
|
|
534
552
|
primaryButtonTextColor: '#FFFFFF',
|
|
553
|
+
hoverBackgroundColor: '#F4F4F5',
|
|
535
554
|
};
|
|
536
555
|
export function convertPostgresColumn(column) {
|
|
537
556
|
let format;
|
|
@@ -625,7 +644,7 @@ export function AddDashboardModal({ selectedDashboard, isOpen, setIsOpen, client
|
|
|
625
644
|
const [newFilters, setNewFilters] = useState([]);
|
|
626
645
|
const [newDateFilter, setNewDateFilter] = useState(null);
|
|
627
646
|
useEffect(() => {
|
|
628
|
-
if (state.tables
|
|
647
|
+
if (state.tables?.length) {
|
|
629
648
|
setSelectedTable(state.tables[0]);
|
|
630
649
|
// setField(tables[0].columns.map((elem) => elem.name));
|
|
631
650
|
setField(state.tables[0].columns[0].name);
|
|
@@ -785,7 +804,7 @@ export function TableCell({ table, clickTableCell }) {
|
|
|
785
804
|
minWidth: '540px',
|
|
786
805
|
maxWidth: '540px',
|
|
787
806
|
cursor: 'pointer',
|
|
788
|
-
}, children: [_jsx("div", { style: { display: 'flex', flexDirection: 'row', alignItems: 'center' }, children: _jsx("h3", { style: { color: '#384151' }, children: table.displayName }) }), _jsx(Highlight, { ...defaultProps, theme: prismTheme, code: table
|
|
807
|
+
}, children: [_jsx("div", { style: { display: 'flex', flexDirection: 'row', alignItems: 'center' }, children: _jsx("h3", { style: { color: '#384151' }, children: table.displayName }) }), _jsx(Highlight, { ...defaultProps, theme: prismTheme, code: table?.viewQuery || '', language: "sql", children: ({ className, style, tokens, getLineProps, getTokenProps }) => (_jsx("pre", { className: className, style: {
|
|
789
808
|
...style,
|
|
790
809
|
textAlign: 'left',
|
|
791
810
|
margin: '1em 0',
|
|
@@ -795,50 +814,8 @@ export function TableCell({ table, clickTableCell }) {
|
|
|
795
814
|
maxWidth: 520,
|
|
796
815
|
// lineHeight: "1.3em",
|
|
797
816
|
// height: "1.3em",
|
|
798
|
-
}, children: tokens.map((line, i) => (_jsx("div", { ...getLineProps({ line, key: i }), children: line.map((token, key) => (_jsx("span", { ...getTokenProps({ token, key }) }, key))) }, i))) })) })] }, table.
|
|
817
|
+
}, children: tokens.map((line, i) => (_jsx("div", { ...getLineProps({ line, key: i }), children: line.map((token, key) => (_jsx("span", { ...getTokenProps({ token, key }) }, key))) }, i))) })) })] }, table._id));
|
|
799
818
|
}
|
|
800
|
-
export const SQLEditorComponent = ({ query, setQuery,
|
|
801
|
-
// handleRunQuery,
|
|
802
|
-
theme,
|
|
803
|
-
// defineEditorTheme,
|
|
804
|
-
// setEditorTheme,
|
|
805
|
-
}) => {
|
|
806
|
-
const [isOpen, setIsOpen] = useState(false);
|
|
807
|
-
const [rows, setRows] = useState([]);
|
|
808
|
-
const [columns, setColumns] = useState([]);
|
|
809
|
-
const [fields, setFields] = useState([]);
|
|
810
|
-
// const [activeQuery] = useContext(ActiveQueryContext);
|
|
811
|
-
const { state, dispatch } = useAdmin();
|
|
812
|
-
return (_jsxs("div", { style: {
|
|
813
|
-
background: theme.backgroundColor,
|
|
814
|
-
// maxHeight: 700,
|
|
815
|
-
// width: "100%",
|
|
816
|
-
minWidth: 450,
|
|
817
|
-
// overflowY: "scroll",
|
|
818
|
-
// padding: "20px 30px 20px 20px",
|
|
819
|
-
// marginLeft: 20,
|
|
820
|
-
borderRadius: 6,
|
|
821
|
-
overflow: 'hidden',
|
|
822
|
-
}, children: [_jsx(SQLEditor, { containerStyle: { height: 'calc(100vh - 270px)', width: '100%' }, onChangeQuery: (query) => setQuery(query), onChangeData: (data) => setRows(data), onChangeColumns: (columns) => setColumns(columns), onChangeFields: (fields) => setFields(fields), defaultQuery: state.activeQuery ? state.activeQuery : '' }), rows.length > 0 && (_jsx("button", { style: {
|
|
823
|
-
height: 36,
|
|
824
|
-
marginLeft: 250,
|
|
825
|
-
marginTop: 20,
|
|
826
|
-
background: theme.primaryButtonColor,
|
|
827
|
-
color: theme.backgroundColor,
|
|
828
|
-
display: 'flex',
|
|
829
|
-
borderRadius: 6,
|
|
830
|
-
alignItems: 'center',
|
|
831
|
-
justifyContent: 'center',
|
|
832
|
-
outline: 'none',
|
|
833
|
-
cursor: 'pointer',
|
|
834
|
-
fontFamily: theme.fontFamily,
|
|
835
|
-
fontWeight: theme.buttonFontWeight || 600,
|
|
836
|
-
border: 'none',
|
|
837
|
-
fontSize: 14,
|
|
838
|
-
paddingLeft: 20,
|
|
839
|
-
paddingRight: 20,
|
|
840
|
-
}, onClick: () => setIsOpen(true), children: "Add to dashboard" })), _jsx(AddToDashboardModal, { isOpen: isOpen, setIsOpen: setIsOpen, rows: rows, columns: columns, query: query, showTableFormatQuillOptions: true, showDateFieldQuillOptions: true, showAccessControlQuillOptions: true, fields: fields })] }));
|
|
841
|
-
};
|
|
842
819
|
const SchemaListComponent = ({ schema, theme }) => {
|
|
843
820
|
return (_jsx("div", { style: {
|
|
844
821
|
background: theme.backgroundColor,
|
|
@@ -1016,33 +993,6 @@ const FORMAT_QuillOptionS = [
|
|
|
1016
993
|
function Report({ reportId, saveDashboardItem, isOpen, setIsOpen, isEditQueryOpen, SecondaryButtonComponent, ButtonComponent, deleteReport, updateQuery, OrganizationSelectComponent, ModalComponent, NavigateToDashboardBuilder, }) {
|
|
1017
994
|
const { data, loading, error } = useQuill(reportId);
|
|
1018
995
|
const { state, dispatch } = useAdmin();
|
|
1019
|
-
const downloadCSV = () => {
|
|
1020
|
-
// report.rows
|
|
1021
|
-
if (!data) {
|
|
1022
|
-
return;
|
|
1023
|
-
}
|
|
1024
|
-
const json = data.rows; // JSON data passed as a prop
|
|
1025
|
-
const fields = Object.keys(json[0]); // Assumes all objects have same keys
|
|
1026
|
-
const csvRows = [];
|
|
1027
|
-
// Header row
|
|
1028
|
-
csvRows.push(fields.join(','));
|
|
1029
|
-
// Data rows
|
|
1030
|
-
for (let row of json) {
|
|
1031
|
-
let values = fields.map((field) => JSON.stringify(row[field] || ''));
|
|
1032
|
-
csvRows.push(values.join(','));
|
|
1033
|
-
}
|
|
1034
|
-
// Create CSV string and create a 'blob' with it
|
|
1035
|
-
const csvString = csvRows.join('\r\n');
|
|
1036
|
-
const csvBlob = new Blob([csvString], { type: 'text/csv' });
|
|
1037
|
-
// Create a download link and click it
|
|
1038
|
-
const downloadLink = document.createElement('a');
|
|
1039
|
-
downloadLink.download = 'download.csv';
|
|
1040
|
-
downloadLink.href = URL.createObjectURL(csvBlob);
|
|
1041
|
-
downloadLink.style.display = 'none';
|
|
1042
|
-
document.body.appendChild(downloadLink);
|
|
1043
|
-
downloadLink.click();
|
|
1044
|
-
document.body.removeChild(downloadLink);
|
|
1045
|
-
};
|
|
1046
996
|
const goBack = () => {
|
|
1047
997
|
// setActiveComponent("Dashboards");
|
|
1048
998
|
dispatch({ type: 'SET_ACTIVE_COMPONENT', payload: 'Dashboards' });
|
|
@@ -1119,13 +1069,15 @@ function Report({ reportId, saveDashboardItem, isOpen, setIsOpen, isEditQueryOpe
|
|
|
1119
1069
|
dispatch({ type: 'SET_ACTIVE_QUERY', payload: data.queryString });
|
|
1120
1070
|
dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: data });
|
|
1121
1071
|
state.navigateToDashboardBuilder();
|
|
1122
|
-
} })), _jsx(SecondaryButtonComponent, { label: "Delete", onClick: deleteReport })] }), data.chartType !== 'table' && (_jsx(
|
|
1072
|
+
} })), _jsx(SecondaryButtonComponent, { label: "Delete", onClick: deleteReport })] }), data.chartType !== 'table' && (_jsx(QuillTable, { containerStyle: { height: 400, width: '100%', marginTop: 24 }, rows: data.rows, columns: data.columns, showDownloadCSVButton: true })), _jsx(EditVisualizationModal, { isOpen: isOpen, setIsOpen: setIsOpen, report: data, isEditMode: !!state.activeQuery, data: data.rows, query: data.queryString, columns: data.columns, fields: data.fields, state: state, goBack: goBack })] }));
|
|
1123
1073
|
}
|
|
1124
|
-
function EditVisualizationModal({ isOpen, setIsOpen, report, data, isEditMode, }) {
|
|
1074
|
+
function EditVisualizationModal({ isOpen, setIsOpen, report, data, isEditMode, state, goBack, }) {
|
|
1125
1075
|
if (!report && !data?.length) {
|
|
1126
1076
|
return null;
|
|
1127
1077
|
}
|
|
1128
|
-
return (_jsx(_Fragment, { children: isOpen && (_jsxs("div", { className: "inset-0 overflow-y-auto relative", style: { zIndex: 120 }, children: [_jsx("div", { className: "absolute inset-0 bg-black/30", "aria-hidden": "true", onClick: () => setIsOpen(false) }), _jsx("div", { className: "flex min-h-full items-center justify-center p-4", children: _jsx("div", { className: "bg-white px-7 py-7 rounded-lg", children: _jsx(ChartEditor, { isOpen: isOpen, setIsOpen: setIsOpen, isEditMode: isEditMode, chartId: report._id, admin: true
|
|
1078
|
+
return (_jsx(_Fragment, { children: isOpen && (_jsxs("div", { className: "inset-0 overflow-y-auto relative", style: { zIndex: 120 }, children: [_jsx("div", { className: "absolute inset-0 bg-black/30", "aria-hidden": "true", onClick: () => setIsOpen(false) }), _jsx("div", { className: "flex min-h-full items-center justify-center p-4", children: _jsx("div", { className: "bg-white px-7 py-7 rounded-lg", children: _jsx(ChartEditor, { isOpen: isOpen, setIsOpen: setIsOpen, isEditMode: isEditMode, chartId: report._id, admin: true, organizationName: state.organizations.find((org) => {
|
|
1079
|
+
return (org.id && String(org.id) === String(state.organizationId));
|
|
1080
|
+
})?.name, onDelete: goBack }) }) })] })) }));
|
|
1129
1081
|
}
|
|
1130
1082
|
export function ReportWrapper({ SecondaryButtonComponent, ButtonComponent, ModalComponent, SelectComponent, OrganizationSelectComponent, organizationId, queryEndpoint, queryHeaders, withCredentials, }) {
|
|
1131
1083
|
const { state, dispatch } = useAdmin();
|
|
@@ -1147,8 +1099,9 @@ export function ReportWrapper({ SecondaryButtonComponent, ButtonComponent, Modal
|
|
|
1147
1099
|
metadata: {
|
|
1148
1100
|
task: 'edit_query',
|
|
1149
1101
|
id: state.reportId,
|
|
1102
|
+
databaseType: state.client.databaseType,
|
|
1150
1103
|
query,
|
|
1151
|
-
|
|
1104
|
+
orgId: organizationId || '*',
|
|
1152
1105
|
},
|
|
1153
1106
|
}),
|
|
1154
1107
|
credentials: withCredentials ? 'include' : 'omit',
|
|
@@ -1205,18 +1158,13 @@ export function ReportWrapper({ SecondaryButtonComponent, ButtonComponent, Modal
|
|
|
1205
1158
|
'Content-Type': 'application/json',
|
|
1206
1159
|
},
|
|
1207
1160
|
body: JSON.stringify({
|
|
1208
|
-
metadata:
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
: {
|
|
1216
|
-
task: 'delete',
|
|
1217
|
-
dashboardItemId: state.reportId,
|
|
1218
|
-
clientId: state.client._id,
|
|
1219
|
-
},
|
|
1161
|
+
metadata: {
|
|
1162
|
+
orgId: organizationId || '*',
|
|
1163
|
+
task: 'delete',
|
|
1164
|
+
dashboardItemId: state.reportId,
|
|
1165
|
+
clientId: state.client._id,
|
|
1166
|
+
databaseType: state.client.databaseType,
|
|
1167
|
+
},
|
|
1220
1168
|
}),
|
|
1221
1169
|
credentials: withCredentials ? 'include' : 'omit', // If withCredentials is true, set to 'include'. Otherwise, set to 'omit'.
|
|
1222
1170
|
});
|
|
@@ -1226,6 +1174,7 @@ export function ReportWrapper({ SecondaryButtonComponent, ButtonComponent, Modal
|
|
|
1226
1174
|
const url = `${QUILL_SERVER}/deletedash/${state.client._id}/${organizationId}/`;
|
|
1227
1175
|
const requestBody = {
|
|
1228
1176
|
dashboardItemId: state.reportId,
|
|
1177
|
+
databaseType: state.client.databaseType,
|
|
1229
1178
|
};
|
|
1230
1179
|
const response = await fetch(url, {
|
|
1231
1180
|
method: 'POST',
|
|
@@ -28,6 +28,10 @@ interface State {
|
|
|
28
28
|
navigateToDashboardManager?: () => void;
|
|
29
29
|
navigateToDashboardBuilder?: () => void;
|
|
30
30
|
domainName?: string;
|
|
31
|
+
databaseTypeMismatch: {
|
|
32
|
+
show: boolean;
|
|
33
|
+
backendDatabaseType: string;
|
|
34
|
+
};
|
|
31
35
|
}
|
|
32
36
|
type Action = {
|
|
33
37
|
type: 'SET_LOADING';
|
|
@@ -53,9 +57,6 @@ type Action = {
|
|
|
53
57
|
} | {
|
|
54
58
|
type: 'SET_ENVIRONMENT';
|
|
55
59
|
payload: string;
|
|
56
|
-
} | {
|
|
57
|
-
type: 'SET_ORGANIZATION';
|
|
58
|
-
payload: any;
|
|
59
60
|
} | {
|
|
60
61
|
type: 'SET_ORGANIZATIONS';
|
|
61
62
|
payload: any[];
|
|
@@ -105,8 +106,11 @@ type Action = {
|
|
|
105
106
|
type: 'SET_NAVIGATE_TO_DASHBOARD_BUILDER';
|
|
106
107
|
payload: () => void;
|
|
107
108
|
} | {
|
|
108
|
-
type: '
|
|
109
|
-
payload:
|
|
109
|
+
type: 'SET_DATABASE_TYPE_MISMATCH';
|
|
110
|
+
payload: {
|
|
111
|
+
show: boolean;
|
|
112
|
+
backendDatabaseType: string;
|
|
113
|
+
};
|
|
110
114
|
};
|
|
111
115
|
declare const useAdmin: () => {
|
|
112
116
|
state: State;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminProvider.d.ts","sourceRoot":"","sources":["../../src/AdminProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAGZ,QAAQ,EAGR,SAAS,EACV,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,UAAU,EAAS,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"AdminProvider.d.ts","sourceRoot":"","sources":["../../src/AdminProvider.tsx"],"names":[],"mappings":"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"}
|