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