Skip to content

Commit 2007b9e

Browse files
authored
Merge pull request #527 from zonemaster/develop
Merge develop branch into master (zonemaster-gui)
2 parents c22ea99 + fc82b7c commit 2007b9e

File tree

421 files changed

+33623
-35001
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

421 files changed

+33623
-35001
lines changed

.editorconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ root = true
44
[*]
55
charset = utf-8
66
indent_style = space
7-
indent_size = 2
7+
indent_size = 4
88
insert_final_newline = true
99
trim_trailing_whitespace = true
1010

.env.example

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
PUBLIC_BASE_URL="/"
2+
PUBLIC_API_URL="/api"
3+
PUBLIC_POLLING_INTERVAL=5000

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020

2121
- uses: actions/setup-node@v3
2222
with:
23-
node-version: 18.x
23+
node-version: 24.x
2424
cache: npm
2525

2626
- name: Install dependencies

.gitignore

Lines changed: 28 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,25 @@
11
# See http://help.github.com/ignore-files/ for more about ignoring files.
22

3-
# compiled output
4-
/dist
5-
/dist-electron
6-
/release-builds
7-
/tmp
8-
/out-tsc
3+
# build output
4+
dist/
5+
public/
96

10-
11-
# Application onfiguration
12-
/src/assets/app.config.json
7+
# generated types
8+
.astro/
139

1410
# dependencies
1511
/node_modules
1612

