sorting by rank + pagination

This commit is contained in:
hamdy
2020-11-13 14:09:21 +02:00
parent 79e935346e
commit f01f9ba667
3 changed files with 56 additions and 9 deletions

View File

@@ -9,6 +9,15 @@
/> />
</div> </div>
</div> </div>
<div class="pagination flex justify-center mb-8">
<Pagination
:baseUrl="baseurl"
:currentPage="$page.entries.pageInfo.currentPage"
:totalPages="$page.entries.pageInfo.totalPages"
:maxVisibleButtons="5"
v-if="$page.entries.pageInfo.totalPages > 1"
/>
</div>
</Layout> </Layout>
</template> </template>
@@ -16,7 +25,7 @@
query($page:Int) { query($page:Int) {
entries: allBlog(perPage: 9, page: $page) @paginate { entries: allBlog(perPage: 10, page: $page, sortBy: "created", order: DESC) @paginate {
totalCount totalCount
pageInfo { pageInfo {
totalPages totalPages
@@ -49,6 +58,7 @@ query($page:Int) {
<script> <script>
import PostListItem from "~/components/PostListItem.vue"; import PostListItem from "~/components/PostListItem.vue";
import Pagination from "~/components/Pagination.vue";
export default { export default {
metaInfo: { metaInfo: {
@@ -56,6 +66,12 @@ export default {
}, },
components: { components: {
PostListItem, PostListItem,
Pagination
},
computed: {
baseurl: function() {
return ""
}
}, },
}; };
</script> </script>

View File

@@ -5,13 +5,22 @@
<PostListItem v-for="edge in $page.entries.edges" :key="edge.node.id" :record="edge.node" /> <PostListItem v-for="edge in $page.entries.edges" :key="edge.node.id" :record="edge.node" />
</div> </div>
</div> </div>
<div class="pagination flex justify-center mb-8">
<Pagination
:baseUrl="baseurl"
:currentPage="$page.entries.pageInfo.currentPage"
:totalPages="$page.entries.pageInfo.totalPages"
:maxVisibleButtons="5"
v-if="$page.entries.pageInfo.totalPages > 1"
/>
</div>
</Layout> </Layout>
</template> </template>
<page-query> <page-query>
query($page:Int) { query($page:Int) {
entries: allPerson(perPage: 80, page: $page) @paginate { entries: allPerson(perPage: 20, page: $page, sortBy: "rank", order: DESC) @paginate {
totalCount totalCount
pageInfo { pageInfo {
totalPages totalPages
@@ -41,7 +50,7 @@ query($page:Int) {
</page-query> </page-query>
<script> <script>
import Pagination from "~/components/Pagination.vue";
import PostListItem from '~/components/PostListItem.vue'; import PostListItem from '~/components/PostListItem.vue';
export default { export default {
@@ -49,7 +58,13 @@ export default {
title: "People" title: "People"
}, },
components: { components: {
PostListItem PostListItem,
} Pagination
},
computed: {
baseurl: function() {
return "/people/"
}
},
}; };
</script> </script>

View File

@@ -5,13 +5,22 @@
<PostListItem v-for="edge in $page.entries.edges" :key="edge.node.id" :record="edge.node" /> <PostListItem v-for="edge in $page.entries.edges" :key="edge.node.id" :record="edge.node" />
</div> </div>
</div> </div>
<div class="pagination flex justify-center mb-8">
<Pagination
:baseUrl="baseurl"
:currentPage="$page.entries.pageInfo.currentPage"
:totalPages="$page.entries.pageInfo.totalPages"
:maxVisibleButtons="5"
v-if="$page.entries.pageInfo.totalPages > 1"
/>
</div>
</Layout> </Layout>
</template> </template>
<page-query> <page-query>
query($page:Int) { query($page:Int) {
entries: allProject(perPage: 40, page: $page) @paginate { entries: allProject(perPage: 10, page: $page, sortBy: "rank", order: DESC) @paginate {
totalCount totalCount
pageInfo { pageInfo {
totalPages totalPages
@@ -20,6 +29,7 @@ query($page:Int) {
edges { edges {
node { node {
title title
path
members members
rank rank
linkedin linkedin
@@ -45,15 +55,21 @@ query($page:Int) {
</page-query> </page-query>
<script> <script>
import PostListItem from '~/components/PostListItem.vue'; import PostListItem from '~/components/PostListItem.vue';
import Pagination from "~/components/Pagination.vue";
export default { export default {
metaInfo: { metaInfo: {
title: "Projects" title: "Projects"
}, },
components: { components: {
PostListItem PostListItem,
} Pagination
},
computed: {
baseurl: function() {
return "/projects/"
}
},
}; };
</script> </script>