39
39
padding : 1rem ;
40
40
margin : 0 ;
41
41
}
42
+
43
+ # urlInputContainer {
44
+ text-align : center;
45
+ margin-bottom : 1rem ;
46
+ }
47
+
48
+ # urlInput {
49
+ width : 300px ;
50
+ padding : 0.5rem ;
51
+ font-size : 1rem ;
52
+ }
53
+
54
+ # setUrlButton {
55
+ padding : 0.5rem 1rem ;
56
+ font-size : 1rem ;
57
+ }
42
58
</ style >
43
59
</ head >
44
60
< body >
45
61
< h1 > Jury Tool</ h1 >
62
+ < div id ="urlInputContainer ">
63
+ < input type ="text " id ="urlInput " placeholder ="Enter backend URL " />
64
+ < button id ="setUrlButton "> Set URL</ button >
65
+ </ div >
46
66
< div id ="events "> </ div >
47
67
< script >
48
68
const events = [
@@ -52,6 +72,8 @@ <h1>Jury Tool</h1>
52
72
'aec-cc' ,
53
73
] ;
54
74
75
+ let backendUrl = '' ;
76
+
55
77
// Create html elements for each event
56
78
events . forEach ( ( event ) => {
57
79
const div = document . createElement ( 'div' ) ;
@@ -64,21 +86,35 @@ <h1>Jury Tool</h1>
64
86
65
87
const pre = document . createElement ( 'pre' ) ;
66
88
pre . id = event + '-data' ;
67
- pre . textContent = 'Loading... ' ;
89
+ pre . textContent = 'Enter a backend URL to start ' ;
68
90
document . getElementById ( event ) . appendChild ( pre ) ;
69
91
} ) ;
70
92
71
- // Update data for each event, every second
72
- setInterval ( ( ) => {
93
+ document . getElementById ( 'setUrlButton' ) . addEventListener ( 'click' , ( ) => {
94
+ backendUrl = document . getElementById ( 'urlInput' ) . value ;
95
+ if ( backendUrl ) {
96
+ updateEventData ( ) ;
97
+ }
98
+ } ) ;
99
+
100
+ function updateEventData ( ) {
101
+ // Update text to "Loading..." once fetching starts
73
102
events . forEach ( ( event ) => {
74
- fetch ( `http://localhost:3000/events/${ event } /subscribe?wait=false` )
75
- . then ( ( response ) => response . json ( ) )
76
- . then ( ( data ) => {
77
- document . getElementById ( event + '-data' ) . textContent =
78
- JSON . stringify ( data , null , 2 ) ;
79
- } ) ;
103
+ document . getElementById ( event + '-data' ) . textContent = 'Loading...' ;
80
104
} ) ;
81
- } , 1000 ) ;
105
+
106
+ // Update data for each event, every second
107
+ setInterval ( ( ) => {
108
+ events . forEach ( ( event ) => {
109
+ fetch ( `${ backendUrl } /events/${ event } /subscribe?wait=false` )
110
+ . then ( ( response ) => response . json ( ) )
111
+ . then ( ( data ) => {
112
+ document . getElementById ( event + '-data' ) . textContent =
113
+ JSON . stringify ( data , null , 2 ) ;
114
+ } ) ;
115
+ } ) ;
116
+ } , 1000 ) ;
117
+ }
82
118
</ script >
83
119
</ body >
84
120
</ html >
0 commit comments