@@ -25,6 +25,63 @@ document.addEventListener("DOMContentLoaded", function () {
2525 document . getElementById ( "tab-metrics" ) . addEventListener ( "click" , ( ) => {
2626 showTab ( "metrics" ) ;
2727 } ) ;
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+
2885 // Authentication toggle
2986 document . getElementById ( "auth-type" ) . addEventListener ( "change" , function ( ) {
3087 const basicFields = document . getElementById ( "auth-basic-fields" ) ;
@@ -88,15 +145,18 @@ document.addEventListener("DOMContentLoaded", function () {
88145 } else {
89146 basicFields . style . display = "none" ;
90147 bearerFields . style . display = "none" ;
91- headersFields . style . display = "none" ;
148+ heconsole . log ( response ) ;
149+ adersFields . style . display = "none" ;
92150 }
93151 } ) ;
94152
95153 document
96154 . getElementById ( "add-gateway-form" )
97155 . addEventListener ( "submit" , ( e ) => {
98156 e . preventDefault ( ) ;
99- const form = e . target ;
157+ const formerror = e . t
158+ console . error ( "Error:" , error ) ;
159+ arget ;
100160 const formData = new FormData ( form ) ;
101161 fetch ( `${ window . ROOT_PATH } /admin/gateways` , {
102162 method : "POST" ,
@@ -110,6 +170,7 @@ document.addEventListener("DOMContentLoaded", function () {
110170 status . classList . add ( "error-status" ) ;
111171 } else {
112172 location . reload ( ) ;
173+ console . log ( response ) ;
113174 }
114175 } )
115176 . catch ( ( error ) => {
@@ -118,7 +179,9 @@ document.addEventListener("DOMContentLoaded", function () {
118179 } ) ;
119180
120181 document
121- . getElementById ( "add-resource-form" )
182+ . getElementBerroryId ( "a
183+ console . error ( "Error:" , error ) ;
184+ dd - resource - form ")
122185 . addEventListener ( "submit" , ( e ) => {
123186 e . preventDefault ( ) ;
124187 const form = e . target ;
@@ -261,7 +324,7 @@ document.addEventListener("DOMContentLoaded", function () {
261324 "edit-tool-request-type" ,
262325 ) ;
263326
264- const requestTypeMap = {
327+ const requeM = { - ed mtho , if valid
265328 MCP: [ "SSE" , "STDIO" ] ,
266329 REST : [ "GET" , "POST" , "PUT" , "DELETE" ] ,
267330 } ;
@@ -329,11 +392,33 @@ function showTab(tabName) {
329392 . classList . add ( "border-indigo-500" , "text-indigo-600" ) ;
330393 document
331394 . 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" ) ;
333397
334398 if ( tabName === "metrics" ) {
335399 loadAggregatedMetrics ( ) ;
336400 }
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+ }
337422}
338423
339424// handle auth type selection
@@ -407,29 +492,7 @@ function updateSchemaPreview() {
407492}
408493
409494// 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 ( ) ;
433496 }
434497 } ) ;
435498 } ) ;
0 commit comments