1548 Commits
Author SHA1 Message Date
MalinandClaude Opus 5.5 12d1429cf4 feat(zonemaster.es): herramientas DNS
Propagación, test de resolvers (UDP/TCP/DoH), seguridad con historial,
infraestructura, grafo DNS, listas de bloqueo Pi-hole/AdGuard y listas
negras DNSBL, en es/ca/gl/eu/en, sobre la API /tools-api/ del repo
CloudHost/zonemaster-tools. La portada acepta ?domain= para rellenar
el test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 13:08:03 +02:00
granja-infraandClaude Opus 5 0a87f64ccf feat(zonemaster.es): anuncios de texto por idioma en vez de banners de imagen
Las zonas 1/2/3 (970x90, 320x100, 300x250 de imagen) se sustituyen por zonas
de texto por idioma: 10/11/12 ancho y 13/14/15 bloque para es/en/ro. El locale
de la pagina decide la zona; es/ca/gl/eu van a ES y el resto a EN.

El creativo toma los colores y la tipografia del sitio via variables --ta-*
que apuntan a los tokens del tema, asi que sigue al modo claro/oscuro sin
tocar el adserver.

Fuera async.js: asyncspc.php devuelve {"html":""} para TODAS las zonas en
esta instalacion, tambien las de imagen anteriores. Se pasa a spc.php, que si
entrega y ademas pide todas las zonas de la pagina en UNA llamada, que es la
condicion para que funcione el limite de un anuncio por anunciante y pagina.

Ya no hace falta zona movil aparte: el creativo de texto es fluido.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-29 14:24:23 +02:00
granja-infra 7de9ba2f66 docs: README propio del fork (que cambia, trampas, build y despliegue)
Las dos trampas que ya costaron tiempo quedan escritas: el import.meta dentro
de un define:vars, y que el modo oscuro tiene que tocar las rampas de la
paleta y no solo la capa semantica. Tambien el --exclude recent-scans.json
del rsync, que sin el se carga el fichero que escribe el cron.
2026-09-21 22:12:41 +02:00
granja-infra 5cc7935b54 feat(zonemaster.es): modo oscuro de tres estados y arreglo real de "Ultimos analisis"
Modo oscuro
-----------
Selector de tres estados (automatico -> claro -> oscuro), no un interruptor
de dos: "automatico" es el estado de partida y sigue al sistema operativo
mientras no se toque. La eleccion explicita se guarda en localStorage y gana
sobre el sistema en ambos sentidos. Un script `is:inline` en el <head> aplica
`data-theme` antes del primer pintado, asi que no hay destello blanco.

Hubo que redefinir las RAMPAS de la paleta, no solo la capa semantica: casi
todos los componentes (cabecera, tarjeta del formulario, menu, pie, botones,
chips) leen `--color-palette-*` directamente, y tocando solo
`--color-background`/`--color-text` la cabecera y la tarjeta se quedaban en
lavanda claro sobre fondo oscuro. Las rampas de severidad son la excepcion
deliberada: de esas solo se invierten el tinte de fondo (-10) y el texto que
va encima (-90), porque los rellenos -30/-50/-70 son la senal de gravedad y
moverlos rompe el contraste del distintivo y el orden error < critico.

Cuatro excepciones se escriben como reglas de componente porque un mismo
token hace dos trabajos opuestos: texto sobre relleno amarillo, el chip de
filtro (que fijaba `background: white` a pelo), el selector de idioma (idem,
mas su flecha SVG incrustada con trazo oscuro) y el logotipo, que es un mapa
de bits en base64 dentro de un .svg y por tanto no tiene ningun `fill` que
redefinir -- se le da la vuelta con invert + hue-rotate, que conserva el tono
del corazon rosa y de la marca de afnic.

Verificado con un barrido automatico de contraste sobre 7 paginas x 2 temas:
0 elementos por debajo de 3:1. El tema claro queda byte a byte como estaba.

