Commit graph

332 commits

Author SHA1 Message Date
d495c05b96 ♻️ (bootsier): Reorganiza activos estáticos
Compila SCSS, copia JS y fuentes desde `assets/` con prefijo bootsier.
2026-06-20 19:52:21 +02:00
dbf0894894 (bootsier): Añade ajuste dev.bootsier_static_dir
Permite servir `css`, `js` y `fonts` desde disco mientras la aplicación
está en ejecución, sin necesidad de recompilar.
2026-06-20 19:47:19 +02:00
2202a2350c ♻️ (bootsier): Usa nuevo Props en Navbar/Offcanvas 2026-06-20 16:26:20 +02:00
62219584b0 ♻️ (html): API para id's en Props y componentes 2026-06-20 15:02:23 +02:00
8d0103c257 ♻️ (bootsier): Adapta componentes a nueva API
Sustituye `Classes`/`ClassesOp` por `Props`/`PropsOp` en todos los
componentes: campo, *builder* `with_prop()`, `setup()` y `prepare()`.
2026-06-14 23:07:57 +02:00
1bd97d5705 (bootsier): Añade AdminLTE 4 y Bootstrap Icons
Integra AdminLTE 4.0.0 (SCSS y JS), Bootstrap Icons 1.13.1 y las fuentes
Source Sans 3 VF; reorganiza los SCSS del tema con la nueva estructura
de *pagetop-build*.
2026-06-14 21:25:52 +02:00
f27790c3a2 (build): Introduce nuevas funciones de build
Añade `compile_scss()`, `copy_dir()`, `copy_file()`,
`copy_file_replacing()` y `minify_js()` para preparar activos en
`build.rs`. Adopta el patrón `assets/ -> static/`: los archivos
estáticos se mueven a `assets/` y `static/` se añade a `.gitignore`. Los
`build.rs` de *pagetop* y *pagetop-htmx* se actualizan con el nuevo
patrón.  La documentación del módulo se reescribe para reflejar los
nuevos cambios.
2026-06-14 21:18:54 +02:00
6376e3e88c 📝 Ajusta formato de comentarios 2026-06-13 19:16:34 +02:00
38fd24453e (htmx): Añade integración con HTMX 2
Constantes `hx-*`, `HtmxRequestExt` y `HtmxResponse` cubren el ciclo
completo: escribir atributos, leer la petición y construir la respuesta.
La extensión Htmx inyecta el script automáticamente.

Añade `IntoResponse` y `Response` al prelude de PageTop.
2026-06-13 18:41:15 +02:00
511149caa7 📝 Añade no_run a doctests ilustrativos 2026-06-13 00:31:36 +02:00
41c4379bc3 📝 Limpia y corrige documentación de extensiones 2026-06-12 21:29:10 +02:00
f9e87058d8 ♻️ (html): Migra Classes/ClassesOp a Props/PropsOp
Introduce `Props`/`PropsOp` para gestionar pares `atributo="valor"` y
clases CSS para aplicar en componentes.

- Constructores `Props::new()`, `Props::classes()` y `Props::default()`.
- `Page.body_classes` reemplazado por `body_props` (permite atributos
  arbitrarios en `<body>`, no sólo clases).
- Tests nuevos para atributos y reescritos para clases.
2026-06-12 01:55:07 +02:00
0121fad94a ♻️ (html): Simplifica API de Classes y ClassesOp
Elimina `ClassesOp::Replace` (sustituible con `Remove`+`Add`), renombra
`Set` a `Reset` por claridad semántica, añade `Classes::is_empty()` y
mejora documentación de `ClassesOp` con nota sobre orden CSS.
2026-06-11 07:18:04 +02:00
35a5221c92 (macros): Permite (expr) como atributo en html!
Introduce `Attribute::Splice` en el AST de Maud, de modo que `(expr)` en
posición de atributo renderiza la expresión directamente sobre el buffer
de salida del elemento.
2026-06-11 06:46:16 +02:00
47b6553fe4 🐛 (build): Aísla dir temp. por nombre de destino 2026-06-11 06:21:54 +02:00
0410b8c060 📝 Corrección mínima de documentación 2026-06-09 19:24:51 +02:00
830602b24e 🎨 (seaorm): Mejora API y documentación
- Reescribe la documentación con ejemplos completos, guía rápida y
  tablas de referencia.
