replace serie

master
sajjad 3 years ago
parent 2aec8141ed
commit e2d47237a4

@ -1,17 +1,24 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head>
<meta charset="utf-8"> <head>
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<link rel="icon" href="<%= BASE_URL %>favicon.ico"> <meta name="viewport" content="width=device-width,initial-scale=1.0">
<title><%= htmlWebpackPlugin.options.title %></title> <link rel="icon" href="<%= BASE_URL %>favicon.ico">
</head> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css">
<body> <title>
<noscript> <%= htmlWebpackPlugin.options.title %>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> </title>
</noscript> </head>
<div id="app"></div>
<!-- built files will be auto injected --> <body>
</body> <noscript>
</html> <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.
Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>

@ -1,6 +1,6 @@
import axios from "axios"; import axios from "axios";
import url from "@/router/url"; import url from "@/router/url";
import { getJson, setData } from "../resources/FileResource"; import { getJson, setData } from "../resources/fileResource";
export default class FileRepository { export default class FileRepository {

@ -0,0 +1,24 @@
import axios from "axios";
import url from '@/router/url';
import { getArray, setQuery } from "../resources/bookmarkResource";
export default class BookmarkRepository {
async indexCourses(data) {
let params = setQuery(data)
let response = await axios.get(url('indexBookmarkCourse'), { params });
if (response.status === 200) {
return getArray(response.data);
}
}
async indexWorkouts(data) {
let params = setQuery(data)
let response = await axios.get(url('indexBookmarkWorkout'), { params });
if (response.status === 200) {
return getArray(response.data);
}
}
async deleteBookmark(bookmarkId) {
console.log(bookmarkId);
await axios.delete(url("destroyBookmark", { bookmark: bookmarkId }));
}
}

@ -1,26 +0,0 @@
import axios from "axios";
import url from '@/router/url';
import { getArray, setQuery } from "../resources/bookmarksResource";
export default class BookmarsRepository {
async indexCourses(data) {
let params = setQuery(data)
let response = await axios.get(url('indexCoursesBookmarks'), { params });
if (response.status === 200) {
return getArray(response.data);
}
}
async indexWorkouts(data) {
let params = setQuery(data)
let response = await axios.get(url('indexWorkoutsBookmarks'), { params });
if (response.status === 200) {
return getArray(response.data);
}
}
async deleteWorkout(workoutId) {
await axios.delete(url("destroyWorkoutBookmarks", { workout: workoutId }));
}
async deleteProgram(courseId) {
await axios.delete(url("destroyProgramBookmarks", { course: courseId }));
}
}

@ -1,8 +1,8 @@
import axios from "axios"; import axios from "axios";
import url from '@/router/url'; import url from '@/router/url';
import { getArray } from "../resources/countriesResource"; import { getArray } from "../resources/countryResource";
export default class CountriesRepository { export default class CountryRepository {
async index() { async index() {
let response = await axios.get(url("indexCountries")); let response = await axios.get(url("indexCountries"));
if (response.status === 200) { if (response.status === 200) {

@ -1,7 +1,7 @@
import axios from "axios"; import axios from "axios";
import url from "@/router/url"; import url from "@/router/url";
import { getArray } from "../resources/productCategoriesResource"; import { getArray } from "../resources/productCategoryResource";
export default class ProductCategoriesRepository { export default class ProductCategoryRepository {
async index() { async index() {
let response = await axios.get(url("indexProductCategories")); let response = await axios.get(url("indexProductCategories"));
if (response.status === 200) { if (response.status === 200) {

@ -1,7 +1,7 @@
import axios from "axios"; import axios from "axios";
import url from "@/router/url"; import url from "@/router/url";
import { getArray, getJson, setData } from "../resources/programSerieResource"; import { getArray, getJson, setData } from "../resources/programSeriesResource";
export default class ProgramSerieRepository { export default class ProgramSeriesRepository {
async index(courseId) { async index(courseId) {
let response = await axios.get(url("indexSeries", { course: courseId })); let response = await axios.get(url("indexSeries", { course: courseId }));
if (response.status === 200) { if (response.status === 200) {
@ -16,12 +16,12 @@ export default class ProgramSerieRepository {
// } // }
async store(data, courseId) { async store(data, courseId) {
let json = setData(data); let json = setData(data);
let response = await axios.post(url("storeSerie", { course: courseId }), json); let response = await axios.post(url("storeSeries", { course: courseId }), json);
if (response.status === 201 || response.status === 200) { if (response.status === 201 || response.status === 200) {
return getJson(response.data.data); return getJson(response.data.data);
} }
} }
async delete(data) { async delete(data) {
await axios.delete(url("destroySerie", { serie: data })); await axios.delete(url("destroySeries", { series: data }));
} }
} }

@ -1,7 +1,7 @@
import axios from "axios"; import axios from "axios";
import url from "@/router/url"; import url from "@/router/url";
import { getArray, getJson } from "../resources/sportCategoriesResource"; import { getArray, getJson } from "../resources/sportCategoryResource";
export default class SportCategoriesRepository { export default class SportCategoryRepository {
async index() { async index() {
let response = await axios.get(url("indexSportCategories")); let response = await axios.get(url("indexSportCategories"));
if (response.status === 200) { if (response.status === 200) {

@ -2,20 +2,20 @@ import axios from "axios";
import url from "@/router/url" import url from "@/router/url"
import { getJson } from "../resources/statisticResource"; import { getJson } from "../resources/statisticResource";
export default class StatisticRepository { export default class StatisticRepository {
async indexStatisticAdmin() { async indexAdmin() {
let response = await axios.get(url("indexStatisticAdmin")); let response = await axios.get(url("indexAdmin"));
if (response.status === 200) { if (response.status === 200) {
return getJson(response.data.data) return getJson(response.data.data)
} }
} }
async indexStatisticTrainer() { async indexTrainer() {
let response = await axios.get(url("indexStatisticTrainer")); let response = await axios.get(url("indexTrainer"));
if (response.status === 200) { if (response.status === 200) {
return getJson(response.data.data) return getJson(response.data.data)
} }
} }
async indexStatisticTrainee() { async indexTrainee() {
let response = await axios.get(url("indexStatisticTrainee")); let response = await axios.get(url("indexTrainee"));
if (response.status === 200) { if (response.status === 200) {
return getJson(response.data.data) return getJson(response.data.data)
} }

@ -1,7 +1,7 @@
import axios from "axios"; import axios from "axios";
import url from "@/router/url" import url from "@/router/url"
import { getArray, setQuery } from "../resources/userProgramsResource"; import { getArray, setQuery } from "../resources/userProgramResource";
export default class UserProgramsRepository { export default class UserProgramRepository {
async index(data) { async index(data) {
let params = setQuery(data); let params = setQuery(data);
let response = await axios.get(url('indexUserProgram'), { params }); let response = await axios.get(url('indexUserProgram'), { params });

@ -1,8 +1,8 @@
import axios from "axios"; import axios from "axios";
import url from "@/router/url"; import url from "@/router/url";
import { getArray, setQuery } from "../resources/usersResource"; import { getArray, setQuery } from "../resources/userResource";
export default class UsersRepository { export default class UserRepository {
async indexUsers(data) { async indexUsers(data) {
let params = setQuery(data) let params = setQuery(data)
let response = await axios.get(url('indexUsers'), { params }) let response = await axios.get(url('indexUsers'), { params })
@ -10,7 +10,7 @@ export default class UsersRepository {
return getArray(response.data) return getArray(response.data)
} }
} }
async loadTrainerTrainee(data) { async indexMyTrainees(data) {
let params = setQuery(data) let params = setQuery(data)
let response = await axios.get(url('indexTrainerTrainee'), { params }) let response = await axios.get(url('indexTrainerTrainee'), { params })
if (response.status === 200) { if (response.status === 200) {

@ -1,7 +1,7 @@
import axios from "axios"; import axios from "axios";
import url from "@/router/url"; import url from "@/router/url";
import { getArray, setQuery } from "../resources/workoutCategoriesResources"; import { getArray, setQuery } from "../resources/workoutCategoryResources";
export default class WorkoutCategoriesRepository { export default class WorkoutCategoryRepository {
async index(data) { async index(data) {
let params = setQuery(data); let params = setQuery(data);
let response = await axios.get(url("indexWorkoutCategories"), { params }); let response = await axios.get(url("indexWorkoutCategories"), { params });

@ -1,14 +1,14 @@
import axios from "axios"; import axios from "axios";
import url from "@/router/url"; import url from "@/router/url";
import { getJson, getArray, setQuery, setData } from "../resources/workoutResource.js"; import { getJson, getArray, setQuery, setData } from "../resources/workoutResource.js";
export default class WorkoutToSerieRepository { export default class WorkoutToSeriesRepository {
async index(data) { async index(data) {
let response = await axios.get(url("indexSerieWorkouts", { serie: data.serieId, course: data.courseId })); let response = await axios.get(url("indexSeriesWorkouts", { series: data.seriesId, course: data.courseId }));
if (response.status === 200) { if (response.status === 200) {
return getArray(response.data); return getArray(response.data);
} }
} }
async indexWorkoutToSerie(data) { async indexWorkoutToSeries(data) {
let params = setQuery(data); let params = setQuery(data);
let response = await axios.get(url("indexClientWorkout"), { params }); let response = await axios.get(url("indexClientWorkout"), { params });
if (response.status === 200) { if (response.status === 200) {
@ -21,14 +21,14 @@ export default class WorkoutToSerieRepository {
return getJson(response.data.data); return getJson(response.data.data);
} }
} }
async store(data, serieId, workoutId) { async store(data, seriesId, workoutId) {
let json = setData(data); let json = setData(data);
let response = await axios.post(url("joinWorkoutToSerie", { serie: serieId, workout: workoutId }), json); let response = await axios.post(url("joinWorkoutToSeries", { series: seriesId, workout: workoutId }), json);
if (response.status === 201 || response.status === 200) { if (response.status === 201 || response.status === 200) {
return response.data; return response.data;
} }
} }
async delete(data) { async delete(data) {
await axios.delete(url("destroyWorkoutFromSerie", { serie: data.serieId, workout: data.workoutId })); await axios.delete(url("destroyWorkoutFromSeries", { series: data.seriesId, workout: data.workoutId }));
} }
} }

@ -1,4 +1,4 @@
import { getJson as getJsonUser } from './usersResource' import { getJson as getJsonUser } from './userResource'
export const getJson = (data) => ({ export const getJson = (data) => ({
token: data.token, token: data.token,
user: data.user ? getJsonUser(data.user) : {} user: data.user ? getJsonUser(data.user) : {}

@ -1,27 +0,0 @@
export const getJson = (data) => ({
"id": data.id,
"name": data.name,
"local_name": data.local_name,
"description": data.description,
"thumbnail": data.thumbnail,
"title": data.title,
"workout_category": {
"id": data.workout_category.id,
"name": data.workout_category.name,
"local_name": data.workout_category.local_name,
"language_id": data.workout_category.language_id
},
"video": data.video,
"set": data.set,
"per_set": data.per_set,
"trainer_description": data.trainer_description,
"estimate_time": data.estimate_time,
"suggested_time": data.suggested_time,
"suggested_per_set": data.suggested_per_set,
"suggested_set": data.suggested_set
});
export const getArray = ({ data }) => {
data = data.map(serie => getJson(serie));
return { data }
}

@ -19,7 +19,7 @@ export const getJson = (data) => ({
name: data.name name: data.name
}); });
export const getArray = ({ data }) => { export const getArray = ({ data }) => {
data = data.map(serie => getJson(serie)); data = data.map(series => getJson(series));
return { data } return { data }
} }
export const setData = (data) => { export const setData = (data) => {

@ -218,7 +218,7 @@
<script> <script>
import { mapActions, mapGetters } from "vuex"; import { mapActions, mapGetters } from "vuex";
import SectionTitle from "../Global/Section/SectionTitle.vue"; import SectionTitle from "../Global/Section/SectionTitle.vue";
import FileRepository from "../../abstraction/repository/FileRepository"; import FileRepository from "../../abstraction/repository/fileRepository";
import ImageCropper from "../Global/Input/ImageCropper.vue"; import ImageCropper from "../Global/Input/ImageCropper.vue";
import Dropzone from "../Global/Input/Dropzone.vue"; import Dropzone from "../Global/Input/Dropzone.vue";
import toast from "@/utils/toast"; import toast from "@/utils/toast";

@ -119,7 +119,7 @@
<script> <script>
import SectionTitle from "../Global/Section/SectionTitle.vue"; import SectionTitle from "../Global/Section/SectionTitle.vue";
import ImageCropper from "../Global/Input/ImageCropper.vue"; import ImageCropper from "../Global/Input/ImageCropper.vue";
import FileRepository from "../../abstraction/repository/FileRepository"; import FileRepository from "../../abstraction/repository/fileRepository";
import { mapGetters, mapActions } from "vuex"; import { mapGetters, mapActions } from "vuex";
import { makeid } from "@/utils/math"; import { makeid } from "@/utils/math";
const RANDOM_TOKEN = makeid(50); const RANDOM_TOKEN = makeid(50);

@ -177,7 +177,7 @@
<script> <script>
import SectionTitle from "../Global/Section/SectionTitle.vue"; import SectionTitle from "../Global/Section/SectionTitle.vue";
import ImageCropper from "../Global/Input/ImageCropper.vue"; import ImageCropper from "../Global/Input/ImageCropper.vue";
import FileRepository from "../../abstraction/repository/FileRepository"; import FileRepository from "../../abstraction/repository/fileRepository";
import { mapActions, mapGetters } from "vuex"; import { mapActions, mapGetters } from "vuex";
import { makeid } from "@/utils/math"; import { makeid } from "@/utils/math";
const RANDOM_TOKEN = makeid(50); const RANDOM_TOKEN = makeid(50);

@ -85,10 +85,7 @@ export default {
]), ]),
}, },
methods: { methods: {
...mapActions("bookmarks", [ ...mapActions("bookmarks", ["loadBookmarkProgram", "loadBookmarkWorkout"]),
"loadBookmarksPrograms",
"loadBookmarksWorkouts",
]),
...mapMutations("bookmarks", [ ...mapMutations("bookmarks", [
"SET_WORKOUTS_PAGINATION", "SET_WORKOUTS_PAGINATION",
"SET_PROGRAMS_PAGINATION", "SET_PROGRAMS_PAGINATION",
@ -96,19 +93,19 @@ export default {
changePaginationWorkouts(page) { changePaginationWorkouts(page) {
if (this.getPaginationWorkout.page !== page) { if (this.getPaginationWorkout.page !== page) {
this.SET_WORKOUTS_PAGINATION(page); this.SET_WORKOUTS_PAGINATION(page);
this.loadBookmarksWorkouts(); this.loadBookmarkWorkout();
} }
}, },
changePaginationPrograms(page) { changePaginationPrograms(page) {
if (this.getPaginationProgram.page !== page) { if (this.getPaginationProgram.page !== page) {
this.SET_PROGRAMS_PAGINATION(page); this.SET_PROGRAMS_PAGINATION(page);
this.loadBookmarksPrograms(); this.loadBookmarkProgram();
} }
}, },
}, },
created() { created() {
this.loadBookmarksPrograms(); this.loadBookmarkProgram();
this.loadBookmarksWorkouts(); this.loadBookmarkWorkout();
}, },
}; };
</script> </script>

@ -39,7 +39,7 @@
height="26" height="26"
icon="WMi-trash" icon="WMi-trash"
class="custom-btn custom-icon ml-1" class="custom-btn custom-icon ml-1"
@click.native="deleteBookmarksWorkout(workout.id)" @click.native="deleteBookmarkWorkout(workout.id)"
/> />
</div> </div>
</div> </div>
@ -50,12 +50,16 @@
</div> </div>
</template> </template>
<script> <script>
import { mapActions } from "vuex";
export default { export default {
props: { props: {
workout: { workout: {
type: Object, type: Object,
}, },
}, },
methods: {
...mapActions("bookmarks", ["deleteBookmarkWorkout"]),
},
}; };
</script> </script>
<style scoped> <style scoped>

@ -235,11 +235,11 @@ export default {
let repository = new StatisticRepository(); let repository = new StatisticRepository();
this.statistics = this.statistics =
this.role === "admin" this.role === "admin"
? await repository.indexStatisticAdmin() ? await repository.indexAdmin()
: this.role === "trainer" : this.role === "trainer"
? await repository.indexStatisticTrainer() ? await repository.indexTrainer()
: this.role === "trainee" : this.role === "trainee"
? await repository.indexStatisticTrainee() ? await repository.indexTrainee()
: false; : false;
}, },
}, },

@ -3,9 +3,9 @@
class="d-block text-decoration-none text-white" class="d-block text-decoration-none text-white"
:to="{ :to="{
name: 'workoutsSeries', name: 'workoutsSeries',
params: { programId: programId, serieId: series.id }, params: { programId: programId, seriesId: series.id },
}" }"
@click.native="setSerieId(series.id)" @click.native="setSeriesId(series.id)"
> >
<div class="series__card"> <div class="series__card">
<v-row> <v-row>
@ -77,10 +77,10 @@ export default {
}, },
computed: {}, computed: {},
methods: { methods: {
...mapActions("programSerie", ["deleteSerieFromProgram"]), ...mapActions("programSeries", ["deleteSeriesFromProgram"]),
...mapMutations("programSerie", ["SET_CURRENT_SERIE_ID"]), ...mapMutations("programSeries", ["SET_CURRENT_SERIES_ID"]),
async setSerieId(id) { async setSeriesId(id) {
await this.SET_CURRENT_SERIE_ID(id); await this.SET_CURRENT_SERIES_ID(id);
}, },
}, },
}; };

@ -51,13 +51,13 @@ export default {
AddSeriesModal, AddSeriesModal,
}, },
computed: { computed: {
...mapGetters("programSerie", ["getProgramSeries"]), ...mapGetters("programSeries", ["getProgramSeries"]),
programId() { programId() {
return this.$route.params.id; return this.$route.params.id;
}, },
}, },
methods: { methods: {
...mapActions("programSerie", ["loadProgramSeries"]), ...mapActions("programSeries", ["loadProgramSeries"]),
}, },
async created() { async created() {
await this.loadProgramSeries(this.programId); await this.loadProgramSeries(this.programId);

@ -1,5 +1,10 @@
<template> <template>
<basic-modal width="520" transition="slide-x-transition"> <basic-modal
width="520"
transition="slide-x-transition"
tag="form"
@submit="addSeries"
>
<template #header> <template #header>
<div class="close__modal"> <div class="close__modal">
<v-icon class="WMi-cancel-1" large @click="$_closeModal()"></v-icon> <v-icon class="WMi-cancel-1" large @click="$_closeModal()"></v-icon>
@ -67,7 +72,7 @@
height="29" height="29"
class="btn__modal--confirm custom-btn wa__f__m__eb" class="btn__modal--confirm custom-btn wa__f__m__eb"
text="add" text="add"
@click.native="addSerie" type="submit"
/> />
</div> </div>
</template> </template>
@ -86,9 +91,9 @@ export default {
form: {}, form: {},
}), }),
methods: { methods: {
...mapActions("programSerie", ["addSerieToProgram"]), ...mapActions("programSeries", ["addSeriesToProgram"]),
async addSerie() { async addSeries() {
let response = await this.addSerieToProgram({ let response = await this.addSeriesToProgram({
data: this.form, data: this.form,
courseId: Number(this.programId), courseId: Number(this.programId),
}); });

@ -13,7 +13,7 @@
/> />
</div> </div>
<div> <div>
<RectangleButton <RectangleButton
icon-right="WMi-filter" icon-right="WMi-filter"
class="custom-btn mr-2 filter-btn" class="custom-btn mr-2 filter-btn"
height="54" height="54"

@ -1,5 +1,10 @@
<template> <template>
<basic-modal width="458" transition="slide-x-transition" tag="form" @submit="filterPrograms"> <basic-modal
width="458"
transition="slide-x-transition"
tag="form"
@submit="filterPrograms"
>
<template #header> <template #header>
<div class="close__modal"> <div class="close__modal">
<v-icon class="WMi-cancel-1" large @click="$_closeModal()"></v-icon> <v-icon class="WMi-cancel-1" large @click="$_closeModal()"></v-icon>
@ -14,59 +19,57 @@
/> />
</div> </div>
<div class="mt-4 mb-10"> <div class="mt-4 mb-10">
<v-form @submit.prevent="filterPrograms"> <div class="my-6">
<div class="my-6"> <div>
<div> <v-text-field
<v-text-field class="no-error-msg"
class="no-error-msg" placeholder="course name"
placeholder="course name" label="course name"
label="course name" v-model="filter.title.val"
v-model="filter.title.val" ></v-text-field>
></v-text-field>
</div>
</div> </div>
<div class="my-6"> </div>
<div> <div class="my-6">
<v-text-field <div>
class="no-error-msg pt-0" <v-text-field
placeholder="mentor name" class="no-error-msg pt-0"
label="mentor name" placeholder="mentor name"
v-model="filter.first_name.val" label="mentor name"
></v-text-field> v-model="filter.first_name.val"
</div> ></v-text-field>
</div> </div>
<div class="my-6"> </div>
<div> <div class="my-6">
<v-autocomplete <div>
class="no-error-msg pt-0" <v-autocomplete
placeholder="status" class="no-error-msg pt-0"
label="status" placeholder="status"
:items="programStatus" label="status"
item-text="text" :items="programStatus"
item-value="verified" item-text="text"
v-model="filter.verified.val" item-value="verified"
></v-autocomplete> v-model="filter.verified.val"
</div> ></v-autocomplete>
</div> </div>
<div class="my-6"> </div>
<div> <div class="my-6">
<DateInput <div>
class="no-error-msg" <DateInput
label="date, after" class="no-error-msg"
v-model="filter.created_at.val1" label="date, after"
/> v-model="filter.created_at.val1"
</div> />
</div> </div>
<div class="my-6"> </div>
<div> <div class="my-6">
<DateInput <div>
class="no-error-msg" <DateInput
label="date, before" class="no-error-msg"
v-model="filter.created_at.val2" label="date, before"
/> v-model="filter.created_at.val2"
</div> />
</div> </div>
</v-form> </div>
</div> </div>
</template> </template>
<template #footer> <template #footer>

@ -1,5 +1,10 @@
<template> <template>
<basic-modal width="458" transition="slide-x-transition"> <basic-modal
width="458"
transition="slide-x-transition"
tag="form"
@submit="filterUser"
>
<template #header> <template #header>
<div class="close__modal"> <div class="close__modal">
<v-icon class="WMi-cancel-1" large @click="$_closeModal()"></v-icon> <v-icon class="WMi-cancel-1" large @click="$_closeModal()"></v-icon>
@ -71,7 +76,7 @@
class="btn__modal--execute custom-btn wa__f__m__eb" class="btn__modal--execute custom-btn wa__f__m__eb"
text="execute" text="execute"
icon="WMi-filter" icon="WMi-filter"
@click.native="filterUser" type="submit"
/> />
</div> </div>
</template> </template>

@ -1,5 +1,10 @@
<template> <template>
<basic-modal width="458" transition="slide-x-transition"> <basic-modal
width="458"
transition="slide-x-transition"
tag="form"
@submit="filterWorkotus"
>
<template #header> <template #header>
<div class="close__modal"> <div class="close__modal">
<v-icon class="WMi-cancel-1" large @click="$_closeModal()"></v-icon> <v-icon class="WMi-cancel-1" large @click="$_closeModal()"></v-icon>
@ -72,7 +77,7 @@
class="btn__modal--execute custom-btn wa__f__m__eb" class="btn__modal--execute custom-btn wa__f__m__eb"
text="execute" text="execute"
icon="WMi-filter" icon="WMi-filter"
@click.native="filterWorkotus" type="submit"
/> />
</div> </div>
</template> </template>

@ -53,7 +53,7 @@
height="26" height="26"
icon="WMi-trash" icon="WMi-trash"
class="custom-btn custom-icon ml-1" class="custom-btn custom-icon ml-1"
@click.native="removeWorkoutFromSerie(seriesWorkout)" @click.native="removeWorkoutFromSeries(seriesWorkout)"
/> />
<RectangleButton <RectangleButton
size="large" size="large"
@ -79,16 +79,16 @@ export default {
addWorkout: { addWorkout: {
default: false, default: false,
}, },
serieId: {}, seriesId: {},
}, },
computed: { computed: {
...mapGetters("workoutToSerie", ["getWorkoutsToSerie"]), ...mapGetters("workoutToSeries", ["getWorkoutsToSeries"]),
}, },
methods: { methods: {
...mapActions("workoutToSerie", ["deleteWorkoutFromSerie"]), ...mapActions("workoutToSeries", ["deleteWorkoutFromSeries"]),
async removeWorkoutFromSerie(workout) { async removeWorkoutFromSeries(workout) {
await this.deleteWorkoutFromSerie({ await this.deleteWorkoutFromSeries({
serieId: this.serieId, seriesId: this.seriesId,
workoutId: workout.id, workoutId: workout.id,
}); });
}, },

@ -33,7 +33,7 @@
:key="i" :key="i"
><WorkoutsSeriesItem ><WorkoutsSeriesItem
:seriesWorkout="seriesWorkout" :seriesWorkout="seriesWorkout"
:serieId="serieId" :seriesId="seriesId"
/></v-col> /></v-col>
</v-row> </v-row>
</div> </div>
@ -56,9 +56,9 @@ export default {
AddWorkoutModal, AddWorkoutModal,
}, },
computed: { computed: {
...mapGetters("workoutToSerie", ["getWorkouts"]), ...mapGetters("workoutToSeries", ["getWorkouts"]),
serieId() { seriesId() {
return this.$route.params.serieId; return this.$route.params.seriesId;
}, },
programId() { programId() {
return this.$route.params.programId; return this.$route.params.programId;
@ -66,19 +66,19 @@ export default {
}, },
watch: { watch: {
$route(to) { $route(to) {
this.SET_CURRENT_SERIE_ID(to.params.serieId); this.SET_CURRENT_SERIES_ID(to.params.seriesId);
}, },
}, },
methods: { methods: {
...mapActions("workoutToSerie", ["loadProgramSerieWorkouts"]), ...mapActions("workoutToSeries", ["loadProgramSeriesWorkouts"]),
...mapMutations("programSerie", ["SET_CURRENT_SERIE_ID"]), ...mapMutations("programSeries", ["SET_CURRENT_SERIES_ID"]),
}, },
async created() { async created() {
await this.loadProgramSerieWorkouts({ await this.loadProgramSeriesWorkouts({
courseId: Number(this.programId), courseId: Number(this.programId),
serieId: Number(this.serieId), seriesId: Number(this.seriesId),
}); });
await this.SET_CURRENT_SERIE_ID(this.serieId); await this.SET_CURRENT_SERIES_ID(this.seriesId);
}, },
}; };
</script> </script>

@ -1,5 +1,10 @@
<template> <template>
<basic-modal width="800" transition="slide-x-transition"> <basic-modal
width="800"
transition="slide-x-transition"
tag="form"
@submit="WorkoutToSeries"
>
<template #header> <template #header>
<div class="close__modal"> <div class="close__modal">
<v-icon class="WMi-cancel-1" large @click="$_closeModal()"></v-icon> <v-icon class="WMi-cancel-1" large @click="$_closeModal()"></v-icon>
@ -20,7 +25,7 @@
placeholder="search the workout name you want to add" placeholder="search the workout name you want to add"
label="search the workout name you want to add" label="search the workout name you want to add"
append-icon="WMi-search" append-icon="WMi-search"
:items="getWorkoutsToSerie" :items="getWorkoutsToSeries"
item-value="id" item-value="id"
item-text="title" item-text="title"
:loading="isLoading" :loading="isLoading"
@ -38,17 +43,17 @@
</template> </template>
</v-autocomplete> </v-autocomplete>
</div> </div>
<template v-if="Object.keys(getWorkoutToSerie).length !== 0"> <template v-if="Object.keys(getWorkoutToSeries).length !== 0">
<v-divider class="mt-6"></v-divider> <v-divider class="mt-6"></v-divider>
<v-row class="mt-1"> <v-row class="mt-1">
<v-col cols="12" <v-col cols="12"
><AddWorkoutsItem :addWorkout="getWorkoutToSerie" :add="true" ><AddWorkoutsItem :addWorkout="getWorkoutToSeries" :add="true"
/></v-col> /></v-col>
</v-row> </v-row>
</template> </template>
<div class="mt-6"> <div class="mt-6">
<v-row <v-row
:class="{ 'mt-9': Object.keys(getWorkoutToSerie).length === 0 }" :class="{ 'mt-9': Object.keys(getWorkoutToSeries).length === 0 }"
> >
<v-col cols="4"> <v-col cols="4">
<v-text-field <v-text-field
@ -109,7 +114,7 @@
height="29" height="29"
class="btn__modal--confirm custom-btn wa__f__m__eb" class="btn__modal--confirm custom-btn wa__f__m__eb"
text="add" text="add"
@click.native="WorkoutToSerie" type="submit"
/> />
</div> </div>
</template> </template>
@ -139,11 +144,11 @@ export default {
workoutId: null, workoutId: null,
}), }),
computed: { computed: {
...mapGetters("workoutToSerie", [ ...mapGetters("workoutToSeries", [
"getWorkoutsToSerie", "getWorkoutsToSeries",
"getWorkoutToSerie", "getWorkoutToSeries",
]), ]),
...mapGetters("programSerie", ["getCurrentSerieId"]), ...mapGetters("programSeries", ["getCurrentSeriesId"]),
}, },
watch: { watch: {
search(val) { search(val) {
@ -152,32 +157,32 @@ export default {
if (val && val.length > 1) { if (val && val.length > 1) {
cancelId = setTimeout(async () => { cancelId = setTimeout(async () => {
this.filter.title.val = val; this.filter.title.val = val;
this.SET_FILTER_WORKOUTS_TO_SERIE(this.filter); this.SET_FILTER_WORKOUTS_TO_SERIES(this.filter);
await this.loadWorkoutsToSerie(); await this.loadWorkoutsToSeries();
this.isLoading = false; this.isLoading = false;
}, 400); }, 400);
} else if (val.length == 0) { } else if (val.length == 0) {
this.SET_FILTER_WORKOUTS_TO_SERIE({}); this.SET_FILTER_WORKOUTS_TO_SERIES({});
this.loadWorkoutsToSerie(); this.loadWorkoutsToSeries();
this.isLoading = false; this.isLoading = false;
} }
}, },
}, },
methods: { methods: {
...mapActions("workoutToSerie", [ ...mapActions("workoutToSeries", [
"loadWorkoutsToSerie", "loadWorkoutsToSeries",
"loadWorkoutToSerie", "loadWorkoutToSeries",
"addWorkoutToSerie", "addWorkoutToSeries",
]), ]),
...mapMutations("workoutToSerie", ["SET_FILTER_WORKOUTS_TO_SERIE"]), ...mapMutations("workoutToSeries", ["SET_FILTER_WORKOUTS_TO_SERIES"]),
async joinWorkout(id) { async joinWorkout(id) {
this.workoutId = id; this.workoutId = id;
await this.loadWorkoutToSerie(this.workoutId); await this.loadWorkoutToSeries(this.workoutId);
}, },
async WorkoutToSerie() { async WorkoutToSeries() {
let response = await this.addWorkoutToSerie({ let response = await this.addWorkoutToSeries({
data: this.form, data: this.form,
serieId: Number(this.getCurrentSerieId), seriesId: Number(this.getCurrentSeriesId),
workoutId: this.workoutId, workoutId: this.workoutId,
}); });
if (response) { if (response) {
@ -186,7 +191,7 @@ export default {
}, },
}, },
async created() { async created() {
await this.loadWorkoutsToSerie(); await this.loadWorkoutsToSeries();
}, },
}; };
</script> </script>

@ -56,7 +56,7 @@ export default [
name: 'programSeries' name: 'programSeries'
}, },
{ {
path: '/programs/:programId/series/:serieId/workouts', path: '/programs/:programId/series/:seriesId/workouts',
view: 'WorkoutsSeries', view: 'WorkoutsSeries',
name: 'workoutsSeries' name: 'workoutsSeries'
}, },

@ -28,15 +28,15 @@ const urls = {
storeWorkout: "admin/workouts", storeWorkout: "admin/workouts",
updateWorkout: "admin/workouts/:workout", updateWorkout: "admin/workouts/:workout",
destroyWorkout: "admin/workouts/:workout", destroyWorkout: "admin/workouts/:workout",
// join workout to serie // join workout to series
joinWorkoutToSerie: "trainer/series/:serie/workout/:workout", joinWorkoutToSeries: "trainer/series/:series/workout/:workout",
destroyWorkoutFromSerie: "trainer/series/:serie/workout/:workout", destroyWorkoutFromSeries: "trainer/series/:series/workout/:workout",
// serie // series
indexSeries: "trainer/courses/:course/series", indexSeries: "trainer/courses/:course/series",
storeSerie: "trainer/course/:course/series", storeSeries: "trainer/course/:course/series",
destroySerie: "trainer/series/:serie", destroySeries: "trainer/series/:series",
// programs -> series -> workouts // programs -> series -> workouts
indexSerieWorkouts: "trainer/courses/:course/series/:serie/workouts", indexSeriesWorkouts: "trainer/courses/:course/series/:series/workouts",
// product // product
indexProduct: "admin/products", indexProduct: "admin/products",
showProduct: "admin/products/:product", showProduct: "admin/products/:product",
@ -54,14 +54,14 @@ const urls = {
updateProfile: "user", updateProfile: "user",
showProfile: "user", showProfile: "user",
// bookmarks // bookmarks
indexCoursesBookmarks: "bookmarks/course", indexBookmarkCourse: "bookmarks/course",
indexWorkoutsBookmarks: "bookmarks/workout", indexBookmarkWorkout: "bookmarks/workout",
destroyWorkoutBookmarks: "bookmarks/:workout", destroyBookmark: "bookmarks/:bookmark",
destroyProgramBookmarks: "bookmarks/:course", destroyProgramBookmarks: "bookmarks/:course",
// statistic // statistic
indexStatisticAdmin: "admin-dashboard-statistic", indexAdmin: "admin-dashboard-statistic",
indexStatisticTrainer: "trainer-dashboard-statistic", indexTrainer: "trainer-dashboard-statistic",
indexStatisticTrainee: "trainee-dashboard-statistic", indexTrainee: "trainee-dashboard-statistic",
// file // file
storeFile: 'media', storeFile: 'media',
destroyFile: 'media/:media' destroyFile: 'media/:media'

@ -1,9 +1,9 @@
import BookmarksRepository from "@/abstraction/repository/bookmarksRepository"; import BookmarkRepository from "@/abstraction/repository/bookmarkRepository";
export default { export default {
async loadBookmarksPrograms({ state, commit }) { async loadBookmarkProgram({ state, commit }) {
try { try {
let data = { pagination: state.programsPagination } let data = { pagination: state.programsPagination }
let repository = new BookmarksRepository(); let repository = new BookmarkRepository();
const resource = await repository.indexCourses(data); const resource = await repository.indexCourses(data);
commit("SET_BOOKMARKS_PROGRAMS", resource.data); commit("SET_BOOKMARKS_PROGRAMS", resource.data);
commit("SET_PROGRAMS_PAGINATION", resource.pagination); commit("SET_PROGRAMS_PAGINATION", resource.pagination);
@ -11,21 +11,21 @@ export default {
return e; return e;
} }
}, },
async loadBookmarksWorkouts({ state, commit }) { async loadBookmarkWorkout({ state, commit }) {
let data = { pagination: state.workoutsPagination } let data = { pagination: state.workoutsPagination }
let repository = new BookmarksRepository(); let repository = new BookmarkRepository();
const resource = await repository.indexWorkouts(data); const resource = await repository.indexWorkouts(data);
commit("SET_BOOKMARKS_WORKOUTS", resource.data); commit("SET_BOOKMARKS_WORKOUTS", resource.data);
commit("SET_WORKOUTS_PAGINATION", resource.pagination); commit("SET_WORKOUTS_PAGINATION", resource.pagination);
}, },
async deleteBookmarksWorkout({ commit }, workoutId) { async deleteBookmarkWorkout({ commit }, workoutId) {
let repository = new BookmarksRepository(); let repository = new BookmarkRepository();
await repository.deleteWorkout(workoutId); await repository.deleteBookmark(workoutId);
commit('DELETE_BOOKMARKS_WORKOUT', workoutId); commit('DELETE_BOOKMARKS_WORKOUT', workoutId);
}, },
async deleteBookmarksProgram({ commit }, courseId) { async deleteBookmarksProgram({ commit }, courseId) {
let repository = new BookmarksRepository(); let repository = new BookmarkRepository();
await repository.deleteProgram(courseId); await repository.deleteBookmark(courseId);
commit('DELETE_BOOKMARKS_PROGRAM', courseId); commit('DELETE_BOOKMARKS_PROGRAM', courseId);
}, },
}; };

@ -1,7 +1,7 @@
import CountriesRepository from "@/abstraction/repository/countriesRepository" import CountryRepository from "@/abstraction/repository/countryRepository"
export default { export default {
async loadCountries({ commit }) { async loadCountries({ commit }) {
let repository = new CountriesRepository(); let repository = new CountryRepository();
let resource = await repository.index(); let resource = await repository.index();
commit('SET_COUNTRIES', resource.data) commit('SET_COUNTRIES', resource.data)
}, },

@ -1,7 +1,7 @@
import ProductCategoriesRepository from "@/abstraction/repository/productCategoriesRepository"; import ProductCategoryRepository from "@/abstraction/repository/productCategoryRepository";
export default { export default {
async loadProductCategories({ commit }) { async loadProductCategories({ commit }) {
let repository = new ProductCategoriesRepository(); let repository = new ProductCategoryRepository();
const resource = await repository.index(); const resource = await repository.index();
commit("SET_PRODUCT_CATEGORIES", resource.data); commit("SET_PRODUCT_CATEGORIES", resource.data);
}, },

@ -1,26 +0,0 @@
import ProgramSerieRepository from "@/abstraction/repository/programSerieRepository";
export default {
async loadProgramSeries({ commit }, courseId) {
let repository = new ProgramSerieRepository();
const resource = await repository.index(courseId);
commit("SET_PROGRAM_SERIES", resource.data);
},
// async loadProgramSerie({ commit }, courseId) {
// let repository = new ProgramSerieRepository();
// const resource = await repository.show(courseId);
// commit("SET_PROGRAM_SERIE", resource);
// },
async addSerieToProgram({ commit }, data) {
let repository = new ProgramSerieRepository();
const resource = await repository.store(data.data, data.courseId);
if (resource) {
commit("ADD_SERIE_TO_PROGRAM", resource);
return resource
}
},
async deleteSerieFromProgram({ commit }, serieId) {
let repository = new ProgramSerieRepository();
await repository.delete(serieId);
commit('DELETE_SERIE_FROM_PROGRAM', serieId);
},
};

@ -1,5 +0,0 @@
export default {
getProgramSeries: state => state.programSeries,
// getProgramSerie: state => state.programSerie,
getCurrentSerieId: state => state.currentSerieId
};

@ -1,26 +0,0 @@
import Vue from "vue";
export default {
SET_PROGRAM_SERIES(state, payload) {
Vue.set(state, "programSeries", payload);
},
// SET_PROGRAM_SERIE(state, payload) {
// Vue.set(state, "programSerie", payload);
// },
SET_CURRENT_SERIE_ID(state, payload) {
Vue.set(state, "currentSerieId", payload);
},
ADD_SERIE_TO_PROGRAM(state, payload) {
state.programSeries.push(payload);
},
// ADD_SERIE_TO_PROGRAM(state, payload) {
// state.programSerie.series.push(payload);
// },
DELETE_SERIE_FROM_PROGRAM(state, payload) {
const index = state.programSeries.findIndex((x) => x.id === payload);
Vue.delete(state.programSeries, index)
},
// DELETE_SERIE_FROM_PROGRAM(state, payload) {
// const index = state.programSerie.series.findIndex((x) => x.id === payload);
// Vue.delete(state.programSerie.series, index)
// }
};

@ -1,5 +0,0 @@
export default {
programSeries: [],
// programSerie: {},
currentSerieId: null,
};

@ -0,0 +1,26 @@
import ProgramSeriesRepository from "@/abstraction/repository/programSeriesRepository";
export default {
async loadProgramSeries({ commit }, courseId) {
let repository = new ProgramSeriesRepository();
const resource = await repository.index(courseId);
commit("SET_PROGRAM_SERIES", resource.data);
},
// async loadProgramSeries({ commit }, courseId) {
// let repository = new ProgramSeriesRepository();
// const resource = await repository.show(courseId);
// commit("SET_PROGRAM_SERIES", resource);
// },
async addSeriesToProgram({ commit }, data) {
let repository = new ProgramSeriesRepository();
const resource = await repository.store(data.data, data.courseId);
if (resource) {
commit("ADD_SERIES_TO_PROGRAM", resource);
return resource
}
},
async deleteSeriesFromProgram({ commit }, seriesId) {
let repository = new ProgramSeriesRepository();
await repository.delete(seriesId);
commit('DELETE_SERIES_FROM_PROGRAM', seriesId);
},
};

@ -0,0 +1,4 @@
export default {
getProgramSeries: state => state.programSeries,
getCurrentSeriesId: state => state.currentSeriesId
};

@ -0,0 +1,26 @@
import Vue from "vue";
export default {
SET_PROGRAM_SERIES(state, payload) {
Vue.set(state, "programSeries", payload);
},
// SET_PROGRAM_SERIES(state, payload) {
// Vue.set(state, "programSeries", payload);
// },
SET_CURRENT_SERIES_ID(state, payload) {
Vue.set(state, "currentSeriesId", payload);
},
ADD_SERIES_TO_PROGRAM(state, payload) {
state.programSeries.push(payload);
},
// ADD_SERIES_TO_PROGRAM(state, payload) {
// state.programSeries.series.push(payload);
// },
DELETE_SERIES_FROM_PROGRAM(state, payload) {
const index = state.programSeries.findIndex((x) => x.id === payload);
Vue.delete(state.programSeries, index)
},
// DELETE_SERIES_FROM_PROGRAM(state, payload) {
// const index = state.programSeries.series.findIndex((x) => x.id === payload);
// Vue.delete(state.programSeries.series, index)
// }
};

@ -0,0 +1,5 @@
export default {
programSeries: [],
// programSeries: {},
currentSeriesId: null,
};

@ -1,12 +1,12 @@
import SportCategoriesRepository from "@/abstraction/repository/sportCategoriesRepository"; import SportCategoryRepository from "@/abstraction/repository/sportCategoryRepository";
export default { export default {
async loadSportCategories({ commit }) { async loadSportCategories({ commit }) {
let repository = new SportCategoriesRepository(); let repository = new SportCategoryRepository();
const resource = await repository.index(); const resource = await repository.index();
commit("SET_SPORT_CATEGORIES", resource.data); commit("SET_SPORT_CATEGORIES", resource.data);
}, },
async loadSportCategory({ commit }, sportCategoryId) { async loadSportCategory({ commit }, sportCategoryId) {
let repository = new SportCategoriesRepository(); let repository = new SportCategoryRepository();
const resource = await repository.show(sportCategoryId); const resource = await repository.show(sportCategoryId);
commit("SET_SPORT_CATEGORY", resource); commit("SET_SPORT_CATEGORY", resource);
}, },

@ -1,9 +1,9 @@
import UserProgramsRepository from "@/abstraction/repository/userProgramsRepository"; import UserProgramRepository from "@/abstraction/repository/userProgramRepository";
export default { export default {
async loadPrograms({ state, commit }) { async loadPrograms({ state, commit }) {
try { try {
let data = { pagination: state.pagination }; let data = { pagination: state.pagination };
let repository = new UserProgramsRepository(); let repository = new UserProgramRepository();
const resource = await repository.index(data); const resource = await repository.index(data);
commit("SET_PROGRAMS", resource.data); commit("SET_PROGRAMS", resource.data);
commit("SET_PAGINATION", resource.pagination); commit("SET_PAGINATION", resource.pagination);

@ -1,21 +1,21 @@
import UsersRepository from "@/abstraction/repository/usersRepository"; import UserRepository from "@/abstraction/repository/userRepository";
export default { export default {
async loadUsers({ state, commit }) { async loadUsers({ state, commit }) {
let data = { pagination: state.pagination, filters: state.filters } let data = { pagination: state.pagination, filters: state.filters }
let repository = new UsersRepository(); let repository = new UserRepository();
const resource = await repository.indexUsers(data); const resource = await repository.indexUsers(data);
commit("SET_USERS", resource.data); commit("SET_USERS", resource.data);
commit("SET_PAGINATION", resource.pagination); commit("SET_PAGINATION", resource.pagination);
}, },
async loadTrainerTrainee({ state, commit }) { async loadTrainerTrainee({ state, commit }) {
let data = { pagination: state.pagination } let data = { pagination: state.pagination }
let repository = new UsersRepository(); let repository = new UserRepository();
const resource = await repository.loadTrainerTrainee(data); const resource = await repository.indexMyTrainees(data);
commit("SET_USERS", resource.data); commit("SET_USERS", resource.data);
commit("SET_PAGINATION", resource.pagination); commit("SET_PAGINATION", resource.pagination);
}, },
async deleteUser({ commit }, userId) { async deleteUser({ commit }, userId) {
let repository = new UsersRepository(); let repository = new UserRepository();
await repository.delete(userId); await repository.delete(userId);
commit('DELETE_USER', userId); commit('DELETE_USER', userId);
}, },

@ -1,8 +1,8 @@
import WorkoutCategoriesRepository from "@/abstraction/repository/workoutCategoriesRepository"; import WorkoutCategoryRepository from "@/abstraction/repository/workoutCategoryRepository";
export default { export default {
async loadWorkoutCategories({ commit }, id) { async loadWorkoutCategories({ commit }, id) {
let repository = new WorkoutCategoriesRepository(); let repository = new WorkoutCategoryRepository();
const resource = await repository.index({filters:{sport_category_id: id}}); const resource = await repository.index({ filters: { sport_category_id: id } });
commit("SET_WORKOUT_CATEGORIES", resource.data); commit("SET_WORKOUT_CATEGORIES", resource.data);
} }
}; };

@ -1,36 +0,0 @@
import WorkoutToSerieRepository from "../../../abstraction/repository/workoutToSerieRepository";
export default {
async loadProgramSerieWorkouts({ commit }, data) {
let repository = new WorkoutToSerieRepository();
const resource = await repository.index(data);
commit("SET_PROGRAM_SERIE_WORKOUTS", resource.data);
},
async loadWorkoutsToSerie({ state, commit }) {
try {
let data = { filters: state.filters };
let repository = new WorkoutToSerieRepository();
const resource = await repository.indexWorkoutToSerie(data);
commit("SET_WORKOUTS_TO_SERIE", resource.data);
} catch (e) {
return e;
}
},
async loadWorkoutToSerie({ commit }, workoutId) {
let repository = new WorkoutToSerieRepository();
const resource = await repository.show(workoutId);
commit("SET_WORKOUT_TO_SERIE", resource);
},
async addWorkoutToSerie({ commit }, data) {
let repository = new WorkoutToSerieRepository();
const resource = await repository.store(data.data, data.serieId, data.workoutId);
if (resource) {
commit("ADD_WORKOUT_TO_SERIE", resource.data);
return resource.data
}
},
async deleteWorkoutFromSerie({ commit }, data) {
let repository = new WorkoutToSerieRepository();
await repository.delete(data);
commit('DELETE_WORKOUT_FROM_SERIE', data.workoutId);
},
};

@ -1,5 +0,0 @@
export default {
getWorkoutsToSerie: state => state.workoutsToSerie,
getWorkoutToSerie: state => state.workoutToSerie,
getWorkouts: state => state.workouts
}

@ -1,23 +0,0 @@
import Vue from "vue";
export default {
SET_PROGRAM_SERIE_WORKOUTS(state, payload) {
Vue.set(state, "workouts", payload)
},
SET_WORKOUTS_TO_SERIE(state, payload) {
Vue.set(state, "workoutsToSerie", payload);
},
SET_WORKOUT_TO_SERIE(state, payload) {
Vue.set(state, "workoutToSerie", payload);
},
SET_FILTER_WORKOUTS_TO_SERIE(state, payload) {
Vue.set(state, "filters", payload);
state.pagination.page = 1
},
ADD_WORKOUT_TO_SERIE(state, payload) {
state.workouts.push(payload);
},
DELETE_WORKOUT_FROM_SERIE(state, workoutId) {
const index = state.workouts.findIndex((x) => x.id === workoutId);
Vue.delete(state.workouts, index)
},
};

@ -0,0 +1,36 @@
import WorkoutToSeriesRepository from "../../../abstraction/repository/workoutToSeriesRepository";
export default {
async loadProgramSeriesWorkouts({ commit }, data) {
let repository = new WorkoutToSeriesRepository();
const resource = await repository.index(data);
commit("SET_PROGRAM_SERIES_WORKOUTS", resource.data);
},
async loadWorkoutsToSeries({ state, commit }) {
try {
let data = { filters: state.filters };
let repository = new WorkoutToSeriesRepository();
const resource = await repository.indexWorkoutToSeries(data);
commit("SET_WORKOUTS_TO_SERIES", resource.data);
} catch (e) {
return e;
}
},
async loadWorkoutToSeries({ commit }, workoutId) {
let repository = new WorkoutToSeriesRepository();
const resource = await repository.show(workoutId);
commit("SET_WORKOUT_TO_SERIES", resource);
},
async addWorkoutToSeries({ commit }, data) {
let repository = new WorkoutToSeriesRepository();
const resource = await repository.store(data.data, data.seriesId, data.workoutId);
if (resource) {
commit("ADD_WORKOUT_TO_SERIES", resource.data);
return resource.data
}
},
async deleteWorkoutFromSeries({ commit }, data) {
let repository = new WorkoutToSeriesRepository();
await repository.delete(data);
commit('DELETE_WORKOUT_FROM_SERIES', data.workoutId);
},
};

@ -0,0 +1,5 @@
export default {
getWorkoutsToSeries: state => state.workoutsToSeries,
getWorkoutToSeries: state => state.workoutToSeries,
getWorkouts: state => state.workouts
}

@ -0,0 +1,22 @@
import Vue from "vue";
export default {
SET_PROGRAM_SERIES_WORKOUTS(state, payload) {
Vue.set(state, "workouts", payload)
},
SET_WORKOUTS_TO_SERIES(state, payload) {
Vue.set(state, "workoutsToSeries", payload);
},
SET_WORKOUT_TO_SERIES(state, payload) {
Vue.set(state, "workoutToSeries", payload);
},
SET_FILTER_WORKOUTS_TO_SERIES(state, payload) {
Vue.set(state, "filters", payload);
},
ADD_WORKOUT_TO_SERIES(state, payload) {
state.workouts.push(payload);
},
DELETE_WORKOUT_FROM_SERIES(state, workoutId) {
const index = state.workouts.findIndex((x) => x.id === workoutId);
Vue.delete(state.workouts, index)
},
};

@ -1,6 +1,6 @@
export default { export default {
workouts: [], workouts: [],
workoutsToSerie: [], workoutsToSeries: [],
workoutToSerie: {}, workoutToSeries: {},
filters: {} filters: {}
}; };
Loading…
Cancel
Save