|
1 | 1 | import { Component, h, Element, State, Prop, Host } from '@stencil/core'; |
2 | 2 | import { EditorState } from '@codemirror/basic-setup'; |
3 | | -import { Compartment } from '@codemirror/state'; |
| 3 | + |
4 | 4 | import { EditorView, keymap } from '@codemirror/view'; |
5 | 5 | import { java } from '@codemirror/lang-java'; |
6 | 6 | import { json } from '@codemirror/lang-json'; |
7 | 7 | import Swal from 'sweetalert2'; |
8 | 8 | import state from '../store'; |
9 | 9 | import { customSetup } from '../../customSetup'; |
| 10 | +import axios from 'axios'; |
10 | 11 |
|
11 | | -let myTheme = EditorView.theme( |
12 | | - { |
13 | | - '&': { |
14 | | - color: 'white', |
15 | | - backgroundColor: '#034', |
16 | | - }, |
17 | | - '.cm-content': { |
18 | | - caretColor: '#0e9', |
19 | | - }, |
20 | | - '&.cm-focused .cm-cursor': { |
21 | | - borderLeftColor: '#0e9', |
22 | | - }, |
23 | | - '&.cm-focused .cm-selectionBackground, ::selection': { |
24 | | - backgroundColor: '#074', |
25 | | - }, |
26 | | - '.cm-gutters': { |
27 | | - backgroundColor: '#045', |
28 | | - color: '#ddd', |
29 | | - border: 'none', |
30 | | - }, |
31 | | - }, |
32 | | - { dark: true }, |
33 | | -); |
34 | | - |
35 | | -const themeConfig = new Compartment(); |
36 | 12 | const TAB_LIST = [ |
37 | 13 | { name: 'Query', className: 'editor' }, |
38 | 14 | { name: 'Parameter', className: 'parameter' }, |
@@ -69,10 +45,6 @@ export class CodeEditor { |
69 | 45 | }), |
70 | 46 | ]; |
71 | 47 | const parameterExtensions = [customSetup, json(), this.onCtrlShiftEnter()]; |
72 | | - if (localStorage.getItem('themesArray') === 'dark') { |
73 | | - editorExtensions.push(themeConfig.of([myTheme])); |
74 | | - parameterExtensions.push(themeConfig.of([myTheme])); |
75 | | - } |
76 | 48 | state.stateQuery = EditorState.create({ |
77 | 49 | doc: state.query, |
78 | 50 | extensions: editorExtensions, |
@@ -115,105 +87,40 @@ export class CodeEditor { |
115 | 87 | }, |
116 | 88 | ]); |
117 | 89 | } |
118 | | - saveQueryHandler() { |
119 | | - const dbName: string = 'neptuneQueryDB'; |
120 | | - const dbVersion: number = 1; |
121 | | - |
122 | | - const request: IDBOpenDBRequest = indexedDB.open(dbName, dbVersion); |
123 | | - |
124 | | - request.onerror = function (event: Event): void { |
125 | | - console.log('Database error: ' + (event.target as any).errorCode); |
126 | | - }; |
127 | | - |
128 | | - request.onupgradeneeded = function (event: IDBVersionChangeEvent): void { |
129 | | - const db: IDBDatabase = (event.target as any).result; |
130 | | - const objectStore: IDBObjectStore = db.createObjectStore('savedQueries', { keyPath: 'id', autoIncrement: true }); |
131 | | - objectStore.createIndex('id', 'id', { unique: false }); |
132 | | - }; |
133 | 90 |
|
134 | | - request.onsuccess = function (event: Event): void { |
135 | | - const db: IDBDatabase = (event.target as any).result; |
136 | | - |
137 | | - // Add data to the database |
138 | | - const transaction: IDBTransaction = db.transaction(['savedQueries'], 'readwrite'); |
139 | | - const objectStore: IDBObjectStore = transaction.objectStore('savedQueries'); |
140 | | - |
141 | | - const data: any = { title: state.saveTitle, query: state.query, parameter: state.queryParameter }; |
142 | | - state.saveTitle = ''; |
143 | | - const addRequest: IDBRequest = objectStore.add(data); |
144 | | - addRequest.onerror = function (event: Event): void { |
145 | | - console.log('Error adding data: ' + (event.target as any).errorCode); |
146 | | - }; |
147 | | - |
148 | | - addRequest.onsuccess = function (): void { |
149 | | - console.log('Data added successfully'); |
150 | | - }; |
151 | | - }; |
152 | | - this.isSaveModalOpen = false; |
| 91 | + async retriveQueryData() { |
| 92 | + try { |
| 93 | + const res = await axios.get("/api/editor/saved-queries"); |
| 94 | + state.queryHistory = res.data; |
| 95 | + } catch (error) { |
| 96 | + console.log(error); |
| 97 | + } |
153 | 98 | } |
154 | | - retriveQueryData() { |
155 | | - const dbName: string = 'neptuneQueryDB'; |
156 | | - const dbVersion: number = 1; |
157 | 99 |
|
158 | | - const request: IDBOpenDBRequest = indexedDB.open(dbName, dbVersion); |
159 | | - |
160 | | - request.onerror = function (event: Event): void { |
161 | | - console.log('Database error: ' + (event.target as any).errorCode); |
162 | | - }; |
163 | | - |
164 | | - request.onupgradeneeded = function (event: IDBVersionChangeEvent): void { |
165 | | - const db: IDBDatabase = (event.target as any).result; |
166 | | - const objectStore: IDBObjectStore = db.createObjectStore('savedQueries', { keyPath: 'id', autoIncrement: true }); |
167 | | - objectStore.createIndex('id', 'id', { unique: false }); |
168 | | - }; |
169 | | - |
170 | | - request.onsuccess = function (event: Event): void { |
171 | | - const db: IDBDatabase = (event.target as any).result; |
172 | | - // Retrieve data from the database |
173 | | - const transaction2: IDBTransaction = db.transaction(['savedQueries'], 'readonly'); |
174 | | - const objectStore2: IDBObjectStore = transaction2.objectStore('savedQueries'); |
175 | | - const index: IDBIndex = objectStore2.index('id'); |
176 | | - const getRequest: IDBRequest = index.getAll(); |
177 | | - getRequest.onerror = function (event: Event): void { |
178 | | - console.log('Error retrieving data: ' + (event.target as any).errorCode); |
179 | | - }; |
| 100 | + async saveQueryHandler() { |
| 101 | + try { |
| 102 | + let transactionQuery = state.viewQuery.state.update(); |
| 103 | + const query = transactionQuery.state.doc.toString().trim(); |
| 104 | + let transactionParameter = state.viewParameter.state.update(); |
| 105 | + const parameters = transactionParameter.state.doc.toString().trim(); |
| 106 | + const data: any = { queryTitle: state.saveTitle, queryText: query, queryParameter: parameters }; |
| 107 | + state.saveTitle = ''; |
| 108 | + await axios.post(`/api/editor/saved-queries`, data); |
| 109 | + this.retriveQueryData(); |
| 110 | + } catch (error) { |
| 111 | + console.log(error); |
180 | 112 |
|
181 | | - getRequest.onsuccess = function (event: Event): void { |
182 | | - state.queryHistory = (event.target as any).result; |
183 | | - }; |
184 | | - }; |
| 113 | + } |
185 | 114 | } |
186 | | - deleteQueryData(deleteId: number) { |
187 | | - const dbName: string = 'neptuneQueryDB'; |
188 | | - const dbVersion: number = 1; |
189 | 115 |
|
190 | | - const request: IDBOpenDBRequest = indexedDB.open(dbName, dbVersion); |
191 | | - |
192 | | - request.onerror = function (event: Event): void { |
193 | | - console.log('Database error: ' + (event.target as any).errorCode); |
194 | | - }; |
195 | | - |
196 | | - request.onupgradeneeded = function (event: IDBVersionChangeEvent): void { |
197 | | - const db: IDBDatabase = (event.target as any).result; |
198 | | - const objectStore: IDBObjectStore = db.createObjectStore('savedQueries', { keyPath: 'id', autoIncrement: true }); |
199 | | - objectStore.createIndex('id', 'id', { unique: false }); |
200 | | - }; |
201 | | - |
202 | | - request.onsuccess = function (event: Event): void { |
203 | | - const db: IDBDatabase = (event.target as any).result; |
204 | | - // Delete data from the database |
205 | | - const transaction2: IDBTransaction = db.transaction(['savedQueries'], 'readwrite'); |
206 | | - const objectStore2: IDBObjectStore = transaction2.objectStore('savedQueries'); |
207 | | - |
208 | | - const deleteRequest: IDBRequest = objectStore2.delete(deleteId); |
209 | | - deleteRequest.onerror = function (event: Event): void { |
210 | | - console.log('Error deleting data: ' + (event.target as any).errorCode); |
211 | | - }; |
| 116 | + async deleteQueryData(deleteId: number) { |
| 117 | + try { |
| 118 | + const res = await axios.delete(`/api/editor/saved-queries/${deleteId}`); |
| 119 | + return res |
| 120 | + } catch (error) { |
| 121 | + console.log(error); |
212 | 122 |
|
213 | | - deleteRequest.onsuccess = function (): void { |
214 | | - console.log('Data deleted successfully'); |
215 | | - }; |
216 | | - }; |
| 123 | + } |
217 | 124 | } |
218 | 125 | saveSubmitHandler() { |
219 | 126 | try { |
|
0 commit comments