1
0
mirror of https://gitlab.nic.cz/turris/reforis/foris-js.git synced 2025-06-16 13:46:16 +02:00

Compare commits

...

33 Commits

Author SHA1 Message Date
ede4fb0212 Merge branch 'dev' into 'master'
Dev

See merge request turris/reforis/foris-js!271
2025-02-20 12:56:13 +01:00
33add77704 Merge branch 'bump-version-662' into 'dev'
Bump v6.6.2

See merge request turris/reforis/foris-js!270
2025-02-20 12:53:59 +01:00
456cbcfeec Bump v6.6.2
* Enhance SubmitButton component to accept a custom label prop
* Refactor RichTable component to remove forwardRef and simplify data handling
2025-02-20 12:42:10 +01:00
bf0b2ce70c Merge branch 'refactor-richtable' into 'dev'
Refactor RichTable

See merge request turris/reforis/foris-js!269
2025-02-19 16:20:47 +01:00
1441f6ff5a Enhance SubmitButton component to accept a custom label prop and update copyright year 2025-02-19 16:17:05 +01:00
c7d0655771 Refactor RichTable component to remove forwardRef and simplify data handling 2025-02-19 16:17:04 +01:00
7197813cc9 Merge branch 'dev' into 'master'
Dev

See merge request turris/reforis/foris-js!268
2025-02-17 16:16:10 +01:00
31cb8e2ae0 Merge branch 'bump-version-661' into 'dev'
Bump v6.6.1

See merge request turris/reforis/foris-js!267
2025-02-17 16:12:27 +01:00
0a75f24a04 Bump v6.6.1
* Refactor RichTable component to use forwardRef
2025-02-17 16:07:50 +01:00
230ae8e35b Merge branch 'improve-richtable' into 'dev'
Refactor RichTable component to use forwardRef and useImperativeHandle for improved data handling

See merge request turris/reforis/foris-js!266
2025-02-17 15:42:41 +01:00
eb4ffb0651 Refactor RichTable component to use forwardRef
And useImperativeHandle for improved data handling.
2025-02-13 16:30:23 +01:00
2f249ce3dc Merge branch 'dev' into 'master'
Dev

See merge request turris/reforis/foris-js!265
2025-02-07 14:46:24 +01:00
74722b8ff3 Merge branch 'bump-version-660' into 'dev'
Bump v6.6.0

See merge request turris/reforis/foris-js!264
2025-02-07 14:43:20 +01:00
a2f9b3bfab Bump v6.6.0
* Added & updated Weblate translations
* Added Wi-Fi and LAN settings URLs to ForisURLs
* Added Wi-Fi modes VHT/HE 80+80
* Added encryption selection to WiFiGuestForm
* Added optional close button to ModalHeader component
* Updated Wi-Fi API
* Enhanced NumberInput component with keyboard & touch accessibility
* Refactored pagination condition in RichTable component
2025-02-07 14:41:13 +01:00
2ab65be0bf Merge branch 'sync-master-dev' into 'dev'
Add Wi-Fi and LAN settings URLs to ForisURLs

See merge request turris/reforis/foris-js!262
2025-02-07 13:50:13 +01:00
36a7b4dfda Add Wi-Fi and LAN settings URLs to ForisURLs 2025-02-07 13:45:13 +01:00
9fb0871cfc Merge branch 'update-translations' into 'dev'
Add & update Weblate translations

See merge request turris/reforis/foris-js!263
2025-02-07 13:39:10 +01:00
c7087eabf2 Merge branch 'feature/add-wifi-ht-modes-80-80' into 'dev'
Add wifi modes VHT/HE 80+80

See merge request turris/reforis/foris-js!260
2025-01-21 14:36:23 +01:00
b315ea2fd0 Add wifi modes VHT/HE 80+80 2025-01-21 16:33:02 +03:00
d46629a1bd Translated using Weblate (Greek)
Currently translated at 8.5% (7 of 82 strings)

Translation: Turris/Foris JS
Translate-URL: https://hosted.weblate.org/projects/turris/foris-js/el/
2025-01-18 12:00:39 +01:00
8ddb590ba8 Translated using Weblate (Greek)
Currently translated at 7.3% (6 of 82 strings)

Translation: Turris/Foris JS
Translate-URL: https://hosted.weblate.org/projects/turris/foris-js/el/
2025-01-17 11:02:24 +01:00
1c2a4518d3 Translated using Weblate (Greek)
Currently translated at 6.0% (5 of 82 strings)

Translation: Turris/Foris JS
Translate-URL: https://hosted.weblate.org/projects/turris/foris-js/el/
2025-01-17 10:53:06 +01:00
b6312075d2 Translated using Weblate (Slovak)
Currently translated at 100.0% (82 of 82 strings)

Translation: Turris/Foris JS
Translate-URL: https://hosted.weblate.org/projects/turris/foris-js/sk/
2024-12-14 10:00:19 +00:00
2feedec8d1 Translated using Weblate (French)
Currently translated at 78.0% (64 of 82 strings)

Translation: Turris/Foris JS
Translate-URL: https://hosted.weblate.org/projects/turris/foris-js/fr/
2024-12-14 10:00:19 +00:00
e8e81b36dc Translated using Weblate (French)
Currently translated at 68.2% (56 of 82 strings)

Translation: Turris/Foris JS
Translate-URL: https://hosted.weblate.org/projects/turris/foris-js/fr/
2024-12-11 10:24:36 +01:00
53c7bb1a10 Translated using Weblate (Czech)
Currently translated at 100.0% (82 of 82 strings)

Translation: Turris/Foris JS
Translate-URL: https://hosted.weblate.org/projects/turris/foris-js/cs/
2024-12-11 10:24:35 +01:00
fb1f79c6c1 Translated using Weblate (German)
Currently translated at 100.0% (71 of 71 strings)

Translation: Turris/Foris JS
Translate-URL: https://hosted.weblate.org/projects/turris/foris-js/de/
2024-12-11 10:24:34 +01:00
eafbc01c73 Merge branch 'feature/wifi-API-update' into 'master'
WiFi API update

See merge request turris/reforis/foris-js!252
2024-12-11 10:24:28 +01:00
73819809f4 WiFi API update
Deprecated option `hwmode=11g/11a` was replaced by `band=2g/5g/6g`
2024-12-11 10:10:23 +01:00
30fd6f91b4 Merge branch 'dev' into 'master'
Dev

See merge request turris/reforis/foris-js!256
2024-11-13 14:24:26 +01:00
14b90bbbd4 Merge branch 'dev' into 'master'
Dev

See merge request turris/reforis/foris-js!251
2024-10-02 14:35:17 +02:00
c0fd0adbc9 Merge branch 'dev' into 'master'
Dev

See merge request turris/reforis/foris-js!248
2024-09-27 15:48:49 +02:00
a7a4e76cd1 Merge branch 'dev' into 'master'
Dev

See merge request turris/reforis/foris-js!245
2024-09-25 16:22:09 +02:00
16 changed files with 443 additions and 423 deletions

View File

