diff options
| author | Kana <[email protected]> | 2020-12-28 02:42:18 +0900 |
|---|---|---|
| committer | GitHub <[email protected]> | 2020-12-28 02:42:18 +0900 |
| commit | 4334dda3f671d70102505625499e41b5e3b5190f (patch) | |
| tree | 264886edf00890b9e45c55a32f928b179b393d49 /src | |
| parent | feat: Add warning to nsfw albums (diff) | |
| parent | fix: nsfw album toggle doesn't propagate the changes properly (diff) | |
| download | host.fuwn.me-4334dda3f671d70102505625499e41b5e3b5190f.tar.xz host.fuwn.me-4334dda3f671d70102505625499e41b5e3b5190f.zip | |
Merge pull request #231 from Zephyrrus/dev
fix: nsfw album toggle doesn't propagate the state change properly
Diffstat (limited to 'src')
| -rw-r--r-- | src/api/routes/albums/albumEditPOST.js | 2 | ||||
| -rw-r--r-- | src/api/structures/Route.js | 2 | ||||
| -rw-r--r-- | src/site/components/album/AlbumDetails.vue | 19 | ||||
| -rw-r--r-- | src/site/components/album/AlbumEntry.vue | 3 | ||||
| -rw-r--r-- | src/site/store/albums.js | 4 |
5 files changed, 15 insertions, 15 deletions
diff --git a/src/api/routes/albums/albumEditPOST.js b/src/api/routes/albums/albumEditPOST.js index f104cc1..1022bbd 100644 --- a/src/api/routes/albums/albumEditPOST.js +++ b/src/api/routes/albums/albumEditPOST.js @@ -16,7 +16,7 @@ class albumEditPOST extends Route { try { const updateObj = { - name: name ? name : album.name, + name: name || album.name, nsfw: nsfw === true ? true : nsfw === false ? false : album.nsfw }; await db diff --git a/src/api/structures/Route.js b/src/api/structures/Route.js index ff69e77..bb7ba87 100644 --- a/src/api/structures/Route.js +++ b/src/api/structures/Route.js @@ -16,7 +16,7 @@ const db = require('knex')({ some things like different data types for booleans need to be considered like in the implementation below where sqlite returns 1 and 0 instead of true and false. */ - const booleanFields = ['enabled', 'enableDownload', 'isAdmin']; + const booleanFields = ['enabled', 'enableDownload', 'isAdmin', 'nsfw']; const processResponse = row => { Object.keys(row).forEach(key => { diff --git a/src/site/components/album/AlbumDetails.vue b/src/site/components/album/AlbumDetails.vue index 10925df..81819b2 100644 --- a/src/site/components/album/AlbumDetails.vue +++ b/src/site/components/album/AlbumDetails.vue @@ -100,9 +100,7 @@ <div class="level-right"> <div class="level-item"> <b-switch - v-model="isNsfw" - :false-value="0" - :true-value="1" + :value="nsfw" @input="toggleNsfw()" /> </div> <div class="level-item"> @@ -132,6 +130,10 @@ export default { details: { 'type': Object, 'default': () => ({}) + }, + nsfw: { + 'type': Boolean, + 'default': false } }, data() { @@ -141,10 +143,7 @@ export default { }; }, computed: { - ...mapState(['config', 'auth']), - isNsfw() { - return this.$store.state.albums.list.find(a => a.id === this.albumId).nsfw; - } + ...mapState(['config', 'auth']) }, mounted() { console.log(this.isNsfw); @@ -156,7 +155,7 @@ export default { updateLinkOptionsAction: 'albums/updateLinkOptions', createLinkAction: 'albums/createLink', createCustomLinkAction: 'albums/createCustomLink', - toggleNsfw: 'albums/toggleNsfw', + toggleNsfwAction: 'albums/toggleNsfw', alert: 'alert/set' }), promptDeleteAlbum(id) { @@ -217,9 +216,9 @@ export default { }, async toggleNsfw() { try { - const response = await this.toggleNsfw({ + const response = await this.toggleNsfwAction({ albumId: this.albumId, - nsfw: !this.isNsfw + nsfw: !this.nsfw }); this.alert({ text: response.message, error: false }); } catch (e) { diff --git a/src/site/components/album/AlbumEntry.vue b/src/site/components/album/AlbumEntry.vue index b8a5cb2..8947fa5 100644 --- a/src/site/components/album/AlbumEntry.vue +++ b/src/site/components/album/AlbumEntry.vue @@ -53,7 +53,8 @@ <AlbumDetails v-if="isExpanded" :details="getDetails(album.id)" - :album-id="album.id" /> + :album-id="album.id" + :nsfw="album.nsfw" /> </div> </template> diff --git a/src/site/store/albums.js b/src/site/store/albums.js index b109af6..bbd2db6 100644 --- a/src/site/store/albums.js +++ b/src/site/store/albums.js @@ -127,8 +127,8 @@ export const mutations = { const link = state.albumDetails[albumId].links[foundIndex]; state.albumDetails[albumId].links[foundIndex] = { ...link, ...linkOpts }; }, - updateNsfw(state, { albumId, value }) { - state.list.find(el => el.id === albumId).nsfw = value; + updateNsfw(state, { albumId, nsfw }) { + state.list.find(el => el.id === albumId).nsfw = nsfw; }, removeAlbumLink(state, { albumId, identifier }) { const foundIndex = state.albumDetails[albumId].links.findIndex(({ identifier: id }) => id === identifier); |