mirror of
https://gitlab.nic.cz/turris/reforis/foris-js.git
synced 2025-06-15 13:36:35 +02:00
Compare commits
64 Commits
Author | SHA1 | Date | |
---|---|---|---|
30fd6f91b4 | |||
5a53eca138 | |||
8d2a4dc108 | |||
2481a0c025 | |||
71697424c5 | |||
07f8e3b9de | |||
c9f2b24095 | |||
087ecfa670 | |||
e6365ecac4 | |||
e57722caa0 | |||
babdf92ddd | |||
42294316d9 | |||
b65e034b04 | |||
14b90bbbd4 | |||
85b207b1dd | |||
79e61d9507 | |||
6795c3941b | |||
969e8e6411 | |||
0099759279 | |||
87c81a2a2d | |||
81b71f8153 | |||
c0fd0adbc9 | |||
1ec0a26199 | |||
76e37b738a | |||
8a69d14429 | |||
4d5395c826 | |||
1fb83e08ea | |||
e6cfc6dbb0 | |||
a93a64bf96 | |||
1ab77decfd | |||
b6e1e0adae | |||
a7a4e76cd1 | |||
e7758cab9a | |||
bf88b76613 | |||
3cf85a9516 | |||
7c8442300a | |||
e849397aa2 | |||
c1b44d498c | |||
1b5a5da953 | |||
7f45201f05 | |||
f34d9bbdbd | |||
c7ff3f42f6 | |||
a1036514dd | |||
a352f12279 | |||
acfbeb2c43 | |||
3bef624ce4 | |||
7d0d52666d | |||
52fe5d65a6 | |||
b99add91cf | |||
b7a4613cf4 | |||
9e2278e016 | |||
83a6ff75f6 | |||
02f3803265 | |||
bb559cbe53 | |||
c86e2c8944 | |||
b96ccde81c | |||
cfa6eade17 | |||
380a388a38 | |||
cc19b4b293 | |||
e7ec494bb2 | |||
ea590e443c | |||
b127bf5edf | |||
40e4a9a4e3 | |||
bcb7c43863 |
79
CHANGELOG.md
79
CHANGELOG.md
@ -8,6 +8,77 @@ and this project adheres to
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [6.5.0] - 2024-11-13
|
||||
|
||||
### Added
|
||||
|
||||
- Added & updated Weblate translations
|
||||
- Added RichTable component with pagination and sorting
|
||||
- Added @tanstack/react-table v8.20.5 to dependencies
|
||||
|
||||
### Changed
|
||||
|
||||
- Updated documentation
|
||||
- Replaced RebootButton with ActionButtonWithModal component
|
||||
- Fixed import path for CustomizationContextMock in customTestRender.js
|
||||
|
||||
## [6.4.0] - 2024-10-02
|
||||
|
||||
### Changed
|
||||
|
||||
- Refactored Alert component to include dismiss animation and timeout
|
||||
- Refactored ThreeDotsMenu component to include additional props
|
||||
|
||||
## [6.3.0] - 2024-09-27
|
||||
|
||||
### Added
|
||||
|
||||
- Added ThreeDotsMenu component
|
||||
|
||||
### Changed
|
||||
|
||||
- Refactored EmailInput description
|
||||
- Refactored RadioSet & ignore Radio component
|
||||
- Refactored npm package badge in introduction.md
|
||||
- NPM audit fix
|
||||
|
||||
## [6.2.1] - 2024-09-25
|
||||
|
||||
### Added
|
||||
|
||||
- Added & updated Weblate translations
|
||||
|
||||
### 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 +419,13 @@ 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.5.0...dev
|
||||
[6.5.0]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.4.0...v6.5.0
|
||||
[6.4.0]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.3.0...v6.4.0
|
||||
[6.3.0]: https://gitlab.nic.cz/turris/reforis/foris-js/-/compare/v6.2.1...v6.3.0
|
||||
[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
|
||||
|
@ -33,5 +33,4 @@ To install a specific version:
|
||||
npm install foris@version
|
||||
```
|
||||
|
||||
<a target="_blank" href="https://www.npmjs.com/package/foris">Check
|
||||
on<img width="100px" src="./docs/forisjs-npm.svg"></a>
|
||||
[](https://badge.fury.io/js/foris)
|
||||
|
367
package-lock.json
generated
367
package-lock.json
generated
@ -1,18 +1,19 @@
|
||||
{
|
||||
"name": "foris",
|
||||
"version": "6.1.0",
|
||||
"version": "6.5.0",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "foris",
|
||||
"version": "6.1.0",
|
||||
"version": "6.5.0",
|
||||
"license": "GPL-3.0",
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-svg-core": "^6.6.0",
|
||||
"@fortawesome/free-regular-svg-icons": "^6.6.0",
|
||||
"@fortawesome/free-solid-svg-icons": "^6.6.0",
|
||||
"@fortawesome/react-fontawesome": "^0.2.2",
|
||||
"@tanstack/react-table": "^8.20.5",
|
||||
"axios": "^1.7.2",
|
||||
"immutability-helper": "^3.1.1",
|
||||
"moment": "^2.30.1",
|
||||
@ -3583,6 +3584,39 @@
|
||||
"@sinonjs/commons": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tanstack/react-table": {
|
||||
"version": "8.20.5",
|
||||
"resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.20.5.tgz",
|
||||
"integrity": "sha512-WEHopKw3znbUZ61s9i0+i9g8drmDo6asTWbrQh8Us63DAk/M0FkmIqERew6P71HI75ksZ2Pxyuf4vvKh9rAkiA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@tanstack/table-core": "8.20.5"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/tannerlinsley"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=16.8",
|
||||
"react-dom": ">=16.8"
|
||||
}
|
||||
},
|
||||
"node_modules/@tanstack/table-core": {
|
||||
"version": "8.20.5",
|
||||
"resolved": "https://registry.npmjs.org/@tanstack/table-core/-/table-core-8.20.5.tgz",
|
||||
"integrity": "sha512-P9dF7XbibHph2PFRz8gfBKEXEY/HJPOhym8CHmjF8y3q5mWpKx9xtZapXQUWCgkqvsK0R46Azuz+VaxD4Xl+Tg==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/tannerlinsley"
|
||||
}
|
||||
},
|
||||
"node_modules/@testing-library/dom": {
|
||||
"version": "5.6.1",
|
||||
"resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-5.6.1.tgz",
|
||||
@ -3722,21 +3756,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",
|
||||
@ -5025,10 +5051,11 @@
|
||||
}
|
||||
},
|
||||
"node_modules/body-parser": {
|
||||
"version": "1.20.2",
|
||||
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
|
||||
"integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
|
||||
"version": "1.20.3",
|
||||
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
|
||||
"integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"bytes": "3.1.2",
|
||||
"content-type": "~1.0.5",
|
||||
@ -5038,7 +5065,7 @@
|
||||
"http-errors": "2.0.0",
|
||||
"iconv-lite": "0.4.24",
|
||||
"on-finished": "2.4.1",
|
||||
"qs": "6.11.0",
|
||||
"qs": "6.13.0",
|
||||
"raw-body": "2.5.2",
|
||||
"type-is": "~1.6.18",
|
||||
"unpipe": "1.0.0"
|
||||
@ -5053,6 +5080,7 @@
|
||||
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
|
||||
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
@ -5062,6 +5090,7 @@
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
@ -5070,7 +5099,8 @@
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/bonjour-service": {
|
||||
"version": "1.2.1",
|
||||
@ -5910,6 +5940,7 @@
|
||||
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
|
||||
"integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
@ -6548,6 +6579,7 @@
|
||||
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
|
||||
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
@ -6566,6 +6598,7 @@
|
||||
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
|
||||
"integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.8",
|
||||
"npm": "1.2.8000 || >= 1.4.16"
|
||||
@ -6686,7 +6719,8 @@
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
||||
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/electron-to-chromium": {
|
||||
"version": "1.4.792",
|
||||
@ -6722,19 +6756,21 @@
|
||||
}
|
||||
},
|
||||
"node_modules/encodeurl": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
|
||||
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
|
||||
"integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
},
|
||||
"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 +6784,7 @@
|
||||
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
|
||||
"integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
@ -7915,6 +7952,7 @@
|
||||
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
|
||||
"integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
@ -8042,37 +8080,38 @@
|
||||
}
|
||||
},
|
||||
"node_modules/express": {
|
||||
"version": "4.19.2",
|
||||
"resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
|
||||
"integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
|
||||
"version": "4.21.0",
|
||||
"resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz",
|
||||
"integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"accepts": "~1.3.8",
|
||||
"array-flatten": "1.1.1",
|
||||
"body-parser": "1.20.2",
|
||||
"body-parser": "1.20.3",
|
||||
"content-disposition": "0.5.4",
|
||||
"content-type": "~1.0.4",
|
||||
"cookie": "0.6.0",
|
||||
"cookie-signature": "1.0.6",
|
||||
"debug": "2.6.9",
|
||||
"depd": "2.0.0",
|
||||
"encodeurl": "~1.0.2",
|
||||
"encodeurl": "~2.0.0",
|
||||
"escape-html": "~1.0.3",
|
||||
"etag": "~1.8.1",
|
||||
"finalhandler": "1.2.0",
|
||||
"finalhandler": "1.3.1",
|
||||
"fresh": "0.5.2",
|
||||
"http-errors": "2.0.0",
|
||||
"merge-descriptors": "1.0.1",
|
||||
"merge-descriptors": "1.0.3",
|
||||
"methods": "~1.1.2",
|
||||
"on-finished": "2.4.1",
|
||||
"parseurl": "~1.3.3",
|
||||
"path-to-regexp": "0.1.7",
|
||||
"path-to-regexp": "0.1.10",
|
||||
"proxy-addr": "~2.0.7",
|
||||
"qs": "6.11.0",
|
||||
"qs": "6.13.0",
|
||||
"range-parser": "~1.2.1",
|
||||
"safe-buffer": "5.2.1",
|
||||
"send": "0.18.0",
|
||||
"serve-static": "1.15.0",
|
||||
"send": "0.19.0",
|
||||
"serve-static": "1.16.2",
|
||||
"setprototypeof": "1.2.0",
|
||||
"statuses": "2.0.1",
|
||||
"type-is": "~1.6.18",
|
||||
@ -8099,10 +8138,11 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/express/node_modules/path-to-regexp": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
||||
"integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
|
||||
"dev": true
|
||||
"version": "0.1.10",
|
||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz",
|
||||
"integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/express/node_modules/safe-buffer": {
|
||||
"version": "5.2.1",
|
||||
@ -8278,13 +8318,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/finalhandler": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
|
||||
"integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
|
||||
"integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"debug": "2.6.9",
|
||||
"encodeurl": "~1.0.2",
|
||||
"encodeurl": "~2.0.0",
|
||||
"escape-html": "~1.0.3",
|
||||
"on-finished": "2.4.1",
|
||||
"parseurl": "~1.3.3",
|
||||
@ -8300,6 +8341,7 @@
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
@ -8308,7 +8350,8 @@
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/find-cache-dir": {
|
||||
"version": "3.3.1",
|
||||
@ -8685,6 +8728,7 @@
|
||||
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
|
||||
"integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
@ -9258,6 +9302,7 @@
|
||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
|
||||
"integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"depd": "2.0.0",
|
||||
"inherits": "2.0.4",
|
||||
@ -9372,6 +9417,7 @@
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
|
||||
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"safer-buffer": ">= 2.1.2 < 3"
|
||||
},
|
||||
@ -13718,6 +13764,7 @@
|
||||
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
||||
"integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
@ -13735,10 +13782,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/merge-descriptors": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
|
||||
"integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
|
||||
"dev": true
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
|
||||
"integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/merge-stream": {
|
||||
"version": "2.0.0",
|
||||
@ -13785,10 +13836,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"
|
||||
@ -13802,6 +13854,7 @@
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
|
||||
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
"mime": "cli.js"
|
||||
},
|
||||
@ -14218,6 +14271,7 @@
|
||||
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
|
||||
"integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"ee-first": "1.1.1"
|
||||
},
|
||||
@ -14539,10 +14593,11 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/path-to-regexp": {
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
|
||||
"integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz",
|
||||
"integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"isarray": "0.0.1"
|
||||
}
|
||||
@ -15010,12 +15065,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/qs": {
|
||||
"version": "6.11.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
|
||||
"integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
|
||||
"version": "6.13.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
|
||||
"integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
|
||||
"dev": true,
|
||||
"license": "BSD-3-Clause",
|
||||
"dependencies": {
|
||||
"side-channel": "^1.0.4"
|
||||
"side-channel": "^1.0.6"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.6"
|
||||
@ -15082,6 +15138,7 @@
|
||||
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
|
||||
"integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"bytes": "3.1.2",
|
||||
"http-errors": "2.0.0",
|
||||
@ -15097,6 +15154,7 @@
|
||||
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
|
||||
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
@ -15469,7 +15527,6 @@
|
||||
"version": "16.9.0",
|
||||
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.9.0.tgz",
|
||||
"integrity": "sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"loose-envify": "^1.1.0",
|
||||
"object-assign": "^4.1.1",
|
||||
@ -16223,7 +16280,6 @@
|
||||
"version": "0.15.0",
|
||||
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.15.0.tgz",
|
||||
"integrity": "sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"loose-envify": "^1.1.0",
|
||||
"object-assign": "^4.1.1"
|
||||
@ -16276,10 +16332,11 @@
|
||||
}
|
||||
},
|
||||
"node_modules/send": {
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
|
||||
"integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
|
||||
"version": "0.19.0",
|
||||
"resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
|
||||
"integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"debug": "2.6.9",
|
||||
"depd": "2.0.0",
|
||||
@ -16304,6 +16361,7 @@
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
@ -16312,13 +16370,25 @@
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/send/node_modules/encodeurl": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
|
||||
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/send/node_modules/ms": {
|
||||
"version": "2.1.3",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
||||
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/serialize-javascript": {
|
||||
"version": "6.0.2",
|
||||
@ -16408,15 +16478,16 @@
|
||||
}
|
||||
},
|
||||
"node_modules/serve-static": {
|
||||
"version": "1.15.0",
|
||||
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
|
||||
"integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
|
||||
"version": "1.16.2",
|
||||
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
|
||||
"integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"encodeurl": "~1.0.2",
|
||||
"encodeurl": "~2.0.0",
|
||||
"escape-html": "~1.0.3",
|
||||
"parseurl": "~1.3.3",
|
||||
"send": "0.18.0"
|
||||
"send": "0.19.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.8.0"
|
||||
@ -16458,7 +16529,8 @@
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
|
||||
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/shell-quote": {
|
||||
"version": "1.8.1",
|
||||
@ -16679,6 +16751,7 @@
|
||||
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
|
||||
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
@ -17200,6 +17273,7 @@
|
||||
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
|
||||
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=0.6"
|
||||
}
|
||||
@ -17326,6 +17400,7 @@
|
||||
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
|
||||
"integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"media-typer": "0.3.0",
|
||||
"mime-types": "~2.1.24"
|
||||
@ -17583,6 +17658,7 @@
|
||||
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
||||
"integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
@ -17822,13 +17898,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 +17912,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",
|
||||
@ -21059,6 +21134,19 @@
|
||||
"@sinonjs/commons": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"@tanstack/react-table": {
|
||||
"version": "8.20.5",
|
||||
"resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.20.5.tgz",
|
||||
"integrity": "sha512-WEHopKw3znbUZ61s9i0+i9g8drmDo6asTWbrQh8Us63DAk/M0FkmIqERew6P71HI75ksZ2Pxyuf4vvKh9rAkiA==",
|
||||
"requires": {
|
||||
"@tanstack/table-core": "8.20.5"
|
||||
}
|
||||
},
|
||||
"@tanstack/table-core": {
|
||||
"version": "8.20.5",
|
||||
"resolved": "https://registry.npmjs.org/@tanstack/table-core/-/table-core-8.20.5.tgz",
|
||||
"integrity": "sha512-P9dF7XbibHph2PFRz8gfBKEXEY/HJPOhym8CHmjF8y3q5mWpKx9xtZapXQUWCgkqvsK0R46Azuz+VaxD4Xl+Tg=="
|
||||
},
|
||||
"@testing-library/dom": {
|
||||
"version": "5.6.1",
|
||||
"resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-5.6.1.tgz",
|
||||
@ -21181,21 +21269,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",
|
||||
@ -22293,9 +22373,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"body-parser": {
|
||||
"version": "1.20.2",
|
||||
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
|
||||
"integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
|
||||
"version": "1.20.3",
|
||||
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
|
||||
"integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"bytes": "3.1.2",
|
||||
@ -22306,7 +22386,7 @@
|
||||
"http-errors": "2.0.0",
|
||||
"iconv-lite": "0.4.24",
|
||||
"on-finished": "2.4.1",
|
||||
"qs": "6.11.0",
|
||||
"qs": "6.13.0",
|
||||
"raw-body": "2.5.2",
|
||||
"type-is": "~1.6.18",
|
||||
"unpipe": "1.0.0"
|
||||
@ -23531,15 +23611,15 @@
|
||||
"dev": true
|
||||
},
|
||||
"encodeurl": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
|
||||
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
|
||||
"integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
|
||||
"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",
|
||||
@ -24506,37 +24586,37 @@
|
||||
}
|
||||
},
|
||||
"express": {
|
||||
"version": "4.19.2",
|
||||
"resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
|
||||
"integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
|
||||
"version": "4.21.0",
|
||||
"resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz",
|
||||
"integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"accepts": "~1.3.8",
|
||||
"array-flatten": "1.1.1",
|
||||
"body-parser": "1.20.2",
|
||||
"body-parser": "1.20.3",
|
||||
"content-disposition": "0.5.4",
|
||||
"content-type": "~1.0.4",
|
||||
"cookie": "0.6.0",
|
||||
"cookie-signature": "1.0.6",
|
||||
"debug": "2.6.9",
|
||||
"depd": "2.0.0",
|
||||
"encodeurl": "~1.0.2",
|
||||
"encodeurl": "~2.0.0",
|
||||
"escape-html": "~1.0.3",
|
||||
"etag": "~1.8.1",
|
||||
"finalhandler": "1.2.0",
|
||||
"finalhandler": "1.3.1",
|
||||
"fresh": "0.5.2",
|
||||
"http-errors": "2.0.0",
|
||||
"merge-descriptors": "1.0.1",
|
||||
"merge-descriptors": "1.0.3",
|
||||
"methods": "~1.1.2",
|
||||
"on-finished": "2.4.1",
|
||||
"parseurl": "~1.3.3",
|
||||
"path-to-regexp": "0.1.7",
|
||||
"path-to-regexp": "0.1.10",
|
||||
"proxy-addr": "~2.0.7",
|
||||
"qs": "6.11.0",
|
||||
"qs": "6.13.0",
|
||||
"range-parser": "~1.2.1",
|
||||
"safe-buffer": "5.2.1",
|
||||
"send": "0.18.0",
|
||||
"serve-static": "1.15.0",
|
||||
"send": "0.19.0",
|
||||
"serve-static": "1.16.2",
|
||||
"setprototypeof": "1.2.0",
|
||||
"statuses": "2.0.1",
|
||||
"type-is": "~1.6.18",
|
||||
@ -24560,9 +24640,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"path-to-regexp": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
||||
"integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
|
||||
"version": "0.1.10",
|
||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz",
|
||||
"integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==",
|
||||
"dev": true
|
||||
},
|
||||
"safe-buffer": {
|
||||
@ -24697,13 +24777,13 @@
|
||||
}
|
||||
},
|
||||
"finalhandler": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
|
||||
"integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
|
||||
"integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"debug": "2.6.9",
|
||||
"encodeurl": "~1.0.2",
|
||||
"encodeurl": "~2.0.0",
|
||||
"escape-html": "~1.0.3",
|
||||
"on-finished": "2.4.1",
|
||||
"parseurl": "~1.3.3",
|
||||
@ -28806,9 +28886,9 @@
|
||||
}
|
||||
},
|
||||
"merge-descriptors": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
|
||||
"integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
|
||||
"integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
|
||||
"dev": true
|
||||
},
|
||||
"merge-stream": {
|
||||
@ -28840,9 +28920,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",
|
||||
@ -29391,9 +29471,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"path-to-regexp": {
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
|
||||
"integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz",
|
||||
"integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"isarray": "0.0.1"
|
||||
@ -29725,12 +29805,12 @@
|
||||
"requires": {}
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.11.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
|
||||
"integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
|
||||
"version": "6.13.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
|
||||
"integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"side-channel": "^1.0.4"
|
||||
"side-channel": "^1.0.6"
|
||||
}
|
||||
},
|
||||
"qss": {
|
||||
@ -30048,7 +30128,6 @@
|
||||
"version": "16.9.0",
|
||||
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.9.0.tgz",
|
||||
"integrity": "sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"loose-envify": "^1.1.0",
|
||||
"object-assign": "^4.1.1",
|
||||
@ -30613,7 +30692,6 @@
|
||||
"version": "0.15.0",
|
||||
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.15.0.tgz",
|
||||
"integrity": "sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"loose-envify": "^1.1.0",
|
||||
"object-assign": "^4.1.1"
|
||||
@ -30653,9 +30731,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"send": {
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
|
||||
"integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
|
||||
"version": "0.19.0",
|
||||
"resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
|
||||
"integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"debug": "2.6.9",
|
||||
@ -30690,6 +30768,12 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"encodeurl": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
|
||||
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
|
||||
"dev": true
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.3",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
||||
@ -30776,15 +30860,15 @@
|
||||
}
|
||||
},
|
||||
"serve-static": {
|
||||
"version": "1.15.0",
|
||||
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
|
||||
"integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
|
||||
"version": "1.16.2",
|
||||
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
|
||||
"integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"encodeurl": "~1.0.2",
|
||||
"encodeurl": "~2.0.0",
|
||||
"escape-html": "~1.0.3",
|
||||
"parseurl": "~1.3.3",
|
||||
"send": "0.18.0"
|
||||
"send": "0.19.0"
|
||||
}
|
||||
},
|
||||
"set-function-length": {
|
||||
@ -31815,12 +31899,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 +31912,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",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "foris",
|
||||
"version": "6.1.0",
|
||||
"version": "6.5.0",
|
||||
"description": "Foris JS library is a set of components and utils for reForis application and plugins.",
|
||||
"author": "CZ.NIC, z.s.p.o.",
|
||||
"repository": {
|
||||
@ -18,6 +18,7 @@
|
||||
"@fortawesome/free-regular-svg-icons": "^6.6.0",
|
||||
"@fortawesome/free-solid-svg-icons": "^6.6.0",
|
||||
"@fortawesome/react-fontawesome": "^0.2.2",
|
||||
"@tanstack/react-table": "^8.20.5",
|
||||
"axios": "^1.7.2",
|
||||
"immutability-helper": "^3.1.1",
|
||||
"moment": "^2.30.1",
|
||||
|
@ -5,10 +5,12 @@
|
||||
* See /LICENSE for more information.
|
||||
*/
|
||||
|
||||
import React from "react";
|
||||
import React, { useRef, useEffect, useState } from "react";
|
||||
|
||||
import PropTypes from "prop-types";
|
||||
|
||||
import { useFocusTrap } from "../utils/hooks";
|
||||
|
||||
export const ALERT_TYPES = Object.freeze({
|
||||
PRIMARY: "primary",
|
||||
SECONDARY: "secondary",
|
||||
@ -37,17 +39,37 @@ Alert.defaultProps = {
|
||||
};
|
||||
|
||||
function Alert({ type, onDismiss, children }) {
|
||||
const alertRef = useRef();
|
||||
const [isVisible, setIsVisible] = useState(true);
|
||||
useFocusTrap(alertRef, !!onDismiss);
|
||||
|
||||
useEffect(() => {
|
||||
if (onDismiss) {
|
||||
const timeout = setTimeout(() => setIsVisible(false), 7000);
|
||||
return () => clearTimeout(timeout);
|
||||
}
|
||||
}, [onDismiss]);
|
||||
|
||||
const handleAnimationEnd = () => {
|
||||
if (!isVisible && onDismiss) {
|
||||
onDismiss();
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<div
|
||||
className={`alert alert-${type} ${
|
||||
ref={alertRef}
|
||||
className={`alert alert-${type} ${isVisible ? "alert-fade-in" : "alert-slide-out-top"} ${
|
||||
onDismiss ? "alert-dismissible" : ""
|
||||
}`.trim()}
|
||||
role="alert"
|
||||
onAnimationEnd={handleAnimationEnd}
|
||||
>
|
||||
{onDismiss && (
|
||||
<button
|
||||
type="button"
|
||||
className="btn-close"
|
||||
onClick={onDismiss}
|
||||
onClick={() => setIsVisible(false)}
|
||||
aria-label={_("Close")}
|
||||
/>
|
||||
)}
|
||||
|
@ -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>
|
||||
);
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ All additional `props` are passed to the `<input type="email">` HTML component.
|
||||
|
||||
```js
|
||||
import { useState } from "react";
|
||||
import Button from "./Button";
|
||||
const [email, setEmail] = useState("Wrong email");
|
||||
<form onSubmit={(e) => e.preventDefault()}>
|
||||
<EmailInput
|
||||
@ -14,6 +15,6 @@ const [email, setEmail] = useState("Wrong email");
|
||||
helpText="Read the small text!"
|
||||
onChange={(event) => setEmail(event.target.value)}
|
||||
/>
|
||||
<button type="submit">Try to submit</button>
|
||||
<Button type="submit">Try to submit</Button>
|
||||
</form>;
|
||||
```
|
||||
|
@ -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"
|
||||
|
@ -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>
|
||||
)}
|
||||
|
48
src/bootstrap/Radio.js
Normal file
48
src/bootstrap/Radio.js
Normal file
@ -0,0 +1,48 @@
|
||||
/*
|
||||
* Copyright (C) 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.
|
||||
*/
|
||||
|
||||
import React from "react";
|
||||
|
||||
import PropTypes from "prop-types";
|
||||
|
||||
Radio.propTypes = {
|
||||
label: PropTypes.oneOfType([
|
||||
PropTypes.string,
|
||||
PropTypes.element,
|
||||
PropTypes.node,
|
||||
PropTypes.arrayOf(PropTypes.node),
|
||||
]).isRequired,
|
||||
id: PropTypes.string.isRequired,
|
||||
inline: PropTypes.bool,
|
||||
helpText: PropTypes.string,
|
||||
className: PropTypes.string,
|
||||
};
|
||||
|
||||
function Radio({ label, id, helpText, inline, className, ...props }) {
|
||||
return (
|
||||
<div
|
||||
className={`${className || "mb-3"} ${inline ? "form-check form-check-inline" : ""}`.trim()}
|
||||
>
|
||||
<input
|
||||
id={id}
|
||||
className="form-check-input me-2"
|
||||
type="radio"
|
||||
{...props}
|
||||
/>
|
||||
<label className="form-check-label" htmlFor={id}>
|
||||
{label}
|
||||
{helpText && (
|
||||
<div className="form-text">
|
||||
<small>{helpText}</small>
|
||||
</div>
|
||||
)}
|
||||
</label>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default Radio;
|
@ -10,6 +10,8 @@ import React from "react";
|
||||
import PropTypes from "prop-types";
|
||||
import { useUID } from "react-uid";
|
||||
|
||||
import Radio from "./Radio";
|
||||
|
||||
RadioSet.propTypes = {
|
||||
/** Name attribute of the input HTML tag. */
|
||||
name: PropTypes.string.isRequired,
|
||||
@ -73,40 +75,4 @@ function RadioSet({ name, label, choices, value, helpText, inline, ...props }) {
|
||||
);
|
||||
}
|
||||
|
||||
Radio.propTypes = {
|
||||
label: PropTypes.oneOfType([
|
||||
PropTypes.string,
|
||||
PropTypes.element,
|
||||
PropTypes.node,
|
||||
PropTypes.arrayOf(PropTypes.node),
|
||||
]).isRequired,
|
||||
id: PropTypes.string.isRequired,
|
||||
inline: PropTypes.bool,
|
||||
helpText: PropTypes.string,
|
||||
className: PropTypes.string,
|
||||
};
|
||||
|
||||
export function Radio({ label, id, helpText, inline, className, ...props }) {
|
||||
return (
|
||||
<div
|
||||
className={`${className || "mb-3"} ${inline ? "form-check form-check-inline" : ""}`.trim()}
|
||||
>
|
||||
<input
|
||||
id={id}
|
||||
className="form-check-input me-2"
|
||||
type="radio"
|
||||
{...props}
|
||||
/>
|
||||
<label className="form-check-label" htmlFor={id}>
|
||||
{label}
|
||||
{helpText && (
|
||||
<div className="form-text">
|
||||
<small>{helpText}</small>
|
||||
</div>
|
||||
)}
|
||||
</label>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default RadioSet;
|
||||
|
@ -9,7 +9,7 @@
|
||||
.spinner-wrapper .spinner-border {
|
||||
width: 4rem;
|
||||
height: 4rem;
|
||||
color: #00a2e2;
|
||||
color: var(--bs-primary);
|
||||
}
|
||||
|
||||
.spinner-fs-background {
|
||||
|
42
src/bootstrap/ThreeDotsMenu.js
Normal file
42
src/bootstrap/ThreeDotsMenu.js
Normal file
@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright (C) 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.
|
||||
*/
|
||||
|
||||
import React from "react";
|
||||
|
||||
import { faEllipsisVertical } from "@fortawesome/free-solid-svg-icons";
|
||||
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
||||
import PropTypes from "prop-types";
|
||||
|
||||
import Button from "./Button";
|
||||
|
||||
ThreeDotsMenu.propTypes = {
|
||||
/** Menu items. */
|
||||
children: PropTypes.arrayOf(PropTypes.node).isRequired,
|
||||
};
|
||||
|
||||
function ThreeDotsMenu({ children, ...props }) {
|
||||
return (
|
||||
<div className="dropdown position-static" {...props}>
|
||||
<Button
|
||||
className="btn-sm btn-link text-body"
|
||||
data-bs-toggle="dropdown"
|
||||
aria-expanded="false"
|
||||
>
|
||||
<FontAwesomeIcon icon={faEllipsisVertical} />
|
||||
</Button>
|
||||
<ul className="dropdown-menu">
|
||||
{children.map((child) => (
|
||||
<li key={child.key || child.props.id || Math.random()}>
|
||||
{child}
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default ThreeDotsMenu;
|
40
src/bootstrap/ThreeDotsMenu.md
Normal file
40
src/bootstrap/ThreeDotsMenu.md
Normal file
@ -0,0 +1,40 @@
|
||||
ThreeDotsMenu Bootstrap component is a dropdown menu that appears when the user
|
||||
clicks on three dots. It is used to display a list of actions that can be
|
||||
performed on a particular item.
|
||||
|
||||
```js
|
||||
import { useState } from "react";
|
||||
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
||||
import { faEdit, faTrash } from "@fortawesome/free-solid-svg-icons";
|
||||
|
||||
const threeDotsMenuItems = [
|
||||
{
|
||||
text: "Edit",
|
||||
icon: faEdit,
|
||||
onClick: () => {
|
||||
alert("Edit clicked");
|
||||
},
|
||||
},
|
||||
{
|
||||
text: "Delete",
|
||||
icon: faTrash,
|
||||
onClick: () => {
|
||||
alert("Delete clicked");
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
<ThreeDotsMenu>
|
||||
{threeDotsMenuItems.map((item, index) => (
|
||||
<button key={index} onClick={item.onClick} className="dropdown-item">
|
||||
<FontAwesomeIcon
|
||||
icon={item.icon}
|
||||
className="me-1"
|
||||
width="1rem"
|
||||
size="sm"
|
||||
/>
|
||||
{item.text}
|
||||
</button>
|
||||
))}
|
||||
</ThreeDotsMenu>;
|
||||
```
|
135
src/common/ActionButtonWithModal/ActionButtonWithModal.js
Normal file
135
src/common/ActionButtonWithModal/ActionButtonWithModal.js
Normal file
@ -0,0 +1,135 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
import React, { useState, useEffect } from "react";
|
||||
|
||||
import PropTypes from "prop-types";
|
||||
|
||||
import { useAPIPost } from "../../api/hooks";
|
||||
import { API_STATE } from "../../api/utils";
|
||||
import Button from "../../bootstrap/Button";
|
||||
import {
|
||||
Modal,
|
||||
ModalHeader,
|
||||
ModalBody,
|
||||
ModalFooter,
|
||||
} from "../../bootstrap/Modal";
|
||||
import { useAlert } from "../../context/alertContext/AlertContext";
|
||||
|
||||
ActionButtonWithModal.propTypes = {
|
||||
/** Component that triggers the action. */
|
||||
actionTrigger: PropTypes.elementType.isRequired,
|
||||
/** URL to send the action to. */
|
||||
actionUrl: PropTypes.string.isRequired,
|
||||
/** Title of the modal. */
|
||||
modalTitle: PropTypes.string.isRequired,
|
||||
/** Message of the modal. */
|
||||
modalMessage: PropTypes.string.isRequired,
|
||||
/** Text of the action button in the modal. */
|
||||
modalActionText: PropTypes.string,
|
||||
/** Props for the action button in the modal. */
|
||||
modalActionProps: PropTypes.object,
|
||||
/** Message to display on successful action. */
|
||||
successMessage: PropTypes.string,
|
||||
/** Message to display on failed action. */
|
||||
errorMessage: PropTypes.string,
|
||||
};
|
||||
|
||||
function ActionButtonWithModal({
|
||||
actionTrigger: ActionTriggerComponent,
|
||||
actionUrl,
|
||||
modalTitle,
|
||||
modalMessage,
|
||||
modalActionText,
|
||||
modalActionProps,
|
||||
successMessage,
|
||||
errorMessage,
|
||||
}) {
|
||||
const [triggered, setTriggered] = useState(false);
|
||||
const [modalShown, setModalShown] = useState(false);
|
||||
const [triggerActionStatus, triggerAction] = useAPIPost(actionUrl);
|
||||
|
||||
const [setAlert] = useAlert();
|
||||
useEffect(() => {
|
||||
if (triggerActionStatus.state === API_STATE.SUCCESS) {
|
||||
setAlert(
|
||||
successMessage || _("Action successful."),
|
||||
API_STATE.SUCCESS
|
||||
);
|
||||
}
|
||||
if (triggerActionStatus.state === API_STATE.ERROR) {
|
||||
setAlert(errorMessage || _("Action failed."));
|
||||
}
|
||||
}, [triggerActionStatus, setAlert, successMessage, errorMessage]);
|
||||
|
||||
const actionHandler = () => {
|
||||
setTriggered(true);
|
||||
triggerAction();
|
||||
setModalShown(false);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<ActionModal
|
||||
shown={modalShown}
|
||||
setShown={setModalShown}
|
||||
onAction={actionHandler}
|
||||
title={modalTitle}
|
||||
message={modalMessage}
|
||||
actionText={modalActionText}
|
||||
actionProps={modalActionProps}
|
||||
/>
|
||||
<ActionTriggerComponent
|
||||
loading={triggered}
|
||||
disabled={triggered}
|
||||
onClick={() => setModalShown(true)}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
ActionModal.propTypes = {
|
||||
shown: PropTypes.bool.isRequired,
|
||||
setShown: PropTypes.func.isRequired,
|
||||
onAction: PropTypes.func.isRequired,
|
||||
title: PropTypes.string.isRequired,
|
||||
message: PropTypes.string.isRequired,
|
||||
actionText: PropTypes.string,
|
||||
actionProps: PropTypes.object,
|
||||
};
|
||||
|
||||
function ActionModal({
|
||||
shown,
|
||||
setShown,
|
||||
onAction,
|
||||
title,
|
||||
message,
|
||||
actionText,
|
||||
actionProps,
|
||||
}) {
|
||||
return (
|
||||
<Modal shown={shown} setShown={setShown}>
|
||||
<ModalHeader setShown={setShown} title={title} />
|
||||
<ModalBody>
|
||||
<p className="mb-0">{message}</p>
|
||||
</ModalBody>
|
||||
<ModalFooter>
|
||||
<Button
|
||||
className="btn-secondary"
|
||||
onClick={() => setShown(false)}
|
||||
>
|
||||
{_("Cancel")}
|
||||
</Button>
|
||||
<Button onClick={onAction} {...actionProps}>
|
||||
{actionText || _("Confirm")}
|
||||
</Button>
|
||||
</ModalFooter>
|
||||
</Modal>
|
||||
);
|
||||
}
|
||||
|
||||
export default ActionButtonWithModal;
|
39
src/common/ActionButtonWithModal/ActionButtonWithModal.md
Normal file
39
src/common/ActionButtonWithModal/ActionButtonWithModal.md
Normal file
@ -0,0 +1,39 @@
|
||||
RebootButton component is a button that opens a modal dialog to confirm the
|
||||
reboot of the device.
|
||||
|
||||
## Usage
|
||||
|
||||
```jsx
|
||||
import React, { useEffect, createContext } from "react";
|
||||
|
||||
import Button from "../../bootstrap/Button";
|
||||
import { AlertContextProvider } from "../../context/alertContext/AlertContext";
|
||||
import ActionButtonWithModal from "./ActionButtonWithModal";
|
||||
|
||||
window.AlertContext = React.createContext();
|
||||
|
||||
const RebootButtonExample = () => {
|
||||
const ActionButton = (props) => {
|
||||
return <Button {...props}>Action</Button>;
|
||||
};
|
||||
|
||||
return (
|
||||
<AlertContextProvider>
|
||||
<div id="modal-container" />
|
||||
<div id="alert-container" />
|
||||
<ActionButtonWithModal
|
||||
actionTrigger={ActionButton}
|
||||
actionUrl="/reforis/api/action"
|
||||
modalTitle="Warning!"
|
||||
modalMessage="Are you sure you want to perform this action?"
|
||||
modalActionText="Confirm action"
|
||||
modalActionProps={{ className: "btn-danger" }}
|
||||
successMessage="Action request succeeded."
|
||||
errorMessage="Action request failed."
|
||||
/>
|
||||
</AlertContextProvider>
|
||||
);
|
||||
};
|
||||
|
||||
<RebootButtonExample />;
|
||||
```
|
@ -1,80 +0,0 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
import React, { useState, useEffect } from "react";
|
||||
|
||||
import PropTypes from "prop-types";
|
||||
|
||||
import { useAPIPost } from "../api/hooks";
|
||||
import { API_STATE } from "../api/utils";
|
||||
import Button from "../bootstrap/Button";
|
||||
import { Modal, ModalHeader, ModalBody, ModalFooter } from "../bootstrap/Modal";
|
||||
import { useAlert } from "../context/alertContext/AlertContext";
|
||||
import { ForisURLs } from "../utils/forisUrls";
|
||||
|
||||
function RebootButton(props) {
|
||||
const [triggered, setTriggered] = useState(false);
|
||||
const [modalShown, setModalShown] = useState(false);
|
||||
const [triggerRebootStatus, triggerReboot] = useAPIPost(ForisURLs.reboot);
|
||||
|
||||
const [setAlert] = useAlert();
|
||||
useEffect(() => {
|
||||
if (triggerRebootStatus.state === API_STATE.ERROR) {
|
||||
setAlert(_("Reboot request failed."));
|
||||
}
|
||||
});
|
||||
|
||||
const rebootHandler = () => {
|
||||
setTriggered(true);
|
||||
triggerReboot();
|
||||
setModalShown(false);
|
||||
};
|
||||
|
||||
return (
|
||||
<>
|
||||
<RebootModal
|
||||
shown={modalShown}
|
||||
setShown={setModalShown}
|
||||
onReboot={rebootHandler}
|
||||
/>
|
||||
<Button
|
||||
className="btn-danger"
|
||||
loading={triggered}
|
||||
disabled={triggered}
|
||||
onClick={() => setModalShown(true)}
|
||||
{...props}
|
||||
>
|
||||
{_("Reboot")}
|
||||
</Button>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
RebootModal.propTypes = {
|
||||
shown: PropTypes.bool.isRequired,
|
||||
setShown: PropTypes.func.isRequired,
|
||||
onReboot: PropTypes.func.isRequired,
|
||||
};
|
||||
|
||||
function RebootModal({ shown, setShown, onReboot }) {
|
||||
return (
|
||||
<Modal shown={shown} setShown={setShown}>
|
||||
<ModalHeader setShown={setShown} title={_("Warning!")} />
|
||||
<ModalBody>
|
||||
<p>{_("Are you sure you want to restart the router?")}</p>
|
||||
</ModalBody>
|
||||
<ModalFooter>
|
||||
<Button onClick={() => setShown(false)}>{_("Cancel")}</Button>
|
||||
<Button className="btn-danger" onClick={onReboot}>
|
||||
{_("Confirm reboot")}
|
||||
</Button>
|
||||
</ModalFooter>
|
||||
</Modal>
|
||||
);
|
||||
}
|
||||
|
||||
export default RebootButton;
|
84
src/common/RichTable/RichTable.js
Normal file
84
src/common/RichTable/RichTable.js
Normal file
@ -0,0 +1,84 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
import React, { useMemo, useState } from "react";
|
||||
|
||||
import {
|
||||
flexRender,
|
||||
getCoreRowModel,
|
||||
getSortedRowModel,
|
||||
getPaginationRowModel,
|
||||
useReactTable,
|
||||
} from "@tanstack/react-table";
|
||||
import PropTypes from "prop-types";
|
||||
|
||||
import RichTableBody from "./RichTableBody";
|
||||
import RichTableHeader from "./RichTableHeader";
|
||||
import RichTablePagination from "./RichTablePagination";
|
||||
|
||||
const fallbackData = [];
|
||||
|
||||
RichTable.propTypes = {
|
||||
/** Columns to be displayed in the table */
|
||||
columns: PropTypes.array.isRequired,
|
||||
/** Data to be displayed in the table */
|
||||
data: PropTypes.array.isRequired,
|
||||
/** Whether to display pagination */
|
||||
withPagination: PropTypes.bool,
|
||||
/** Number of rows per page */
|
||||
pageSize: PropTypes.number,
|
||||
/** Index of the current page */
|
||||
pageIndex: PropTypes.number,
|
||||
};
|
||||
|
||||
function RichTable({
|
||||
columns,
|
||||
data,
|
||||
withPagination,
|
||||
pageSize = 5,
|
||||
pageIndex = 0,
|
||||
}) {
|
||||
const tableColumns = useMemo(() => columns, [columns]);
|
||||
const [tableData] = useState(data ?? fallbackData);
|
||||
const [sorting, setSorting] = useState([]);
|
||||
const [pagination, setPagination] = useState({
|
||||
pageIndex,
|
||||
pageSize,
|
||||
});
|
||||
|
||||
const table = useReactTable({
|
||||
data: tableData,
|
||||
columns: tableColumns,
|
||||
getCoreRowModel: getCoreRowModel(),
|
||||
getSortedRowModel: getSortedRowModel(),
|
||||
getPaginationRowModel: getPaginationRowModel(),
|
||||
onPaginationChange: setPagination,
|
||||
onSortingChange: setSorting,
|
||||
state: {
|
||||
sorting,
|
||||
pagination,
|
||||
},
|
||||
});
|
||||
|
||||
return (
|
||||
<div className="table-responsive">
|
||||
<table className="table table-hover text-nowrap">
|
||||
<RichTableHeader table={table} flexRender={flexRender} />
|
||||
<RichTableBody table={table} flexRender={flexRender} />
|
||||
</table>
|
||||
{withPagination && (
|
||||
<RichTablePagination
|
||||
table={table}
|
||||
tablePageSize={pageSize}
|
||||
allRows={tableData.length}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default RichTable;
|
135
src/common/RichTable/RichTable.md
Normal file
135
src/common/RichTable/RichTable.md
Normal file
@ -0,0 +1,135 @@
|
||||
### Description
|
||||
|
||||
Rich Table is a table component based on
|
||||
[Tanstack React Table](https://tanstack.com/table/). It adds some features to
|
||||
the table component, such as:
|
||||
|
||||
- **Pagination**: The table can be paginated.
|
||||
- **Sorting**: The table can be sorted by columns.
|
||||
- **Row Expansion**: The table rows can be expanded. (To be implemented)
|
||||
|
||||
### Example
|
||||
|
||||
```js
|
||||
import RichTable from "./RichTable";
|
||||
|
||||
const columns = [
|
||||
{
|
||||
header: "Name",
|
||||
accessorKey: "name",
|
||||
},
|
||||
{
|
||||
header: "Surname",
|
||||
accessorKey: "surname",
|
||||
},
|
||||
{
|
||||
header: "Age",
|
||||
accessorKey: "age",
|
||||
},
|
||||
{
|
||||
header: "Phone",
|
||||
accessorKey: "phone",
|
||||
},
|
||||
];
|
||||
|
||||
const data = [
|
||||
{
|
||||
name: "John",
|
||||
surname: "Coltrane",
|
||||
age: 30,
|
||||
phone: "123456789",
|
||||
},
|
||||
{
|
||||
name: "Jane",
|
||||
surname: "Doe",
|
||||
age: 25,
|
||||
phone: "987654321",
|
||||
},
|
||||
{
|
||||
name: "Alice",
|
||||
surname: "Smith",
|
||||
age: 35,
|
||||
phone: "123456789",
|
||||
},
|
||||
{
|
||||
name: "Bob",
|
||||
surname: "Smith",
|
||||
age: 40,
|
||||
phone: "987654321",
|
||||
},
|
||||
{
|
||||
name: "Charlie",
|
||||
surname: "Brown",
|
||||
age: 45,
|
||||
phone: "123456789",
|
||||
},
|
||||
{
|
||||
name: "Daisy",
|
||||
surname: "Brown",
|
||||
age: 50,
|
||||
phone: "987654321",
|
||||
},
|
||||
{
|
||||
name: "Eve",
|
||||
surname: "Johnson",
|
||||
age: 55,
|
||||
phone: "123456789",
|
||||
},
|
||||
{
|
||||
name: "Frank",
|
||||
surname: "Johnson",
|
||||
age: 60,
|
||||
phone: "987654321",
|
||||
},
|
||||
{
|
||||
name: "Grace",
|
||||
surname: "Williams",
|
||||
age: 65,
|
||||
phone: "123456789",
|
||||
},
|
||||
{
|
||||
name: "Henry",
|
||||
surname: "Williams",
|
||||
age: 70,
|
||||
phone: "987654321",
|
||||
},
|
||||
{
|
||||
name: "Ivy",
|
||||
surname: "Brown",
|
||||
age: 75,
|
||||
phone: "123456789",
|
||||
},
|
||||
{
|
||||
name: "Jack",
|
||||
surname: "Brown",
|
||||
age: 80,
|
||||
phone: "987654321",
|
||||
},
|
||||
{
|
||||
name: "Kelly",
|
||||
surname: "Johnson",
|
||||
age: 85,
|
||||
phone: "123456789",
|
||||
},
|
||||
{
|
||||
name: "Liam",
|
||||
surname: "Johnson",
|
||||
age: 90,
|
||||
phone: "987654321",
|
||||
},
|
||||
{
|
||||
name: "Mia",
|
||||
surname: "Williams",
|
||||
age: 95,
|
||||
phone: "123456789",
|
||||
},
|
||||
{
|
||||
name: "Nathan",
|
||||
surname: "Williams",
|
||||
age: 100,
|
||||
phone: "987654321",
|
||||
},
|
||||
];
|
||||
|
||||
<RichTable columns={columns} data={data} withPagination />;
|
||||
```
|
48
src/common/RichTable/RichTableBody.js
Normal file
48
src/common/RichTable/RichTableBody.js
Normal file
@ -0,0 +1,48 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
import React from "react";
|
||||
|
||||
import propTypes from "prop-types";
|
||||
|
||||
RichTableBody.propTypes = {
|
||||
table: propTypes.shape({
|
||||
getRowModel: propTypes.func.isRequired,
|
||||
}).isRequired,
|
||||
flexRender: propTypes.func.isRequired,
|
||||
};
|
||||
|
||||
function RichTableBody({ table, flexRender }) {
|
||||
return (
|
||||
<tbody>
|
||||
{table.getRowModel().rows.map((row) => {
|
||||
return (
|
||||
<tr key={row.id} className="align-middle">
|
||||
{row.getVisibleCells().map((cell) => {
|
||||
return (
|
||||
<td
|
||||
key={cell.id}
|
||||
{...(cell.column.columnDef.className && {
|
||||
className:
|
||||
cell.column.columnDef.className,
|
||||
})}
|
||||
>
|
||||
{flexRender(
|
||||
cell.column.columnDef.cell,
|
||||
cell.getContext()
|
||||
)}
|
||||
</td>
|
||||
);
|
||||
})}
|
||||
</tr>
|
||||
);
|
||||
})}
|
||||
</tbody>
|
||||
);
|
||||
}
|
||||
|
||||
export default RichTableBody;
|
96
src/common/RichTable/RichTableHeader.js
Normal file
96
src/common/RichTable/RichTableHeader.js
Normal file
@ -0,0 +1,96 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
import React from "react";
|
||||
|
||||
import {
|
||||
faSquareCaretUp,
|
||||
faSquareCaretDown,
|
||||
} from "@fortawesome/free-solid-svg-icons";
|
||||
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
||||
import propTypes from "prop-types";
|
||||
|
||||
RichTableHeader.propTypes = {
|
||||
table: propTypes.shape({
|
||||
getHeaderGroups: propTypes.func.isRequired,
|
||||
}).isRequired,
|
||||
flexRender: propTypes.func.isRequired,
|
||||
};
|
||||
|
||||
function RichTableHeader({ table, flexRender }) {
|
||||
const getThTitle = (header) => {
|
||||
if (!header.column.getCanSort()) return undefined;
|
||||
|
||||
const nextSortingOrder = header.column.getNextSortingOrder();
|
||||
if (nextSortingOrder === "asc") return _("Sort ascending");
|
||||
if (nextSortingOrder === "desc") return _("Sort descending");
|
||||
return _("Clear sort");
|
||||
};
|
||||
|
||||
return (
|
||||
<thead className="thead-light">
|
||||
{table.getHeaderGroups().map((headerGroup) => (
|
||||
<tr key={headerGroup.id} role="row">
|
||||
{headerGroup.headers.map((header) => (
|
||||
<th
|
||||
key={header.id}
|
||||
colSpan={header.colSpan}
|
||||
{...(header.column.columnDef.headerClassName && {
|
||||
className:
|
||||
header.column.columnDef.headerClassName,
|
||||
})}
|
||||
>
|
||||
{header.isPlaceholder ||
|
||||
header.column.columnDef.headerIsHidden ? (
|
||||
<div className="d-none" aria-hidden="true">
|
||||
{flexRender(
|
||||
header.column.columnDef.header,
|
||||
header.getContext()
|
||||
)}
|
||||
</div>
|
||||
) : (
|
||||
<button
|
||||
type="button"
|
||||
className={`btn btn-link text-decoration-none text-reset fw-bold p-0 d-flex align-items-center
|
||||
${
|
||||
header.column.getCanSort()
|
||||
? "d-flex align-items-center"
|
||||
: ""
|
||||
}
|
||||
`}
|
||||
onClick={header.column.getToggleSortingHandler()}
|
||||
title={getThTitle(header)}
|
||||
>
|
||||
{flexRender(
|
||||
header.column.columnDef.header,
|
||||
header.getContext()
|
||||
)}
|
||||
{{
|
||||
asc: (
|
||||
<FontAwesomeIcon
|
||||
icon={faSquareCaretUp}
|
||||
className="ms-1 text-primary"
|
||||
/>
|
||||
),
|
||||
desc: (
|
||||
<FontAwesomeIcon
|
||||
icon={faSquareCaretDown}
|
||||
className="ms-1 text-primary"
|
||||
/>
|
||||
),
|
||||
}[header.column.getIsSorted()] ?? null}
|
||||
</button>
|
||||
)}
|
||||
</th>
|
||||
))}
|
||||
</tr>
|
||||
))}
|
||||
</thead>
|
||||
);
|
||||
}
|
||||
|
||||
export default RichTableHeader;
|
128
src/common/RichTable/RichTablePagination.js
Normal file
128
src/common/RichTable/RichTablePagination.js
Normal file
@ -0,0 +1,128 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
import React, { useMemo } from "react";
|
||||
|
||||
import {
|
||||
faAngleLeft,
|
||||
faAnglesLeft,
|
||||
faAngleRight,
|
||||
faAnglesRight,
|
||||
} from "@fortawesome/free-solid-svg-icons";
|
||||
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
||||
import propTypes from "prop-types";
|
||||
|
||||
RichTablePagination.propTypes = {
|
||||
table: propTypes.shape({
|
||||
getState: propTypes.func.isRequired,
|
||||
getCanPreviousPage: propTypes.func.isRequired,
|
||||
getCanNextPage: propTypes.func.isRequired,
|
||||
firstPage: propTypes.func.isRequired,
|
||||
previousPage: propTypes.func.isRequired,
|
||||
nextPage: propTypes.func.isRequired,
|
||||
lastPage: propTypes.func.isRequired,
|
||||
setPageSize: propTypes.func.isRequired,
|
||||
getPageCount: propTypes.func.isRequired,
|
||||
}).isRequired,
|
||||
tablePageSize: propTypes.number,
|
||||
allRows: propTypes.number,
|
||||
};
|
||||
|
||||
function RichTablePagination({ table, tablePageSize, allRows }) {
|
||||
const { pagination } = table.getState();
|
||||
const prevPagBtnDisabled = !table.getCanPreviousPage();
|
||||
const nextPagBtnDisabled = !table.getCanNextPage();
|
||||
|
||||
const pageSizes = useMemo(() => {
|
||||
return [tablePageSize ?? 5, 10, 25].filter(
|
||||
(value, index, self) => self.indexOf(value) === index
|
||||
);
|
||||
}, [tablePageSize]);
|
||||
|
||||
const renderPaginationButton = (icon, ariaLabel, onClick, disabled) => (
|
||||
<li
|
||||
className={`page-item ${disabled ? "disabled" : ""}`}
|
||||
style={{ cursor: disabled ? "not-allowed" : "pointer" }}
|
||||
>
|
||||
<button
|
||||
type="button"
|
||||
className="page-link"
|
||||
aria-label={ariaLabel}
|
||||
onClick={onClick}
|
||||
disabled={disabled}
|
||||
>
|
||||
<FontAwesomeIcon icon={icon} />
|
||||
</button>
|
||||
</li>
|
||||
);
|
||||
|
||||
return (
|
||||
<nav
|
||||
aria-label={_("Pagination navigation bar")}
|
||||
className="d-flex gap-2 justify-content-start align-items-center mx-2 mb-1 text-nowrap"
|
||||
>
|
||||
<ul className="pagination pagination-sm mb-0">
|
||||
{renderPaginationButton(
|
||||
faAnglesLeft,
|
||||
_("First page"),
|
||||
() => table.firstPage(),
|
||||
prevPagBtnDisabled
|
||||
)}
|
||||
{renderPaginationButton(
|
||||
faAngleLeft,
|
||||
_("Previous page"),
|
||||
() => table.previousPage(),
|
||||
prevPagBtnDisabled
|
||||
)}
|
||||
{renderPaginationButton(
|
||||
faAngleRight,
|
||||
_("Next page"),
|
||||
() => table.nextPage(),
|
||||
nextPagBtnDisabled
|
||||
)}
|
||||
{renderPaginationButton(
|
||||
faAnglesRight,
|
||||
_("Last page"),
|
||||
() => table.lastPage(),
|
||||
nextPagBtnDisabled
|
||||
)}
|
||||
</ul>
|
||||
<span>
|
||||
{_("Page")}
|
||||
<span className="fw-bold">
|
||||
{pagination.pageIndex + 1}
|
||||
{_("of")}
|
||||
{table.getPageCount().toLocaleString()}
|
||||
</span>
|
||||
</span>
|
||||
<div
|
||||
className="vr mx-1 align-self-center"
|
||||
style={{ height: "1.5rem" }}
|
||||
/>
|
||||
<span>{_("Rows per page:")}</span>
|
||||
<select
|
||||
className="form-select form-select-sm w-auto"
|
||||
aria-label={_("Select rows per page")}
|
||||
value={pagination.pageSize}
|
||||
onChange={(e) => {
|
||||
table.setPageSize(Number(e.target.value));
|
||||
}}
|
||||
>
|
||||
{pageSizes.map((pageSize) => (
|
||||
<option key={pageSize} value={pageSize}>
|
||||
{pageSize}
|
||||
</option>
|
||||
))}
|
||||
<option key={allRows} value={allRows}>
|
||||
{_("All")}
|
||||
</option>
|
||||
</select>
|
||||
</nav>
|
||||
);
|
||||
}
|
||||
|
||||
export default RichTablePagination;
|
@ -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")}
|
||||
|
@ -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);
|
||||
|
@ -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"
|
||||
>
|
||||
|
92
src/common/__tests__/ActionButtonWithModal.test.js
Normal file
92
src/common/__tests__/ActionButtonWithModal.test.js
Normal file
@ -0,0 +1,92 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
import React from "react";
|
||||
|
||||
import Button from "bootstrap/Button";
|
||||
|
||||
import {
|
||||
fireEvent,
|
||||
getByText,
|
||||
queryByText,
|
||||
render,
|
||||
wait,
|
||||
} from "customTestRender";
|
||||
import mockAxios from "jest-mock-axios";
|
||||
import { mockJSONError } from "testUtils/network";
|
||||
import { mockSetAlert } from "testUtils/alertContextMock";
|
||||
|
||||
import ActionButtonWithModal from "../ActionButtonWithModal/ActionButtonWithModal";
|
||||
|
||||
describe("<ActionButtonWithModal/>", () => {
|
||||
let componentContainer;
|
||||
const ActionButton = (props) => (
|
||||
<Button type="button" {...props}>
|
||||
Action
|
||||
</Button>
|
||||
);
|
||||
|
||||
beforeEach(() => {
|
||||
const { container } = render(
|
||||
<>
|
||||
<div id="modal-container" />
|
||||
<div id="alert-container" />
|
||||
<ActionButtonWithModal
|
||||
actionTrigger={ActionButton}
|
||||
actionUrl="/reforis/api/action"
|
||||
modalTitle="Warning!"
|
||||
modalMessage="Are you sure you want to perform this action?"
|
||||
modalActionText="Confirm action"
|
||||
modalActionProps={{ className: "btn-danger" }}
|
||||
successMessage="Action request succeeded."
|
||||
errorMessage="Action request failed."
|
||||
/>
|
||||
</>
|
||||
);
|
||||
componentContainer = container;
|
||||
});
|
||||
|
||||
it("Render button.", () => {
|
||||
expect(componentContainer).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it("Render modal.", () => {
|
||||
fireEvent.click(getByText(componentContainer, "Action"));
|
||||
expect(componentContainer).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it("Confirm action.", () => {
|
||||
fireEvent.click(getByText(componentContainer, "Action"));
|
||||
fireEvent.click(getByText(componentContainer, "Confirm action"));
|
||||
expect(mockAxios.post).toHaveBeenCalledWith(
|
||||
"/reforis/api/action",
|
||||
undefined,
|
||||
expect.anything()
|
||||
);
|
||||
});
|
||||
|
||||
it("Hold error.", async () => {
|
||||
fireEvent.click(getByText(componentContainer, "Action"));
|
||||
fireEvent.click(getByText(componentContainer, "Confirm action"));
|
||||
mockJSONError();
|
||||
await wait(() =>
|
||||
expect(mockSetAlert).toBeCalledWith("Action request failed.")
|
||||
);
|
||||
});
|
||||
|
||||
it("Show success alert on successful action.", async () => {
|
||||
fireEvent.click(getByText(componentContainer, "Action"));
|
||||
fireEvent.click(getByText(componentContainer, "Confirm action"));
|
||||
mockAxios.mockResponse({ status: 200 });
|
||||
await wait(() =>
|
||||
expect(mockSetAlert).toBeCalledWith(
|
||||
"Action request succeeded.",
|
||||
"success"
|
||||
)
|
||||
);
|
||||
});
|
||||
});
|
@ -1,63 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2019 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.
|
||||
*/
|
||||
|
||||
import React from "react";
|
||||
|
||||
import {
|
||||
fireEvent,
|
||||
getByText,
|
||||
queryByText,
|
||||
render,
|
||||
wait,
|
||||
} from "customTestRender";
|
||||
import mockAxios from "jest-mock-axios";
|
||||
import { mockJSONError } from "testUtils/network";
|
||||
import { mockSetAlert } from "testUtils/alertContextMock";
|
||||
|
||||
import RebootButton from "../RebootButton";
|
||||
|
||||
describe("<RebootButton/>", () => {
|
||||
let componentContainer;
|
||||
beforeEach(() => {
|
||||
const { container } = render(
|
||||
<>
|
||||
<div id="modal-container" />
|
||||
<RebootButton />
|
||||
</>
|
||||
);
|
||||
componentContainer = container;
|
||||
});
|
||||
|
||||
it("Render.", () => {
|
||||
expect(componentContainer).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it("Render modal.", () => {
|
||||
expect(queryByText(componentContainer, "Confirm reboot")).toBeNull();
|
||||
fireEvent.click(getByText(componentContainer, "Reboot"));
|
||||
expect(componentContainer).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it("Confirm reboot.", () => {
|
||||
fireEvent.click(getByText(componentContainer, "Reboot"));
|
||||
fireEvent.click(getByText(componentContainer, "Confirm reboot"));
|
||||
expect(mockAxios.post).toHaveBeenCalledWith(
|
||||
"/reforis/api/reboot",
|
||||
undefined,
|
||||
expect.anything()
|
||||
);
|
||||
});
|
||||
|
||||
it("Hold error.", async () => {
|
||||
fireEvent.click(getByText(componentContainer, "Reboot"));
|
||||
fireEvent.click(getByText(componentContainer, "Confirm reboot"));
|
||||
mockJSONError();
|
||||
await wait(() =>
|
||||
expect(mockSetAlert).toBeCalledWith("Reboot request failed.")
|
||||
);
|
||||
});
|
||||
});
|
@ -1,11 +1,32 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`<RebootButton/> Render modal. 1`] = `
|
||||
exports[`<ActionButtonWithModal/> Render button. 1`] = `
|
||||
<div>
|
||||
<div
|
||||
id="modal-container"
|
||||
/>
|
||||
<div
|
||||
id="alert-container"
|
||||
/>
|
||||
<button
|
||||
class="btn btn-primary d-inline-flex justify-content-center align-items-center"
|
||||
type="button"
|
||||
>
|
||||
<span>
|
||||
Action
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
`;
|
||||
|
||||
exports[`<ActionButtonWithModal/> Render modal. 1`] = `
|
||||
<div>
|
||||
<div
|
||||
id="modal-container"
|
||||
>
|
||||
<div
|
||||
aria-labelledby="modal-title"
|
||||
aria-modal="true"
|
||||
class="modal fade show"
|
||||
role="dialog"
|
||||
>
|
||||
@ -19,11 +40,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"
|
||||
@ -33,15 +54,17 @@ exports[`<RebootButton/> Render modal. 1`] = `
|
||||
<div
|
||||
class="modal-body"
|
||||
>
|
||||
<p>
|
||||
Are you sure you want to restart the router?
|
||||
<p
|
||||
class="mb-0"
|
||||
>
|
||||
Are you sure you want to perform this action?
|
||||
</p>
|
||||
</div>
|
||||
<div
|
||||
class="modal-footer"
|
||||
>
|
||||
<button
|
||||
class="btn btn-primary d-inline-flex justify-content-center align-items-center"
|
||||
class="btn btn-secondary d-inline-flex justify-content-center align-items-center"
|
||||
type="button"
|
||||
>
|
||||
<span>
|
||||
@ -53,7 +76,7 @@ exports[`<RebootButton/> Render modal. 1`] = `
|
||||
type="button"
|
||||
>
|
||||
<span>
|
||||
Confirm reboot
|
||||
Confirm action
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
@ -61,28 +84,15 @@ exports[`<RebootButton/> Render modal. 1`] = `
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<button
|
||||
class="btn btn-danger d-inline-flex justify-content-center align-items-center"
|
||||
type="button"
|
||||
>
|
||||
<span>
|
||||
Reboot
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
`;
|
||||
|
||||
exports[`<RebootButton/> Render. 1`] = `
|
||||
<div>
|
||||
<div
|
||||
id="modal-container"
|
||||
id="alert-container"
|
||||
/>
|
||||
<button
|
||||
class="btn btn-danger d-inline-flex justify-content-center align-items-center"
|
||||
class="btn btn-primary d-inline-flex justify-content-center align-items-center"
|
||||
type="button"
|
||||
>
|
||||
<span>
|
||||
Reboot
|
||||
Action
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
@ -43,14 +43,17 @@ describe("AlertContext", () => {
|
||||
expect(componentContainer).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it("should dismiss alert with alert button", () => {
|
||||
it("should dismiss alert with alert button", async () => {
|
||||
fireEvent.click(getByText(componentContainer, "Set alert"));
|
||||
// Alert is present
|
||||
expect(getByText(componentContainer, "Alert content")).toBeDefined();
|
||||
|
||||
fireEvent.click(componentContainer.querySelector(".btn-close"));
|
||||
// Alert is gone
|
||||
expect(queryByText(componentContainer, "Alert content")).toBeNull();
|
||||
await (() =>
|
||||
expect(
|
||||
queryByText(componentContainer, "Alert content")
|
||||
).toBeNull());
|
||||
});
|
||||
|
||||
it("should dismiss alert with external button", () => {
|
||||
|
@ -6,7 +6,8 @@ exports[`AlertContext should render alert 1`] = `
|
||||
id="alert-container"
|
||||
>
|
||||
<div
|
||||
class="alert alert-danger alert-dismissible"
|
||||
class="alert alert-danger alert-fade-in alert-dismissible"
|
||||
role="alert"
|
||||
>
|
||||
<button
|
||||
aria-label="Close"
|
||||
|
@ -28,19 +28,22 @@ export { default as FileInput } from "./bootstrap/FileInput";
|
||||
export { default as Input } from "./bootstrap/Input";
|
||||
export { default as NumberInput } from "./bootstrap/NumberInput";
|
||||
export { default as PasswordInput } from "./bootstrap/PasswordInput";
|
||||
export { default as RadioSet, Radio } from "./bootstrap/RadioSet";
|
||||
export { default as Radio } from "./bootstrap/Radio";
|
||||
export { default as RadioSet } from "./bootstrap/RadioSet";
|
||||
export { default as Select } from "./bootstrap/Select";
|
||||
export { default as TextInput } from "./bootstrap/TextInput";
|
||||
export { formFieldsSize, buttonFormFieldsSize } from "./bootstrap/constants";
|
||||
export { default as Switch } from "./bootstrap/Switch";
|
||||
export { default as ThreeDotsMenu } from "./bootstrap/ThreeDotsMenu";
|
||||
|
||||
export { Spinner, SpinnerElement } from "./bootstrap/Spinner";
|
||||
export { Modal, ModalBody, ModalFooter, ModalHeader } from "./bootstrap/Modal";
|
||||
|
||||
// Common
|
||||
export { default as RebootButton } from "./common/RebootButton";
|
||||
export { default as ActionButtonWithModal } from "./common/ActionButtonWithModal/ActionButtonWithModal";
|
||||
export { default as WiFiSettings } from "./common/WiFiSettings/WiFiSettings";
|
||||
export { default as ResetWiFiSettings } from "./common/WiFiSettings/ResetWiFiSettings";
|
||||
export { default as RichTable } from "./common/RichTable/RichTable";
|
||||
// Form
|
||||
export { default as ForisForm } from "./form/components/ForisForm";
|
||||
export {
|
||||
|
@ -14,7 +14,7 @@ import { render } from "@testing-library/react";
|
||||
import PropTypes from "prop-types";
|
||||
|
||||
import { AlertContextMock } from "./alertContextMock";
|
||||
import { CustomizationContextMock } from "./cutomizationContextMock";
|
||||
import { CustomizationContextMock } from "./customizationContextMock";
|
||||
|
||||
Wrapper.propTypes = {
|
||||
children: PropTypes.oneOfType([
|
||||
|
@ -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",
|
||||
|
@ -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]);
|
||||
}
|
||||
|
@ -28,11 +28,11 @@ module.exports = {
|
||||
content: "docs/development.md",
|
||||
},
|
||||
{
|
||||
name: "Components",
|
||||
name: "Common Components",
|
||||
description: "Set of main components.",
|
||||
sections: [
|
||||
{
|
||||
name: "Foris forms",
|
||||
name: "ForisForm",
|
||||
components: [
|
||||
"src/form/components/ForisForm.js",
|
||||
"src/form/components/alerts.js",
|
||||
@ -42,47 +42,52 @@ module.exports = {
|
||||
usageMode: "expand",
|
||||
},
|
||||
{
|
||||
name: "Alert Context",
|
||||
components: ["src/context/alertContext/AlertContext.js"],
|
||||
name: "RichTable",
|
||||
components: ["src/common/RichTable/RichTable.js"],
|
||||
exampleMode: "expand",
|
||||
usageMode: "expand",
|
||||
},
|
||||
{
|
||||
name: "ActionButtonWithModal",
|
||||
components: [
|
||||
"src/common/ActionButtonWithModal/ActionButtonWithModal.js",
|
||||
],
|
||||
exampleMode: "expand",
|
||||
usageMode: "expand",
|
||||
},
|
||||
],
|
||||
sectionDepth: 1,
|
||||
},
|
||||
|
||||
{
|
||||
name: "Customization Context",
|
||||
components: [
|
||||
"src/context/customizationContext/CustomizationContext.js",
|
||||
],
|
||||
exampleMode: "expand",
|
||||
usageMode: "expand",
|
||||
},
|
||||
{
|
||||
name: "Bootstrap components",
|
||||
name: "Bootstrap Components",
|
||||
description: "Set of bootstrap components.",
|
||||
components: "src/bootstrap/*.js",
|
||||
exampleMode: "expand",
|
||||
usageMode: "expand",
|
||||
ignore: ["src/bootstrap/constants.js"],
|
||||
ignore: ["src/bootstrap/constants.js", "src/bootstrap/Radio.js"],
|
||||
sectionDepth: 0,
|
||||
},
|
||||
{
|
||||
name: "Contexts",
|
||||
components: [
|
||||
"src/context/alertContext/AlertContext.js",
|
||||
"src/context/customizationContext/CustomizationContext.js",
|
||||
],
|
||||
exampleMode: "expand",
|
||||
usageMode: "expand",
|
||||
},
|
||||
],
|
||||
template: {
|
||||
favicon: "/docs/components/logo.svg",
|
||||
},
|
||||
require: [
|
||||
"babel-polyfill",
|
||||
path.join(__dirname, "src/testUtils/mockGlobals"),
|
||||
path.join(__dirname, "src/testUtils/mockGlobals.js"),
|
||||
path.join(
|
||||
__dirname,
|
||||
"node_modules/bootstrap/dist/css/bootstrap.min.css"
|
||||
),
|
||||
path.join(
|
||||
__dirname,
|
||||
"node_modules/@fortawesome/fontawesome-free/css/all.min.css"
|
||||
),
|
||||
path.join(__dirname, "node_modules/bootstrap/dist/js/bootstrap.min.js"),
|
||||
],
|
||||
styleguideComponents: {
|
||||
LogoRenderer: path.join(__dirname, "docs/components/Logo"),
|
||||
|
@ -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-11-13 14:06+0100\n"
|
||||
"PO-Revision-Date: 2024-09-25 10:15+0000\n"
|
||||
"Last-Translator: Lukas Jelinek <lukas.jelinek@nic.cz>\n"
|
||||
"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,42 +35,89 @@ 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:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
msgstr "Zavřít"
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr "Zkopírováno!"
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr "Kopírovat"
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
msgid "Reboot request failed."
|
||||
msgstr "Vyžadován restart."
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
#, fuzzy
|
||||
msgid "Action successful."
|
||||
msgstr "Nastavení úspěšně uložena"
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
msgstr "Restartovat"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
msgstr "Varování!"
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr "Opravdu chcete router restartovat?"
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr "Zrušit"
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
#, fuzzy
|
||||
msgid "Confirm"
|
||||
msgstr "Potvrdit restart"
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
msgid "An error occurred during resetting Wi-Fi settings."
|
||||
msgstr "Při resetu nastavení Wi-Fi došlo k chybě."
|
||||
@ -99,7 +146,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 +192,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"
|
||||
|
||||
@ -389,3 +435,15 @@ msgstr "Neobsahuje seznam e-mailů oddělených čárkou."
|
||||
#~ "se tím odstraní aktuální konfigurace a vrátí se výchozí hodnoty.\n"
|
||||
#~ " "
|
||||
|
||||
#~ msgid "Reboot request failed."
|
||||
#~ msgstr "Vyžadován restart."
|
||||
|
||||
#~ msgid "Reboot"
|
||||
#~ msgstr "Restartovat"
|
||||
|
||||
#~ msgid "Warning!"
|
||||
#~ msgstr "Varování!"
|
||||
|
||||
#~ msgid "Are you sure you want to restart the router?"
|
||||
#~ msgstr "Opravdu chcete router restartovat?"
|
||||
|
||||
|
@ -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-11-13 14:06+0100\n"
|
||||
"PO-Revision-Date: 2019-02-19 13:34+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language: da\n"
|
||||
@ -34,40 +34,85 @@ msgstr ""
|
||||
msgid "An unknown API error occurred."
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
|
||||
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
msgid "Reboot request failed."
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
msgid "Action successful."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
@ -95,7 +140,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 +191,7 @@ msgstr ""
|
||||
msgid "Wi-Fi QR Code"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:93
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:102
|
||||
msgid "Download PDF"
|
||||
msgstr ""
|
||||
|
||||
@ -424,3 +469,18 @@ msgstr ""
|
||||
#~ "channel."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot request failed."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Warning!"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Are you sure you want to restart the router?"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Confirm reboot"
|
||||
#~ 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-11-13 14:06+0100\n"
|
||||
"PO-Revision-Date: 2024-01-04 21:08+0000\n"
|
||||
"Last-Translator: Erik Pfannenstein <debianignatz@gmx.de>\n"
|
||||
"Language: de\n"
|
||||
@ -35,42 +35,89 @@ 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:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr "Kopiert!"
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr "Kopieren"
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
msgid "Reboot request failed."
|
||||
msgstr "Neustart-Einleitung fehlgeschlagen."
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
#, fuzzy
|
||||
msgid "Action successful."
|
||||
msgstr "Einstellungen erfolgreich gespeichert"
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
msgstr "Systemneustart"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
msgstr "Warnung!"
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr "Sind Sie sicher, dass Sie den Router neu starten wollen?"
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr "Abbrechen"
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
#, fuzzy
|
||||
msgid "Confirm"
|
||||
msgstr "Neustart bestätigen"
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
msgid "An error occurred during resetting Wi-Fi settings."
|
||||
msgstr ""
|
||||
@ -101,7 +148,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 +202,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"
|
||||
|
||||
@ -387,3 +434,15 @@ msgstr "Enthält keine Liste von E-Mails, die durch Kommas getrennt sind."
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot request failed."
|
||||
#~ msgstr "Neustart-Einleitung fehlgeschlagen."
|
||||
|
||||
#~ msgid "Reboot"
|
||||
#~ msgstr "Systemneustart"
|
||||
|
||||
#~ msgid "Warning!"
|
||||
#~ msgstr "Warnung!"
|
||||
|
||||
#~ msgid "Are you sure you want to restart the router?"
|
||||
#~ msgstr "Sind Sie sicher, dass Sie den Router neu starten wollen?"
|
||||
|
||||
|
@ -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-11-13 14:06+0100\n"
|
||||
"PO-Revision-Date: 2021-02-09 16:50+0000\n"
|
||||
"Last-Translator: Michalis <michalisntovas@yahoo.gr>\n"
|
||||
"Language: el\n"
|
||||
@ -35,42 +35,88 @@ msgstr ""
|
||||
msgid "An unknown API error occurred."
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
|
||||
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
msgid "Reboot request failed."
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
msgid "Action successful."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
msgstr "Επανεκκίνηση"
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr "Είστε βέβαιοι ότι θέλετε να κάνετε επανεκκίνηση του δρομολογητή;"
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr "Άκυρο"
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
#, fuzzy
|
||||
msgid "Confirm"
|
||||
msgstr "Επιβεβαίωση επανεκκίνησης"
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
msgid "An error occurred during resetting Wi-Fi settings."
|
||||
msgstr ""
|
||||
@ -96,7 +142,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 +194,7 @@ msgstr ""
|
||||
msgid "Wi-Fi QR Code"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:93
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:102
|
||||
msgid "Download PDF"
|
||||
msgstr ""
|
||||
|
||||
@ -426,3 +472,15 @@ msgstr ""
|
||||
#~ "channel."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot request failed."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot"
|
||||
#~ msgstr "Επανεκκίνηση"
|
||||
|
||||
#~ msgid "Warning!"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Are you sure you want to restart the router?"
|
||||
#~ 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-11-13 14:06+0100\n"
|
||||
"PO-Revision-Date: 2019-10-17 09:28+0000\n"
|
||||
"Last-Translator: Scott Anecito <scott.anecito@protonmail.com>\n"
|
||||
"Language: en\n"
|
||||
@ -35,40 +35,85 @@ msgstr ""
|
||||
msgid "An unknown API error occurred."
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
|
||||
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
msgid "Reboot request failed."
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
msgid "Action successful."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
@ -96,7 +141,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 +192,7 @@ msgstr ""
|
||||
msgid "Wi-Fi QR Code"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:93
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:102
|
||||
msgid "Download PDF"
|
||||
msgstr ""
|
||||
|
||||
@ -422,3 +467,18 @@ msgstr ""
|
||||
#~ "channel."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot request failed."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Warning!"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Are you sure you want to restart the router?"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Confirm reboot"
|
||||
#~ msgstr ""
|
||||
|
||||
|
@ -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-11-13 14:06+0100\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,42 +37,89 @@ 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:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
msgstr "Cerrar"
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr "¡Copiado!"
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr "Copiar"
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
msgid "Reboot request failed."
|
||||
msgstr "La petición de reinicio ha fallado."
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
#, fuzzy
|
||||
msgid "Action successful."
|
||||
msgstr "Los ajustes se han guardado correctamente"
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
msgstr "Reiniciar"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
msgstr "¡Atención!"
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr "¿Estás seguro de que quieres reiniciar el router?"
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
#, fuzzy
|
||||
msgid "Confirm"
|
||||
msgstr "Confirmar reinicio"
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
msgid "An error occurred during resetting Wi-Fi settings."
|
||||
msgstr "Ocurrió un error durante el reseteo de los ajustes Wi-Fi."
|
||||
@ -101,7 +148,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 +170,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 +194,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"
|
||||
|
||||
@ -445,3 +493,15 @@ msgstr "No contiene una lista de correos electrónicos separados por comas."
|
||||
#~ "channel."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot request failed."
|
||||
#~ msgstr "La petición de reinicio ha fallado."
|
||||
|
||||
#~ msgid "Reboot"
|
||||
#~ msgstr "Reiniciar"
|
||||
|
||||
#~ msgid "Warning!"
|
||||
#~ msgstr "¡Atención!"
|
||||
|
||||
#~ msgid "Are you sure you want to restart the router?"
|
||||
#~ msgstr "¿Estás seguro de que quieres reiniciar el router?"
|
||||
|
||||
|
@ -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-11-13 14:06+0100\n"
|
||||
"PO-Revision-Date: 2019-02-19 13:34+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language: fi\n"
|
||||
@ -34,40 +34,85 @@ msgstr ""
|
||||
msgid "An unknown API error occurred."
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
|
||||
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
msgid "Reboot request failed."
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
msgid "Action successful."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
@ -95,7 +140,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 +191,7 @@ msgstr ""
|
||||
msgid "Wi-Fi QR Code"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:93
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:102
|
||||
msgid "Download PDF"
|
||||
msgstr ""
|
||||
|
||||
@ -424,3 +469,18 @@ msgstr ""
|
||||
#~ "channel."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot request failed."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Warning!"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Are you sure you want to restart the router?"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Confirm reboot"
|
||||
#~ 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-11-13 14:06+0100\n"
|
||||
"PO-Revision-Date: 2019-02-19 13:34+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language: fo\n"
|
||||
@ -34,40 +34,85 @@ msgstr ""
|
||||
msgid "An unknown API error occurred."
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
|
||||
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
msgid "Reboot request failed."
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
msgid "Action successful."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
@ -95,7 +140,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 +191,7 @@ msgstr ""
|
||||
msgid "Wi-Fi QR Code"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:93
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:102
|
||||
msgid "Download PDF"
|
||||
msgstr ""
|
||||
|
||||
@ -424,3 +469,18 @@ msgstr ""
|
||||
#~ "channel."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot request failed."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Warning!"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Are you sure you want to restart the router?"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Confirm reboot"
|
||||
#~ msgstr ""
|
||||
|
||||
|
@ -6,9 +6,9 @@
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Foris JS 6.1.0\n"
|
||||
"Project-Id-Version: Foris JS 6.5.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-11-13 14:06+0100\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,40 +33,85 @@ msgstr ""
|
||||
msgid "An unknown API error occurred."
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
|
||||
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
msgid "Reboot request failed."
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
msgid "Action successful."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
@ -94,7 +139,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 +190,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-11-13 14:06+0100\n"
|
||||
"PO-Revision-Date: 2024-07-27 01:09+0000\n"
|
||||
"Last-Translator: Moha684 <nahil82466@gmail.com>\n"
|
||||
"Language: fr\n"
|
||||
@ -35,42 +35,89 @@ 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:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr "Copié!"
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr "Copier"
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
msgid "Reboot request failed."
|
||||
msgstr "La demande de redémarrage a échoué."
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
#, fuzzy
|
||||
msgid "Action successful."
|
||||
msgstr "Paramètres enregistrés avec succès"
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
msgstr "Redémarrer"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
msgstr "Attention !"
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr "Voulez-vous vraiment redémarrer le routeur ?"
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr "Annuler"
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
#, fuzzy
|
||||
msgid "Confirm"
|
||||
msgstr "Confirmer le redémarrage"
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
msgid "An error occurred during resetting Wi-Fi settings."
|
||||
msgstr ""
|
||||
@ -98,7 +145,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 +200,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"
|
||||
|
||||
@ -415,3 +462,15 @@ msgstr ""
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot request failed."
|
||||
#~ msgstr "La demande de redémarrage a échoué."
|
||||
|
||||
#~ msgid "Reboot"
|
||||
#~ msgstr "Redémarrer"
|
||||
|
||||
#~ msgid "Warning!"
|
||||
#~ msgstr "Attention !"
|
||||
|
||||
#~ msgid "Are you sure you want to restart the router?"
|
||||
#~ msgstr "Voulez-vous vraiment redémarrer le routeur ?"
|
||||
|
||||
|
@ -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-11-13 14:06+0100\n"
|
||||
"PO-Revision-Date: 2022-09-29 14:17+0000\n"
|
||||
"Last-Translator: Milo Ivir <mail@milotype.de>\n"
|
||||
"Language: hr\n"
|
||||
@ -36,40 +36,85 @@ msgstr ""
|
||||
msgid "An unknown API error occurred."
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
|
||||
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
msgid "Reboot request failed."
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
msgid "Action successful."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
@ -97,7 +142,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 +193,7 @@ msgstr ""
|
||||
msgid "Wi-Fi QR Code"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:93
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:102
|
||||
msgid "Download PDF"
|
||||
msgstr ""
|
||||
|
||||
@ -426,3 +471,18 @@ msgstr ""
|
||||
#~ "channel."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot request failed."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Warning!"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Are you sure you want to restart the router?"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Confirm reboot"
|
||||
#~ 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-11-13 14:06+0100\n"
|
||||
"PO-Revision-Date: 2021-01-07 01:26+0000\n"
|
||||
"Last-Translator: Zoli <boritek@gmail.com>\n"
|
||||
"Language: hu\n"
|
||||
@ -35,40 +35,86 @@ 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:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
msgid "Reboot request failed."
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
#, fuzzy
|
||||
msgid "Action successful."
|
||||
msgstr "Beállítások sikeresen elmentve"
|
||||
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
@ -96,7 +142,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 +193,7 @@ msgstr ""
|
||||
msgid "Wi-Fi QR Code"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:93
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:102
|
||||
msgid "Download PDF"
|
||||
msgstr ""
|
||||
|
||||
@ -419,3 +465,18 @@ msgstr "Nem tartalmaz vesszővel elválasztott e-mail listát."
|
||||
#~ "channel."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot request failed."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Warning!"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Are you sure you want to restart the router?"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Confirm reboot"
|
||||
#~ 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-11-13 14:06+0100\n"
|
||||
"PO-Revision-Date: 2022-12-31 23:48+0000\n"
|
||||
"Last-Translator: Anselmo <anselmo@casinadicornia.com>\n"
|
||||
"Language: it\n"
|
||||
@ -35,40 +35,85 @@ msgstr ""
|
||||
msgid "An unknown API error occurred."
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
|
||||
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
msgid "Reboot request failed."
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
msgid "Action successful."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
@ -96,7 +141,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 +192,7 @@ msgstr ""
|
||||
msgid "Wi-Fi QR Code"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:93
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:102
|
||||
msgid "Download PDF"
|
||||
msgstr ""
|
||||
|
||||
@ -425,3 +470,18 @@ msgstr ""
|
||||
#~ "channel."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot request failed."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Warning!"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Are you sure you want to restart the router?"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Confirm reboot"
|
||||
#~ 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-11-13 14:06+0100\n"
|
||||
"PO-Revision-Date: 2019-10-16 10:08+0000\n"
|
||||
"Last-Translator: Scott Anecito <scott.anecito@protonmail.com>\n"
|
||||
"Language: ja\n"
|
||||
@ -35,40 +35,85 @@ msgstr ""
|
||||
msgid "An unknown API error occurred."
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
|
||||
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
msgid "Reboot request failed."
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
msgid "Action successful."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
msgstr "再起動"
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
@ -96,7 +141,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 +193,7 @@ msgstr ""
|
||||
msgid "Wi-Fi QR Code"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:93
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:102
|
||||
msgid "Download PDF"
|
||||
msgstr ""
|
||||
|
||||
@ -426,3 +471,18 @@ msgstr ""
|
||||
#~ "channel."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot request failed."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot"
|
||||
#~ msgstr "再起動"
|
||||
|
||||
#~ msgid "Warning!"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Are you sure you want to restart the router?"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Confirm reboot"
|
||||
#~ 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-11-13 14:06+0100\n"
|
||||
"PO-Revision-Date: 2019-02-19 13:34+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language: ko\n"
|
||||
@ -34,40 +34,85 @@ msgstr ""
|
||||
msgid "An unknown API error occurred."
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
|
||||
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
msgid "Reboot request failed."
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
msgid "Action successful."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
@ -95,7 +140,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 +191,7 @@ msgstr ""
|
||||
msgid "Wi-Fi QR Code"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:93
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:102
|
||||
msgid "Download PDF"
|
||||
msgstr ""
|
||||
|
||||
@ -424,3 +469,18 @@ msgstr ""
|
||||
#~ "channel."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot request failed."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Warning!"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Are you sure you want to restart the router?"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Confirm reboot"
|
||||
#~ 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-11-13 14:06+0100\n"
|
||||
"PO-Revision-Date: 2019-02-19 13:34+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language: lt\n"
|
||||
@ -35,40 +35,85 @@ msgstr ""
|
||||
msgid "An unknown API error occurred."
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
|
||||
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
msgid "Reboot request failed."
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
msgid "Action successful."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
@ -96,7 +141,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 +192,7 @@ msgstr ""
|
||||
msgid "Wi-Fi QR Code"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:93
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:102
|
||||
msgid "Download PDF"
|
||||
msgstr ""
|
||||
|
||||
@ -425,3 +470,18 @@ msgstr ""
|
||||
#~ "channel."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot request failed."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Warning!"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Are you sure you want to restart the router?"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Confirm reboot"
|
||||
#~ 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-11-13 14:06+0100\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,43 +36,89 @@ 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:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr "Kopiert"
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr "Kopier"
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
#, fuzzy
|
||||
msgid "Reboot request failed."
|
||||
msgstr "Omstart kreves"
|
||||
msgid "Action successful."
|
||||
msgstr "Innstillinger lagret"
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
msgstr "Start på ny"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
msgstr "Advarsel!"
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr "Er du sikker på at du vil utføre omstart av ruteren?"
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr "Avbryt"
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
#, fuzzy
|
||||
msgid "Confirm"
|
||||
msgstr "Bekreft omstart"
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
#, fuzzy
|
||||
msgid "An error occurred during resetting Wi-Fi settings."
|
||||
@ -103,7 +149,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 +207,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"
|
||||
|
||||
@ -403,3 +449,15 @@ msgstr "Inneholder ikke en kommainndelt liste med e-postadresser."
|
||||
#~ "gjeldende Wi-Fi-oppsett og tilbakestiller forvalgte verdier.\n"
|
||||
#~ " "
|
||||
|
||||
#~ msgid "Reboot request failed."
|
||||
#~ msgstr "Omstart kreves"
|
||||
|
||||
#~ msgid "Reboot"
|
||||
#~ msgstr "Start på ny"
|
||||
|
||||
#~ msgid "Warning!"
|
||||
#~ msgstr "Advarsel!"
|
||||
|
||||
#~ msgid "Are you sure you want to restart the router?"
|
||||
#~ msgstr "Er du sikker på at du vil utføre omstart av ruteren?"
|
||||
|
||||
|
@ -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-11-13 14:06+0100\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,43 +35,88 @@ msgstr ""
|
||||
msgid "An unknown API error occurred."
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
|
||||
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
#, fuzzy
|
||||
msgid "Reboot request failed."
|
||||
msgstr "Opnieuw opstarten is vereist"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
msgid "Action successful."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
msgstr "Opnieuw opstarten"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
msgstr "Waarschuwing!"
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr "Weet u zeker dat u de router opnieuw wilt opstarten?"
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr "Annuleren"
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
#, fuzzy
|
||||
msgid "Confirm"
|
||||
msgstr "Opnieuw opstarten bevestigen"
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
msgid "An error occurred during resetting Wi-Fi settings."
|
||||
msgstr ""
|
||||
@ -97,7 +142,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 +194,7 @@ msgstr ""
|
||||
msgid "Wi-Fi QR Code"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:93
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:102
|
||||
msgid "Download PDF"
|
||||
msgstr ""
|
||||
|
||||
@ -428,3 +473,15 @@ msgstr "Bevat geen lijst met e-mails gescheiden door komma's."
|
||||
#~ "channel."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot request failed."
|
||||
#~ msgstr "Opnieuw opstarten is vereist"
|
||||
|
||||
#~ msgid "Reboot"
|
||||
#~ msgstr "Opnieuw opstarten"
|
||||
|
||||
#~ msgid "Warning!"
|
||||
#~ msgstr "Waarschuwing!"
|
||||
|
||||
#~ msgid "Are you sure you want to restart the router?"
|
||||
#~ msgstr "Weet u zeker dat u de router opnieuw wilt opstarten?"
|
||||
|
||||
|
@ -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-11-13 14:06+0100\n"
|
||||
"PO-Revision-Date: 2023-03-07 16:37+0000\n"
|
||||
"Last-Translator: Arusekk <arek_koz@o2.pl>\n"
|
||||
"Language: pl\n"
|
||||
@ -36,42 +36,89 @@ 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:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
msgid "Reboot request failed."
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
#, fuzzy
|
||||
msgid "Action successful."
|
||||
msgstr "Ustawienia zostały zapisane"
|
||||
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
msgstr "Restart"
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
msgstr "Ostrzeżenie!"
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr "Czy na pewno zrestartować router?"
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr "Anuluj"
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
#, fuzzy
|
||||
msgid "Confirm"
|
||||
msgstr "Potwierdź restart"
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
msgid "An error occurred during resetting Wi-Fi settings."
|
||||
msgstr ""
|
||||
@ -97,7 +144,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 +195,7 @@ msgstr ""
|
||||
msgid "Wi-Fi QR Code"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:93
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:102
|
||||
msgid "Download PDF"
|
||||
msgstr ""
|
||||
|
||||
@ -426,3 +473,15 @@ msgstr "Nie zawiera listy e-maili oddzielonych przecinkami."
|
||||
#~ "channel."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot request failed."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot"
|
||||
#~ msgstr "Restart"
|
||||
|
||||
#~ msgid "Warning!"
|
||||
#~ msgstr "Ostrzeżenie!"
|
||||
|
||||
#~ msgid "Are you sure you want to restart the router?"
|
||||
#~ msgstr "Czy na pewno zrestartować router?"
|
||||
|
||||
|
@ -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-11-13 14:06+0100\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,42 +35,88 @@ msgstr ""
|
||||
msgid "An unknown API error occurred."
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
|
||||
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
msgid "Reboot request failed."
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
msgid "Action successful."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
msgstr "Reinício"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
msgstr "Atenção!"
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr "Você tem certeza de que quer reiniciar o roteador?"
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
#, fuzzy
|
||||
msgid "Confirm"
|
||||
msgstr "Confirma reinício"
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
msgid "An error occurred during resetting Wi-Fi settings."
|
||||
msgstr ""
|
||||
@ -96,7 +142,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 +193,7 @@ msgstr ""
|
||||
msgid "Wi-Fi QR Code"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:93
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:102
|
||||
msgid "Download PDF"
|
||||
msgstr ""
|
||||
|
||||
@ -403,3 +449,15 @@ msgstr ""
|
||||
#~ "channel."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot request failed."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot"
|
||||
#~ msgstr "Reinício"
|
||||
|
||||
#~ msgid "Warning!"
|
||||
#~ msgstr "Atenção!"
|
||||
|
||||
#~ msgid "Are you sure you want to restart the router?"
|
||||
#~ msgstr "Você tem certeza de que quer reiniciar o roteador?"
|
||||
|
||||
|
@ -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-11-13 14:06+0100\n"
|
||||
"PO-Revision-Date: 2019-02-19 13:35+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language: ro\n"
|
||||
@ -35,40 +35,85 @@ msgstr ""
|
||||
msgid "An unknown API error occurred."
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
|
||||
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
msgid "Reboot request failed."
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
msgid "Action successful."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
@ -96,7 +141,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 +192,7 @@ msgstr ""
|
||||
msgid "Wi-Fi QR Code"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:93
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:102
|
||||
msgid "Download PDF"
|
||||
msgstr ""
|
||||
|
||||
@ -425,3 +470,18 @@ msgstr ""
|
||||
#~ "channel."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot request failed."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Warning!"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Are you sure you want to restart the router?"
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Confirm reboot"
|
||||
#~ 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-11-13 14:06+0100\n"
|
||||
"PO-Revision-Date: 2022-12-07 12:47+0000\n"
|
||||
"Last-Translator: Алексей Леньшин <alenshin@gmail.com>\n"
|
||||
"Language: ru\n"
|
||||
@ -36,42 +36,89 @@ msgstr "Ответ не получен."
|
||||
msgid "An unknown API error occurred."
|
||||
msgstr "Неизвестная ошибка программного интерфейса приложения."
|
||||
|
||||
#: src/bootstrap/Alert.js:51 src/bootstrap/Modal.js:98
|
||||
#: src/bootstrap/Alert.js:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr "Скопировано!"
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr "Копировать"
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
msgid "Reboot request failed."
|
||||
msgstr "Запрос на перезагрузку не выполнен."
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
#, fuzzy
|
||||
msgid "Action successful."
|
||||
msgstr "Настройки были успешно сохранены"
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
msgstr "Перезагрузка"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
msgstr "Предупреждение!"
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr "Вы уверены, что хотите перезагрузить маршрутизатор?"
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr "Отмена"
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
#, fuzzy
|
||||
msgid "Confirm"
|
||||
msgstr "Подтвердите перезагрузку"
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
msgid "An error occurred during resetting Wi-Fi settings."
|
||||
msgstr "При сбросе настроек Wi-Fi произошла ошибка."
|
||||
@ -100,7 +147,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 +201,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"
|
||||
|
||||
@ -394,3 +441,15 @@ msgstr "Не содержит списка электронных адресов
|
||||
#~ "значений по умолчанию.\n"
|
||||
#~ " "
|
||||
|
||||
#~ msgid "Reboot request failed."
|
||||
#~ msgstr "Запрос на перезагрузку не выполнен."
|
||||
|
||||
#~ msgid "Reboot"
|
||||
#~ msgstr "Перезагрузка"
|
||||
|
||||
#~ msgid "Warning!"
|
||||
#~ msgstr "Предупреждение!"
|
||||
|
||||
#~ msgid "Are you sure you want to restart the router?"
|
||||
#~ msgstr "Вы уверены, что хотите перезагрузить маршрутизатор?"
|
||||
|
||||
|
@ -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-11-13 14:06+0100\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,42 +35,89 @@ 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:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
msgstr "Zatvoriť"
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr "Skopírované!"
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr "Kopírovať"
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
msgid "Reboot request failed."
|
||||
msgstr "Požiadavka na reštart neúspešná."
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
#, fuzzy
|
||||
msgid "Action successful."
|
||||
msgstr "Nastavenia boli úspešne uložené"
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
msgstr "Reštartovať"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
msgstr "Výstraha!"
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr "Naozaj sa má router reštartovať?"
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr "Zrušiť"
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
#, fuzzy
|
||||
msgid "Confirm"
|
||||
msgstr "Potvrdiť reštart"
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
msgid "An error occurred during resetting Wi-Fi settings."
|
||||
msgstr "Pri resete nastavení Wi-Fi nastala chyba."
|
||||
@ -99,7 +146,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 +192,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 +230,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"
|
||||
@ -390,3 +436,15 @@ msgstr "Neobsahuje zoznam e-mailov oddelených čiarkami."
|
||||
#~ " a obnovia sa východiskové hodnoty.\n"
|
||||
#~ " "
|
||||
|
||||
#~ msgid "Reboot request failed."
|
||||
#~ msgstr "Požiadavka na reštart neúspešná."
|
||||
|
||||
#~ msgid "Reboot"
|
||||
#~ msgstr "Reštartovať"
|
||||
|
||||
#~ msgid "Warning!"
|
||||
#~ msgstr "Výstraha!"
|
||||
|
||||
#~ msgid "Are you sure you want to restart the router?"
|
||||
#~ msgstr "Naozaj sa má router reštartovať?"
|
||||
|
||||
|
@ -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-11-13 14:06+0100\n"
|
||||
"PO-Revision-Date: 2023-09-22 21:00+0000\n"
|
||||
"Last-Translator: Kristoffer Grundström "
|
||||
"<swedishsailfishosuser@tutanota.com>\n"
|
||||
@ -36,42 +36,88 @@ 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:73 src/bootstrap/Modal.js:101
|
||||
#: src/common/WiFiSettings/WiFiQRCode.js:89
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copied!"
|
||||
msgstr "Kopierades!"
|
||||
|
||||
#: src/bootstrap/CopyInput.js:57
|
||||
#: src/bootstrap/CopyInput.js:56
|
||||
msgid "Copy"
|
||||
msgstr "Kopiera"
|
||||
|
||||
#: src/common/RebootButton.js:27
|
||||
msgid "Reboot request failed."
|
||||
msgstr "Förfrågning för omstart misslyckades."
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:60
|
||||
msgid "Action successful."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:51
|
||||
msgid "Reboot"
|
||||
msgstr "Starta om"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:65
|
||||
msgid "Action failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RebootButton.js:66
|
||||
msgid "Warning!"
|
||||
msgstr "Varning!"
|
||||
|
||||
#: src/common/RebootButton.js:68
|
||||
msgid "Are you sure you want to restart the router?"
|
||||
msgstr "Är du säker på att du vill starta om routern?"
|
||||
|
||||
#: src/common/RebootButton.js:71
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:125
|
||||
msgid "Cancel"
|
||||
msgstr "Avbryt"
|
||||
|
||||
#: src/common/RebootButton.js:73
|
||||
msgid "Confirm reboot"
|
||||
#: src/common/ActionButtonWithModal/ActionButtonWithModal.js:128
|
||||
#, fuzzy
|
||||
msgid "Confirm"
|
||||
msgstr "Bekräfta omstart"
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:29
|
||||
msgid "Sort ascending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:30
|
||||
msgid "Sort descending"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTableHeader.js:31
|
||||
msgid "Clear sort"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:65
|
||||
msgid "Pagination navigation bar"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:71
|
||||
msgid "First page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:77
|
||||
msgid "Previous page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:83
|
||||
msgid "Next page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:89
|
||||
msgid "Last page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:95
|
||||
msgid "Page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:98
|
||||
msgid "of"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:106
|
||||
msgid "Rows per page:"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:109
|
||||
msgid "Select rows per page"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/RichTable/RichTablePagination.js:121
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: src/common/WiFiSettings/ResetWiFiSettings.js:39
|
||||
msgid "An error occurred during resetting Wi-Fi settings."
|
||||
msgstr "Ett fel inträffade under återställningen av Wi-Fi-inställningarna."
|
||||
@ -100,7 +146,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 +200,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"
|
||||
|
||||
@ -440,3 +486,15 @@ msgstr ""
|
||||
#~ "channel."
|
||||
#~ msgstr ""
|
||||
|
||||
#~ msgid "Reboot request failed."
|
||||
#~ msgstr "Förfrågning för omstart misslyckades."
|
||||
|
||||
#~ msgid "Reboot"
|
||||
#~ msgstr "Starta om"
|
||||
|
||||
#~ msgid "Warning!"
|
||||
#~ msgstr "Varning!"
|
||||
|
||||
#~ msgid "Are you sure you want to restart the router?"
|
||||
#~ msgstr "Är du säker på att du vill starta om routern?"
|
||||
|
||||
|
Reference in New Issue
Block a user