@@ -25,6 +25,63 @@ document.addEventListener("DOMContentLoaded", function () {
25
25
document . getElementById ( "tab-metrics" ) . addEventListener ( "click" , ( ) => {
26
26
showTab ( "metrics" ) ;
27
27
} ) ;
28
+ document . getElementById ( "tab-version-info" ) . addEventListener ( "click" , ( ) => {
29
+ showTab ( "version-info" ) ;
30
+ } ) ;
31
+
32
+ // Preload version info on page load (optional)
33
+ document . addEventListener ( "DOMContentLoaded" , ( ) => {
34
+ const panel = document . getElementById ( "version-info-panel" ) ;
35
+ if ( panel && panel . innerHTML . trim ( ) === "" ) {
36
+ const url = `${ window . ROOT_PATH } /version?partial=true` ;
37
+ fetch ( url )
38
+ . then ( ( response ) => {
39
+ if ( ! response . ok ) {
40
+ throw new Error ( "Network response was not ok" ) ;
41
+ }
42
+ return response . text ( ) ;
43
+ } )
44
+ . then ( ( html ) => {
45
+ panel . innerHTML = html ;
46
+ // Show the version-info panel and activate the tab on page load if hash is #version-info
47
+ if ( window . location . hash === "#version-info" ) {
48
+ showTab ( "version-info" ) ;
49
+ }
50
+ } )
51
+ . cconsole . error ( "Failed to preload version info:" , error ) ;
52
+ atch ( ( error ) => { ;
53
+ } ) ;
54
+ }
55
+ } )
56
+
57
+ // HTMX event listeners for debugging
58
+ document . body . addEventListener ( "htmx:beforeRequest" , ( event ) => {
59
+ if ( event . detail . elt . id === "tab-version-info" ) {
60
+ console . log ( "HTMX: Sending request for version info partial" ) ;
61
+ }
62
+ ) ;
63
+
64
+ document . body . addEventListener ( "htmx:afterSwap" , ( event ) => {
65
+ if ( event . detail . target . id === "version-info-panel" ) {
66
+ console . log ( "HTMX: Content swapped into version-info-panel" console . error ( "Failed to preload version info:" , error ) ;
67
+ panel . innerHTML = "<p class='text-red-600'>Failed to load version info.</p>" ;
68
+ } ) ;
69
+ }
70
+ } ) ;
71
+
72
+ // HTMX event listeners for debugging
73
+ document . body . addEventListener ( "htmx:beforeRequest" , ( event ) => {
74
+ if ( event . detail . elt . id === "tab-version-info" ) {
75
+ console . log ( "HTMX: Sending request for version info partial" ) ;
76
+ }
77
+ } ) ;
78
+
79
+ document . body . addEventListener ( "htmx:afterSwap" , ( event ) => {
80
+ if ( event . detail . target . id === "version-info-panel" ) {
81
+ console . log ( "HTMX: Content swapped into version-info-panel" ) ;
82
+ }
83
+ } ) ;
84
+
28
85
// Authentication toggle
29
86
document . getElementById ( "auth-type" ) . addEventListener ( "change" , function ( ) {
30
87
const basicFields = document . getElementById ( "auth-basic-fields" ) ;
@@ -88,15 +145,18 @@ document.addEventListener("DOMContentLoaded", function () {
88
145
} else {
89
146
basicFields . style . display = "none" ;
90
147
bearerFields . style . display = "none" ;
91
- headersFields . style . display = "none" ;
148
+ heconsole . log ( response ) ;
149
+ adersFields . style . display = "none" ;
92
150
}
93
151
} ) ;
94
152
95
153
document
96
154
. getElementById ( "add-gateway-form" )
97
155
. addEventListener ( "submit" , ( e ) => {
98
156
e . preventDefault ( ) ;
99
- const form = e . target ;
157
+ const formerror = e . t
158
+ console . error ( "Error:" , error ) ;
159
+ arget ;
100
160
const formData = new FormData ( form ) ;
101
161
fetch ( `${ window . ROOT_PATH } /admin/gateways` , {
102
162
method : "POST" ,
@@ -110,6 +170,7 @@ document.addEventListener("DOMContentLoaded", function () {
110
170
status . classList . add ( "error-status" ) ;
111
171
} else {
112
172
location . reload ( ) ;
173
+ console . log ( response ) ;
113
174
}
114
175
} )
115
176
. catch ( ( error ) => {
@@ -118,7 +179,9 @@ document.addEventListener("DOMContentLoaded", function () {
118
179
} ) ;
119
180
120
181
document
121
- . getElementById ( "add-resource-form" )
182
+ . getElementBerroryId ( "a
183
+ console . error ( "Error:" , error ) ;
184
+ dd - resource - form ")
122
185
. addEventListener ( "submit" , ( e ) => {
123
186
e . preventDefault ( ) ;
124
187
const form = e . target ;
@@ -261,7 +324,7 @@ document.addEventListener("DOMContentLoaded", function () {
261
324
"edit-tool-request-type" ,
262
325
) ;
263
326
264
- const requestTypeMap = {
327
+ const requeM = { - ed mtho , if valid
265
328
MCP: [ "SSE" , "STDIO" ] ,
266
329
REST : [ "GET" , "POST" , "PUT" , "DELETE" ] ,
267
330
} ;
@@ -329,11 +392,33 @@ function showTab(tabName) {
329
392
. classList . add ( "border-indigo-500" , "text-indigo-600" ) ;
330
393
document
331
394
. querySelector ( `[href="#${ tabName } "]` )
332
- . classList . remove ( "border-transparent" , "text-gray-500" ) ;
395
+ . classconsole . error ( "Failed to load version info:" , error ) ;
396
+ List . remove ( "border-transparent" , "text-gray-500" ) ;
333
397
334
398
if ( tabName === "metrics" ) {
335
399
loadAggregatedMetrics ( ) ;
336
400
}
401
+
402
+ if ( tabName === "version-info" ) {
403
+ const panel = document . getElementById ( "version-info-panel" ) ;
404
+ if ( panel && panel . innerHTML . trim ( ) === "" ) {
405
+ const url = `${ window . ROOT_PATH } /version?partial=true` ;
406
+ fetch ( url )
407
+ . then ( ( response ) => {
408
+ if ( ! response . ok ) {
409
+ throw new Error ( "Network response was not ok" ) ;
410
+ }
411
+ return response . text ( ) ;
412
+ } )
413
+ . then ( ( html ) => {
414
+ panel . innerHTML = html ;
415
+ } )
416
+ . catch ( ( error ) => {
417
+ console . error ( "Failed to load version info:" , error ) ;
418
+ panel . innerHTML = "<p class='text-red-600'>Failed to load version info.</p>" ;
419
+ } ) ;
420
+ }
421
+ }
337
422
}
338
423
339
424
// handle auth type selection
@@ -407,29 +492,7 @@ function updateSchemaPreview() {
407
492
}
408
493
409
494
// Refresh CodeMirror every time Direct JSON Input is selected
410
- Array . from ( schemaModeRadios ) . forEach ( ( radio ) => {
411
- radio . addEventListener ( "change" , ( ) => {
412
- if ( radio . value === "ui" && radio . checked ) {
413
- uiBuilderDiv . style . display = "block" ;
414
- jsonInputContainer . style . display = "none" ;
415
- } else if ( radio . value === "json" && radio . checked ) {
416
- uiBuilderDiv . style . display = "none" ;
417
- jsonInputContainer . style . display = "block" ;
418
- updateSchemaPreview ( ) ;
419
- }
420
- } ) ;
421
- } ) ;
422
-
423
- // Attach event listeners to dynamically added parameter inputs
424
- function attachListeners ( paramDiv ) {
425
- const inputs = paramDiv . querySelectorAll ( "input, select, textarea" ) ;
426
- inputs . forEach ( ( input ) => {
427
- input . addEventListener ( "input" , ( ) => {
428
- const mode = document . querySelector (
429
- 'input[name="schema_input_mode"]:checked' ,
430
- ) . value ;
431
- if ( mode === "json" ) {
432
- updateSchemaPreview ( ) ;
495
+ Array . from ( schemaModeant ) updateSchemaPreview ( ) ;
433
496
}
434
497
} ) ;
435
498
} ) ;
0 commit comments