Edoruin commited on
Commit
17712e3
·
1 Parent(s): b697a6f

UI/PWA: fix mobile input visibility and add external link handler

Browse files
Files changed (1) hide show
  1. app/main.py +11 -5
app/main.py CHANGED
@@ -166,6 +166,13 @@ def main(page: ft.Page):
166
  else:
167
  mostrar_notificacion("⚠️ Tu navegador no soporta alertas nativas")
168
 
 
 
 
 
 
 
 
169
  def mostrar_notificacion(texto, color="blue"):
170
  # Notificación en la app (SnackBar)
171
  snack = ft.SnackBar(ft.Text(texto), bgcolor=color)
@@ -286,7 +293,6 @@ def main(page: ft.Page):
286
 
287
  nombre = ft.TextField(
288
  label="Nombre del solicitante",
289
- expand=True,
290
  prefix_icon=ft.Icons.PERSON,
291
  text_size=18,
292
  border_color=ft.Colors.BLUE_400,
@@ -442,7 +448,7 @@ def main(page: ft.Page):
442
  ft.Text("HISTORIAL RECIENTE", size=20, weight="bold"),
443
  ft.Container(lista_historial, expand=True),
444
  ft.TextButton("Volver al Inicio", on_click=lambda _: page.go("/"), icon=ft.Icons.ARROW_BACK)
445
- ], spacing=20),
446
  padding=20,
447
  # Para compatibilidad con versiones antiguas, usamos width dinámico o restringido
448
  width=800 if page.width > 800 else None,
@@ -465,7 +471,7 @@ def main(page: ft.Page):
465
  elif page.route.startswith("/ver/"):
466
  parts = page.route.split("/")
467
  pid, pname = parts[2], parts[3]
468
- c_area = ft.Column(scroll=ft.ScrollMode.AUTO, expand=True)
469
  page.views.append(ft.View(f"/ver/{pid}", [ft.AppBar(title=ft.Text(pname)), c_area, ft.TextButton("Volver", on_click=lambda _: page.go("/repos"))]))
470
  try:
471
  gl = gitlab.Gitlab(GITLAB_URL, private_token=GIT_TOKEN)
@@ -480,8 +486,8 @@ def main(page: ft.Page):
480
  c_area.controls.append(ft.Markdown(readme_text, selectable=True, extension_set=ft.MarkdownExtensionSet.GITHUB_WEB))
481
  c_area.controls.append(ft.Divider())
482
  c_area.controls.append(ft.Row([
483
- ft.ElevatedButton("ZIP", icon=ft.Icons.DOWNLOAD, on_click=lambda _: page.launch_url(f"{GITLAB_URL}/api/v4/projects/{pid}/repository/archive.zip?private_token={GIT_TOKEN}")),
484
- ft.OutlinedButton("WEB", icon=ft.Icons.OPEN_IN_NEW, on_click=lambda _: page.launch_url(project.web_url))
485
  ], alignment=ft.MainAxisAlignment.CENTER))
486
  page.update()
487
  except: pass
 
166
  else:
167
  mostrar_notificacion("⚠️ Tu navegador no soporta alertas nativas")
168
 
169
+ def abrir_link_externo(url):
170
+ if hasattr(page, "run_javascript"):
171
+ # Script para forzar apertura en navegador externo (mejor para PWA)
172
+ page.run_javascript(f"window.open('{url}', '_blank');")
173
+ else:
174
+ page.launch_url(url)
175
+
176
  def mostrar_notificacion(texto, color="blue"):
177
  # Notificación en la app (SnackBar)
178
  snack = ft.SnackBar(ft.Text(texto), bgcolor=color)
 
293
 
294
  nombre = ft.TextField(
295
  label="Nombre del solicitante",
 
296
  prefix_icon=ft.Icons.PERSON,
297
  text_size=18,
298
  border_color=ft.Colors.BLUE_400,
 
448
  ft.Text("HISTORIAL RECIENTE", size=20, weight="bold"),
449
  ft.Container(lista_historial, expand=True),
450
  ft.TextButton("Volver al Inicio", on_click=lambda _: page.go("/"), icon=ft.Icons.ARROW_BACK)
451
+ ], spacing=20, scroll=ft.ScrollMode.ADAPTIVE),
452
  padding=20,
453
  # Para compatibilidad con versiones antiguas, usamos width dinámico o restringido
454
  width=800 if page.width > 800 else None,
 
471
  elif page.route.startswith("/ver/"):
472
  parts = page.route.split("/")
473
  pid, pname = parts[2], parts[3]
474
+ c_area = ft.Column(scroll=ft.ScrollMode.ADAPTIVE, expand=True)
475
  page.views.append(ft.View(f"/ver/{pid}", [ft.AppBar(title=ft.Text(pname)), c_area, ft.TextButton("Volver", on_click=lambda _: page.go("/repos"))]))
476
  try:
477
  gl = gitlab.Gitlab(GITLAB_URL, private_token=GIT_TOKEN)
 
486
  c_area.controls.append(ft.Markdown(readme_text, selectable=True, extension_set=ft.MarkdownExtensionSet.GITHUB_WEB))
487
  c_area.controls.append(ft.Divider())
488
  c_area.controls.append(ft.Row([
489
+ ft.ElevatedButton("ZIP", icon=ft.Icons.DOWNLOAD, on_click=lambda _: abrir_link_externo(f"{GITLAB_URL}/api/v4/projects/{pid}/repository/archive.zip?private_token={GIT_TOKEN}")),
490
+ ft.OutlinedButton("WEB", icon=ft.Icons.OPEN_IN_NEW, on_click=lambda _: abrir_link_externo(project.web_url))
491
  ], alignment=ft.MainAxisAlignment.CENTER))
492
  page.update()
493
  except: pass