aboutsummaryrefslogtreecommitdiff
path: root/src/components/admin_modal/admin_modal.vue
diff options
context:
space:
mode:
authorHenry Jameson <me@hjkos.com>2023-03-14 21:50:43 +0200
committerHenry Jameson <me@hjkos.com>2023-03-14 21:50:43 +0200
commit4d23d31fecf480abfccc4db3ac79c6640078dc3b (patch)
tree545b0ffe95fe206db0cb39971a6aa8c3368b5617 /src/components/admin_modal/admin_modal.vue
parent9632b77786a9d3735f04ecf4a814311fad926ad0 (diff)
initial admin settings prototype (WIP)
Diffstat (limited to 'src/components/admin_modal/admin_modal.vue')
-rw-r--r--src/components/admin_modal/admin_modal.vue121
1 files changed, 121 insertions, 0 deletions
diff --git a/src/components/admin_modal/admin_modal.vue b/src/components/admin_modal/admin_modal.vue
new file mode 100644
index 00000000..d7e5a80f
--- /dev/null
+++ b/src/components/admin_modal/admin_modal.vue
@@ -0,0 +1,121 @@
+<template>
+ <Modal
+ :is-open="modalActivated"
+ class="admin-modal"
+ :class="{ peek: modalPeeked }"
+ :no-background="modalPeeked"
+ >
+ <div class="admin-modal-panel panel">
+ <div class="panel-heading">
+ <span class="title">
+ {{ $t('admin.settings') }}
+ </span>
+ <transition name="fade">
+ <div
+ v-if="currentSaveStateNotice"
+ class="alert"
+ :class="{ transparent: !currentSaveStateNotice.error, error: currentSaveStateNotice.error}"
+ @click.prevent
+ >
+ {{ currentSaveStateNotice.error ? $t('admin.saving_err') : $t('settings.saving_ok') }}
+ </div>
+ </transition>
+ <button
+ class="btn button-default"
+ :title="$t('general.peek')"
+ @click="peekModal"
+ >
+ <FAIcon
+ :icon="['far', 'window-minimize']"
+ fixed-width
+ />
+ </button>
+ <button
+ class="btn button-default"
+ :title="$t('general.close')"
+ @click="closeModal"
+ >
+ <FAIcon
+ icon="times"
+ fixed-width
+ />
+ </button>
+ </div>
+ <div class="panel-body">
+ <AdminModalContent v-if="modalOpenedOnce" />
+ </div>
+ <div class="panel-footer admin-footer">
+ <Popover
+ class="export"
+ trigger="click"
+ placement="top"
+ :offset="{ y: 5, x: 5 }"
+ :bound-to="{ x: 'container' }"
+ remove-padding
+ >
+ <template #trigger>
+ <button
+ class="btn button-default"
+ :title="$t('general.close')"
+ >
+ <span>{{ $t("admin.file_export_import.backup_restore") }}</span>
+ {{ ' ' }}
+ <FAIcon
+ icon="chevron-down"
+ />
+ </button>
+ </template>
+ <template #content="{close}">
+ <div class="dropdown-menu">
+ <button
+ class="button-default dropdown-item dropdown-item-icon"
+ @click.prevent="backup"
+ @click="close"
+ >
+ <FAIcon
+ icon="file-download"
+ fixed-width
+ /><span>{{ $t("admin.file_export_import.backup_settings") }}</span>
+ </button>
+ <button
+ class="button-default dropdown-item dropdown-item-icon"
+ @click.prevent="backupWithTheme"
+ @click="close"
+ >
+ <FAIcon
+ icon="file-download"
+ fixed-width
+ /><span>{{ $t("admin.file_export_import.backup_settings_theme") }}</span>
+ </button>
+ <button
+ class="button-default dropdown-item dropdown-item-icon"
+ @click.prevent="restore"
+ @click="close"
+ >
+ <FAIcon
+ icon="file-upload"
+ fixed-width
+ /><span>{{ $t("admin.file_export_import.restore_settings") }}</span>
+ </button>
+ </div>
+ </template>
+ </Popover>
+
+ <Checkbox
+ :model-value="!!expertLevel"
+ @update:modelValue="expertLevel = Number($event)"
+ >
+ {{ $t("admin.expert_mode") }}
+ </Checkbox>
+ <span
+ id="unscrolled-content"
+ class="extra-content"
+ />
+ </div>
+ </div>
+ </Modal>
+</template>
+
+<script src="./admin_modal.js"></script>
+
+<style src="./admin_modal.scss" lang="scss"></style>