@@ -4,10 +4,11 @@ import { AJAX } from './ajax.ts';
44import { Functions } from './functions.ts' ;
55import { CommonParams } from './common.ts' ;
66import { Navigation } from './navigation.ts' ;
7- import { Config } from './console/config.ts' ;
8- import { getConfigValue } from './functions/config.ts' ;
7+ import Config from './console/config.ts' ;
98import { escapeHtml } from './functions/escape.ts' ;
109
10+ let config : Config ;
11+
1112/**
1213 * Console object
1314 */
@@ -58,18 +59,13 @@ var Console = {
5859 * Used for console initialize, reinit is ok, just some variable assignment
5960 */
6061 initialize : function ( ) : void {
61- if ( $ ( '#pma_console' ) . length === 0 ) {
62+ const consoleElement = document . getElementById ( 'pma_console' ) ;
63+ if ( consoleElement === null ) {
6264 return ;
6365 }
6466
65- getConfigValue ( 'Console' , false , ( data ) => {
66- Config . init ( data ) ;
67- Console . setupAfterInit ( ) ;
68- } , ( ) => {
69- Config . init ( { } ) ; // Avoid null pointers in setupAfterInit()
70- // Fetching data failed, still perform the console init
71- Console . setupAfterInit ( ) ;
72- } ) ;
67+ config = Config . createFromDataset ( consoleElement . dataset ) ;
68+ Console . setupAfterInit ( ) ;
7369 } ,
7470
7571 /**
@@ -101,28 +97,6 @@ var Console = {
10197
10298 // Event binds shouldn't run again
10399 if ( Console . isInitialized === false ) {
104- // Load config first
105- if ( Config . AlwaysExpand ) {
106- ( document . getElementById ( 'consoleOptionsAlwaysExpandCheckbox' ) as HTMLInputElement ) . checked = true ;
107- }
108-
109- if ( Config . StartHistory ) {
110- ( document . getElementById ( 'consoleOptionsStartHistoryCheckbox' ) as HTMLInputElement ) . checked = true ;
111- }
112-
113- if ( Config . CurrentQuery ) {
114- ( document . getElementById ( 'consoleOptionsCurrentQueryCheckbox' ) as HTMLInputElement ) . checked = true ;
115- }
116-
117- if ( Config . EnterExecutes ) {
118- ( document . getElementById ( 'consoleOptionsEnterExecutesCheckbox' ) as HTMLInputElement ) . checked = true ;
119- }
120-
121- if ( Config . DarkTheme ) {
122- ( document . getElementById ( 'consoleOptionsDarkThemeCheckbox' ) as HTMLInputElement ) . checked = true ;
123- $ ( '#pma_console' ) . find ( '>.content' ) . addClass ( 'console_dark_theme' ) ;
124- }
125-
126100 ConsoleResizer . initialize ( ) ;
127101 ConsoleInput . initialize ( ) ;
128102 ConsoleMessages . initialize ( ) ;
@@ -174,21 +148,65 @@ var Console = {
174148 Console . hideCard ( $ ( this ) . closest ( '.card' ) ) ;
175149 } ) ;
176150
177- $ ( '#pma_console_options' ) . find ( 'input[type=checkbox]' ) . on ( 'change' , function ( ) {
178- Config . update ( ) ;
151+ const consoleOptionsAlwaysExpandCheckbox = document . getElementById ( 'consoleOptionsAlwaysExpandCheckbox' ) as HTMLInputElement ;
152+ consoleOptionsAlwaysExpandCheckbox ?. addEventListener ( 'change' , function ( ) : void {
153+ config . setAlwaysExpand ( consoleOptionsAlwaysExpandCheckbox . checked ) ;
154+ } ) ;
155+
156+ const consoleOptionsStartHistoryCheckbox = document . getElementById ( 'consoleOptionsStartHistoryCheckbox' ) as HTMLInputElement ;
157+ consoleOptionsStartHistoryCheckbox ?. addEventListener ( 'change' , function ( ) : void {
158+ config . setStartHistory ( consoleOptionsStartHistoryCheckbox . checked ) ;
179159 } ) ;
180160
181- $ ( '#pma_console_options' ) . find ( '.button.default' ) . on ( 'click' , function ( ) {
182- ( document . getElementById ( 'consoleOptionsAlwaysExpandCheckbox' ) as HTMLInputElement ) . checked = false ;
183- ( document . getElementById ( 'consoleOptionsStartHistoryCheckbox' ) as HTMLInputElement ) . checked = false ;
184- ( document . getElementById ( 'consoleOptionsCurrentQueryCheckbox' ) as HTMLInputElement ) . checked = true ;
185- ( document . getElementById ( 'consoleOptionsEnterExecutesCheckbox' ) as HTMLInputElement ) . checked = false ;
186- ( document . getElementById ( 'consoleOptionsDarkThemeCheckbox' ) as HTMLInputElement ) . checked = false ;
187- Config . update ( ) ;
161+ const consoleOptionsCurrentQueryCheckbox = document . getElementById ( 'consoleOptionsCurrentQueryCheckbox' ) as HTMLInputElement ;
162+ consoleOptionsCurrentQueryCheckbox ?. addEventListener ( 'change' , function ( ) : void {
163+ config . setCurrentQuery ( consoleOptionsCurrentQueryCheckbox . checked ) ;
188164 } ) ;
189165
190- $ ( '#consoleOptionsEnterExecutesCheckbox' ) . on ( 'change' , function ( ) {
191- ConsoleMessages . showInstructions ( Config . EnterExecutes ) ;
166+ const consoleOptionsEnterExecutesCheckbox = document . getElementById ( 'consoleOptionsEnterExecutesCheckbox' ) as HTMLInputElement ;
167+ consoleOptionsEnterExecutesCheckbox ?. addEventListener ( 'change' , function ( ) : void {
168+ const isEnterExecutes = consoleOptionsEnterExecutesCheckbox . checked ;
169+ config . setEnterExecutes ( isEnterExecutes ) ;
170+ ConsoleMessages . showInstructions ( isEnterExecutes ) ;
171+ } ) ;
172+
173+ const consoleOptionsDarkThemeCheckbox = document . getElementById ( 'consoleOptionsDarkThemeCheckbox' ) as HTMLInputElement ;
174+ consoleOptionsDarkThemeCheckbox ?. addEventListener ( 'change' , function ( ) : void {
175+ const isDarkTheme = consoleOptionsDarkThemeCheckbox . checked ;
176+ config . setDarkTheme ( isDarkTheme ) ;
177+ const consoleContent = document . getElementById ( 'pma_console' ) . querySelector ( '.content' ) ;
178+ consoleContent . classList . toggle ( 'console_dark_theme' , isDarkTheme ) ;
179+ } ) ;
180+
181+ const restoreConsoleOptionsButton = document . getElementById ( 'pma_console_options' ) . querySelector ( '.button.default' ) ;
182+ restoreConsoleOptionsButton ?. addEventListener ( 'click' , function ( ) : void {
183+ if ( consoleOptionsAlwaysExpandCheckbox . checked ) {
184+ consoleOptionsAlwaysExpandCheckbox . checked = false ;
185+ config . setAlwaysExpand ( false ) ;
186+ }
187+
188+ if ( consoleOptionsStartHistoryCheckbox . checked ) {
189+ consoleOptionsStartHistoryCheckbox . checked = false ;
190+ config . setStartHistory ( false ) ;
191+ }
192+
193+ if ( ! consoleOptionsCurrentQueryCheckbox . checked ) {
194+ consoleOptionsCurrentQueryCheckbox . checked = true ;
195+ config . setCurrentQuery ( true ) ;
196+ }
197+
198+ if ( consoleOptionsEnterExecutesCheckbox . checked ) {
199+ consoleOptionsEnterExecutesCheckbox . checked = false ;
200+ config . setEnterExecutes ( false ) ;
201+ ConsoleMessages . showInstructions ( false ) ;
202+ }
203+
204+ if ( consoleOptionsDarkThemeCheckbox . checked ) {
205+ consoleOptionsDarkThemeCheckbox . checked = false ;
206+ config . setDarkTheme ( false ) ;
207+ const consoleContent = document . getElementById ( 'pma_console' ) . querySelector ( '.content' ) ;
208+ consoleContent . classList . remove ( 'console_dark_theme' ) ;
209+ }
192210 } ) ;
193211
194212 $ ( document ) . on ( 'ajaxComplete' , function ( event , xhr , ajaxOptions ) {
@@ -215,7 +233,7 @@ var Console = {
215233 }
216234
217235 // Change console mode from cookie
218- switch ( Config . Mode ) {
236+ switch ( config . mode ) {
219237 case 'collapse' :
220238 Console . collapse ( ) ;
221239 break ;
@@ -227,7 +245,7 @@ var Console = {
227245 Console . scrollBottom ( ) ;
228246 break ;
229247 default :
230- Config . set ( 'Mode' , 'info' ) ;
248+ config . setMode ( 'info' ) ;
231249 Console . info ( ) ;
232250 }
233251 } ,
@@ -282,16 +300,16 @@ var Console = {
282300 if ( data . reloadQuerywindow . sql_query . length > 0 ) {
283301 ConsoleMessages . appendQuery ( data . reloadQuerywindow , 'successed' )
284302 // @ts -ignore
285- . $message . addClass ( Config . CurrentQuery ? '' : 'hide' ) ;
303+ . $message . addClass ( config . currentQuery ? '' : 'hide' ) ;
286304 }
287305 }
288306 } ,
289307 /**
290308 * Change console to collapse mode
291309 */
292310 collapse : function ( ) : void {
293- Config . set ( 'Mode' , 'collapse' ) ;
294- var pmaConsoleHeight = Math . max ( 92 , Config . Height ) ;
311+ config . setMode ( 'collapse' ) ;
312+ var pmaConsoleHeight = Math . max ( 92 , config . height ) ;
295313
296314 Console . $consoleToolbar . addClass ( 'collapsed' ) ;
297315 Console . $consoleAllContents . height ( pmaConsoleHeight ) ;
@@ -305,11 +323,11 @@ var Console = {
305323 * @param {boolean } inputFocus If true, focus the input line after show()
306324 */
307325 show : function ( inputFocus = undefined ) : void {
308- Config . set ( 'Mode' , 'show' ) ;
326+ config . setMode ( 'show' ) ;
309327
310- var pmaConsoleHeight = Math . max ( 92 , Config . Height ) ;
328+ var pmaConsoleHeight = Math . max ( 92 , config . height ) ;
311329 // eslint-disable-next-line compat/compat
312- pmaConsoleHeight = Math . min ( Config . Height , ( window . innerHeight || document . documentElement . clientHeight || document . body . clientHeight ) - 25 ) ;
330+ pmaConsoleHeight = Math . min ( config . height , ( window . innerHeight || document . documentElement . clientHeight || document . body . clientHeight ) - 25 ) ;
313331 Console . $consoleContent . css ( { display : 'block' } ) ;
314332 if ( Console . $consoleToolbar . hasClass ( 'collapsed' ) ) {
315333 Console . $consoleToolbar . removeClass ( 'collapsed' ) ;
@@ -335,7 +353,7 @@ var Console = {
335353 * Used for toggle buttons and shortcuts
336354 */
337355 toggle : function ( ) : void {
338- if ( Config . Mode === 'show' ) {
356+ if ( config . mode === 'show' ) {
339357 Console . collapse ( ) ;
340358 } else {
341359 Console . show ( true ) ;
@@ -413,7 +431,7 @@ var ConsoleResizer = {
413431 * @param {MouseEvent } event
414432 */
415433 mouseDown : function ( event ) : void {
416- if ( Config . Mode !== 'show' ) {
434+ if ( config . mode !== 'show' ) {
417435 return ;
418436 }
419437
@@ -456,7 +474,7 @@ var ConsoleResizer = {
456474 * Mouseup event handler for bind to resizer
457475 */
458476 mouseUp : function ( ) : void {
459- Config . set ( 'Height' , Math . round ( ConsoleResizer . resultHeight ) ) ;
477+ config . setHeight ( Math . round ( ConsoleResizer . resultHeight ) ) ;
460478 Console . show ( ) ;
461479 $ ( document ) . off ( 'mousemove' ) ;
462480 $ ( document ) . off ( 'mouseup' ) ;
@@ -638,7 +656,7 @@ var ConsoleInput = {
638656 */
639657 keyDown : function ( event ) : void {
640658 // Execute command
641- if ( Config . EnterExecutes ) {
659+ if ( config . enterExecutes ) {
642660 // Enter, but not in combination with Shift (which writes a new line).
643661 if ( ! event . shiftKey && event . keyCode === 13 ) {
644662 ConsoleInput . execute ( ) ;
@@ -810,7 +828,7 @@ var ConsoleMessages = {
810828 var now = new Date ( ) ;
811829 var $newMessage =
812830 $ ( '<div class="message ' +
813- ( Config . AlwaysExpand ? 'expanded' : 'collapsed' ) +
831+ ( config . alwaysExpand ? 'expanded' : 'collapsed' ) +
814832 '" msgid="' + msgId + '"><div class="action_content"></div></div>' ) ;
815833 switch ( msgType ) {
816834 case 'query' :
@@ -1053,11 +1071,11 @@ var ConsoleMessages = {
10531071 */
10541072 initialize : function ( ) : void {
10551073 ConsoleMessages . messageEventBinds ( $ ( '#pma_console' ) . find ( '.message:not(.binded)' ) ) ;
1056- if ( Config . StartHistory ) {
1074+ if ( config . startHistory ) {
10571075 ConsoleMessages . showHistory ( ) ;
10581076 }
10591077
1060- ConsoleMessages . showInstructions ( Config . EnterExecutes ) ;
1078+ ConsoleMessages . showInstructions ( config . enterExecutes ) ;
10611079 }
10621080} ;
10631081
@@ -1163,37 +1181,37 @@ var ConsoleDebug = {
11631181 }
11641182 } ) ;
11651183
1166- if ( Config . GroupQueries ) {
1184+ if ( config . groupQueries ) {
11671185 $ ( '#debug_console' ) . addClass ( 'grouped' ) ;
11681186 } else {
11691187 $ ( '#debug_console' ) . addClass ( 'ungrouped' ) ;
1170- if ( Config . OrderBy === 'count' ) {
1188+ if ( config . orderBy === 'count' ) {
11711189 $ ( '#debug_console' ) . find ( '.button.order_by.sort_exec' ) . addClass ( 'active' ) ;
11721190 }
11731191 }
11741192
1175- var orderBy = Config . OrderBy ;
1176- var order = Config . Order ;
1193+ var orderBy = config . orderBy ;
1194+ var order = config . order ;
11771195 $ ( '#debug_console' ) . find ( '.button.order_by.sort_' + orderBy ) . addClass ( 'active' ) ;
11781196 $ ( '#debug_console' ) . find ( '.button.order.order_' + order ) . addClass ( 'active' ) ;
11791197
11801198 // Initialize actions in toolbar
11811199 $ ( '#debug_console' ) . find ( '.button.group_queries' ) . on ( 'click' , function ( ) {
11821200 $ ( '#debug_console' ) . addClass ( 'grouped' ) ;
11831201 $ ( '#debug_console' ) . removeClass ( 'ungrouped' ) ;
1184- Config . set ( 'GroupQueries' , true ) ;
1202+ config . setGroupQueries ( true ) ;
11851203 ConsoleDebug . refresh ( ) ;
1186- if ( Config . OrderBy === 'count' ) {
1204+ if ( config . orderBy === 'count' ) {
11871205 $ ( '#debug_console' ) . find ( '.button.order_by.sort_exec' ) . removeClass ( 'active' ) ;
11881206 }
11891207 } ) ;
11901208
11911209 $ ( '#debug_console' ) . find ( '.button.ungroup_queries' ) . on ( 'click' , function ( ) {
11921210 $ ( '#debug_console' ) . addClass ( 'ungrouped' ) ;
11931211 $ ( '#debug_console' ) . removeClass ( 'grouped' ) ;
1194- Config . set ( 'GroupQueries' , false ) ;
1212+ config . setGroupQueries ( false ) ;
11951213 ConsoleDebug . refresh ( ) ;
1196- if ( Config . OrderBy === 'count' ) {
1214+ if ( config . orderBy === 'count' ) {
11971215 $ ( '#debug_console' ) . find ( '.button.order_by.sort_exec' ) . addClass ( 'active' ) ;
11981216 }
11991217 } ) ;
@@ -1203,11 +1221,11 @@ var ConsoleDebug = {
12031221 $ ( '#debug_console' ) . find ( '.button.order_by' ) . removeClass ( 'active' ) ;
12041222 $this . addClass ( 'active' ) ;
12051223 if ( $this . hasClass ( 'sort_time' ) ) {
1206- Config . set ( 'OrderBy' , 'time' ) ;
1224+ config . setOrderBy ( 'time' ) ;
12071225 } else if ( $this . hasClass ( 'sort_exec' ) ) {
1208- Config . set ( 'OrderBy' , 'exec' ) ;
1226+ config . setOrderBy ( 'exec' ) ;
12091227 } else if ( $this . hasClass ( 'sort_count' ) ) {
1210- Config . set ( 'OrderBy' , 'count' ) ;
1228+ config . setOrderBy ( 'count' ) ;
12111229 }
12121230
12131231 ConsoleDebug . refresh ( ) ;
@@ -1218,9 +1236,9 @@ var ConsoleDebug = {
12181236 $ ( '#debug_console' ) . find ( '.button.order' ) . removeClass ( 'active' ) ;
12191237 $this . addClass ( 'active' ) ;
12201238 if ( $this . hasClass ( 'order_asc' ) ) {
1221- Config . set ( 'Order' , 'asc' ) ;
1239+ config . setOrder ( 'asc' ) ;
12221240 } else if ( $this . hasClass ( 'order_desc' ) ) {
1223- Config . set ( 'Order' , 'desc' ) ;
1241+ config . setOrder ( 'desc' ) ;
12241242 }
12251243
12261244 ConsoleDebug . refresh ( ) ;
@@ -1507,7 +1525,7 @@ var ConsoleDebug = {
15071525
15081526 // For sorting queries
15091527 function sortByTime ( a , b ) {
1510- var order = Config . Order === 'asc' ? 1 : - 1 ;
1528+ var order = config . order === 'asc' ? 1 : - 1 ;
15111529 if ( Array . isArray ( a ) && Array . isArray ( b ) ) {
15121530 // It is grouped
15131531 var timeA = 0 ;
@@ -1528,15 +1546,15 @@ var ConsoleDebug = {
15281546 }
15291547
15301548 function sortByCount ( a , b ) {
1531- var order = Config . Order === 'asc' ? 1 : - 1 ;
1549+ var order = config . order === 'asc' ? 1 : - 1 ;
15321550
15331551 return ( a . length - b . length ) * order ;
15341552 }
15351553
1536- var orderBy = Config . OrderBy ;
1537- var order = Config . Order ;
1554+ var orderBy = config . orderBy ;
1555+ var order = config . order ;
15381556
1539- if ( Config . GroupQueries ) {
1557+ if ( config . groupQueries ) {
15401558 // Sort queries
15411559 if ( orderBy === 'time' ) {
15421560 uniqueQueries . sort ( sortByTime ) ;
0 commit comments