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
a7a4e76cd1 Merge branch 'dev' into 'master'
Dev

See merge request turris/reforis/foris-js!245
2024-09-25 16:22:09 +02:00
e7758cab9a Merge branch 'bump-version-621' into 'dev'
Bump v6.2.1

See merge request turris/reforis/foris-js!243
2024-09-25 16:20:01 +02:00
bf88b76613 Bump v6.2.1
* Add & update Weblate translations
* Refactor CopyInput component
* Refactor ForisURLs to include new URLs for Overview page
2024-09-25 16:15:56 +02:00
3cf85a9516 Merge branch 'update-translations' into 'dev'
Add & update Weblate translations

See merge request turris/reforis/foris-js!244
2024-09-25 16:14:48 +02:00
7c8442300a Update translation messages 2024-09-25 16:11:22 +02:00
e849397aa2 Create translation messages 2024-09-25 16:11:07 +02:00
c1b44d498c Translated using Weblate (Czech)
Currently translated at 100.0% (71 of 71 strings)

Translation: Turris/Foris JS
Translate-URL: https://hosted.weblate.org/projects/turris/foris-js/cs/
2024-09-25 10:15:45 +00:00
1b5a5da953 Merge branch 'add-overview-links' into 'dev'
Refactor ForisURLs to include new URLs for Overview page

See merge request turris/reforis/foris-js!242
2024-09-24 13:19:55 +02:00
7f45201f05 Refactor ForisURLs to include new URLs for Overview page 2024-09-23 17:09:13 +02:00
f34d9bbdbd Merge branch 'fix-copy-input' into 'dev'
Refactor CopyInput component

See merge request turris/reforis/foris-js!241
2024-09-23 14:07:06 +02:00
c7ff3f42f6 Refactor CopyInput component
Remove unnecessary input-group-append div and simplify structure
2024-09-23 13:59:31 +02:00
a1036514dd Translated using Weblate (Slovak)
Currently translated at 100.0% (71 of 71 strings)

Translation: Turris/Foris JS
Translate-URL: https://hosted.weblate.org/projects/turris/foris-js/sk/
2024-09-20 14:06:15 +02:00
a352f12279 Merge branch 'dev' into 'master'
Dev

See merge request turris/reforis/foris-js!240
2024-09-20 14:06:10 +02:00
acfbeb2c43 Merge branch 'bump-version-620' into 'dev'
Bump v6.2.0

See merge request turris/reforis/foris-js!239
2024-09-20 13:51:48 +02:00
3bef624ce4 Bump v6.2.0
* Add useFocusTrap hook
* Add extendSession endpoint
* Refactor Spinner.css to use CSS variable for color
* Refactor Modal component to use useFocusTrap hook
* Refactor Alert component to use useFocusTrap hook
2024-09-20 13:36:45 +02:00
7d0d52666d Merge branch 'add-extend-session-url' into 'dev'
Add extendSession endpoint ot ForisURLs

See merge request turris/reforis/foris-js!238
2024-09-20 13:27:22 +02:00
52fe5d65a6 Refactor Spinner.css to use CSS variable for color 2024-09-20 13:23:01 +02:00
b99add91cf Refactor ForisURLs.js to add extendSession endpoint 2024-09-20 13:23:01 +02:00
b7a4613cf4 Merge branch 'modal-focus-trap' into 'dev'
Introduce useFocusTrap hook and refactor Modal & Alert components

See merge request turris/reforis/foris-js!237
2024-09-19 13:18:26 +02:00
9e2278e016 Update Snapshots 2024-09-17 14:33:41 +02:00
83a6ff75f6 Refactor Alert component to use useFocusTrap hook 2024-09-17 14:33:19 +02:00
02f3803265 Refactor Modal component to use useFocusTrap hook 2024-09-17 14:13:26 +02:00
bb559cbe53 Merge branch 'dev' into 'master'
Dev

See merge request turris/reforis/foris-js!236
2024-08-30 16:03:17 +02:00
c86e2c8944 Merge branch 'bump-611' into 'dev'
Bump v6.1.1

