move to top button

This commit is contained in:
Wingy 2021-01-02 17:17:20 -05:00
parent 884c699c8f
commit 5b87859a82
2 changed files with 31 additions and 12 deletions

View file

@ -184,7 +184,12 @@ module.exports = (db) => {
return res.redirect(`/wishlist/${req.params.user}`) return res.redirect(`/wishlist/${req.params.user}`)
} }
const doc = await db.get(req.user._id) const doc = await db.get(req.user._id)
const wishlist = doc.wishlist 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() if (req.params.direction === 'up') wishlist.reverse()
let moveFromIndex let moveFromIndex
wishlist.forEach(wish => { wishlist.forEach(wish => {
@ -197,6 +202,8 @@ module.exports = (db) => {
} }
[wishlist[moveFromIndex], wishlist[moveToIndex]] = [wishlist[moveToIndex], wishlist[moveFromIndex]] [wishlist[moveFromIndex], wishlist[moveToIndex]] = [wishlist[moveToIndex], wishlist[moveFromIndex]]
if (req.params.direction === 'up') wishlist.reverse() if (req.params.direction === 'up') wishlist.reverse()
}
doc.wishlist = wishlist doc.wishlist = wishlist
await db.put(doc) await db.put(doc)
req.flash('success', 'Successfully moved item!') req.flash('success', 'Successfully moved item!')

View file

@ -24,6 +24,7 @@ block content
th Edit Item th Edit Item
th Added By th Added By
if req.params.user === req.user._id if req.params.user === req.user._id
th Move Top
th Move Up th Move Up
th Move Down th Move Down
else else
@ -64,6 +65,17 @@ block content
i.far.fa-edit i.far.fa-edit
td.ugc(data-label='Added By')= item.addedBy td.ugc(data-label='Added By')= item.addedBy
if req.params.user === req.user._id 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') td(data-label='Move Item Up')
form.upForm.inline(method='POST', action=`${_CC.config.base}wishlist/${req.params.user}/move/up/${item.id}`) form.upForm.inline(method='POST', action=`${_CC.config.base}wishlist/${req.params.user}/move/up/${item.id}`)
.field.inline .field.inline