@quillsql/admin 1.3.7 → 1.3.8
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.map +1 -1
- package/dist/cjs/Admin.js +21 -11
- package/dist/cjs/AdminProvider.d.ts +10 -0
- package/dist/cjs/AdminProvider.d.ts.map +1 -1
- package/dist/cjs/AdminProvider.js +63 -43
- 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 +100 -29
- 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 +12 -10
- package/dist/cjs/forms/sql_views/CreateEditSqlView.d.ts +24 -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/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 +110 -93
- 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.map +1 -1
- package/dist/esm/Admin.js +21 -11
- package/dist/esm/AdminProvider.d.ts +10 -0
- package/dist/esm/AdminProvider.d.ts.map +1 -1
- package/dist/esm/AdminProvider.js +61 -44
- 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 +97 -28
- 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 +11 -11
- package/dist/esm/forms/sql_views/CreateEditSqlView.d.ts +24 -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/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 +111 -94
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateSqlViews.d.ts","sourceRoot":"","sources":["../../../../src/forms/client_onboard/CreateSqlViews.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAuB,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAU,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAa3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAwB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"CreateSqlViews.d.ts","sourceRoot":"","sources":["../../../../src/forms/client_onboard/CreateSqlViews.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAuB,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAU,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAa3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAwB,MAAM,uBAAuB,CAAC;AAK7E,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,QAAQ,EACR,KAAK,GACN,EAAE;IACD,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,kBAAkB,CAAC,EAAE,cAAc,CAAC;IACpC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,kBAAkB,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,GAAG,CAAC;CACZ,2CAmWA;AAED,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,SAAS,EACT,QAAQ,EACR,UAAU,EACV,SAAS,GACV,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAChC,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B,2CAiDA"}
|
|
@@ -3,14 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ForeignKeyModal = void 0;
|
|
6
7
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
8
|
const react_1 = require("react");
|
|
8
9
|
const primitives_1 = require("../../primitives");
|
|
9
|
-
const react_2 = require("@quillsql/react");
|
|
10
10
|
const ConnectionClient_1 = require("../../api/ConnectionClient");
|
|
11
|
-
const databases_1 = require("../../utils/databases");
|
|
12
11
|
const SqlViewTile_1 = __importDefault(require("../../components/SqlViewTile"));
|
|
13
|
-
|
|
12
|
+
const SqlTextEditor_1 = __importDefault(require("../../components/SqlTextEditor"));
|
|
13
|
+
const react_2 = require("@quillsql/react");
|
|
14
|
+
function CreateSQLViews({ containerStyle, header1Style, header2Style, columnsByTable, environmentDetails, allSchemaInfo, domainName, completeOnboarding, clientId, state, }) {
|
|
14
15
|
const [selectedTable, setSelectedTable] = (0, react_1.useState)(undefined);
|
|
15
16
|
const [queryInfo, setQueryInfo] = (0, react_1.useState)({
|
|
16
17
|
name: '',
|
|
@@ -28,7 +29,7 @@ function CreateSQLViews({ containerStyle, header1Style, header2Style, columnsByT
|
|
|
28
29
|
const addSqlView = async (override) => {
|
|
29
30
|
const results = await (0, ConnectionClient_1.createSQLView)(environmentDetails, allSchemaInfo, columnsByTable, queryInfo, client, domainName, tableData, sqlTables.map((e) => {
|
|
30
31
|
return e.name;
|
|
31
|
-
}), override);
|
|
32
|
+
}), override, clientId);
|
|
32
33
|
if (results.throwModal) {
|
|
33
34
|
setShowFKModal(true);
|
|
34
35
|
return;
|
|
@@ -52,7 +53,6 @@ function CreateSQLViews({ containerStyle, header1Style, header2Style, columnsByT
|
|
|
52
53
|
...containerStyle,
|
|
53
54
|
display: 'flex',
|
|
54
55
|
flexDirection: 'column',
|
|
55
|
-
overflow: 'hidden',
|
|
56
56
|
}, id: "create-sql-view", children: [(0, jsx_runtime_1.jsxs)("div", { style: {
|
|
57
57
|
padding: 20,
|
|
58
58
|
paddingBottom: 12,
|
|
@@ -81,10 +81,12 @@ function CreateSQLViews({ containerStyle, header1Style, header2Style, columnsByT
|
|
|
81
81
|
setAIPrompt(e.target.value);
|
|
82
82
|
}, placeholder: 'Describe a query...', value: aiPrompt }), (0, jsx_runtime_1.jsx)(primitives_1.ButtonPrimitive, { label: askAIButton, onClick: async () => {
|
|
83
83
|
setAskAIButton('Loading...');
|
|
84
|
-
const results = await (0, ConnectionClient_1.
|
|
84
|
+
const results = await (0, ConnectionClient_1.getQueryFromAiWithConnection)(aiPrompt, clientId, allSchemaInfo?.selectedFields.schema
|
|
85
|
+
? [allSchemaInfo?.selectedFields.schema]
|
|
86
|
+
: undefined);
|
|
85
87
|
setQueryInfo({ name: queryInfo.name, query: results });
|
|
86
88
|
setAskAIButton('Ask AI');
|
|
87
|
-
}, style: { width: '90px' } })] }), (0, jsx_runtime_1.jsx)(
|
|
89
|
+
}, style: { width: '90px' } })] }), (0, jsx_runtime_1.jsx)(SqlTextEditor_1.default, { value: queryInfo.query, setValue: (e) => {
|
|
88
90
|
setQueryInfo({ name: queryInfo.name, query: e });
|
|
89
91
|
}, containerStyle: { paddingLeft: 16, paddingRight: 16 } }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
90
92
|
display: 'flex',
|
|
@@ -96,8 +98,7 @@ function CreateSQLViews({ containerStyle, header1Style, header2Style, columnsByT
|
|
|
96
98
|
height: 70,
|
|
97
99
|
}, children: [(0, jsx_runtime_1.jsx)(primitives_1.ButtonPrimitive, { label: runQueryButtonLabel, onClick: async () => {
|
|
98
100
|
setRunQueryButtonLabel('Querying...');
|
|
99
|
-
const
|
|
100
|
-
const getSqlResults = await (0, ConnectionClient_1.getSqlViewData)(connectionString, queryInfo.query);
|
|
101
|
+
const getSqlResults = await (0, ConnectionClient_1.getSqlViewData)(clientId, queryInfo.query, environmentDetails.type, state.queryEndpoint);
|
|
101
102
|
if (!getSqlResults.success) {
|
|
102
103
|
setErrorInfo({ status: true, msg: getSqlResults.error });
|
|
103
104
|
}
|
|
@@ -115,7 +116,7 @@ function CreateSQLViews({ containerStyle, header1Style, header2Style, columnsByT
|
|
|
115
116
|
paddingLeft: 16,
|
|
116
117
|
paddingRight: 16,
|
|
117
118
|
height: 'calc(100vh - 515px)',
|
|
118
|
-
}, children: [(0, jsx_runtime_1.jsx)(react_2.Table, { rows: tableData.rows, columns: tableData.
|
|
119
|
+
}, children: [(0, jsx_runtime_1.jsx)(react_2.Table, { rows: tableData.rows, columns: tableData.fields,
|
|
119
120
|
// height="400px"
|
|
120
121
|
containerStyle: {
|
|
121
122
|
height: 'calc(100vh - 589px)',
|
|
@@ -206,3 +207,4 @@ function ForeignKeyModal({ isOpen, setIsOpen, override, foreignKey, tableName, }
|
|
|
206
207
|
setIsOpen(false);
|
|
207
208
|
} })] })] }) }));
|
|
208
209
|
}
|
|
210
|
+
exports.ForeignKeyModal = ForeignKeyModal;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ButtonComponentProps, TableComponentProps, TextInputComponentProps, HeaderProps } from '@quillsql/react';
|
|
3
|
+
import { ColumnsByTable } from '../../utils/table';
|
|
4
|
+
interface CreateEditSqlViewProps {
|
|
5
|
+
containerStyle: React.CSSProperties;
|
|
6
|
+
initialSqlView?: {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
query: string;
|
|
10
|
+
};
|
|
11
|
+
Button?: (props: ButtonComponentProps) => JSX.Element;
|
|
12
|
+
SecondaryButtonComponent?: (props: ButtonComponentProps) => JSX.Element;
|
|
13
|
+
TextInput?: (props: TextInputComponentProps) => JSX.Element;
|
|
14
|
+
TableComponent?: (props: TableComponentProps) => JSX.Element;
|
|
15
|
+
LoadingComponent?: () => JSX.Element;
|
|
16
|
+
Header?: (props: HeaderProps) => JSX.Element;
|
|
17
|
+
closeEditView: () => void;
|
|
18
|
+
addEditView: (request: string, query: string, name?: string, id?: string) => void;
|
|
19
|
+
allTableData: ColumnsByTable[];
|
|
20
|
+
schemaIsLoading: boolean;
|
|
21
|
+
}
|
|
22
|
+
export default function CreateEditSqlView({ containerStyle, initialSqlView, closeEditView, addEditView, SecondaryButtonComponent, TableComponent, LoadingComponent, Button, TextInput, Header, allTableData, schemaIsLoading, }: CreateEditSqlViewProps): JSX.Element;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=CreateEditSqlView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateEditSqlView.d.ts","sourceRoot":"","sources":["../../../../src/forms/sql_views/CreateEditSqlView.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,WAAW,EAEZ,MAAM,iBAAiB,CAAC;AAwBzB,OAAO,EAAU,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAK3D,UAAU,sBAAsB;IAC9B,cAAc,EAAE,KAAK,CAAC,aAAa,CAAC;IACpC,cAAc,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IACtD,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAExE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC5D,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC7D,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,GAAG,CAAC,OAAO,CAAC;IAC7C,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,EAAE,CACX,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,EACb,EAAE,CAAC,EAAE,MAAM,KACR,IAAI,CAAC;IACV,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,cAAc,EACd,cAAc,EACd,aAAa,EACb,WAAW,EACX,wBAAwB,EACxB,cAAsB,EACtB,gBAA2C,EAC3C,MAAuB,EACvB,SAA6B,EAC7B,MAAuB,EACvB,YAAY,EACZ,eAAe,GAChB,EAAE,sBAAsB,GAAG,GAAG,CAAC,OAAO,CAsStC"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
const react_1 = require("@quillsql/react");
|
|
8
|
+
const react_2 = require("react");
|
|
9
|
+
const AdminProvider_1 = require("../../AdminProvider");
|
|
10
|
+
const ConnectionClient_1 = require("../../api/ConnectionClient");
|
|
11
|
+
const SqlTextEditor_1 = __importDefault(require("../../components/SqlTextEditor"));
|
|
12
|
+
const UiComponents_1 = require("../../components/UiComponents");
|
|
13
|
+
const react_3 = require("@quillsql/react");
|
|
14
|
+
const CreateSqlViews_1 = require("../client_onboard/CreateSqlViews");
|
|
15
|
+
const DynamicBanner_1 = __importDefault(require("../../components/DynamicBanner"));
|
|
16
|
+
function CreateEditSqlView({ containerStyle, initialSqlView, closeEditView, addEditView, SecondaryButtonComponent, TableComponent = react_1.Table, LoadingComponent = () => (0, jsx_runtime_1.jsx)(UiComponents_1.LoadingSpinner, {}), Button = UiComponents_1.MemoizedButton, TextInput = UiComponents_1.MemoizedTextInput, Header = UiComponents_1.MemoizedHeader, allTableData, schemaIsLoading, }) {
|
|
17
|
+
const [name, setName] = (0, react_2.useState)(initialSqlView?.name || '');
|
|
18
|
+
const [editViewQuery, setEditViewQuery] = (0, react_2.useState)(initialSqlView?.query || '');
|
|
19
|
+
const [ranViewQuery, setRanViewQuery] = (0, react_2.useState)(initialSqlView?.query || '');
|
|
20
|
+
const [askAIButton, setAskAIButton] = (0, react_2.useState)('Ask AI');
|
|
21
|
+
const [aiPrompt, setAIPrompt] = (0, react_2.useState)('');
|
|
22
|
+
const [runQueryButtonLabel, setRunQueryButtonLabel] = (0, react_2.useState)('Run query');
|
|
23
|
+
const [viewAddable, setViewAddable] = (0, react_2.useState)(false);
|
|
24
|
+
const [showFKModal, setShowFKModal] = (0, react_2.useState)(false);
|
|
25
|
+
const [overrideFKCheck, setOverrideFKCheck] = (0, react_2.useState)(false);
|
|
26
|
+
const [isLoading, setIsLoading] = (0, react_2.useState)(false);
|
|
27
|
+
const [tableSearchQuery, setTableSearchQuery] = (0, react_2.useState)('');
|
|
28
|
+
const [displayedTableData, setDisplayedTableData] = (0, react_2.useState)(allTableData);
|
|
29
|
+
const [errorInfo, setErrorInfo] = (0, react_2.useState)({ show: false, message: '' });
|
|
30
|
+
const [tableData, setTableData] = (0, react_2.useState)(undefined);
|
|
31
|
+
const { state, dispatch } = (0, AdminProvider_1.useAdmin)();
|
|
32
|
+
const addEditSqlView = async (override = false) => {
|
|
33
|
+
if (!override &&
|
|
34
|
+
tableData &&
|
|
35
|
+
!tableData.fields.find((col) => col.name === state.client.customerFieldName)) {
|
|
36
|
+
setShowFKModal(true);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
addEditView(initialSqlView ? 'edit' : 'add', ranViewQuery, name, initialSqlView ? initialSqlView.id : undefined);
|
|
40
|
+
};
|
|
41
|
+
(0, react_2.useEffect)(() => {
|
|
42
|
+
setDisplayedTableData(allTableData);
|
|
43
|
+
}, [allTableData]);
|
|
44
|
+
const handleRunSqlPrompt = async () => {
|
|
45
|
+
setErrorInfo({ show: false, message: '' });
|
|
46
|
+
setViewAddable(false);
|
|
47
|
+
setAskAIButton('Loading...');
|
|
48
|
+
const results = await (0, ConnectionClient_1.getQueryFromAiWithConnection)(aiPrompt, state.client._id, state.client.schemaNames);
|
|
49
|
+
setOverrideFKCheck(false);
|
|
50
|
+
setEditViewQuery(results);
|
|
51
|
+
setAskAIButton('Ask AI');
|
|
52
|
+
};
|
|
53
|
+
const handleRunQuery = async () => {
|
|
54
|
+
const query = editViewQuery;
|
|
55
|
+
// If this query has a limit at the end alert the user
|
|
56
|
+
if (query.toLowerCase().includes(' limit ')) {
|
|
57
|
+
setErrorInfo({
|
|
58
|
+
show: true,
|
|
59
|
+
message: 'Error: Please remove the limit on you query.',
|
|
60
|
+
});
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
setViewAddable(false);
|
|
64
|
+
setErrorInfo({ show: false, message: '' });
|
|
65
|
+
setTableData(undefined);
|
|
66
|
+
setIsLoading(true);
|
|
67
|
+
setRunQueryButtonLabel('Querying...');
|
|
68
|
+
setOverrideFKCheck(false);
|
|
69
|
+
if (editViewQuery.length === 0) {
|
|
70
|
+
setErrorInfo({ show: true, message: 'Error: Please enter a query.' });
|
|
71
|
+
setRunQueryButtonLabel('Run query');
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const resp = await (0, ConnectionClient_1.getSqlViewData)(state.client._id, query, state.client.databaseType, state.queryEndpoint);
|
|
75
|
+
if (!resp.success) {
|
|
76
|
+
setErrorInfo({ show: true, message: resp.error });
|
|
77
|
+
setTableData(undefined);
|
|
78
|
+
setViewAddable(false);
|
|
79
|
+
setRunQueryButtonLabel('Run query');
|
|
80
|
+
setIsLoading(false);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
setRunQueryButtonLabel('Run query');
|
|
84
|
+
setErrorInfo({ show: false, message: '' });
|
|
85
|
+
setTableData(resp);
|
|
86
|
+
setViewAddable(true);
|
|
87
|
+
setRanViewQuery(query);
|
|
88
|
+
setIsLoading(false);
|
|
89
|
+
};
|
|
90
|
+
return ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
91
|
+
...containerStyle,
|
|
92
|
+
gap: 6,
|
|
93
|
+
height: 'calc(100vh - 188px)',
|
|
94
|
+
}, children: (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', height: '100%', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)(DynamicBanner_1.default, { header: initialSqlView
|
|
95
|
+
? `Edit "${initialSqlView.name}" view`
|
|
96
|
+
: 'Create SQL View', message: initialSqlView
|
|
97
|
+
? `You are currently editing the '${initialSqlView.name}' sql view.`
|
|
98
|
+
: '', onExit: closeEditView, style: {
|
|
99
|
+
display: 'flex',
|
|
100
|
+
paddingTop: '0.625rem',
|
|
101
|
+
paddingBottom: '0.625rem',
|
|
102
|
+
paddingLeft: '24px',
|
|
103
|
+
paddingRight: '24px',
|
|
104
|
+
alignItems: 'center',
|
|
105
|
+
backgroundColor: initialSqlView ? '#111827' : '#ffffff',
|
|
106
|
+
} }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
107
|
+
width: '100%',
|
|
108
|
+
display: 'flex',
|
|
109
|
+
height: '100%',
|
|
110
|
+
flexDirection: 'row',
|
|
111
|
+
paddingTop: '20px',
|
|
112
|
+
}, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
|
|
113
|
+
display: 'flex',
|
|
114
|
+
flexDirection: 'column',
|
|
115
|
+
gap: 20,
|
|
116
|
+
}, children: [(0, jsx_runtime_1.jsx)("div", { style: {
|
|
117
|
+
paddingLeft: '20px',
|
|
118
|
+
paddingRight: '30px',
|
|
119
|
+
}, children: (0, jsx_runtime_1.jsx)(TextInput, { placeholder: "Search...", onChange: (e) => {
|
|
120
|
+
setTableSearchQuery(e);
|
|
121
|
+
setDisplayedTableData(allTableData.filter((table) => table.tableName
|
|
122
|
+
.toLowerCase()
|
|
123
|
+
.includes(e.toLowerCase().trim())));
|
|
124
|
+
}, value: tableSearchQuery, id: 'edit-name', width: "100%" }) }), (0, jsx_runtime_1.jsx)(react_3.SchemaListComponent, { schema: displayedTableData, theme: state.theme, LoadingComponent: LoadingComponent, loading: schemaIsLoading, width: '400px' })] }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
125
|
+
display: 'flex',
|
|
126
|
+
gap: 20,
|
|
127
|
+
flexDirection: 'column',
|
|
128
|
+
width: 'calc(100% - 250px)',
|
|
129
|
+
height: '100%',
|
|
130
|
+
overflowX: 'hidden',
|
|
131
|
+
paddingRight: '24px',
|
|
132
|
+
}, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
|
|
133
|
+
display: 'flex',
|
|
134
|
+
flexDirection: 'row',
|
|
135
|
+
alignItems: 'flex-start',
|
|
136
|
+
justifyContent: 'space-between',
|
|
137
|
+
gap: 20,
|
|
138
|
+
width: '100%',
|
|
139
|
+
}, children: [(0, jsx_runtime_1.jsx)(TextInput, { onChange: (e) => {
|
|
140
|
+
setAIPrompt(e);
|
|
141
|
+
}, placeholder: 'Describe a query...', value: aiPrompt, id: 'ai-prompt', width: '95%' }), (0, jsx_runtime_1.jsx)(Button, { label: askAIButton, onClick: handleRunSqlPrompt, width: "100px" })] }), (0, jsx_runtime_1.jsx)(SqlTextEditor_1.default, { value: editViewQuery, setValue: (e) => {
|
|
142
|
+
setErrorInfo({ show: false, message: '' });
|
|
143
|
+
setEditViewQuery(e);
|
|
144
|
+
} }), (0, jsx_runtime_1.jsx)("div", { style: { width: '200px' }, children: (0, jsx_runtime_1.jsx)(Button, { label: runQueryButtonLabel, onClick: handleRunQuery }) }), errorInfo.show ? ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
145
|
+
fontSize: 15,
|
|
146
|
+
fontWeight: '400',
|
|
147
|
+
}, children: (0, jsx_runtime_1.jsx)("div", { style: {
|
|
148
|
+
padding: 30,
|
|
149
|
+
background: 'rgba(0,0,0,0.02)',
|
|
150
|
+
display: 'inline-block',
|
|
151
|
+
flex: 0,
|
|
152
|
+
borderRadius: 6,
|
|
153
|
+
}, children: errorInfo.message }) })) : null, isLoading && ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
154
|
+
height: 'calc(100vh - 589px)',
|
|
155
|
+
width: '100%',
|
|
156
|
+
display: 'flex',
|
|
157
|
+
justifyContent: 'center',
|
|
158
|
+
alignItems: 'center',
|
|
159
|
+
}, children: (0, jsx_runtime_1.jsx)(LoadingComponent, {}) })), tableData && ((0, jsx_runtime_1.jsx)(TableComponent, { rows: tableData.rows, columns: tableData.fields, height: "360px" })), viewAddable && ((0, jsx_runtime_1.jsx)("div", { style: { width: '200px' }, children: (0, jsx_runtime_1.jsx)(Button, { label: `${initialSqlView ? 'Save changes' : 'Create view'}`, onClick: () => addEditSqlView(false) }) }))] })] }), (0, jsx_runtime_1.jsx)(CreateSqlViews_1.ForeignKeyModal, { isOpen: showFKModal, setIsOpen: setShowFKModal, override: addEditSqlView, foreignKey: state.client.customerFieldName, tableName: state.client.customerTableName })] }) }));
|
|
160
|
+
}
|
|
161
|
+
exports.default = CreateEditSqlView;
|
|
@@ -26,7 +26,7 @@ function NewDashboardModal({ isOpen, client, setIsOpen, onSave, ModalComponent,
|
|
|
26
26
|
const [selectedTable, setSelectedTable] = (0, react_1.useState)(null);
|
|
27
27
|
const [field, setField] = (0, react_1.useState)('');
|
|
28
28
|
(0, react_1.useEffect)(() => {
|
|
29
|
-
if (state.tables
|
|
29
|
+
if (state.tables?.length) {
|
|
30
30
|
setSelectedTable(state.tables[0]);
|
|
31
31
|
setField(state.tables[0].columns.map((elem) => elem.name)[0]);
|
|
32
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateEnvironment.d.ts","sourceRoot":"","sources":["../../../src/public_components/CreateEnvironment.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAuB,MAAM,OAAO,CAAC;AAuClE,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,0BAA0B,EAC1B,cAAc,GACf,EAAE;IACD,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC,
|
|
1
|
+
{"version":3,"file":"CreateEnvironment.d.ts","sourceRoot":"","sources":["../../../src/public_components/CreateEnvironment.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAuB,MAAM,OAAO,CAAC;AAuClE,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,0BAA0B,EAC1B,cAAc,GACf,EAAE;IACD,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC,2CAqMA"}
|
|
@@ -1,10 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
5
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
29
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
-
const react_1 = require("react");
|
|
30
|
+
const react_1 = __importStar(require("react"));
|
|
8
31
|
const ConnectDatabase_1 = __importDefault(require("../forms/client_onboard/ConnectDatabase"));
|
|
9
32
|
const StepDisplay_1 = __importDefault(require("../components/StepDisplay"));
|
|
10
33
|
const ConnectSchema_1 = __importDefault(require("../forms/client_onboard/ConnectSchema"));
|
|
@@ -25,6 +48,7 @@ const header2Style = {
|
|
|
25
48
|
marginBottom: '6px',
|
|
26
49
|
};
|
|
27
50
|
function CreateEnvironment({ navigateToDashboardManager, containerStyle, }) {
|
|
51
|
+
const parentRef = react_1.default.useRef(null);
|
|
28
52
|
const { state, dispatch } = (0, AdminProvider_1.useAdmin)();
|
|
29
53
|
const domainName = state.domainName;
|
|
30
54
|
const [createEnvSteps, setCreateEnvSteps] = (0, react_1.useState)({
|
|
@@ -44,6 +68,7 @@ function CreateEnvironment({ navigateToDashboardManager, containerStyle, }) {
|
|
|
44
68
|
open: false,
|
|
45
69
|
},
|
|
46
70
|
});
|
|
71
|
+
const [clientId, setClientId] = (0, react_1.useState)('');
|
|
47
72
|
const [environmentDetails, setEnvironmentDetails] = (0, react_1.useState)((0, databases_1.getDatabaseConnectionFormat)('PostgreSQL'));
|
|
48
73
|
const [allSchemaInfo, setAllSchemaInfo] = (0, react_1.useState)(undefined);
|
|
49
74
|
const [initialError, setInitialError] = (0, react_1.useState)();
|
|
@@ -75,7 +100,7 @@ function CreateEnvironment({ navigateToDashboardManager, containerStyle, }) {
|
|
|
75
100
|
console.warn('navigateToDashboardManager is undefined');
|
|
76
101
|
}
|
|
77
102
|
}, [navigateToDashboardManager]);
|
|
78
|
-
return ((0, jsx_runtime_1.jsxs)("div", { style: {
|
|
103
|
+
return ((0, jsx_runtime_1.jsxs)("div", { ref: parentRef, style: {
|
|
79
104
|
...containerStyle,
|
|
80
105
|
display: 'flex',
|
|
81
106
|
flexDirection: 'column',
|
|
@@ -89,22 +114,23 @@ function CreateEnvironment({ navigateToDashboardManager, containerStyle, }) {
|
|
|
89
114
|
borderRadius: 6,
|
|
90
115
|
border: '1px solid #e7e7e7',
|
|
91
116
|
boxShadow: '0px 1px 12px rgba(0, 0, 0, 0.07)',
|
|
92
|
-
}, header1Style: header1Style, header2Style: header2Style, environmentDetails: environmentDetails, setEnvironmentDetails: (connectionInfo, initialSchemaRequest, initialSchemaRequestError) => {
|
|
117
|
+
}, header1Style: header1Style, header2Style: header2Style, environmentDetails: environmentDetails, setEnvironmentDetails: (connectionInfo, initialSchemaRequest, initialSchemaRequestError, clientId) => {
|
|
93
118
|
setEnvironmentDetails(connectionInfo);
|
|
94
119
|
if (initialSchemaRequestError) {
|
|
95
120
|
setInitialError(initialSchemaRequestError);
|
|
96
121
|
}
|
|
97
122
|
if (initialSchemaRequest) {
|
|
123
|
+
setClientId(clientId);
|
|
98
124
|
setAllSchemaInfo(initialSchemaRequest);
|
|
99
125
|
}
|
|
100
126
|
const updatedSteps = { ...createEnvSteps };
|
|
101
127
|
updatedSteps.connectDB.completed = true;
|
|
102
128
|
setCreateEnvSteps(updatedSteps);
|
|
103
129
|
openStep('connectSchema');
|
|
104
|
-
} })) : ((0, jsx_runtime_1.jsx)(StepDisplay_1.default, { label: "Connect Database", completed: createEnvSteps.connectDB.completed, header1Style: header1Style, onClick: () => {
|
|
130
|
+
}, envClientId: clientId })) : ((0, jsx_runtime_1.jsx)(StepDisplay_1.default, { label: "Connect Database", completed: createEnvSteps.connectDB.completed, header1Style: header1Style, onClick: () => {
|
|
105
131
|
openStep('connectDB');
|
|
106
132
|
setInitialError(undefined);
|
|
107
|
-
} })), createEnvSteps.connectSchema.open ? ((0, jsx_runtime_1.jsx)(ConnectSchema_1.default, { containerStyle: {
|
|
133
|
+
} })), createEnvSteps.connectSchema.open ? ((0, jsx_runtime_1.jsx)(ConnectSchema_1.default, { parentRef: parentRef, containerStyle: {
|
|
108
134
|
padding: '24px',
|
|
109
135
|
// width: '50%',
|
|
110
136
|
borderRadius: 6,
|
|
@@ -114,12 +140,12 @@ function CreateEnvironment({ navigateToDashboardManager, containerStyle, }) {
|
|
|
114
140
|
}, header1Style: header1Style, header2Style: header2Style, propogateSchemaDetails: async (schemaDetails) => {
|
|
115
141
|
const updatedSteps = { ...createEnvSteps };
|
|
116
142
|
updatedSteps.connectSchema.completed = true;
|
|
117
|
-
const tableSchemas = await (0, ConnectionClient_1.getTableSchema)(
|
|
143
|
+
const tableSchemas = await (0, ConnectionClient_1.getTableSchema)(clientId, schemaDetails?.tables, schemaDetails?.selectedFields?.schema);
|
|
118
144
|
setColumnsByTable(tableSchemas);
|
|
119
145
|
setCreateEnvSteps(updatedSteps);
|
|
120
146
|
setAllSchemaInfo(schemaDetails);
|
|
121
147
|
openStep('createSQLViews');
|
|
122
|
-
}, allSchemaInfo: allSchemaInfo, environmentDetails: environmentDetails, initialError: initialError })) : ((0, jsx_runtime_1.jsx)(StepDisplay_1.default, { label: "Connect Schema", completed: createEnvSteps.connectSchema.completed, header1Style: header1Style, onClick: () => {
|
|
148
|
+
}, allSchemaInfo: allSchemaInfo, environmentDetails: environmentDetails, initialError: initialError, clientId: clientId })) : ((0, jsx_runtime_1.jsx)(StepDisplay_1.default, { label: "Connect Schema", completed: createEnvSteps.connectSchema.completed, header1Style: header1Style, onClick: () => {
|
|
123
149
|
openStep('connectSchema');
|
|
124
150
|
setInitialError(undefined);
|
|
125
151
|
} })), createEnvSteps.createSQLViews.open ? ((0, jsx_runtime_1.jsx)(CreateSqlViews_1.default, { containerStyle: {
|
|
@@ -136,6 +162,6 @@ function CreateEnvironment({ navigateToDashboardManager, containerStyle, }) {
|
|
|
136
162
|
if (navigateToDashboardManager) {
|
|
137
163
|
navigateToDashboardManager();
|
|
138
164
|
}
|
|
139
|
-
}, domainName: domainName })) : ((0, jsx_runtime_1.jsx)(StepDisplay_1.default, { label: "Create SQL Views", completed: false, header1Style: header1Style }))] }));
|
|
165
|
+
}, domainName: domainName, clientId: clientId, state: state })) : ((0, jsx_runtime_1.jsx)(StepDisplay_1.default, { label: "Create SQL Views", completed: false, header1Style: header1Style }))] }));
|
|
140
166
|
}
|
|
141
167
|
exports.default = CreateEnvironment;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardBuilder.d.ts","sourceRoot":"","sources":["../../../src/public_components/DashboardBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAwC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DashboardBuilder.d.ts","sourceRoot":"","sources":["../../../src/public_components/DashboardBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAwC,MAAM,OAAO,CAAC;AAS5E,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,0BAA0B,EAC1B,cAAc,EACd,SAAgB,GACjB,EAAE;IACD,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,2CA0TA"}
|
|
@@ -11,6 +11,7 @@ const components_1 = require("../components");
|
|
|
11
11
|
const react_2 = require("@quillsql/react");
|
|
12
12
|
const constants_1 = require("../utils/constants");
|
|
13
13
|
const Banner_1 = __importDefault(require("../components/Banner"));
|
|
14
|
+
const DatabaseMismatchCard_1 = __importDefault(require("../components/DatabaseMismatchCard"));
|
|
14
15
|
function DashboardBuilder({ navigateToDashboardManager, containerStyle, sqlEditor = true, }) {
|
|
15
16
|
const parentRef = (0, react_1.useRef)(null);
|
|
16
17
|
const { state, dispatch } = (0, AdminProvider_1.useAdmin)();
|
|
@@ -55,22 +56,30 @@ function DashboardBuilder({ navigateToDashboardManager, containerStyle, sqlEdito
|
|
|
55
56
|
}, [state.activeQuery]);
|
|
56
57
|
(0, react_1.useEffect)(() => {
|
|
57
58
|
let isSubscribed = true;
|
|
58
|
-
async function
|
|
59
|
+
async function getDashNames() {
|
|
59
60
|
// If you need to retrieve the JSON data from the response:
|
|
60
|
-
const
|
|
61
|
-
method: '
|
|
61
|
+
const response = await fetch(`${state.queryEndpoint}`, {
|
|
62
|
+
method: 'POST',
|
|
62
63
|
headers: {
|
|
63
|
-
|
|
64
|
-
|
|
64
|
+
...state.queryHeaders,
|
|
65
|
+
'Content-Type': 'application/json',
|
|
65
66
|
},
|
|
67
|
+
body: JSON.stringify({
|
|
68
|
+
metadata: {
|
|
69
|
+
clientId: state.client._id,
|
|
70
|
+
publicKey: state.client._id,
|
|
71
|
+
task: 'dashboards',
|
|
72
|
+
databaseType: state.client.databaseType,
|
|
73
|
+
},
|
|
74
|
+
}),
|
|
66
75
|
});
|
|
67
|
-
const
|
|
68
|
-
const dashNames =
|
|
76
|
+
const data = await response.json();
|
|
77
|
+
const dashNames = data.data.dashboardNames.filter((elem) => elem !== null);
|
|
69
78
|
setDashboardNames(dashNames);
|
|
70
79
|
setSelectedDashboardName(dashNames[0]);
|
|
71
80
|
}
|
|
72
81
|
if (isSubscribed) {
|
|
73
|
-
|
|
82
|
+
getDashNames();
|
|
74
83
|
}
|
|
75
84
|
return () => {
|
|
76
85
|
isSubscribed = false;
|
|
@@ -171,28 +180,33 @@ function DashboardBuilder({ navigateToDashboardManager, containerStyle, sqlEdito
|
|
|
171
180
|
userSelect: 'none',
|
|
172
181
|
}, children: "Environment" }), (0, jsx_runtime_1.jsx)(components_1.EnvSelectPopover, { setEnvironment: (env) => {
|
|
173
182
|
dispatch({ type: 'SET_ENVIRONMENT', payload: env });
|
|
174
|
-
}, environment: state.environment, clients: state.clients, client: state.client, setClient: (client) => dispatch({ type: 'SET_CLIENT', payload: client }), theme: state.theme, showPromote: false })] }), (0, jsx_runtime_1.jsx)(components_1.OrgSelect, { environment: state.environment, setEnvironment: (env) => {
|
|
183
|
+
}, environment: state.environment, clients: state.clients, client: state.client, setClient: (client) => dispatch({ type: 'SET_CLIENT', payload: client }), theme: state.theme, showPromote: false })] }), !state.databaseTypeMismatch.show && ((0, jsx_runtime_1.jsx)(components_1.OrgSelect, { environment: state.environment, setEnvironment: (env) => {
|
|
175
184
|
dispatch({ type: 'SET_ENVIRONMENT', payload: env });
|
|
176
185
|
}, organizations: state.organizations, organizationId: state.organizationId, setOrganizationId: (orgId) => {
|
|
177
186
|
dispatch({ type: 'SET_ORGANIZATION_ID', payload: orgId });
|
|
178
|
-
}, theme: state.theme, parentRef: parentRef })] }) }), isEditActive && ((0, jsx_runtime_1.jsx)(Banner_1.default, { onExit: () => {
|
|
187
|
+
}, theme: state.theme, parentRef: parentRef }))] }) }), isEditActive && ((0, jsx_runtime_1.jsx)(Banner_1.default, { onExit: () => {
|
|
179
188
|
const msg = 'Are you sure you want to exit edit mode? Your changes will not be saved.';
|
|
180
189
|
if (!confirm(msg))
|
|
181
190
|
return;
|
|
182
191
|
dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
|
|
183
192
|
dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
|
|
184
|
-
} })), sqlEditor && ((0, jsx_runtime_1.jsx)(react_2.SQLEditor, { chartBuilderEnabled: true, showAccessControlOptions: true, showDateFieldOptions: true, showTableFormatOptions: true, defaultQuery: query, isEditMode: !!state.activeQuery, addToDashboardButtonLabel: state.activeQuery ? 'Save changes' : 'Add to dashboard', chartBuilderTitle: state.activeQuery ? 'Save changes' : 'Add to dashboard', dashboardItem: state.activeQuery ? state.activeEditItem : undefined, onAddToDashboardComplete: () => {
|
|
193
|
+
} })), state.databaseTypeMismatch.show && ((0, jsx_runtime_1.jsx)(DatabaseMismatchCard_1.default, { environemntName: state.client.name, environemntDatabaseType: state.client.databaseType, backendDatabaseType: state.databaseTypeMismatch.backendDatabaseType })), sqlEditor && !state.databaseTypeMismatch.show && ((0, jsx_runtime_1.jsx)(react_2.SQLEditor, { chartBuilderEnabled: true, showAccessControlOptions: true, showDateFieldOptions: true, showTableFormatOptions: true, defaultQuery: query, isEditMode: !!state.activeQuery, addToDashboardButtonLabel: state.activeQuery ? 'Save changes' : 'Add to dashboard', chartBuilderTitle: state.activeQuery ? 'Save changes' : 'Add to dashboard', dashboardItem: state.activeQuery ? state.activeEditItem : undefined, onAddToDashboardComplete: () => {
|
|
185
194
|
dispatch({ type: 'SET_ACTIVE_QUERY', payload: '' });
|
|
186
195
|
dispatch({ type: 'SET_ACTIVE_EDIT_ITEM', payload: null });
|
|
187
196
|
if (state.navigateToDashboardManager) {
|
|
188
|
-
dispatch({
|
|
197
|
+
dispatch({
|
|
198
|
+
type: 'SET_ACTIVE_COMPONENT',
|
|
199
|
+
payload: 'Dashboards',
|
|
200
|
+
});
|
|
189
201
|
state.navigateToDashboardManager();
|
|
190
202
|
}
|
|
191
203
|
}, containerStyle: {
|
|
192
|
-
height: 'calc(100% -
|
|
204
|
+
height: 'calc(100% - 96px)',
|
|
193
205
|
width: '100%',
|
|
194
|
-
paddingRight: 25,
|
|
195
|
-
paddingTop: 25,
|
|
196
|
-
}
|
|
206
|
+
// paddingRight: 25,
|
|
207
|
+
// paddingTop: 25,
|
|
208
|
+
}, organizationName: state.organizations.find((org) => {
|
|
209
|
+
return (org.id && String(org.id) === String(state.organizationId));
|
|
210
|
+
})?.name }))] }) }));
|
|
197
211
|
}
|
|
198
212
|
exports.default = DashboardBuilder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardManager.d.ts","sourceRoot":"","sources":["../../../src/public_components/DashboardManager.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA+B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DashboardManager.d.ts","sourceRoot":"","sources":["../../../src/public_components/DashboardManager.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA+B,MAAM,OAAO,CAAC;AAgCnE,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,0BAA0B,EAC1B,cAAc,GACf,EAAE;IACD,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC,2CAykBA"}
|