move to top button
This commit is contained in:
parent
884c699c8f
commit
5b87859a82
2 changed files with 31 additions and 12 deletions
|
@ -184,19 +184,26 @@ module.exports = (db) => {
|
|||
return res.redirect(`/wishlist/${req.params.user}`)
|
||||
}
|
||||
const doc = await db.get(req.user._id)
|
||||
const wishlist = doc.wishlist
|
||||
if (req.params.direction === 'up') wishlist.reverse()
|
||||
let moveFromIndex
|
||||
wishlist.forEach(wish => {
|
||||
if (wish.id === req.params.itemId) moveFromIndex = wishlist.indexOf(wish)
|
||||
})
|
||||
const moveToIndex = wishlist.findIndex(wish => (wishlist.indexOf(wish) > moveFromIndex && wish.addedBy === req.user._id))
|
||||
if (moveToIndex < 0 || moveToIndex > wishlist.length) {
|
||||
req.flash('error', 'Invalid move')
|
||||
return res.redirect(`/wishlist/${req.params.user}`)
|
||||
let wishlist = doc.wishlist
|
||||
if (req.params.direction === 'top') {
|
||||
const item = wishlist.find(item => item.id === req.params.itemId)
|
||||
wishlist = wishlist.filter(item => item.id !== req.params.itemId)
|
||||
wishlist.unshift(item)
|
||||
} else {
|
||||
if (req.params.direction === 'up') wishlist.reverse()
|
||||
let moveFromIndex
|
||||
wishlist.forEach(wish => {
|
||||
if (wish.id === req.params.itemId) moveFromIndex = wishlist.indexOf(wish)
|
||||
})
|
||||
const moveToIndex = wishlist.findIndex(wish => (wishlist.indexOf(wish) > moveFromIndex && wish.addedBy === req.user._id))
|
||||
if (moveToIndex < 0 || moveToIndex > wishlist.length) {
|
||||
req.flash('error', 'Invalid move')
|
||||
return res.redirect(`/wishlist/${req.params.user}`)
|
||||
}
|
||||
[wishlist[moveFromIndex], wishlist[moveToIndex]] = [wishlist[moveToIndex], wishlist[moveFromIndex]]
|
||||
if (req.params.direction === 'up') wishlist.reverse()
|
||||
}
|
||||
[wishlist[moveFromIndex], wishlist[moveToIndex]] = [wishlist[moveToIndex], wishlist[moveFromIndex]]
|
||||
if (req.params.direction === 'up') wishlist.reverse()
|
||||
|
||||
doc.wishlist = wishlist
|
||||
await db.put(doc)
|
||||
req.flash('success', 'Successfully moved item!')
|
||||
|
|
|
@ -24,6 +24,7 @@ block content
|
|||
th Edit Item
|
||||
th Added By
|
||||
if req.params.user === req.user._id
|
||||
th Move Top
|
||||
th Move Up
|
||||
th Move Down
|
||||
else
|
||||
|
@ -64,6 +65,17 @@ block content
|
|||
i.far.fa-edit
|
||||
td.ugc(data-label='Added By')= item.addedBy
|
||||
if req.params.user === req.user._id
|
||||
td(data-label='Move Item Top')
|
||||
form.topForm.inline(method='POST', action=`${_CC.config.base}wishlist/${req.params.user}/move/top/${item.id}`)
|
||||
.field.inline
|
||||
.control.inline
|
||||
button.button.is-text(
|
||||
type='submit',
|
||||
style='text-decoration: none;',
|
||||
disabled=index === firstCanSee
|
||||
)
|
||||
span.icon
|
||||
i.fas.fa-angle-double-up
|
||||
td(data-label='Move Item Up')
|
||||
form.upForm.inline(method='POST', action=`${_CC.config.base}wishlist/${req.params.user}/move/up/${item.id}`)
|
||||
.field.inline
|
||||
|
|
Loading…
Reference in a new issue