13+
# logs
14+
npm-debug.log*
15+
yarn-debug.log*
16+
yarn-error.log*
17+
pnpm-debug.log*
18+
19+
# environment variables
20+
.env
21+
.env.production
22+
1723
# IDEs and editors
1824
/.idea
1925
.project
@@ -22,44 +28,31 @@
2228
*.launch
2329
.settings/
2430
*.sublime-workspace
25-
26-
# IDE - VSCode
2731
.vscode/*
2832
!.vscode/settings.json
2933
!.vscode/tasks.json
3034
!.vscode/launch.json
3135
!.vscode/extensions.json
3236

33-
# misc
34-
/.angular/cache
35-
/.sass-cache
36-
/connect.lock
37-
/coverage
38-
/libpeerconnection.log
39-
npm-debug.log
40-
testem.log
41-
/typings
42-
4337
# e2e
4438
/e2e/*.js
4539
/e2e/*.map
4640
.tmp
47-
48-
# System Files
49-
.DS_Store
50-
Thumbs.db
51-
52-
*.zip
53-
54-
# Generated FAQ files
55-
src/assets/faqs/gui-faq-*.html
56-
57-
*.log
58-
tests_output/
5941
.e2e-chrome-profile/
6042

6143
# Emacs backup files
6244
*~
6345

64-
# Generated by e2e
65-
/test-results
46+
# Playwright
47+
node_modules/
48+
/test-results/
49+
/playwright-report/
50+
/blob-report/
51+
/playwright/.cache/
52+
vendor/
53+
54+
# OS
55+
.DS_store
56+
57+
*storybook.log
58+
*.zip

.prettierignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
/*
2+
!/src

.prettierrc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"plugins": ["prettier-plugin-astro", "prettier-plugin-svelte"],
3+
"singleQuote": true,
4+
"tabWidth": 4,
5+
"useTabs": false
6+
}

.vscode/settings.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
{
2+
}

CONTRIBUTE.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Contribute
2+
3+
Thank you for considering contributing to Zonemaster GUI! This document provides guidelines for contributing to the project.
4+
5+
## Project Overview
6+
7+
Zonemaster GUI is built with:
8+
- [Astro](https://astro.build/) as the main framework
9+
- [Svelte](https://svelte.dev/) for UI components
10+
- [TypeScript](https://www.typescriptlang.org/) for type safety
11+
12+
## Development Setup
13+
14+
1. Clone the repository
15+
2. Install dependencies:
16+
```bash
17+
npm install
18+
```
19+
3. Start the development server:
20+
```bash
21+
npm run dev
22+
```
23+
24+
## Code Style
25+
26+
We use [Prettier](https://prettier.io/) for code formatting with the following configuration:
27+
- Single quotes
28+
- 4 spaces for indentation
29+
- No tabs
30+
31+
To format your code:
32+
```bash
33+
npx prettier --write .
34+
```
35+
36+
## Testing
37+
38+
We use [Playwright](https://playwright.dev/) for end-to-end testing. Tests are located in the `e2e` directory.
39+
40+
To run tests:
41+
```bash
42+
npm run e2e
43+
```
44+
45+
## GUI Modifications
46+
47+
Zonemaster GUI is designed to be cloned and customized for theming purposes. When making changes to the GUI, please be mindful of the following:
48+
49+
- **Be careful when renaming CSS class names** - Many themes may depend on these class names
50+
- **Avoid deleting, renaming, or moving template files** without proper deprecation notices
51+
- **Consider backward compatibility** when modifying component structures
52+
- **Document any breaking changes** that might affect custom themes
53+
54+
While it's ultimately up to theme creators to handle conflicts when syncing with the main repository, we should minimize disruption where possible. For more information on theming, see the [THEMING.md](docs/THEMING.md) document.
55+
56+
## Pull Request Process
57+
58+
1. Fork the repository
59+
2. Create a feature branch
60+
3. Make your changes
61+
4. Ensure tests pass
62+
5. Submit a pull request
63+
64+
## Code of Conduct
65+
66+
Please be respectful and considerate of others when contributing to this project.

Changes

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,30 @@
11
Release history for Zonemaster component Zonemaster-GUI
22

3+
v5.0.0 2025-12-17 (part of Zonemaster v2025.2 release)
4+
5+
[Release information]
6+
- The GUI in this release has been completely rewritten. The changes
7+
primarily focused on the underlying technologies, while the look and
8+
feel remains only slightly altered due to various accessibility improvements.
9+
From this version on, Zonemaster-GUI supports complete customization of the
10+
GUI. You can find more information and a how-to in the documentation.
11+
12+
[Breaking changes]
13+
- The GUI API has changed. It has no longer support for starting a
14+
test directly from the URL. You will find more information in the
15+
documentation on using the GUI.
16+
- Configuration done in "app.config.json" for Zonemaster-GUI, which was
17+
run-time configuration, needs to be migrated. Most of that configuration
18+
has now become build-time configuration. See documents related to
19+
configuring the GUI.
20+
21+
[Features]
22+
- Rewritten GUI (#511, #514, #516, #517, #519, #520, #521, #523, #526)
23+
24+
[Fixes]
25+
- Ported and updated translation of messages and FAQ for the new GUI
26+
(#502, #503, #505, #506, #507, #508, #518)
27+
328

429
v4.4.0 2025-03-04 (part of Zonemaster v2024.2.1 release)
530

@@ -64,7 +89,7 @@ v4.1.1 2023-09-08 (public fix version)
6489

6590
[Fixes]
6691
- Corrects documentation links in FAQ for all languages
67-
(#433)
92+
(#433)
6893

6994

7095
v4.1.0 2023-06-21 (public release version)
@@ -344,4 +369,3 @@ v2.0.0 2018-06-25
344369
- The old Zonemaster-GUI is deprecated, and can, for the time being,
345370
still be found in the old repository,
346371
https://github.com/dotse/zonemaster-gui
347-

README.md

Lines changed: 29 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,53 @@
11
# Zonemaster Web GUI [![CI status](https://github.com/zonemaster/zonemaster-gui/actions/workflows/ci.yml/badge.svg)](https://github.com/zonemaster/zonemaster-gui/actions/workflows/ci.yml)
22

3+
## Overview
34

4-
### Purpose
5+
Zonemaster GUI is the web interface component of the Zonemaster project, a tool designed for DNS validation and testing. For a comprehensive overview of the Zonemaster software, please see the [Zonemaster repository].
56

6-
This module is the Web Interface part of the Zonemaster project. For an
7-
overview of the Zonemaster software, please see the [Zonemaster repository].
7+
## Prerequisites
88

9-
### Prerequisites
9+
Before installing the Zonemaster GUI, ensure you have the Zonemaster Engine and Zonemaster-Backend setup. Refer to the [Zonemaster-Engine installation] and [Zonemaster-Backend installation] documents.
1010

11-
Before you install the Zonemaster Web GUI module, you need the Zonemaster
12-
Engine test framework installed. Please see the [Zonemaster-Engine
13-
installation] document.
11+
## Installation
1412

15-
You also need a running Zonemaster-Backend component. Please see the
16-
[Zonemaster-Backend installation] document.
13+
There are two ways to install the Zonemaster GUI:
1714

18-
### Installation
15+
### Quick Install (1 minute)
16+
Download the release zip file, upload to your web server, and configure.
1917

20-
Follow the detailed [installation instructions].
18+
### Full Customization (5 minutes)
19+
Clone the repository, build, and deploy.
2120

22-
### Configuration
21+
For detailed instructions, see [INSTALL.md](docs/INSTALL.md).
2322

24-
The configuration instructions for the Backend can be found in the [Backend
25-
configuration] document.
23+
## Development
2624

27-
The configuration instructions for the GUI can be found in the [GUI
28-
configuration] document.
25+
To set up your development environment:
2926

30-
### Documentation
27+
1. Clone the repository
28+
2. Run `npm install`
29+
3. Run `cp .env.example .env`
30+
4. Set the URL to your Zonemaster backend in the `.env` file
31+
5. Run `npm run dev`
3132

32-
There is a [public documentation]. Some more specific documents can be found in
33-
the [docs directory](docs/).
33+
## Documentation
3434

35-
### Contribution
35+
Refer to the [docs](/docs) directory for detailed information on:
36+
- Installation and configuration
37+
- Theming and customization
38+
- Translation guide
39+
- Testing
40+
- UI documentation
3641

37-
This project was generated with Angular-CLI 1.6.8.
38-
It uses the Angular 2+ framework with all its tools.
39-
40-
The source code of the application is available in `./src/app` folder.
41-
42-
The `components` folder is composed of subfolders that represent the main
43-
components. Each folder of component contain three files:
44-
45-
* `*.component.css`: the component's style configuration;
46-
* `*.component.html`: the component's HTML code;
47-
* `*.component.ts`: the component's TypeScript code.
48-
49-
All assets are available in the `src/assets` folder. It is split by concern;
50-
the style configurations are in the `css`, images are in the `images` folder, etc.
51-
52-
All translation files are in the `src/locale` folder.
53-
54-
The environment defaults of the application are in the `src/environments`
55-
folder. `environment.ts` is used for development purposes, the
56-
`environment.prod.ts` for production, and the `environment.test.ts` for testing.
57-
58-
In order to contribute:
59-
60-
* Install [Nodejs](https://nodejs.org)
61-
* Fork the Zonemaster GUI repository on Github into your own user on Github.
62-
* Clone your fork to your working environment.
63-
* Go to the folder and install project dependencies with `npm install`
64-
* Update configuration files in `src/assets/app.config.json` to add a Backend
65-
API endpoint (or leave the default)
66-
* Make your changes, test them and push them to your fork on Github
67-
* From your fork, make a Pull Request against the zonemaster/zonemaster-gui
68-
repository. Please always make the Pull Request against the develop branch.
69-
* Thank you for your contribution!
70-
71-
#### Development server
72-
73-
Run `npm start` for a dev server. Navigate to `http://localhost:4200/en`.
74-
The app will automatically reload if you change any of the source files.
75-
76-
#### Build
77-
78-
Run `npm run build` to build the project. The build artifacts will be stored in the `dist/` directory.
79-
80-
#### Test
81-
82-
See [Testing](docs/Testing.md).
42+
For contribution guidelines, see [CONTRIBUTE.md](CONTRIBUTE.md).
8343

8444
## License
8545

86-
This is free software under a 2-clause BSD license. The full text of the license can
87-
be found in the [LICENSE](LICENSE) file included in this respository.
46+
This is free software under a 2-clause BSD license. The full text of the license can be found in the [LICENSE](LICENSE) file included in this repository.
8847

89-
Images `src/assets/images/person_looking_at_computer.svg` and `src/assets/images/world_connected.svg`
90-
are taken from <https://undraw.co>, [full license](https://undraw.co/license).
48+
Images `src/assets/images/person_looking_at_computer.svg` and `src/assets/images/world_connected.svg` are taken from <https://undraw.co>, [full license](https://undraw.co/license).
9149

50+
Images `src/assets/images/person_looking_at_computer.svg` and `src/assets/images/world_connected.svg` are taken from <https://undraw.co>, [full license](https://undraw.co/license).
9251

9352
[Backend Configuration]: https://github.com/zonemaster/zonemaster/blob/master/docs/public/configuration/backend.md
9453
[GUI Configuration]: https://github.com/zonemaster/zonemaster/blob/master/docs/public/configuration/gui.md

0 commit comments

Comments
 (0)