"Ultimos analisis"
------------------
Llevaba vacio desde siempre por una causa distinta de la que se creia. El
bloque lleva `define:vars`, lo que obliga a Astro a emitirlo como script
CLASICO en vez de como modulo; el `import.meta.env.BASE_URL` que tenia dentro
es entonces un error de sintaxis que aborta el fichero entero antes de la
primera linea, asi que el fetch nunca llegaba a ejecutarse.

El parche del 2026-09-15 (repartir copias del JSON a cada carpeta de idioma
desde el cron) atacaba un sintoma que no existia: el 404 de
/es/recent-scans.json era real, pero lo provocaba la comprobacion manual, no
la pagina. Quitadas las dos apariciones de `import.meta` del bloque, la lista
se pinta en los 11 idiomas leyendo la ruta absoluta /recent-scans.json, y el
reparto por idioma ya no hace falta.
2026-09-21 21:52:45 +02:00
Mats DufbergandGitHub d9393420c4 Merge pull request #537 from zonemaster/release/v2025.2.1
Merge Release/v2025.2.1 branch into master (zonemaster-gui)
2026-03-04 18:50:16 +01:00
Mats DufbergandGitHub 373d24620b Merge pull request #536 from matsduf/prepare-release-2025.2.1
Preparation for release v2025.2.1 (Zonemaster-GUI)
2026-03-04 17:12:45 +01:00
Mats Dufberg 6e8f91ca24 Editorial update 2026-03-04 14:45:14 +01:00
5f11ec0291 Update Changes
Co-authored-by: tgreenx <96772376+tgreenx@users.noreply.github.com>
2026-03-04 14:43:15 +01:00
8a039b34cc Update Changes
Co-authored-by: Mattias Päivärinta <mattias@paivarinta.se>
2026-03-04 11:32:42 +01:00
Mats Dufberg 718b448594 Updates Changes and version 2026-03-03 15:51:22 +01:00
tgreenxandGitHub 30d3d9ca49 Merge pull request #534 from tgreenx/gui-fixes
Various GUI fixes
2026-03-02 14:55:09 +01:00
[Thomas Green] 95a4d135e0 Update unit testing documentation
- Remove disclaimer
- Match Playwright version with the one in `package.json`
- Remove outdated "Test server" section
2026-02-19 17:33:43 +01:00
[Thomas Green] da02fbdaf0 Update documentation related to internationalization (relates to #521) 2026-02-19 17:27:24 +01:00
[Thomas Green] 4f73a86d62 Make layout for the FAQ page narrower 2026-02-17 10:45:36 +01:00
5dbccb492b Handle mapping of undefined languages
Co-authored-by: Marc van der Wal <103426270+marc-vanderwal@users.noreply.github.com>
2026-02-16 12:08:29 +01:00
[Thomas Green] 2a87ea3b73 Various CSS fixes 2026-02-12 15:22:21 +01:00
[Thomas Green] 70d8b83d78 Update the list of available DNSSEC algorithms 2026-02-12 15:22:21 +01:00
[Thomas Green] 165167c5dd Fix displayed ordering of values in Options drop-down lists, especially in case of a form reset 2026-02-12 15:22:14 +01:00
[Thomas Green] b6ea271281 Add automatic browser redirect to default language 2026-02-10 13:23:07 +01:00
[Thomas Green] 7cf3994717 Add missing trailing slash when switching languages for paths without language 2026-02-10 13:20:29 +01:00
[Thomas Green] f6ad766310 Only display enabled languages in the language switcher 2026-02-10 13:14:47 +01:00
[Thomas Green] 26db5cbdf8 Add form/data validation for DS records option 2026-02-10 13:10:31 +01:00
[Thomas Green] 4c6afc6ac1 Move closing chevron in history tab 2026-02-10 13:05:18 +01:00
[Thomas Green] 85c0241f1f Fix CSS loading order; theme should load after default style.css 2026-02-10 12:02:06 +01:00
Mats DufbergandGitHub 2007b9edfd Merge pull request #527 from zonemaster/develop
Merge develop branch into master (zonemaster-gui)
2025-12-19 14:08:27 +01:00
Mats DufbergandGitHub fc82b7c0cc Merge pull request #524 from matsduf/preparation-release-v2025.2
Preparation for release v2025.2 (Zonemaster-GUI)
2025-12-18 16:20:18 +01:00
Mats Dufberg 023cba1db9 Editorial change 2025-12-18 16:19:24 +01:00
tgreenxandGitHub 46bdf5ff49 Merge pull request #526 from sewebb/fix-filter
Fix filter
2025-12-18 15:07:33 +01:00
2fa9421805 Apply suggestions from review
Co-authored-by: tgreenx <96772376+tgreenx@users.noreply.github.com>
2025-12-18 13:24:00 +01:00
Tobias Bleckert deef66a530 Simplify and make filtered result reactive 2025-12-18 13:19:13 +01:00
Tobias Bleckert 692f1dc5b6 Since we now set trailingSlash: "always", we need to add a trailing slash to result and history URLs. 2025-12-18 13:01:47 +01:00
Mats DufbergandGitHub b2701f401d Merge pull request #511 from zonemaster/releases/ssg-standalone-components
Static new GUI
2025-12-18 11:47:25 +01:00
60a78629a2 Apply suggestions from review
Co-authored-by: Marc van der Wal <103426270+marc-vanderwal@users.noreply.github.com>
2025-12-16 15:36:51 +01:00
Mats Dufberg e76d6bba8f Preparation for release v2025.2 2025-12-16 14:23:28 +01:00
tgreenxandGitHub ffc9eb35f3 Merge pull request #507 from tgreenx/new-gui-translation-da
New GUI: Danish translation
2025-12-16 10:48:58 +01:00
Mats DufbergandGitHub 7594300a1e Merge pull request #521 from sewebb/replace-paraglide
Replace paraglide
2025-12-16 09:56:16 +01:00
bc332a8683 Handle subdirectories when parsing language in middleware
Co-authored-by: Marc van der Wal <103426270+marc-vanderwal@users.noreply.github.com>
2025-12-15 21:49:27 +01:00
Tobias Bleckert bac77d1262 Updated patches 2025-12-15 21:49:27 +01:00
Tobias Bleckert 327a1e81bb Upgraded Astro 2025-12-15 21:49:27 +01:00
Tobias Bleckert da9ce5be23 Refactor message generation and validation logic 2025-12-15 21:49:27 +01:00
Tobias Bleckert 627f2664b0 Add isValidLocale utility and validate locale before setting 2025-12-15 21:49:27 +01:00
Tobias Bleckert d17203de92 Custom i18n solution to replace paraglide 2025-12-15 21:49:25 +01:00
tgreenxandGitHub 23e8eec0ce Merge pull request #506 from tgreenx/new-gui-translation-sl
New GUI: Slovenian translation
2025-12-15 16:15:33 +01:00
Mats DufbergandGitHub f3dbf6d0be Merge pull request #523 from sewebb/rerender-tests-correctly
Rerender tests correctly
2025-12-15 16:07:58 +01:00
[Thomas Green] c89ab9ff91 Update unit test for Slovenian 2025-12-15 14:50:51 +01:00
ea91f01cca Apply suggestions from code review
Co-authored-by: Benjamin Zwittnig <benjamin.zwittnig@register.si>
2025-12-15 14:43:55 +01:00
Tobias Bleckert 311e1d9606 Use a derived value for result so we always have the latest data 2025-12-15 13:33:17 +01:00
Tobias Bleckert 65aff9506b Use language prefix when navigating in history dialog 2025-12-15 13:33:15 +01:00
tgreenxandGitHub a783f5b154 Merge pull request #508 from tgreenx/new-gui-translation-es
New GUI: Spanish translation
2025-12-15 10:35:08 +01:00
Marc van der WalandGitHub f415d0ae03 Merge pull request #520 from marc-vanderwal/bugfix/gui-from-subdirectory
Allow serving the GUI from a subdirectory
2025-12-15 10:25:49 +01:00