CodexCLI Bot commited on
Commit
eace2ff
·
1 Parent(s): f2fe9ba

UI: fix default conference logo preview; make header logos clickable; adjust spacing and inset (top-right)

Browse files
Files changed (1) hide show
  1. app.py +34 -6
app.py CHANGED
@@ -122,7 +122,9 @@ def _find_ui_header_logos(root: Path):
122
  return found
123
 
124
  def _ui_header_logos_html():
125
- """Return an HTML div with base64-embedded logos to avoid broken /file routes."""
 
 
126
  import base64
127
  logos = _find_ui_header_logos(ROOT)
128
  if not logos:
@@ -134,23 +136,48 @@ def _ui_header_logos_html():
134
  b64 = base64.b64encode(b).decode("utf-8")
135
  mime = "image/png" if p.suffix.lower() == ".png" else "image/jpeg"
136
  src = f"data:{mime};base64,{b64}"
137
- parts.append(f"<img src='{src}' style='height:56px;width:auto;object-fit:contain'>")
 
 
 
 
 
 
 
 
 
138
  except Exception:
139
  continue
140
  if not parts:
141
  return ""
142
- # Render as a fixed-position header bar at the top-right so it doesn't push the layout down.
143
  imgs = "".join(parts)
144
  return (
145
  "<style>"
146
- "#p2p-logo-bar{position:fixed;top:12px;right:16px;display:flex;gap:12px;"
147
  "align-items:center;z-index:9999}"
148
- "#p2p-logo-bar img{height:44px;width:auto;object-fit:contain;display:block}"
149
  "@media (max-width: 768px){#p2p-logo-bar img{height:32px}}"
150
  "</style>"
151
  "<div id='p2p-logo-bar'>" + imgs + "</div>"
152
  )
153
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
154
  ## Removed sanitizer per request: do not mutate user-generated TeX
155
 
156
  def _on_rm_error(func, path, exc_info):
@@ -3050,8 +3077,9 @@ The framework builds upon 🐪 [CAMEL-ai](https://github.com/camel-ai/camel).
3050
  file_types=["image"],
3051
  )
3052
  with gr.Column():
 
3053
  conf_preview = gr.Image(
3054
- value=str(DEFAULT_RIGHT_LOGO_PATH) if DEFAULT_RIGHT_LOGO_PATH.exists() else None,
3055
  label="Default conference logo preview",
3056
  interactive=False,
3057
  )
 
122
  return found
123
 
124
  def _ui_header_logos_html():
125
+ """Return an HTML div with base64-embedded logos to avoid broken /file routes.
126
+ Logos are fixed at top-right, slightly inset, with larger spacing.
127
+ """
128
  import base64
129
  logos = _find_ui_header_logos(ROOT)
130
  if not logos:
 
136
  b64 = base64.b64encode(b).decode("utf-8")
137
  mime = "image/png" if p.suffix.lower() == ".png" else "image/jpeg"
138
  src = f"data:{mime};base64,{b64}"
139
+ name = p.name.lower()
140
+ href = None
141
+ if "camel" in name:
142
+ href = "https://www.camel-ai.org/"
143
+ elif "tvg" in name or "torr" in name:
144
+ href = "https://torrvision.com/index.html"
145
+ elif "waterloo" in name:
146
+ href = "https://uwaterloo.ca/"
147
+ img = f"<img src='{src}' alt='{p.stem}' style='height:44px;width:auto;object-fit:contain;display:block;cursor:pointer'>"
148
+ parts.append(f"<a href='{href}' target='_blank' rel='noopener'>{img}</a>" if href else img)
149
  except Exception:
150
  continue
151
  if not parts:
152
  return ""
153
+ # Fixed-position header bar at top-right; moved left a bit and larger spacing
154
  imgs = "".join(parts)
155
  return (
156
  "<style>"
157
+ "#p2p-logo-bar{position:fixed;top:12px;right:28px;display:flex;gap:20px;"
158
  "align-items:center;z-index:9999}"
159
+ "#p2p-logo-bar a{display:block;line-height:0}"
160
  "@media (max-width: 768px){#p2p-logo-bar img{height:32px}}"
161
  "</style>"
162
  "<div id='p2p-logo-bar'>" + imgs + "</div>"
163
  )
164
 
165
+ def _default_conf_logo_path():
166
+ """Pick a default conference logo to preview.
167
+ Prefer template/logos/right_logo.png, else the first of detected header logos.
168
+ """
169
+ try:
170
+ pref = ROOT / "template" / "logos" / "right_logo.png"
171
+ if pref.exists():
172
+ return pref
173
+ logos = _find_ui_header_logos(ROOT)
174
+ for p in logos:
175
+ if p and p.exists():
176
+ return p
177
+ except Exception:
178
+ pass
179
+ return None
180
+
181
  ## Removed sanitizer per request: do not mutate user-generated TeX
182
 
183
  def _on_rm_error(func, path, exc_info):
 
3077
  file_types=["image"],
3078
  )
3079
  with gr.Column():
3080
+ _conf_path = _default_conf_logo_path()
3081
  conf_preview = gr.Image(
3082
+ value=str(_conf_path) if _conf_path else None,
3083
  label="Default conference logo preview",
3084
  interactive=False,
3085
  )