mirror of
https://github.com/Dannecron/ich-lerne-deutsch.git
synced 2025-12-25 12:52:35 +03:00
Add profile articles section. Some fixes
This commit is contained in:
@@ -1,24 +1,23 @@
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<v-container grid-list-md>
|
<section>
|
||||||
<v-layout row wrap>
|
<div>
|
||||||
<v-flex xs12 sm10 md8 offset-sm1 offset-md2>
|
<v-container fluid>
|
||||||
<v-container fluid>
|
<v-layout row>
|
||||||
<v-layout row>
|
<v-flex md8>
|
||||||
<v-flex md8>
|
<v-text-field label="Поиск" v-model="searchTerm"></v-text-field>
|
||||||
<v-text-field label="Поиск" v-model="searchTerm"></v-text-field>
|
</v-flex>
|
||||||
</v-flex>
|
<v-flex md4>
|
||||||
<v-flex md4>
|
<v-select label="Уровень" :items="levels" v-model="levelTerm" multiple></v-select>
|
||||||
<v-select label="Уровень" :items="levels" v-model="levelTerm" multiple></v-select>
|
</v-flex>
|
||||||
</v-flex>
|
</v-layout>
|
||||||
</v-layout>
|
</v-container>
|
||||||
</v-container>
|
</div>
|
||||||
</v-flex>
|
|
||||||
<v-flex v-for="article in filteredArticles" xs12 sm10 md8 offset-sm1 offset-md2 :key="article.id">
|
<div class="mb-3" v-for="article in filteredArticles" :key="article.id">
|
||||||
<list-item :article="article"></list-item>
|
<list-item :article="article"></list-item>
|
||||||
</v-flex>
|
</div>
|
||||||
</v-layout>
|
</section>
|
||||||
</v-container>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
@@ -26,6 +25,12 @@
|
|||||||
import ListItem from '@/components/Article/Details';
|
import ListItem from '@/components/Article/Details';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
props: {
|
||||||
|
userOnly: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
data: () => ({
|
data: () => ({
|
||||||
levels: ['A1', 'A2', 'B1', 'B2', 'C1', 'C2'],
|
levels: ['A1', 'A2', 'B1', 'B2', 'C1', 'C2'],
|
||||||
searchTerm: null,
|
searchTerm: null,
|
||||||
@@ -39,6 +44,12 @@ export default {
|
|||||||
const { articles, searchTerm, levelTerm } = this;
|
const { articles, searchTerm, levelTerm } = this;
|
||||||
let filteredArticles = articles;
|
let filteredArticles = articles;
|
||||||
|
|
||||||
|
if (this.userOnly) {
|
||||||
|
filteredArticles = filteredArticles.filter(
|
||||||
|
article => this.$store.getters.userData.articles[article.id]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
if (searchTerm) {
|
if (searchTerm) {
|
||||||
filteredArticles = filteredArticles.filter(article =>
|
filteredArticles = filteredArticles.filter(article =>
|
||||||
article.title.toLowerCase().indexOf(searchTerm.toLowerCase()) >= 0
|
article.title.toLowerCase().indexOf(searchTerm.toLowerCase()) >= 0
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ export default {
|
|||||||
...mapGetters(['userData']),
|
...mapGetters(['userData']),
|
||||||
userWords() {
|
userWords() {
|
||||||
return this.userData.words;
|
return this.userData.words;
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
setWords() {
|
setWords() {
|
||||||
|
|||||||
@@ -7,11 +7,11 @@ export const buildDate = (value) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return value.toDate();
|
return value.toDate();
|
||||||
}
|
};
|
||||||
|
|
||||||
const formattedDate = (value) => {
|
const formattedDate = (value) => {
|
||||||
const date = buildDate(value);
|
const date = buildDate(value);
|
||||||
return date ? date.toLocaleDateString() : null;
|
return date ? date.toLocaleDateString() : null;
|
||||||
};
|
};
|
||||||
|
|
||||||
export default formattedDate;
|
export default formattedDate;
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<v-container grid-list-md>
|
||||||
<articles-list></articles-list>
|
<v-layout row wrap>
|
||||||
</div>
|
<v-flex xs12 sm10 offset-sm1>
|
||||||
|
<articles-list></articles-list>
|
||||||
|
</v-flex>
|
||||||
|
</v-layout>
|
||||||
|
</v-container>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
<user-profile-data></user-profile-data>
|
<user-profile-data></user-profile-data>
|
||||||
</v-tab-item>
|
</v-tab-item>
|
||||||
<v-tab-item :key="'myArticles'">
|
<v-tab-item :key="'myArticles'">
|
||||||
|
<articles-list :userOnly="true"></articles-list>
|
||||||
</v-tab-item>
|
</v-tab-item>
|
||||||
<v-tab-item :key="'myWords'">
|
<v-tab-item :key="'myWords'">
|
||||||
<user-profile-words></user-profile-words>
|
<user-profile-words></user-profile-words>
|
||||||
@@ -29,6 +30,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import ArticlesList from '@/components/ArticlesList';
|
||||||
import UserProfileData from '@/components/User/ProfileData';
|
import UserProfileData from '@/components/User/ProfileData';
|
||||||
import UserProfileWords from '@/components/User/ProfileWords';
|
import UserProfileWords from '@/components/User/ProfileWords';
|
||||||
|
|
||||||
@@ -42,6 +44,7 @@ export default {
|
|||||||
components: {
|
components: {
|
||||||
UserProfileData,
|
UserProfileData,
|
||||||
UserProfileWords,
|
UserProfileWords,
|
||||||
|
ArticlesList,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user