- Subject: |
+ {{ $t("Subject:") }} |
{{ formatSubject(cert.subject) }} |
- Valid To: |
+ {{ $t("Valid To:") }} |
|
- Days Remaining: |
+ {{ $t("Days Remaining:") }} |
{{ cert.daysRemaining }} |
- Issuer: |
+ {{ $t("Issuer:") }} |
{{ formatSubject(cert.issuer) }} |
- Fingerprint: |
+ {{ $t("Fingerprint:") }} |
{{ cert.fingerprint }} |
diff --git a/src/components/Confirm.vue b/src/components/Confirm.vue
index 391155f4..1bfe7fe4 100644
--- a/src/components/Confirm.vue
+++ b/src/components/Confirm.vue
@@ -25,7 +25,7 @@
diff --git a/src/components/CopyableInput.vue b/src/components/CopyableInput.vue
index 1fe89802..1bccfa2c 100644
--- a/src/components/CopyableInput.vue
+++ b/src/components/CopyableInput.vue
@@ -57,6 +57,7 @@ export default {
default: undefined,
},
},
+ emits: [ "update:modelValue" ],
data() {
return {
visibility: "password",
diff --git a/src/components/CountUp.vue b/src/components/CountUp.vue
index b321fde1..41edc4a0 100644
--- a/src/components/CountUp.vue
+++ b/src/components/CountUp.vue
@@ -5,12 +5,12 @@
diff --git a/src/components/Datetime.vue b/src/components/Datetime.vue
index 1df982cb..ed38c434 100644
--- a/src/components/Datetime.vue
+++ b/src/components/Datetime.vue
@@ -4,12 +4,12 @@
diff --git a/src/components/HeartbeatBar.vue b/src/components/HeartbeatBar.vue
index be0b122e..245a8512 100644
--- a/src/components/HeartbeatBar.vue
+++ b/src/components/HeartbeatBar.vue
@@ -38,7 +38,7 @@ export default {
beatMargin: 4,
move: false,
maxBeat: -1,
- }
+ };
},
computed: {
@@ -69,12 +69,12 @@ export default {
if (start < 0) {
// Add empty placeholder
for (let i = start; i < 0; i++) {
- placeholders.push(0)
+ placeholders.push(0);
}
start = 0;
}
- return placeholders.concat(this.beatList.slice(start))
+ return placeholders.concat(this.beatList.slice(start));
},
wrapStyle() {
@@ -84,7 +84,7 @@ export default {
return {
padding: `${topBottom}px ${leftRight}px`,
width: "100%",
- }
+ };
},
barStyle() {
@@ -94,12 +94,12 @@ export default {
return {
transition: "all ease-in-out 0.25s",
transform: `translateX(${width}px)`,
- }
+ };
}
return {
transform: "translateX(0)",
- }
+ };
},
@@ -109,7 +109,7 @@ export default {
height: this.beatHeight + "px",
margin: this.beatMargin + "px",
"--hover-scale": this.hoverScale,
- }
+ };
},
},
@@ -120,7 +120,7 @@ export default {
setTimeout(() => {
this.move = false;
- }, 300)
+ }, 300);
},
deep: true,
},
@@ -162,15 +162,15 @@ export default {
methods: {
resize() {
if (this.$refs.wrap) {
- this.maxBeat = Math.floor(this.$refs.wrap.clientWidth / (this.beatWidth + this.beatMargin * 2))
+ this.maxBeat = Math.floor(this.$refs.wrap.clientWidth / (this.beatWidth + this.beatMargin * 2));
}
},
getBeatTitle(beat) {
- return `${this.$root.datetime(beat.time)}` + ((beat.msg) ? ` - ${beat.msg}` : ``);
+ return `${this.$root.datetime(beat.time)}` + ((beat.msg) ? ` - ${beat.msg}` : "");
}
},
-}
+};
diff --git a/src/components/NotificationDialog.vue b/src/components/NotificationDialog.vue
index 659f5726..7a1f1a10 100644
--- a/src/components/NotificationDialog.vue
+++ b/src/components/NotificationDialog.vue
@@ -69,7 +69,6 @@
@@ -278,7 +286,7 @@ export default {
.dropdown-item {
border-radius: 0.3rem;
- padding: 2px 16px 4px 16px;
+ padding: 2px 16px 4px;
.dark & {
background: $dark-bg;
@@ -286,6 +294,7 @@ export default {
.dark &:hover {
background: $dark-font-color;
+ color: $dark-font-color2;
}
}
diff --git a/src/components/ProxyDialog.vue b/src/components/ProxyDialog.vue
new file mode 100644
index 00000000..3070925c
--- /dev/null
+++ b/src/components/ProxyDialog.vue
@@ -0,0 +1,206 @@
+
+
+
+
+ {{ $t("deleteProxyMsg") }}
+
+
+
+
+
+
diff --git a/src/components/PublicGroupList.vue b/src/components/PublicGroupList.vue
index f30edcef..df94eec9 100644
--- a/src/components/PublicGroupList.vue
+++ b/src/components/PublicGroupList.vue
@@ -41,7 +41,7 @@
{{ monitor.element.name }}
-
@@ -76,6 +76,9 @@ export default {
type: Boolean,
required: true,
},
+ showTags: {
+ type: Boolean,
+ }
},
data() {
return {
@@ -142,7 +145,7 @@ export default {
.mobile {
.item {
- padding: 13px 0 10px 0;
+ padding: 13px 0 10px;
}
}
diff --git a/src/components/Tag.vue b/src/components/Tag.vue
index 434358aa..3c966850 100644
--- a/src/components/Tag.vue
+++ b/src/components/Tag.vue
@@ -1,13 +1,14 @@
-
{{ displayText }}
@@ -34,14 +35,14 @@ export default {
},
computed: {
displayText() {
- if (this.item.value == "") {
+ if (this.item.value === "") {
return this.item.name;
} else {
return `${this.item.name}: ${this.item.value}`;
}
}
}
-}
+};
diff --git a/src/components/TwoFADialog.vue b/src/components/TwoFADialog.vue
index b7b9668d..049f7c87 100644
--- a/src/components/TwoFADialog.vue
+++ b/src/components/TwoFADialog.vue
@@ -19,6 +19,19 @@
{{ uri }}
+
+
+
+
+
@@ -33,7 +46,7 @@
- {{ $t("tokenValidSettingsMsg") }}
+ {{ $t("tokenValidSettingsMsg") }}
@@ -59,11 +72,11 @@
diff --git a/src/components/settings/MonitorHistory.vue b/src/components/settings/MonitorHistory.vue
index 9b5b8bd7..0092727f 100644
--- a/src/components/settings/MonitorHistory.vue
+++ b/src/components/settings/MonitorHistory.vue
@@ -52,7 +52,7 @@
-
-
diff --git a/src/components/settings/Proxies.vue b/src/components/settings/Proxies.vue
new file mode 100644
index 00000000..4608f3aa
--- /dev/null
+++ b/src/components/settings/Proxies.vue
@@ -0,0 +1,48 @@
+
+
+
+
+
+ {{ $t("Not available, please setup.") }}
+
+
+ {{ $t("proxyDescription") }}
+
+
+
+ -
+ {{ proxy.host }}:{{ proxy.port }} ({{ proxy.protocol }})
+ {{ $t("Default") }}
+ {{ $t("Edit") }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/settings/ReverseProxy.vue b/src/components/settings/ReverseProxy.vue
new file mode 100644
index 00000000..97db4d59
--- /dev/null
+++ b/src/components/settings/ReverseProxy.vue
@@ -0,0 +1,144 @@
+
+
+
Cloudflare Tunnel
+
+
+
+ cloudflared:
+ {{ $t("Installed") }}
+ {{ $t("Not installed") }}
+
+
+
+ {{ $t("Status") }}:
+ {{ $t("Running") }}
+ {{ $t("Not running") }}
+
+
+
+ {{ message }}
+
+
+
+ {{ $t("Message:") }}
+
+
+
+
+ {{ $t("cloudflareWebsite") }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t("The current connection may be lost if you are currently connecting via Cloudflare Tunnel. Are you sure want to stop it? Type your current password to confirm it.") }}
+
+
+
+
+
+
+
+
+
+
{{ $t("Other Software") }}
+
+
+
+
+
+
+
diff --git a/src/components/settings/Security.vue b/src/components/settings/Security.vue
index c94c3915..87bb745a 100644
--- a/src/components/settings/Security.vue
+++ b/src/components/settings/Security.vue
@@ -4,7 +4,7 @@
- {{ $t("Current User") }}: {{ username }}
+ {{ $t("Current User") }}: {{ $root.username }}
@@ -175,9 +175,9 @@
- Si è certi di voler disabilitare l'autenticazione?
- È per chi ha l'autenticazione gestita da terze parti messa davanti ad Uptime Kuma, ad esempio Cloudflare Access.
- Utilizzare con attenzione.
+ Disabilitare l'autenticazione?
+ Questa opzione è per chi un sistema di autenticazione gestito da terze parti messo davanti ad Uptime Kuma, ad esempio Cloudflare Access.
+ Utilizzare con attenzione!
@@ -192,6 +192,12 @@
Пожалуйста, используйте с осторожностью.
+
+ Ви впевнені, що бажаєте вимкнути авторизацію?
+ Це підходить для тих, у кого встановлена інша авторизація пееред відкриттям Uptime Kuma, наприклад Cloudflare Access.
+ Будь ласка, використовуйте з обережністю.
+
+
آیا مطمئن هستید که میخواهید احراز هویت را غیر فعال کنید?
این ویژگی برای کسانی است که لایه امنیتی شخص ثالث دیگر بر روی این آدرس فعال کردهاند، مانند Cloudflare Access.
@@ -216,12 +222,37 @@
Vennligst vær forsiktig.
+
+ Opravdu chcete deaktivovat autentifikaci?
+ Tato možnost je určena pro případy, kdy máte autentifikaci zajištěnou třetí stranou ještě před přístupem do Uptime Kuma, například prostřednictvím Cloudflare Access.
+ Používejte ji prosím s rozmyslem.
+
+
+
+ Bạn có muốn TẮT XÁC THỰC không?
+ Điều này rất nguy hiểmBẤT KỲ AI cũng có thể truy cập và cướp quyền điều khiển.
+ Vui lòng cẩn thận.
+
+
- Are you sure want to disable auth?
- It is for someone who have 3rd-party auth in front of Uptime Kuma such as Cloudflare Access.
- Please use it carefully.
+ Are you sure want to disable authentication?
+ It is designed for scenarios where you intend to implement third-party authentication in front of Uptime Kuma such as Cloudflare Access, Authelia or other authentication mechanisms.
+ Please use this option carefully!
+
+
+
+
+
@@ -238,7 +269,6 @@ export default {
data() {
return {
- username: "",
invalidPassword: false,
password: {
currentPassword: "",
@@ -266,10 +296,6 @@ export default {
},
},
- mounted() {
- this.loadUsername();
- },
-
methods: {
savePassword() {
if (this.password.newPassword !== this.password.repeatNewPassword) {
@@ -288,17 +314,16 @@ export default {
}
},
- loadUsername() {
- const jwtPayload = this.$root.getJWTPayload();
-
- if (jwtPayload) {
- this.username = jwtPayload.username;
- }
- },
-
disableAuth() {
this.settings.disableAuth = true;
- this.saveSettings();
+
+ // Need current password to disable auth
+ // Set it to empty if done
+ this.saveSettings(() => {
+ this.password.currentPassword = "";
+ this.$root.username = null;
+ this.$root.socket.token = "autoLogin";
+ }, this.password.currentPassword);
},
enableAuth() {
@@ -319,7 +344,7 @@ export default {
diff --git a/src/pages/Dashboard.vue b/src/pages/Dashboard.vue
index 1cf237ce..38e5b9be 100644
--- a/src/pages/Dashboard.vue
+++ b/src/pages/Dashboard.vue
@@ -25,9 +25,9 @@ export default {
MonitorList,
},
data() {
- return {}
+ return {};
},
-}
+};
diff --git a/src/pages/NotFound.vue b/src/pages/NotFound.vue
new file mode 100644
index 00000000..16ba8a55
--- /dev/null
+++ b/src/pages/NotFound.vue
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+ 🐻 {{ $t("Page Not Found") }}
+
+
+
+ Most likely causes:
+
+ - The resource is no longer available.
+ - There might be a typing error in the address.
+
+
+ What you can try:
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/Settings.vue b/src/pages/Settings.vue
index 58162f57..11d3a1be 100644
--- a/src/pages/Settings.vue
+++ b/src/pages/Settings.vue
@@ -6,7 +6,7 @@