From 41851a09a804dd2a7d1ad462de3670534f44f908 Mon Sep 17 00:00:00 2001 From: winkidney Date: Sat, 7 Dec 2019 16:43:38 +0800 Subject: [PATCH] Feature: Add PinEditorUI filter for buttons --- pinry-spa/src/components/Pins.vue | 47 +++++++++++++++++-- pinry-spa/src/components/api.js | 8 +++- .../src/components/editors/PinEditorUI.vue | 22 +++++++-- 3 files changed, 67 insertions(+), 10 deletions(-) diff --git a/pinry-spa/src/components/Pins.vue b/pinry-spa/src/components/Pins.vue index c4cd5b0..b14187b 100644 --- a/pinry-spa/src/components/Pins.vue +++ b/pinry-spa/src/components/Pins.vue @@ -23,6 +23,8 @@ { + if (user === null) { + self.editorMeta.user.loggedIn = false; + self.editorMeta.user.meta = {}; + } else { + self.editorMeta.user.meta = user; + self.editorMeta.user.loggedIn = true; + } + }, + ); + }, reset() { const data = initialData(); Object.entries(data).forEach( @@ -224,7 +249,19 @@ export default { } else if (this.pinFilters.userFilter) { promise = API.fetchPins(this.status.offset, null, this.pinFilters.userFilter); } else if (this.pinFilters.boardFilter) { - promise = API.fetchPinsForBoard(this.pinFilters.boardFilter); + promise = new Promise( + (resolve, reject) => { + API.fetchPinsForBoard(this.pinFilters.boardFilter).then( + (resp) => { + this.editorMeta.currentBoard = resp.data.board; + resolve(resp); + }, + (error) => { + reject(error); + }, + ); + }, + ); } else if (this.pinFilters.idFilter) { promise = API.fetchPin(this.pinFilters.idFilter); } else { diff --git a/pinry-spa/src/components/api.js b/pinry-spa/src/components/api.js index c108a97..86c0870 100644 --- a/pinry-spa/src/components/api.js +++ b/pinry-spa/src/components/api.js @@ -23,6 +23,10 @@ const Board = { }, ); }, + get(boardId) { + const url = `${API_PREFIX}boards/${boardId}/`; + return axios.get(url); + }, fetchFullList(username) { const url = `${API_PREFIX}boards-auto-complete/?submitter__username=${username}`; return axios.get(url); @@ -123,12 +127,12 @@ function fetchPin(pinId) { } function fetchPinsForBoard(boardId) { - const url = `${API_PREFIX}boards/${boardId}`; + const url = `${API_PREFIX}boards/${boardId}/`; return new Promise( (resolve, reject) => { axios.get(url).then( (resp) => { - resolve({ data: { results: resp.data.pins_detail, next: null } }); + resolve({ data: { results: resp.data.pins_detail, next: null, board: resp.data } }); }, error => reject(error), ); diff --git a/pinry-spa/src/components/editors/PinEditorUI.vue b/pinry-spa/src/components/editors/PinEditorUI.vue index 0bc26d9..16570a0 100644 --- a/pinry-spa/src/components/editors/PinEditorUI.vue +++ b/pinry-spa/src/components/editors/PinEditorUI.vue @@ -1,7 +1,7 @@