See merge request turris/reforis/foris-js!235
2024-08-30 16:00:56 +02:00
b96ccde81c Bump v6.1.1
* Add & updated Weblate translations
* Update icon color classes to use "text-secondary" instead of "text-dark"
* Update Wi-Fi QRCodeModal component to use new styles & add close button
* Refactore WiFiGuestForm component to get rid of obsolete div element
* NPM audit fix
2024-08-30 15:56:08 +02:00
cfa6eade17 NPM audit fix 2024-08-30 15:51:23 +02:00
380a388a38 Merge branch 'fix-icons-color' into 'dev'
Update icon color classes & refactoring

See merge request turris/reforis/foris-js!233
2024-08-30 15:49:45 +02:00
cc19b4b293 Update Snapshots 2024-08-30 15:46:45 +02:00
e7ec494bb2 Update Wi-Fi QRCodeModal component to use new button styles & add close button 2024-08-30 15:46:45 +02:00
ea590e443c Refactor WiFiGuestForm component to get rid of obsolete "input-group-append" div element 2024-08-30 15:46:45 +02:00
b127bf5edf Update icon color classes to use "text-secondary" instead of "text-dark" 2024-08-30 15:46:45 +02:00
40e4a9a4e3 Merge branch 'update-translations' into 'dev'
Add & update Weblate translations

See merge request turris/reforis/foris-js!234
2024-08-30 15:44:51 +02:00
bcb7c43863 Translated using Weblate (Spanish)
Currently translated at 100.0% (71 of 71 strings)

Translation: Turris/Foris JS
Translate-URL: https://hosted.weblate.org/projects/turris/foris-js/es/
2024-08-24 15:09:22 +02:00
39 changed files with 310 additions and 204 deletions

View File

@ -8,6 +8,43 @@ and this project adheres to
## [Unreleased]
## [6.2.1] - 2024-09-25
### Added
- Added & updated Weblate translations
### Changed
- 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
### Changed
- 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
### 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
## [6.1.0] - 2024-08-23
### Added
@ -348,7 +385,10 @@ and this project adheres to
## [0.0.7] - 2019-09-02
[unreleased]:
https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.1.0...master
https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.2.1...dev
[6.2.1]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.2.0...v6.2.1
[6.2.0]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.1.1...v6.2.0
[6.1.1]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.1.0...v6.1.1
[6.1.0]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.0.3...v6.1.0
[6.0.3]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.0.2...v6.0.3
[6.0.2]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.0.1...v6.0.2

