Update app.py
Browse files
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
|
| 228 |
-
"""
|
| 229 |
-
|
| 230 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
-
#
|
| 236 |
-
demo.load(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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)
|