diff --git a/core/views.py b/core/views.py index 277db09..882aadb 100644 --- a/core/views.py +++ b/core/views.py @@ -36,7 +36,8 @@ class PinViewSet(viewsets.ModelViewSet): class BoardViewSet(viewsets.ModelViewSet): serializer_class = api.BoardSerializer - filter_backends = (DjangoFilterBackend, OrderingFilter) + filter_backends = (DjangoFilterBackend, OrderingFilter, SearchFilter) + search_fields = ("name", ) filter_fields = ("submitter__username", ) ordering_fields = ('-id', ) ordering = ('-id', ) diff --git a/pinry-spa/src/components/Boards.vue b/pinry-spa/src/components/Boards.vue index e0341cd..0fbc397 100644 --- a/pinry-spa/src/components/Boards.vue +++ b/pinry-spa/src/components/Boards.vue @@ -118,14 +118,15 @@ export default { BoardEditorUI, }, data: initialData, - props: ['boardUsername'], + props: ['filters'], watch: { - boardUsername() { + filters() { this.reset(); }, }, methods: { initialize() { + this.initializeMeta(); this.fetchMore(true); }, initializeMeta() { @@ -205,8 +206,21 @@ export default { if (!this.shouldFetchMore(created)) { return; } + let promise; + if (this.filters.boardUsername) { + promise = API.fetchBoardForUser( + this.filters.boardUsername, + this.status.offset, + ); + } else if (this.filters.boardNameContains) { + promise = API.Board.fetchListWhichContains( + this.filters.boardNameContains, + this.status.offset, + ); + } else { + return; + } this.status.loading = true; - const promise = API.fetchBoardForUser(this.boardUsername, this.status.offset); promise.then( (resp) => { const { results, next } = resp.data; @@ -227,7 +241,6 @@ export default { created() { bus.bus.$on(bus.events.refreshBoards, this.reset); this.registerScrollEvent(); - this.initializeMeta(); this.initialize(); }, }; diff --git a/pinry-spa/src/components/PHeader.vue b/pinry-spa/src/components/PHeader.vue index 572ea44..8c725ea 100644 --- a/pinry-spa/src/components/PHeader.vue +++ b/pinry-spa/src/components/PHeader.vue @@ -43,7 +43,7 @@ v-if="user.loggedIn" class="navbar-item has-dropdown is-hoverable"> - My Collections + My