- Renombra `connection()` a `dbconn()`.
- Añade `execute()` para SQL en crudo y corrige `fetch_all`/`fetch_one`
  para aceptar `&Q` en lugar de `&mut Q`.
- Cambia `futures::executor::block_on` por `tokio::task::block_in_place`
  para compatibilidad con el *runtime* multi-hilo.
- Los fallos de migración al arrancar provocan `panic!` en lugar de log
  de error silencioso.
- Actualiza `#[pagetop::test]` para usar `flavor = "multi_thread"`,
  alineándolo con `#[pagetop::main]` y con las extensiones que usan
  SeaORM.
2026-06-09 19:22:34 +02:00
dfc1bdbc4c (seaorm): Incluye DbType y retoca docs de config 2026-06-02 00:24:45 +02:00
3951f1da1a 🎨 Corrige orden de atributos externos en structs
`///` debe preceder a `#[derive(...)]` al ser azúcar de `#[doc = "..."]`.
2026-06-01 23:32:28 +02:00
4ccb792db5 📝 Corrige documentación de la extensión Welcome 2026-06-01 22:05:53 +02:00
2c52af4b9d ♻️ (statics): Renombra StaticResource a StaticFile
Clarifica la distinción entre un fichero estático individual
(`StaticFile`) y el contenedor de varios ficheros (`StaticResources`).
2026-06-01 22:02:23 +02:00
b1ce79c78f ♻️ Migra soporte HTTP de actix-web a axum en maud 2026-06-01 02:14:07 +02:00
eb18690a5c (tests): Adapta la suite al nuevo framework web
- Sustituye `service::test::*` por `web::test::*` (migración de actix-web a
  axum).
- Extrae `setup()` en los módulos que sólo renderizan componentes,
  evitando levantar un router completo en cada test.
- Elimina los `env::set_var("PAGETOP_RUN_MODE", "test")` manuales, ya
  cubiertos por la *feature* `testing`.
2026-06-01 02:04:02 +02:00
87e4eac27c 🔥 (statics): Elimina código residual de actix-web
`ResourceFiles` y `UriSegmentError` quedaron sin uso al migrar de
actix-web a axum/tower.
2026-06-01 01:01:24 +02:00
7d43742a11 ♻️ (macros): Adapta main y test a Tokio
`#[pagetop::main]` y `#[pagetop::test]` expanden ahora a
`#[tokio::main]` y `#[tokio::test]`, eliminando la dependencia de
Actix-web.
2026-05-31 23:43:10 +02:00
c1afe0e70c ♻️ Migra API pública de actix-web a Axum
- `configure_service` como `configure_router(Router) -> Router`.
- Macro `static_files_service!` como `serve_static_files!`.
- `ResultPage<M, E>` eliminado; handlers devuelven `Result<M, E>`.
- `ErrorPage` implementa `IntoResponse` en lugar de `ResponseError`.
- Registro con `OnceLock`; eliminados `drop_extensions` y `app.welcome`.
- `Redirect` devuelve `Response`; docs y ejemplos actualizados.
2026-05-31 23:38:43 +02:00
019961ed77 🚚 Actualiza rutas de assets estáticos
Los CSS e imágenes propios de PageTop se sirven bajo `/pagetop/`, por lo
que las referencias a `/css/` e `/img/` deben incluir ese prefijo.
2026-05-31 00:51:48 +02:00
7553ed35ec 🎨 Aplica formato Rust 2024 (rustfmt.toml) 2026-05-30 22:50:40 +02:00
9c58d5e1d6 ♻️ (pagetop): Migra de actix-web a Axum
Sustituye el módulo `service` por `web` y adapta toda la API al modelo
de Axum: router inmutable, extractores via `FromRequestParts` y
servicios Tower para archivos estáticos.

