ydshieh HF Staff commited on
Commit
dd14891
·
verified ·
1 Parent(s): e32645f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +41 -6
app.py CHANGED
@@ -208,6 +208,9 @@ with gr.Blocks() as demo:
208
  with gr.Row():
209
  search_btn = gr.Button("Search")
210
  refresh_btn = gr.Button("Clear cache")
 
 
 
211
 
212
  table = gr.Dataframe(
213
  headers=[
@@ -224,16 +227,48 @@ with gr.Blocks() as demo:
224
  json_view = gr.Code(label="Latest entry details", language="json")
225
  status = gr.Markdown("")
226
 
227
- def get_url_params():
228
- """Try to get URL params - will return test values for now"""
229
- # For now, just return empty strings to test if this works
230
- return "test_repo", "test_pr", "test_sha"
 
 
 
 
 
 
 
231
 
232
  search_btn.click(query, inputs=[repo_box, pr_box, sha_box], outputs=[table, json_view, status])
233
  refresh_btn.click(refresh_dataset, outputs=status)
234
 
235
- # Test if demo.load works at all
236
- demo.load(get_url_params, outputs=[repo_box, pr_box, sha_box])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
237
 
238
  if __name__ == "__main__":
239
  demo.queue(max_size=20).launch(ssr_mode=False)
 
208
  with gr.Row():
209
  search_btn = gr.Button("Search")
210
  refresh_btn = gr.Button("Clear cache")
211
+
212
+ # Hidden textbox to receive URL params from JavaScript
213
+ url_params_hidden = gr.Textbox(visible=False, elem_id="url_params_hidden")
214
 
215
  table = gr.Dataframe(
216
  headers=[
 
227
  json_view = gr.Code(label="Latest entry details", language="json")
228
  status = gr.Markdown("")
229
 
230
+ def parse_url_params_from_js(params_json):
231
+ """Parse URL parameters passed from JavaScript"""
232
+ import json
233
+ try:
234
+ if params_json:
235
+ params = json.loads(params_json)
236
+ print(f"DEBUG: Parsed URL params from JS: {params}")
237
+ return params.get('repo', ''), params.get('pr', ''), params.get('sha', '')
238
+ except Exception as e:
239
+ print(f"DEBUG: Error parsing URL params: {e}")
240
+ return '', '', ''
241
 
242
  search_btn.click(query, inputs=[repo_box, pr_box, sha_box], outputs=[table, json_view, status])
243
  refresh_btn.click(refresh_dataset, outputs=status)
244
 
245
+ # When page loads, populate fields from URL parameters
246
+ demo.load(parse_url_params_from_js, inputs=[url_params_hidden], outputs=[repo_box, pr_box, sha_box])
247
+
248
+ # JavaScript to extract URL params and put them in the hidden field
249
+ gr.HTML("""
250
+ <script>
251
+ setTimeout(function() {
252
+ const params = new URLSearchParams(window.location.search);
253
+ const paramsObj = {
254
+ repo: params.get('repo') || '',
255
+ pr: params.get('pr') || '',
256
+ sha: params.get('sha') || ''
257
+ };
258
+ console.log('URL params detected:', paramsObj);
259
+
260
+ // Find the hidden textbox and set its value
261
+ const hiddenInput = document.querySelector('#url_params_hidden textarea');
262
+ if (hiddenInput) {
263
+ hiddenInput.value = JSON.stringify(paramsObj);
264
+ hiddenInput.dispatchEvent(new Event('input', { bubbles: true }));
265
+ console.log('Set hidden input value');
266
+ } else {
267
+ console.log('Hidden input not found');
268
+ }
269
+ }, 100);
270
+ </script>
271
+ """)
272
 
273
  if __name__ == "__main__":
274
  demo.queue(max_size=20).launch(ssr_mode=False)