Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -1036,16 +1036,25 @@ def create_ui() -> gr.Blocks:
|
|
| 1036 |
return gr.update(visible=False), hf_url
|
| 1037 |
return gr.update(visible=False), ""
|
| 1038 |
|
| 1039 |
-
def handle_explore_repo(repo_id: str) -> Tuple[Any, Any]:
|
| 1040 |
-
"""Handle navigating to the repo explorer."""
|
| 1041 |
logger.info(f"DEBUG: handle_explore_repo called with repo_id: '{repo_id}'")
|
| 1042 |
logger.info(f"DEBUG: repo_id type: {type(repo_id)}")
|
| 1043 |
logger.info(f"DEBUG: repo_id length: {len(repo_id) if repo_id else 'None'}")
|
| 1044 |
|
| 1045 |
-
|
| 1046 |
-
|
| 1047 |
-
|
| 1048 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1049 |
|
| 1050 |
def handle_cancel_modal() -> Any:
|
| 1051 |
"""Handle closing the modal."""
|
|
@@ -1195,56 +1204,14 @@ def create_ui() -> gr.Blocks:
|
|
| 1195 |
inputs=[selected_repo_display],
|
| 1196 |
outputs=[
|
| 1197 |
repo_action_modal,
|
| 1198 |
-
tabs
|
|
|
|
| 1199 |
],
|
| 1200 |
js="""(repo_id) => {
|
| 1201 |
-
console.log('DEBUG:
|
| 1202 |
-
console.log('DEBUG: repo_id type:', typeof repo_id);
|
| 1203 |
-
|
| 1204 |
-
// Try multiple ways to get the repo_id
|
| 1205 |
-
let actualRepoId = repo_id;
|
| 1206 |
-
|
| 1207 |
-
// Check if repo_id is valid
|
| 1208 |
-
if (!actualRepoId || actualRepoId === 'None' || actualRepoId === null || actualRepoId === 'null') {
|
| 1209 |
-
console.log('DEBUG: repo_id is null/undefined, trying alternatives...');
|
| 1210 |
-
|
| 1211 |
-
// Try to get from global variable
|
| 1212 |
-
if (window.selectedRepoId) {
|
| 1213 |
-
actualRepoId = window.selectedRepoId;
|
| 1214 |
-
console.log('DEBUG: Found repo_id in global variable:', actualRepoId);
|
| 1215 |
-
}
|
| 1216 |
-
|
| 1217 |
-
// Try to get from the modal text input
|
| 1218 |
-
if (!actualRepoId) {
|
| 1219 |
-
const modalTextboxes = document.querySelectorAll('label:contains("Selected Repository") + textarea, label:contains("Selected Repository") + input');
|
| 1220 |
-
console.log('DEBUG: Found modal textboxes:', modalTextboxes.length);
|
| 1221 |
-
modalTextboxes.forEach((input, index) => {
|
| 1222 |
-
console.log('DEBUG: Modal input', index, 'value:', input.value);
|
| 1223 |
-
if (input.value && input.value.trim()) {
|
| 1224 |
-
actualRepoId = input.value.trim();
|
| 1225 |
-
}
|
| 1226 |
-
});
|
| 1227 |
-
}
|
| 1228 |
-
}
|
| 1229 |
-
|
| 1230 |
-
console.log('DEBUG: Final repo_id to use:', actualRepoId);
|
| 1231 |
-
|
| 1232 |
setTimeout(() => {
|
| 1233 |
window.scrollTo({top: 0, behavior: 'smooth'});
|
| 1234 |
-
|
| 1235 |
-
|
| 1236 |
-
// Find and set the repo explorer input
|
| 1237 |
-
const inputs = document.querySelectorAll('input[placeholder*="microsoft/DialoGPT-medium"], input[placeholder*="Repository ID"], label:contains("Repository ID") + input');
|
| 1238 |
-
console.log('DEBUG: Found repo explorer inputs:', inputs.length);
|
| 1239 |
-
inputs.forEach((input, index) => {
|
| 1240 |
-
console.log('DEBUG: Setting repo explorer input', index, 'to value:', actualRepoId);
|
| 1241 |
-
if (actualRepoId) {
|
| 1242 |
-
input.value = actualRepoId;
|
| 1243 |
-
input.dispatchEvent(new Event('input', { bubbles: true }));
|
| 1244 |
-
input.dispatchEvent(new Event('change', { bubbles: true }));
|
| 1245 |
-
}
|
| 1246 |
-
});
|
| 1247 |
-
}, 300);
|
| 1248 |
}"""
|
| 1249 |
)
|
| 1250 |
cancel_modal_btn.click(
|
|
@@ -1262,44 +1229,14 @@ def create_ui() -> gr.Blocks:
|
|
| 1262 |
df_output.select(
|
| 1263 |
fn=handle_dataframe_select,
|
| 1264 |
inputs=[df_output],
|
| 1265 |
-
outputs=[selected_repo_display, repo_action_modal, tabs, expanded_content_title, expanded_content_text, text_expansion_modal]
|
| 1266 |
-
js="""(evt, df) => {
|
| 1267 |
-
console.log('DEBUG: Dataframe selection event:', evt);
|
| 1268 |
-
if (evt && evt.index && evt.index.length >= 2) {
|
| 1269 |
-
const row = evt.index[0];
|
| 1270 |
-
const col = evt.index[1];
|
| 1271 |
-
console.log('DEBUG: Selected row', row, 'col', col);
|
| 1272 |
-
|
| 1273 |
-
// Store selected repo_id globally for backup
|
| 1274 |
-
if (col === 0 && df && df.length > row) {
|
| 1275 |
-
const repoId = df[row][0];
|
| 1276 |
-
console.log('DEBUG: Storing global repo_id:', repoId);
|
| 1277 |
-
window.selectedRepoId = repoId;
|
| 1278 |
-
}
|
| 1279 |
-
}
|
| 1280 |
-
}"""
|
| 1281 |
)
|
| 1282 |
|
| 1283 |
# Add selection event for top repositories dataframe too
|
| 1284 |
top_repos_df.select(
|
| 1285 |
fn=handle_dataframe_select,
|
| 1286 |
inputs=[top_repos_df],
|
| 1287 |
-
outputs=[selected_repo_display, repo_action_modal, tabs, expanded_content_title, expanded_content_text, text_expansion_modal]
|
| 1288 |
-
js="""(evt, df) => {
|
| 1289 |
-
console.log('DEBUG: Top repos dataframe selection event:', evt);
|
| 1290 |
-
if (evt && evt.index && evt.index.length >= 2) {
|
| 1291 |
-
const row = evt.index[0];
|
| 1292 |
-
const col = evt.index[1];
|
| 1293 |
-
console.log('DEBUG: Selected row', row, 'col', col);
|
| 1294 |
-
|
| 1295 |
-
// Store selected repo_id globally for backup
|
| 1296 |
-
if (col === 0 && df && df.length > row) {
|
| 1297 |
-
const repoId = df[row][0];
|
| 1298 |
-
console.log('DEBUG: Storing global repo_id:', repoId);
|
| 1299 |
-
window.selectedRepoId = repoId;
|
| 1300 |
-
}
|
| 1301 |
-
}
|
| 1302 |
-
}"""
|
| 1303 |
)
|
| 1304 |
|
| 1305 |
# Reset button event
|
|
|
|
| 1036 |
return gr.update(visible=False), hf_url
|
| 1037 |
return gr.update(visible=False), ""
|
| 1038 |
|
| 1039 |
+
def handle_explore_repo(repo_id: str) -> Tuple[Any, Any, Any]:
|
| 1040 |
+
"""Handle navigating to the repo explorer and populate the repo ID."""
|
| 1041 |
logger.info(f"DEBUG: handle_explore_repo called with repo_id: '{repo_id}'")
|
| 1042 |
logger.info(f"DEBUG: repo_id type: {type(repo_id)}")
|
| 1043 |
logger.info(f"DEBUG: repo_id length: {len(repo_id) if repo_id else 'None'}")
|
| 1044 |
|
| 1045 |
+
if repo_id and repo_id.strip() and repo_id.strip() != 'nan':
|
| 1046 |
+
clean_repo_id = repo_id.strip()
|
| 1047 |
+
return (
|
| 1048 |
+
gr.update(visible=False), # close modal
|
| 1049 |
+
gr.update(selected="repo_explorer_tab"), # switch tab
|
| 1050 |
+
gr.update(value=clean_repo_id) # populate repo explorer input
|
| 1051 |
+
)
|
| 1052 |
+
else:
|
| 1053 |
+
return (
|
| 1054 |
+
gr.update(visible=False), # close modal
|
| 1055 |
+
gr.update(selected="repo_explorer_tab"), # switch tab
|
| 1056 |
+
gr.update() # don't change repo explorer input
|
| 1057 |
+
)
|
| 1058 |
|
| 1059 |
def handle_cancel_modal() -> Any:
|
| 1060 |
"""Handle closing the modal."""
|
|
|
|
| 1204 |
inputs=[selected_repo_display],
|
| 1205 |
outputs=[
|
| 1206 |
repo_action_modal,
|
| 1207 |
+
tabs,
|
| 1208 |
+
repo_components["repo_explorer_input"]
|
| 1209 |
],
|
| 1210 |
js="""(repo_id) => {
|
| 1211 |
+
console.log('DEBUG: Navigate to repo explorer for:', repo_id);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1212 |
setTimeout(() => {
|
| 1213 |
window.scrollTo({top: 0, behavior: 'smooth'});
|
| 1214 |
+
}, 200);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1215 |
}"""
|
| 1216 |
)
|
| 1217 |
cancel_modal_btn.click(
|
|
|
|
| 1229 |
df_output.select(
|
| 1230 |
fn=handle_dataframe_select,
|
| 1231 |
inputs=[df_output],
|
| 1232 |
+
outputs=[selected_repo_display, repo_action_modal, tabs, expanded_content_title, expanded_content_text, text_expansion_modal]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1233 |
)
|
| 1234 |
|
| 1235 |
# Add selection event for top repositories dataframe too
|
| 1236 |
top_repos_df.select(
|
| 1237 |
fn=handle_dataframe_select,
|
| 1238 |
inputs=[top_repos_df],
|
| 1239 |
+
outputs=[selected_repo_display, repo_action_modal, tabs, expanded_content_title, expanded_content_text, text_expansion_modal]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1240 |
)
|
| 1241 |
|
| 1242 |
# Reset button event
|