diff --git a/src/components/admin/management/setting/AppSetting.vue b/src/components/admin/management/setting/AppSetting.vue index 234a4ab..787dbe1 100644 --- a/src/components/admin/management/setting/AppSetting.vue +++ b/src/components/admin/management/setting/AppSetting.vue @@ -1,42 +1,67 @@ diff --git a/src/components/admin/management/setting/BackupSetting.vue b/src/components/admin/management/setting/BackupSetting.vue index f18298a..f71a36a 100644 --- a/src/components/admin/management/setting/BackupSetting.vue +++ b/src/components/admin/management/setting/BackupSetting.vue @@ -1,34 +1,53 @@ diff --git a/src/components/admin/management/setting/BaseSetting.vue b/src/components/admin/management/setting/BaseSetting.vue new file mode 100644 index 0000000..96c1308 --- /dev/null +++ b/src/components/admin/management/setting/BaseSetting.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/src/components/admin/management/setting/ClubImageSetting.vue b/src/components/admin/management/setting/ClubImageSetting.vue new file mode 100644 index 0000000..e2ab129 --- /dev/null +++ b/src/components/admin/management/setting/ClubImageSetting.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/src/components/admin/management/setting/ClubSetting.vue b/src/components/admin/management/setting/ClubSetting.vue index 51dfb40..8b6cbcc 100644 --- a/src/components/admin/management/setting/ClubSetting.vue +++ b/src/components/admin/management/setting/ClubSetting.vue @@ -1,58 +1,89 @@ diff --git a/src/components/admin/management/setting/MailSetting.vue b/src/components/admin/management/setting/MailSetting.vue index b945b2a..64ca03d 100644 --- a/src/components/admin/management/setting/MailSetting.vue +++ b/src/components/admin/management/setting/MailSetting.vue @@ -1,57 +1,100 @@ diff --git a/src/components/admin/management/setting/SessionSetting.vue b/src/components/admin/management/setting/SessionSetting.vue index e93aee8..712ea75 100644 --- a/src/components/admin/management/setting/SessionSetting.vue +++ b/src/components/admin/management/setting/SessionSetting.vue @@ -1,38 +1,76 @@ diff --git a/src/stores/admin/management/setting.ts b/src/stores/admin/management/setting.ts index 174141a..defb78b 100644 --- a/src/stores/admin/management/setting.ts +++ b/src/stores/admin/management/setting.ts @@ -50,14 +50,32 @@ export const useSettingStore = defineStore("setting", { return res; }); }, + async uploadImage(data: { key: SettingString; value?: File }[]): Promise> { + const formData = new FormData(); + for (let entry of data) { + if (entry.value) formData.append(entry.key, entry.value); + } + return await http.put("/admin/setting/img", formData, { + headers: { + "Content-Type": "multipart/form-data", + }, + }); + }, + async updateSettings( + data: { key: K; value: SettingValueMapping[K] }[] + ): Promise> { + return await http.put("/admin/setting", data); + }, async updateSetting( key: K, - val: SettingValueMapping[K] + value: SettingValueMapping[K] ): Promise> { - return await http.put("/admin/setting", { - setting: key, - value: val, - }); + return await http.put("/admin/setting", [ + { + setting: key, + value: value, + }, + ]); }, async resetSetting(key: SettingString): Promise> { return await http.delete(`/admin/setting/${key}`); diff --git a/src/stores/configuration.ts b/src/stores/configuration.ts index c33803a..1e8bfd8 100644 --- a/src/stores/configuration.ts +++ b/src/stores/configuration.ts @@ -10,6 +10,8 @@ export const useConfigurationStore = defineStore("configuration", { clubWebsite: "", appCustom_login_message: "", appShow_link_to_calendar: false as boolean, + + serverOffline: false as boolean, }; }, actions: { @@ -24,7 +26,9 @@ export const useConfigurationStore = defineStore("configuration", { this.appCustom_login_message = res.data["app.custom_login_message"]; this.appShow_link_to_calendar = res.data["app.show_link_to_calendar"]; }) - .catch(() => {}); + .catch(() => { + this.serverOffline = true; + }); }, }, }); diff --git a/src/views/admin/management/setting/Setting.vue b/src/views/admin/management/setting/Setting.vue index 2220105..25e602a 100644 --- a/src/views/admin/management/setting/Setting.vue +++ b/src/views/admin/management/setting/Setting.vue @@ -6,6 +6,8 @@