aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKana <[email protected]>2020-12-28 02:42:18 +0900
committerGitHub <[email protected]>2020-12-28 02:42:18 +0900
commit4334dda3f671d70102505625499e41b5e3b5190f (patch)
tree264886edf00890b9e45c55a32f928b179b393d49 /src
parentfeat: Add warning to nsfw albums (diff)
parentfix: nsfw album toggle doesn't propagate the changes properly (diff)
downloadhost.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.js2
-rw-r--r--src/api/structures/Route.js2
-rw-r--r--src/site/components/album/AlbumDetails.vue19
-rw-r--r--src/site/components/album/AlbumEntry.vue3
-rw-r--r--src/site/store/albums.js4
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);