diff --git a/docs/docs/changelog.md b/docs/docs/changelog.md index 4d982d00dd7a..91cd537664f4 100644 --- a/docs/docs/changelog.md +++ b/docs/docs/changelog.md @@ -1,20 +1,5 @@ # Release Notes -## v0.3.0 - Draft! - -### Features and Improvements - - Open search with `/` hotkey! - - Unified and improved snackbar notifications - - Recipe Viewer - - Categories, Tags, and Notes will not be displayed below the steps on smaller screens - - Recipe Editor - - Text areas now auto grow to fit content - - Description, Steps, and Notes support Markdown! This includes inline html in Markdown. - -### Development / Misc - - Added async file response for images, downloading files. - - Breakup recipe view component - ## v0.2.0 - Now with Test! This is, what I think, is a big release! Tons of new features and some great quality of life improvements with some additional features. You may find that I made promises to include some fixes/features in v0.2.0. The short of is I greatly underestimated the work needed to refactor the database to a usable state and integrate categories in a way that is useful for users. This shouldn't be taken as a sign that I'm dropping those feature requests or ignoring them. I felt it was better to push a release in the current state rather than drag on development to try and fulfil all of the promises I made. diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 1f26196a03f2..c0eeb2608fc1 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1385,11 +1385,6 @@ "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", "dev": true }, - "@smartweb/vue-flash-message": { - "version": "0.6.10", - "resolved": "https://registry.npmjs.org/@smartweb/vue-flash-message/-/vue-flash-message-0.6.10.tgz", - "integrity": "sha512-ceDUUzXI6FDscev36kZQvc2BO+MayOt6uJ2HSh9zoOkfa0PVIhmaoB56InlTTsK7MmlSIvPJpRB+Habdx3MtNw==" - }, "@soda/friendly-errors-webpack-plugin": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.0.tgz", @@ -2016,6 +2011,16 @@ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "cacache": { "version": "13.0.1", "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", @@ -2042,6 +2047,53 @@ "unique-filename": "^1.1.1" } }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "optional": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -2058,6 +2110,16 @@ "minipass": "^3.1.1" } }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } + }, "terser-webpack-plugin": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.8.tgz", @@ -2074,6 +2136,18 @@ "terser": "^4.6.12", "webpack-sources": "^1.4.3" } + }, + "vue-loader-v16": { + "version": "npm:vue-loader@16.1.2", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.1.2.tgz", + "integrity": "sha512-8QTxh+Fd+HB6fiL52iEVLKqE9N1JSlMXLR92Ijm6g8PZrwIxckgpqjPDWRP5TWxdiPaHR+alUWsnu1ShQOwt+Q==", + "dev": true, + "optional": true, + "requires": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + } } } }, @@ -11861,87 +11935,6 @@ } } }, - "vue-loader-v16": { - "version": "npm:vue-loader@16.1.2", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.1.2.tgz", - "integrity": "sha512-8QTxh+Fd+HB6fiL52iEVLKqE9N1JSlMXLR92Ijm6g8PZrwIxckgpqjPDWRP5TWxdiPaHR+alUWsnu1ShQOwt+Q==", - "dev": true, - "optional": true, - "requires": { - "chalk": "^4.1.0", - "hash-sum": "^2.0.0", - "loader-utils": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "optional": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "optional": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "optional": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "optional": true - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "optional": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "vue-router": { "version": "3.4.9", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.4.9.tgz", diff --git a/frontend/package.json b/frontend/package.json index 35b4ca1734c9..94b82846c625 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -10,7 +10,6 @@ }, "dependencies": { "@adapttive/vue-markdown": "^3.0.3", - "@smartweb/vue-flash-message": "^0.6.10", "axios": "^0.21.1", "core-js": "^3.8.2", "fuse.js": "^6.4.6", diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 4509b55a5a4c..93103d324d81 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -1,22 +1,16 @@ @@ -61,13 +54,6 @@ export default { this.search = false; }, }, - created() { - window.addEventListener("keyup", e => { - if (e.key == "/") { - this.search = !this.search; - } - }); - }, mounted() { this.$store.dispatch("initTheme"); @@ -108,34 +94,5 @@ export default { diff --git a/frontend/src/api.js b/frontend/src/api.js index 3c6c04c0c833..eafe13005c22 100644 --- a/frontend/src/api.js +++ b/frontend/src/api.js @@ -8,7 +8,7 @@ import myUtils from "./api/upload"; import category from "./api/category"; import meta from "./api/meta"; -// import api from "@/api"; +// import api from "../api"; export default { recipes: recipe, diff --git a/frontend/src/api/api-utils.js b/frontend/src/api/api-utils.js index c1ef8f9a8bc5..d52a4c7e5409 100644 --- a/frontend/src/api/api-utils.js +++ b/frontend/src/api/api-utils.js @@ -1,20 +1,23 @@ const baseURL = "/api/"; import axios from "axios"; -import utils from "@/utils"; +import store from "../store/store"; +// look for data.snackbar in response function processResponse(response) { try { - utils.notify.show(response.data.snackbar.text, response.data.snackbar.type); + store.commit("setSnackBar", { + text: response.data.snackbar.text, + type: response.data.snackbar.type, + }); } catch (err) { return; } - return; } const apiReq = { - post: async function(url, data) { - let response = await axios.post(url, data).catch(function(error) { + post: async function (url, data) { + let response = await axios.post(url, data).catch(function (error) { if (error.response) { processResponse(error.response); return error.response; @@ -24,19 +27,8 @@ const apiReq = { return response; }, - put: async function(url, data) { - let response = await axios.put(url, data).catch(function(error) { - if (error.response) { - processResponse(error.response); - return response; - } else return; - }); - processResponse(response); - return response; - }, - - get: async function(url, data) { - let response = await axios.get(url, data).catch(function(error) { + put: async function (url, data) { + let response = await axios.put(url, data).catch(function (error) { if (error.response) { processResponse(error.response); return response; @@ -46,8 +38,19 @@ const apiReq = { return response; }, - delete: async function(url, data) { - let response = await axios.delete(url, data).catch(function(error) { + get: async function (url, data) { + let response = await axios.get(url, data).catch(function (error) { + if (error.response) { + processResponse(error.response); + return response; + } else return; + }); + // processResponse(response); + return response; + }, + + delete: async function (url, data) { + let response = await axios.delete(url, data).catch(function (error) { if (error.response) { processResponse(error.response); return response; diff --git a/frontend/src/api/themes.js b/frontend/src/api/themes.js index 6ff7a85eebab..beeec4710702 100644 --- a/frontend/src/api/themes.js +++ b/frontend/src/api/themes.js @@ -5,10 +5,10 @@ const prefix = baseURL + "themes"; const settingsURLs = { allThemes: `${baseURL}themes`, - specificTheme: themeName => `${prefix}/${themeName}`, + specificTheme: (themeName) => `${prefix}/${themeName}`, createTheme: `${prefix}/create`, - updateTheme: themeName => `${prefix}/${themeName}`, - deleteTheme: themeName => `${prefix}/${themeName}`, + updateTheme: (themeName) => `${prefix}/${themeName}`, + deleteTheme: (themeName) => `${prefix}/${themeName}`, }; export default { @@ -33,7 +33,6 @@ export default { colors: colors, }; let response = await apiReq.put(settingsURLs.updateTheme(themeName), body); - console.log(response.data); return response.data; }, diff --git a/frontend/src/api/upload.js b/frontend/src/api/upload.js index 12a1c08c2e77..1c7655185e6b 100644 --- a/frontend/src/api/upload.js +++ b/frontend/src/api/upload.js @@ -1,7 +1,7 @@ import { apiReq } from "./api-utils"; export default { - // import api from "@/api"; + // import api from "../api"; async uploadFile(url, fileObject) { let response = await apiReq.post(url, fileObject, { headers: { diff --git a/frontend/src/components/MealPlan/MealPlanCard.vue b/frontend/src/components/MealPlan/MealPlanCard.vue index b5c176638176..2eb11a595892 100644 --- a/frontend/src/components/MealPlan/MealPlanCard.vue +++ b/frontend/src/components/MealPlan/MealPlanCard.vue @@ -26,7 +26,7 @@ + + \ No newline at end of file diff --git a/frontend/src/components/Recipe/RecipeViewer/Ingredients.vue b/frontend/src/components/Recipe/RecipeViewer/Ingredients.vue deleted file mode 100644 index 70a8c798ca0f..000000000000 --- a/frontend/src/components/Recipe/RecipeViewer/Ingredients.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - - - \ No newline at end of file diff --git a/frontend/src/components/Recipe/RecipeViewer/Notes.vue b/frontend/src/components/Recipe/RecipeViewer/Notes.vue deleted file mode 100644 index e25701d272ee..000000000000 --- a/frontend/src/components/Recipe/RecipeViewer/Notes.vue +++ /dev/null @@ -1,36 +0,0 @@ - - - - - \ No newline at end of file diff --git a/frontend/src/components/Recipe/RecipeViewer/RecipeChips.vue b/frontend/src/components/Recipe/RecipeViewer/RecipeChips.vue deleted file mode 100644 index cde5d99c34b1..000000000000 --- a/frontend/src/components/Recipe/RecipeViewer/RecipeChips.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - - - \ No newline at end of file diff --git a/frontend/src/components/Recipe/RecipeViewer/Steps.vue b/frontend/src/components/Recipe/RecipeViewer/Steps.vue deleted file mode 100644 index 4b674668e056..000000000000 --- a/frontend/src/components/Recipe/RecipeViewer/Steps.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - - - \ No newline at end of file diff --git a/frontend/src/components/Recipe/RecipeViewer/index.vue b/frontend/src/components/Recipe/RecipeViewer/index.vue deleted file mode 100644 index 845c63c959e8..000000000000 --- a/frontend/src/components/Recipe/RecipeViewer/index.vue +++ /dev/null @@ -1,130 +0,0 @@ - - - - - \ No newline at end of file diff --git a/frontend/src/components/Settings/Backup/AvailableBackupCard.vue b/frontend/src/components/Settings/Backup/AvailableBackupCard.vue index 7254e5808494..67b83aa51b82 100644 --- a/frontend/src/components/Settings/Backup/AvailableBackupCard.vue +++ b/frontend/src/components/Settings/Backup/AvailableBackupCard.vue @@ -38,8 +38,8 @@