diff --git a/.dockerignore b/.dockerignore index 6e11b36b9..4a63437a4 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,5 +1,4 @@ /.idea -/dist /node_modules /data /out diff --git a/.github/ISSUE_TEMPLATE/ask-for-help.yaml b/.github/ISSUE_TEMPLATE/ask-for-help.yaml index dd1bcaf76..3442e8b73 100644 --- a/.github/ISSUE_TEMPLATE/ask-for-help.yaml +++ b/.github/ISSUE_TEMPLATE/ask-for-help.yaml @@ -1,8 +1,23 @@ name: "❓ Ask for help" description: "Submit any question related to Uptime Kuma" -title: "[Help]: " +#title: "[Help] " labels: [help] body: + - type: checkboxes + id: no-duplicate-issues + attributes: + label: "⚠️ Please verify that this bug has NOT been raised before." + description: "Search in the issues sections by clicking [HERE](https://github.com/louislam/uptime-kuma/issues?q=)" + options: + - label: "I checked and didn't find similar issue" + required: true + - type: checkboxes + attributes: + label: "🛡️ Security Policy" + description: Please review the security policy before reporting security related issues/bugs. + options: + - label: I agree to have read this project [Security Policy](https://github.com/louislam/uptime-kuma/security/policy) + required: true - type: textarea id: steps-to-reproduce validations: @@ -14,17 +29,17 @@ body: - type: input id: uptime-kuma-version attributes: - label: "🐻 Uptime-Kuma version" - description: "Which version of Uptime-Kuma are you running?" - placeholder: "Ex. 1.9.x" + label: "🐻 Uptime-Kuma Version" + description: "Which version of Uptime-Kuma are you running? Please do NOT provide the docker tag such as latest or 1" + placeholder: "Ex. 1.10.0" validations: required: true - type: input id: operating-system attributes: - label: "💻 Operating System" + label: "💻 Operating System and Arch" description: "Which OS is your server/device running on?" - placeholder: "Ex. Ubuntu 20.04" + placeholder: "Ex. Ubuntu 20.04 x86" validations: required: true - type: input @@ -32,23 +47,15 @@ body: attributes: label: "🌐 Browser" description: "Which browser are you running on?" - placeholder: "Ex. Firefox" + placeholder: "Ex. Google Chrome 95.0.4638.69" validations: required: true - type: input id: docker-version attributes: - label: "🐋 Docker" + label: "🐋 Docker Version" description: "If running with Docker, which version are you running?" - placeholder: "Ex. 20.10.9" - validations: - required: false - - type: input - id: docker-image-tag - attributes: - label: "🏷️ Docker Image Tag" - description: "Which Docker image tag are you using? If running '1' or 'latest', please specify image hash." - placeholder: "Ex. 1.9.1" + placeholder: "Ex. Docker 20.10.9 / K8S / Podman" validations: required: false - type: input @@ -56,21 +63,6 @@ body: attributes: label: "🟩 NodeJS Version" description: "If running with Node.js? which version are you running?" - placeholder: "14.x" + placeholder: "Ex. 14.18.0" validations: required: false - - type: checkboxes - id: no-duplicate-issues - attributes: - label: "👀 Have you spent some time to check if this question has been raised before?" - description: "Please search in the issues without filters [here](https://github.com/louislam/uptime-kuma/issues?q=)" - options: - - label: "I checked and didn't find similar question" - required: true - - type: checkboxes - attributes: - label: "🛡️ Security Policy" - description: Please review the security policy before reporting security related issues/bugs. - options: - - label: I agree to have read this project [Security Policy](https://github.com/louislam/uptime-kuma/security/policy) - required: true diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml index 5e3b5bf8a..2dca1556a 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -1,8 +1,30 @@ name: "🐛 Bug Report" description: "Submit a bug report to help us improve" -title: "[Bug]: <title>" +#title: "[Bug] " labels: [bug] body: + - type: checkboxes + id: no-duplicate-issues + attributes: + label: "⚠️ Please verify that this bug has NOT been raised before." + description: "Search in the issues sections by clicking [HERE](https://github.com/louislam/uptime-kuma/issues?q=)" + options: + - label: "I checked and didn't find similar issue" + required: true + - type: checkboxes + attributes: + label: "🛡️ Security Policy" + description: Please review the security policy before reporting security related issues/bugs. + options: + - label: I agree to have read this project [Security Policy](https://github.com/louislam/uptime-kuma/security/policy) + required: true + - type: textarea + id: description + validations: + required: false + attributes: + label: "Description" + description: "You could also upload screenshots" - type: textarea id: steps-to-reproduce validations: @@ -16,7 +38,7 @@ body: validations: required: true attributes: - label: "👍 Expected behavior" + label: "👀 Expected behavior" description: "What did you think would happen?" placeholder: "..." - type: textarea @@ -24,23 +46,23 @@ body: validations: required: true attributes: - label: "👎 Actual Behavior" + label: "😓 Actual Behavior" description: "What actually happen?" placeholder: "..." - type: input id: uptime-kuma-version attributes: - label: "🐻 Uptime-Kuma version" - description: "Which version of Uptime-Kuma are you running?" - placeholder: "Ex. 1.9.x" + label: "🐻 Uptime-Kuma Version" + description: "Which version of Uptime-Kuma are you running? Please do NOT provide the docker tag such as latest or 1" + placeholder: "Ex. 1.10.0" validations: required: true - type: input id: operating-system attributes: - label: "💻 Operating System" + label: "💻 Operating System and Arch" description: "Which OS is your server/device running on?" - placeholder: "Ex. Ubuntu 20.04" + placeholder: "Ex. Ubuntu 20.04 x86" validations: required: true - type: input @@ -48,23 +70,15 @@ body: attributes: label: "🌐 Browser" description: "Which browser are you running on?" - placeholder: "Ex. Firefox" + placeholder: "Ex. Google Chrome 95.0.4638.69" validations: required: true - type: input id: docker-version attributes: - label: "🐋 Docker" + label: "🐋 Docker Version" description: "If running with Docker, which version are you running?" - placeholder: "Ex. 20.10.9" - validations: - required: false - - type: input - id: docker-image-tag - attributes: - label: "🏷️ Docker Image Tag" - description: "Which Docker image tag are you using? If running '1' or 'latest', please specify image hash." - placeholder: "Ex. 1.9.1" + placeholder: "Ex. Docker 20.10.9 / K8S / Podman" validations: required: false - type: input @@ -72,7 +86,7 @@ body: attributes: label: "🟩 NodeJS Version" description: "If running with Node.js? which version are you running?" - placeholder: "14.x" + placeholder: "Ex. 14.18.0" validations: required: false - type: textarea @@ -83,18 +97,3 @@ body: render: shell validations: required: false - - type: checkboxes - id: no-duplicate-issues - attributes: - label: "👀 Have you spent some time to check if this issue has been raised before?" - description: "Please search in the issues without filters [here](https://github.com/louislam/uptime-kuma/issues?q=)" - options: - - label: "I checked and didn't find similar issue" - required: true - - type: checkboxes - attributes: - label: "🛡️ Security Policy" - description: Please review the security policy before reporting security related issues/bugs. - options: - - label: I agree to have read this project [Security Policy](https://github.com/louislam/uptime-kuma/security/policy) - required: true diff --git a/.github/ISSUE_TEMPLATE/feature_request.yaml b/.github/ISSUE_TEMPLATE/feature_request.yaml index bca32552f..f0a92ede1 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yaml +++ b/.github/ISSUE_TEMPLATE/feature_request.yaml @@ -1,8 +1,16 @@ name: 🚀 Feature Request description: "Submit a proposal for a new feature" -title: "[Feature]: <title>" +#title: "[Feature] " labels: [enhancement] body: + - type: checkboxes + id: no-duplicate-issues + attributes: + label: "⚠️ Please verify that this feature request has NOT been suggested before." + description: "Search in the issues sections by clicking [HERE](https://github.com/louislam/uptime-kuma/issues?q=)" + options: + - label: "I checked and didn't find similar feature request" + required: true - type: dropdown id: feature-area attributes: @@ -49,11 +57,3 @@ body: label: "📝 Additional Context" description: "Add any other context or screenshots about the feature request here." placeholder: "..." - - type: checkboxes - id: no-duplicate-issues - attributes: - label: "👀 Have you spent some time to check if this feature request has been raised before?" - description: "Please search in the issues without filters [here](https://github.com/louislam/uptime-kuma/issues?q=)" - options: - - label: "I checked and didn't find similar feature request" - required: true diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index fa0aa883b..3be229315 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -24,3 +24,5 @@ Please delete options that are not relevant. - [ ] My code needed automated testing. I have added them (this is optional task) ## Screenshots (if any) + +Please do not use any external image service. Instead, just paste in or drag and drop the image here and it will be uploaded automatically. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c9f186df2..b2efe3e09 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -226,10 +226,11 @@ https://github.com/louislam/uptime-kuma/issues?q=sort%3Aupdated-desc 1. Draft a release note 1. Make sure the repo is cleared 1. `npm run update-version 1.X.X` +1. `npm run build` 1. `npm run build-docker` -1. git push +1. `git push` 1. Publish the release note as 1.X.X -1. npm run upload-artifacts +1. `npm run upload-artifacts` 1. SSH to demo site server and update to 1.X.X Checking: diff --git a/SECURITY.md b/SECURITY.md index 7b9bfca41..3a11e8817 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -1,5 +1,11 @@ # Security Policy +## Reporting a Vulnerability + +Please report security issues to uptime@kuma.pet. + +Do not use the issue tracker or discuss it in the public as it will cause more damage. + ## Supported Versions Use this section to tell people about which versions of your project are @@ -23,9 +29,3 @@ currently being supported with security updates. | debian | :white_check_mark: | | alpine | :white_check_mark: | | All other tags | ❌ | - -## Reporting a Vulnerability - -Please report security issues to uptime@kuma.pet. - -Do not use the issue tracker or discuss it in the public as it will cause more damage. diff --git a/docker/dockerfile b/docker/dockerfile index e2a3725fa..efbbfe6f2 100644 --- a/docker/dockerfile +++ b/docker/dockerfile @@ -4,9 +4,7 @@ WORKDIR /app ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 COPY . . -RUN npm ci && \ - npm run build && \ - npm ci --production && \ +RUN npm ci --production && \ chmod +x /app/extra/entrypoint.sh @@ -22,9 +20,11 @@ HEALTHCHECK --interval=60s --timeout=30s --start-period=180s --retries=5 CMD nod ENTRYPOINT ["/usr/bin/dumb-init", "--", "extra/entrypoint.sh"] CMD ["node", "server/server.js"] + FROM release AS nightly RUN npm run mark-as-nightly + # Upload the artifact to Github FROM louislam/uptime-kuma:base-debian AS upload-artifact WORKDIR / diff --git a/docker/dockerfile-alpine b/docker/dockerfile-alpine index e883031ae..ab9255f95 100644 --- a/docker/dockerfile-alpine +++ b/docker/dockerfile-alpine @@ -4,9 +4,7 @@ WORKDIR /app ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 COPY . . -RUN npm ci && \ - npm run build && \ - npm ci --production && \ +RUN npm ci --production && \ chmod +x /app/extra/entrypoint.sh @@ -22,5 +20,6 @@ HEALTHCHECK --interval=60s --timeout=30s --start-period=180s --retries=5 CMD nod ENTRYPOINT ["/usr/bin/dumb-init", "--", "extra/entrypoint.sh"] CMD ["node", "server/server.js"] + FROM release AS nightly RUN npm run mark-as-nightly diff --git a/extra/healthcheck.js b/extra/healthcheck.js index 99f748fb5..c6e8a349a 100644 --- a/extra/healthcheck.js +++ b/extra/healthcheck.js @@ -1,25 +1,41 @@ /* * This script should be run after a period of time (180s), because the server may need some time to prepare. */ +const { FBSD } = require("../server/util-server"); + process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; let client; -if (process.env.SSL_KEY && process.env.SSL_CERT) { +const sslKey = process.env.UPTIME_KUMA_SSL_KEY || process.env.SSL_KEY || undefined; +const sslCert = process.env.UPTIME_KUMA_SSL_CERT || process.env.SSL_CERT || undefined; + +if (sslKey && sslCert) { client = require("https"); } else { client = require("http"); } +// If host is omitted, the server will accept connections on the unspecified IPv6 address (::) when IPv6 is available and the unspecified IPv4 address (0.0.0.0) otherwise. +// Dual-stack support for (::) +let hostname = process.env.UPTIME_KUMA_HOST; + +// Also read HOST if not FreeBSD, as HOST is a system environment variable in FreeBSD +if (!hostname && !FBSD) { + hostname = process.env.HOST; +} + +const port = parseInt(process.env.UPTIME_KUMA_PORT || process.env.PORT || 3001); + let options = { - host: process.env.HOST || "127.0.0.1", - port: parseInt(process.env.PORT) || 3001, + host: hostname || "127.0.0.1", + port: port, timeout: 28 * 1000, }; let request = client.request(options, (res) => { console.log(`Health Check OK [Res Code: ${res.statusCode}]`); - if (res.statusCode === 200) { + if (res.statusCode === 302) { process.exit(0); } else { process.exit(1); diff --git a/index.html b/index.html index cd5da9360..6a5525fb4 100644 --- a/index.html +++ b/index.html @@ -5,7 +5,7 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> <link rel="icon" type="image/svg+xml" href="/icon.svg" /> - <link rel="manifest" href="manifest.json" /> + <link rel="manifest" href="/manifest.json" /> <meta name="theme-color" id="theme-color" content="" /> <meta name="description" content="Uptime Kuma monitoring tool" /> <title>Uptime Kuma diff --git a/package-lock.json b/package-lock.json index f65abc32a..11feb3492 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "uptime-kuma", - "version": "1.9.1", + "version": "1.9.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "uptime-kuma", - "version": "1.9.1", + "version": "1.9.2", "license": "MIT", "dependencies": { "@fortawesome/fontawesome-svg-core": "~1.2.36", @@ -18,10 +18,10 @@ "args-parser": "~1.3.0", "axios": "~0.21.4", "bcryptjs": "~2.4.3", - "bootstrap": "~5.1.1", + "bootstrap": "~5.1.3", "bree": "~6.3.1", "chardet": "^1.3.0", - "chart.js": "~3.5.1", + "chart.js": "~3.6.0", "chartjs-adapter-dayjs": "~1.0.0", "check-password-strength": "^2.0.3", "command-exists": "~1.2.9", @@ -50,9 +50,9 @@ "tcp-ping": "~0.1.1", "thirty-two": "~1.0.2", "timezones-list": "~3.0.1", - "v-pagination-3": "~0.1.6", + "v-pagination-3": "~0.1.7", "vue": "next", - "vue-chart-3": "~0.5.8", + "vue-chart-3": "~0.5.11", "vue-confirm-dialog": "~1.0.2", "vue-contenteditable": "~3.0.4", "vue-i18n": "~9.1.9", @@ -67,9 +67,9 @@ "@babel/eslint-parser": "~7.15.7", "@babel/preset-env": "^7.15.8", "@types/bootstrap": "~5.1.6", - "@vitejs/plugin-legacy": "~1.6.1", - "@vitejs/plugin-vue": "~1.9.2", - "@vue/compiler-sfc": "~3.2.19", + "@vitejs/plugin-legacy": "~1.6.2", + "@vitejs/plugin-vue": "~1.9.4", + "@vue/compiler-sfc": "~3.2.20", "babel-plugin-rewire": "~1.2.0", "core-js": "~3.18.1", "cross-env": "~7.0.3", @@ -83,7 +83,7 @@ "stylelint": "~13.13.1", "stylelint-config-standard": "~22.0.0", "typescript": "~4.4.3", - "vite": "~2.6.4" + "vite": "~2.6.13" }, "engines": { "node": "14.*" @@ -4259,9 +4259,9 @@ "integrity": "sha512-NpwMDdSIprbYx1CLnfbxEIarI0Z+s9MssEgggMNheGM+WD68yOhV7IEA/3r6tr0yTRgQD0HuZJDw32s99i6L+A==" }, "node_modules/chart.js": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.5.1.tgz", - "integrity": "sha512-m5kzt72I1WQ9LILwQC4syla/LD/N413RYv2Dx2nnTkRS9iv/ey1xLTt0DnPc/eWV4zI+BgEgDYBIzbQhZHc/PQ==" + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.6.0.tgz", + "integrity": "sha512-iOzzDKePL+bj+ccIsVAgWQehCXv8xOKGbaU2fO/myivH736zcx535PGJzQGanvcSGVOqX6yuLZsN3ygcQ35UgQ==" }, "node_modules/chartjs-adapter-dayjs": { "version": "1.0.0", @@ -18000,9 +18000,9 @@ "integrity": "sha512-NpwMDdSIprbYx1CLnfbxEIarI0Z+s9MssEgggMNheGM+WD68yOhV7IEA/3r6tr0yTRgQD0HuZJDw32s99i6L+A==" }, "chart.js": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.5.1.tgz", - "integrity": "sha512-m5kzt72I1WQ9LILwQC4syla/LD/N413RYv2Dx2nnTkRS9iv/ey1xLTt0DnPc/eWV4zI+BgEgDYBIzbQhZHc/PQ==" + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-3.6.0.tgz", + "integrity": "sha512-iOzzDKePL+bj+ccIsVAgWQehCXv8xOKGbaU2fO/myivH736zcx535PGJzQGanvcSGVOqX6yuLZsN3ygcQ35UgQ==" }, "chartjs-adapter-dayjs": { "version": "1.0.0", diff --git a/package.json b/package.json index 30aed11da..d34531b36 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "uptime-kuma", - "version": "1.9.2", + "version": "1.10.0", "license": "MIT", "repository": { "type": "git", @@ -30,13 +30,13 @@ "build-docker": "npm run build-docker-debian && npm run build-docker-alpine", "build-docker-alpine-base": "docker buildx build -f docker/alpine-base.dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:base-alpine . --push", "build-docker-debian-base": "docker buildx build -f docker/debian-base.dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:base-debian . --push", - "build-docker-alpine": "docker buildx build -f docker/dockerfile-alpine --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:alpine -t louislam/uptime-kuma:1-alpine -t louislam/uptime-kuma:1.9.2-alpine --target release . --push", - "build-docker-debian": "docker buildx build -f docker/dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma -t louislam/uptime-kuma:1 -t louislam/uptime-kuma:1.9.2 -t louislam/uptime-kuma:debian -t louislam/uptime-kuma:1-debian -t louislam/uptime-kuma:1.9.2-debian --target release . --push", + "build-docker-alpine": "docker buildx build -f docker/dockerfile-alpine --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:alpine -t louislam/uptime-kuma:1-alpine -t louislam/uptime-kuma:1.10.0-alpine --target release . --push", + "build-docker-debian": "docker buildx build -f docker/dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma -t louislam/uptime-kuma:1 -t louislam/uptime-kuma:1.10.0 -t louislam/uptime-kuma:debian -t louislam/uptime-kuma:1-debian -t louislam/uptime-kuma:1.10.0-debian --target release . --push", "build-docker-nightly": "docker buildx build -f docker/dockerfile --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:nightly --target nightly . --push", "build-docker-nightly-alpine": "docker buildx build -f docker/dockerfile-alpine --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:nightly-alpine --target nightly . --push", "build-docker-nightly-amd64": "docker buildx build -f docker/dockerfile --platform linux/amd64 -t louislam/uptime-kuma:nightly-amd64 --target nightly . --push --progress plain", "upload-artifacts": "docker buildx build -f docker/dockerfile --platform linux/amd64 -t louislam/uptime-kuma:upload-artifact --build-arg GITHUB_TOKEN --target upload-artifact . --progress plain", - "setup": "git checkout 1.9.2 && npm ci --production && npm run download-dist", + "setup": "git checkout 1.10.0 && npm ci --production && npm run download-dist", "download-dist": "node extra/download-dist.js", "update-version": "node extra/update-version.js", "mark-as-nightly": "node extra/mark-as-nightly.js", @@ -61,10 +61,10 @@ "args-parser": "~1.3.0", "axios": "~0.21.4", "bcryptjs": "~2.4.3", - "bootstrap": "~5.1.1", + "bootstrap": "5.1.3", "bree": "~6.3.1", "chardet": "^1.3.0", - "chart.js": "~3.5.1", + "chart.js": "~3.6.0", "chartjs-adapter-dayjs": "~1.0.0", "check-password-strength": "^2.0.3", "command-exists": "~1.2.9", @@ -93,9 +93,9 @@ "tcp-ping": "~0.1.1", "thirty-two": "~1.0.2", "timezones-list": "~3.0.1", - "v-pagination-3": "~0.1.6", + "v-pagination-3": "~0.1.7", "vue": "next", - "vue-chart-3": "~0.5.8", + "vue-chart-3": "~0.5.11", "vue-confirm-dialog": "~1.0.2", "vue-contenteditable": "~3.0.4", "vue-i18n": "~9.1.9", @@ -110,9 +110,9 @@ "@babel/eslint-parser": "~7.15.7", "@babel/preset-env": "^7.15.8", "@types/bootstrap": "~5.1.6", - "@vitejs/plugin-legacy": "~1.6.1", - "@vitejs/plugin-vue": "~1.9.2", - "@vue/compiler-sfc": "~3.2.19", + "@vitejs/plugin-legacy": "~1.6.2", + "@vitejs/plugin-vue": "~1.9.4", + "@vue/compiler-sfc": "~3.2.20", "babel-plugin-rewire": "~1.2.0", "core-js": "~3.18.1", "cross-env": "~7.0.3", @@ -126,6 +126,6 @@ "stylelint": "~13.13.1", "stylelint-config-standard": "~22.0.0", "typescript": "~4.4.3", - "vite": "~2.6.4" + "vite": "~2.6.13" } } diff --git a/server/check-version.js b/server/check-version.js index 2ab5fe514..a3465ddf0 100644 --- a/server/check-version.js +++ b/server/check-version.js @@ -9,18 +9,17 @@ let interval; exports.startInterval = () => { let check = async () => { try { - const res = await axios.get("https://raw.githubusercontent.com/louislam/uptime-kuma/master/package.json"); - - if (typeof res.data === "string") { - res.data = JSON.parse(res.data); - } + const res = await axios.get("https://uptime.kuma.pet/version"); // For debug if (process.env.TEST_CHECK_VERSION === "1") { - res.data.version = "1000.0.0"; + res.data.slow = "1000.0.0"; + } + + if (res.data.slow) { + exports.latestVersion = res.data.slow; } - exports.latestVersion = res.data.version; } catch (_) { } }; diff --git a/server/notification-providers/feishu.js b/server/notification-providers/feishu.js index a3e340301..05fc9c186 100644 --- a/server/notification-providers/feishu.js +++ b/server/notification-providers/feishu.js @@ -27,7 +27,7 @@ class Feishu extends NotificationProvider { content: { post: { zh_cn: { - title: "UptimeKuma Alert: " + monitorJSON["name"], + title: "UptimeKuma Alert: [Down] " + monitorJSON["name"], content: [ [ { @@ -54,7 +54,7 @@ class Feishu extends NotificationProvider { content: { post: { zh_cn: { - title: "UptimeKuma Alert: " + monitorJSON["name"], + title: "UptimeKuma Alert: [Up] " + monitorJSON["name"], content: [ [ { diff --git a/server/server.js b/server/server.js index 0af003d13..d1fd7ff29 100644 --- a/server/server.js +++ b/server/server.js @@ -186,6 +186,15 @@ exports.entryPage = "dashboard"; // Normal Router here // *************************** + // Entry Page + app.get("/", async (_request, response) => { + if (exports.entryPage === "statusPage") { + response.redirect("/status"); + } else { + response.redirect("/dashboard"); + } + }); + // Robots.txt app.get("/robots.txt", async (_request, response) => { let txt = "User-agent: *\nDisallow:"; diff --git a/src/assets/app.scss b/src/assets/app.scss index db01e12d2..5578946bd 100644 --- a/src/assets/app.scss +++ b/src/assets/app.scss @@ -189,7 +189,7 @@ textarea.form-control { opacity: 1; } - .table-hover > tbody > tr:hover { + .table-hover > tbody > tr:hover > * { --bs-table-accent-bg: #070a10; color: $dark-font-color; } diff --git a/src/languages/bg-BG.js b/src/languages/bg-BG.js index 0d5af783a..f1d9b0784 100644 --- a/src/languages/bg-BG.js +++ b/src/languages/bg-BG.js @@ -77,7 +77,7 @@ export default { "Accepted Status Codes": "Допустими статус кодове", Save: "Запази", Notifications: "Известявания", - "Not available, please setup.": "Не е налично. Моля, настройте.", + "Not available, please setup.": "Не са налични. Моля, настройте.", "Setup Notification": "Настройки за известявания", Light: "Светла", Dark: "Тъмна", @@ -141,7 +141,7 @@ export default { Overwrite: "Презапиши", Options: "Опции", "Keep both": "Запази двете", - "Verify Token": "Проверка на токен код", + "Verify Token": "Провери токен код", "Setup 2FA": "Настройка 2FA", "Enable 2FA": "Включи 2FA", "Disable 2FA": "Изключи 2FA", @@ -298,8 +298,13 @@ export default { HeadersInvalidFormat: "Заявените хедъри не са валидни JSON: ", BodyInvalidFormat: "Заявеното съобщение не е валиден JSON: ", "Monitor History": "История на мониторите", - clearDataOlderThan: "Ще се съхранява за {0} дни.", + clearDataOlderThan: "Ще се съхранява {0} дни.", records: "записа", "One record": "Един запис", steamApiKeyDescription: "За да мониторирате Steam Gameserver се нуждаете от Steam Web-API ключ. Може да регистрирате Вашия API ключ тук: ", + clicksendsms: "ClickSend SMS", + apiCredentials: "API удостоверяване", + PasswordsDoNotMatch: "Паролите не съвпадат.", + "Current User": "Текущ потребител", + recent: "Скорошни", }; diff --git a/src/languages/en.js b/src/languages/en.js index db376720c..15c3cd0f3 100644 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -306,4 +306,5 @@ export default { "One record": "One record", steamApiKeyDescription: "For monitoring a Steam Game Server you need a Steam Web-API key. You can register your API key here: ", "Current User": "Current User", + recent: "Recent", }; diff --git a/src/languages/hr-HR.js b/src/languages/hr-HR.js index 78143a149..35383a0f3 100644 --- a/src/languages/hr-HR.js +++ b/src/languages/hr-HR.js @@ -5,7 +5,7 @@ export default { retriesDescription: "Broj ponovnih pokušaja prije nego će se servis označiti kao DOWN te poslati obavijest", ignoreTLSError: "Ignoriraj TLS/SSL pogreške za HTTPS web stranice", upsideDownModeDescription: "Preokreni logiku statusa. Ako je usluga dostupna, smatra se da je DOWN.", - maxRedirectDescription: "Maksimalan broj preusmjeravanja. Postaviti na 0 kako bi se preusmeravanja onemogućila.", + maxRedirectDescription: "Maksimalan broj preusmjeravanja. Postaviti na 0 kako bi se preusmjeravanja onemogućila.", acceptedStatusCodesDescription: "Odaberite statusne kodove koji se smatraju uspješnim odgovorom.", passwordNotMatchMsg: "Lozinke se ne poklapaju.", notificationDescription: "Obavijesti će funkcionirati samo ako su dodijeljene monitoru.", @@ -20,7 +20,7 @@ export default { clearEventsMsg: "Jeste li sigurni da želite izbrisati sve zapise o događajima za ovaj monitor?", clearHeartbeatsMsg: "Jeste li sigurni da želite izbrisati sve zapise o provjerama za ovaj monitor?", confirmClearStatisticsMsg: "Jeste li sigurni da želite izbrisati SVE statistike?", - importHandleDescription: "Odaberite opciju 'Preskoči postojeće' ako želite prekočiti uvoz već postojećih monitora i obavijesti. Opcija 'Prepiši' će izbrisati postojeće monitore i obavijesti.", + importHandleDescription: "Odaberite opciju \"Preskoči postojeće\" ako želite preskočiti uvoz postojećih monitora i obavijesti ako dođe do poklapanja u imenu. Opcija \"Prepiši\" će izbrisati postojeće monitore i obavijesti.", confirmImportMsg: "Jeste li sigurni da želite pokrenuti uvoz? Provjerite jeste li odabrali ispravnu opciju uvoza.", twoFAVerifyLabel: "Unesite svoj 2FA token:", tokenValidSettingsMsg: "Token je važeći! Sada možete spremiti postavke dvofaktorske autentikacije.", @@ -44,7 +44,7 @@ export default { Down: "Nedostupno", Pending: "U tijeku", Unknown: "Nepoznato", - Pause: "Pauziraj", + Pause: "Pauzirano", Name: "Naziv monitora", Status: "Status", DateTime: "Vremenska oznaka", @@ -77,7 +77,7 @@ export default { "Max. Redirects": "Maksimalan broj preusmjeravanja", "Accepted Status Codes": "Prihvaćeni statusni kodovi", "Push URL": "Push URL", - needPushEvery: "Potrebno je zvati ovaj URL svakih {0} sekundi.", + needPushEvery: "Potrebno je slati zahtjeve na URL svakih {0} sekundi.", pushOptionalParams: "Neobavezni parametri: {0}", Save: "Spremi", Notifications: "Obavijesti", @@ -135,9 +135,9 @@ export default { Events: "Events", Heartbeats: "Provjere", "Auto Get": "Automatski dohvat", - backupDescription: "Moguće je napraviti sigurnosnu kopiju svih monitora i obavijesti u JSON datoteku.", + backupDescription: "Moguće je napraviti sigurnosnu kopiju svih monitora i obavijesti koja će biti spremljena kao JSON datoteka.", backupDescription2: "Napomena: povijest i podaci o događajima nisu uključeni u sigurnosnu kopiju.", - backupDescription3: "Osjetljivi podaci poput tokena za obavijesti jesu uključeni u izvozu; potrebno je čuvati izvoz na sigurnom mjestu.", + backupDescription3: "Osjetljivi podaci poput tokena za obavijesti jesu uključeni u sigurnosnu kopiju. Zato je potrebno čuvati izvoz na sigurnom mjestu.", alertNoFile: "Datoteka za uvoz nije odabrana.", alertWrongFileType: "Datoteka za uvoz nije u JSON formatu.", "Clear all statistics": "Obriši sve statistike", @@ -197,14 +197,14 @@ export default { webhook: "Webhook", "Post URL": "Post URL", "Content Type": "Tip sadržaja (Content Type)", - webhookJsonDesc: "{0} je moguća opcija za moderne HTTP poslužitelje poput Express.js-a", + webhookJsonDesc: "{0} je dobra opcija za moderne HTTP poslužitelje poput Express.js-a", webhookFormDataDesc: "{multipart} je moguća alternativa za PHP, samo je potrebno parsirati JSON koristeći {decodeFunction}", smtp: "E-pošta (SMTP)", secureOptionNone: "Bez sigurnosti / STARTTLS (25, 587)", secureOptionTLS: "TLS (465)", "Ignore TLS Error": "Ignoriraj greške TLS-a", - "From Email": "Adresa za From polje", - emailCustomSubject: "Prilagođeno Subject polje", + "From Email": "Adresa za \"From\" polje", + emailCustomSubject: "Prilagođeno \"Subject\" polje", "To Email": "Odredišne adrese e-pošte", smtpCC: "Cc", smtpBCC: "Bcc", @@ -233,7 +233,7 @@ export default { "Uptime Kuma URL": "Uptime Kuma URL", aboutWebhooks: "Dodatne informacije o webhookovima su dostupne na: {0}", aboutChannelName: "Unesite ime {0} kanala u polju Naziv kanala ako želite zaobići webhook kanal. Primjerice: #neki-kanal", - aboutKumaURL: "Ako je polje Uptime Kuma URL prazno, koristi se zadana vrijednost koja vodi na GitHub stranicu projekta.", + aboutKumaURL: "Ako je polje \"Uptime Kuma URL\" prazno, koristi se zadana vrijednost koja vodi na GitHub stranicu projekta.", emojiCheatSheet: "Popis emotikona: {0}", "rocket.chat": "Rocket.Chat", pushover: "Pushover", @@ -252,7 +252,7 @@ export default { "Notification Sound": "Zvuk obavijesti", "More info on:": "Više informacija na: {0}", pushoverDesc1: "Hitni prioritet (2) ima zadani istek vremena od 30 sekundi između ponovnih pokušaja te će isteći nakon 1 sata.", - pushoverDesc2: "Ako želite slati obavijesti na više uređaja, ispunite polje Uređaji.", + pushoverDesc2: "Ako želite slati obavijesti na više uređaja, ispunite polje \"Uređaji\".", "SMS Type": "Tip SMS-a", octopushTypePremium: "Premium (Brzo - preporučeno za obavijesti)", octopushTypeLowCost: "Low Cost (Sporo - mobilni operateri ponekad blokiraju ove poruke)", @@ -277,7 +277,7 @@ export default { "Basic Settings": "Osnovne Postavke", "User ID": "Korisnički ID", "Messaging API": "API za razmjenu poruka", - wayToGetLineChannelToken: "Prvo, pristupite {0}, kreirajte create a pružatelja usluga te kanal (API za razmjenu poruka), zatim možete dobiti you can get the token za pristup kanalu te korisnički ID za polja iznad.", + wayToGetLineChannelToken: "Prvo, pristupite {0}, kreirajte pružatelja usluga te kanal (API za razmjenu poruka), zatim možete dobiti token za pristup kanalu te korisnički ID za polja iznad.", "Icon URL": "URL slike", aboutIconURL: "Možete postaviti poveznicu na sliku u polju \"URL slike\" kako biste spriječili korištenje zadane slike. Ovo se polje neće koristiti ako je postavljeno polje \"Emotikon\".", aboutMattermostChannelName: "Možete promijeniti kanal u kojeg webhook šalje tako da ispunite polje \"Naziv kanala\". Ta opcija mora biti omogućena unutar Mattermost postavki za webhook. Primjerice: #neki-kanal", @@ -286,19 +286,19 @@ export default { promosmsTypeFlash: "SMS FLASH - Poruka se automatski pojavljuje na uređaju primatelja. Ograničeno samo na primatelje unutar Poljske.", promosmsTypeFull: "SMS FULL - Premium razina usluge, dozvoljava postavljanje naziva SMS pošiljatelja (Naziv mora biti registriran). Usluga pouzdana za obavijesti.", promosmsTypeSpeed: "SMS SPEED - Usluga najvećeg prioriteta. Brza i pouzdana, ali skupa (otprilike dvostruko skuplja od cijene usluge SMS FULL).", - promosmsPhoneNumber: "Telefonski broj (za primitalje unutar Poljske nije potrebno navoditi pozivni broj države)", + promosmsPhoneNumber: "Telefonski broj (za primatelje unutar Poljske nije potrebno navoditi pozivni broj države)", promosmsSMSSender: "Naziv SMS pošiljatelja: Registriran naziv ili jedan od zadanih: InfoSMS, SMS Info, MaxSMS, INFO, SMS", "Feishu WebHookUrl": "Feishu URL webhooka", - matrixHomeserverURL: "URL homeservera (uključujući http(s):// te port, ako je potrebno)", + matrixHomeserverURL: "URL Matrix homeservera (uključujući http(s):// te port, ako je potrebno)", "Internal Room Id": "Interni ID sobe", matrixDesc1: "Interni ID sobe se može pronaći u naprednim postavkama sobe unutar Matrix klijenta. ID sobe nalikuje idućem zapisu: !QMdRCpUIfLwsfjxye6:home.server.", - matrixDesc2: "Preporuča se stvaranje novog korisnika te suzdržavanje od korištenja pristupnog tokena vlastitog Matrix korisnika. Novog korisnika potrebno je dodati u sobe u kojima želite primati obavijesti. Pristupni token možete dobiti pokretanjem naredbe {0}", + matrixDesc2: "Preporučuje se stvaranje novog korisnika te suzdržavanje od korištenja pristupnog tokena vlastitog Matrix korisnika. Novog korisnika potrebno je dodati u sobe u kojima želite primati obavijesti. Pristupni token možete dobiti pokretanjem naredbe {0}", Method: "Metoda", Body: "Tijelo", Headers: "Zaglavlja", PushUrl: "Push URL", HeadersInvalidFormat: "Zaglavlja nisu nije valjani JSON: ", - BodyInvalidFormat: "Tijelo zahjeva nije valjani JSON: ", + BodyInvalidFormat: "Tijelo zahtjeva nije valjani JSON: ", "Monitor History": "Povijest monitora", clearDataOlderThan: "Podaci o povijesti monitora čuvaju se {0} dana.", PasswordsDoNotMatch: "Lozinke se ne poklapaju.", diff --git a/src/languages/pl.js b/src/languages/pl.js index 89faa6348..082980d3b 100644 --- a/src/languages/pl.js +++ b/src/languages/pl.js @@ -28,7 +28,7 @@ export default { confirmDisableTwoFAMsg: "Jesteś pewien, że chcesz wyłączyć 2FA?", Settings: "Ustawienia", Dashboard: "Panel", - "New Update": "Nowa Aktualizacja", + "New Update": "Nowa aktualizacja", Language: "Język", Appearance: "Wygląd", Theme: "Motyw", @@ -37,7 +37,7 @@ export default { "Check Update On GitHub": "Sprawdź aktualizację na GitHub", List: "Lista", Add: "Dodaj", - "Add New Monitor": "Dodaj Monitor", + "Add New Monitor": "Dodaj monitor", "Quick Stats": "Szybki podgląd statystyk", Up: "Online", Down: "Offline", @@ -53,8 +53,8 @@ export default { Edit: "Edytuj", Delete: "Usuń", Current: "Aktualny", - Uptime: "Czas Pracy", - "Cert Exp.": "Certyfikat Wygasa", + Uptime: "Czas pracy", + "Cert Exp.": "Certyfikat wygasa", days: "dni", day: "dzień", "-day": " dni", @@ -62,9 +62,9 @@ export default { "-hour": " godzin", Response: "Odpowiedź", Ping: "Ping", - "Monitor Type": "Rodzaj Monitora", + "Monitor Type": "Rodzaj monitora", Keyword: "Słowo kluczowe", - "Friendly Name": "Przyjazna Nazwa", + "Friendly Name": "Przyjazna nazwa", URL: "URL", Hostname: "Hostname", Port: "Port", @@ -73,12 +73,12 @@ export default { "Heartbeat Retry Interval": "Częstotliwość ponawiania bicia serca", Advanced: "Zaawansowane", "Upside Down Mode": "Tryb odwrócony", - "Max. Redirects": "Maks. Przekierowań", + "Max. Redirects": "Maks. przekierowań", "Accepted Status Codes": "Akceptowane kody statusu", Save: "Zapisz", Notifications: "Powiadomienia", "Not available, please setup.": "Niedostępne, proszę skonfigurować.", - "Setup Notification": "Skonfiguruj Powiadomienie", + "Setup Notification": "Skonfiguruj powiadomienie", Light: "Jasny", Dark: "Ciemny", Auto: "Automatyczny", @@ -122,7 +122,7 @@ export default { "Export Backup": "Eksportuj kopię zapasową", Export: "Eksportuj", Import: "Importuj", - respTime: "Czas Odp. (ms)", + respTime: "Czas odp. (ms)", notAvailableShort: "N/A", "Default enabled": "Włącz domyślnie", "Apply on all existing monitors": "Zastosuj do istniejących monitorów", @@ -183,10 +183,10 @@ export default { here: "tutaj", Required: "Wymagane", telegram: "Telegram", - "Bot Token": "Token Bota", + "Bot Token": "Token bota", wayToGetTelegramToken: "Token można uzyskać z {0}.", - "Chat ID": "Identyfikator Czatu", - supportTelegramChatID: "Czat wsprarcia technicznego / Bezpośrednia Rozmowa / Czat Grupowy", + "Chat ID": "Identyfikator czatu", + supportTelegramChatID: "Czat wsparcia technicznego / Bezpośrednia rozmowa / Czat grupowy", wayToGetTelegramChatID: "Możesz uzyskać swój identyfikator czatu, wysyłając wiadomość do bota i przechodząc pod ten adres URL, aby wyświetlić identyfikator czatu:", "YOUR BOT TOKEN HERE": "TWOJ TOKEN BOTA", chatIDNotFound: "Identyfikator czatu nie znaleziony, najpierw napisz do bota", @@ -198,20 +198,20 @@ export default { smtp: "Email (SMTP)", secureOptionNone: "Brak / STARTTLS (25, 587)", secureOptionTLS: "TLS (465)", - "Ignore TLS Error": "Zignrouj Błędy TLS", + "Ignore TLS Error": "Zignoruj błędy TLS", "From Email": "Nadawca (OD)", "To Email": "Odbiorca (DO)", smtpCC: "DW", smtpBCC: "UDW", discord: "Discord", - "Discord Webhook URL": "URL Webhook Discorda", - wayToGetDiscordURL: "Możesz go uzyskać przechodząc do Ustawienia Serwera -> Integracje -> Tworzenie Webhooka", - "Bot Display Name": "Wyświetlana Nazwa Bota", - "Prefix Custom Message": "Własny Początek Wiadomości", + "Discord Webhook URL": "URL webhook Discorda", + wayToGetDiscordURL: "Możesz go uzyskać przechodząc do Ustawienia serwera -> Integracje -> Tworzenie webhooka", + "Bot Display Name": "Wyświetlana nazwa bota", + "Prefix Custom Message": "Własny początek wiadomości", "Hello @everyone is...": "Hej {'@'}everyone ...", teams: "Microsoft Teams", - "Webhook URL": "URL Webhooka", - wayToGetTeamsURL: "You can learn how to create a webhook url {0}.", + "Webhook URL": "URL webhooka", + wayToGetTeamsURL: "Możesz dowiedzieć się, jak utworzyć adres url webhooka {0}.", signal: "Signal", Number: "Numer", Recipients: "Odbiorcy", @@ -219,66 +219,66 @@ export default { wayToCheckSignalURL: "W celu dowiedzenia się, jak go skonfigurować, odwiedź poniższy link:", signalImportant: "UWAGA: Nie można mieszać nazw grup i numerów odbiorców!", gotify: "Gotify", - "Application Token": "Token Aplikacji", + "Application Token": "Token aplikacji", "Server URL": "Server URL", Priority: "Priorytet", slack: "Slack", - "Icon Emoji": "Ikona Emoji", - "Channel Name": "Nazwa Kanału", + "Icon Emoji": "Ikona emoji", + "Channel Name": "Nazwa kanału", "Uptime Kuma URL": "Adres Uptime Kuma", aboutWebhooks: "Więcej informacji na temat webhooków: {0}", - aboutChannelName: "Podaj nazwę kanału {0} w polu Nazwa Kanału, jeśli chcesz pominąć kanał webhooka. Np.: #inny-kanal", - aboutKumaURL: "Jeśli pozostawisz pole Adres Uptime Kuma puste, domyślnie będzie to strona projektu na Github.", - emojiCheatSheet: "Ściąga Emoji: {0}", + aboutChannelName: "Podaj nazwę kanału {0} w polu Nazwa kanału, jeśli chcesz pominąć kanał webhooka. Np.: #inny-kanal", + aboutKumaURL: "Jeśli pozostawisz pole Adres Uptime Kuma puste, domyślnie będzie to strona projektu na GitHub.", + emojiCheatSheet: "Ściąga emoji: {0}", "rocket.chat": "Rocket.chat", pushover: "Pushover", pushy: "Pushy", octopush: "Octopush", promosms: "PromoSMS", lunasea: "LunaSea", - apprise: "Apprise (Obsługuje 50+ usług powiadomień)", + apprise: "Apprise (obsługuje 50+ usług powiadomień)", pushbullet: "Pushbullet", line: "Line Messenger", mattermost: "Mattermost", - "User Key": "Klucz Użytkownika", + "User Key": "Klucz użytkownika", Device: "Urządzenie", - "Message Title": "Tytuł Wiadomości", - "Notification Sound": "Dźwięk Powiadomienia", + "Message Title": "Tytuł wiadomości", + "Notification Sound": "Dźwięk powiadomienia", "More info on:": "Więcej informacji na: {0}", pushoverDesc1: "Priorytet awaryjny (2) ma domyślny 30-sekundowy limit czasu między kolejnymi próbami i wygaśnie po 1 godzinie.", pushoverDesc2: "Jeśli chcesz wysyłać powiadomienia na różne urządzenia, wypełnij pole Urządzenie.", "SMS Type": "Rodzaj SMS", - octopushTypePremium: "Premium (Szybki - rekomendowany dla powiadomień)", - octopushTypeLowCost: "Low Cost (Wolny, czasami blokowany przez operatorów)", + octopushTypePremium: "Premium (szybki - rekomendowany dla powiadomień)", + octopushTypeLowCost: "Low Cost (wolny, czasami blokowany przez operatorów)", "Check octopush prices": "Sprawdź ceny Octopush {0}.", - octopushPhoneNumber: "Numer Telefonu (Format międzynarodowy np.: +33612345678)", - octopushSMSSender: "Nadawca SMS : 3-11 znaków alfanumerycznych i spacji (a-zA-Z0-9)", - "LunaSea Device ID": "Idetyfikator Urządzenia LunaSea", + octopushPhoneNumber: "Numer telefonu (format międzynarodowy np.: +33612345678)", + octopushSMSSender: "Nadawca SMS: 3-11 znaków alfanumerycznych i spacji (a-zA-Z0-9)", + "LunaSea Device ID": "Identyfikator urządzenia LunaSea", "Apprise URL": "URL Apprise", "Example:": "Przykład: {0}", - "Read more:": "Czytaj Dalej: {0}", + "Read more:": "Czytaj dalej: {0}", "Status:": "Status: {0}", "Read more": "Czytaj dalej", appriseInstalled: "Apprise jest zostało zainstalowane.", appriseNotInstalled: "Apprise nie zostało zainstalowane. {0}", - "Access Token": "Token Dostępu", - "Channel access token": "Token Dostępu Kanału", - "Line Developers Console": "Konsola Dewelopersja Line", - lineDevConsoleTo: "Konsola Dewelopersja Line - {0}", - "Basic Settings": "Ustawienia Ogólne", - "User ID": "Idetyfikator Użytkownika", - "Messaging API": "API Wiadomości", + "Access Token": "Token dostępu", + "Channel access token": "Token dostępu kanału", + "Line Developers Console": "Konsola deweloperska Line", + lineDevConsoleTo: "Konsola deweloperska Line - {0}", + "Basic Settings": "Ustawienia ogólne", + "User ID": "Identyfikator użytkownika", + "Messaging API": "API wiadomości", wayToGetLineChannelToken: "Najpierw uzyskaj dostęp do {0}, utwórz dostawcę i kanał (Messaging API), a następnie możesz uzyskać token dostępu do kanału i identyfikator użytkownika z wyżej wymienionych pozycji menu.", "Icon URL": "Adres Ikony", - aboutIconURL: "Możesz podać link do zdjęcia w \"Adres URL ikony\", aby zastąpić domyślne zdjęcie profilowe. Nie będzie używany, jeśli ustawiona jest ikona Emoji.", - aboutMattermostChannelName: "Możesz zastąpić domyślny kanał, na którym publikowane są posty webhooka, wpisując nazwę kanału w polu \"Nazwa Kanału\". Należy to włączyć w ustawieniach webhooka Mattermost. Np.: #inny-kanał", + aboutIconURL: "Możesz podać link do zdjęcia w \"Adres URL ikony\", aby zastąpić domyślne zdjęcie profilowe. Nie będzie używany, jeśli ustawiona jest ikona emoji.", + aboutMattermostChannelName: "Możesz zastąpić domyślny kanał, na którym publikowane są posty webhooka, wpisując nazwę kanału w polu \"Nazwa kanału\". Należy to włączyć w ustawieniach webhooka Mattermost. Np.: #inny-kanał", matrix: "Matrix", - promosmsTypeEco: "SMS ECO - Tanie, lecz wolne. Dostępne tylko w Polsce", - promosmsTypeFlash: "SMS FLASH - Wiadomość automatycznie wyświetli się na urządzeniu. Dostępne tylko w Polsce.", - promosmsTypeFull: "SMS FULL - Szybkie i dostępne międzynarodowo. Wersja premium usługi, która pozwala min. ustawić własną nazwę nadawcy.", - promosmsTypeSpeed: "SMS SPEED - Wysyłka priorytetowa, posiada wszystkie zalety SMS FULL", - promosmsPhoneNumber: "Numer Odbiorcy", - promosmsSMSSender: "Nadawca SMS (Wcześniej zatwierdzone nazwy z panelu PromoSMS)", + promosmsTypeEco: "SMS ECO - tanie, lecz wolne. Dostępne tylko w Polsce", + promosmsTypeFlash: "SMS FLASH - wiadomość automatycznie wyświetli się na urządzeniu. Dostępne tylko w Polsce.", + promosmsTypeFull: "SMS FULL - szybkie i dostępne międzynarodowo. Wersja premium usługi, która pozwala min. ustawić własną nazwę nadawcy.", + promosmsTypeSpeed: "SMS SPEED - wysyłka priorytetowa, posiada wszystkie zalety SMS FULL", + promosmsPhoneNumber: "Numer odbiorcy", + promosmsSMSSender: "Nadawca SMS (wcześniej zatwierdzone nazwy z panelu PromoSMS)", "Primary Base URL": "Główny URL", "Push URL": "Push URL", needPushEvery: "Powinieneś wywoływać ten URL co {0} sekund", @@ -303,4 +303,8 @@ export default { records: "rekordy", "One record": "Jeden rekord", steamApiKeyDescription: "Do monitorowania serwera gier Steam potrzebny jest klucz Steam Web-API. Możesz zarejestrować swój klucz API tutaj: ", + "Current User": "Aktualny użytkownik", + recent: "Ostatnie", + clicksendsms: "ClickSend SMS", + apiCredentials: "Poświadczenia API", }; diff --git a/src/mixins/socket.js b/src/mixins/socket.js index 679794496..170a07a73 100644 --- a/src/mixins/socket.js +++ b/src/mixins/socket.js @@ -265,10 +265,10 @@ export default { }, logout() { + socket.emit("logout", () => { }); this.storage().removeItem("token"); this.socket.token = null; this.loggedIn = false; - this.clearData(); }, diff --git a/src/pages/DashboardHome.vue b/src/pages/DashboardHome.vue index 2832b1c7f..16d07983b 100644 --- a/src/pages/DashboardHome.vue +++ b/src/pages/DashboardHome.vue @@ -83,9 +83,7 @@ export default { perPage: 25, heartBeatList: [], paginationConfig: { - texts: { - count: "", - }, + hideCount: true, chunksNavigation: "scroll", }, }; diff --git a/src/pages/Details.vue b/src/pages/Details.vue index b8a75b29b..d40561fe0 100644 --- a/src/pages/Details.vue +++ b/src/pages/Details.vue @@ -209,9 +209,7 @@ export default { toggleCertInfoBox: false, showPingChartBox: true, paginationConfig: { - texts: { - count: "", - }, + hideCount: true, chunksNavigation: "scroll", }, };