Merge pull request 'add_workout_category_to_program' (#5) from add_workout_category_to_program into master

Reviewed-on: https://git.lilianamodels.com/champya/champya-front/pulls/5
master
sajjad_talkhabi 3 years ago
commit d88ec9f0a7

@ -2,8 +2,14 @@ import axios from "axios";
import url from "@/router/url";
import { getArray, getJson } from "../resources/sportCategoryResource";
export default class SportCategoryRepository {
async index() {
let response = await axios.get(url("indexClientSportCategories"));
async index(data) {
let response = await axios.get(url("indexSportCategories"), { params: data });
if (response.status === 200) {
return getArray(response.data);
}
}
async trainerIndex(data) {
let response = await axios.get(url("indexClientSportCategories"), { params: data });
if (response.status === 200) {
return getArray(response.data);
}

@ -8,6 +8,7 @@ export const getJson = (data) => ({
trainer_id: data.trainer_id,
sport_category: data.trainer ? getJsonSportCategory(data.trainer) : {},
sport_category_id: data.sport_category_id,
program_category_id: data.sport_category?.parent?.id,
thumbnail: data.thumbnail,
verified: data.verified,
status: data.status,

@ -9,4 +9,3 @@ export const getArray = ({ data }) => {
data = data.map((category) => getJson(category));
return { data };
};

@ -1,4 +1,3 @@
import { objectToFormData } from "@/utils/objectToFormData";
import { SetPagination, SetQueriesObject } from "@/utils/setQueriesObject";
export const getJson = (data) => ({
id: data.id,

@ -74,13 +74,11 @@
</div>
</template>
<script>
import SectionTitle from "../Global/Section/SectionTitle.vue";
import BookmarksWorkouts from "./Workouts/Workouts.vue";
import BookmarksPrograms from "./Programs/Programs";
import { mapActions, mapGetters, mapMutations } from "vuex";
export default {
components: {
SectionTitle,
BookmarksWorkouts,
BookmarksPrograms,
},

@ -219,7 +219,6 @@
</template>
<script>
import { mapActions, mapGetters } from "vuex";
import SectionTitle from "../Global/Section/SectionTitle.vue";
import FileRepository from "../../abstraction/repository/fileRepository";
import ImageCropper from "../Global/Input/ImageCropper.vue";
import Dropzone from "../Global/Input/Dropzone.vue";
@ -230,7 +229,6 @@ const RANDOM_TOKEN = makeid(50);
//
export default {
components: {
SectionTitle,
ImageCropper,
Dropzone,
},

@ -48,12 +48,10 @@
</div>
</template>
<script>
import SectionTitle from "../Global/Section/SectionTitle.vue";
import ProductItem from "./Item.vue";
import { mapActions, mapGetters, mapMutations } from "vuex";
export default {
components: {
SectionTitle,
ProductItem,
},
data: () => ({}),

@ -170,14 +170,12 @@
</template>
<script>
import { mapActions, mapGetters } from "vuex";
import SectionTitle from "../Global/Section/SectionTitle.vue";
import ImageCropper from "../Global/Input/ImageCropper.vue";
import FileRepository from "../../abstraction/repository/fileRepository";
import { makeid } from "@/utils/math";
const RANDOM_TOKEN = makeid(50);
export default {
components: {
SectionTitle,
ImageCropper,
},
data: () => ({

@ -154,10 +154,8 @@
</template>
<script>
import { mapActions, mapGetters } from "vuex";
import SectionTitle from "../Global/Section/SectionTitle.vue";
export default {
components: {
SectionTitle,
},
data: () => ({
form: {},

@ -49,14 +49,12 @@
</div>
</template>
<script>
import SectionTitle from "../Global/Section/SectionTitle.vue";
import SeriesItem from "./Item.vue";
import { mapGetters, mapActions } from "vuex";
import AddSeriesModal from "./Modals/AddSeriesModal.vue";
export default {
components: {
SectionTitle,
SeriesItem,
AddSeriesModal,
},

@ -83,10 +83,8 @@
</template>
<script>
import { mapActions } from "vuex";
import SectionTitle from "../../Global/Section/SectionTitle.vue";
export default {
name: "modal_add_series",
components: { SectionTitle },
props: {
programId: {},
},

@ -35,6 +35,18 @@
item-value="id"
label="program category"
:items="getSportCategories"
v-model="form.program_category_id"
@change="changeSportCategories"
></v-autocomplete>
</v-col>
<v-col cols="4">
<v-autocomplete
dark
class="mt-0 pt-0"
item-text="name"
item-value="id"
label="workout subcategory"
:items="getSubSportCategories"
v-model="form.sport_category_id"
></v-autocomplete>
</v-col>
@ -130,7 +142,6 @@
</div>
</template>
<script>
import SectionTitle from "../Global/Section/SectionTitle.vue";
import ImageCropper from "../Global/Input/ImageCropper.vue";
import FileRepository from "../../abstraction/repository/fileRepository";
import { mapGetters, mapActions } from "vuex";
@ -140,7 +151,6 @@ const RANDOM_TOKEN = makeid(50);
export default {
components: {
SectionTitle,
ImageCropper,
},
data: () => ({
@ -160,7 +170,7 @@ export default {
},
},
computed: {
...mapGetters("sportCategories", ["getSportCategories"]),
...mapGetters("sportCategories", ["getSportCategories", "getSubSportCategories"]),
...mapGetters("programs", ["getProgram"]),
programId() {
return this.$route.params.id;
@ -203,6 +213,10 @@ export default {
this.form = this.getProgram;
this.form["batch_id"] = RANDOM_TOKEN;
// this.perviousCropData = this.fileForm.crop_data;
await this.loadSportCategories(this.form.program_category_id);
},
async changeSportCategories() {
await this.loadSportCategories(this.form.program_category_id);
},
removeTags(item) {
this.form.tags.splice(this.form.tags.indexOf(item), 1);

@ -63,7 +63,6 @@
</div>
</template>
<script>
import SectionTitle from "../Global/Section/SectionTitle.vue";
import ProgramItem from "./Item.vue";
import FiltersModal from "./Modals/FiltersModal.vue";
import ProgramDetailModal from "./Modals/Detail.vue";
@ -72,7 +71,6 @@ import { mapGetters, mapActions, mapMutations } from "vuex";
import { UserStorage } from "@/utils/storage";
export default {
components: {
SectionTitle,
ProgramItem,
FiltersModal,
ProgramDetailModal,

@ -91,7 +91,6 @@
</basic-modal>
</template>
<script>
import SectionTitle from "../../Global/Section/SectionTitle.vue";
import { cloneDeep } from "lodash";
import { mapMutations, mapGetters } from "vuex";
let defaultFilter = {
@ -115,7 +114,6 @@ let defaultFilter = {
};
export default {
name: "modal_filters",
components: { SectionTitle },
data: () => ({
filter: cloneDeep(defaultFilter),
programStatus: [

@ -38,11 +38,9 @@
</template>
<script>
import { mapActions, mapGetters, mapMutations } from "vuex";
import SectionTitle from "../Global/Section/SectionTitle.vue";
import TraineeProgramItem from "./Item.vue";
export default {
components: {
SectionTitle,
TraineeProgramItem,
},
computed: {

@ -63,7 +63,6 @@
</div>
</template>
<script>
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";
@ -73,7 +72,6 @@ import { UserStorage } from "@/utils/storage";
export default {
components: {
SectionTitle,
UserItem,
ChangeRoleModal,
FiltersModal,

@ -51,11 +51,9 @@
</template>
<script>
import { mapActions } from "vuex";
import SectionTitle from "../../Global/Section/SectionTitle.vue";
import toast from "@/utils/toast";
export default {
name: "modal_changeRole",
components: { SectionTitle },
props: {
userId: {},
},

@ -83,7 +83,6 @@
</basic-modal>
</template>
<script>
import SectionTitle from "../../Global/Section/SectionTitle.vue";
import { mapMutations, mapGetters } from "vuex";
import { cloneDeep } from "lodash";
import { UserStorage } from "@/utils/storage";
@ -104,7 +103,6 @@ let defaultFilter = {
};
export default {
name: "modal_filters",
components: { SectionTitle },
data: () => ({
filter: cloneDeep(defaultFilter),
role: UserStorage.getRole() ? UserStorage.getRole() : null,

@ -178,7 +178,6 @@
</div>
</template>
<script>
import SectionTitle from "../Global/Section/SectionTitle.vue";
import ImageCropper from "../Global/Input/ImageCropper.vue";
import FileRepository from "../../abstraction/repository/fileRepository";
import { mapActions, mapGetters } from "vuex";
@ -188,7 +187,6 @@ const RANDOM_TOKEN = makeid(50);
export default {
components: {
SectionTitle,
ImageCropper,
},
data: () => ({

@ -11,7 +11,7 @@
:src="
workout.thumbnail ? workout.thumbnail : 'https://via.placeholder.com/1280x720'
"
alt="product image"
alt="workout image"
/>
</v-col>
<v-col cols="8">

@ -58,14 +58,12 @@
</template>
<script>
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,
},

@ -70,7 +70,6 @@
</basic-modal>
</template>
<script>
import SectionTitle from "../../Global/Section/SectionTitle.vue";
import { cloneDeep } from "lodash";
import { mapMutations, mapGetters } from "vuex";
@ -88,7 +87,6 @@ const defaultFilter = {
export default {
name: "modal_filters",
components: { SectionTitle },
data: () => ({
filter: cloneDeep(defaultFilter),
}),

@ -49,14 +49,12 @@
</div>
</template>
<script>
import SectionTitle from "../Global/Section/SectionTitle.vue";
import WorkoutsSeriesItem from "./Item.vue";
import AttachWorkoutModal from "./Modals/AttachWorkoutModal.vue";
import { mapGetters, mapActions, mapMutations } from "vuex";
export default {
components: {
SectionTitle,
WorkoutsSeriesItem,
AttachWorkoutModal,
},

@ -123,7 +123,6 @@
</basic-modal>
</template>
<script>
import SectionTitle from "../../Global/Section/SectionTitle.vue";
import AddWorkoutsItem from "../Item.vue";
import { mapActions, mapGetters, mapMutations } from "vuex";
import { cloneDeep } from "lodash";
@ -139,7 +138,7 @@ const defaultFilter = {
};
export default {
name: "modal_add_workout",
components: { SectionTitle, AddWorkoutsItem },
components: { AddWorkoutsItem },
data: () => ({
filter: cloneDeep(defaultFilter),
search: null,

@ -1,9 +1,11 @@
import SportCategoryRepository from "@/abstraction/repository/sportCategoryRepository";
import { UserStorage } from "@/utils/storage";
let role = UserStorage.getRole() ? UserStorage.getRole() : null;
export default {
async loadSportCategories({ commit }) {
async loadSportCategories({ commit }, parentId) {
let repository = new SportCategoryRepository();
const resource = await repository.index();
commit("SET_SPORT_CATEGORIES", resource.data);
const resource = role === 'admin' ? await repository.index({ parent_id: parentId }) : await repository.trainerIndex({ parent_id: parentId });
parentId ? commit("SET_SUB_SPORT_CATEGORIES", resource.data) : commit("SET_SPORT_CATEGORIES", resource.data);
},
async loadSportCategory({ commit }, sportCategoryId) {
let repository = new SportCategoryRepository();

@ -1,4 +1,5 @@
export default {
getSportCategories: state => state.sportCategories,
getSubSportCategories: state => state.subSportCategories,
getSportCategory: state => state.sportCategory,
}

@ -3,6 +3,9 @@ export default {
SET_SPORT_CATEGORIES(state, payload) {
Vue.set(state, "sportCategories", payload);
},
SET_SUB_SPORT_CATEGORIES(state, payload) {
Vue.set(state, "subSportCategories", payload);
},
SET_SPORT_CATEGORY(state, payload) {
Vue.set(state, "sportCategory", payload);
},

@ -1,4 +1,5 @@
export default {
sportCategories: [],
sportCategory: []
subSportCategories: [],
sportCategory: [],
};

Loading…
Cancel
Save