replace serie

master
sajjad 3 years ago
parent 2aec8141ed
commit e2d47237a4

@ -1,17 +1,24 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<noscript>
<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>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css">
<title>
<%= htmlWebpackPlugin.options.title %>
</title>
</head>
<body>
<noscript>
<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 url from "@/router/url";
import { getJson, setData } from "../resources/FileResource";
import { getJson, setData } from "../resources/fileResource";
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 url from '@/router/url';
import { getArray } from "../resources/countriesResource";
import { getArray } from "../resources/countryResource";
export default class CountriesRepository {
export default class CountryRepository {
async index() {
let response = await axios.get(url("indexCountries"));
if (response.status === 200) {

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

@ -1,7 +1,7 @@
import axios from "axios";
import url from "@/router/url";
import { getArray, getJson, setData } from "../resources/programSerieResource";
export default class ProgramSerieRepository {
import { getArray, getJson, setData } from "../resources/programSeriesResource";
export default class ProgramSeriesRepository {
async index(courseId) {
let response = await axios.get(url("indexSeries", { course: courseId }));
if (response.status === 200) {
@ -16,12 +16,12 @@ export default class ProgramSerieRepository {
// }
async store(data, courseId) {
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) {
return getJson(response.data.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 url from "@/router/url";
import { getArray, getJson } from "../resources/sportCategoriesResource";
export default class SportCategoriesRepository {
import { getArray, getJson } from "../resources/sportCategoryResource";
export default class SportCategoryRepository {
async index() {
let response = await axios.get(url("indexSportCategories"));
if (response.status === 200) {

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

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

@ -1,8 +1,8 @@
import axios from "axios";
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) {
let params = setQuery(data)
let response = await axios.get(url('indexUsers'), { params })
@ -10,7 +10,7 @@ export default class UsersRepository {
return getArray(response.data)
}
}
async loadTrainerTrainee(data) {
async indexMyTrainees(data) {
let params = setQuery(data)
let response = await axios.get(url('indexTrainerTrainee'), { params })
if (response.status === 200) {

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

@ -1,14 +1,14 @@
import axios from "axios";
import url from "@/router/url";
import { getJson, getArray, setQuery, setData } from "../resources/workoutResource.js";
export default class WorkoutToSerieRepository {
export default class WorkoutToSeriesRepository {
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) {
return getArray(response.data);
}
}
async indexWorkoutToSerie(data) {
async indexWorkoutToSeries(data) {
let params = setQuery(data);
let response = await axios.get(url("indexClientWorkout"), { params });
if (response.status === 200) {
@ -21,14 +21,14 @@ export default class WorkoutToSerieRepository {
return getJson(response.data.data);
}
}
async store(data, serieId, workoutId) {
async store(data, seriesId, workoutId) {
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) {
return response.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) => ({
token: data.token,
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
});
export const getArray = ({ data }) => {
data = data.map(serie => getJson(serie));
data = data.map(series => getJson(series));
return { data }
}
export const setData = (data) => {

@ -218,7 +218,7 @@
<script>
import { mapActions, mapGetters } from "vuex";
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 Dropzone from "../Global/Input/Dropzone.vue";
import toast from "@/utils/toast";

@ -119,7 +119,7 @@
<script>
import SectionTitle from "../Global/Section/SectionTitle.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 { makeid } from "@/utils/math";
const RANDOM_TOKEN = makeid(50);

@ -177,7 +177,7 @@
<script>
import SectionTitle from "../Global/Section/SectionTitle.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 { makeid } from "@/utils/math";
const RANDOM_TOKEN = makeid(50);

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

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

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

@ -3,9 +3,9 @@
class="d-block text-decoration-none text-white"
:to="{
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">
<v-row>
@ -77,10 +77,10 @@ export default {
},
computed: {},
methods: {
...mapActions("programSerie", ["deleteSerieFromProgram"]),
...mapMutations("programSerie", ["SET_CURRENT_SERIE_ID"]),
async setSerieId(id) {
await this.SET_CURRENT_SERIE_ID(id);
...mapActions("programSeries", ["deleteSeriesFromProgram"]),
...mapMutations("programSeries", ["SET_CURRENT_SERIES_ID"]),
async setSeriesId(id) {
await this.SET_CURRENT_SERIES_ID(id);
},
},
};

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

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

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

@ -1,5 +1,10 @@
<template>
<basic-modal width="458" transition="slide-x-transition">
<basic-modal
width="458"
transition="slide-x-transition"
tag="form"
@submit="filterUser"
>
<template #header>
<div class="close__modal">
<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"
text="execute"
icon="WMi-filter"
@click.native="filterUser"
type="submit"
/>
</div>
</template>

@ -1,5 +1,10 @@
<template>
<basic-modal width="458" transition="slide-x-transition">
<basic-modal
width="458"
transition="slide-x-transition"
tag="form"
@submit="filterWorkotus"
>
<template #header>
<div class="close__modal">
<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"
text="execute"
icon="WMi-filter"
@click.native="filterWorkotus"
type="submit"
/>
</div>
</template>

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

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

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

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

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

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

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

@ -1,7 +1,7 @@
import ProductCategoriesRepository from "@/abstraction/repository/productCategoriesRepository";
import ProductCategoryRepository from "@/abstraction/repository/productCategoryRepository";
export default {
async loadProductCategories({ commit }) {
let repository = new ProductCategoriesRepository();
let repository = new ProductCategoryRepository();
const resource = await repository.index();
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 {
async loadSportCategories({ commit }) {
let repository = new SportCategoriesRepository();
let repository = new SportCategoryRepository();
const resource = await repository.index();
commit("SET_SPORT_CATEGORIES", resource.data);
},
async loadSportCategory({ commit }, sportCategoryId) {
let repository = new SportCategoriesRepository();
let repository = new SportCategoryRepository();
const resource = await repository.show(sportCategoryId);
commit("SET_SPORT_CATEGORY", resource);
},

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

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

@ -1,8 +1,8 @@
import WorkoutCategoriesRepository from "@/abstraction/repository/workoutCategoriesRepository";
import WorkoutCategoryRepository from "@/abstraction/repository/workoutCategoryRepository";
export default {
async loadWorkoutCategories({ commit }, id) {
let repository = new WorkoutCategoriesRepository();
const resource = await repository.index({filters:{sport_category_id: id}});
let repository = new WorkoutCategoryRepository();
const resource = await repository.index({ filters: { sport_category_id: id } });
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 {
workouts: [],
workoutsToSerie: [],
workoutToSerie: {},
workoutsToSeries: [],
workoutToSeries: {},
filters: {}
};
Loading…
Cancel
Save