@ -8,405 +8,434 @@ and this project adheres to
## [Unreleased]
## [6.6.2] - 2025-02-20
### Changed
- Enhanced SubmitButton component to accept a custom label prop
- Refactored RichTable component to remove forwardRef and simplify data handling
## [6.6.1] - 2025-02-17
### Changed
- Refactored RichTable component to use forwardRef
## [6.6.0] - 2025-02-07
### Added
- Added & updated Weblate translations
- Added Wi-Fi and LAN settings URLs to ForisURLs
- Added Wi-Fi modes VHT/HE 80+80
- Added encryption selection to WiFiGuestForm
- Added optional close button to ModalHeader component
### Changed
- Updated Wi-Fi API
- Enhanced NumberInput component with keyboard & touch accessibility
- Refactored pagination condition in RichTable component
## [6.5.0] - 2024-11-13
### Added
- Added & updated Weblate translations
- Added RichTable component with pagination and sorting
- Added @tanstack/react-table v8.20.5 to dependencies
- Added & updated Weblate translations
- Added RichTable component with pagination and sorting
- Added @tanstack/react-table v8.20.5 to dependencies
### Changed
- Updated documentation
- Replaced RebootButton with ActionButtonWithModal component
- Fixed import path for CustomizationContextMock in customTestRender.js
- Updated documentation
- Replaced RebootButton with ActionButtonWithModal component
- Fixed import path for CustomizationContextMock in customTestRender.js
## [6.4.0] - 2024-10-02
### Changed
- Refactored Alert component to include dismiss animation and timeout
- Refactored ThreeDotsMenu component to include additional props
- Refactored Alert component to include dismiss animation and timeout
- Refactored ThreeDotsMenu component to include additional props
## [6.3.0] - 2024-09-27
### Added
- Added ThreeDotsMenu component
- Added ThreeDotsMenu component
### Changed
- Refactored EmailInput description
- Refactored RadioSet & ignore Radio component
- Refactored npm package badge in introduction.md
- NPM audit fix
- Refactored EmailInput description
- Refactored RadioSet & ignore Radio component
- Refactored npm package badge in introduction.md
- NPM audit fix
## [6.2.1] - 2024-09-25
### Added
- Added & updated Weblate translations
- Added & updated Weblate translations
### Changed
- Refactored CopyInput component
- Refactored ForisURLs to include new URLs for Overview page
- Refactored CopyInput component
- Refactored ForisURLs to include new URLs for Overview page
## [6.2.0] - 2024-09-20
### Added
- Added useFocusTrap hook
- Added extendSession endpoint
- Added useFocusTrap hook
- Added extendSession endpoint
### Changed
- Refactored Spinner.css to use CSS variable for color
- Refactored Modal component to use useFocusTrap hook
- Refactored Alert component to use useFocusTrap hook
- Refactored Spinner.css to use CSS variable for color
- Refactored Modal component to use useFocusTrap hook
- Refactored Alert component to use useFocusTrap hook
## [6.1.1] - 2024-08-30
### Added
- Added & updated Weblate translations
- Added & updated Weblate translations
### Changed
- Updated icon color classes to use "text-secondary" instead of "text-dark"
- Updated Wi-Fi QRCodeModal component to use new styles & added close button
- Refactored WiFiGuestForm component to get rid of obsolete div element
- NPM audit fix
- Updated icon color classes to use "text-secondary" instead of "text-dark"
- Updated Wi-Fi QRCodeModal component to use new styles & added close button
- Refactored WiFiGuestForm component to get rid of obsolete div element
- NPM audit fix
## [6.1.0] - 2024-08-23
### Added
- Added & updated Weblate translations
- Added & updated Weblate translations
### Changed
- Migrated to Font Awesome v6
- NPM audit fix
- Migrated to Font Awesome v6
- NPM audit fix
## [6.0.3] - 2024-07-26
### Changed
- Updated WiFiQRCode component
- Updated WiFiQRCode component
## [6.0.2] - 2024-06-28
### Added
- Added className prop to CheckBox and Radio components
- Added className prop to CheckBox and Radio components
## [6.0.1] - 2024-06-26
### Added
- Added className prop to Switch component
- Added className prop to Switch component
### Changed
- Updated dependencies in package.json
- NPM audit fix
- Updated dependencies in package.json
- NPM audit fix
## [6.0.0] - 2024-06-11
### Added
- Added CHANGELOG.md
- Added JS_DIR variable to Makefile
- Added support for shared reForis ESLint configuration
- Added CHANGELOG.md
- Added JS_DIR variable to Makefile
- Added support for shared reForis ESLint configuration
### Changed
- Updated dependencies in package.json
- Updated Spinner.css styles for better positioning and responsiveness
- Migrated to Bootstrap 5
- NPM audit fix
- Other small improvements
- Updated dependencies in package.json
- Updated Spinner.css styles for better positioning and responsiveness
- Migrated to Bootstrap 5
- NPM audit fix
- Other small improvements
## [5.6.1] - 2024-01-19
- Added & updated Weblate translations
- Fixed loading state & button's layout
- Updated bootstrap library to version 4.6.2
- Used custom reforis-image in GitLab CI/CD
- NPM audit fix
- Added & updated Weblate translations
- Fixed loading state & button's layout
- Updated bootstrap library to version 4.6.2
- Used custom reforis-image in GitLab CI/CD
- NPM audit fix
## [5.6.0] - 2022-12-29
- Add & update Weblate translations
- Add CustomizationContext and custom hook
- Update caniuse-lite
- Remove testUtils from .gitignore
- Make ieee80211w_disabled as optional in WiFiForm
- Move contexts in a context folder
- NPM audit fix
- Add & update Weblate translations
- Add CustomizationContext and custom hook
- Update caniuse-lite
- Remove testUtils from .gitignore
- Make ieee80211w_disabled as optional in WiFiForm
- Move contexts in a context folder
- NPM audit fix
## [5.5.0] - 2022-12-02
- Add & update translations
- Add a switch to disable Management Frame Protection (802.11w)
- Improved Foris JS documentation
- NPM audit fix
- Add & update translations
- Add a switch to disable Management Frame Protection (802.11w)
- Improved Foris JS documentation
- NPM audit fix
## [5.4.1] - 2022-06-03
- Add Weblate translations
- Update PropType peer dependency
- NPM audit fix
- Add Weblate translations
- Update PropType peer dependency
- NPM audit fix
## [5.4.0] - 2022-05-20
- Add & update translations
- Add CopyInput bootstrap component
- Update WiFiForm labels and description for wifi ax
- Make WS path in lighttpd mode configurable
- Fix Wi-Fi password helptext string
- NPM audit fix
- Add & update translations
- Add CopyInput bootstrap component
- Update WiFiForm labels and description for wifi ax
- Make WS path in lighttpd mode configurable
- Fix Wi-Fi password helptext string
- NPM audit fix
## [5.3.0] - 2022-02-21
- Added & update translations
- Added rest of the props to DownloadButton component
- Added hostname validation
- Added wifi 802.11ax HE modes
- Set best Wi-Fi HT mode depending on the checked frequency
- Improved domain name RegEx pattern
- Removed customOrder prop in Select component
- Fixed Wi-Fi translation strings
- Fixed autocomplete attribute in PasswordInput
- Fixed WiFi password max length check
- Fixed documentation build
- Fixed access token in publish script
- Refined & restructure Makefile
- Updated GitLab CI image to Node.js v16
- NPM update (several dependencies)
- NPM audit fix
- Added & update translations
- Added rest of the props to DownloadButton component
- Added hostname validation
- Added wifi 802.11ax HE modes
- Set best Wi-Fi HT mode depending on the checked frequency
- Improved domain name RegEx pattern
- Removed customOrder prop in Select component
- Fixed Wi-Fi translation strings
- Fixed autocomplete attribute in PasswordInput
- Fixed WiFi password max length check
- Fixed documentation build
- Fixed access token in publish script
- Refined & restructure Makefile
- Updated GitLab CI image to Node.js v16
- NPM update (several dependencies)
- NPM audit fix
## [5.2.0] - 2021-12-15
- Remove login page
- NPM audit fix
- Remove login page
- NPM audit fix
## [5.1.16] - 2021-11-18
- Revert bad NPM audit fix
- NPM audit fix
- Revert bad NPM audit fix
- NPM audit fix
## [5.1.15] - 2021-11-03
- Add WPA3 option
- Add custom order ability of Select options
- NPM audit fix
- Add WPA3 option
- Add custom order ability of Select options
- NPM audit fix
## [5.1.14] - 2021-07-30
- Add & update translations
- Fix infinity redirect loop when WS error occurs
- NPM audit fix
- Add & update translations
- Fix infinity redirect loop when WS error occurs
- NPM audit fix
## [5.1.13] - 2021-06-30
- Add sentinelAgreement endpoint to forisUrls
- NPM audit fix
- Add sentinelAgreement endpoint to forisUrls
- NPM audit fix
## [5.1.12] - 2021-05-14
- Add & update translations
- Add & fix obsolete links
- Expend library with the ResetWifiSettings function
- Fix switching Wi-Fi modes depending on bands in WiFiForm
- Fix translation sources in WiFiForm
- NPM audit fix
- Other small improvements
- Add & update translations
- Add & fix obsolete links
- Expend library with the ResetWifiSettings function
- Fix switching Wi-Fi modes depending on bands in WiFiForm
- Fix translation sources in WiFiForm
- NPM audit fix
- Other small improvements
## [5.1.11] - 2021-01-04
- Remove duplicated file for Norwegian language
- Fix translations inconsistency
- Remove duplicated file for Norwegian language
- Fix translations inconsistency
## [5.1.10] - 2021-12-29
- Add and update translations
- Add and update translations
## [5.1.9] - 2021-12-20
- Increase bottom margin of formFieldsSize
- Change formFieldsSize of ResetWiFiSettings card
- Fix trailing space in Modal classes
- Increase bottom margin of formFieldsSize
- Change formFieldsSize of ResetWiFiSettings card
- Fix trailing space in Modal classes
## [5.1.8] - 2020-12-19
- Add isPluginInstalled function
- Add isPluginInstalled function
## [5.1.7] - 2020-11-27
## [5.1.6] - 2020-11-25
- NPM audit fix
- Add displayCard function to utils
- Add optional sizes to Modal
- Add information about optional sizes to docs
- Remove redundant merge.py
- NPM audit fix
- Add displayCard function to utils
- Add optional sizes to Modal
- Add information about optional sizes to docs
- Remove redundant merge.py
## [5.1.5] - 2020-09-25
- Fix DateTime import
- Fix extra empty space in Switch's classes
- Fix DateTime import
- Fix extra empty space in Switch's classes
## [5.1.4] - 2020-09-25
- Add inline option to Wi-Fi's RadioSet
- Fix Alert's dismissible class condition
- Add closing bootstrap modal using ESC
- Change reboot modal's heading to "Warning!"
- Add inline option to Wi-Fi's RadioSet
- Fix Alert's dismissible class condition
- Add closing bootstrap modal using ESC
- Change reboot modal's heading to "Warning!"
## [5.1.3] - 2020-09-11
- Add SSID validation for 32 bytes length
- Add helpText for SSID input
- Add SSID validation for 32 bytes length
- Add helpText for SSID input
## [5.1.2] - 2020-09-08
- Fix infinity loop caused by WebSockets
- Resolve small issues
- Fix infinity loop caused by WebSockets
- Resolve small issues
## [5.1.1] - 2020-08-31
- Add "inline" option to RadioSet
- NPM audit fix
- Add "inline" option to RadioSet
- NPM audit fix
## [5.1.0] - 2020-08-25
- Add new Switch component
- Swap checkboxes for switches on Wi-Fi page
- Decrease button width on different breakpoints
- Add integration of Prettier + ESLint + reForis Style Guide
- Add appropriate links to dropdown headers
- Add semantic & accessibility structure for headings
- NPM audit & Update packages
- GitLab CI: image update to node 10
- Add new Switch component
- Swap checkboxes for switches on Wi-Fi page
- Decrease button width on different breakpoints
- Add integration of Prettier + ESLint + reForis Style Guide
- Add appropriate links to dropdown headers
- Add semantic & accessibility structure for headings
- NPM audit & Update packages
- GitLab CI: image update to node 10
## [5.0.3] - 2020-09-23
- Fixes issue with WebSockets
- Fixes issue with WebSockets
## [5.0.2] - 2020-09-22
- Fix infinity loop caused by WebSockets
- Fix infinity loop caused by WebSockets
## [5.0.1] - 2020-07-21
- Fix Wi-Fi Form
- NPM audit fix & update of packages
- Fix Wi-Fi Form
- NPM audit fix & update of packages
## [5.0.0] - 2020-05-07
- I've realized that it should be major update due to broken API.
- I've realized that it should be major update due to broken API.
## [4.5.1] - 2020-05-07
- Add initialData to ForisForm children.
- Update translations .pot file.
- Add initialData to ForisForm children.
- Update translations .pot file.
## [4.5.0] - 2020-03-25
- Use exposed pdfmake.
- NPM audit fix & update of packages.
- Use exposed pdfmake.
- NPM audit fix & update of packages.
## [4.4.0] - 2020-03-13
- Update domain validation.
- Update domain validation.
## [4.3.1] - 2020-03-06
- Add logout link.
- Add logout link.
## [4.3.0] - 2020-02-26
- Allow RadioSet accept elements as children.
- Add option to make modal scrollable.
- Allow RadioSet accept elements as children.
- Add option to make modal scrollable.
## [4.2.0] - 2020-02-21
- Add translations.
- Improve datatime localization.
- Add translations.
- Improve datatime localization.
## [4.1.0] - 2020-02-20
- Added date and time utilities.
- Added date and time utilities.
## [4.0.0] - 2020-02-20
- Throw an error if unhandled exception happens during API request.
- Throw an error if unhandled exception happens during API request.
## [3.4.0] - 2020-02-17
- Display actual GET error response within the form.
- Added styles extracted from reForis.
- Added reference to form element (for programmatically submitting it).
- Display actual GET error response within the form.
- Added styles extracted from reForis.
- Added reference to form element (for programmatically submitting it).
## [3.2.0] - 2020-01-17
- Swapped react-router with react-router-dom. Prepared Foris JS for using
react-router-dom exposed by reForis.
- Added controller ID filter to WebSocket hook.
- Updated translation messages after moving WiFi form.
- Increased request timeout to 30.5 sec.
- Swapped react-router with react-router-dom. Prepared Foris JS for using
react-router-dom exposed by reForis.
- Added controller ID filter to WebSocket hook.
- Updated translation messages after moving WiFi form.
- Increased request timeout to 30.5 sec.
## [3.1.1] - 2020-01-10
- Fixed package dependencies related to exposing libraries via reForis
- Fixed package dependencies related to exposing libraries via reForis
## [3.1.0] - 2020-01-09
- Added Wi-Fi settings form
- Fixed path to index.js file in package.json
- Added Wi-Fi settings form
- Fixed path to index.js file in package.json
## [3.0.0] - 2020-01-07
- Removal of Babel compiler
- Fixed width of ForisForm, removed default sizing for form widgets (like
buttons)
- Removal of Babel compiler
- Fixed width of ForisForm, removed default sizing for form widgets (like
buttons)
## [2.1.1] - 2020-01-06
- Display date and time picker above input element
- Display date and time picker above input element
## [2.1.0] - 2019-12-19
- Set WebSocket logging to debug level
- Added hook that detects clicking outside of component
- Added Radio to list of publicly available components
- Fixed link to git repository in package.json
- Set WebSocket logging to debug level
- Added hook that detects clicking outside of component
- Added Radio to list of publicly available components
- Fixed link to git repository in package.json
## [2.0.0] - 2019-12-09
- Added dynamic suffix for API URLs (allowing to use one hook for different
resources with e.g. PUT)
- Added unsubscribe method to WebSocket client
- Added custom class to SpinnerElement
- Improved documentation
- Published README.md
- Added dynamic suffix for API URLs (allowing to use one hook for different
resources with e.g. PUT)
- Added unsubscribe method to WebSocket client
- Added custom class to SpinnerElement
- Improved documentation
- Published README.md
## [1.4.0] - 2019-11-29
- Add reboot button.
- Fix Foris URLs prefixes
- Add reboot button.
- Fix Foris URLs prefixes
## [1.3.3] - 2019-11-22
- Add translations from Weblate.
- Add translations from Weblate.
## [1.3.2] - 2019-11-20
- Expose only AlertContext.
- Add hook for API pooling.
- Expose only AlertContext.
- Add hook for API pooling.
## [1.3.1] - 2019-11-14
@ -419,7 +448,10 @@ and this project adheres to
## [0.0.7] - 2019-09-02
[unreleased]:
https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.5.0...dev
https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.6.2...dev
[6.6.2]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.6.1...v6.6.2
[6.6.1]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.6.0...v6.6.1
[6.6.0]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.5.0...v6.6.0
[6.5.0]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.4.0...v6.5.0
[6.4.0]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.3.0...v6.4.0
[6.3.0]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.2.1...v6.3.0

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "foris",
"version": "6.5.0",
"version": "6.6.2",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "foris",
"version": "6.5.0",
"version": "6.6.2",
"license": "GPL-3.0",
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^6.6.0",

