UI/PWA: fix mobile input visibility and add external link handler
Browse files- 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.
|
| 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 _:
|
| 484 |
-
ft.OutlinedButton("WEB", icon=ft.Icons.OPEN_IN_NEW, on_click=lambda _:
|
| 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
|