- `HttpRequest` pasa a ser un tipo propio, mínimo y clonable.
- `configure_services` pasa a `configure_routes`.
- `EmbeddedFilesService` pasa a `ServeEmbedded`.
- Elimina `session_lifetime` de `Server` (va a `pagetop-auth`).
- Actualiza tests y ejemplos a la nueva API.
2026-05-30 22:30:58 +02:00
026448e511 ♻️ (seaorm): Separa módulo migration de db
- `db::*` queda como API de consultas (connection, fetch_*).
- `migration::*` sube a primer nivel con su propia documentación.
- `DBCONN` y `run_now` se trasladan a la raíz de la extensión.
- Actualiza README.md y docs para reflejar la nueva estructura.
2026-05-15 00:22:55 +02:00
796ae5ce81 ♻️ (seaorm): Revisa y mejora la API pública 2026-05-11 15:10:49 +02:00
aa931ea052 ⬆️ (seaorm): Actualiza sea-orm a 1.1 2026-05-10 21:42:19 +02:00
8c861bff05 📝 (seaorm): Corrige ejemplos de documentación 2026-05-10 00:43:35 +02:00
fa5489dbb0 ♻️ (seaorm): Elimina prelude para usar db 2026-05-10 00:38:00 +02:00
a0805ed0fb ♻️ (bootsier): Elimina prelude para usar theme 2026-05-10 00:31:33 +02:00
bd8a34341d 🚧 Retoques en documentación y código 2026-05-09 13:33:20 +02:00
23d4fd8a80 (seaorm): Añade acceso a bases de datos 2026-05-09 13:07:49 +02:00
b4284f74f8 🌐 (bootsier): Localiza nombre y descripción 2026-05-09 10:43:04 +02:00
50abfe3b56 🌐 (aliner): Localiza nombre y descripción 2026-05-09 10:42:48 +02:00
35883bdcde Añade alias cargo td y aclara doc de pruebas 2026-05-09 09:35:59 +02:00
9e625c2b46 📝 Retoques en README's y documentación 2026-05-09 08:18:28 +02:00
5d4f1fb007 🔖 Prepara publicación de pagetop-bootsier 0.1.1 2026-05-07 21:21:47 +02:00
2071e68060 ♻️ (bootsier): Renombra módulo aux por attrs (#11)
"aux" es un nombre de dispositivo reservado en Windows (como "con", "nul", "prn", …). Los ficheros llamados "aux.rs" o en un directorio "aux/" pueden no funcionar en Windows. Hay que renombrar el módulo aunque no tiene impacto en la API de Bootsier.

Reviewed-on: #11
Co-authored-by: Manuel Cillero <manuel@cillero.es>
Co-committed-by: Manuel Cillero <manuel@cillero.es>
2026-05-06 20:55:32 +02:00
a6fc037a52 🔖 Prepara publicación de pagetop-bootsier 0.1.0 2026-05-03 23:41:43 +02:00
3ea23dd7c4 🔖 Prepara publicación de pagetop-aliner 0.1.0 2026-05-03 23:24:27 +02:00
e033a0ceef 🔖 Prepara publicación de pagetop 0.5.0 2026-05-03 22:57:20 +02:00
c426be67fb 🔖 Prepara publicación de pagetop-minimal 0.1.0 2026-05-03 12:44:13 +02:00
a8db90b7eb 🔖 Prepara publicación de pagetop-macros 0.3.0 2026-05-03 12:40:41 +02:00
45785a389e 🔖 Prepara publicación de pagetop-build 0.3.2 2026-05-03 12:30:27 +02:00
13d20c769c 🔖 Prepara publicación de pagetop-statics 0.1.3 2026-05-03 12:23:40 +02:00