Harheem Kim commited on
Commit
1424b26
·
1 Parent(s): 218df54

fix bug: en version model card download

Browse files
Files changed (1) hide show
  1. tabs/leaderboard_v1_en.py +16 -7
tabs/leaderboard_v1_en.py CHANGED
@@ -2325,18 +2325,18 @@ def create_leaderboard_v2_tab():
2325
  )
2326
  download_card_btn = gr.Button(
2327
  "Download as PNG",
2328
- elem_id="download-card-btn",
2329
  elem_classes=["pill-button"]
2330
  )
2331
 
2332
  gr.HTML("""
2333
- <div class="performance-card-display" id="card-display-container">
2334
  """)
2335
 
2336
  # Card display area - generate initial card
2337
  initial_model = initial_df['Model'].tolist()[0] if len(initial_df) > 0 else None
2338
  initial_card_html = generate_performance_card(initial_model) if initial_model else ""
2339
- card_display = gr.HTML(value=initial_card_html, elem_id="performance-card-html")
2340
 
2341
  gr.HTML("""
2342
  </div>
@@ -3130,13 +3130,14 @@ def create_leaderboard_v2_tab():
3130
  const pause = (ms) => new Promise(resolve => setTimeout(resolve, ms));
3131
  await pause(60);
3132
 
3133
- const card = document.querySelector('.performance-card');
3134
- if (!card) {
 
3135
  alert('Performance card not found. Please select a model first.');
3136
  return;
3137
  }
3138
 
3139
- const btn = document.getElementById('download-card-btn');
3140
  const originalText = btn?.textContent || '';
3141
  if (btn) {
3142
  btn.textContent = 'Generating...';
@@ -3156,12 +3157,20 @@ def create_leaderboard_v2_tab():
3156
  useCORS: true
3157
  });
3158
 
 
 
 
 
3159
  const link = document.createElement('a');
3160
  const modelName = card.querySelector('.card-model-name')?.textContent || 'model';
3161
  const timestamp = new Date().toISOString().slice(0, 10);
3162
  const fileName = `${modelName.replace(/[^a-z0-9]/gi, '-').toLowerCase()}-performance-${timestamp}.png`;
3163
  link.download = fileName;
3164
- link.href = canvas.toDataURL('image/png');
 
 
 
 
3165
  document.body.appendChild(link);
3166
  link.click();
3167
  document.body.removeChild(link);
 
2325
  )
2326
  download_card_btn = gr.Button(
2327
  "Download as PNG",
2328
+ elem_id="download-card-btn-en",
2329
  elem_classes=["pill-button"]
2330
  )
2331
 
2332
  gr.HTML("""
2333
+ <div class="performance-card-display" id="card-display-container-en">
2334
  """)
2335
 
2336
  # Card display area - generate initial card
2337
  initial_model = initial_df['Model'].tolist()[0] if len(initial_df) > 0 else None
2338
  initial_card_html = generate_performance_card(initial_model) if initial_model else ""
2339
+ card_display = gr.HTML(value=initial_card_html, elem_id="performance-card-html-en")
2340
 
2341
  gr.HTML("""
2342
  </div>
 
3130
  const pause = (ms) => new Promise(resolve => setTimeout(resolve, ms));
3131
  await pause(60);
3132
 
3133
+ const container = document.getElementById('performance-card-html-en');
3134
+ const card = container?.querySelector('.performance-card');
3135
+ if (!container || !card) {
3136
  alert('Performance card not found. Please select a model first.');
3137
  return;
3138
  }
3139
 
3140
+ const btn = document.getElementById('download-card-btn-en');
3141
  const originalText = btn?.textContent || '';
3142
  if (btn) {
3143
  btn.textContent = 'Generating...';
 
3157
  useCORS: true
3158
  });
3159
 
3160
+ if (!canvas || !canvas.width || !canvas.height) {
3161
+ throw new Error('Captured canvas is empty');
3162
+ }
3163
+
3164
  const link = document.createElement('a');
3165
  const modelName = card.querySelector('.card-model-name')?.textContent || 'model';
3166
  const timestamp = new Date().toISOString().slice(0, 10);
3167
  const fileName = `${modelName.replace(/[^a-z0-9]/gi, '-').toLowerCase()}-performance-${timestamp}.png`;
3168
  link.download = fileName;
3169
+ const dataUrl = canvas.toDataURL('image/png');
3170
+ if (!dataUrl || dataUrl === 'data:,' || dataUrl.length <= 'data:image/png;base64,'.length) {
3171
+ throw new Error('Failed to generate PNG data');
3172
+ }
3173
+ link.href = dataUrl;
3174
  document.body.appendChild(link);
3175
  link.click();
3176
  document.body.removeChild(link);