diff --git a/frontend/babel.config.js b/frontend/babel.config.js index e9558405f..162a3ea97 100644 --- a/frontend/babel.config.js +++ b/frontend/babel.config.js @@ -1,5 +1,3 @@ module.exports = { - presets: [ - '@vue/cli-plugin-babel/preset' - ] -} + presets: ["@vue/cli-plugin-babel/preset"], +}; diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 56b8c537a..999cac80a 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -4,9 +4,7 @@
- This is a Demo | Username: changeme@email.com | Password: demo -
This is a Demo | Username: changeme@email.com | Password: demo
@@ -57,9 +55,7 @@ export default { */ darkModeSystemCheck() { if (this.$store.getters.getDarkMode === "system") - Vuetify.framework.theme.dark = window.matchMedia( - "(prefers-color-scheme: dark)" - ).matches; + Vuetify.framework.theme.dark = window.matchMedia("(prefers-color-scheme: dark)").matches; }, /** * This will monitor the OS level darkmode and call to update dark mode. diff --git a/frontend/src/api/api-utils.js b/frontend/src/api/api-utils.js index 0e42f2333..a143f8452 100644 --- a/frontend/src/api/api-utils.js +++ b/frontend/src/api/api-utils.js @@ -3,18 +3,16 @@ import axios from "axios"; import { store } from "../store"; import utils from "@/utils"; -axios.defaults.headers.common[ - "Authorization" -] = `Bearer ${store.getters.getToken}`; +axios.defaults.headers.common["Authorization"] = `Bearer ${store.getters.getToken}`; function handleError(error, getText) { - if(getText) { + if (getText) { utils.notify.error(getText(error.response)); } return false; } function handleResponse(response, getText) { - if(response && getText) { + if (response && getText) { const successText = getText(response); utils.notify.success(successText); } @@ -31,26 +29,36 @@ function defaultSuccessText(response) { const apiReq = { post: async function(url, data, getErrorText = defaultErrorText, getSuccessText) { - const response = await axios.post(url, data).catch(function(error) { handleError(error, getErrorText) }); - return handleResponse(response, getSuccessText); - }, - - put: async function(url, data, getErrorText = defaultErrorText, getSuccessText) { - const response = await axios.put(url, data).catch(function(error) { handleError(error, getErrorText) }); + const response = await axios.post(url, data).catch(function(error) { + handleError(error, getErrorText); + }); return handleResponse(response, getSuccessText); }, - + + put: async function(url, data, getErrorText = defaultErrorText, getSuccessText) { + const response = await axios.put(url, data).catch(function(error) { + handleError(error, getErrorText); + }); + return handleResponse(response, getSuccessText); + }, + patch: async function(url, data, getErrorText = defaultErrorText, getSuccessText) { - const response = await axios.patch(url, data).catch(function(error) { handleError(error, getErrorText) }); + const response = await axios.patch(url, data).catch(function(error) { + handleError(error, getErrorText); + }); return handleResponse(response, getSuccessText); }, get: function(url, data, getErrorText = defaultErrorText) { - return axios.get(url, data).catch(function(error) { handleError(error, getErrorText) }); + return axios.get(url, data).catch(function(error) { + handleError(error, getErrorText); + }); }, - delete: async function(url, data, getErrorText = defaultErrorText, getSuccessText = defaultSuccessText ) { - const response = await axios.delete(url, data).catch( function(error) { handleError(error, getErrorText) } ); + delete: async function(url, data, getErrorText = defaultErrorText, getSuccessText = defaultSuccessText) { + const response = await axios.delete(url, data).catch(function(error) { + handleError(error, getErrorText); + }); return handleResponse(response, getSuccessText); }, diff --git a/frontend/src/api/backup.js b/frontend/src/api/backup.js index d95dd6d27..f729eefc1 100644 --- a/frontend/src/api/backup.js +++ b/frontend/src/api/backup.js @@ -1,7 +1,7 @@ import { baseURL } from "./api-utils"; import { apiReq } from "./api-utils"; import { store } from "@/store"; -import i18n from '@/i18n.js'; +import i18n from "@/i18n.js"; const backupBase = baseURL + "backups/"; @@ -14,8 +14,6 @@ export const backupURLs = { downloadBackup: fileName => `${backupBase}${fileName}/download`, }; - - export const backupAPI = { /** * Request all backups available on the server @@ -44,8 +42,8 @@ export const backupAPI = { return apiReq.delete( backupURLs.deleteBackup(fileName), null, - function() { return i18n.t('settings.backup.unable-to-delete-backup'); }, - function() { return i18n.t('settings.backup.backup-deleted'); } + () => i18n.t("settings.backup.unable-to-delete-backup"), + () => i18n.t("settings.backup.backup-deleted") ); }, /** @@ -55,10 +53,12 @@ export const backupAPI = { */ async create(options) { return apiReq.post( - backupURLs.createBackup, + backupURLs.createBackup, options, - function() { return i18n.t('settings.backup.error-creating-backup-see-log-file'); }, - function(response) { return i18n.t('settings.backup.backup-created-at-response-export_path', {path: response.data.export_path}); } + () => i18n.t("settings.backup.error-creating-backup-see-log-file"), + response => { + return i18n.t("settings.backup.backup-created-at-response-export_path", { path: response.data.export_path }); + } ); }, /** diff --git a/frontend/src/api/category.js b/frontend/src/api/category.js index ed0e37524..f457b27ae 100644 --- a/frontend/src/api/category.js +++ b/frontend/src/api/category.js @@ -1,7 +1,7 @@ import { baseURL } from "./api-utils"; import { apiReq } from "./api-utils"; import { store } from "@/store"; -import i18n from '@/i18n.js'; +import i18n from "@/i18n.js"; const prefix = baseURL + "categories"; @@ -24,12 +24,12 @@ export const categoryAPI = { }, async create(name) { const response = await apiReq.post( - categoryURLs.getAll, + categoryURLs.getAll, { name: name }, - function() { return i18n.t('category.category-creation-failed'); }, - function() { return i18n.t('category.category-created'); } + () => i18n.t("category.category-creation-failed"), + () => i18n.t("category.category-created") ); - if(response) { + if (response) { store.dispatch("requestCategories"); return response.data; } @@ -40,10 +40,10 @@ export const categoryAPI = { }, async update(name, newName, overrideRequest = false) { const response = await apiReq.put( - categoryURLs.updateCategory(name), + categoryURLs.updateCategory(name), { name: newName }, - function() { return i18n.t('category.category-update-failed'); }, - function() { return i18n.t('category.category-updated'); } + () => i18n.t("category.category-update-failed"), + () => i18n.t("category.category-updated") ); if (response && !overrideRequest) { store.dispatch("requestCategories"); @@ -54,8 +54,8 @@ export const categoryAPI = { const response = await apiReq.delete( categoryURLs.deleteCategory(category), null, - function() { return i18n.t('category.category-deletion-failed'); }, - function() { return i18n.t('category.category-deleted'); } + () => i18n.t("category.category-deletion-failed"), + () => i18n.t("category.category-deleted") ); if (response && !overrideRequest) { store.dispatch("requestCategories"); @@ -85,12 +85,12 @@ export const tagAPI = { }, async create(name) { const response = await apiReq.post( - tagURLs.getAll, + tagURLs.getAll, { name: name }, - function() { return i18n.t('tag.tag-creation-failed'); }, - function() { return i18n.t('tag.tag-created'); } + () => i18n.t("tag.tag-creation-failed"), + () => i18n.t("tag.tag-created") ); - if(response) { + if (response) { store.dispatch("requestTags"); return response.data; } @@ -101,13 +101,13 @@ export const tagAPI = { }, async update(name, newName, overrideRequest = false) { const response = await apiReq.put( - tagURLs.updateTag(name), + tagURLs.updateTag(name), { name: newName }, - function() { return i18n.t('tag.tag-update-failed'); }, - function() { return i18n.t('tag.tag-updated'); } + () => i18n.t("tag.tag-update-failed"), + () => i18n.t("tag.tag-updated") ); - if(response) { + if (response) { if (!overrideRequest) { store.dispatch("requestTags"); } @@ -118,10 +118,10 @@ export const tagAPI = { const response = await apiReq.delete( tagURLs.deleteTag(tag), null, - function() { return i18n.t('tag.tag-deletion-failed'); }, - function() { return i18n.t('tag.tag-deleted'); } + () => i18n.t("tag.tag-deletion-failed"), + () => i18n.t("tag.tag-deleted") ); - if(response) { + if (response) { if (!overrideRequest) { store.dispatch("requestTags"); } diff --git a/frontend/src/api/groups.js b/frontend/src/api/groups.js index 011c3d104..0ee1f1778 100644 --- a/frontend/src/api/groups.js +++ b/frontend/src/api/groups.js @@ -1,6 +1,6 @@ import { baseURL } from "./api-utils"; import { apiReq } from "./api-utils"; -import i18n from '@/i18n.js'; +import i18n from "@/i18n.js"; const groupPrefix = baseURL + "groups"; const groupsURLs = { @@ -12,18 +12,18 @@ const groupsURLs = { }; function deleteErrorText(response) { - switch(response.data.detail) { - case 'GROUP_WITH_USERS': - return i18n.t('group.cannot-delete-group-with-users'); - - case 'GROUP_NOT_FOUND': - return i18n.t('group.group-not-found'); - - case 'DEFAULT_GROUP': - return i18n.t('group.cannot-delete-default-group'); + switch (response.data.detail) { + case "GROUP_WITH_USERS": + return i18n.t("group.cannot-delete-group-with-users"); + + case "GROUP_NOT_FOUND": + return i18n.t("group.group-not-found"); + + case "DEFAULT_GROUP": + return i18n.t("group.cannot-delete-default-group"); default: - return i18n.t('group.group-deletion-failed'); + return i18n.t("group.group-deletion-failed"); } } @@ -36,33 +36,27 @@ export const groupAPI = { return apiReq.post( groupsURLs.create, { name: name }, - function() { return i18n.t('group.user-group-creation-failed'); }, - function() { return i18n.t('group.user-group-created'); } + () => i18n.t("group.user-group-creation-failed"), + () => i18n.t("group.user-group-created") ); }, delete(id) { - return apiReq.delete( - groupsURLs.delete(id), - null, - deleteErrorText, - function() { return i18n.t('group.group-deleted'); } - ); + return apiReq.delete(groupsURLs.delete(id), null, deleteErrorText, function() { + return i18n.t("group.group-deleted"); + }); }, async current() { - const response = await apiReq.get( - groupsURLs.current, - null, - null); - if(response) { + const response = await apiReq.get(groupsURLs.current, null, null); + if (response) { return response.data; } }, update(data) { return apiReq.put( - groupsURLs.update(data.id), - data, - function() { return i18n.t('group.error-updating-group'); }, - function() { return i18n.t('settings.group-settings-updated'); } + groupsURLs.update(data.id), + data, + () => i18n.t("group.error-updating-group"), + () => i18n.t("settings.group-settings-updated") ); }, }; diff --git a/frontend/src/api/mealplan.js b/frontend/src/api/mealplan.js index ff51da61e..4d396a1cf 100644 --- a/frontend/src/api/mealplan.js +++ b/frontend/src/api/mealplan.js @@ -1,6 +1,6 @@ import { baseURL } from "./api-utils"; import { apiReq } from "./api-utils"; -import i18n from '@/i18n.js'; +import i18n from "@/i18n.js"; const prefix = baseURL + "meal-plans/"; @@ -18,10 +18,10 @@ const mealPlanURLs = { export const mealplanAPI = { create(postBody) { return apiReq.post( - mealPlanURLs.create, + mealPlanURLs.create, postBody, - function() { return i18n.t('meal-plan.mealplan-creation-failed')}, - function() { return i18n.t('meal-plan.mealplan-created'); } + () => i18n.t("meal-plan.mealplan-creation-failed"), + () => i18n.t("meal-plan.mealplan-created") ); }, @@ -41,19 +41,20 @@ export const mealplanAPI = { }, delete(id) { - return apiReq.delete(mealPlanURLs.delete(id), + return apiReq.delete( + mealPlanURLs.delete(id), null, - function() { return i18n.t('meal-plan.mealplan-deletion-failed'); }, - function() { return i18n.t('meal-plan.mealplan-deleted'); } + () => i18n.t("meal-plan.mealplan-deletion-failed"), + () => i18n.t("meal-plan.mealplan-deleted") ); }, update(id, body) { return apiReq.put( - mealPlanURLs.update(id), + mealPlanURLs.update(id), body, - function() { return i18n.t('meal-plan.mealplan-update-failed'); }, - function() { return i18n.t('meal-plan.mealplan-updated'); } + () => i18n.t("meal-plan.mealplan-update-failed"), + () => i18n.t("meal-plan.mealplan-updated") ); }, diff --git a/frontend/src/api/migration.js b/frontend/src/api/migration.js index 5d967c56c..321ab0ac1 100644 --- a/frontend/src/api/migration.js +++ b/frontend/src/api/migration.js @@ -1,7 +1,7 @@ import { baseURL } from "./api-utils"; import { apiReq } from "./api-utils"; import { store } from "../store"; -import i18n from '@/i18n.js'; +import i18n from "@/i18n.js"; const migrationBase = baseURL + "migrations"; @@ -21,8 +21,8 @@ export const migrationAPI = { const response = await apiReq.delete( migrationURLs.delete(folder, file), null, - function() { return i18n.t('general.file-folder-not-found'); }, - function() { return i18n.t('migration.migration-data-removed'); } + () => i18n.t("general.file-folder-not-found"), + () => i18n.t("migration.migration-data-removed") ); return response; }, diff --git a/frontend/src/api/recipe.js b/frontend/src/api/recipe.js index 4296fcbe9..fe755f6f7 100644 --- a/frontend/src/api/recipe.js +++ b/frontend/src/api/recipe.js @@ -38,10 +38,7 @@ export const recipeAPI = { }, async getAllByCategory(categories) { - let response = await apiReq.post( - recipeURLs.allRecipesByCategory, - categories - ); + let response = await apiReq.post(recipeURLs.allRecipesByCategory, categories); return response.data; }, @@ -69,9 +66,7 @@ export const recipeAPI = { let successMessage = null; if (!overrideSuccessMsg) { successMessage = function() { - return overrideSuccessMsg - ? null - : i18n.t("recipe.recipe-image-updated"); + return overrideSuccessMsg ? null : i18n.t("recipe.recipe-image-updated"); }; } diff --git a/frontend/src/api/signUps.js b/frontend/src/api/signUps.js index 8500a0cb9..e38428447 100644 --- a/frontend/src/api/signUps.js +++ b/frontend/src/api/signUps.js @@ -1,6 +1,6 @@ import { baseURL } from "./api-utils"; import { apiReq } from "./api-utils"; -import i18n from '@/i18n.js'; +import i18n from "@/i18n.js"; const signUpPrefix = baseURL + "users/sign-ups"; @@ -18,24 +18,27 @@ export const signupAPI = { }, async createToken(data) { let response = await apiReq.post( - signUpURLs.createToken, + signUpURLs.createToken, data, - function() { return i18n.t('signup.sign-up-link-creation-failed'); }, - function() { return i18n.t('signup.sign-up-link-created'); } + () => i18n.t("signup.sign-up-link-creation-failed"), + () => i18n.t("signup.sign-up-link-created") ); return response.data; }, async deleteToken(token) { - return await apiReq.delete(signUpURLs.deleteToken(token), - null, - function() { return i18n.t('signup.sign-up-token-deletion-failed'); }, - function() { return i18n.t('signup.sign-up-token-deleted'); } + return await apiReq.delete( + signUpURLs.deleteToken(token), + null, + () => i18n.t("signup.sign-up-token-deletion-failed"), + () => i18n.t("signup.sign-up-token-deleted") ); }, async createUser(token, data) { - return apiReq.post(signUpURLs.createUser(token), data, - function() { return i18n.t('user.you-are-not-allowed-to-create-a-user'); }, - function() { return i18n.t('user.user-created'); } + return apiReq.post( + signUpURLs.createUser(token), + data, + () => i18n.t("user.you-are-not-allowed-to-create-a-user"), + () => i18n.t("user.user-created") ); }, }; diff --git a/frontend/src/api/siteSettings.js b/frontend/src/api/siteSettings.js index f5c234af7..504ec339b 100644 --- a/frontend/src/api/siteSettings.js +++ b/frontend/src/api/siteSettings.js @@ -1,7 +1,7 @@ import { baseURL } from "./api-utils"; import { apiReq } from "./api-utils"; import { store } from "@/store"; -import i18n from '@/i18n.js'; +import i18n from "@/i18n.js"; const settingsBase = baseURL + "site-settings"; @@ -21,12 +21,12 @@ export const siteSettingsAPI = { async update(body) { const response = await apiReq.put( - settingsURLs.updateSiteSettings, + settingsURLs.updateSiteSettings, body, - function() { return i18n.t('settings.settings-update-failed'); }, - function() { return i18n.t('settings.settings-updated'); } + () => i18n.t("settings.settings-update-failed"), + () => i18n.t("settings.settings-updated") ); - if(response) { + if (response) { store.dispatch("requestSiteSettings"); } return response; @@ -44,10 +44,10 @@ export const siteSettingsAPI = { createPage(body) { return apiReq.post( - settingsURLs.customPages, + settingsURLs.customPages, body, - function() { return i18n.t('page.page-creation-failed'); }, - function() { return i18n.t('page.new-page-created'); } + () => i18n.t("page.page-creation-failed"), + () => i18n.t("page.new-page-created") ); }, @@ -55,25 +55,26 @@ export const siteSettingsAPI = { return await apiReq.delete( settingsURLs.customPage(id), null, - function() { return i18n.t('page.page-deletion-failed'); }, - function() { return i18n.t('page.page-deleted'); }); + () => i18n.t("page.page-deletion-failed"), + () => i18n.t("page.page-deleted") + ); }, updatePage(body) { return apiReq.put( settingsURLs.customPage(body.id), body, - function() { return i18n.t('page.page-update-failed'); }, - function() { return i18n.t('page.page-updated'); } + () => i18n.t("page.page-update-failed"), + () => i18n.t("page.page-updated") ); }, async updateAllPages(allPages) { let response = await apiReq.put( - settingsURLs.customPages, + settingsURLs.customPages, allPages, - function() { return i18n.t('page.pages-update-failed'); }, - function() { return i18n.t('page.pages-updated'); } + () => i18n.t("page.pages-update-failed"), + () => i18n.t("page.pages-updated") ); return response; }, diff --git a/frontend/src/api/themes.js b/frontend/src/api/themes.js index 321091754..cfd433594 100644 --- a/frontend/src/api/themes.js +++ b/frontend/src/api/themes.js @@ -1,6 +1,6 @@ import { baseURL } from "./api-utils"; import { apiReq } from "./api-utils"; -import i18n from '@/i18n.js'; +import i18n from "@/i18n.js"; const prefix = baseURL + "themes"; @@ -25,10 +25,11 @@ export const themeAPI = { async create(postBody) { return await apiReq.post( - settingsURLs.createTheme, + settingsURLs.createTheme, postBody, - function() { return i18n.t('settings.theme.error-creating-theme-see-log-file'); }, - function() { return i18n.t('settings.theme.theme-saved'); }); + () => i18n.t("settings.theme.error-creating-theme-see-log-file"), + () => i18n.t("settings.theme.theme-saved") + ); }, update(themeName, colors) { @@ -37,18 +38,19 @@ export const themeAPI = { colors: colors, }; return apiReq.put( - settingsURLs.updateTheme(themeName), + settingsURLs.updateTheme(themeName), body, - function() { return i18n.t('settings.theme.error-updating-theme'); }, - function() { return i18n.t('settings.theme.theme-updated'); }); + () => i18n.t("settings.theme.error-updating-theme"), + () => i18n.t("settings.theme.theme-updated") + ); }, delete(themeName) { return apiReq.delete( settingsURLs.deleteTheme(themeName), null, - function() { return i18n.t('settings.theme.error-deleting-theme'); }, - function() { return i18n.t('settings.theme.theme-deleted'); } + () => i18n.t("settings.theme.error-deleting-theme"), + () => i18n.t("settings.theme.theme-deleted") ); }, }; diff --git a/frontend/src/api/upload.js b/frontend/src/api/upload.js index 14ac790f8..3bd9a02be 100644 --- a/frontend/src/api/upload.js +++ b/frontend/src/api/upload.js @@ -1,5 +1,5 @@ import { apiReq } from "./api-utils"; -import i18n from '@/i18n.js'; +import i18n from "@/i18n.js"; export const utilsAPI = { // import { api } from "@/api"; @@ -9,8 +9,8 @@ export const utilsAPI = { return apiReq.post( url, fileObject, - function() { return i18n.t('general.failure-uploading-file'); }, - function() { return i18n.t('general.file-uploaded'); } + () => i18n.t("general.failure-uploading-file"), + () => i18n.t("general.file-uploaded") ); }, }; diff --git a/frontend/src/api/users.js b/frontend/src/api/users.js index 7d66798ee..11609ff29 100644 --- a/frontend/src/api/users.js +++ b/frontend/src/api/users.js @@ -1,7 +1,7 @@ import { baseURL } from "./api-utils"; import { apiReq } from "./api-utils"; import axios from "axios"; -import i18n from '@/i18n.js'; +import i18n from "@/i18n.js"; const authPrefix = baseURL + "auth"; const userPrefix = baseURL + "users"; @@ -19,22 +19,19 @@ const usersURLs = { }; function deleteErrorText(response) { - switch(response.data.detail) { - case 'SUPER_USER': - return i18n.t('user.error-cannot-delete-super-user'); + switch (response.data.detail) { + case "SUPER_USER": + return i18n.t("user.error-cannot-delete-super-user"); default: - return i18n.t('user.you-are-not-allowed-to-delete-this-user'); + return i18n.t("user.you-are-not-allowed-to-delete-this-user"); } } export const userAPI = { async login(formData) { - let response = await apiReq.post( - authURLs.token, - formData, - null, - function() { return i18n.t('user.user-successfully-logged-in'); } - ); + let response = await apiReq.post(authURLs.token, formData, null, function() { + return i18n.t("user.user-successfully-logged-in"); + }); return response; }, async refresh() { @@ -49,10 +46,10 @@ export const userAPI = { }, create(user) { return apiReq.post( - usersURLs.users, + usersURLs.users, user, - function() { return i18n.t('user.user-creation-failed'); }, - function() { return i18n.t('user.user-created'); } + () => i18n.t("user.user-creation-failed"), + () => i18n.t("user.user-created") ); }, async self() { @@ -65,35 +62,32 @@ export const userAPI = { }, update(user) { return apiReq.put( - usersURLs.userID(user.id), + usersURLs.userID(user.id), user, - function() { return i18n.t('user.user-update-failed'); }, - function() { return i18n.t('user.user-updated'); } + () => i18n.t("user.user-update-failed"), + () => i18n.t("user.user-updated") ); }, changePassword(id, password) { return apiReq.put( - usersURLs.password(id), + usersURLs.password(id), password, - function() { return i18n.t('user.existing-password-does-not-match'); }, - function() { return i18n.t('user.password-updated'); } - ); - }, - - delete(id) { - return apiReq.delete( - usersURLs.userID(id), - null, - deleteErrorText, - function() { return i18n.t('user.user-deleted'); } + () => i18n.t("user.existing-password-does-not-match"), + () => i18n.t("user.password-updated") ); }, + + delete(id) { + return apiReq.delete(usersURLs.userID(id), null, deleteErrorText, function() { + return i18n.t("user.user-deleted"); + }); + }, resetPassword(id) { return apiReq.put( usersURLs.resetPassword(id), null, - function() { return i18n.t('user.password-reset-failed'); }, - function() { return i18n.t('user.password-has-been-reset-to-the-default-password'); } + () => i18n.t("user.password-reset-failed"), + () => i18n.t("user.password-has-been-reset-to-the-default-password") ); }, }; diff --git a/frontend/src/components/FormHelpers/CategoryTagSelector.vue b/frontend/src/components/FormHelpers/CategoryTagSelector.vue index 526699086..4a95208b5 100644 --- a/frontend/src/components/FormHelpers/CategoryTagSelector.vue +++ b/frontend/src/components/FormHelpers/CategoryTagSelector.vue @@ -31,11 +31,7 @@ @@ -90,7 +86,7 @@ export default { computed: { inputLabel() { if (!this.showLabel) return null; - return this.tagSelector ? this.$t('tag.tags') : this.$t('recipe.categories'); + return this.tagSelector ? this.$t("tag.tags") : this.$t("recipe.categories"); }, activeItems() { let ItemObjects = []; @@ -125,5 +121,4 @@ export default { }; - \ No newline at end of file + diff --git a/frontend/src/components/FormHelpers/ColorPickerDialog.vue b/frontend/src/components/FormHelpers/ColorPickerDialog.vue index 1ad072e81..3c0fc13be 100644 --- a/frontend/src/components/FormHelpers/ColorPickerDialog.vue +++ b/frontend/src/components/FormHelpers/ColorPickerDialog.vue @@ -3,21 +3,9 @@

{{ buttonText }}

- +
- +