73
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "foris",
"version": "6.1.0",
"version": "6.2.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "foris",
"version": "6.1.0",
"version": "6.2.1",
"license": "GPL-3.0",
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^6.6.0",
@ -3722,21 +3722,13 @@
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz",
"integrity": "sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==",
"dev": true,
"optional": true,
"peer": true,
"dependencies": {
"@types/estree": "*",
"@types/json-schema": "*"
}
},
"node_modules/@types/eslint-scope": {
"version": "3.7.3",
"resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz",
"integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==",
"dev": true,
"dependencies": {
"@types/eslint": "*",
"@types/estree": "*"
}
},
"node_modules/@types/estree": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
@ -6731,10 +6723,11 @@
}
},
"node_modules/enhanced-resolve": {
"version": "5.17.0",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz",
"integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==",
"version": "5.17.1",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz",
"integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==",
"dev": true,
"license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.4",
"tapable": "^2.2.0"
@ -6748,6 +6741,7 @@
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
"integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=6"
}
@ -13785,10 +13779,11 @@
}
},
"node_modules/micromatch": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
"integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"dev": true,
"license": "MIT",
"dependencies": {
"braces": "^3.0.3",
"picomatch": "^2.3.1"
@ -17822,13 +17817,12 @@
}
},
"node_modules/webpack": {
"version": "5.92.1",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.92.1.tgz",
"integrity": "sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==",
"version": "5.94.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz",
"integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/eslint-scope": "^3.7.3",
"@types/estree": "^1.0.5",
"@webassemblyjs/ast": "^1.12.1",
"@webassemblyjs/wasm-edit": "^1.12.1",
@ -17837,7 +17831,7 @@
"acorn-import-attributes": "^1.9.5",
"browserslist": "^4.21.10",
"chrome-trace-event": "^1.0.2",
"enhanced-resolve": "^5.17.0",
"enhanced-resolve": "^5.17.1",
"es-module-lexer": "^1.2.1",
"eslint-scope": "5.1.1",
"events": "^3.2.0",
@ -21181,21 +21175,13 @@
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz",
"integrity": "sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==",
"dev": true,
"optional": true,
"peer": true,
"requires": {
"@types/estree": "*",
"@types/json-schema": "*"
}
},
"@types/eslint-scope": {
"version": "3.7.3",
"resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz",
"integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==",
"dev": true,
"requires": {
"@types/eslint": "*",
"@types/estree": "*"
}
},
"@types/estree": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
@ -23537,9 +23523,9 @@
"dev": true
},
"enhanced-resolve": {
"version": "5.17.0",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz",
"integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==",
"version": "5.17.1",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz",
"integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==",
"dev": true,
"requires": {
"graceful-fs": "^4.2.4",
@ -28840,9 +28826,9 @@
}
},
"micromatch": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
"integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"dev": true,
"requires": {
"braces": "^3.0.3",
@ -31815,12 +31801,11 @@
"dev": true
},
"webpack": {
"version": "5.92.1",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.92.1.tgz",
"integrity": "sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==",
"version": "5.94.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz",
"integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==",
"dev": true,
"requires": {
"@types/eslint-scope": "^3.7.3",
"@types/estree": "^1.0.5",
"@webassemblyjs/ast": "^1.12.1",
"@webassemblyjs/wasm-edit": "^1.12.1",
@ -31829,7 +31814,7 @@
"acorn-import-attributes": "^1.9.5",
"browserslist": "^4.21.10",
"chrome-trace-event": "^1.0.2",
"enhanced-resolve": "^5.17.0",
"enhanced-resolve": "^5.17.1",
"es-module-lexer": "^1.2.1",
"eslint-scope": "5.1.1",
"events": "^3.2.0",

View File

@ -1,6 +1,6 @@
{
"name": "foris",
"version": "6.1.0",
"version": "6.2.1",
"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

@ -5,10 +5,12 @@
* See /LICENSE for more information.
*/
import React from "react";
import React, { useRef } from "react";
import PropTypes from "prop-types";
import { useFocusTrap } from "../utils/hooks";
export const ALERT_TYPES = Object.freeze({
PRIMARY: "primary",
SECONDARY: "secondary",
@ -37,11 +39,15 @@ Alert.defaultProps = {
};
function Alert({ type, onDismiss, children }) {
const alertRef = useRef();
useFocusTrap(alertRef, !!onDismiss);
return (
<div
ref={alertRef}
className={`alert alert-${type} ${
onDismiss ? "alert-dismissible" : ""
}`.trim()}
role="alert"
>
{onDismiss && (
<button

View File

@ -48,15 +48,13 @@ function CopyInput({ value, ...props }) {
return (
<Input type="text" value={value} ref={inputTextRef} {...props}>
<div className="input-group-append">
<button
className="btn btn-outline-secondary"
type="button"
onClick={handleCopyClick}
>
<span>{isCopied ? _("Copied!") : _("Copy")}</span>
</button>
</div>
<button
className="btn btn-outline-secondary"
type="button"
onClick={handleCopyClick}
>
<span>{isCopied ? _("Copied!") : _("Copy")}</span>
</button>
</Input>
);
}

View File

@ -9,7 +9,7 @@ import React, { useRef, useEffect } from "react";
import PropTypes from "prop-types";
import { useClickOutside } from "../utils/hooks";
import { useClickOutside, useFocusTrap } from "../utils/hooks";
import Portal from "../utils/Portal";
import "./Modal.css";
@ -29,10 +29,11 @@ Modal.propTypes = {
};
export function Modal({ shown, setShown, scrollable, size, children }) {
const dialogRef = useRef();
const modalRef = useRef();
let modalSize = "modal-";
useClickOutside(dialogRef, () => setShown(false));
useClickOutside(modalRef, () => setShown(false));
useFocusTrap(modalRef, shown);
useEffect(() => {
const handleEsc = (event) => {
@ -65,11 +66,13 @@ export function Modal({ shown, setShown, scrollable, size, children }) {
return (
<Portal containerId="modal-container">
<div
ref={modalRef}
className={`modal fade ${shown ? "show" : ""}`.trim()}
role="dialog"
aria-modal="true"
aria-labelledby="modal-title"
>
<div
ref={dialogRef}
className={`${modalSize.trim()} modal-dialog modal-dialog-centered ${
scrollable ? "modal-dialog-scrollable" : ""
}`.trim()}
@ -90,7 +93,7 @@ ModalHeader.propTypes = {
export function ModalHeader({ setShown, title }) {
return (
<div className="modal-header">
<h5 className="modal-title">{title}</h5>
<h1 className="modal-title fs-5">{title}</h1>
<button
type="button"
className="btn-close"

View File

@ -49,7 +49,7 @@ function PasswordInput({ withEye, newPass, ...props }) {
<FontAwesomeIcon
icon={isHidden ? faEye : faEyeSlash}
style={{ width: "1.25rem" }}
className="text-dark"
className="text-secondary"
/>
</button>
)}

View File

@ -9,7 +9,7 @@
.spinner-wrapper .spinner-border {
width: 4rem;
height: 4rem;
color: #00a2e2;
color: var(--bs-primary);
}
.spinner-fs-background {

View File

@ -68,14 +68,11 @@ export default function WifiGuestForm({
}))}
{...props}
>
<div className="input-group-append">
<WiFiQRCode
SSID={formData.SSID}
password={formData.password}
/>
</div>
<WiFiQRCode
SSID={formData.SSID}
password={formData.password}
/>
</TextInput>
<PasswordInput
withEye
label={_("Password")}

View File

@ -42,7 +42,7 @@ export default function WiFiQRCode({ SSID, password }) {
icon="fa-solid fa-qrcode"
title={_("Show QR code")}
aria-label={_("Show QR code")}
className="text-dark"
className="text-secondary"
/>
</button>
{modal ? (
@ -70,17 +70,26 @@ function QRCodeModal({ shown, setShown, SSID, password }) {
<ModalHeader setShown={setShown} title={_("Wi-Fi QR Code")} />
<ModalBody>
<QRCode
className="d-block mx-auto img-logo-black"
renderAs="svg"
value={toQRCodeContent(SSID, password)}
level="M"
size={350}
includeMargin
style={{ display: "block", margin: "auto" }}
/>
</ModalBody>
<ModalFooter>
<Button
className="btn-outline-primary"
className="btn-secondary"
onClick={(e) => {
e.preventDefault();
setShown(false);
}}
>
{_("Close")}
</Button>
<Button
className="btn-primary"
onClick={(e) => {
e.preventDefault();
createAndDownloadPdf(SSID, password);

View File

@ -339,7 +339,7 @@ exports[`<WiFiSettings/> Snapshot guest network. 1`] = `
- First value
+ Second value
@@ -524,10 +524,91 @@
@@ -524,10 +524,87 @@
<small>
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.
</small>
@ -363,18 +363,14 @@ exports[`<WiFiSettings/> Snapshot guest network. 1`] = `
+ type="text"
+ value="TestGuestSSID"
+ />
+ <div
+ class="input-group-append"
+ <button
+ class="input-group-text"
+ type="button"
+ >
+ <button
+ class="input-group-text"
+ type="button"
+ >
+ <i
+ class="fa"
+ />
+ </button>
+ </div>
+ <i
+ class="fa"
+ />
+ </button>
+ </div>
+ <div
+ class="form-text"
@ -431,7 +427,7 @@ exports[`<WiFiSettings/> Snapshot guest network. 1`] = `
class="form-check form-switch mb-3 d-flex align-items-center"
>
<input
@@ -550,10 +631,11 @@
@@ -550,10 +627,11 @@
<div
class="text-end"
>

View File

@ -6,6 +6,8 @@ exports[`<RebootButton/> Render modal. 1`] = `
id="modal-container"
>
<div
aria-labelledby="modal-title"
aria-modal="true"
class="modal fade show"
role="dialog"
>
@ -19,11 +21,11 @@ exports[`<RebootButton/> Render modal. 1`] = `
<div
class="modal-header"
>
<h5
class="modal-title"
<h1
class="modal-title fs-5"
>
Warning!
</h5>
</h1>
<button
aria-label="Close"
class="btn-close"

View File

@ -7,6 +7,7 @@ exports[`AlertContext should render alert 1`] = `
>
<div
class="alert alert-danger alert-dismissible"
role="alert"
>
<button
aria-label="Close"

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2019-2021 CZ.NIC z.s.p.o. (http://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.
@ -9,8 +9,10 @@ export const REFORIS_URL_PREFIX = "/reforis";
export const REFORIS_API_URL_PREFIX = `${REFORIS_URL_PREFIX}/api`;
export const ForisURLs = {
// turris-auth
login: `/login?${REFORIS_URL_PREFIX}/`,
logout: `/logout`,
extendSession: `/extend-session`,
static: `${REFORIS_URL_PREFIX}/static/reforis`,
wifi: `${REFORIS_URL_PREFIX}/network-settings/wifi`,
@ -25,6 +27,13 @@ export const ForisURLs = {
storage: `${REFORIS_URL_PREFIX}/storage`,
sentinelAgreement: `${REFORIS_URL_PREFIX}/sentinel/agreement`,
// URLs without prefix for Overview page
openvpnClientSettings: "/openvpn/client-settings",
packageManagementPackages: "/package-management/packages",
packageManagementUpdateSettings: "/package-management/update-settings",
sentinelLicenseAgreement: "/sentinel/agreement",
librespeedSpeedTest: "/librespeed/speed-test",
// Notifications links are used with <Link/> inside Router, thus url subdir is not required.
overview: "/overview",
notifications: "/overview#notifications",

View File

@ -40,3 +40,40 @@ export function useClickOutside(element, callback) {
};
});
}
/* Trap focus inside element. */
export function useFocusTrap(elementRef, condition = true) {
useEffect(() => {
if (!condition) {
return;
}
const currentElement = elementRef.current;
const focusableElements = currentElement.querySelectorAll(
'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'
);
const firstElement = focusableElements[0];
const lastElement = focusableElements[focusableElements.length - 1];
const handleTab = (event) => {
if (event.key === "Tab") {
if (event.shiftKey) {
if (document.activeElement === firstElement) {
lastElement.focus();
event.preventDefault();
}
} else if (document.activeElement === lastElement) {
firstElement.focus();
event.preventDefault();
}
}
};
currentElement.addEventListener("keydown", handleTab);
firstElement.focus();
return () => {
currentElement.removeEventListener("keydown", handleTab);
};
}, [elementRef, condition]);
}

View File

@ -7,13 +7,13 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"PO-Revision-Date: 2023-11-23 16:03+0000\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: 2024-09-25 10:15+0000\n"
"Last-Translator: Lukas Jelinek <lukas.jelinek@nic.cz>\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"
"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"
@ -35,9 +35,10 @@ msgstr "Neobdržena žádná odezva."
msgid "An unknown API error occurred."
msgstr "Došlo k neznámé chybě v aplikačním programovém rozhraní."
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
msgstr "Zavřít"
#: src/bootstrap/CopyInput.js:57
msgid "Copied!"
@ -99,7 +100,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr "Wi-Fi ${deviceID + 1}"
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr "Heslo"
@ -145,15 +146,14 @@ msgstr "Zapnout Wi-Fi pro hosty"
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
#, fuzzy
msgid "Show QR code"
msgstr "Wi-Fi QR kód"
msgstr "Ukázat QR kód"
#: src/common/WiFiSettings/WiFiQRCode.js:70
msgid "Wi-Fi QR Code"
msgstr "Wi-Fi QR kód"
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr "Stáhnout PDF"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: 2019-02-19 13:34+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: da\n"
@ -34,7 +34,8 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
@ -95,7 +96,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr ""
@ -146,7 +147,7 @@ msgstr ""
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: 2024-01-04 21:08+0000\n"
"Last-Translator: Erik Pfannenstein <debianignatz@gmx.de>\n"
"Language: de\n"
@ -35,7 +35,8 @@ msgstr "Keine Antwort erhalten."
msgid "An unknown API error occurred."
msgstr "Ein unbekannter API-Fehler ist aufgetreten."
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
@ -101,7 +102,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr "WLAN ${deviceID + 1}"
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr "Passwort"
@ -155,7 +156,7 @@ msgstr "WLAN QR-Code"
msgid "Wi-Fi QR Code"
msgstr "WLAN QR-Code"
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr "PDF herunterladen"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: 2021-02-09 16:50+0000\n"
"Last-Translator: Michalis <michalisntovas@yahoo.gr>\n"
"Language: el\n"
@ -35,7 +35,8 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
@ -96,7 +97,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr ""
@ -148,7 +149,7 @@ msgstr ""
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: 2019-10-17 09:28+0000\n"
"Last-Translator: Scott Anecito <scott.anecito@protonmail.com>\n"
"Language: en\n"
@ -35,7 +35,8 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
@ -96,7 +97,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr ""
@ -147,7 +148,7 @@ msgstr ""
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr ""

View File

@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"PO-Revision-Date: 2022-09-11 17:15+0000\n"
"Last-Translator: Dan Cybersec <dan.cybersec@protonmail.com>\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: 2024-08-24 13:09+0000\n"
"Last-Translator: gallegonovato <fran-carro@hotmail.es>\n"
"Language: es\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/turris/foris-"
"js/es/>\n"
@ -37,9 +37,10 @@ msgstr ""
"Un error desconocido ha ocurrido. Compruebe la consola para mas "
"informaciòn."
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
msgstr "Cerrar"
#: src/bootstrap/CopyInput.js:57
msgid "Copied!"
@ -101,7 +102,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr "Wi-Fi ${deviceID + 1}"
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr "Contraseña"
@ -123,13 +124,15 @@ msgstr "Cifrado"
#: src/common/WiFiSettings/WiFiForm.js:226
msgid "Disable Management Frame Protection"
msgstr ""
msgstr "Desactivar Protected Management Frames"
#: src/common/WiFiSettings/WiFiForm.js:227
msgid ""
"In case you have trouble connecting to WiFi Access Point, try disabling "
"Management Frame Protection."
msgstr ""
"Si tienes problemas para conectarte a un punto de acceso Wi-Fi, intenta "
"desactivar Management Frame Protection."
#: src/common/WiFiSettings/WiFiForm.js:262
msgid "auto"
@ -145,15 +148,14 @@ msgstr "Activar el modo Wi-Fi de invitados"
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
#, fuzzy
msgid "Show QR code"
msgstr "Código QR Wi-Fi"
msgstr "Mostrar el código QR"
#: src/common/WiFiSettings/WiFiQRCode.js:70
msgid "Wi-Fi QR Code"
msgstr "Código QR Wi-Fi"
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr "Descargar PDF"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: 2019-02-19 13:34+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: fi\n"
@ -34,7 +34,8 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
@ -95,7 +96,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr ""
@ -146,7 +147,7 @@ msgstr ""
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: 2019-02-19 13:34+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: fo\n"
@ -34,7 +34,8 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
@ -95,7 +96,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr ""
@ -146,7 +147,7 @@ msgstr ""
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr ""

View File

@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Foris JS 6.1.0\n"
"Project-Id-Version: Foris JS 6.2.0\n"
"Report-Msgid-Bugs-To: tech.support@turris.cz\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -33,7 +33,8 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
@ -94,7 +95,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr ""
@ -145,7 +146,7 @@ msgstr ""
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: 2024-07-27 01:09+0000\n"
"Last-Translator: Moha684 <nahil82466@gmail.com>\n"
"Language: fr\n"
@ -35,7 +35,8 @@ msgstr "Aucun réponse reçue."
msgid "An unknown API error occurred."
msgstr "Une erreur dAPI inconnue sest produite."
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
@ -98,7 +99,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr "Wi-Fi ${deviceID + 1}"
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr "Mot de passe"
@ -153,7 +154,7 @@ msgstr "Code QR Wi-Fi"
msgid "Wi-Fi QR Code"
msgstr "Code QR Wi-Fi"
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr "Télécharger le PDF"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: 2022-09-29 14:17+0000\n"
"Last-Translator: Milo Ivir <mail@milotype.de>\n"
"Language: hr\n"
@ -36,7 +36,8 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
@ -97,7 +98,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr "Lozinka"
@ -148,7 +149,7 @@ msgstr ""
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: 2021-01-07 01:26+0000\n"
"Last-Translator: Zoli <boritek@gmail.com>\n"
"Language: hu\n"
@ -35,7 +35,8 @@ msgstr "Nem érkezett válasz."
msgid "An unknown API error occurred."
msgstr "Ismeretlen API-hiba történt."
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
@ -96,7 +97,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr ""
@ -147,7 +148,7 @@ msgstr ""
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: 2022-12-31 23:48+0000\n"
"Last-Translator: Anselmo <anselmo@casinadicornia.com>\n"
"Language: it\n"
@ -35,7 +35,8 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
@ -96,7 +97,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr "Password"
@ -147,7 +148,7 @@ msgstr ""
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: 2019-10-16 10:08+0000\n"
"Last-Translator: Scott Anecito <scott.anecito@protonmail.com>\n"
"Language: ja\n"
@ -35,7 +35,8 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
@ -96,7 +97,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr ""
@ -148,7 +149,7 @@ msgstr ""
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: 2019-02-19 13:34+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: ko\n"
@ -34,7 +34,8 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
@ -95,7 +96,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr ""
@ -146,7 +147,7 @@ msgstr ""
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: 2019-02-19 13:34+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: lt\n"
@ -35,7 +35,8 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
@ -96,7 +97,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr ""
@ -147,7 +148,7 @@ msgstr ""
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: 2023-03-02 11:40+0000\n"
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
"Language: nb_NO\n"
@ -36,7 +36,8 @@ msgstr "Fikk ikke svar."
msgid "An unknown API error occurred."
msgstr "Ukjent API-feil."
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
@ -103,7 +104,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr "Wi-Fi ${deviceID + 1}"
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr "Passord"
@ -161,7 +162,7 @@ msgstr "QR-kode for Wi-Fi"
msgid "Wi-Fi QR Code"
msgstr "QR-kode for Wi-Fi"
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr "Last ned PDF"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: 2024-01-04 21:08+0000\n"
"Last-Translator: powerburner-nl <peter.mulder.1981@gmail.com>\n"
"Language: nl\n"
@ -35,7 +35,8 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
@ -97,7 +98,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr "Wachtwoord"
@ -149,7 +150,7 @@ msgstr ""
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: 2023-03-07 16:37+0000\n"
"Last-Translator: Arusekk <arek_koz@o2.pl>\n"
"Language: pl\n"
@ -36,7 +36,8 @@ msgstr "Brak odpowiedzi."
msgid "An unknown API error occurred."
msgstr "Wystąpił nieznany błąd API."
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
@ -97,7 +98,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr "Hasło"
@ -148,7 +149,7 @@ msgstr ""
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: 2021-12-21 12:52+0000\n"
"Last-Translator: c10l <weblate.org@a.c10l.cc>\n"
"Language: pt_BR\n"
@ -35,7 +35,8 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
@ -96,7 +97,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr ""
@ -147,7 +148,7 @@ msgstr ""
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: 2019-02-19 13:35+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: ro\n"
@ -35,7 +35,8 @@ msgstr ""
msgid "An unknown API error occurred."
msgstr ""
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
@ -96,7 +97,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr ""
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr ""
@ -147,7 +148,7 @@ msgstr ""
msgid "Wi-Fi QR Code"
msgstr ""
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: 2022-12-07 12:47+0000\n"
"Last-Translator: Алексей Леньшин <alenshin@gmail.com>\n"
"Language: ru\n"
@ -36,7 +36,8 @@ msgstr "Ответ не получен."
msgid "An unknown API error occurred."
msgstr "Неизвестная ошибка программного интерфейса приложения."
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
@ -100,7 +101,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr "Wi-Fi ${deviceID + 1}"
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr "Пароль"
@ -154,7 +155,7 @@ msgstr "QR-код Wi-Fi"
msgid "Wi-Fi QR Code"
msgstr "QR-код Wi-Fi"
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr "Скачать PDF"

View File

@ -7,13 +7,13 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"PO-Revision-Date: 2023-01-17 22:51+0000\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: 2024-09-09 18:09+0000\n"
"Last-Translator: Atec <dr.atec@gmail.com>\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"
"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"
@ -35,9 +35,10 @@ msgstr "Nenastala žiadna odozva."
msgid "An unknown API error occurred."
msgstr "Nastala neznáma chyba v API."
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
msgstr "Zatvoriť"
#: src/bootstrap/CopyInput.js:57
msgid "Copied!"
@ -99,7 +100,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr "Wi-Fi ${deviceID + 1}"
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr "Heslo"
@ -145,15 +146,14 @@ msgstr "Povoliť Wi-Fi pre hostí"
#: src/common/WiFiSettings/WiFiQRCode.js:43
#: src/common/WiFiSettings/WiFiQRCode.js:44
#, fuzzy
msgid "Show QR code"
msgstr "Wi-Fi QR kód"
msgstr "Zobraziť QR kód"
#: src/common/WiFiSettings/WiFiQRCode.js:70
msgid "Wi-Fi QR Code"
msgstr "Wi-Fi QR kód"
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr "Stiahnuť PDF"
@ -184,7 +184,7 @@ msgstr "Heslo nesmie obsahovať viac ako 63 znakov"
#: src/common/WiFiSettings/constants.js:9
msgid "Disabled"
msgstr "Zakázané"
msgstr "Vypnuté"
#: src/common/WiFiSettings/constants.js:10
msgid "802.11n - 20 MHz wide channel"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2024-08-23 14:02+0200\n"
"POT-Creation-Date: 2024-09-25 16:10+0200\n"
"PO-Revision-Date: 2023-09-22 21:00+0000\n"
"Last-Translator: Kristoffer Grundström "
"<swedishsailfishosuser@tutanota.com>\n"
@ -36,7 +36,8 @@ msgstr "Inget svar togs emot."
msgid "An unknown API error occurred."
msgstr "Ett okänt API-fel inträffade."
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
#: src/bootstrap/Alert.js:57 src/bootstrap/Modal.js:101
#: src/common/WiFiSettings/WiFiQRCode.js:89
msgid "Close"
msgstr ""
@ -100,7 +101,7 @@ msgid "Wi-Fi ${deviceID + 1}"
msgstr "Wi-Fi ${deviceID + 1}"
#: src/common/WiFiSettings/WiFiForm.js:132
#: src/common/WiFiSettings/WiFiGuestForm.js:81
#: src/common/WiFiSettings/WiFiGuestForm.js:78
msgid "Password"
msgstr "Lösenord"
@ -154,7 +155,7 @@ msgstr "QR-kod för Wi-Fi"
msgid "Wi-Fi QR Code"
msgstr "QR-kod för Wi-Fi"
#: src/common/WiFiSettings/WiFiQRCode.js:93
#: src/common/WiFiSettings/WiFiQRCode.js:102
msgid "Download PDF"
msgstr "Ladda ner PDF"