mirror of
https://gitlab.nic.cz/turris/reforis/foris-js.git
synced 2025-06-15 13:36:35 +02:00
Compare commits
17 Commits
Author | SHA1 | Date | |
---|---|---|---|
aeaad4aa72 | |||
256a000d61 | |||
c78ed9a5d0 | |||
bded10211a | |||
25ac6cf1e9 | |||
9a2547a6c2 | |||
7968c7af4a | |||
4b94c470c3 | |||
e1b5a25ddd | |||
95af86c776 | |||
02b5583712 | |||
2f4d757a1a | |||
3c7a67783f | |||
4500e85a40 | |||
ce955095fd | |||
00b861531e | |||
fad5b97a2e |
9717
package-lock.json
generated
9717
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
27
package.json
27
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "foris",
|
||||
"version": "4.3.0",
|
||||
"version": "4.5.0",
|
||||
"description": "Set of components and utils for Foris and its plugins.",
|
||||
"author": "CZ.NIC, z.s.p.o.",
|
||||
"repository": {
|
||||
@ -14,10 +14,9 @@
|
||||
"license": "GPL-3.0",
|
||||
"main": "./src/index.js",
|
||||
"dependencies": {
|
||||
"axios": "^0.19.1",
|
||||
"axios": "^0.19.2",
|
||||
"immutability-helper": "3.0.1",
|
||||
"moment": "^2.24.0",
|
||||
"pdfmake": "^0.1.63",
|
||||
"qrcode.react": "^0.9.3",
|
||||
"react-datetime": "^2.16.3",
|
||||
"react-uid": "^2.2.0"
|
||||
@ -30,26 +29,26 @@
|
||||
"react-router-dom": "^5.1.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.7.7",
|
||||
"@babel/core": "^7.7.7",
|
||||
"@babel/plugin-transform-runtime": "^7.7.6",
|
||||
"@babel/preset-env": "^7.7.7",
|
||||
"@babel/preset-react": "^7.7.4",
|
||||
"@fortawesome/fontawesome-free": "^5.12.0",
|
||||
"@babel/cli": "^7.8.4",
|
||||
"@babel/core": "^7.9.0",
|
||||
"@babel/plugin-transform-runtime": "^7.9.0",
|
||||
"@babel/preset-env": "^7.9.0",
|
||||
"@babel/preset-react": "^7.9.4",
|
||||
"@fortawesome/fontawesome-free": "^5.13.0",
|
||||
"@testing-library/react": "^8.0.9",
|
||||
"babel-loader": "^8.0.6",
|
||||
"babel-loader": "^8.1.0",
|
||||
"babel-polyfill": "^6.26.0",
|
||||
"eslint": "^6.8.0",
|
||||
"eslint-config-reforis": "^1.0.0",
|
||||
"jest": "^24.9.0",
|
||||
"jest": "^25.2.0",
|
||||
"jest-mock-axios": "^3.2.0",
|
||||
"moment-timezone": "^0.5.27",
|
||||
"moment-timezone": "^0.5.28",
|
||||
"prop-types": "15.7.2",
|
||||
"react": "16.9.0",
|
||||
"react-dom": "16.9.0",
|
||||
"react-router-dom": "^5.1.2",
|
||||
"react-styleguidist": "^10.4.2",
|
||||
"snapshot-diff": "^0.5.1"
|
||||
"react-styleguidist": "^10.6.2",
|
||||
"snapshot-diff": "^0.7.0"
|
||||
},
|
||||
"scripts": {
|
||||
"lint": "eslint src",
|
||||
|
@ -9,7 +9,7 @@ import {
|
||||
useCallback, useEffect, useReducer, useState,
|
||||
} from "react";
|
||||
|
||||
import { ForisURLs } from "../forisUrls";
|
||||
import { ForisURLs } from "../utils/forisUrls";
|
||||
import {
|
||||
API_ACTIONS, API_METHODS, API_STATE, getErrorPayload, HEADERS, TIMEOUT,
|
||||
} from "./utils";
|
||||
|
@ -10,7 +10,7 @@ import PropTypes from "prop-types";
|
||||
|
||||
import { useAPIPost } from "../api/hooks";
|
||||
import { API_STATE } from "../api/utils";
|
||||
import { ForisURLs } from "../forisUrls";
|
||||
import { ForisURLs } from "../utils/forisUrls";
|
||||
|
||||
import { Button } from "../bootstrap/Button";
|
||||
import {
|
||||
|
@ -9,7 +9,7 @@ import React, { useState } from "react";
|
||||
import QRCode from "qrcode.react";
|
||||
import PropTypes from "prop-types";
|
||||
|
||||
import { ForisURLs } from "../../forisUrls";
|
||||
import { ForisURLs } from "../../utils/forisUrls";
|
||||
import { Button } from "../../bootstrap/Button";
|
||||
import {
|
||||
Modal, ModalBody, ModalFooter, ModalHeader,
|
||||
|
@ -5,22 +5,36 @@
|
||||
* See /LICENSE for more information.
|
||||
*/
|
||||
|
||||
import pdfMake from "pdfmake";
|
||||
|
||||
export function createAndDownloadPdf(SSID, password) {
|
||||
const docDefinition = {
|
||||
content: [
|
||||
{
|
||||
text: "Wi-Fi", style: "header", fontSize: 55, alignment: "center",
|
||||
text: "Wi-Fi",
|
||||
style: "header",
|
||||
fontSize: 55,
|
||||
alignment: "center",
|
||||
},
|
||||
{
|
||||
qr: toQRCodeContent(SSID, password), fit: "350", margin: [0, 80], alignment: "center",
|
||||
qr: toQRCodeContent(SSID, password),
|
||||
fit: "350",
|
||||
margin: [0, 80],
|
||||
alignment: "center",
|
||||
},
|
||||
{
|
||||
text: `SSID: ${SSID}`,
|
||||
fontSize: 25,
|
||||
alignment: "center",
|
||||
},
|
||||
{
|
||||
text: `Password: ${password}`,
|
||||
fontSize: 25,
|
||||
alignment: "center",
|
||||
},
|
||||
{ text: `SSID: ${SSID}`, fontSize: 25, alignment: "center" },
|
||||
{ text: `Password: ${password}`, fontSize: 25, alignment: "center" },
|
||||
],
|
||||
};
|
||||
pdfMake.createPdf(docDefinition).download("wifi.pdf");
|
||||
|
||||
// pdfmake is exposed by reForis main application. Thus we can use it from globals.
|
||||
window.pdfMake.createPdf(docDefinition).download("wifi.pdf");
|
||||
}
|
||||
|
||||
export function toQRCodeContent(SSID, password) {
|
||||
|
@ -12,7 +12,7 @@ import {
|
||||
validateIPv6Address,
|
||||
validateIPv6Prefix,
|
||||
validateMAC,
|
||||
} from "validations";
|
||||
} from "utils/validations";
|
||||
|
||||
describe("Validation functions", () => {
|
||||
it("validateIPv4Address valid", () => {
|
||||
|
@ -67,7 +67,7 @@ export { useClickOutside } from "./utils/hooks";
|
||||
export { toLocaleDateString } from "./utils/datetime";
|
||||
|
||||
// Foris URL
|
||||
export { ForisURLs, REFORIS_URL_PREFIX } from "./forisUrls";
|
||||
export { ForisURLs, REFORIS_URL_PREFIX } from "./utils/forisUrls";
|
||||
|
||||
// Validation
|
||||
export {
|
||||
@ -78,7 +78,7 @@ export {
|
||||
validateDUID,
|
||||
validateMAC,
|
||||
validateMultipleEmails,
|
||||
} from "./validations";
|
||||
} from "./utils/validations";
|
||||
|
||||
// Alert context
|
||||
export { AlertContextProvider, useAlert } from "./alertContext/AlertContext";
|
||||
|
@ -10,6 +10,8 @@ export const REFORIS_API_URL_PREFIX = `${REFORIS_URL_PREFIX}/api`;
|
||||
|
||||
export const ForisURLs = {
|
||||
login: `${REFORIS_URL_PREFIX}/login`,
|
||||
logout: `${REFORIS_URL_PREFIX}/logout`,
|
||||
|
||||
static: `${REFORIS_URL_PREFIX}/static/reforis`,
|
||||
wifi: `${REFORIS_URL_PREFIX}/network-settings/wifi`,
|
||||
|
@ -23,7 +23,7 @@ const REs = {
|
||||
IPv4: /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,
|
||||
IPv6: /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,
|
||||
IPv6Prefix: /^s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*(\/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))$/,
|
||||
domain: /^([a-zA-Z0-9-]{1,63}\.?)*$/,
|
||||
domain: /^[A-Za-z0-9][A-Za-z0-9.-]{1,255}$/,
|
||||
DUID: /^([0-9a-fA-F]{2}){4}([0-9a-fA-F]{2})*$/,
|
||||
MAC: /^([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2}$/,
|
||||
MultipleEmails: /^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+ *)( *, *[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+ *)*$/,
|
@ -7,7 +7,7 @@
|
||||
|
||||
/* eslint no-console: "off" */
|
||||
|
||||
import { ForisURLs } from "../forisUrls";
|
||||
import { ForisURLs } from "../utils/forisUrls";
|
||||
|
||||
const PROTOCOL = window.location.protocol === "http:" ? "ws" : "wss";
|
||||
|
||||
|
Reference in New Issue
Block a user