mirror of
https://gitlab.nic.cz/turris/reforis/foris-js.git
synced 2025-06-15 13:36:35 +02:00
Compare commits
23 Commits
feature/ws
...
v6.2.1
Author | SHA1 | Date | |
---|---|---|---|
a7a4e76cd1 | |||
e7758cab9a | |||
bf88b76613 | |||
3cf85a9516 | |||
7c8442300a | |||
e849397aa2 | |||
c1b44d498c | |||
1b5a5da953 | |||
7f45201f05 | |||
f34d9bbdbd | |||
c7ff3f42f6 | |||
a1036514dd | |||
a352f12279 | |||
acfbeb2c43 | |||
3bef624ce4 | |||
7d0d52666d | |||
52fe5d65a6 | |||
b99add91cf | |||
b7a4613cf4 | |||
9e2278e016 | |||
83a6ff75f6 | |||
02f3803265 | |||
bb559cbe53 |
28
CHANGELOG.md
28
CHANGELOG.md
@ -8,6 +8,30 @@ 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
|
||||
@ -361,7 +385,9 @@ and this project adheres to
|
||||
## [0.0.7] - 2019-09-02
|
||||
|
||||
[unreleased]:
|
||||
https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.1.1...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
|
||||
|
128
package-lock.json
generated
128
package-lock.json
generated
@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "foris",
|
||||
"version": "6.1.1",
|
||||
"version": "6.2.1",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "foris",
|
||||
"version": "6.1.1",
|
||||
"version": "6.2.1",
|
||||
"license": "GPL-3.0",
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-svg-core": "^6.6.0",
|
||||
@ -18,8 +18,7 @@
|
||||
"moment": "^2.30.1",
|
||||
"qrcode.react": "^3.1.0",
|
||||
"react-datetime": "^3.2.0",
|
||||
"react-uid": "^2.3.3",
|
||||
"socket.io-client": "^4.6.1"
|
||||
"react-uid": "^2.3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.24.7",
|
||||
@ -3584,12 +3583,6 @@
|
||||
"@sinonjs/commons": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@socket.io/component-emitter": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz",
|
||||
"integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@testing-library/dom": {
|
||||
"version": "5.6.1",
|
||||
"resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-5.6.1.tgz",
|
||||
@ -6379,6 +6372,7 @@
|
||||
"version": "4.3.5",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
|
||||
"integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ms": "2.1.2"
|
||||
},
|
||||
@ -6728,28 +6722,6 @@
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/engine.io-client": {
|
||||
"version": "6.5.4",
|
||||
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.4.tgz",
|
||||
"integrity": "sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@socket.io/component-emitter": "~3.1.0",
|
||||
"debug": "~4.3.1",
|
||||
"engine.io-parser": "~5.2.1",
|
||||
"ws": "~8.17.1",
|
||||
"xmlhttprequest-ssl": "~2.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/engine.io-parser": {
|
||||
"version": "5.2.3",
|
||||
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz",
|
||||
"integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/enhanced-resolve": {
|
||||
"version": "5.17.1",
|
||||
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz",
|
||||
@ -13976,7 +13948,8 @@
|
||||
"node_modules/ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/multicast-dns": {
|
||||
"version": "7.2.5",
|
||||
@ -16579,34 +16552,6 @@
|
||||
"integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/socket.io-client": {
|
||||
"version": "4.7.5",
|
||||
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz",
|
||||
"integrity": "sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@socket.io/component-emitter": "~3.1.0",
|
||||
"debug": "~4.3.2",
|
||||
"engine.io-client": "~6.5.2",
|
||||
"socket.io-parser": "~4.2.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/socket.io-parser": {
|
||||
"version": "4.2.4",
|
||||
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz",
|
||||
"integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@socket.io/component-emitter": "~3.1.0",
|
||||
"debug": "~4.3.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sockjs": {
|
||||
"version": "0.3.24",
|
||||
"resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
|
||||
@ -18415,6 +18360,7 @@
|
||||
"version": "8.17.1",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
|
||||
"integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=10.0.0"
|
||||
@ -18447,14 +18393,6 @@
|
||||
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/xmlhttprequest-ssl": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz",
|
||||
"integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==",
|
||||
"engines": {
|
||||
"node": ">=0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/yallist": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||
@ -21115,11 +21053,6 @@
|
||||
"@sinonjs/commons": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"@socket.io/component-emitter": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz",
|
||||
"integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA=="
|
||||
},
|
||||
"@testing-library/dom": {
|
||||
"version": "5.6.1",
|
||||
"resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-5.6.1.tgz",
|
||||
@ -23329,6 +23262,7 @@
|
||||
"version": "4.3.5",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
|
||||
"integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "2.1.2"
|
||||
}
|
||||
@ -23588,23 +23522,6 @@
|
||||
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
|
||||
"dev": true
|
||||
},
|
||||
"engine.io-client": {
|
||||
"version": "6.5.4",
|
||||
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.4.tgz",
|
||||
"integrity": "sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==",
|
||||
"requires": {
|
||||
"@socket.io/component-emitter": "~3.1.0",
|
||||
"debug": "~4.3.1",
|
||||
"engine.io-parser": "~5.2.1",
|
||||
"ws": "~8.17.1",
|
||||
"xmlhttprequest-ssl": "~2.0.0"
|
||||
}
|
||||
},
|
||||
"engine.io-parser": {
|
||||
"version": "5.2.3",
|
||||
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz",
|
||||
"integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q=="
|
||||
},
|
||||
"enhanced-resolve": {
|
||||
"version": "5.17.1",
|
||||
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz",
|
||||
@ -29030,7 +28947,8 @@
|
||||
"ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
},
|
||||
"multicast-dns": {
|
||||
"version": "7.2.5",
|
||||
@ -30959,26 +30877,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"socket.io-client": {
|
||||
"version": "4.7.5",
|
||||
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz",
|
||||
"integrity": "sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==",
|
||||
"requires": {
|
||||
"@socket.io/component-emitter": "~3.1.0",
|
||||
"debug": "~4.3.2",
|
||||
"engine.io-client": "~6.5.2",
|
||||
"socket.io-parser": "~4.2.4"
|
||||
}
|
||||
},
|
||||
"socket.io-parser": {
|
||||
"version": "4.2.4",
|
||||
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz",
|
||||
"integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==",
|
||||
"requires": {
|
||||
"@socket.io/component-emitter": "~3.1.0",
|
||||
"debug": "~4.3.1"
|
||||
}
|
||||
},
|
||||
"sockjs": {
|
||||
"version": "0.3.24",
|
||||
"resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
|
||||
@ -32300,6 +32198,7 @@
|
||||
"version": "8.17.1",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
|
||||
"integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
},
|
||||
"xml-name-validator": {
|
||||
@ -32314,11 +32213,6 @@
|
||||
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
|
||||
"dev": true
|
||||
},
|
||||
"xmlhttprequest-ssl": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz",
|
||||
"integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A=="
|
||||
},
|
||||
"yallist": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "foris",
|
||||
"version": "6.1.1",
|
||||
"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": {
|
||||
@ -23,8 +23,7 @@
|
||||
"moment": "^2.30.1",
|
||||
"qrcode.react": "^3.1.0",
|
||||
"react-datetime": "^3.2.0",
|
||||
"react-uid": "^2.3.3",
|
||||
"socket.io-client": "^4.6.1"
|
||||
"react-uid": "^2.3.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"bootstrap": "^5.3.3",
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
);
|
||||
}
|
||||
|
@ -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"
|
||||
|
@ -9,7 +9,7 @@
|
||||
.spinner-wrapper .spinner-border {
|
||||
width: 4rem;
|
||||
height: 4rem;
|
||||
color: #00a2e2;
|
||||
color: var(--bs-primary);
|
||||
}
|
||||
|
||||
.spinner-fs-background {
|
||||
|
@ -26,7 +26,7 @@ function ResetWiFiSettings({ ws, endpoint }) {
|
||||
|
||||
useEffect(() => {
|
||||
const module = "wifi";
|
||||
ws.bind(module, "reset", () => {
|
||||
ws.subscribe(module).bind(module, "reset", () => {
|
||||
// eslint-disable-next-line no-restricted-globals
|
||||
setTimeout(() => location.reload(), 1000);
|
||||
});
|
||||
|
@ -46,7 +46,7 @@ describe("<RebootButton/>", () => {
|
||||
fireEvent.click(getByText(componentContainer, "Reboot"));
|
||||
fireEvent.click(getByText(componentContainer, "Confirm reboot"));
|
||||
expect(mockAxios.post).toHaveBeenCalledWith(
|
||||
"/api/reboot",
|
||||
"/reforis/api/reboot",
|
||||
undefined,
|
||||
expect.anything()
|
||||
);
|
||||
|
@ -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"
|
||||
|
@ -7,6 +7,7 @@ exports[`AlertContext should render alert 1`] = `
|
||||
>
|
||||
<div
|
||||
class="alert alert-danger alert-dismissible"
|
||||
role="alert"
|
||||
>
|
||||
<button
|
||||
aria-label="Close"
|
||||
|
@ -10,4 +10,3 @@ global._ = (str) => str;
|
||||
global.ngettext = (str) => str;
|
||||
global.babel = { format: (str) => str };
|
||||
global.ForisTranslations = { locale: "en" };
|
||||
global.setImmediate = (fn) => setTimeout(fn, 0);
|
@ -5,12 +5,14 @@
|
||||
* See /LICENSE for more information.
|
||||
*/
|
||||
|
||||
export const REFORIS_URL_PREFIX = process.env.REFORIS_PREFIX || "";
|
||||
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",
|
||||
|
@ -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]);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020-2024 CZ.NIC z.s.p.o. (https://www.nic.cz/)
|
||||
* Copyright (C) 2020-2022 CZ.NIC z.s.p.o. (http://www.nic.cz/)
|
||||
*
|
||||
* This is free software, licensed under the GNU General Public License v3.
|
||||
* See /LICENSE for more information.
|
||||
@ -7,33 +7,47 @@
|
||||
|
||||
/* eslint no-console: "off" */
|
||||
|
||||
import { io } from "socket.io-client";
|
||||
const PROTOCOL = window.location.protocol === "http:" ? "ws" : "wss";
|
||||
|
||||
import { REFORIS_URL_PREFIX } from "../utils/forisUrls";
|
||||
const URL = process.env.LIGHTTPD
|
||||
? `${PROTOCOL}://${window.location.host}/${process.env.WSPATH || "foris-ws"}`
|
||||
: `${PROTOCOL}://${window.location.hostname}:9081`;
|
||||
|
||||
const WAITING_FOR_CONNECTION_TIMEOUT = 500;
|
||||
|
||||
class WebSockets {
|
||||
constructor() {
|
||||
this.socket = io("/notifications", {
|
||||
path: `${REFORIS_URL_PREFIX}/reforis-ws`,
|
||||
});
|
||||
this.connection = null;
|
||||
this.socket.on("disconnect", (reason) => {
|
||||
this.connection = null;
|
||||
console.debug(`SocketIO disconnected (${reason})`);
|
||||
});
|
||||
this.socket.on("notification", (message) => {
|
||||
console.debug("WS: Received Message:", message);
|
||||
this.dispatch(message);
|
||||
});
|
||||
this.socket.on("connect", (connection) => {
|
||||
this.connection = connection;
|
||||
console.debug(`SocketIO connected.`);
|
||||
});
|
||||
this.ws = new WebSocket(URL);
|
||||
this.ws.onerror = (e) => {
|
||||
console.error("WS: Error:", e);
|
||||
};
|
||||
this.ws.onmessage = (e) => {
|
||||
console.debug(`WS: Received Message: ${e.data}`);
|
||||
const data = JSON.parse(e.data);
|
||||
this.dispatch(data);
|
||||
};
|
||||
this.ws.onopen = () => {
|
||||
console.debug("WS: Connection open.");
|
||||
};
|
||||
this.ws.onclose = () => {
|
||||
console.debug("WS: Connection closed.");
|
||||
};
|
||||
|
||||
// callbacks[module][action]
|
||||
this.callbacks = {};
|
||||
}
|
||||
|
||||
waitForConnection(callback) {
|
||||
if (this.ws.readyState === 1) {
|
||||
callback();
|
||||
} else {
|
||||
const that = this;
|
||||
setTimeout(() => {
|
||||
that.waitForConnection(callback);
|
||||
}, WAITING_FOR_CONNECTION_TIMEOUT);
|
||||
}
|
||||
}
|
||||
|
||||
bind(module, action, callback) {
|
||||
this.callbacks[module] = this.callbacks[module] || {};
|
||||
this.callbacks[module][action] = this.callbacks[module][action] || [];
|
||||
@ -41,6 +55,13 @@ class WebSockets {
|
||||
return this;
|
||||
}
|
||||
|
||||
subscribe(module) {
|
||||
this.waitForConnection(() => {
|
||||
this.send("subscribe", module);
|
||||
});
|
||||
return this;
|
||||
}
|
||||
|
||||
unbind(module, action, callback) {
|
||||
const callbacks = this.callbacks[module][action];
|
||||
|
||||
@ -54,12 +75,28 @@ class WebSockets {
|
||||
}
|
||||
|
||||
if (Object.keys(this.callbacks[module]).length === 0) {
|
||||
delete this.callbacks[module];
|
||||
this.unsubscribe(module);
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
unsubscribe(module) {
|
||||
this.waitForConnection(() => {
|
||||
this.send("unsubscribe", module);
|
||||
delete this.callbacks[module];
|
||||
});
|
||||
return this;
|
||||
}
|
||||
|
||||
send(action, params) {
|
||||
const payload = JSON.stringify({ action, params });
|
||||
this.waitForConnection(() => {
|
||||
this.ws.send(payload);
|
||||
});
|
||||
return this;
|
||||
}
|
||||
|
||||
dispatch(json) {
|
||||
if (!json.module) return;
|
||||
|
||||
@ -68,17 +105,20 @@ class WebSockets {
|
||||
chain = this.callbacks[json.module][json.action];
|
||||
} catch (error) {
|
||||
if (error instanceof TypeError) {
|
||||
console.debug(
|
||||
`Callbacks for this module wasn't found: ${json.module}`
|
||||
console.warn(
|
||||
`Callback for this message wasn't found:${error.data}`
|
||||
);
|
||||
} else throw error;
|
||||
}
|
||||
|
||||
if (typeof chain === "undefined") return;
|
||||
|
||||
console.debug("Handling WS message", json);
|
||||
chain.forEach((callback) => callback(json));
|
||||
}
|
||||
|
||||
close() {
|
||||
this.ws.close();
|
||||
}
|
||||
}
|
||||
|
||||
export default WebSockets;
|
||||
|
@ -33,7 +33,7 @@ function useWSForisModule(
|
||||
setData(message.data);
|
||||
}
|
||||
|
||||
ws.bind(module, action, callback);
|
||||
ws.subscribe(module).bind(module, action, callback);
|
||||
|
||||
return () => {
|
||||
ws.unbind(module, action, callback);
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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 ""
|
||||
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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 ""
|
||||
|
||||
|
@ -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 ""
|
||||
|
||||
|
@ -7,17 +7,16 @@ 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-08-24 13:09+0000\n"
|
||||
"Last-Translator: gallegonovato <fran-carro@hotmail.es>\n"
|
||||
"Language-Team: Spanish <https://hosted.weblate.org/projects/turris/foris-js/"
|
||||
"es/>\n"
|
||||
"Language: es\n"
|
||||
"Language-Team: Spanish <https://hosted.weblate.org/projects/turris/foris-"
|
||||
"js/es/>\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.7.1-dev\n"
|
||||
"Generated-By: Babel 2.16.0\n"
|
||||
|
||||
#: src/api/utils.js:61
|
||||
@ -38,7 +37,8 @@ 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 "Cerrar"
|
||||
|
||||
@ -102,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"
|
||||
|
||||
@ -155,7 +155,7 @@ msgstr "Mostrar el código QR"
|
||||
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"
|
||||
|
||||
@ -446,3 +446,4 @@ msgstr "No contiene una lista de correos electrónicos separados por comas."
|
||||
#~ " default option with 20 MHz wide "
|
||||
#~ "channel."
|
||||
#~ msgstr ""
|
||||
|
||||
|
@ -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 ""
|
||||
|
||||
|
@ -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 ""
|
||||
|
||||
|
@ -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 ""
|
||||
|
||||
|
@ -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 d’API inconnue s’est 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"
|
||||
|
||||
|
@ -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 ""
|
||||
|
||||
|
@ -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 ""
|
||||
|
||||
|
@ -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 ""
|
||||
|
||||
|
@ -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 ""
|
||||
|
||||
|
@ -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 ""
|
||||
|
||||
|
@ -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 ""
|
||||
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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 ""
|
||||
|
||||
|
@ -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 ""
|
||||
|
||||
|
@ -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 ""
|
||||
|
||||
|
@ -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 ""
|
||||
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
||||
|
Reference in New Issue
Block a user