mirror of
https://gitlab.nic.cz/turris/reforis/foris-js.git
synced 2024-12-26 00:21:36 +01:00
Merge branch 'dev' into 'master'
Release 1.3.1 See merge request turris/reforis/foris-js!38
This commit is contained in:
commit
158bd1bb24
64
.eslintrc.js
64
.eslintrc.js
|
@ -1,66 +1,6 @@
|
||||||
const path = require("path");
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
"env": {
|
extends: "eslint-config-reforis",
|
||||||
"browser": true,
|
rules: {
|
||||||
"node": true,
|
|
||||||
"es6": true,
|
|
||||||
"jest": true
|
|
||||||
},
|
|
||||||
"extends": [
|
|
||||||
"airbnb",
|
|
||||||
"airbnb/hooks"
|
|
||||||
],
|
|
||||||
"globals": {
|
|
||||||
"_": "readonly",
|
|
||||||
"babel": "readonly",
|
|
||||||
"ForisTranslations": "readonly",
|
|
||||||
"ngettext": "readonly",
|
|
||||||
"ForisPlugins": "readonly"
|
|
||||||
},
|
|
||||||
"parser": "babel-eslint",
|
|
||||||
"rules": {
|
|
||||||
"quotes": ["error", "double"],
|
|
||||||
"indent": ["error", 4],
|
|
||||||
"react/jsx-indent": ["error", 4],
|
|
||||||
"react/jsx-indent-props": ["error", 4],
|
|
||||||
"react/prop-types": "warn",
|
|
||||||
"react/no-array-index-key": "warn",
|
|
||||||
"react/button-has-type": "warn",
|
|
||||||
"import/prefer-default-export": "off",
|
"import/prefer-default-export": "off",
|
||||||
"import/no-unresolved": [
|
|
||||||
"error",
|
|
||||||
// Ignore imports used only in tests
|
|
||||||
{ ignore: ["customTestRender"] }
|
|
||||||
],
|
|
||||||
"import/no-cycle": "warn",
|
|
||||||
"no-console": "error",
|
|
||||||
"no-use-before-define": ["error", {
|
|
||||||
functions: false,
|
|
||||||
classes: true,
|
|
||||||
variables: true
|
|
||||||
}],
|
|
||||||
"no-restricted-syntax": "warn",
|
|
||||||
// Should be enabled in the future
|
|
||||||
"camelcase": "off",
|
|
||||||
"no-param-reassign": "off",
|
|
||||||
"react/jsx-props-no-spreading": "off",
|
|
||||||
"react/require-default-props": "off",
|
|
||||||
"react/default-props-match-prop-types": "off",
|
|
||||||
"react/forbid-prop-types": "off",
|
|
||||||
// Permanently disabled
|
|
||||||
"react/jsx-filename-extension": "off",
|
|
||||||
"no-plusplus": "off",
|
|
||||||
"consistent-return": "off",
|
|
||||||
"radix": "off",
|
|
||||||
"no-continue": "off",
|
|
||||||
"react/no-danger": "off",
|
|
||||||
},
|
},
|
||||||
"settings": {
|
|
||||||
"import/resolver": {
|
|
||||||
"node": {
|
|
||||||
"paths": ["src"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -4,6 +4,9 @@
|
||||||
logs
|
logs
|
||||||
*.log
|
*.log
|
||||||
|
|
||||||
|
# Python
|
||||||
|
venv/
|
||||||
|
|
||||||
# NodeJS
|
# NodeJS
|
||||||
## Logs
|
## Logs
|
||||||
npm-debug.log*
|
npm-debug.log*
|
||||||
|
|
|
@ -6,25 +6,26 @@ stages:
|
||||||
- publish
|
- publish
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
|
- apk add make
|
||||||
- npm install
|
- npm install
|
||||||
|
|
||||||
test:
|
test:
|
||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
- npm test
|
- make test
|
||||||
|
|
||||||
lint:
|
lint:
|
||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
- npm run lint
|
- make lint
|
||||||
|
|
||||||
build:
|
build:
|
||||||
stage: build
|
stage: build
|
||||||
script:
|
script:
|
||||||
- npm pack
|
- make pack
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- foris-*.tgz
|
- dist/foris-*.tgz
|
||||||
|
|
||||||
publish_beta:
|
publish_beta:
|
||||||
stage: publish
|
stage: publish
|
||||||
|
@ -32,7 +33,7 @@ publish_beta:
|
||||||
refs:
|
refs:
|
||||||
- dev
|
- dev
|
||||||
script:
|
script:
|
||||||
- sh scripts/publish.sh beta
|
- make publish-beta
|
||||||
|
|
||||||
publish_latest:
|
publish_latest:
|
||||||
stage: publish
|
stage: publish
|
||||||
|
@ -40,4 +41,4 @@ publish_latest:
|
||||||
refs:
|
refs:
|
||||||
- master
|
- master
|
||||||
script:
|
script:
|
||||||
- sh scripts/publish.sh latest
|
- make publish-latest
|
||||||
|
|
29
Makefile
29
Makefile
|
@ -1,4 +1,8 @@
|
||||||
.PHONY: all install-js watch-js build-js lint-js test-js create-messages update-messages docs clean
|
.PHONY: all install-js watch-js build-js collect-files pack publish-beta publish-latest lint test test-js-update-snapshots create-messages update-messages docs docs-watch clean
|
||||||
|
|
||||||
|
DEV_PYTHON=python3.7
|
||||||
|
VENV_NAME?=venv
|
||||||
|
VENV_BIN=$(shell pwd)/$(VENV_NAME)/bin
|
||||||
|
|
||||||
all:
|
all:
|
||||||
@echo "make install-js"
|
@echo "make install-js"
|
||||||
|
@ -22,6 +26,12 @@ all:
|
||||||
@echo "make clean"
|
@echo "make clean"
|
||||||
@echo " Remove python artifacts and virtualenv."
|
@echo " Remove python artifacts and virtualenv."
|
||||||
|
|
||||||
|
venv: $(VENV_NAME)/bin/activate
|
||||||
|
$(VENV_NAME)/bin/activate:
|
||||||
|
test -d $(VENV_NAME) || $(DEV_PYTHON) -m virtualenv -p $(DEV_PYTHON) $(VENV_NAME)
|
||||||
|
$(VENV_BIN)/$(DEV_PYTHON) -m pip install -r requirements.txt
|
||||||
|
touch $(VENV_NAME)/bin/activate
|
||||||
|
|
||||||
install-js: package.json
|
install-js: package.json
|
||||||
npm install --save-dev
|
npm install --save-dev
|
||||||
|
|
||||||
|
@ -30,6 +40,15 @@ watch-js:
|
||||||
build-js:
|
build-js:
|
||||||
npm run build
|
npm run build
|
||||||
|
|
||||||
|
collect-files:
|
||||||
|
sh scripts/collect_files.sh
|
||||||
|
pack: collect-files
|
||||||
|
cd dist && npm pack
|
||||||
|
publish-beta: collect-files
|
||||||
|
sh scripts/publish.sh beta
|
||||||
|
publish-latest: collect-files
|
||||||
|
sh scripts/publish.sh latest
|
||||||
|
|
||||||
lint:
|
lint:
|
||||||
npm run lint
|
npm run lint
|
||||||
|
|
||||||
|
@ -38,10 +57,10 @@ test:
|
||||||
test-js-update-snapshots:
|
test-js-update-snapshots:
|
||||||
npm test -- -u
|
npm test -- -u
|
||||||
|
|
||||||
create-messages:
|
create-messages: venv
|
||||||
pybabel extract -F babel.cfg -o ./translations/forisjs.pot .
|
$(VENV_BIN)/pybabel extract -F babel.cfg -o ./translations/forisjs.pot .
|
||||||
update-messages:
|
update-messages: venv
|
||||||
pybabel update -i translations/forisjs.pot -d translations
|
$(VENV_BIN)/pybabel update -i ./translations/forisjs.pot -d ./translations -D forisjs
|
||||||
|
|
||||||
docs:
|
docs:
|
||||||
npm run-script docs
|
npm run-script docs
|
||||||
|
|
|
@ -14,4 +14,12 @@ module.exports = {
|
||||||
},
|
},
|
||||||
}],
|
}],
|
||||||
],
|
],
|
||||||
|
env: {
|
||||||
|
development: {
|
||||||
|
ignore: ["**/__tests__/**", "**/__mocks__/**"],
|
||||||
|
},
|
||||||
|
test: {
|
||||||
|
ignore: [],
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
96
package-lock.json
generated
96
package-lock.json
generated
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "foris",
|
"name": "foris",
|
||||||
"version": "1.2.0",
|
"version": "1.3.1",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -3001,9 +3001,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"confusing-browser-globals": {
|
"confusing-browser-globals": {
|
||||||
"version": "1.0.8",
|
"version": "1.0.9",
|
||||||
"resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz",
|
||||||
"integrity": "sha512-lI7asCibVJ6Qd3FGU7mu4sfG4try4LX3+GVS+Gv8UlrEf2AeW57piecapnog2UHZSbcX/P/1UDWVaTsblowlZg==",
|
"integrity": "sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"connect-history-api-fallback": {
|
"connect-history-api-fallback": {
|
||||||
|
@ -4098,6 +4098,20 @@
|
||||||
"object.entries": "^1.1.0"
|
"object.entries": "^1.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"eslint-config-reforis": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/eslint-config-reforis/-/eslint-config-reforis-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-c0IgYlGfFMfhXmGilDVgkFIcUU34/i6wUiOzdRmg0CRi2Ko5LgmW/jRT5vdiXlFKYOk5WK1UWFbC19KBdGQEig==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"babel-eslint": "^9.0.0",
|
||||||
|
"eslint-config-airbnb": "^18.0.1",
|
||||||
|
"eslint-plugin-import": "^2.18.2",
|
||||||
|
"eslint-plugin-jsx-a11y": "^6.2.3",
|
||||||
|
"eslint-plugin-react": "^7.14.3",
|
||||||
|
"eslint-plugin-react-hooks": "^1.7.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"eslint-import-resolver-node": {
|
"eslint-import-resolver-node": {
|
||||||
"version": "0.3.2",
|
"version": "0.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz",
|
||||||
|
@ -4356,20 +4370,20 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"eslint-plugin-react": {
|
"eslint-plugin-react": {
|
||||||
"version": "7.14.3",
|
"version": "7.16.0",
|
||||||
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz",
|
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.16.0.tgz",
|
||||||
"integrity": "sha512-EzdyyBWC4Uz2hPYBiEJrKCUi2Fn+BJ9B/pJQcjw5X+x/H2Nm59S4MJIvL4O5NEE0+WbnQwEBxWY03oUk+Bc3FA==",
|
"integrity": "sha512-GacBAATewhhptbK3/vTP09CbFrgUJmBSaaRcWdbQLFvUZy9yVcQxigBNHGPU/KE2AyHpzj3AWXpxoMTsIDiHug==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"array-includes": "^3.0.3",
|
"array-includes": "^3.0.3",
|
||||||
"doctrine": "^2.1.0",
|
"doctrine": "^2.1.0",
|
||||||
"has": "^1.0.3",
|
"has": "^1.0.3",
|
||||||
"jsx-ast-utils": "^2.1.0",
|
"jsx-ast-utils": "^2.2.1",
|
||||||
"object.entries": "^1.1.0",
|
"object.entries": "^1.1.0",
|
||||||
"object.fromentries": "^2.0.0",
|
"object.fromentries": "^2.0.0",
|
||||||
"object.values": "^1.1.0",
|
"object.values": "^1.1.0",
|
||||||
"prop-types": "^15.7.2",
|
"prop-types": "^15.7.2",
|
||||||
"resolve": "^1.10.1"
|
"resolve": "^1.12.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"doctrine": {
|
"doctrine": {
|
||||||
|
@ -7546,9 +7560,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"jsx-ast-utils": {
|
"jsx-ast-utils": {
|
||||||
"version": "2.2.1",
|
"version": "2.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz",
|
||||||
"integrity": "sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ==",
|
"integrity": "sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"array-includes": "^3.0.3",
|
"array-includes": "^3.0.3",
|
||||||
|
@ -8345,6 +8359,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"object-inspect": {
|
||||||
|
"version": "1.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
|
||||||
|
"integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"object-is": {
|
"object-is": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz",
|
||||||
|
@ -8391,15 +8411,35 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"object.fromentries": {
|
"object.fromentries": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.1.tgz",
|
||||||
"integrity": "sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==",
|
"integrity": "sha512-PUQv8Hbg3j2QX0IQYv3iAGCbGcu4yY4KQ92/dhA4sFSixBmSmp13UpDLs6jGK8rBtbmhNNIK99LD2k293jpiGA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"define-properties": "^1.1.2",
|
"define-properties": "^1.1.3",
|
||||||
"es-abstract": "^1.11.0",
|
"es-abstract": "^1.15.0",
|
||||||
"function-bind": "^1.1.1",
|
"function-bind": "^1.1.1",
|
||||||
"has": "^1.0.1"
|
"has": "^1.0.3"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"es-abstract": {
|
||||||
|
"version": "1.16.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz",
|
||||||
|
"integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"es-to-primitive": "^1.2.0",
|
||||||
|
"function-bind": "^1.1.1",
|
||||||
|
"has": "^1.0.3",
|
||||||
|
"has-symbols": "^1.0.0",
|
||||||
|
"is-callable": "^1.1.4",
|
||||||
|
"is-regex": "^1.0.4",
|
||||||
|
"object-inspect": "^1.6.0",
|
||||||
|
"object-keys": "^1.1.1",
|
||||||
|
"string.prototype.trimleft": "^2.1.0",
|
||||||
|
"string.prototype.trimright": "^2.1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"object.getownpropertydescriptors": {
|
"object.getownpropertydescriptors": {
|
||||||
|
@ -11163,6 +11203,26 @@
|
||||||
"strip-ansi": "^4.0.0"
|
"strip-ansi": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"string.prototype.trimleft": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"define-properties": "^1.1.3",
|
||||||
|
"function-bind": "^1.1.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"string.prototype.trimright": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"define-properties": "^1.1.3",
|
||||||
|
"function-bind": "^1.1.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"string_decoder": {
|
"string_decoder": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||||
|
|
22
package.json
22
package.json
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "foris",
|
"name": "foris",
|
||||||
"version": "1.2.0",
|
"version": "1.3.1",
|
||||||
"description": "Set of components and utils for Foris and its plugins.",
|
"description": "Set of components and utils for Foris and its plugins.",
|
||||||
"author": "CZ.NIC, z.s.p.o.",
|
"author": "CZ.NIC, z.s.p.o.",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
"reforis"
|
"reforis"
|
||||||
],
|
],
|
||||||
"license": "GPL-3.0",
|
"license": "GPL-3.0",
|
||||||
"main": "./dist/index.js",
|
"main": "index.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^0.19.0",
|
"axios": "^0.19.0",
|
||||||
"immutability-helper": "^3.0.0",
|
"immutability-helper": "^3.0.0",
|
||||||
|
@ -38,7 +38,6 @@
|
||||||
"@babel/preset-react": "^7.0.0",
|
"@babel/preset-react": "^7.0.0",
|
||||||
"@fortawesome/fontawesome-free": "^5.11.2",
|
"@fortawesome/fontawesome-free": "^5.11.2",
|
||||||
"@testing-library/react": "^8.0.9",
|
"@testing-library/react": "^8.0.9",
|
||||||
"babel-eslint": "^9.0.0",
|
|
||||||
"babel-jest": "^24.8.0",
|
"babel-jest": "^24.8.0",
|
||||||
"babel-loader": "^8.0.6",
|
"babel-loader": "^8.0.6",
|
||||||
"babel-plugin-module-resolver": "^3.2.0",
|
"babel-plugin-module-resolver": "^3.2.0",
|
||||||
|
@ -48,11 +47,7 @@
|
||||||
"copy-webpack-plugin": "^5.0.4",
|
"copy-webpack-plugin": "^5.0.4",
|
||||||
"css-loader": "^3.2.0",
|
"css-loader": "^3.2.0",
|
||||||
"eslint": "^6.1.0",
|
"eslint": "^6.1.0",
|
||||||
"eslint-config-airbnb": "^18.0.1",
|
"eslint-config-reforis": "^1.0.0",
|
||||||
"eslint-plugin-import": "^2.18.2",
|
|
||||||
"eslint-plugin-jsx-a11y": "^6.2.3",
|
|
||||||
"eslint-plugin-react": "^7.14.3",
|
|
||||||
"eslint-plugin-react-hooks": "^1.7.0",
|
|
||||||
"file-loader": "^4.2.0",
|
"file-loader": "^4.2.0",
|
||||||
"jest": "^24.8.0",
|
"jest": "^24.8.0",
|
||||||
"jest-mock-axios": "^3.0.0",
|
"jest-mock-axios": "^3.0.0",
|
||||||
|
@ -66,18 +61,13 @@
|
||||||
"webpack": "^4.41.0"
|
"webpack": "^4.41.0"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "rm -rf dist; babel src --out-dir dist --ignore '**/__tests__' --source-maps inline --copy-files",
|
"build": "rm -rf dist; babel src --out-dir dist --source-maps inline --copy-files",
|
||||||
"build:watch": "babel src --verbose --watch --out-dir dist --ignore '**/__tests__' --source-maps inline --copy-files",
|
"build:watch": "babel src --verbose --watch --out-dir dist --source-maps inline --copy-files",
|
||||||
"prepare": "rm -rf ./dist && npm run build",
|
|
||||||
"lint": "eslint src",
|
"lint": "eslint src",
|
||||||
"test": "jest",
|
"test": "jest",
|
||||||
"test:watch": "jest --watch",
|
"test:watch": "jest --watch",
|
||||||
"test:coverage": "jest --coverage --colors",
|
"test:coverage": "jest --coverage --colors",
|
||||||
"docs": "npx styleguidist build ",
|
"docs": "npx styleguidist build ",
|
||||||
"docs:watch": "styleguidist server"
|
"docs:watch": "styleguidist server"
|
||||||
},
|
}
|
||||||
"files": [
|
|
||||||
"dist/**",
|
|
||||||
"translations"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|
1
requirements.txt
Normal file
1
requirements.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Babel
|
9
scripts/collect_files.sh
Normal file
9
scripts/collect_files.sh
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Collect files
|
||||||
|
npm run build
|
||||||
|
cp package.json dist
|
||||||
|
cp -rf translations dist
|
||||||
|
# Remove unwanted files
|
||||||
|
rm -rf dist/**/__tests__
|
||||||
|
rm -rf dist/__mocks__
|
|
@ -5,7 +5,8 @@ then
|
||||||
echo "\$NPM_TOKEN is not set"
|
echo "\$NPM_TOKEN is not set"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
# Need to replace "_" with "_" as GitLab CI won't accept secret vars with "-"
|
cd dist
|
||||||
|
# Need to replace "_" with "-" as GitLab CI won't accept secret vars with "-"
|
||||||
echo "//registry.npmjs.org/:_authToken=$(echo "$NPM_TOKEN" | tr _ -)" > .npmrc
|
echo "//registry.npmjs.org/:_authToken=$(echo "$NPM_TOKEN" | tr _ -)" > .npmrc
|
||||||
echo "unsafe-perm = true" >> ~/.npmrc
|
echo "unsafe-perm = true" >> ~/.npmrc
|
||||||
if test "$1" = "beta"
|
if test "$1" = "beta"
|
||||||
|
|
|
@ -5,10 +5,11 @@
|
||||||
* See /LICENSE for more information.
|
* See /LICENSE for more information.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, { useState } from "react";
|
import React, { useState, useContext, useCallback } from "react";
|
||||||
import PropTypes from "prop-types";
|
import PropTypes from "prop-types";
|
||||||
|
|
||||||
import { Alert } from "bootstrap/Alert";
|
import { Alert, ALERT_TYPES } from "bootstrap/Alert";
|
||||||
|
import { Portal } from "utils/Portal";
|
||||||
|
|
||||||
const AlertContext = React.createContext();
|
const AlertContext = React.createContext();
|
||||||
|
|
||||||
|
@ -22,14 +23,30 @@ AlertContextProvider.propTypes = {
|
||||||
function AlertContextProvider({ children }) {
|
function AlertContextProvider({ children }) {
|
||||||
const [alert, setAlert] = useState(null);
|
const [alert, setAlert] = useState(null);
|
||||||
|
|
||||||
|
const setAlertWrapper = useCallback((message, type = ALERT_TYPES.DANGER) => {
|
||||||
|
setAlert({ message, type });
|
||||||
|
}, [setAlert]);
|
||||||
|
|
||||||
|
const dismissAlert = useCallback(() => setAlert(null), [setAlert]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{alert && <Alert type="danger" message={alert} onDismiss={() => setAlert(null)} />}
|
{alert && (
|
||||||
<AlertContext.Provider value={setAlert}>
|
<Portal containerId="alert-container">
|
||||||
|
<Alert type={alert.type} onDismiss={dismissAlert}>
|
||||||
|
{alert.message}
|
||||||
|
</Alert>
|
||||||
|
</Portal>
|
||||||
|
)}
|
||||||
|
<AlertContext.Provider value={[setAlertWrapper, dismissAlert]}>
|
||||||
{ children }
|
{ children }
|
||||||
</AlertContext.Provider>
|
</AlertContext.Provider>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export { AlertContext, AlertContextProvider };
|
function useAlert() {
|
||||||
|
return useContext(AlertContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
export { AlertContext, AlertContextProvider, useAlert };
|
||||||
|
|
|
@ -5,14 +5,21 @@
|
||||||
* See /LICENSE for more information.
|
* See /LICENSE for more information.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, { useContext } from "react";
|
import React from "react";
|
||||||
import { render, getByText, queryByText, fireEvent } from "customTestRender";
|
import { render, getByText, queryByText, fireEvent } from "customTestRender";
|
||||||
|
|
||||||
import { AlertContext, AlertContextProvider } from "../AlertContext";
|
import { useAlert, AlertContextProvider } from "../AlertContext";
|
||||||
|
|
||||||
function AlertTest() {
|
function AlertTest() {
|
||||||
const setAlert = useContext(AlertContext);
|
const [setAlert, dismissAlert] = useAlert();
|
||||||
return <button onClick={() => setAlert("Alert content")}>Set alert</button>;
|
// alert-container serves as an output for Portal which renders Alert
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<div id="alert-container" />
|
||||||
|
<button onClick={() => setAlert("Alert content")}>Set alert</button>
|
||||||
|
<button onClick={dismissAlert}>Dismiss alert</button>
|
||||||
|
</>
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
describe("AlertContext", () => {
|
describe("AlertContext", () => {
|
||||||
|
@ -36,7 +43,7 @@ describe("AlertContext", () => {
|
||||||
expect(componentContainer).toMatchSnapshot();
|
expect(componentContainer).toMatchSnapshot();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should dismiss alert", () => {
|
it("should dismiss alert with alert button", () => {
|
||||||
fireEvent.click(getByText(componentContainer, "Set alert"));
|
fireEvent.click(getByText(componentContainer, "Set alert"));
|
||||||
// Alert is present
|
// Alert is present
|
||||||
expect(getByText(componentContainer, "Alert content")).toBeDefined();
|
expect(getByText(componentContainer, "Alert content")).toBeDefined();
|
||||||
|
@ -45,4 +52,14 @@ describe("AlertContext", () => {
|
||||||
// Alert is gone
|
// Alert is gone
|
||||||
expect(queryByText(componentContainer, "Alert content")).toBeNull();
|
expect(queryByText(componentContainer, "Alert content")).toBeNull();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("should dismiss alert with external button", () => {
|
||||||
|
fireEvent.click(getByText(componentContainer, "Set alert"));
|
||||||
|
// Alert is present
|
||||||
|
expect(getByText(componentContainer, "Alert content")).toBeDefined();
|
||||||
|
|
||||||
|
fireEvent.click(getByText(componentContainer, "Dismiss alert"));
|
||||||
|
// Alert is gone
|
||||||
|
expect(queryByText(componentContainer, "Alert content")).toBeNull();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -2,6 +2,9 @@
|
||||||
|
|
||||||
exports[`AlertContext should render alert 1`] = `
|
exports[`AlertContext should render alert 1`] = `
|
||||||
<div>
|
<div>
|
||||||
|
<div
|
||||||
|
id="alert-container"
|
||||||
|
>
|
||||||
<div
|
<div
|
||||||
class="alert alert-dismissible alert-danger"
|
class="alert alert-dismissible alert-danger"
|
||||||
>
|
>
|
||||||
|
@ -13,16 +16,26 @@ exports[`AlertContext should render alert 1`] = `
|
||||||
</button>
|
</button>
|
||||||
Alert content
|
Alert content
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<button>
|
<button>
|
||||||
Set alert
|
Set alert
|
||||||
</button>
|
</button>
|
||||||
|
<button>
|
||||||
|
Dismiss alert
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
exports[`AlertContext should render component without alert 1`] = `
|
exports[`AlertContext should render component without alert 1`] = `
|
||||||
<div>
|
<div>
|
||||||
|
<div
|
||||||
|
id="alert-container"
|
||||||
|
/>
|
||||||
<button>
|
<button>
|
||||||
Set alert
|
Set alert
|
||||||
</button>
|
</button>
|
||||||
|
<button>
|
||||||
|
Dismiss alert
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
|
|
|
@ -1,41 +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 { useReducer, useCallback } from "react";
|
|
||||||
import axios from "axios";
|
|
||||||
|
|
||||||
import {
|
|
||||||
API_ACTIONS, TIMEOUT, HEADERS, APIReducer, getErrorMessage,
|
|
||||||
} from "./utils";
|
|
||||||
|
|
||||||
export function useAPIDelete(url) {
|
|
||||||
const [state, dispatch] = useReducer(APIReducer, {
|
|
||||||
isSending: false,
|
|
||||||
isError: false,
|
|
||||||
isSuccess: false,
|
|
||||||
data: null,
|
|
||||||
});
|
|
||||||
|
|
||||||
const requestDelete = useCallback(async () => {
|
|
||||||
dispatch({ type: API_ACTIONS.INIT });
|
|
||||||
try {
|
|
||||||
await axios.delete(url, {
|
|
||||||
timeout: TIMEOUT,
|
|
||||||
headers: HEADERS,
|
|
||||||
});
|
|
||||||
dispatch({ type: API_ACTIONS.SUCCESS });
|
|
||||||
} catch (error) {
|
|
||||||
dispatch({
|
|
||||||
type: API_ACTIONS.FAILURE,
|
|
||||||
payload: getErrorMessage(error),
|
|
||||||
status: error.response.status,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}, [url]);
|
|
||||||
|
|
||||||
return [state, requestDelete];
|
|
||||||
}
|
|
|
@ -1,65 +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 { useReducer, useCallback } from "react";
|
|
||||||
import axios from "axios";
|
|
||||||
|
|
||||||
import { ForisURLs } from "forisUrls";
|
|
||||||
import { API_ACTIONS, TIMEOUT } from "./utils";
|
|
||||||
|
|
||||||
const APIGetReducer = (state, action) => {
|
|
||||||
switch (action.type) {
|
|
||||||
case API_ACTIONS.INIT:
|
|
||||||
return {
|
|
||||||
...state,
|
|
||||||
isLoading: true,
|
|
||||||
isError: false,
|
|
||||||
};
|
|
||||||
case API_ACTIONS.SUCCESS:
|
|
||||||
return {
|
|
||||||
...state,
|
|
||||||
isLoading: false,
|
|
||||||
isError: false,
|
|
||||||
data: action.payload,
|
|
||||||
};
|
|
||||||
case API_ACTIONS.FAILURE:
|
|
||||||
if (action.status === 403) window.location.assign(ForisURLs.login);
|
|
||||||
return {
|
|
||||||
...state,
|
|
||||||
isLoading: false,
|
|
||||||
isError: true,
|
|
||||||
data: action.payload,
|
|
||||||
};
|
|
||||||
default:
|
|
||||||
throw new Error();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
export function useAPIGet(url) {
|
|
||||||
const [state, dispatch] = useReducer(APIGetReducer, {
|
|
||||||
isLoading: false,
|
|
||||||
isError: false,
|
|
||||||
data: null,
|
|
||||||
});
|
|
||||||
const get = useCallback(async () => {
|
|
||||||
dispatch({ type: API_ACTIONS.INIT });
|
|
||||||
try {
|
|
||||||
const result = await axios.get(url, {
|
|
||||||
timeout: TIMEOUT,
|
|
||||||
});
|
|
||||||
dispatch({ type: API_ACTIONS.SUCCESS, payload: result.data });
|
|
||||||
} catch (error) {
|
|
||||||
dispatch({
|
|
||||||
type: API_ACTIONS.FAILURE,
|
|
||||||
payload: error.response.data,
|
|
||||||
status: error.response.status,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}, [url]);
|
|
||||||
|
|
||||||
return [state, get];
|
|
||||||
}
|
|
92
src/api/hooks.js
Normal file
92
src/api/hooks.js
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
/*
|
||||||
|
* 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 { useCallback, useReducer } from "react";
|
||||||
|
|
||||||
|
import { ForisURLs } from "forisUrls";
|
||||||
|
import {
|
||||||
|
API_ACTIONS, API_METHODS, API_STATE, getErrorPayload, HEADERS, TIMEOUT,
|
||||||
|
} from "./utils";
|
||||||
|
|
||||||
|
const DATA_METHODS = ["POST", "PATCH", "PUT"];
|
||||||
|
|
||||||
|
function createAPIHook(method) {
|
||||||
|
return (url, contentType) => {
|
||||||
|
const [state, dispatch] = useReducer(APIReducer, {
|
||||||
|
state: API_STATE.INIT,
|
||||||
|
data: null,
|
||||||
|
});
|
||||||
|
|
||||||
|
const sendRequest = useCallback(async (data) => {
|
||||||
|
const headers = { ...HEADERS };
|
||||||
|
if (contentType) {
|
||||||
|
headers["Content-Type"] = contentType;
|
||||||
|
}
|
||||||
|
|
||||||
|
dispatch({ type: API_ACTIONS.INIT });
|
||||||
|
try {
|
||||||
|
const request = API_METHODS[method];
|
||||||
|
const config = {
|
||||||
|
timeout: TIMEOUT,
|
||||||
|
headers,
|
||||||
|
};
|
||||||
|
let result;
|
||||||
|
if (DATA_METHODS.includes(method)) {
|
||||||
|
result = await request(url, data, config);
|
||||||
|
} else {
|
||||||
|
result = await request(url, config);
|
||||||
|
}
|
||||||
|
dispatch({
|
||||||
|
type: API_ACTIONS.SUCCESS,
|
||||||
|
payload: result.data,
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
dispatch({
|
||||||
|
type: API_ACTIONS.FAILURE,
|
||||||
|
status: error.response && error.response.status,
|
||||||
|
payload: getErrorPayload(error),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, [url, contentType]);
|
||||||
|
return [state, sendRequest];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function APIReducer(state, action) {
|
||||||
|
switch (action.type) {
|
||||||
|
case API_ACTIONS.INIT:
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
state: API_STATE.SENDING,
|
||||||
|
};
|
||||||
|
case API_ACTIONS.SUCCESS:
|
||||||
|
return {
|
||||||
|
state: API_STATE.SUCCESS,
|
||||||
|
data: action.payload,
|
||||||
|
};
|
||||||
|
case API_ACTIONS.FAILURE:
|
||||||
|
if (action.status === 403) {
|
||||||
|
window.location.assign(ForisURLs.login);
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
state: API_STATE.ERROR,
|
||||||
|
data: action.payload,
|
||||||
|
};
|
||||||
|
default:
|
||||||
|
throw new Error();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const useAPIGet = createAPIHook("GET");
|
||||||
|
const useAPIPost = createAPIHook("POST");
|
||||||
|
const useAPIPatch = createAPIHook("PATCH");
|
||||||
|
const useAPIPut = createAPIHook("PUT");
|
||||||
|
const useAPIDelete = createAPIHook("DELETE");
|
||||||
|
|
||||||
|
export {
|
||||||
|
useAPIGet, useAPIPost, useAPIPatch, useAPIPut, useAPIDelete,
|
||||||
|
};
|
|
@ -1,40 +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 { useReducer } from "react";
|
|
||||||
import axios from "axios";
|
|
||||||
|
|
||||||
import {
|
|
||||||
API_ACTIONS, TIMEOUT, HEADERS, APIReducer, getErrorMessage,
|
|
||||||
} from "./utils";
|
|
||||||
|
|
||||||
export function useAPIPatch(url) {
|
|
||||||
const [state, dispatch] = useReducer(APIReducer, {
|
|
||||||
isSending: false,
|
|
||||||
isError: false,
|
|
||||||
isSuccess: false,
|
|
||||||
data: null,
|
|
||||||
});
|
|
||||||
|
|
||||||
const patch = async (data) => {
|
|
||||||
dispatch({ type: API_ACTIONS.INIT });
|
|
||||||
try {
|
|
||||||
const result = await axios.patch(url, data, {
|
|
||||||
timeout: TIMEOUT,
|
|
||||||
headers: HEADERS,
|
|
||||||
});
|
|
||||||
dispatch({ type: API_ACTIONS.SUCCESS, payload: result.data });
|
|
||||||
} catch (error) {
|
|
||||||
dispatch({
|
|
||||||
type: API_ACTIONS.FAILURE,
|
|
||||||
payload: getErrorMessage(error),
|
|
||||||
status: error.response.status,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return [state, patch];
|
|
||||||
}
|
|
|
@ -1,45 +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 { useReducer } from "react";
|
|
||||||
import axios from "axios";
|
|
||||||
|
|
||||||
import {
|
|
||||||
API_ACTIONS, TIMEOUT, HEADERS, APIReducer, getErrorMessage,
|
|
||||||
} from "./utils";
|
|
||||||
|
|
||||||
export function useAPIPost(url, contentType) {
|
|
||||||
const [state, dispatch] = useReducer(APIReducer, {
|
|
||||||
isSending: false,
|
|
||||||
isError: false,
|
|
||||||
isSuccess: false,
|
|
||||||
data: null,
|
|
||||||
});
|
|
||||||
|
|
||||||
const headers = { ...HEADERS };
|
|
||||||
if (contentType) {
|
|
||||||
headers["Content-Type"] = contentType;
|
|
||||||
}
|
|
||||||
|
|
||||||
const post = async (data) => {
|
|
||||||
dispatch({ type: API_ACTIONS.INIT });
|
|
||||||
try {
|
|
||||||
const result = await axios.post(url, data, {
|
|
||||||
timeout: TIMEOUT,
|
|
||||||
headers,
|
|
||||||
});
|
|
||||||
dispatch({ type: API_ACTIONS.SUCCESS, payload: result.data });
|
|
||||||
} catch (error) {
|
|
||||||
dispatch({
|
|
||||||
type: API_ACTIONS.FAILURE,
|
|
||||||
payload: getErrorMessage(error),
|
|
||||||
status: error.response.status,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return [state, post];
|
|
||||||
}
|
|
|
@ -5,7 +5,36 @@
|
||||||
* See /LICENSE for more information.
|
* See /LICENSE for more information.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { ForisURLs } from "forisUrls";
|
import axios from "axios";
|
||||||
|
|
||||||
|
export const HEADERS = {
|
||||||
|
Accept: "application/json",
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
"X-CSRFToken": getCookie("_csrf_token"),
|
||||||
|
};
|
||||||
|
|
||||||
|
export const TIMEOUT = 5000;
|
||||||
|
|
||||||
|
export const API_ACTIONS = {
|
||||||
|
INIT: 1,
|
||||||
|
SUCCESS: 2,
|
||||||
|
FAILURE: 3,
|
||||||
|
};
|
||||||
|
|
||||||
|
export const API_STATE = {
|
||||||
|
INIT: "init",
|
||||||
|
SENDING: "sending",
|
||||||
|
SUCCESS: "success",
|
||||||
|
ERROR: "error",
|
||||||
|
};
|
||||||
|
|
||||||
|
export const API_METHODS = {
|
||||||
|
GET: axios.get,
|
||||||
|
POST: axios.post,
|
||||||
|
PATCH: axios.patch,
|
||||||
|
PUT: axios.put,
|
||||||
|
DELETE: axios.delete,
|
||||||
|
};
|
||||||
|
|
||||||
function getCookie(name) {
|
function getCookie(name) {
|
||||||
let cookieValue = null;
|
let cookieValue = null;
|
||||||
|
@ -23,55 +52,27 @@ function getCookie(name) {
|
||||||
return cookieValue;
|
return cookieValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const HEADERS = {
|
export function getErrorPayload(error) {
|
||||||
Accept: "application/json",
|
if (error.response) {
|
||||||
"Content-Type": "application/json",
|
if (error.response.status === 403) {
|
||||||
"X-CSRFToken": getCookie("_csrf_token"),
|
return _("The session is expired. Please log in again.");
|
||||||
};
|
|
||||||
|
|
||||||
export const TIMEOUT = 5000;
|
|
||||||
|
|
||||||
export const API_ACTIONS = {
|
|
||||||
INIT: 1,
|
|
||||||
SUCCESS: 2,
|
|
||||||
FAILURE: 3,
|
|
||||||
};
|
|
||||||
|
|
||||||
export function APIReducer(state, action) {
|
|
||||||
switch (action.type) {
|
|
||||||
case API_ACTIONS.INIT:
|
|
||||||
return {
|
|
||||||
...state,
|
|
||||||
isSending: true,
|
|
||||||
isError: false,
|
|
||||||
isSuccess: false,
|
|
||||||
};
|
|
||||||
case API_ACTIONS.SUCCESS:
|
|
||||||
return {
|
|
||||||
...state,
|
|
||||||
isSending: false,
|
|
||||||
isError: false,
|
|
||||||
isSuccess: true,
|
|
||||||
data: action.payload,
|
|
||||||
};
|
|
||||||
case API_ACTIONS.FAILURE:
|
|
||||||
if (action.status === 403) window.location.assign(ForisURLs.login);
|
|
||||||
return {
|
|
||||||
...state,
|
|
||||||
isSending: false,
|
|
||||||
isError: true,
|
|
||||||
isSuccess: false,
|
|
||||||
data: action.payload,
|
|
||||||
};
|
|
||||||
default:
|
|
||||||
throw new Error();
|
|
||||||
}
|
}
|
||||||
|
return getJSONErrorMessage(error);
|
||||||
|
}
|
||||||
|
if (error.code === "ECONNABORTED") {
|
||||||
|
return _("Timeout error occurred.");
|
||||||
|
}
|
||||||
|
if (error.request) {
|
||||||
|
return _("No response received.");
|
||||||
|
}
|
||||||
|
/* eslint no-console: "off" */
|
||||||
|
console.error(error);
|
||||||
|
return _("An unknown error occurred. Check the console for more info.");
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getErrorMessage(error) {
|
export function getJSONErrorMessage(error) {
|
||||||
let payload = "An unknown error occurred";
|
|
||||||
if (error.response.headers["content-type"] === "application/json") {
|
if (error.response.headers["content-type"] === "application/json") {
|
||||||
payload = error.response.data;
|
return error.response.data;
|
||||||
}
|
}
|
||||||
return payload;
|
return _("An unknown API error occurred.");
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,11 +8,20 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import PropTypes from "prop-types";
|
import PropTypes from "prop-types";
|
||||||
|
|
||||||
|
export const ALERT_TYPES = Object.freeze({
|
||||||
|
PRIMARY: "primary",
|
||||||
|
SECONDARY: "secondary",
|
||||||
|
SUCCESS: "success",
|
||||||
|
DANGER: "danger",
|
||||||
|
WARNING: "warning",
|
||||||
|
INFO: "info",
|
||||||
|
LIGHT: "light",
|
||||||
|
DARK: "dark",
|
||||||
|
});
|
||||||
|
|
||||||
Alert.propTypes = {
|
Alert.propTypes = {
|
||||||
/** Type of the alert it adds as `alert-${type}` class. */
|
/** Type of the alert it adds as `alert-${type}` class. */
|
||||||
type: PropTypes.string.isRequired,
|
type: PropTypes.oneOf(Object.values(ALERT_TYPES)),
|
||||||
/** Alert message. */
|
|
||||||
message: PropTypes.string,
|
|
||||||
/** Alert content. */
|
/** Alert content. */
|
||||||
children: PropTypes.oneOfType([
|
children: PropTypes.oneOfType([
|
||||||
PropTypes.arrayOf(PropTypes.node),
|
PropTypes.arrayOf(PropTypes.node),
|
||||||
|
@ -22,13 +31,16 @@ Alert.propTypes = {
|
||||||
onDismiss: PropTypes.func,
|
onDismiss: PropTypes.func,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Alert.defaultProps = {
|
||||||
|
type: ALERT_TYPES.DANGER,
|
||||||
|
};
|
||||||
|
|
||||||
export function Alert({
|
export function Alert({
|
||||||
type, message, onDismiss, children,
|
type, onDismiss, children,
|
||||||
}) {
|
}) {
|
||||||
return (
|
return (
|
||||||
<div className={`alert alert-dismissible alert-${type}`}>
|
<div className={`alert alert-dismissible alert-${type}`}>
|
||||||
{onDismiss ? <button type="button" className="close" onClick={onDismiss}>×</button> : false}
|
{onDismiss ? <button type="button" className="close" onClick={onDismiss}>×</button> : false}
|
||||||
{message}
|
|
||||||
{children}
|
{children}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
|
@ -12,7 +12,6 @@ import { Input } from "./Input";
|
||||||
|
|
||||||
export const EmailInput = ({ ...props }) => <Input type="email" {...props} />;
|
export const EmailInput = ({ ...props }) => <Input type="email" {...props} />;
|
||||||
|
|
||||||
|
|
||||||
EmailInput.propTypes = {
|
EmailInput.propTypes = {
|
||||||
/** Field label. */
|
/** Field label. */
|
||||||
label: PropTypes.string.isRequired,
|
label: PropTypes.string.isRequired,
|
||||||
|
|
|
@ -37,11 +37,10 @@ export function Modal({ shown, setShown, children }) {
|
||||||
};
|
};
|
||||||
}, [setShown]);
|
}, [setShown]);
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Portal containerId="modal-container">
|
<Portal containerId="modal-container">
|
||||||
<div className={`modal fade ${shown ? "show" : ""}`} role="dialog">
|
<div className={`modal fade ${shown ? "show" : ""}`} role="dialog">
|
||||||
<div ref={dialogRef} className="modal-dialog" role="document">
|
<div ref={dialogRef} className="modal-dialog modal-dialog-centered" role="document">
|
||||||
<div className="modal-content">
|
<div className="modal-content">
|
||||||
{children}
|
{children}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -11,7 +11,6 @@ import { useUID } from "react-uid";
|
||||||
|
|
||||||
import { formFieldsSize } from "./constants";
|
import { formFieldsSize } from "./constants";
|
||||||
|
|
||||||
|
|
||||||
RadioSet.propTypes = {
|
RadioSet.propTypes = {
|
||||||
/** Name attribute of the input HTML tag. */
|
/** Name attribute of the input HTML tag. */
|
||||||
name: PropTypes.string.isRequired,
|
name: PropTypes.string.isRequired,
|
||||||
|
|
|
@ -9,7 +9,6 @@ import React from "react";
|
||||||
import PropTypes from "prop-types";
|
import PropTypes from "prop-types";
|
||||||
import { useUID } from "react-uid";
|
import { useUID } from "react-uid";
|
||||||
|
|
||||||
|
|
||||||
Select.propTypes = {
|
Select.propTypes = {
|
||||||
/** Select field Label. */
|
/** Select field Label. */
|
||||||
label: PropTypes.string.isRequired,
|
label: PropTypes.string.isRequired,
|
||||||
|
|
|
@ -28,7 +28,7 @@ export function Spinner({
|
||||||
}) {
|
}) {
|
||||||
if (!fullScreen) {
|
if (!fullScreen) {
|
||||||
return (
|
return (
|
||||||
<div className={`spinner-wrapper ${className || ""}`} {...props}>
|
<div className={`spinner-wrapper ${className || "my-3 text-center"}`} {...props}>
|
||||||
<SpinnerElement>{children}</SpinnerElement>
|
<SpinnerElement>{children}</SpinnerElement>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,10 +10,8 @@ import PropTypes from "prop-types";
|
||||||
|
|
||||||
import { Input } from "./Input";
|
import { Input } from "./Input";
|
||||||
|
|
||||||
|
|
||||||
export const TextInput = ({ ...props }) => <Input type="text" {...props} />;
|
export const TextInput = ({ ...props }) => <Input type="text" {...props} />;
|
||||||
|
|
||||||
|
|
||||||
TextInput.propTypes = {
|
TextInput.propTypes = {
|
||||||
/** Field label. */
|
/** Field label. */
|
||||||
label: PropTypes.string.isRequired,
|
label: PropTypes.string.isRequired,
|
||||||
|
|
|
@ -5,16 +5,19 @@
|
||||||
* See /LICENSE for more information.
|
* See /LICENSE for more information.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, { useEffect, useState } from "react";
|
import React, { useEffect } from "react";
|
||||||
import PropTypes from "prop-types";
|
import PropTypes from "prop-types";
|
||||||
|
|
||||||
import { Spinner } from "bootstrap/Spinner";
|
import { Spinner } from "bootstrap/Spinner";
|
||||||
import { useAPIPost } from "api/post";
|
import { useAPIPost } from "api/hooks";
|
||||||
|
|
||||||
import { Prompt } from "react-router";
|
import { Prompt } from "react-router";
|
||||||
|
import { API_STATE } from "api/utils";
|
||||||
|
import { ErrorMessage } from "utils/ErrorMessage";
|
||||||
|
import { useAlert } from "alertContext/AlertContext";
|
||||||
|
import { ALERT_TYPES } from "bootstrap/Alert";
|
||||||
import { useForisModule, useForm } from "../hooks";
|
import { useForisModule, useForm } from "../hooks";
|
||||||
import { STATES as SUBMIT_BUTTON_STATES, SubmitButton } from "./SubmitButton";
|
import { STATES as SUBMIT_BUTTON_STATES, SubmitButton } from "./SubmitButton";
|
||||||
import { FailAlert, SuccessAlert } from "./alerts";
|
|
||||||
|
|
||||||
ForisForm.propTypes = {
|
ForisForm.propTypes = {
|
||||||
/** WebSocket object see `scr/common/WebSockets.js`. */
|
/** WebSocket object see `scr/common/WebSockets.js`. */
|
||||||
|
@ -69,22 +72,34 @@ export function ForisForm({
|
||||||
children,
|
children,
|
||||||
}) {
|
}) {
|
||||||
const [formState, onFormChangeHandler, resetFormData] = useForm(validator, prepData);
|
const [formState, onFormChangeHandler, resetFormData] = useForm(validator, prepData);
|
||||||
|
const [setAlert] = useAlert();
|
||||||
|
|
||||||
const [forisModuleState] = useForisModule(ws, forisConfig);
|
const [forisModuleState] = useForisModule(ws, forisConfig);
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (forisModuleState.data) {
|
if (forisModuleState.state === API_STATE.SUCCESS) {
|
||||||
resetFormData(forisModuleState.data);
|
resetFormData(forisModuleState.data);
|
||||||
}
|
}
|
||||||
}, [forisModuleState.data, resetFormData, prepData]);
|
}, [forisModuleState, resetFormData, prepData]);
|
||||||
|
|
||||||
const [postState, post] = useAPIPost(forisConfig.endpoint);
|
const [postState, post] = useAPIPost(forisConfig.endpoint);
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (postState.isSuccess) postCallback();
|
if (postState.state === API_STATE.SUCCESS) {
|
||||||
}, [postCallback, postState.isSuccess]);
|
postCallback();
|
||||||
|
setAlert(_("Settings saved successfully"), ALERT_TYPES.SUCCESS);
|
||||||
|
} else if (postState.state === API_STATE.ERROR) {
|
||||||
|
setAlert(postState.data);
|
||||||
|
}
|
||||||
|
}, [postCallback, postState.state, postState.data, setAlert]);
|
||||||
|
|
||||||
|
if (forisModuleState.state === API_STATE.ERROR) {
|
||||||
|
return <ErrorMessage />;
|
||||||
|
}
|
||||||
|
if (!formState.data) {
|
||||||
|
return <Spinner />;
|
||||||
|
}
|
||||||
|
|
||||||
function onSubmitHandler(e) {
|
function onSubmitHandler(event) {
|
||||||
e.preventDefault();
|
event.preventDefault();
|
||||||
resetFormData();
|
resetFormData();
|
||||||
const copiedFormData = JSON.parse(JSON.stringify(formState.data));
|
const copiedFormData = JSON.parse(JSON.stringify(formState.data));
|
||||||
const preparedData = prepDataToSubmit(copiedFormData);
|
const preparedData = prepDataToSubmit(copiedFormData);
|
||||||
|
@ -92,16 +107,18 @@ export function ForisForm({
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSubmitButtonState() {
|
function getSubmitButtonState() {
|
||||||
if (postState.isSending) return SUBMIT_BUTTON_STATES.SAVING;
|
if (postState.state === API_STATE.SENDING) {
|
||||||
if (forisModuleState.isLoading) return SUBMIT_BUTTON_STATES.LOAD;
|
return SUBMIT_BUTTON_STATES.SAVING;
|
||||||
|
}
|
||||||
|
if (forisModuleState.state === API_STATE.SENDING) {
|
||||||
|
return SUBMIT_BUTTON_STATES.LOAD;
|
||||||
|
}
|
||||||
return SUBMIT_BUTTON_STATES.READY;
|
return SUBMIT_BUTTON_STATES.READY;
|
||||||
}
|
}
|
||||||
|
|
||||||
const [alertIsDismissed, setAlertIsDismissed] = useState(false);
|
const formIsDisabled = (disabled
|
||||||
|
|| forisModuleState.state === API_STATE.SENDING
|
||||||
if (!formState.data) return <Spinner className="row justify-content-center" />;
|
|| postState.state === API_STATE.SENDING);
|
||||||
|
|
||||||
const formIsDisabled = disabled || forisModuleState.isLoading || postState.isSending;
|
|
||||||
const submitButtonIsDisabled = disabled || !!formState.errors;
|
const submitButtonIsDisabled = disabled || !!formState.errors;
|
||||||
|
|
||||||
const childrenWithFormProps = React.Children.map(
|
const childrenWithFormProps = React.Children.map(
|
||||||
|
@ -123,19 +140,9 @@ export function ForisForm({
|
||||||
return _("Changes you made may not be saved. Are you sure you want to leave?");
|
return _("Changes you made may not be saved. Are you sure you want to leave?");
|
||||||
}
|
}
|
||||||
|
|
||||||
let alert = null;
|
|
||||||
if (!alertIsDismissed) {
|
|
||||||
if (postState.isSuccess) {
|
|
||||||
alert = <SuccessAlert onDismiss={() => setAlertIsDismissed(true)} />;
|
|
||||||
} else if (postState.isError) {
|
|
||||||
alert = <FailAlert onDismiss={() => setAlertIsDismissed(true)} />;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Prompt message={getMessageOnLeavingPage} />
|
<Prompt message={getMessageOnLeavingPage} />
|
||||||
{alert}
|
|
||||||
<form onSubmit={onSubmit}>
|
<form onSubmit={onSubmit}>
|
||||||
{childrenWithFormProps}
|
{childrenWithFormProps}
|
||||||
<SubmitButton
|
<SubmitButton
|
||||||
|
|
|
@ -1,46 +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 PropTypes from "prop-types";
|
|
||||||
|
|
||||||
import { Alert } from "bootstrap/Alert";
|
|
||||||
import { Portal } from "utils/Portal";
|
|
||||||
|
|
||||||
SuccessAlert.propTypes = {
|
|
||||||
onDismiss: PropTypes.func.isRequired,
|
|
||||||
};
|
|
||||||
|
|
||||||
const ALERT_CONTAINER_ID = "alert-container";
|
|
||||||
|
|
||||||
export function SuccessAlert({ onDismiss }) {
|
|
||||||
return (
|
|
||||||
<Portal containerId={ALERT_CONTAINER_ID}>
|
|
||||||
<Alert
|
|
||||||
type="success"
|
|
||||||
message={_("Settings were successfully saved.")}
|
|
||||||
onDismiss={onDismiss}
|
|
||||||
/>
|
|
||||||
</Portal>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
FailAlert.propTypes = {
|
|
||||||
onDismiss: PropTypes.func.isRequired,
|
|
||||||
};
|
|
||||||
|
|
||||||
export function FailAlert({ onDismiss }) {
|
|
||||||
return (
|
|
||||||
<Portal containerId={ALERT_CONTAINER_ID}>
|
|
||||||
<Alert
|
|
||||||
type="danger"
|
|
||||||
message={_("Settings update was failed.")}
|
|
||||||
onDismiss={onDismiss}
|
|
||||||
/>
|
|
||||||
</Portal>
|
|
||||||
);
|
|
||||||
}
|
|
|
@ -8,10 +8,9 @@
|
||||||
import { useCallback, useEffect, useReducer } from "react";
|
import { useCallback, useEffect, useReducer } from "react";
|
||||||
import update from "immutability-helper";
|
import update from "immutability-helper";
|
||||||
|
|
||||||
import { useAPIGet } from "api/get";
|
import { useAPIGet } from "api/hooks";
|
||||||
import { useWSForisModule } from "webSockets/hooks";
|
import { useWSForisModule } from "webSockets/hooks";
|
||||||
|
|
||||||
|
|
||||||
const FORM_ACTIONS = {
|
const FORM_ACTIONS = {
|
||||||
updateValue: 1,
|
updateValue: 1,
|
||||||
resetData: 2,
|
resetData: 2,
|
||||||
|
@ -49,7 +48,6 @@ export function useForm(validator, dataPreprocessor) {
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function formReducer(state, action) {
|
function formReducer(state, action) {
|
||||||
switch (action.type) {
|
switch (action.type) {
|
||||||
case FORM_ACTIONS.updateValue: {
|
case FORM_ACTIONS.updateValue: {
|
||||||
|
|
16
src/index.js
16
src/index.js
|
@ -6,13 +6,13 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// API
|
// API
|
||||||
export { useAPIGet } from "api/get";
|
export {
|
||||||
export { useAPIPost } from "api/post";
|
useAPIGet, useAPIPost, useAPIPatch, useAPIPut, useAPIDelete,
|
||||||
export { useAPIDelete } from "api/delete";
|
} from "api/hooks";
|
||||||
export { useAPIPatch } from "api/patch";
|
export { API_STATE } from "api/utils";
|
||||||
|
|
||||||
// Bootstrap
|
// Bootstrap
|
||||||
export { Alert } from "bootstrap/Alert";
|
export { Alert, ALERT_TYPES } from "bootstrap/Alert";
|
||||||
export { Button } from "bootstrap/Button";
|
export { Button } from "bootstrap/Button";
|
||||||
export { CheckBox } from "bootstrap/CheckBox";
|
export { CheckBox } from "bootstrap/CheckBox";
|
||||||
export { DownloadButton } from "bootstrap/DownloadButton";
|
export { DownloadButton } from "bootstrap/DownloadButton";
|
||||||
|
@ -50,6 +50,10 @@ export { WebSockets } from "webSockets/WebSockets";
|
||||||
// Utils
|
// Utils
|
||||||
export { Portal } from "utils/Portal";
|
export { Portal } from "utils/Portal";
|
||||||
export { undefinedIfEmpty, withoutUndefinedKeys, onlySpecifiedKeys } from "utils/objectHelpers";
|
export { undefinedIfEmpty, withoutUndefinedKeys, onlySpecifiedKeys } from "utils/objectHelpers";
|
||||||
|
export {
|
||||||
|
withEither, withSpinner, withSending, withSpinnerOnSending, withError, withErrorMessage,
|
||||||
|
} from "utils/conditionalHOCs";
|
||||||
|
export { ErrorMessage } from "utils/ErrorMessage";
|
||||||
|
|
||||||
// Foris URL
|
// Foris URL
|
||||||
export { ForisURLs, REFORIS_URL_PREFIX } from "forisUrls";
|
export { ForisURLs, REFORIS_URL_PREFIX } from "forisUrls";
|
||||||
|
@ -66,4 +70,4 @@ export {
|
||||||
} from "validations";
|
} from "validations";
|
||||||
|
|
||||||
// Alert context
|
// Alert context
|
||||||
export { AlertContext, AlertContextProvider } from "alertContext/AlertContext";
|
export { AlertContext, AlertContextProvider, useAlert } from "alertContext/AlertContext";
|
||||||
|
|
23
src/testUtils/alertContextMock.js
Normal file
23
src/testUtils/alertContextMock.js
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
/*
|
||||||
|
* 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 { AlertContext } from "../alertContext/AlertContext";
|
||||||
|
|
||||||
|
const mockSetAlert = jest.fn();
|
||||||
|
const mockDismissAlert = jest.fn();
|
||||||
|
|
||||||
|
function AlertContextMock({ children }) {
|
||||||
|
return (
|
||||||
|
<AlertContext.Provider value={[mockSetAlert, mockDismissAlert]}>
|
||||||
|
{ children }
|
||||||
|
</AlertContext.Provider>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export { AlertContextMock, mockSetAlert, mockDismissAlert };
|
|
@ -7,31 +7,37 @@
|
||||||
|
|
||||||
/* eslint import/export: "off" */
|
/* eslint import/export: "off" */
|
||||||
|
|
||||||
import React from 'react';
|
import React from "react";
|
||||||
import PropTypes from 'prop-types';
|
import { UIDReset } from "react-uid";
|
||||||
import {UIDReset} from 'react-uid';
|
import { StaticRouter } from "react-router";
|
||||||
import {StaticRouter} from 'react-router';
|
import { render } from "@testing-library/react";
|
||||||
import {render} from '@testing-library/react'
|
import PropTypes from "prop-types";
|
||||||
|
|
||||||
|
import { AlertContextMock } from "./alertContextMock";
|
||||||
|
|
||||||
Wrapper.propTypes = {
|
Wrapper.propTypes = {
|
||||||
children: PropTypes.oneOfType([
|
children: PropTypes.oneOfType([
|
||||||
PropTypes.arrayOf(PropTypes.node),
|
PropTypes.arrayOf(PropTypes.node),
|
||||||
PropTypes.node
|
PropTypes.node,
|
||||||
])
|
]),
|
||||||
};
|
};
|
||||||
|
|
||||||
function Wrapper({ children }) {
|
function Wrapper({ children }) {
|
||||||
return <StaticRouter>
|
return (
|
||||||
|
<AlertContextMock>
|
||||||
|
<StaticRouter>
|
||||||
<UIDReset>
|
<UIDReset>
|
||||||
{children}
|
{children}
|
||||||
</UIDReset>
|
</UIDReset>
|
||||||
</StaticRouter>
|
</StaticRouter>
|
||||||
|
</AlertContextMock>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const customTestRender = (ui, options) => render(ui, { wrapper: Wrapper, ...options });
|
const customTestRender = (ui, options) => render(ui, { wrapper: Wrapper, ...options });
|
||||||
|
|
||||||
// re-export everything
|
// re-export everything
|
||||||
export * from '@testing-library/react'
|
export * from "@testing-library/react";
|
||||||
|
|
||||||
// override render method
|
// override render method
|
||||||
export {customTestRender as render}
|
export { customTestRender as render };
|
||||||
|
|
12
src/testUtils/network.js
Normal file
12
src/testUtils/network.js
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
/*
|
||||||
|
* 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 mockAxios from 'jest-mock-axios';
|
||||||
|
|
||||||
|
export function mockJSONError(data) {
|
||||||
|
mockAxios.mockError({ response: { data, headers: { "content-type": "application/json" } } });
|
||||||
|
}
|
|
@ -15,12 +15,15 @@ global.afterEach(() => {
|
||||||
|
|
||||||
// Mock babel (gettext)
|
// Mock babel (gettext)
|
||||||
global._ = str => str;
|
global._ = str => str;
|
||||||
|
global.ngettext = str => str;
|
||||||
global.babel = {format: (str) => str};
|
global.babel = {format: (str) => str};
|
||||||
global.ForisTranslations = {};
|
global.ForisTranslations = {};
|
||||||
|
|
||||||
|
// Mock web sockets
|
||||||
|
window.WebSocket = jest.fn();
|
||||||
|
|
||||||
// Mock scrollIntoView
|
// Mock scrollIntoView
|
||||||
global.HTMLElement.prototype.scrollIntoView = () => {
|
global.HTMLElement.prototype.scrollIntoView = () => {};
|
||||||
};
|
|
||||||
|
|
||||||
jest.doMock('moment', () => {
|
jest.doMock('moment', () => {
|
||||||
moment.tz.setDefault('UTC');
|
moment.tz.setDefault('UTC');
|
||||||
|
|
16
src/utils/ErrorMessage.js
Normal file
16
src/utils/ErrorMessage.js
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
/*
|
||||||
|
* 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";
|
||||||
|
|
||||||
|
export function ErrorMessage() {
|
||||||
|
return (
|
||||||
|
<p className="text-center text-danger">
|
||||||
|
{_("An error occurred while fetching data.")}
|
||||||
|
</p>
|
||||||
|
);
|
||||||
|
}
|
|
@ -0,0 +1,61 @@
|
||||||
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`conditional HOCs withError should render error message 1`] = `
|
||||||
|
<div>
|
||||||
|
<p
|
||||||
|
class="text-center text-danger"
|
||||||
|
>
|
||||||
|
An error occurred while fetching data.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`conditional HOCs withErrorMessage should render error message 1`] = `
|
||||||
|
<div>
|
||||||
|
<p
|
||||||
|
class="text-center text-danger"
|
||||||
|
>
|
||||||
|
An error occurred while fetching data.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`conditional HOCs withSpinner should render spinner 1`] = `
|
||||||
|
<div>
|
||||||
|
<div
|
||||||
|
class="spinner-wrapper my-3 text-center"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="spinner-border "
|
||||||
|
role="status"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
class="sr-only"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="spinner-text"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`conditional HOCs withSpinnerOnSending should render spinner 1`] = `
|
||||||
|
<div>
|
||||||
|
<div
|
||||||
|
class="spinner-wrapper my-3 text-center"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="spinner-border "
|
||||||
|
role="status"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
class="sr-only"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="spinner-text"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
110
src/utils/__tests__/conditionalHOCs.test.js
Normal file
110
src/utils/__tests__/conditionalHOCs.test.js
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
/*
|
||||||
|
* 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 { render } from "customTestRender";
|
||||||
|
import {
|
||||||
|
withEither, withSpinner, withSending, withSpinnerOnSending, withError, withErrorMessage,
|
||||||
|
} from "../conditionalHOCs";
|
||||||
|
import { API_STATE } from "api/utils";
|
||||||
|
|
||||||
|
describe("conditional HOCs", () => {
|
||||||
|
const First = () => <p>First</p>;
|
||||||
|
const Alternative = () => <p>Alternative</p>;
|
||||||
|
|
||||||
|
describe("withEither", () => {
|
||||||
|
it("should render First component", () => {
|
||||||
|
const withAlternative = withEither(() => false, Alternative);
|
||||||
|
const FirstWithConditional = withAlternative(First);
|
||||||
|
const { getByText } = render(<FirstWithConditional />);
|
||||||
|
expect(getByText("First")).toBeDefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should render Alternative component", () => {
|
||||||
|
const withAlternative = withEither(() => true, Alternative);
|
||||||
|
const FirstWithConditional = withAlternative(First);
|
||||||
|
const { getByText } = render(<FirstWithConditional />);
|
||||||
|
expect(getByText("Alternative")).toBeDefined();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("withSpinner", () => {
|
||||||
|
it("should render First component", () => {
|
||||||
|
const withSpinnerHidden = withSpinner(() => false);
|
||||||
|
const FirstWithConditional = withSpinnerHidden(First);
|
||||||
|
const { getByText } = render(<FirstWithConditional />);
|
||||||
|
expect(getByText("First")).toBeDefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should render spinner", () => {
|
||||||
|
const withSpinnerVisible = withSpinner(() => true);
|
||||||
|
const FirstWithConditional = withSpinnerVisible(First);
|
||||||
|
const { container } = render(<FirstWithConditional />);
|
||||||
|
expect(container).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("withSending", () => {
|
||||||
|
it("should render First component", () => {
|
||||||
|
const withAlternative = withSending(Alternative);
|
||||||
|
const FirstWithConditional = withAlternative(First);
|
||||||
|
const { getByText } = render(<FirstWithConditional apiState={API_STATE.SUCCESS} />);
|
||||||
|
expect(getByText("First")).toBeDefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should render Alternative component", () => {
|
||||||
|
const withAlternative = withSending(Alternative);
|
||||||
|
const FirstWithConditional = withAlternative(First);
|
||||||
|
const { getByText } = render(<FirstWithConditional apiState={API_STATE.SENDING} />);
|
||||||
|
expect(getByText("Alternative")).toBeDefined();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("withSpinnerOnSending", () => {
|
||||||
|
it("should render First component", () => {
|
||||||
|
const FirstWithConditional = withSpinnerOnSending(First);
|
||||||
|
const { getByText } = render(<FirstWithConditional apiState={API_STATE.SUCCESS} />);
|
||||||
|
expect(getByText("First")).toBeDefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should render spinner", () => {
|
||||||
|
const FirstWithConditional = withSpinnerOnSending(First);
|
||||||
|
const { container } = render(<FirstWithConditional apiState={API_STATE.SENDING} />);
|
||||||
|
expect(container).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("withError", () => {
|
||||||
|
it("should render First component", () => {
|
||||||
|
const withErrorHidden = withError(() => false);
|
||||||
|
const FirstWithConditional = withErrorHidden(First);
|
||||||
|
const { getByText } = render(<FirstWithConditional />);
|
||||||
|
expect(getByText("First")).toBeDefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should render error message", () => {
|
||||||
|
const withErrorVisible = withError(() => true);
|
||||||
|
const FirstWithConditional = withErrorVisible(First);
|
||||||
|
const { container } = render(<FirstWithConditional />);
|
||||||
|
expect(container).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("withErrorMessage", () => {
|
||||||
|
it("should render First component", () => {
|
||||||
|
const FirstWithConditional = withErrorMessage(First);
|
||||||
|
const { getByText } = render(<FirstWithConditional apiState={API_STATE.SUCCESS} />);
|
||||||
|
expect(getByText("First")).toBeDefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should render error message", () => {
|
||||||
|
const FirstWithConditional = withErrorMessage(First);
|
||||||
|
const { container } = render(<FirstWithConditional apiState={API_STATE.ERROR} />);
|
||||||
|
expect(container).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
52
src/utils/conditionalHOCs.js
Normal file
52
src/utils/conditionalHOCs.js
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
/*
|
||||||
|
* 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 { Spinner } from "bootstrap/Spinner";
|
||||||
|
import { API_STATE } from "api/utils";
|
||||||
|
import { ErrorMessage } from "./ErrorMessage";
|
||||||
|
|
||||||
|
function withEither(conditionalFn, Either) {
|
||||||
|
return (Component) => (props) => {
|
||||||
|
if (conditionalFn(props)) {
|
||||||
|
return <Either />;
|
||||||
|
}
|
||||||
|
return <Component {...props} />;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// Loading
|
||||||
|
|
||||||
|
function isSending(props) {
|
||||||
|
if (Array.isArray(props.apiState)) {
|
||||||
|
return props.apiState.some(
|
||||||
|
(state) => [API_STATE.INIT, API_STATE.SENDING].includes(state),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return [API_STATE.INIT, API_STATE.SENDING].includes(props.apiState);
|
||||||
|
}
|
||||||
|
|
||||||
|
const withSpinner = (conditionalFn) => withEither(conditionalFn, Spinner);
|
||||||
|
const withSending = (Either) => withEither(isSending, Either);
|
||||||
|
const withSpinnerOnSending = withSpinner(isSending);
|
||||||
|
|
||||||
|
// Error handling
|
||||||
|
|
||||||
|
const withError = (conditionalFn) => withEither(conditionalFn, ErrorMessage);
|
||||||
|
const withErrorMessage = withError(
|
||||||
|
(props) => {
|
||||||
|
if (Array.isArray(props.apiState)) {
|
||||||
|
return props.apiState.includes(API_STATE.ERROR);
|
||||||
|
}
|
||||||
|
return props.apiState === API_STATE.ERROR;
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
export {
|
||||||
|
withEither, withSpinner, withSending, withSpinnerOnSending, withError, withErrorMessage,
|
||||||
|
};
|
|
@ -29,7 +29,6 @@ const REs = {
|
||||||
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-.]+ *)*$/,
|
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-.]+ *)*$/,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
const createValidator = (fieldType) => (value) => {
|
const createValidator = (fieldType) => (value) => {
|
||||||
if (value && value !== "") return REs[fieldType].test(value) ? undefined : ERROR_MESSAGES[fieldType];
|
if (value && value !== "") return REs[fieldType].test(value) ? undefined : ERROR_MESSAGES[fieldType];
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Translations template for PROJECT.
|
# Czech translations for PROJECT.
|
||||||
# Copyright (C) 2019 ORGANIZATION
|
# Copyright (C) 2019 ORGANIZATION
|
||||||
# This file is distributed under the same license as the PROJECT project.
|
# This file is distributed under the same license as the PROJECT project.
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
|
||||||
|
@ -7,17 +7,16 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2019-08-28 14:34+0200\n"
|
"POT-Creation-Date: 2019-11-14 11:13+0100\n"
|
||||||
"PO-Revision-Date: 2019-08-28 12:55+0000\n"
|
"PO-Revision-Date: 2019-08-28 12:55+0000\n"
|
||||||
"Last-Translator: Stepan Henek <stepan+github@henek.name>\n"
|
"Last-Translator: Stepan Henek <stepan+github@henek.name>\n"
|
||||||
"Language-Team: Czech <https://hosted.weblate.org/projects/turris/foris-js/cs/"
|
|
||||||
">\n"
|
|
||||||
"Language: cs\n"
|
"Language: cs\n"
|
||||||
|
"Language-Team: Czech <https://hosted.weblate.org/projects/turris/foris-"
|
||||||
|
"js/cs/>\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
|
||||||
"X-Generator: Weblate 3.9-dev\n"
|
|
||||||
"Generated-By: Babel 2.7.0\n"
|
"Generated-By: Babel 2.7.0\n"
|
||||||
|
|
||||||
#: src/validations.js:13
|
#: src/validations.js:13
|
||||||
|
@ -48,7 +47,31 @@ msgstr "Tohle není platná MAC adresa."
|
||||||
msgid "Doesn't contain a list of emails separated by commas."
|
msgid "Doesn't contain a list of emails separated by commas."
|
||||||
msgstr "Neobsahuje seznam e-mailů oddělených čárkou."
|
msgstr "Neobsahuje seznam e-mailů oddělených čárkou."
|
||||||
|
|
||||||
#: src/form/components/ForisForm.js:123
|
#: src/api/utils.js:58
|
||||||
|
msgid "The session is expired. Please log in again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:63
|
||||||
|
msgid "Timeout error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:66
|
||||||
|
msgid "No response received."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:70
|
||||||
|
msgid "An unknown error occurred. Check the console for more info."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:77
|
||||||
|
msgid "An unknown API error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:88
|
||||||
|
msgid "Settings saved successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:140
|
||||||
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Změny, které byly provedeny, nebyly uloženy. Jste si jistý, že chcete "
|
"Změny, které byly provedeny, nebyly uloženy. Jste si jistý, že chcete "
|
||||||
|
@ -66,10 +89,13 @@ msgstr "Načítám nastavení"
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "Uložit"
|
msgstr "Uložit"
|
||||||
|
|
||||||
#: src/form/components/alerts.js:25
|
#: src/utils/ErrorMessage.js:13
|
||||||
msgid "Settings were successfully saved."
|
msgid "An error occurred while fetching data."
|
||||||
msgstr "Nastavení bylo úspěšně uloženo."
|
msgstr ""
|
||||||
|
|
||||||
|
#~ msgid "Settings were successfully saved."
|
||||||
|
#~ msgstr "Nastavení bylo úspěšně uloženo."
|
||||||
|
|
||||||
|
#~ msgid "Settings update was failed."
|
||||||
|
#~ msgstr "Ukládání nastavení selhalo."
|
||||||
|
|
||||||
#: src/form/components/alerts.js:41
|
|
||||||
msgid "Settings update was failed."
|
|
||||||
msgstr "Ukládání nastavení selhalo."
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2019-08-28 14:34+0200\n"
|
"POT-Creation-Date: 2019-11-14 11:13+0100\n"
|
||||||
"PO-Revision-Date: 2019-08-28 17:54+0200\n"
|
"PO-Revision-Date: 2019-08-28 17:54+0200\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: da\n"
|
"Language: da\n"
|
||||||
|
@ -16,7 +16,7 @@ msgstr ""
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: Babel 2.6.0\n"
|
"Generated-By: Babel 2.7.0\n"
|
||||||
|
|
||||||
#: src/validations.js:13
|
#: src/validations.js:13
|
||||||
msgid "This is not a valid IPv4 address."
|
msgid "This is not a valid IPv4 address."
|
||||||
|
@ -46,7 +46,31 @@ msgstr ""
|
||||||
msgid "Doesn't contain a list of emails separated by commas."
|
msgid "Doesn't contain a list of emails separated by commas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/ForisForm.js:123
|
#: src/api/utils.js:58
|
||||||
|
msgid "The session is expired. Please log in again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:63
|
||||||
|
msgid "Timeout error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:66
|
||||||
|
msgid "No response received."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:70
|
||||||
|
msgid "An unknown error occurred. Check the console for more info."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:77
|
||||||
|
msgid "An unknown API error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:88
|
||||||
|
msgid "Settings saved successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:140
|
||||||
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -62,11 +86,13 @@ msgstr ""
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:25
|
#: src/utils/ErrorMessage.js:13
|
||||||
msgid "Settings were successfully saved."
|
msgid "An error occurred while fetching data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:41
|
#~ msgid "Settings were successfully saved."
|
||||||
msgid "Settings update was failed."
|
#~ msgstr ""
|
||||||
msgstr ""
|
|
||||||
|
#~ msgid "Settings update was failed."
|
||||||
|
#~ msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2019-08-28 14:34+0200\n"
|
"POT-Creation-Date: 2019-11-14 11:13+0100\n"
|
||||||
"PO-Revision-Date: 2019-08-28 17:54+0200\n"
|
"PO-Revision-Date: 2019-08-28 17:54+0200\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: de\n"
|
"Language: de\n"
|
||||||
|
@ -16,7 +16,7 @@ msgstr ""
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: Babel 2.6.0\n"
|
"Generated-By: Babel 2.7.0\n"
|
||||||
|
|
||||||
#: src/validations.js:13
|
#: src/validations.js:13
|
||||||
msgid "This is not a valid IPv4 address."
|
msgid "This is not a valid IPv4 address."
|
||||||
|
@ -46,7 +46,31 @@ msgstr ""
|
||||||
msgid "Doesn't contain a list of emails separated by commas."
|
msgid "Doesn't contain a list of emails separated by commas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/ForisForm.js:123
|
#: src/api/utils.js:58
|
||||||
|
msgid "The session is expired. Please log in again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:63
|
||||||
|
msgid "Timeout error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:66
|
||||||
|
msgid "No response received."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:70
|
||||||
|
msgid "An unknown error occurred. Check the console for more info."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:77
|
||||||
|
msgid "An unknown API error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:88
|
||||||
|
msgid "Settings saved successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:140
|
||||||
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -62,11 +86,13 @@ msgstr ""
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:25
|
#: src/utils/ErrorMessage.js:13
|
||||||
msgid "Settings were successfully saved."
|
msgid "An error occurred while fetching data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:41
|
#~ msgid "Settings were successfully saved."
|
||||||
msgid "Settings update was failed."
|
#~ msgstr ""
|
||||||
msgstr ""
|
|
||||||
|
#~ msgid "Settings update was failed."
|
||||||
|
#~ msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2019-08-28 14:34+0200\n"
|
"POT-Creation-Date: 2019-11-14 11:13+0100\n"
|
||||||
"PO-Revision-Date: 2019-08-28 17:54+0200\n"
|
"PO-Revision-Date: 2019-08-28 17:54+0200\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: el\n"
|
"Language: el\n"
|
||||||
|
@ -16,7 +16,7 @@ msgstr ""
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: Babel 2.6.0\n"
|
"Generated-By: Babel 2.7.0\n"
|
||||||
|
|
||||||
#: src/validations.js:13
|
#: src/validations.js:13
|
||||||
msgid "This is not a valid IPv4 address."
|
msgid "This is not a valid IPv4 address."
|
||||||
|
@ -46,7 +46,31 @@ msgstr ""
|
||||||
msgid "Doesn't contain a list of emails separated by commas."
|
msgid "Doesn't contain a list of emails separated by commas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/ForisForm.js:123
|
#: src/api/utils.js:58
|
||||||
|
msgid "The session is expired. Please log in again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:63
|
||||||
|
msgid "Timeout error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:66
|
||||||
|
msgid "No response received."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:70
|
||||||
|
msgid "An unknown error occurred. Check the console for more info."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:77
|
||||||
|
msgid "An unknown API error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:88
|
||||||
|
msgid "Settings saved successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:140
|
||||||
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -62,11 +86,13 @@ msgstr ""
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:25
|
#: src/utils/ErrorMessage.js:13
|
||||||
msgid "Settings were successfully saved."
|
msgid "An error occurred while fetching data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:41
|
#~ msgid "Settings were successfully saved."
|
||||||
msgid "Settings update was failed."
|
#~ msgstr ""
|
||||||
msgstr ""
|
|
||||||
|
#~ msgid "Settings update was failed."
|
||||||
|
#~ msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2019-08-28 14:34+0200\n"
|
"POT-Creation-Date: 2019-11-14 11:13+0100\n"
|
||||||
"PO-Revision-Date: 2019-08-28 17:21+0200\n"
|
"PO-Revision-Date: 2019-08-28 17:21+0200\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: en\n"
|
"Language: en\n"
|
||||||
|
@ -16,7 +16,7 @@ msgstr ""
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: Babel 2.6.0\n"
|
"Generated-By: Babel 2.7.0\n"
|
||||||
|
|
||||||
#: src/validations.js:13
|
#: src/validations.js:13
|
||||||
msgid "This is not a valid IPv4 address."
|
msgid "This is not a valid IPv4 address."
|
||||||
|
@ -46,7 +46,31 @@ msgstr ""
|
||||||
msgid "Doesn't contain a list of emails separated by commas."
|
msgid "Doesn't contain a list of emails separated by commas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/ForisForm.js:123
|
#: src/api/utils.js:58
|
||||||
|
msgid "The session is expired. Please log in again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:63
|
||||||
|
msgid "Timeout error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:66
|
||||||
|
msgid "No response received."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:70
|
||||||
|
msgid "An unknown error occurred. Check the console for more info."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:77
|
||||||
|
msgid "An unknown API error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:88
|
||||||
|
msgid "Settings saved successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:140
|
||||||
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -62,11 +86,13 @@ msgstr ""
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:25
|
#: src/utils/ErrorMessage.js:13
|
||||||
msgid "Settings were successfully saved."
|
msgid "An error occurred while fetching data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:41
|
#~ msgid "Settings were successfully saved."
|
||||||
msgid "Settings update was failed."
|
#~ msgstr ""
|
||||||
msgstr ""
|
|
||||||
|
#~ msgid "Settings update was failed."
|
||||||
|
#~ msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2019-08-28 14:34+0200\n"
|
"POT-Creation-Date: 2019-11-14 11:13+0100\n"
|
||||||
"PO-Revision-Date: 2019-08-28 17:54+0200\n"
|
"PO-Revision-Date: 2019-08-28 17:54+0200\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: fi\n"
|
"Language: fi\n"
|
||||||
|
@ -16,7 +16,7 @@ msgstr ""
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: Babel 2.6.0\n"
|
"Generated-By: Babel 2.7.0\n"
|
||||||
|
|
||||||
#: src/validations.js:13
|
#: src/validations.js:13
|
||||||
msgid "This is not a valid IPv4 address."
|
msgid "This is not a valid IPv4 address."
|
||||||
|
@ -46,7 +46,31 @@ msgstr ""
|
||||||
msgid "Doesn't contain a list of emails separated by commas."
|
msgid "Doesn't contain a list of emails separated by commas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/ForisForm.js:123
|
#: src/api/utils.js:58
|
||||||
|
msgid "The session is expired. Please log in again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:63
|
||||||
|
msgid "Timeout error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:66
|
||||||
|
msgid "No response received."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:70
|
||||||
|
msgid "An unknown error occurred. Check the console for more info."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:77
|
||||||
|
msgid "An unknown API error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:88
|
||||||
|
msgid "Settings saved successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:140
|
||||||
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -62,11 +86,13 @@ msgstr ""
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:25
|
#: src/utils/ErrorMessage.js:13
|
||||||
msgid "Settings were successfully saved."
|
msgid "An error occurred while fetching data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:41
|
#~ msgid "Settings were successfully saved."
|
||||||
msgid "Settings update was failed."
|
#~ msgstr ""
|
||||||
msgstr ""
|
|
||||||
|
#~ msgid "Settings update was failed."
|
||||||
|
#~ msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2019-08-28 14:34+0200\n"
|
"POT-Creation-Date: 2019-11-14 11:13+0100\n"
|
||||||
"PO-Revision-Date: 2019-08-28 17:54+0200\n"
|
"PO-Revision-Date: 2019-08-28 17:54+0200\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: fo\n"
|
"Language: fo\n"
|
||||||
|
@ -16,7 +16,7 @@ msgstr ""
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: Babel 2.6.0\n"
|
"Generated-By: Babel 2.7.0\n"
|
||||||
|
|
||||||
#: src/validations.js:13
|
#: src/validations.js:13
|
||||||
msgid "This is not a valid IPv4 address."
|
msgid "This is not a valid IPv4 address."
|
||||||
|
@ -46,7 +46,31 @@ msgstr ""
|
||||||
msgid "Doesn't contain a list of emails separated by commas."
|
msgid "Doesn't contain a list of emails separated by commas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/ForisForm.js:123
|
#: src/api/utils.js:58
|
||||||
|
msgid "The session is expired. Please log in again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:63
|
||||||
|
msgid "Timeout error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:66
|
||||||
|
msgid "No response received."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:70
|
||||||
|
msgid "An unknown error occurred. Check the console for more info."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:77
|
||||||
|
msgid "An unknown API error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:88
|
||||||
|
msgid "Settings saved successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:140
|
||||||
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -62,11 +86,13 @@ msgstr ""
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:25
|
#: src/utils/ErrorMessage.js:13
|
||||||
msgid "Settings were successfully saved."
|
msgid "An error occurred while fetching data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:41
|
#~ msgid "Settings were successfully saved."
|
||||||
msgid "Settings update was failed."
|
#~ msgstr ""
|
||||||
msgstr ""
|
|
||||||
|
#~ msgid "Settings update was failed."
|
||||||
|
#~ msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2019-08-28 14:34+0200\n"
|
"POT-Creation-Date: 2019-11-14 11:13+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -45,7 +45,31 @@ msgstr ""
|
||||||
msgid "Doesn't contain a list of emails separated by commas."
|
msgid "Doesn't contain a list of emails separated by commas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/ForisForm.js:123
|
#: src/api/utils.js:58
|
||||||
|
msgid "The session is expired. Please log in again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:63
|
||||||
|
msgid "Timeout error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:66
|
||||||
|
msgid "No response received."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:70
|
||||||
|
msgid "An unknown error occurred. Check the console for more info."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:77
|
||||||
|
msgid "An unknown API error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:88
|
||||||
|
msgid "Settings saved successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:140
|
||||||
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -61,11 +85,7 @@ msgstr ""
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:25
|
#: src/utils/ErrorMessage.js:13
|
||||||
msgid "Settings were successfully saved."
|
msgid "An error occurred while fetching data."
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/form/components/alerts.js:41
|
|
||||||
msgid "Settings update was failed."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2019-08-28 14:34+0200\n"
|
"POT-Creation-Date: 2019-11-14 11:13+0100\n"
|
||||||
"PO-Revision-Date: 2019-08-28 17:54+0200\n"
|
"PO-Revision-Date: 2019-08-28 17:54+0200\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: fr\n"
|
"Language: fr\n"
|
||||||
|
@ -16,7 +16,7 @@ msgstr ""
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: Babel 2.6.0\n"
|
"Generated-By: Babel 2.7.0\n"
|
||||||
|
|
||||||
#: src/validations.js:13
|
#: src/validations.js:13
|
||||||
msgid "This is not a valid IPv4 address."
|
msgid "This is not a valid IPv4 address."
|
||||||
|
@ -46,7 +46,31 @@ msgstr ""
|
||||||
msgid "Doesn't contain a list of emails separated by commas."
|
msgid "Doesn't contain a list of emails separated by commas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/ForisForm.js:123
|
#: src/api/utils.js:58
|
||||||
|
msgid "The session is expired. Please log in again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:63
|
||||||
|
msgid "Timeout error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:66
|
||||||
|
msgid "No response received."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:70
|
||||||
|
msgid "An unknown error occurred. Check the console for more info."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:77
|
||||||
|
msgid "An unknown API error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:88
|
||||||
|
msgid "Settings saved successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:140
|
||||||
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -62,11 +86,13 @@ msgstr ""
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:25
|
#: src/utils/ErrorMessage.js:13
|
||||||
msgid "Settings were successfully saved."
|
msgid "An error occurred while fetching data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:41
|
#~ msgid "Settings were successfully saved."
|
||||||
msgid "Settings update was failed."
|
#~ msgstr ""
|
||||||
msgstr ""
|
|
||||||
|
#~ msgid "Settings update was failed."
|
||||||
|
#~ msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2019-08-28 14:34+0200\n"
|
"POT-Creation-Date: 2019-11-14 11:13+0100\n"
|
||||||
"PO-Revision-Date: 2019-08-28 17:55+0200\n"
|
"PO-Revision-Date: 2019-08-28 17:55+0200\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: hr\n"
|
"Language: hr\n"
|
||||||
|
@ -17,7 +17,7 @@ msgstr ""
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: Babel 2.6.0\n"
|
"Generated-By: Babel 2.7.0\n"
|
||||||
|
|
||||||
#: src/validations.js:13
|
#: src/validations.js:13
|
||||||
msgid "This is not a valid IPv4 address."
|
msgid "This is not a valid IPv4 address."
|
||||||
|
@ -47,7 +47,31 @@ msgstr ""
|
||||||
msgid "Doesn't contain a list of emails separated by commas."
|
msgid "Doesn't contain a list of emails separated by commas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/ForisForm.js:123
|
#: src/api/utils.js:58
|
||||||
|
msgid "The session is expired. Please log in again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:63
|
||||||
|
msgid "Timeout error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:66
|
||||||
|
msgid "No response received."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:70
|
||||||
|
msgid "An unknown error occurred. Check the console for more info."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:77
|
||||||
|
msgid "An unknown API error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:88
|
||||||
|
msgid "Settings saved successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:140
|
||||||
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -63,11 +87,13 @@ msgstr ""
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:25
|
#: src/utils/ErrorMessage.js:13
|
||||||
msgid "Settings were successfully saved."
|
msgid "An error occurred while fetching data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:41
|
#~ msgid "Settings were successfully saved."
|
||||||
msgid "Settings update was failed."
|
#~ msgstr ""
|
||||||
msgstr ""
|
|
||||||
|
#~ msgid "Settings update was failed."
|
||||||
|
#~ msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2019-08-28 14:34+0200\n"
|
"POT-Creation-Date: 2019-11-14 11:13+0100\n"
|
||||||
"PO-Revision-Date: 2019-08-28 17:55+0200\n"
|
"PO-Revision-Date: 2019-08-28 17:55+0200\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: hu\n"
|
"Language: hu\n"
|
||||||
|
@ -16,7 +16,7 @@ msgstr ""
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: Babel 2.6.0\n"
|
"Generated-By: Babel 2.7.0\n"
|
||||||
|
|
||||||
#: src/validations.js:13
|
#: src/validations.js:13
|
||||||
msgid "This is not a valid IPv4 address."
|
msgid "This is not a valid IPv4 address."
|
||||||
|
@ -46,7 +46,31 @@ msgstr ""
|
||||||
msgid "Doesn't contain a list of emails separated by commas."
|
msgid "Doesn't contain a list of emails separated by commas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/ForisForm.js:123
|
#: src/api/utils.js:58
|
||||||
|
msgid "The session is expired. Please log in again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:63
|
||||||
|
msgid "Timeout error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:66
|
||||||
|
msgid "No response received."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:70
|
||||||
|
msgid "An unknown error occurred. Check the console for more info."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:77
|
||||||
|
msgid "An unknown API error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:88
|
||||||
|
msgid "Settings saved successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:140
|
||||||
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -62,11 +86,13 @@ msgstr ""
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:25
|
#: src/utils/ErrorMessage.js:13
|
||||||
msgid "Settings were successfully saved."
|
msgid "An error occurred while fetching data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:41
|
#~ msgid "Settings were successfully saved."
|
||||||
msgid "Settings update was failed."
|
#~ msgstr ""
|
||||||
msgstr ""
|
|
||||||
|
#~ msgid "Settings update was failed."
|
||||||
|
#~ msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2019-08-28 14:34+0200\n"
|
"POT-Creation-Date: 2019-11-14 11:13+0100\n"
|
||||||
"PO-Revision-Date: 2019-08-28 17:55+0200\n"
|
"PO-Revision-Date: 2019-08-28 17:55+0200\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: it\n"
|
"Language: it\n"
|
||||||
|
@ -16,7 +16,7 @@ msgstr ""
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: Babel 2.6.0\n"
|
"Generated-By: Babel 2.7.0\n"
|
||||||
|
|
||||||
#: src/validations.js:13
|
#: src/validations.js:13
|
||||||
msgid "This is not a valid IPv4 address."
|
msgid "This is not a valid IPv4 address."
|
||||||
|
@ -46,7 +46,31 @@ msgstr ""
|
||||||
msgid "Doesn't contain a list of emails separated by commas."
|
msgid "Doesn't contain a list of emails separated by commas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/ForisForm.js:123
|
#: src/api/utils.js:58
|
||||||
|
msgid "The session is expired. Please log in again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:63
|
||||||
|
msgid "Timeout error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:66
|
||||||
|
msgid "No response received."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:70
|
||||||
|
msgid "An unknown error occurred. Check the console for more info."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:77
|
||||||
|
msgid "An unknown API error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:88
|
||||||
|
msgid "Settings saved successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:140
|
||||||
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -62,11 +86,13 @@ msgstr ""
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:25
|
#: src/utils/ErrorMessage.js:13
|
||||||
msgid "Settings were successfully saved."
|
msgid "An error occurred while fetching data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:41
|
#~ msgid "Settings were successfully saved."
|
||||||
msgid "Settings update was failed."
|
#~ msgstr ""
|
||||||
msgstr ""
|
|
||||||
|
#~ msgid "Settings update was failed."
|
||||||
|
#~ msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2019-08-28 14:34+0200\n"
|
"POT-Creation-Date: 2019-11-14 11:13+0100\n"
|
||||||
"PO-Revision-Date: 2019-08-28 17:55+0200\n"
|
"PO-Revision-Date: 2019-08-28 17:55+0200\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: ja\n"
|
"Language: ja\n"
|
||||||
|
@ -16,7 +16,7 @@ msgstr ""
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: Babel 2.6.0\n"
|
"Generated-By: Babel 2.7.0\n"
|
||||||
|
|
||||||
#: src/validations.js:13
|
#: src/validations.js:13
|
||||||
msgid "This is not a valid IPv4 address."
|
msgid "This is not a valid IPv4 address."
|
||||||
|
@ -46,7 +46,31 @@ msgstr ""
|
||||||
msgid "Doesn't contain a list of emails separated by commas."
|
msgid "Doesn't contain a list of emails separated by commas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/ForisForm.js:123
|
#: src/api/utils.js:58
|
||||||
|
msgid "The session is expired. Please log in again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:63
|
||||||
|
msgid "Timeout error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:66
|
||||||
|
msgid "No response received."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:70
|
||||||
|
msgid "An unknown error occurred. Check the console for more info."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:77
|
||||||
|
msgid "An unknown API error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:88
|
||||||
|
msgid "Settings saved successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:140
|
||||||
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -62,11 +86,13 @@ msgstr ""
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:25
|
#: src/utils/ErrorMessage.js:13
|
||||||
msgid "Settings were successfully saved."
|
msgid "An error occurred while fetching data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:41
|
#~ msgid "Settings were successfully saved."
|
||||||
msgid "Settings update was failed."
|
#~ msgstr ""
|
||||||
msgstr ""
|
|
||||||
|
#~ msgid "Settings update was failed."
|
||||||
|
#~ msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2019-08-28 14:34+0200\n"
|
"POT-Creation-Date: 2019-11-14 11:13+0100\n"
|
||||||
"PO-Revision-Date: 2019-08-28 17:55+0200\n"
|
"PO-Revision-Date: 2019-08-28 17:55+0200\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: ko\n"
|
"Language: ko\n"
|
||||||
|
@ -16,7 +16,7 @@ msgstr ""
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: Babel 2.6.0\n"
|
"Generated-By: Babel 2.7.0\n"
|
||||||
|
|
||||||
#: src/validations.js:13
|
#: src/validations.js:13
|
||||||
msgid "This is not a valid IPv4 address."
|
msgid "This is not a valid IPv4 address."
|
||||||
|
@ -46,7 +46,31 @@ msgstr ""
|
||||||
msgid "Doesn't contain a list of emails separated by commas."
|
msgid "Doesn't contain a list of emails separated by commas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/ForisForm.js:123
|
#: src/api/utils.js:58
|
||||||
|
msgid "The session is expired. Please log in again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:63
|
||||||
|
msgid "Timeout error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:66
|
||||||
|
msgid "No response received."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:70
|
||||||
|
msgid "An unknown error occurred. Check the console for more info."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:77
|
||||||
|
msgid "An unknown API error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:88
|
||||||
|
msgid "Settings saved successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:140
|
||||||
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -62,11 +86,13 @@ msgstr ""
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:25
|
#: src/utils/ErrorMessage.js:13
|
||||||
msgid "Settings were successfully saved."
|
msgid "An error occurred while fetching data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:41
|
#~ msgid "Settings were successfully saved."
|
||||||
msgid "Settings update was failed."
|
#~ msgstr ""
|
||||||
msgstr ""
|
|
||||||
|
#~ msgid "Settings update was failed."
|
||||||
|
#~ msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2019-08-28 14:34+0200\n"
|
"POT-Creation-Date: 2019-11-14 11:13+0100\n"
|
||||||
"PO-Revision-Date: 2019-08-28 17:55+0200\n"
|
"PO-Revision-Date: 2019-08-28 17:55+0200\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: lt\n"
|
"Language: lt\n"
|
||||||
|
@ -17,7 +17,7 @@ msgstr ""
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: Babel 2.6.0\n"
|
"Generated-By: Babel 2.7.0\n"
|
||||||
|
|
||||||
#: src/validations.js:13
|
#: src/validations.js:13
|
||||||
msgid "This is not a valid IPv4 address."
|
msgid "This is not a valid IPv4 address."
|
||||||
|
@ -47,7 +47,31 @@ msgstr ""
|
||||||
msgid "Doesn't contain a list of emails separated by commas."
|
msgid "Doesn't contain a list of emails separated by commas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/ForisForm.js:123
|
#: src/api/utils.js:58
|
||||||
|
msgid "The session is expired. Please log in again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:63
|
||||||
|
msgid "Timeout error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:66
|
||||||
|
msgid "No response received."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:70
|
||||||
|
msgid "An unknown error occurred. Check the console for more info."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:77
|
||||||
|
msgid "An unknown API error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:88
|
||||||
|
msgid "Settings saved successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:140
|
||||||
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -63,11 +87,13 @@ msgstr ""
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:25
|
#: src/utils/ErrorMessage.js:13
|
||||||
msgid "Settings were successfully saved."
|
msgid "An error occurred while fetching data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:41
|
#~ msgid "Settings were successfully saved."
|
||||||
msgid "Settings update was failed."
|
#~ msgstr ""
|
||||||
msgstr ""
|
|
||||||
|
#~ msgid "Settings update was failed."
|
||||||
|
#~ msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2019-08-28 14:34+0200\n"
|
"POT-Creation-Date: 2019-11-14 11:13+0100\n"
|
||||||
"PO-Revision-Date: 2019-08-28 17:56+0200\n"
|
"PO-Revision-Date: 2019-08-28 17:56+0200\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: nb\n"
|
"Language: nb\n"
|
||||||
|
@ -16,7 +16,7 @@ msgstr ""
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: Babel 2.6.0\n"
|
"Generated-By: Babel 2.7.0\n"
|
||||||
|
|
||||||
#: src/validations.js:13
|
#: src/validations.js:13
|
||||||
msgid "This is not a valid IPv4 address."
|
msgid "This is not a valid IPv4 address."
|
||||||
|
@ -46,7 +46,31 @@ msgstr ""
|
||||||
msgid "Doesn't contain a list of emails separated by commas."
|
msgid "Doesn't contain a list of emails separated by commas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/ForisForm.js:123
|
#: src/api/utils.js:58
|
||||||
|
msgid "The session is expired. Please log in again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:63
|
||||||
|
msgid "Timeout error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:66
|
||||||
|
msgid "No response received."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:70
|
||||||
|
msgid "An unknown error occurred. Check the console for more info."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:77
|
||||||
|
msgid "An unknown API error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:88
|
||||||
|
msgid "Settings saved successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:140
|
||||||
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -62,11 +86,13 @@ msgstr ""
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:25
|
#: src/utils/ErrorMessage.js:13
|
||||||
msgid "Settings were successfully saved."
|
msgid "An error occurred while fetching data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:41
|
#~ msgid "Settings were successfully saved."
|
||||||
msgid "Settings update was failed."
|
#~ msgstr ""
|
||||||
msgstr ""
|
|
||||||
|
#~ msgid "Settings update was failed."
|
||||||
|
#~ msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2019-08-28 14:34+0200\n"
|
"POT-Creation-Date: 2019-11-14 11:13+0100\n"
|
||||||
"PO-Revision-Date: 2019-08-28 17:55+0200\n"
|
"PO-Revision-Date: 2019-08-28 17:55+0200\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: nb_NO\n"
|
"Language: nb_NO\n"
|
||||||
|
@ -16,7 +16,7 @@ msgstr ""
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: Babel 2.6.0\n"
|
"Generated-By: Babel 2.7.0\n"
|
||||||
|
|
||||||
#: src/validations.js:13
|
#: src/validations.js:13
|
||||||
msgid "This is not a valid IPv4 address."
|
msgid "This is not a valid IPv4 address."
|
||||||
|
@ -46,7 +46,31 @@ msgstr ""
|
||||||
msgid "Doesn't contain a list of emails separated by commas."
|
msgid "Doesn't contain a list of emails separated by commas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/ForisForm.js:123
|
#: src/api/utils.js:58
|
||||||
|
msgid "The session is expired. Please log in again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:63
|
||||||
|
msgid "Timeout error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:66
|
||||||
|
msgid "No response received."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:70
|
||||||
|
msgid "An unknown error occurred. Check the console for more info."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:77
|
||||||
|
msgid "An unknown API error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:88
|
||||||
|
msgid "Settings saved successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:140
|
||||||
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -62,11 +86,13 @@ msgstr ""
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:25
|
#: src/utils/ErrorMessage.js:13
|
||||||
msgid "Settings were successfully saved."
|
msgid "An error occurred while fetching data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:41
|
#~ msgid "Settings were successfully saved."
|
||||||
msgid "Settings update was failed."
|
#~ msgstr ""
|
||||||
msgstr ""
|
|
||||||
|
#~ msgid "Settings update was failed."
|
||||||
|
#~ msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2019-08-28 14:34+0200\n"
|
"POT-Creation-Date: 2019-11-14 11:13+0100\n"
|
||||||
"PO-Revision-Date: 2019-08-28 17:56+0200\n"
|
"PO-Revision-Date: 2019-08-28 17:56+0200\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: nl\n"
|
"Language: nl\n"
|
||||||
|
@ -16,7 +16,7 @@ msgstr ""
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: Babel 2.6.0\n"
|
"Generated-By: Babel 2.7.0\n"
|
||||||
|
|
||||||
#: src/validations.js:13
|
#: src/validations.js:13
|
||||||
msgid "This is not a valid IPv4 address."
|
msgid "This is not a valid IPv4 address."
|
||||||
|
@ -46,7 +46,31 @@ msgstr ""
|
||||||
msgid "Doesn't contain a list of emails separated by commas."
|
msgid "Doesn't contain a list of emails separated by commas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/ForisForm.js:123
|
#: src/api/utils.js:58
|
||||||
|
msgid "The session is expired. Please log in again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:63
|
||||||
|
msgid "Timeout error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:66
|
||||||
|
msgid "No response received."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:70
|
||||||
|
msgid "An unknown error occurred. Check the console for more info."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:77
|
||||||
|
msgid "An unknown API error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:88
|
||||||
|
msgid "Settings saved successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:140
|
||||||
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -62,11 +86,13 @@ msgstr ""
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:25
|
#: src/utils/ErrorMessage.js:13
|
||||||
msgid "Settings were successfully saved."
|
msgid "An error occurred while fetching data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:41
|
#~ msgid "Settings were successfully saved."
|
||||||
msgid "Settings update was failed."
|
#~ msgstr ""
|
||||||
msgstr ""
|
|
||||||
|
#~ msgid "Settings update was failed."
|
||||||
|
#~ msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2019-08-28 14:34+0200\n"
|
"POT-Creation-Date: 2019-11-14 11:13+0100\n"
|
||||||
"PO-Revision-Date: 2019-08-28 17:56+0200\n"
|
"PO-Revision-Date: 2019-08-28 17:56+0200\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: pl\n"
|
"Language: pl\n"
|
||||||
|
@ -17,7 +17,7 @@ msgstr ""
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: Babel 2.6.0\n"
|
"Generated-By: Babel 2.7.0\n"
|
||||||
|
|
||||||
#: src/validations.js:13
|
#: src/validations.js:13
|
||||||
msgid "This is not a valid IPv4 address."
|
msgid "This is not a valid IPv4 address."
|
||||||
|
@ -47,7 +47,31 @@ msgstr ""
|
||||||
msgid "Doesn't contain a list of emails separated by commas."
|
msgid "Doesn't contain a list of emails separated by commas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/ForisForm.js:123
|
#: src/api/utils.js:58
|
||||||
|
msgid "The session is expired. Please log in again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:63
|
||||||
|
msgid "Timeout error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:66
|
||||||
|
msgid "No response received."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:70
|
||||||
|
msgid "An unknown error occurred. Check the console for more info."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:77
|
||||||
|
msgid "An unknown API error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:88
|
||||||
|
msgid "Settings saved successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:140
|
||||||
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -63,11 +87,13 @@ msgstr ""
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:25
|
#: src/utils/ErrorMessage.js:13
|
||||||
msgid "Settings were successfully saved."
|
msgid "An error occurred while fetching data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:41
|
#~ msgid "Settings were successfully saved."
|
||||||
msgid "Settings update was failed."
|
#~ msgstr ""
|
||||||
msgstr ""
|
|
||||||
|
#~ msgid "Settings update was failed."
|
||||||
|
#~ msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2019-08-28 14:34+0200\n"
|
"POT-Creation-Date: 2019-11-14 11:13+0100\n"
|
||||||
"PO-Revision-Date: 2019-08-28 17:56+0200\n"
|
"PO-Revision-Date: 2019-08-28 17:56+0200\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: ro\n"
|
"Language: ro\n"
|
||||||
|
@ -17,7 +17,7 @@ msgstr ""
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: Babel 2.6.0\n"
|
"Generated-By: Babel 2.7.0\n"
|
||||||
|
|
||||||
#: src/validations.js:13
|
#: src/validations.js:13
|
||||||
msgid "This is not a valid IPv4 address."
|
msgid "This is not a valid IPv4 address."
|
||||||
|
@ -47,7 +47,31 @@ msgstr ""
|
||||||
msgid "Doesn't contain a list of emails separated by commas."
|
msgid "Doesn't contain a list of emails separated by commas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/ForisForm.js:123
|
#: src/api/utils.js:58
|
||||||
|
msgid "The session is expired. Please log in again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:63
|
||||||
|
msgid "Timeout error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:66
|
||||||
|
msgid "No response received."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:70
|
||||||
|
msgid "An unknown error occurred. Check the console for more info."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:77
|
||||||
|
msgid "An unknown API error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:88
|
||||||
|
msgid "Settings saved successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:140
|
||||||
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -63,11 +87,13 @@ msgstr ""
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:25
|
#: src/utils/ErrorMessage.js:13
|
||||||
msgid "Settings were successfully saved."
|
msgid "An error occurred while fetching data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:41
|
#~ msgid "Settings were successfully saved."
|
||||||
msgid "Settings update was failed."
|
#~ msgstr ""
|
||||||
msgstr ""
|
|
||||||
|
#~ msgid "Settings update was failed."
|
||||||
|
#~ msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2019-08-28 14:34+0200\n"
|
"POT-Creation-Date: 2019-11-14 11:13+0100\n"
|
||||||
"PO-Revision-Date: 2019-08-28 17:56+0200\n"
|
"PO-Revision-Date: 2019-08-28 17:56+0200\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: ru\n"
|
"Language: ru\n"
|
||||||
|
@ -17,7 +17,7 @@ msgstr ""
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: Babel 2.6.0\n"
|
"Generated-By: Babel 2.7.0\n"
|
||||||
|
|
||||||
#: src/validations.js:13
|
#: src/validations.js:13
|
||||||
msgid "This is not a valid IPv4 address."
|
msgid "This is not a valid IPv4 address."
|
||||||
|
@ -47,7 +47,31 @@ msgstr ""
|
||||||
msgid "Doesn't contain a list of emails separated by commas."
|
msgid "Doesn't contain a list of emails separated by commas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/ForisForm.js:123
|
#: src/api/utils.js:58
|
||||||
|
msgid "The session is expired. Please log in again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:63
|
||||||
|
msgid "Timeout error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:66
|
||||||
|
msgid "No response received."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:70
|
||||||
|
msgid "An unknown error occurred. Check the console for more info."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:77
|
||||||
|
msgid "An unknown API error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:88
|
||||||
|
msgid "Settings saved successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:140
|
||||||
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -63,11 +87,13 @@ msgstr ""
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:25
|
#: src/utils/ErrorMessage.js:13
|
||||||
msgid "Settings were successfully saved."
|
msgid "An error occurred while fetching data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:41
|
#~ msgid "Settings were successfully saved."
|
||||||
msgid "Settings update was failed."
|
#~ msgstr ""
|
||||||
msgstr ""
|
|
||||||
|
#~ msgid "Settings update was failed."
|
||||||
|
#~ msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2019-08-28 14:34+0200\n"
|
"POT-Creation-Date: 2019-11-14 11:13+0100\n"
|
||||||
"PO-Revision-Date: 2019-08-28 17:56+0200\n"
|
"PO-Revision-Date: 2019-08-28 17:56+0200\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: sk\n"
|
"Language: sk\n"
|
||||||
|
@ -16,7 +16,7 @@ msgstr ""
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: Babel 2.6.0\n"
|
"Generated-By: Babel 2.7.0\n"
|
||||||
|
|
||||||
#: src/validations.js:13
|
#: src/validations.js:13
|
||||||
msgid "This is not a valid IPv4 address."
|
msgid "This is not a valid IPv4 address."
|
||||||
|
@ -46,7 +46,31 @@ msgstr ""
|
||||||
msgid "Doesn't contain a list of emails separated by commas."
|
msgid "Doesn't contain a list of emails separated by commas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/ForisForm.js:123
|
#: src/api/utils.js:58
|
||||||
|
msgid "The session is expired. Please log in again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:63
|
||||||
|
msgid "Timeout error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:66
|
||||||
|
msgid "No response received."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:70
|
||||||
|
msgid "An unknown error occurred. Check the console for more info."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:77
|
||||||
|
msgid "An unknown API error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:88
|
||||||
|
msgid "Settings saved successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:140
|
||||||
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -62,11 +86,13 @@ msgstr ""
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:25
|
#: src/utils/ErrorMessage.js:13
|
||||||
msgid "Settings were successfully saved."
|
msgid "An error occurred while fetching data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:41
|
#~ msgid "Settings were successfully saved."
|
||||||
msgid "Settings update was failed."
|
#~ msgstr ""
|
||||||
msgstr ""
|
|
||||||
|
#~ msgid "Settings update was failed."
|
||||||
|
#~ msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PROJECT VERSION\n"
|
"Project-Id-Version: PROJECT VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||||
"POT-Creation-Date: 2019-08-28 14:34+0200\n"
|
"POT-Creation-Date: 2019-11-14 11:13+0100\n"
|
||||||
"PO-Revision-Date: 2019-08-28 17:56+0200\n"
|
"PO-Revision-Date: 2019-08-28 17:56+0200\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language: sv\n"
|
"Language: sv\n"
|
||||||
|
@ -16,7 +16,7 @@ msgstr ""
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: Babel 2.6.0\n"
|
"Generated-By: Babel 2.7.0\n"
|
||||||
|
|
||||||
#: src/validations.js:13
|
#: src/validations.js:13
|
||||||
msgid "This is not a valid IPv4 address."
|
msgid "This is not a valid IPv4 address."
|
||||||
|
@ -46,7 +46,31 @@ msgstr ""
|
||||||
msgid "Doesn't contain a list of emails separated by commas."
|
msgid "Doesn't contain a list of emails separated by commas."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/ForisForm.js:123
|
#: src/api/utils.js:58
|
||||||
|
msgid "The session is expired. Please log in again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:63
|
||||||
|
msgid "Timeout error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:66
|
||||||
|
msgid "No response received."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:70
|
||||||
|
msgid "An unknown error occurred. Check the console for more info."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/api/utils.js:77
|
||||||
|
msgid "An unknown API error occurred."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:88
|
||||||
|
msgid "Settings saved successfully"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/form/components/ForisForm.js:140
|
||||||
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
msgid "Changes you made may not be saved. Are you sure you want to leave?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -62,11 +86,13 @@ msgstr ""
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:25
|
#: src/utils/ErrorMessage.js:13
|
||||||
msgid "Settings were successfully saved."
|
msgid "An error occurred while fetching data."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/form/components/alerts.js:41
|
#~ msgid "Settings were successfully saved."
|
||||||
msgid "Settings update was failed."
|
#~ msgstr ""
|
||||||
msgstr ""
|
|
||||||
|
#~ msgid "Settings update was failed."
|
||||||
|
#~ msgstr ""
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user