diff --git a/src/abstraction/repository/userRepository.js b/src/abstraction/repository/userRepository.js index 283eed1..3d60935 100644 --- a/src/abstraction/repository/userRepository.js +++ b/src/abstraction/repository/userRepository.js @@ -1,6 +1,6 @@ import axios from "axios"; import url from "@/router/url"; -import { getArray, setQuery } from "../resources/userResource"; +import { getArray, setQuery, getJson } from "../resources/userResource"; import { getArray as getArrayTrainee } from "../resources/traineeResource"; export default class UserRepository { @@ -18,6 +18,12 @@ export default class UserRepository { return getArrayTrainee(response.data) } } + async show(userId) { + let response = await axios.get(url("showUser", { user: userId })); + if (response.status === 200) { + return getJson(response.data.data); + } + } async delete(userId) { await axios.delete(url("destroyUser", { user: userId })); } diff --git a/src/abstraction/resources/profileResource.js b/src/abstraction/resources/profileResource.js index b667161..0cea76c 100644 --- a/src/abstraction/resources/profileResource.js +++ b/src/abstraction/resources/profileResource.js @@ -1,4 +1,5 @@ import { objectToFormData } from "@/utils/objectToFormData"; +import { getJson as getJsonCountry } from "./countryResource"; export const getJson = (data) => ({ id: data.id, first_name: data.first_name, @@ -13,9 +14,7 @@ export const getJson = (data) => ({ address: data.address, email: data.email, cell_number: data.cell_number, - is_admin: data.is_admin, - is_trainer: data.is_trainer, - country: data?.country, + country: data.country ? getJsonCountry(data?.country) : {}, country_id: data.country?.id, created_courses_count: data.created_courses_count, joined_courses_count: data.joined_courses_count, diff --git a/src/abstraction/resources/trainerProgramResource.js b/src/abstraction/resources/trainerProgramResource.js index 15541fe..de3bf0c 100644 --- a/src/abstraction/resources/trainerProgramResource.js +++ b/src/abstraction/resources/trainerProgramResource.js @@ -1,5 +1,6 @@ export const getJsonTrainer = (data) => ({ id: data.id, + name: data.name, first_name: data.first_name, last_name: data.last_name, birthday: data.birthday, @@ -12,6 +13,4 @@ export const getJsonTrainer = (data) => ({ address: data.address, email: data.email, cell_number: data.cell_number, - is_admin: data.is_admin, - is_trainer: data.is_trainer, }); \ No newline at end of file diff --git a/src/abstraction/resources/userResource.js b/src/abstraction/resources/userResource.js index 6477e21..d96e8c7 100644 --- a/src/abstraction/resources/userResource.js +++ b/src/abstraction/resources/userResource.js @@ -1,4 +1,5 @@ import { SetPagination, SetQueriesObject } from "@/utils/setQueriesObject"; +import { getJson as getJsonCountry } from "./countryResource"; export const getJson = (data) => { let role_id = null; data.roles.map(x => role_id = x.id); @@ -23,8 +24,12 @@ export const getJson = (data) => { role: role, roles: data.roles, role_id: role_id, + country: data.country ? getJsonCountry(data.country) : {}, created_courses_count: data.created_courses_count, - joined_courses_count: data.joined_courses_count + joined_courses_count: data.joined_courses_count, + created_at: data.created_at, + // joined_date -> The correct format of created_at + joined_date: data.created_at?.slice(0, 10), }) }; export const getArray = ({ data, meta }) => { diff --git a/src/abstraction/resources/workoutResource.js b/src/abstraction/resources/workoutResource.js index 27da4a5..00d4d52 100644 --- a/src/abstraction/resources/workoutResource.js +++ b/src/abstraction/resources/workoutResource.js @@ -17,6 +17,7 @@ export const getJson = (data) => ({ set: data.set, per_set: data.per_set, estimate_time: data.estimate_time, + workout_category: data.workout_category }); export const setData = (data) => ({ id: data.id, diff --git a/src/assets/anonymous.png b/src/assets/anonymous.png new file mode 100644 index 0000000..eef8ac0 Binary files /dev/null and b/src/assets/anonymous.png differ diff --git a/src/components/Bookmarks/Programs/Programs.vue b/src/components/Bookmarks/Programs/Programs.vue index a24878c..e2136bc 100644 --- a/src/components/Bookmarks/Programs/Programs.vue +++ b/src/components/Bookmarks/Programs/Programs.vue @@ -12,7 +12,7 @@ class="custom-btn ml-1" height="32" icon="WMi-trash" - @click.native="deleteBookmarksProgram(program.id)" + @click="deleteBookmarksProgram(program.id)" /> diff --git a/src/components/Bookmarks/Workouts/Workouts.vue b/src/components/Bookmarks/Workouts/Workouts.vue index eb2c706..aa8f453 100644 --- a/src/components/Bookmarks/Workouts/Workouts.vue +++ b/src/components/Bookmarks/Workouts/Workouts.vue @@ -39,7 +39,7 @@ height="26" icon="WMi-trash" class="custom-btn ml-1" - @click.native="deleteBookmarkWorkout(workout.id)" + @click="deleteBookmarkWorkout(workout.id)" /> diff --git a/src/components/Global/Button/RectangleButton.vue b/src/components/Global/Button/RectangleButton.vue index 6954e9b..5276ffe 100644 --- a/src/components/Global/Button/RectangleButton.vue +++ b/src/components/Global/Button/RectangleButton.vue @@ -4,13 +4,14 @@ depressed :height="height" :width="width" - :class="`color-${color} ${bgColor}`" + :class="`color-${color} bg-${bgColor}`" :type="type" :x-small="xs" :small="sm" :large="lg" :x-large="xl" :loading="loading" + @click.native="$emit('click')" > + + diff --git a/src/components/Products/Add.vue b/src/components/Products/Add.vue index 85e2259..606db5f 100644 --- a/src/components/Products/Add.vue +++ b/src/components/Products/Add.vue @@ -169,6 +169,7 @@ label color="white" text-color="black" + classes="defult__chip" sm @close="removeTags(item)" :text="item" diff --git a/src/components/ProgramSeries/Items.vue b/src/components/ProgramSeries/Items.vue index 36e208c..94deda6 100644 --- a/src/components/ProgramSeries/Items.vue +++ b/src/components/ProgramSeries/Items.vue @@ -19,7 +19,7 @@ height="54" :text-mode="true" size="xx-large" - @click.native="$_openModal('add_series')" + @click="$_openModal('add_series')" /> diff --git a/src/components/ProgramSeries/Modals/AddSeriesModal.vue b/src/components/ProgramSeries/Modals/AddSeriesModal.vue index f4b7e1c..7313253 100644 --- a/src/components/ProgramSeries/Modals/AddSeriesModal.vue +++ b/src/components/ProgramSeries/Modals/AddSeriesModal.vue @@ -69,7 +69,7 @@ icon="WMi-cancel-linear" text-mode="text" height="29" - @click.native="$_closeModal()" + @click="$_closeModal()" /> -
+
{{ program.title }} @@ -77,7 +77,7 @@ text-color="black" xs label - class="mr-1 text-uppercase" + class="mr-1 text-uppercase program__chip" :text="`${program.series_count} sets`" /> @@ -164,6 +171,10 @@ export default { .wa__program__image__button--icon { width: max-content; } +.program__chip { + font-size: 12px; + font-family: "montserrat-light"; +} diff --git a/src/components/Programs/Modals/FiltersModal.vue b/src/components/Programs/Modals/FiltersModal.vue index 9a90c2c..aebfefd 100644 --- a/src/components/Programs/Modals/FiltersModal.vue +++ b/src/components/Programs/Modals/FiltersModal.vue @@ -78,7 +78,7 @@ icon="WMi-cancel-linear" text-mode="text" height="29" - @click.native="clearFilter" + @click="clearFilter" />
- +
@@ -73,7 +73,7 @@
diff --git a/src/components/Users/Items.vue b/src/components/Users/Items.vue index b813547..b9e79cc 100644 --- a/src/components/Users/Items.vue +++ b/src/components/Users/Items.vue @@ -24,7 +24,7 @@ height="54" :text-mode="true" :text="getFilterCount ? getFilterCount : '0'" - @click.native="$_openModal('filters')" + @click="$_openModal('filters', { roles: getRoles })" />
@@ -54,15 +54,11 @@
-->
- +
@@ -70,6 +66,7 @@ import SectionTitle from "../Global/Section/SectionTitle.vue"; import ChangeRoleModal from "./Modals/ChangeRoleModal.vue"; import FiltersModal from "./Modals/FiltersModal.vue"; +import UserDetailModal from "./Modals/Detail.vue"; import UserItem from "./Item.vue"; import { mapActions, mapGetters, mapMutations, mapState } from "vuex"; import { UserStorage } from "@/utils/storage"; @@ -80,6 +77,7 @@ export default { UserItem, ChangeRoleModal, FiltersModal, + UserDetailModal, }, data: () => ({ role: UserStorage.getRole() ? UserStorage.getRole() : null, diff --git a/src/components/Users/Modals/ChangeRoleModal.vue b/src/components/Users/Modals/ChangeRoleModal.vue index 34f1db5..8fdd105 100644 --- a/src/components/Users/Modals/ChangeRoleModal.vue +++ b/src/components/Users/Modals/ChangeRoleModal.vue @@ -11,7 +11,7 @@
- +
@@ -58,15 +58,13 @@ export default { name: "modal_changeRole", components: { SectionTitle }, props: { - allRoles: { - type: Array, - }, userId: {}, }, data: () => ({ role_id: null, currectRoleId: null, changeRoleRequestLoading: false, + roles: null, }), computed: { form() { @@ -75,7 +73,8 @@ export default { }, methods: { ...mapActions("users", ["updateRole"]), - openModal({ role }) { + openModal({ role, roles }) { + this.roles = { ...roles }; this.currectRoleId = role ? role : 0; this.role_id = role ? role : 0; }, diff --git a/src/components/Users/Modals/Detail.vue b/src/components/Users/Modals/Detail.vue new file mode 100644 index 0000000..809c2ed --- /dev/null +++ b/src/components/Users/Modals/Detail.vue @@ -0,0 +1,95 @@ + + + diff --git a/src/components/Users/Modals/FiltersModal.vue b/src/components/Users/Modals/FiltersModal.vue index d37f112..61a1790 100644 --- a/src/components/Users/Modals/FiltersModal.vue +++ b/src/components/Users/Modals/FiltersModal.vue @@ -4,6 +4,7 @@ transition="slide-x-transition" tag="vee-form" @submit="filterUser" + @open="openModal" > @@ -59,12 +60,14 @@ import WorkoutItem from "./Item"; import SectionTitle from "../Global/Section/SectionTitle.vue"; import FiltersModal from "./Modals/FiltersModal.vue"; +import DetailModal from "./Modals/Detail.vue"; import { mapGetters, mapActions, mapMutations } from "vuex"; export default { components: { WorkoutItem, SectionTitle, FiltersModal, + DetailModal, }, computed: { ...mapGetters("workouts", [ diff --git a/src/components/Workouts/Modals/Detail.vue b/src/components/Workouts/Modals/Detail.vue new file mode 100644 index 0000000..b615d0f --- /dev/null +++ b/src/components/Workouts/Modals/Detail.vue @@ -0,0 +1,112 @@ + + + diff --git a/src/components/Workouts/Modals/FiltersModal.vue b/src/components/Workouts/Modals/FiltersModal.vue index 113838c..3b33884 100644 --- a/src/components/Workouts/Modals/FiltersModal.vue +++ b/src/components/Workouts/Modals/FiltersModal.vue @@ -57,7 +57,7 @@ icon="WMi-cancel-linear" text-mode="text" height="29" - @click.native="clearFilter" + @click="clearFilter" /> diff --git a/src/components/WorkoutsSeries/Modals/AddWorkoutModal.vue b/src/components/WorkoutsSeries/Modals/AddWorkoutModal.vue index e0cb788..0584ab3 100644 --- a/src/components/WorkoutsSeries/Modals/AddWorkoutModal.vue +++ b/src/components/WorkoutsSeries/Modals/AddWorkoutModal.vue @@ -110,7 +110,7 @@ icon="WMi-cancel-linear" text-mode="text" height="29" - @click.native="$_closeModal()" + @click="$_closeModal()" /> state.users, + getUser: state => state.user, getRoles: state => state.roles, getPaginationUser: state => state.pagination, getFilters: state => state.filters, diff --git a/src/store/modules/users/mutations.js b/src/store/modules/users/mutations.js index de5f861..5edfc37 100644 --- a/src/store/modules/users/mutations.js +++ b/src/store/modules/users/mutations.js @@ -4,6 +4,9 @@ export default { SET_USERS(state, payload) { Vue.set(state, "users", payload); }, + SET_USER(state, payload) { + Vue.set(state, "user", payload); + }, SET_PAGINATION(state, pagination) { pagination = { ...state.pagination, ...pagination }; Vue.set(state, "pagination", pagination); diff --git a/src/store/modules/users/state.js b/src/store/modules/users/state.js index 36dc335..d302b06 100644 --- a/src/store/modules/users/state.js +++ b/src/store/modules/users/state.js @@ -1,5 +1,6 @@ export default { users: [], + user: {}, roles: [], pagination: { itemsPerPage: 12 diff --git a/src/styles/font/montserrat/Montserrat-ExtraLight.ttf b/src/styles/font/montserrat/Montserrat-ExtraLight.ttf new file mode 100644 index 0000000..ca0bbb6 Binary files /dev/null and b/src/styles/font/montserrat/Montserrat-ExtraLight.ttf differ diff --git a/src/styles/setup/_fonts.scss b/src/styles/setup/_fonts.scss index bab8c3a..4a07c00 100644 --- a/src/styles/setup/_fonts.scss +++ b/src/styles/setup/_fonts.scss @@ -3,23 +3,33 @@ src: url("./font/montserrat/Montserrat-Regular.ttf") format("truetype"); /* Safari, Android, iOS */ } + @font-face { font-family: "Montserrat-light"; src: url("./font/montserrat/Montserrat-Light.ttf") format("truetype"); /* Safari, Android, iOS */ } + +@font-face { + font-family: "Montserrat-extralight"; + src: url("./font/montserrat/Montserrat-ExtraLight.ttf") format("truetype"); + /* Safari, Android, iOS */ +} + @font-face { font-family: "Montserrat-extrabold"; src: url("./font/montserrat/Montserrat-ExtraBold.ttf") format("truetype"); /* Safari, Android, iOS */ } + @font-face { font-family: "Montserrat-medium"; src: url("./font/montserrat/Montserrat-Medium.ttf") format("truetype"); /* Safari, Android, iOS */ } + @font-face { font-family: "Team-america"; src: url("./font/teamAmerica/TeamAmerica-oLVd.otf") format("truetype"); /* Safari, Android, iOS */ -} +} \ No newline at end of file diff --git a/src/utils/GlobalComponents.js b/src/utils/GlobalComponents.js index 6dd4afc..b2c7a23 100644 --- a/src/utils/GlobalComponents.js +++ b/src/utils/GlobalComponents.js @@ -17,6 +17,8 @@ import SideBar from '../components/Global/Section/SideBar'; import Loading from "../components/Global/Misc/Loading"; import NoItems from "../components/Global/Misc/NoItems"; import DataIterator from "../components/Global/Input/DataIterator.vue"; +import SectionTitle from "@/components/Global/Section/SectionTitle.vue"; +import Info from "@/components/Global/Section/Info"; import 'bootstrap'; import 'bootstrap/dist/css/bootstrap.min.css'; import 'bootstrap/dist/js/bootstrap.min.js'; @@ -33,7 +35,9 @@ Vue.component('TimeInput', TimeInput); Vue.component('basic-modal', BasicModal); Vue.component('pagination', Pagination); Vue.component('Chip', Chip); +Vue.component('SectionTitle', SectionTitle); Vue.component('SideBar', SideBar); +Vue.component('Info', Info); Vue.component('data-iterator', DataIterator); Vue.component('loading', Loading); Vue.component('no-items', NoItems); diff --git a/src/views/Register.vue b/src/views/Register.vue index 1e965fd..a9a7381 100644 --- a/src/views/Register.vue +++ b/src/views/Register.vue @@ -148,7 +148,7 @@ height="29" lg icon="WMi-left-open" - @click.native="toggleVerifyCodePage" + @click="toggleVerifyCodePage" />