summaryrefslogtreecommitdiffstats
path: root/src/pages/AddStatusPage.vue
diff options
context:
space:
mode:
authorDaniel Baumann <daniel@debian.org>2024-11-26 09:28:28 +0100
committerDaniel Baumann <daniel@debian.org>2024-11-26 12:25:58 +0100
commita1882b67c41fe9901a0cd8059b5cc78a5beadec0 (patch)
tree2a24507c67aa99a15416707b2f7e645142230ed8 /src/pages/AddStatusPage.vue
parentInitial commit. (diff)
downloaduptime-kuma-a1882b67c41fe9901a0cd8059b5cc78a5beadec0.tar.xz
uptime-kuma-a1882b67c41fe9901a0cd8059b5cc78a5beadec0.zip
Adding upstream version 2.0.0~beta.0+dfsg.upstream/2.0.0_beta.0+dfsgupstream
Signed-off-by: Daniel Baumann <daniel@debian.org>
Diffstat (limited to 'src/pages/AddStatusPage.vue')
-rw-r--r--src/pages/AddStatusPage.vue88
1 files changed, 88 insertions, 0 deletions
diff --git a/src/pages/AddStatusPage.vue b/src/pages/AddStatusPage.vue
new file mode 100644
index 0000000..bae6144
--- /dev/null
+++ b/src/pages/AddStatusPage.vue
@@ -0,0 +1,88 @@
+<template>
+ <transition name="slide-fade" appear>
+ <div>
+ <h1 class="mb-3">
+ {{ $t("Add New Status Page") }}
+ </h1>
+
+ <form @submit.prevent="submit">
+ <div class="shadow-box">
+ <div class="mb-3">
+ <label for="name" class="form-label">{{ $t("Name") }}</label>
+ <input id="name" v-model="title" type="text" class="form-control" required data-testid="name-input">
+ </div>
+
+ <div class="mb-4">
+ <label for="slug" class="form-label">{{ $t("Slug") }}</label>
+ <div class="input-group">
+ <span id="basic-addon3" class="input-group-text">/status/</span>
+ <input id="slug" v-model="slug" type="text" class="form-control" required data-testid="slug-input">
+ </div>
+ <div class="form-text">
+ <ul>
+ <li>{{ $t("Accept characters:") }} <mark>a-z</mark> <mark>0-9</mark> <mark>-</mark></li>
+ <i18n-t tag="li" keypath="startOrEndWithOnly">
+ <mark>a-z</mark> <mark>0-9</mark>
+ </i18n-t>
+ <li>{{ $t("No consecutive dashes") }} <mark>--</mark></li>
+ <i18n-t tag="li" keypath="statusPageSpecialSlugDesc">
+ <mark class="me-1">default</mark>
+ </i18n-t>
+ </ul>
+ </div>
+ </div>
+
+ <div class="mt-2 mb-1">
+ <button id="monitor-submit-btn" class="btn btn-primary w-100" type="submit" :disabled="processing" data-testid="submit-button">{{ $t("Next") }}</button>
+ </div>
+ </div>
+ </form>
+ </div>
+ </transition>
+</template>
+
+<script>
+export default {
+ components: {
+
+ },
+ data() {
+ return {
+ title: "",
+ slug: "",
+ processing: false,
+ };
+ },
+ methods: {
+ /**
+ * Submit form data to add new status page
+ * @returns {Promise<void>}
+ */
+ async submit() {
+ this.processing = true;
+
+ this.$root.getSocket().emit("addStatusPage", this.title, this.slug, (res) => {
+ this.processing = false;
+
+ if (res.ok) {
+ location.href = "/status/" + this.slug + "?edit";
+ } else {
+
+ if (res.msg.includes("UNIQUE constraint")) {
+ this.$root.toastError("The slug is already taken. Please choose another slug.");
+ } else {
+ this.$root.toastRes(res);
+ }
+
+ }
+ });
+ }
+ }
+};
+</script>
+
+<style lang="scss" scoped>
+.shadow-box {
+ padding: 20px;
+}
+</style>