View File

@ -1,6 +1,6 @@
{
"name": "foris",
"version": "6.5.0",
"version": "6.6.2",
"description": "Foris JS library is a set of components and utils for reForis application and plugins.",
"author": "CZ.NIC, z.s.p.o.",
"repository": {

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2019-2024 CZ.NIC z.s.p.o. (https://www.nic.cz/)
* Copyright (C) 2019-2025 CZ.NIC z.s.p.o. (https://www.nic.cz/)
*
* This is free software, licensed under the GNU General Public License v3.
* See /LICENSE for more information.
@ -20,22 +20,20 @@ import RichTableBody from "./RichTableBody";
import RichTableHeader from "./RichTableHeader";
import RichTablePagination from "./RichTablePagination";
const fallbackData = [];
RichTable.propTypes = {
/** Columns to be displayed in the table */
columns: PropTypes.array.isRequired,
/** Data to be displayed in the table */
/** Data to be displayed in the table, must be passed as a stable reference, for example, useState */
data: PropTypes.array.isRequired,
/** Whether to display pagination */
withPagination: PropTypes.bool,
/** Number of rows per page */
/** Number of rows per page, the default is 5 */
pageSize: PropTypes.number,
/** Index of the current page */
pageIndex: PropTypes.number,
};
function RichTable({
export default function RichTable({
columns,
data,
withPagination,
@ -43,7 +41,6 @@ function RichTable({
pageIndex = 0,
}) {
const tableColumns = useMemo(() => columns, [columns]);
const [tableData] = useState(data ?? fallbackData);
const [sorting, setSorting] = useState([]);
const [pagination, setPagination] = useState({
pageIndex,
@ -51,7 +48,7 @@ function RichTable({
});
const table = useReactTable({
data: tableData,
data,
columns: tableColumns,
getCoreRowModel: getCoreRowModel(),
getSortedRowModel: getSortedRowModel(),
@ -64,7 +61,7 @@ function RichTable({
},
});
const paginationIsNeeded = tableData.length > pageSize && withPagination;
const paginationIsNeeded = data.length > pageSize && withPagination;
return (
<div className="table-responsive">
@ -76,11 +73,9 @@ function RichTable({
<RichTablePagination
table={table}
tablePageSize={pageSize}
allRows={tableData.length}
allRows={data.length}
/>
)}
</div>
);
}
export default RichTable;

View File

@ -9,7 +9,7 @@ import React from "react";
import PropTypes from "prop-types";
import { HELP_TEXTS, HTMODES, HWMODES, ENCRYPTIONMODES } from "./constants";
import { HELP_TEXTS, HTMODES, BANDS, ENCRYPTIONMODES } from "./constants";
import WifiGuestForm from "./WiFiGuestForm";
import WiFiQRCode from "./WiFiQRCode";
import PasswordInput from "../../bootstrap/PasswordInput";
@ -60,7 +60,7 @@ DeviceForm.propTypes = {
SSID: PropTypes.string.isRequired,
password: PropTypes.string.isRequired,
hidden: PropTypes.bool.isRequired,
hwmode: PropTypes.string.isRequired,
band: PropTypes.string.isRequired,
htmode: PropTypes.string.isRequired,
channel: PropTypes.string.isRequired,
guest_wifi: PropTypes.object.isRequired,
@ -155,26 +155,26 @@ function DeviceForm({
/>
<RadioSet
name={`hwmode-${deviceID}`}
label="GHz"
choices={getHwmodeChoices(formData)}
value={formData.hwmode}
helpText={HELP_TEXTS.hwmode}
name={`band-${deviceID}`}
label={_("Band")}
choices={getBandChoices(formData)}
value={formData.band}
helpText={HELP_TEXTS.band}
inline
onChange={setFormValue((value) => {
// Get the last item in an array of available HT modes
const [best2] = bnds[0].available_htmodes.slice(-1);
const [best5] = bnds[1].available_htmodes.slice(-1);
// Find the selected band
const selectedBand = bnds.find(
(band) => band.band === value
);
// Get the last item in the available HT modes for the selected band
const bestHtmode =
selectedBand.available_htmodes.slice(-1)[0];
return {
devices: {
[deviceIndex]: {
hwmode: { $set: value },
band: { $set: value },
channel: { $set: "0" },
htmode: {
$set:
// Set HT mode depending on checked frequency
value === "11a" ? best5 : best2,
},
htmode: { $set: bestHtmode },
},
},
};
@ -263,7 +263,7 @@ function getChannelChoices(device) {
};
device.available_bands.forEach((availableBand) => {
if (availableBand.hwmode !== device.hwmode) return;
if (availableBand.band !== device.band) return;
availableBand.available_channels.forEach((availableChannel) => {
channelChoices[availableChannel.number.toString()] = `
@ -282,7 +282,7 @@ function getHtmodeChoices(device) {
const htmodeChoices = {};
device.available_bands.forEach((availableBand) => {
if (availableBand.hwmode !== device.hwmode) return;
if (availableBand.band !== device.band) return;
availableBand.available_htmodes.forEach((availableHtmod) => {
htmodeChoices[availableHtmod] = HTMODES[availableHtmod];
@ -291,10 +291,10 @@ function getHtmodeChoices(device) {
return htmodeChoices;
}
function getHwmodeChoices(device) {
function getBandChoices(device) {
return device.available_bands.map((availableBand) => ({
label: HWMODES[availableBand.hwmode],
value: availableBand.hwmode,
label: `${BANDS[availableBand.band]} GHz`,
value: availableBand.band,
}));
}

View File

@ -77,7 +77,7 @@ describe("<WiFiSettings/>", () => {
it("Snapshot 2.4 GHz", () => {
fireEvent.click(getByText("Wi-Fi 1"));
const enabledRender = asFragment();
fireEvent.click(getAllByText("2.4")[0]);
fireEvent.click(getAllByText(/2.4/)[0]);
expect(diffSnapshot(enabledRender, asFragment())).toMatchSnapshot();
});
@ -118,7 +118,7 @@ describe("<WiFiSettings/>", () => {
guest_wifi: { enabled: false },
hidden: false,
htmode: "HT80",
hwmode: "11a",
band: "5g",
id: 0,
password: "TestPass",
encryption: "WPA3",
@ -135,7 +135,7 @@ describe("<WiFiSettings/>", () => {
it("Post form: 2.4 GHz", () => {
fireEvent.click(getByText("Wi-Fi 1"));
fireEvent.click(getAllByText("2.4")[0]);
fireEvent.click(getAllByText(/2.4/)[0]);
fireEvent.click(getByText("Save"));
expect(mockAxios.post).toBeCalled();
@ -148,7 +148,7 @@ describe("<WiFiSettings/>", () => {
guest_wifi: { enabled: false },
hidden: false,
htmode: "VHT80",
hwmode: "11g",
band: "2g",
id: 0,
password: "TestPass",
encryption: "WPA3",
@ -185,7 +185,7 @@ describe("<WiFiSettings/>", () => {
},
hidden: false,
htmode: "HT80",
hwmode: "11a",
band: "5g",
id: 0,
password: "TestPass",
encryption: "WPA3",

View File

@ -77,7 +77,7 @@ export function wifiSettingsFixture() {
"VHT40",
"VHT80",
],
hwmode: "11g",
band: "2g",
},
{
available_channels: [
@ -215,7 +215,7 @@ export function wifiSettingsFixture() {
"VHT40",
"VHT80",
],
hwmode: "11a",
band: "5g",
},
],
channel: 60,
@ -227,7 +227,7 @@ export function wifiSettingsFixture() {
},
hidden: false,
htmode: "HT80",
hwmode: "11a",
band: "5g",
id: 0,
password: "TestPass",
encryption: "WPA3",
@ -294,7 +294,7 @@ export function wifiSettingsFixture() {
},
],
available_htmodes: ["NOHT", "HT20", "HT40"],
hwmode: "11g",
band: "2g",
},
],
channel: 11,
@ -306,7 +306,7 @@ export function wifiSettingsFixture() {
},
hidden: false,
htmode: "HT40",
hwmode: "11g",
band: "2g",
id: 1,
password: "TestPass",
encryption: "WPA3",
@ -323,7 +323,7 @@ const oneDevice = {
guest_wifi: { enabled: false },
hidden: false,
htmode: "HT40",
hwmode: "11a",
band: "5g",
id: 0,
password: "TestPass",
encryption: "WPA3",
@ -340,7 +340,7 @@ const twoDevices = {
guest_wifi: { enabled: false },
hidden: false,
htmode: "HT40",
hwmode: "11a",
band: "5g",
id: 0,
password: "TestPass",
encryption: "WPA3",
@ -352,7 +352,7 @@ const twoDevices = {
guest_wifi: { enabled: false },
hidden: false,
htmode: "HT40",
hwmode: "11a",
band: "5g",
id: 1,
password: "TestPass",
encryption: "WPA3",
@ -369,7 +369,7 @@ const threeDevices = {
guest_wifi: { enabled: false },
hidden: false,
htmode: "HT40",
hwmode: "11a",
band: "5g",
id: 0,
password: "TestPass",
encryption: "WPA3",
@ -381,7 +381,7 @@ const threeDevices = {
guest_wifi: { enabled: false },
hidden: false,
htmode: "HT40",
hwmode: "11a",
band: "5g",
id: 1,
password: "TestPass",
encryption: "WPA3",
@ -393,7 +393,7 @@ const threeDevices = {
guest_wifi: { enabled: false },
hidden: false,
htmode: "HT40",
hwmode: "11a",
band: "5g",
id: 2,
password: "",
encryption: "WPA3",

View File

@ -592,23 +592,23 @@ exports[`<WiFiSettings/> Snapshot one module enabled. 1`] = `
+ class="d-block"
+ for="6"
+ >
+ GHz
+ Band
+ </label>
+ <div
+ class="mb-3 form-check form-check-inline"
+ >
+ <input
+ class="form-check-input me-2"
+ id="hwmode-0-0"
+ name="hwmode-0"
+ id="band-0-0"
+ name="band-0"
+ type="radio"
+ value="11g"
+ value="2g"
+ />
+ <label
+ class="form-check-label"
+ for="hwmode-0-0"
+ for="band-0-0"
+ >
+ 2.4
+ 2.4 GHz
+ </label>
+ </div>
+ <div
@ -617,16 +617,16 @@ exports[`<WiFiSettings/> Snapshot one module enabled. 1`] = `
+ <input
+ checked=""
+ class="form-check-input me-2"
+ id="hwmode-0-1"
+ name="hwmode-0"
+ id="band-0-1"
+ name="band-0"
+ type="radio"
+ value="11a"
+ value="5g"
+ />
+ <label
+ class="form-check-label"
+ for="hwmode-0-1"
+ for="band-0-1"
+ >
+ 5
+ 5 GHz
+ </label>
+ </div>
+ <div

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2019-2022 CZ.NIC z.s.p.o. (https://www.nic.cz/)
* Copyright (C) 2019-2024 CZ.NIC z.s.p.o. (https://www.nic.cz/)
*
* This is free software, licensed under the GNU General Public License v3.
* See /LICENSE for more information.
@ -12,15 +12,18 @@ export const HTMODES = {
VHT20: _("802.11ac - 20 MHz wide channel"),
VHT40: _("802.11ac - 40 MHz wide channel"),
VHT80: _("802.11ac - 80 MHz wide channel"),
VHT80_80: _("802.11ac - 80+80 MHz wide channel"),
VHT160: _("802.11ac - 160 MHz wide channel"),
HE20: _("802.11ax - 20 MHz wide channel"),
HE40: _("802.11ax - 40 MHz wide channel"),
HE80: _("802.11ax - 80 MHz wide channel"),
HE80_80: _("802.11ax - 80+80 MHz wide channel"),
HE160: _("802.11ax - 160 MHz wide channel"),
};
export const HWMODES = {
"11g": "2.4",
"11a": "5",
export const BANDS = {
"2g": "2.4",
"5g": "5",
"6g": "6",
};
export const ENCRYPTIONMODES = {
WPA3: _("WPA3 only"),
@ -37,7 +40,7 @@ export const HELP_TEXTS = {
hidden: _(
"If set, network is not visible when scanning for available networks."
),
hwmode: _(
band: _(
"The 2.4 GHz band is more widely supported by clients, but tends to have more interference. The 5 GHz band is a newer standard and may not be supported by all your devices. It usually has less interference, but the signal does not carry so well indoors."
),
htmode: _(

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2019 CZ.NIC z.s.p.o. (http://www.nic.cz/)
* Copyright (C) 2019-2025 CZ.NIC z.s.p.o. (https://www.nic.cz/)
*
* This is free software, licensed under the GNU General Public License v3.
* See /LICENSE for more information.
@ -20,22 +20,25 @@ export const STATES = {
SubmitButton.propTypes = {
disabled: PropTypes.bool,
state: PropTypes.oneOf(Object.keys(STATES).map((key) => STATES[key])),
label: PropTypes.string,
};
export function SubmitButton({ disabled, state, ...props }) {
export function SubmitButton({ disabled, state, label, ...props }) {
const disableSubmitButton = disabled || state !== STATES.READY;
const loadingSubmitButton = state !== STATES.READY;
let labelSubmitButton;
switch (state) {
case STATES.SAVING:
labelSubmitButton = _("Updating");
break;
case STATES.LOAD:
labelSubmitButton = _("Load settings");
break;
default:
labelSubmitButton = _("Save");
let labelSubmitButton = label;
if (!labelSubmitButton) {
switch (state) {
case STATES.SAVING:
labelSubmitButton = _("Updating");
break;
case STATES.LOAD:
labelSubmitButton = _("Load settings");
break;
default:
labelSubmitButton = _("Save");
}
}
return (

View File

@ -38,6 +38,8 @@ export const ForisURLs = {
overview: "/overview",
notifications: "/overview#notifications",
notificationsSettings: "/administration/notifications-settings",
wifiSettings: "/network-settings/wifi",
lanSettings: "/network-settings/lan",
approveUpdates: "/package-management/updates",
languages: "/package-management/languages",

View File

@ -8,15 +8,16 @@ msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"PO-Revision-Date: 2024-09-25 10:15+0000\n"
"Last-Translator: Lukas Jelinek <lukas.jelinek@nic.cz>\n"
"PO-Revision-Date: 2024-11-15 06:01+0000\n"
"Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/turris/foris-js/cs/"
">\n"
"Language: cs\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/turris/foris-"
"js/cs/>\n"
"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n"
"X-Generator: Weblate 5.9-dev\n"
"Generated-By: Babel 2.16.0\n"
#: src/api/utils.js:61
@ -49,74 +50,72 @@ msgid "Copy"
msgstr "Kopírovat"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
#, fuzzy
msgid "Action successful."
msgstr "Nastavení úspěšně uložena"
msgstr "Akce úspěšná."
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
msgstr ""
msgstr "Akce se nezdařila."
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
msgid "Cancel"
msgstr "Zrušit"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
#, fuzzy
msgid "Confirm"
msgstr "Potvrdit restart"
msgstr "Potvrdit"
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
msgstr "Seřadit vzestupně"
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
msgstr "Seřadit sestupně"
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
msgstr "Vyčistit řazení"
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
msgstr "Navigační pruh stránkování"
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
msgstr "První stránka"
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
msgstr "Předchozí stránka"
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
msgstr "Následující stránka"
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
msgstr "Poslední stránka"
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
msgstr "Stránka"
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
msgstr "z"
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
msgstr "Řádků na stránku:"
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
msgstr "Vyberte řádky na stránku"
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
msgstr "Vše"
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
msgid "An error occurred during resetting Wi-Fi settings."
@ -137,9 +136,9 @@ msgid ""
"Fi settings. Note that this will remove the current Wi-Fi configuration "
"and restore the default values."
msgstr ""
"Pokud se počet bezdrátových karet neshoduje, můžete zkusit obnovit "
"nastavení Wi-Fi. Je třeba upozornit, že se tím odstraní aktuální "
"konfigurace Wi-Fi a obnoví se výchozí hodnoty."
"Pokud se počet bezdrátových karet neshoduje, můžete zkusit obnovit nastavení "
"Wi-Fi. Je třeba upozornit, že se tím odstraní stávající nastavení Wi-Fi a "
"obnoví se výchozí hodnoty."
#: src/common/WiFiSettings/WiFiForm.js:97
msgid "Wi-Fi ${deviceID + 1}"
@ -175,7 +174,7 @@ msgid ""
"In case you have trouble connecting to WiFi Access Point, try disabling "
"Management Frame Protection."
msgstr ""
"Máte-li problémy při připojování k přístupovému bodu Wi-Fi, zkuste "
"Pokud máte problémy při připojování k přístupovému bodu Wi-Fi, zkuste "
"vypnout Management Frame Protection."
#: src/common/WiFiSettings/WiFiForm.js:262
@ -226,7 +225,7 @@ msgstr "Je třeba, aby heslo obsahovalo alespoň 8 znaků"
#: src/common/WiFiSettings/WiFiSettings.js:91
#: src/common/WiFiSettings/WiFiSettings.js:110
msgid "Password must not contain more than 63 symbols"
msgstr "Heslo nesmí obsahovat více než 63 znaků"
msgstr "Heslo nemůže obsahovat více než 63 znaků"
#: src/common/WiFiSettings/constants.js:9
msgid "Disabled"
@ -363,11 +362,11 @@ msgstr ""
#: src/form/components/SubmitButton.js:32
msgid "Updating"
msgstr "Aktualizuji"
msgstr "Aktualizuje se"
#: src/form/components/SubmitButton.js:35
msgid "Load settings"
msgstr "Načítám nastavení"
msgstr "Načíst nastavení"
#: src/form/components/SubmitButton.js:38
msgid "Save"
@ -399,7 +398,7 @@ msgstr "Toto není platné doménové jméno."
#: src/utils/validations.js:18
msgid "This is not a valid DUID."
msgstr "Tohle není platné DUID."
msgstr "Toto není platné DUID."
#: src/utils/validations.js:19
msgid "This is not a valid MAC address."
@ -446,4 +445,3 @@ msgstr "Neobsahuje seznam e-mailů oddělených čárkou."
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr "Opravdu chcete router restartovat?"

View File

@ -11,8 +11,8 @@ msgstr ""
"PO-Revision-Date: 2024-01-04 21:08+0000\n"
"Last-Translator: Erik Pfannenstein <debianignatz@gmx.de>\n"
"Language: de\n"
"Language-Team: German <https://hosted.weblate.org/projects/turris/foris-"
"js/de/>\n"
"Language-Team: German <https://hosted.weblate.org/projects/turris/foris-js/"
"de/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
@ -35,16 +35,16 @@ msgstr "Keine Antwort erhalten."
msgid "An unknown API error occurred."
msgstr "Ein unbekannter API-Fehler ist aufgetreten."
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
msgstr "Schließen"
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:56 src/bootstrap/CopyInput.js:57
msgid "Copied!"
msgstr "Kopiert!"
#: src/bootstrap/CopyInput.js:56
#: src/bootstrap/CopyInput.js:56 src/bootstrap/CopyInput.js:57
msgid "Copy"
msgstr "Kopieren"
@ -58,6 +58,7 @@ msgid "Action failed."
msgstr ""
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
#: src/common/RebootButton.js:71
msgid "Cancel"
msgstr "Abbrechen"
@ -121,8 +122,7 @@ msgstr ""
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
msgid "An error occurred during resetting Wi-Fi settings."
msgstr ""
"Ein Fehler ist während der Zurücksetzung der WLAN-Einstellungen "
"aufgetreten."
"Ein Fehler ist während der Zurücksetzung der WLAN-Einstellungen aufgetreten."
#: src/common/WiFiSettings/ResetWiFiSettings.js:42
msgid "Wi-Fi settings are set to defaults."
@ -135,13 +135,13 @@ msgstr "WLAN-Einstellungen zurücksetzen"
#: src/common/WiFiSettings/ResetWiFiSettings.js:58
msgid ""
"If a number of wireless cards doesn't match, you may try to reset the Wi-"
"Fi settings. Note that this will remove the current Wi-Fi configuration "
"and restore the default values."
"If a number of wireless cards doesn't match, you may try to reset the Wi-Fi "
"settings. Note that this will remove the current Wi-Fi configuration and "
"restore the default values."
msgstr ""
"Falls die Anzahl der WLAN-Karten nicht korrekt ist, könnte es helfen, die"
" WLAN-Einstellungen zurückzusetzen. Beachten Sie, dass dabei die aktuelle"
" WLAN-Konfiguration mit den Werkseinstellungen überschrieben wird."
"Falls die Anzahl der WLAN-Karten nicht korrekt ist, könnte es helfen, die "
"WLAN-Einstellungen zurückzusetzen. Beachten Sie, dass dabei die aktuelle "
"WLAN-Konfiguration mit den Werkseinstellungen überschrieben wird."
#: src/common/WiFiSettings/WiFiForm.js:97
msgid "Wi-Fi ${deviceID + 1}"
@ -177,8 +177,8 @@ msgid ""
"In case you have trouble connecting to WiFi Access Point, try disabling "
"Management Frame Protection."
msgstr ""
"Falls Sie beim Verbinden mit dem WiFi-Access-Point Probleme haben, "
"schalten Sie testweise die Management Frame Protection ab."
"Falls Sie beim Verbinden mit dem WiFi-Access-Point Probleme haben, schalten "
"Sie testweise die Management Frame Protection ab."
#: src/common/WiFiSettings/WiFiForm.js:262
msgid "auto"
@ -194,9 +194,8 @@ msgstr "Gast-WLAN aktivieren"
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
#, fuzzy
msgid "Show QR code"
msgstr "WLAN QR-Code"
msgstr "QR-Code anzeigen"
#: src/common/WiFiSettings/WiFiQRCode.js:70
msgid "Wi-Fi QR Code"
@ -297,7 +296,8 @@ msgstr ""
#: src/common/WiFiSettings/constants.js:34
msgid "WPA2/3 pre-shared key, that is required to connect to the network."
msgstr "WPA2/3 Pre-Shard Key, der zum Verbinden mit dem Netzwerk notwendig ist."
msgstr ""
"WPA2/3 Pre-Shard Key, der zum Verbinden mit dem Netzwerk notwendig ist."
#: src/common/WiFiSettings/constants.js:37
msgid "If set, network is not visible when scanning for available networks."
@ -307,55 +307,54 @@ msgstr ""
#: src/common/WiFiSettings/constants.js:40
msgid ""
"The 2.4 GHz band is more widely supported by clients, but tends to have "
"more interference. The 5 GHz band is a newer standard and may not be "
"supported by all your devices. It usually has less interference, but the "
"signal does not carry so well indoors."
"The 2.4 GHz band is more widely supported by clients, but tends to have more "
"interference. The 5 GHz band is a newer standard and may not be supported by "
"all your devices. It usually has less interference, but the signal does not "
"carry so well indoors."
msgstr ""
"Das 2,4 GHz-Band wird von allen Geräten unterstützt, ist aber tendenziell"
" stärker mit Interferenzen belastet. Das 5-GHz-Band ist ein neuerer "
"Standard, der möglicherweise nicht von allen Ihren Geräten unterstützt "
"wird. Es hat in der Regel weniger Interferenzen, aber das Signal trägt "
"nicht so gut in Innenräumen."
"Das 2,4 GHz-Band wird von allen Geräten unterstützt, ist aber tendenziell "
"stärker mit Interferenzen belastet. Das 5-GHz-Band ist ein neuerer Standard, "
"der möglicherweise nicht von allen Ihren Geräten unterstützt wird. Es hat in "
"der Regel weniger Interferenzen, aber das Signal trägt nicht so gut in "
"Innenräumen."
#: src/common/WiFiSettings/constants.js:43
msgid ""
"Change this to adjust 802.11n/ac/ax mode of operation. 802.11n with 40 "
"MHz wide channels can yield higher throughput but can cause more "
"interference in the network. If you don't know what to choose, use the "
"default option with 20 MHz wide channel."
"Change this to adjust 802.11n/ac/ax mode of operation. 802.11n with 40 MHz "
"wide channels can yield higher throughput but can cause more interference in "
"the network. If you don't know what to choose, use the default option with "
"20 MHz wide channel."
msgstr ""
"Ändern Sie diese Option, um den 802.11n/ac/ax-Betriebsmodus anzupassen. "
"40 MHz breite Kanäle können bei 802.11n mehr Daten transportieren, jedoch"
" zu mehr Interferenzen im Netzwerk führen. Wenn Sie nicht wissen, was Sie"
" wählen sollen, verwenden Sie die Voreinstellung mit 20 MHz Kanalbreite."
"Ändern Sie diese Option, um den 802.11n/ac/ax-Betriebsmodus anzupassen. 40 "
"MHz breite Kanäle können bei 802.11n mehr Daten transportieren, jedoch zu "
"mehr Interferenzen im Netzwerk führen. Wenn Sie nicht wissen, was Sie wählen "
"sollen, verwenden Sie die Voreinstellung mit 20 MHz Kanalbreite."
#: src/common/WiFiSettings/constants.js:46
msgid ""
"Enables Wi-Fi for guests, which is separated from LAN network. Devices "
"connected to this network are allowed to access the internet, but aren't "
"allowed to access other devices and the configuration interface of the "
"router. Parameters of the guest network can be set in the Guest network "
"tab."
"router. Parameters of the guest network can be set in the Guest network tab."
msgstr ""
"Ermöglicht ein Wi-Fi für Gäste, das vom LAN-Netzwerk getrennt ist. "
"Geräte, die mit diesem Netzwerk verbunden sind, dürfen auf das Internet "
"zugreifen, nicht jedoch auf andere Geräte oder die "
"Konfigurationsschnittstelle des Routers. Die Parameter des Gastnetzwerks "
"können auf der Gastnetzwerk-Registerkarte eingestellt werden."
"Ermöglicht ein Wi-Fi für Gäste, das vom LAN-Netzwerk getrennt ist. Geräte, "
"die mit diesem Netzwerk verbunden sind, dürfen auf das Internet zugreifen, "
"nicht jedoch auf andere Geräte oder die Konfigurationsschnittstelle des "
"Routers. Die Parameter des Gastnetzwerks können auf der Gastnetzwerk-"
"Registerkarte eingestellt werden."
#: src/common/WiFiSettings/constants.js:49
msgid ""
"The WPA3 standard is the new most secure encryption method that is "
"suggested to be used with any device that supports it. The older devices "
"without WPA3 support require older WPA2. If you experience issues with "
"connecting older devices, try to enable WPA2."
"The WPA3 standard is the new most secure encryption method that is suggested "
"to be used with any device that supports it. The older devices without WPA3 "
"support require older WPA2. If you experience issues with connecting older "
"devices, try to enable WPA2."
msgstr ""
"Der WPA3-Standard ist die neue Verschlüsselungsmethode mit der besten "
"Sicherheit. Er empfiehlt sich für jedes Gerät, das ihn unterstützt, aber "
"ältere Geräte, bei denen das noch nicht der Fall ist, müssen auf das "
"ältere WPA2 ausweichen. Falls Sie Probleme dabei haben, ältere Geräte mit"
" dem WLAN zu verbinden, schalten Sie versuchsweise WPA2 ein."
"ältere Geräte, bei denen das noch nicht der Fall ist, müssen auf das ältere "
"WPA2 ausweichen. Falls Sie Probleme dabei haben, ältere Geräte mit dem WLAN "
"zu verbinden, schalten Sie versuchsweise WPA2 ein."
#: src/form/components/ForisForm.js:121
msgid "Settings saved successfully"
@ -415,34 +414,25 @@ msgstr "Dies ist keine gültige MAC-Adresse."
msgid "Doesn't contain a list of emails separated by commas."
msgstr "Enthält keine Liste von E-Mails, die durch Kommas getrennt sind."
#~ msgid "An unknown error occurred. Check the console for more info."
#~ msgstr ""
#: src/common/RebootButton.js:27
msgid "Reboot request failed."
msgstr "Neustart-Einleitung fehlgeschlagen."
#~ msgid "Reboot confirmation"
#~ msgstr ""
#: src/common/RebootButton.js:51
msgid "Reboot"
msgstr "Systemneustart"
#: src/common/RebootButton.js:66
msgid "Warning!"
msgstr "Warnung!"
#: src/common/RebootButton.js:68
msgid "Are you sure you want to restart the router?"
msgstr "Sind Sie sicher, dass Sie den Router neu starten wollen?"
#: src/common/RebootButton.js:73
msgid "Confirm reboot"
msgstr "Neustart bestätigen"
#~ msgid "Enable"
#~ msgstr "Aktivieren"
#~ msgid ""
#~ "\n"
#~ "If a number of wireless cards "
#~ "doesn't match, you may try to "
#~ "reset the Wi-Fi settings. Note "
#~ "that this will remove the\n"
#~ "current Wi-Fi configuration and restore the default values.\n"
#~ " "
#~ msgstr ""
#~ msgid "Reboot request failed."
#~ msgstr "Neustart-Einleitung fehlgeschlagen."
#~ msgid "Reboot"
#~ msgstr "Systemneustart"
#~ msgid "Warning!"
#~ msgstr "Warnung!"
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr "Sind Sie sicher, dass Sie den Router neu starten wollen?"

View File

@ -8,15 +8,16 @@ msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"PO-Revision-Date: 2021-02-09 16:50+0000\n"
"Last-Translator: Michalis <michalisntovas@yahoo.gr>\n"
"PO-Revision-Date: 2025-01-18 11:00+0000\n"
"Last-Translator: Thanasis <thanasakis11mail@gmail.com>\n"
"Language-Team: Greek <https://hosted.weblate.org/projects/turris/foris-js/el/"
">\n"
"Language: el\n"
"Language-Team: Greek <https://hosted.weblate.org/projects/turris/foris-"
"js/el/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.10-dev\n"
"Generated-By: Babel 2.16.0\n"
#: src/api/utils.js:61
@ -38,7 +39,7 @@ msgstr ""
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
msgstr "Κλείσιμο"
#: src/bootstrap/CopyInput.js:56
msgid "Copied!"
@ -179,7 +180,7 @@ msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:303
msgid "Custom"
msgstr ""
msgstr "Προσαρμοσμένο"
#: src/common/WiFiSettings/WiFiGuestForm.js:43
msgid "Enable Guest Wi-Fi"
@ -225,7 +226,7 @@ msgstr ""
#: src/common/WiFiSettings/constants.js:9
msgid "Disabled"
msgstr ""
msgstr "Απενεργοποιημένο"
#: src/common/WiFiSettings/constants.js:10
msgid "802.11n - 20 MHz wide channel"
@ -483,4 +484,3 @@ msgstr ""
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr "Είστε βέβαιοι ότι θέλετε να κάνετε επανεκκίνηση του δρομολογητή;"

View File

@ -8,15 +8,16 @@ msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"PO-Revision-Date: 2024-07-27 01:09+0000\n"
"Last-Translator: Moha684 <nahil82466@gmail.com>\n"
"PO-Revision-Date: 2024-12-14 10:00+0000\n"
"Last-Translator: ButterflyOfFire <boffire@users.noreply.hosted.weblate.org>\n"
"Language-Team: French <https://hosted.weblate.org/projects/turris/foris-js/"
"fr/>\n"
"Language: fr\n"
"Language-Team: French <https://hosted.weblate.org/projects/turris/foris-"
"js/fr/>\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.9-rc\n"
"Generated-By: Babel 2.16.0\n"
#: src/api/utils.js:61
@ -38,7 +39,7 @@ msgstr "Une erreur dAPI inconnue sest produite."
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
msgstr "Fermer"
#: src/bootstrap/CopyInput.js:56
msgid "Copied!"
@ -49,13 +50,12 @@ msgid "Copy"
msgstr "Copier"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
#, fuzzy
msgid "Action successful."
msgstr "Paramètres enregistrés avec succès"
msgstr "Paramètres enregistrés avec succès."
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
msgstr ""
msgstr "L'enregistrement des paramètres a échoué."
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
msgid "Cancel"
@ -84,39 +84,39 @@ msgstr ""
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
msgstr "Première page"
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
msgstr "Page précédente"
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
msgstr "Page suivante"
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
msgstr "Dernière page"
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
msgstr "Page"
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
msgstr "de"
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
msgstr "Lignes par page :"
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
msgstr "Sélectionnez les lignes par page"
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
msgstr "Tout"
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
msgid "An error occurred during resetting Wi-Fi settings."
@ -473,4 +473,3 @@ msgstr ""
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr "Voulez-vous vraiment redémarrer le routeur ?"

View File

@ -8,15 +8,16 @@ msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-11-13 14:06+0100\n"
"PO-Revision-Date: 2024-09-09 18:09+0000\n"
"PO-Revision-Date: 2024-12-14 10:00+0000\n"
"Last-Translator: Atec <dr.atec@gmail.com>\n"
"Language-Team: Slovak <https://hosted.weblate.org/projects/turris/foris-js/"
"sk/>\n"
"Language: sk\n"
"Language-Team: Slovak <https://hosted.weblate.org/projects/turris/foris-"
"js/sk/>\n"
"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n"
"X-Generator: Weblate 5.9-rc\n"
"Generated-By: Babel 2.16.0\n"
#: src/api/utils.js:61
@ -49,74 +50,72 @@ msgid "Copy"
msgstr "Kopírovať"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
#, fuzzy
msgid "Action successful."
msgstr "Nastavenia boli úspešne uložené"
msgstr "Akcia úspešná."
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
msgid "Action failed."
msgstr ""
msgstr "Akcia neúspešná."
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
msgid "Cancel"
msgstr "Zrušiť"
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
#, fuzzy
msgid "Confirm"
msgstr "Potvrdiť reštart"
msgstr "Potvrdiť"
#: src/common/RichTable/RichTableHeader.js:29
msgid "Sort ascending"
msgstr ""
msgstr "Zoradiť vzostupne"
#: src/common/RichTable/RichTableHeader.js:30
msgid "Sort descending"
msgstr ""
msgstr "Zoradiť zostupne"
#: src/common/RichTable/RichTableHeader.js:31
msgid "Clear sort"
msgstr ""
msgstr "Vymazať zoradenie"
#: src/common/RichTable/RichTablePagination.js:65
msgid "Pagination navigation bar"
msgstr ""
msgstr "Navigačný pás stránkovania"
#: src/common/RichTable/RichTablePagination.js:71
msgid "First page"
msgstr ""
msgstr "Prvá strana"
#: src/common/RichTable/RichTablePagination.js:77
msgid "Previous page"
msgstr ""
msgstr "Predchádzajúca strana"
#: src/common/RichTable/RichTablePagination.js:83
msgid "Next page"
msgstr ""
msgstr "Nasledujúca strana"
#: src/common/RichTable/RichTablePagination.js:89
msgid "Last page"
msgstr ""
msgstr "Posledná strana"
#: src/common/RichTable/RichTablePagination.js:95
msgid "Page"
msgstr ""
msgstr "Strana"
#: src/common/RichTable/RichTablePagination.js:98
msgid "of"
msgstr ""
msgstr "z"
#: src/common/RichTable/RichTablePagination.js:106
msgid "Rows per page:"
msgstr ""
msgstr "Počet riadkov na stranu:"
#: src/common/RichTable/RichTablePagination.js:109
msgid "Select rows per page"
msgstr ""
msgstr "Vyberte počet riadkov na stranu"
#: src/common/RichTable/RichTablePagination.js:121
msgid "All"
msgstr ""
msgstr "Všetky"
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
msgid "An error occurred during resetting Wi-Fi settings."
@ -447,4 +446,3 @@ msgstr "Neobsahuje zoznam e-mailov oddelených čiarkami."
#~ msgid "Are you sure you want to restart the router?"
#~ msgstr "Naozaj sa má router reštartovať?"