diff --git a/package-lock.json b/package-lock.json index 25f3287..614ef1c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1753,63 +1753,6 @@ "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=", "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" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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" - } - }, "ssri": { "version": "8.0.1", "resolved": "https://registry.nlark.com/ssri/download/ssri-8.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fssri%2Fdownload%2Fssri-8.0.1.tgz", @@ -1818,28 +1761,6 @@ "requires": { "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" - } - }, - "vue-loader-v16": { - "version": "npm:vue-loader@16.7.1", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.7.1.tgz", - "integrity": "sha512-6dOj/8DQ3lcfLwsFT9X5N1qvaMSqi8zsYTD0hE4iNp7G/mgZ39cgzvwCP3rxDwQD2adl65UmoRxnqBTHrK4u6A==", - "dev": true, - "optional": true, - "requires": { - "chalk": "^4.1.0", - "hash-sum": "^2.0.0", - "loader-utils": "^2.0.0" - } } } }, @@ -3220,6 +3141,11 @@ } } }, + "classnames": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", + "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" + }, "clean-css": { "version": "4.2.3", "resolved": "https://registry.nlark.com/clean-css/download/clean-css-4.2.3.tgz", @@ -4152,6 +4078,11 @@ "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", "dev": true }, + "debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" + }, "debug": { "version": "4.3.2", "resolved": "https://registry.nlark.com/debug/download/debug-4.3.2.tgz", @@ -4621,6 +4552,11 @@ "stream-shift": "^1.0.0" } }, + "easy-bem": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/easy-bem/-/easy-bem-1.1.1.tgz", + "integrity": "sha512-GJRqdiy2h+EXy6a8E6R+ubmqUM08BK0FWNq41k24fup6045biQ8NXxoXimiwegMQvFFV3t1emADdGNL1TlS61A==" + }, "easy-stack": { "version": "1.0.1", "resolved": "https://registry.npm.taobao.org/easy-stack/download/easy-stack-1.0.1.tgz?cache=0&sync_timestamp=1605129437999&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feasy-stack%2Fdownload%2Feasy-stack-1.0.1.tgz", @@ -11337,6 +11273,16 @@ "resolved": "https://registry.nlark.com/vue/download/vue-2.6.14.tgz?cache=0&sync_timestamp=1631142059062&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue%2Fdownload%2Fvue-2.6.14.tgz", "integrity": "sha1-5RqlJQJQ1Wmj+606ilpofWA24jU=" }, + "vue-advanced-cropper": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/vue-advanced-cropper/-/vue-advanced-cropper-1.8.2.tgz", + "integrity": "sha512-dngjbph+QbqLpk4DWCoCajWcThyy08NorFhMcmrnGFJvdxTFiuJ+XjOtrXhNpDdl7U6E/csrkx6i6E8V+BwmoQ==", + "requires": { + "classnames": "^2.2.6", + "debounce": "^1.2.0", + "easy-bem": "^1.0.2" + } + }, "vue-cli-plugin-vuetify": { "version": "2.4.2", "resolved": "https://registry.nlark.com/vue-cli-plugin-vuetify/download/vue-cli-plugin-vuetify-2.4.2.tgz?cache=0&sync_timestamp=1628044997952&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-cli-plugin-vuetify%2Fdownload%2Fvue-cli-plugin-vuetify-2.4.2.tgz", @@ -11428,6 +11374,87 @@ } } }, + "vue-loader-v16": { + "version": "npm:vue-loader@16.8.1", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.1.tgz", + "integrity": "sha512-V53TJbHmzjBhCG5OYI2JWy/aYDspz4oVHKxS43Iy212GjGIG1T3EsB3+GWXFm/1z5VwjdjLmdZUFYM70y77vtQ==", + "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.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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-meta": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/vue-meta/-/vue-meta-2.4.0.tgz", diff --git a/package.json b/package.json index 88efe05..20fa818 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "module-alias": "^2.2.2", "popper.js": "^1.16.1", "vue": "^2.6.11", + "vue-advanced-cropper": "^1.8.2", "vue-meta": "^2.4.0", "vue-router": "^3.5.2", "vuetify": "^2.4.0", diff --git a/src/abstraction/repository/FileRepository.js b/src/abstraction/repository/FileRepository.js new file mode 100644 index 0000000..8e8f912 --- /dev/null +++ b/src/abstraction/repository/FileRepository.js @@ -0,0 +1,38 @@ +// import axios from "axios"; +// import url from "@/router/url"; +// import { getJson, setData } from "../resources/FileResource"; + +// export default class FileRepository { + +// async store(data) { +// console.log('data', data); +// const formData = setData(data); +// let response = await axios.post(url("storeFile"), formData); +// if (response.status === 200) { +// return getJson(response.data.data); +// } + // } + + // async destroy(fileId) { + // let response = await axios.delete(url("destroyFile", {file: fileId})); + // if (response.status === 200) { + // return true; + // } + // } + + // async verifyImage(fileId) { + // await axios.post(url("verifyImage",{file:fileId}) ); + // } + + // async unverifyImage(fileId) { + // await axios.post(url("unverifyImage", {file: fileId})); + // } + + // async pdfVerify(imageId) { + // await axios.post(url("pdfVerify",{media:imageId}) ); + // } + + // async pdfUnVerify(imageId) { + // await axios.post(url("pdfUnVerify",{media:imageId}) ); + // } +// } diff --git a/src/abstraction/repository/authRepository.js b/src/abstraction/repository/authRepository.js index b0f728e..471d628 100644 --- a/src/abstraction/repository/authRepository.js +++ b/src/abstraction/repository/authRepository.js @@ -22,7 +22,7 @@ export default class AuthRepository { let json = setData(data); let response = await axios.post(url("register"), json); if (response.status === 200) { - return response.data.data; + return response.data.user; } } diff --git a/src/abstraction/repository/sportCategoriesRepository.js b/src/abstraction/repository/sportCategoriesRepository.js new file mode 100644 index 0000000..cb7013e --- /dev/null +++ b/src/abstraction/repository/sportCategoriesRepository.js @@ -0,0 +1,11 @@ +import axios from "axios"; +import url from "@/router/url"; +import { getArray } from "../resources/sportCategoriesResource"; +export default class SportCategoriesRepository { + async index() { + let response = await axios.get(url("indexSportCategories")); + if (response.status === 200) { + return getArray(response.data); + } + } +} diff --git a/src/abstraction/repository/workoutCategoriesRepository.js b/src/abstraction/repository/workoutCategoriesRepository.js new file mode 100644 index 0000000..54b162f --- /dev/null +++ b/src/abstraction/repository/workoutCategoriesRepository.js @@ -0,0 +1,13 @@ +import axios from "axios"; +import url from "@/router/url"; +import { getArray, setQuery } from "../resources/workoutCategoriesResources"; +export default class WorkoutCategoriesRepository { + async index(data) { + let params = setQuery(data); + console.log(params); + let response = await axios.get(url("indexWorkoutCategories"), { params }); + if (response.status === 200) { + return getArray(response.data); + } + } +} diff --git a/src/abstraction/repository/workoutRepository.js b/src/abstraction/repository/workoutRepository.js new file mode 100644 index 0000000..7e08b88 --- /dev/null +++ b/src/abstraction/repository/workoutRepository.js @@ -0,0 +1,10 @@ +import axios from "axios"; +import url from "@/router/url"; +import { setData } from "../resources/workoutResource.js"; +export default class WorkoutRepository { + async store(data) { + let json = setData(data); + let response = await axios.post(url("storeWorkout"), json); + console.log('response', response); + } +} diff --git a/src/abstraction/resources/FileResource.js b/src/abstraction/resources/FileResource.js new file mode 100644 index 0000000..ed12c75 --- /dev/null +++ b/src/abstraction/resources/FileResource.js @@ -0,0 +1,16 @@ +// import { objectToFormData } from "@/utils/objectToFormData"; + +// export const getJson = (data) => ({ +// id: data.id, +// thumbnail: data.thumbnail, +// image: data.image, +// mime_type: data.mime_type, +// file_name: data.file_name, +// size: data.size, +// }); + +// export const setData = (data) => ( +// objectToFormData({ +// file: data.file, +// crop: data.crop, +// })); diff --git a/src/abstraction/resources/sportCategoriesResource.js b/src/abstraction/resources/sportCategoriesResource.js new file mode 100644 index 0000000..3d79bef --- /dev/null +++ b/src/abstraction/resources/sportCategoriesResource.js @@ -0,0 +1,12 @@ +export const getJson = (data) => ({ + id: data.id, + name: data.name, + local_name: data.local_name, + language_id: data.language_id, +}); + +export const getArray = ({ data }) => { + data = data.map((category) => getJson(category)); + return { data }; +}; + diff --git a/src/abstraction/resources/workoutCategoriesResources.js b/src/abstraction/resources/workoutCategoriesResources.js new file mode 100644 index 0000000..db8fc43 --- /dev/null +++ b/src/abstraction/resources/workoutCategoriesResources.js @@ -0,0 +1,16 @@ +import { SetQueriesObject } from "@/utils/setQueriesObject"; +export const getJson = (data) => ({ + id: data.id, + name: data.name, + local_name: data.local_name, + language_id: data.language_id, +}); + +export const getArray = ({ data }) => { + data = data.map((category) => getJson(category)); + return { data }; +}; + +export const setQuery = (data) => { + return SetQueriesObject(data); +}; diff --git a/src/abstraction/resources/workoutResource.js b/src/abstraction/resources/workoutResource.js new file mode 100644 index 0000000..cc87dfb --- /dev/null +++ b/src/abstraction/resources/workoutResource.js @@ -0,0 +1,19 @@ +import { objectToFormData } from "@/utils/objectToFormData"; +export const setData = (data, isUpdate = false) => { + let formData = { + workout_category_id: data.workout_category_id, + name: data.name, + local_name: data.local_name, + description: data.description, + video: data.video, + suggested_per_set: data.suggested_per_set, + suggested_set: data.suggested_set, + suggested_time: data.suggested_time, + thumbnail: data.thumbnail, + tags: data.tags, + }; + if (isUpdate) { + formData["_method"] = "put"; + } + return objectToFormData(formData); +}; \ No newline at end of file diff --git a/src/assets/600x600.png b/src/assets/600x600.png new file mode 100644 index 0000000..1509fa9 Binary files /dev/null and b/src/assets/600x600.png differ diff --git a/src/components/AddWorkout/Main.vue b/src/components/AddWorkout/Main.vue index dc45da9..8c2cf91 100644 --- a/src/components/AddWorkout/Main.vue +++ b/src/components/AddWorkout/Main.vue @@ -15,10 +15,10 @@
-
- -
select a workout image
-
+
@@ -26,16 +26,22 @@ @@ -43,25 +49,31 @@ @@ -73,44 +85,53 @@ @@ -128,6 +149,7 @@ /> @@ -139,18 +161,42 @@ diff --git a/src/router/url.js b/src/router/url.js index 8b36ddc..760cb91 100644 --- a/src/router/url.js +++ b/src/router/url.js @@ -5,7 +5,10 @@ const urls = { register: "auth/register", resetPassword: "auth/forget-password", logout: "auth/logout", - indexProgram: 'courses' + indexProgram: 'courses', + indexSportCategories: 'admin/sport-categories', + indexWorkoutCategories: 'admin/workout-categories', + storeWorkout: "admin/workouts" }; export default urlGenerator(urls); diff --git a/src/store/modules/auth/actions.js b/src/store/modules/auth/actions.js index c490f64..5cf565d 100644 --- a/src/store/modules/auth/actions.js +++ b/src/store/modules/auth/actions.js @@ -11,7 +11,6 @@ function setTokenHeader(commit, response) { export default { async login({ commit }, data) { - console.log(data); let repository = new AuthRepository(); const response = await repository.login(data); if (response) { @@ -29,7 +28,9 @@ export default { async register({ commit }, data) { let repository = new AuthRepository(); const response = await repository.register(data); - console.log(response); - setTokenHeader(commit, response); + if (response) { + setTokenHeader(commit, response); + return response; + } }, -}; +}; diff --git a/src/store/modules/sportCategories/actions.js b/src/store/modules/sportCategories/actions.js new file mode 100644 index 0000000..9f15f9f --- /dev/null +++ b/src/store/modules/sportCategories/actions.js @@ -0,0 +1,8 @@ +import SportCategoriesRepository from "@/abstraction/repository/sportCategoriesRepository"; +export default { + async loadSportCategories({ commit }) { + let repository = new SportCategoriesRepository(); + const resource = await repository.index(); + commit("SET_SPORT_CATEGORIES", resource.data); + } +}; diff --git a/src/store/modules/sportCategories/getters.js b/src/store/modules/sportCategories/getters.js new file mode 100644 index 0000000..9d59fa3 --- /dev/null +++ b/src/store/modules/sportCategories/getters.js @@ -0,0 +1,3 @@ +export default { + getSportCategories: state => state.sportCategories, +} \ No newline at end of file diff --git a/src/store/modules/sportCategories/mutations.js b/src/store/modules/sportCategories/mutations.js new file mode 100644 index 0000000..6d6489d --- /dev/null +++ b/src/store/modules/sportCategories/mutations.js @@ -0,0 +1,6 @@ +import Vue from "vue"; +export default { + SET_SPORT_CATEGORIES(state, data) { + Vue.set(state, "sportCategories", data); + }, +}; diff --git a/src/store/modules/sportCategories/state.js b/src/store/modules/sportCategories/state.js new file mode 100644 index 0000000..20f56dc --- /dev/null +++ b/src/store/modules/sportCategories/state.js @@ -0,0 +1,3 @@ +export default { + sportCategories: [] +}; diff --git a/src/store/modules/workoutCategories.js/actions.js b/src/store/modules/workoutCategories.js/actions.js new file mode 100644 index 0000000..ad774cb --- /dev/null +++ b/src/store/modules/workoutCategories.js/actions.js @@ -0,0 +1,9 @@ +import WorkoutCategoriesRepository from "@/abstraction/repository/workoutCategoriesRepository"; +export default { + async loadWorkoutCategories({ commit }) { + let data = { sorts: 'fasdfas' } + let repository = new WorkoutCategoriesRepository(); + const resource = await repository.index(data); + commit("SET_WORKOUT_CATEGORIES", resource.data); + } +}; diff --git a/src/store/modules/workoutCategories.js/getters.js b/src/store/modules/workoutCategories.js/getters.js new file mode 100644 index 0000000..c6fa8a2 --- /dev/null +++ b/src/store/modules/workoutCategories.js/getters.js @@ -0,0 +1,3 @@ +export default { + getWorkoutCategories: state => state.workoutCategories, +} \ No newline at end of file diff --git a/src/store/modules/workoutCategories.js/mutations.js b/src/store/modules/workoutCategories.js/mutations.js new file mode 100644 index 0000000..e23a571 --- /dev/null +++ b/src/store/modules/workoutCategories.js/mutations.js @@ -0,0 +1,6 @@ +import Vue from "vue"; +export default { + SET_WORKOUT_CATEGORIES(state, data) { + Vue.set(state, "workoutCategories", data); + }, +}; \ No newline at end of file diff --git a/src/store/modules/workoutCategories.js/state.js b/src/store/modules/workoutCategories.js/state.js new file mode 100644 index 0000000..6c56367 --- /dev/null +++ b/src/store/modules/workoutCategories.js/state.js @@ -0,0 +1,3 @@ +export default { + workoutCategories: [] +}; diff --git a/src/store/modules/workouts/actions.js b/src/store/modules/workouts/actions.js new file mode 100644 index 0000000..8edc0db --- /dev/null +++ b/src/store/modules/workouts/actions.js @@ -0,0 +1,9 @@ +import workoutRepository from "@/abstraction/repository/workoutRepository"; +export default { + async addWorkout({ commit }, data) { + console.log('data', data); + let repository = new workoutRepository(); + const resource = await repository.store(data); + commit("SET_WORKOUTS", resource.data); + } +}; diff --git a/src/store/modules/workouts/getters.js b/src/store/modules/workouts/getters.js new file mode 100644 index 0000000..e69de29 diff --git a/src/store/modules/workouts/mutations.js b/src/store/modules/workouts/mutations.js new file mode 100644 index 0000000..fc05ec3 --- /dev/null +++ b/src/store/modules/workouts/mutations.js @@ -0,0 +1,7 @@ +import Vue from "vue"; +export default { + SET_WORKOUTS(state, data) { + Vue.set(state, "workout", data); + }, +}; + \ No newline at end of file diff --git a/src/store/modules/workouts/state.js b/src/store/modules/workouts/state.js new file mode 100644 index 0000000..527d7ed --- /dev/null +++ b/src/store/modules/workouts/state.js @@ -0,0 +1,3 @@ +export default { + workouts: [] +}; diff --git a/src/styles/vuetify/_modify.scss b/src/styles/vuetify/_modify.scss index 1f03cd9..f84446c 100644 --- a/src/styles/vuetify/_modify.scss +++ b/src/styles/vuetify/_modify.scss @@ -172,7 +172,7 @@ textarea { } .v-text-field.no-error-msg.textarae .v-input__slot { - margin-bottom: 0px !important; + margin-bottom: 0px !important; } .v-textarea.no-error-msg .v-input__slot { @@ -187,6 +187,9 @@ textarea { color: var(--color-gray); text-transform: uppercase !important; } +.v-text-field input { + padding: 8px 0 2px !important; +} /* ----------------------------------- selects ---------------------------------------------- */ .custom-combobox { height: 55.99px; diff --git a/src/utils/axios/api.js b/src/utils/axios/api.js index 9e7606d..d565bf8 100644 --- a/src/utils/axios/api.js +++ b/src/utils/axios/api.js @@ -1,10 +1,11 @@ import axios from 'axios' -import {TokenStorage} from '../storage' +import { TokenStorage } from '../storage' const ApiService = { init(baseURL = null) { if (baseURL) { + axios.defaults.headers.common["accept-language"] = 'en'; axios.defaults.baseURL = baseURL; } else if (process.env.MIX_PUSHER_APP_API) { axios.defaults.baseURL = process.env.MIX_PUSHER_APP_API; @@ -17,8 +18,8 @@ const ApiService = { setAuthHeader() { axios.defaults.headers.common["Authorization"] = `Bearer ${TokenStorage.getToken()}`; - }, + }, removeAuthHeader() { axios.defaults.headers.common["Authorization"] = null; }, diff --git a/src/utils/math.js b/src/utils/math.js new file mode 100644 index 0000000..7cd245f --- /dev/null +++ b/src/utils/math.js @@ -0,0 +1,10 @@ +const makeid = function makeid(length) { + var text = ""; + var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + + for (var i = 0; i < length; i++) + text += possible.charAt(Math.floor(Math.random() * possible.length)); + + return text; +} +export { makeid }; \ No newline at end of file diff --git a/src/utils/storage.js b/src/utils/storage.js index 0614b98..f204d5d 100644 --- a/src/utils/storage.js +++ b/src/utils/storage.js @@ -37,7 +37,6 @@ const UserStorage = { save(user = null) { user = qs.stringify(user); localStorage.setItem(USER, user); - console.log('user saved'); }, remove() { diff --git a/src/views/Login.vue b/src/views/Login.vue index 8c5f4aa..c2cdeff 100644 --- a/src/views/Login.vue +++ b/src/views/Login.vue @@ -42,14 +42,13 @@ @@ -105,11 +104,10 @@ export default { methods: { ...mapActions("auth", ["login"]), async doLogin() { - console.log(this.form); - this.login(this.form); - // if (response) { - // this.$router.push(this.$route.query.redirect || "/"); - // } + let response = await this.login(this.form); + if (response) { + this.$router.push(this.$route.query.redirect || "/"); + } }, }, }; diff --git a/src/views/Register.vue b/src/views/Register.vue index ac0b75c..acc5c5e 100644 --- a/src/views/Register.vue +++ b/src/views/Register.vue @@ -70,14 +70,13 @@ @@ -130,6 +129,13 @@ export default { }), methods: { ...mapActions("auth", ["register"]), + async doRegister() { + let response = await this.register(this.form); + if (response) { + console.log("response", response); + this.$router.push("/"); + } + }, }, }; \ No newline at end of file