refactor wishlist manipulation code (#66)

This commit is contained in:
Wingy 2022-12-10 17:00:24 -05:00 committed by GitHub
parent 0d7d73744c
commit 0b26ec0ce4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 521 additions and 361 deletions

View file

@ -32,108 +32,107 @@ block content
th= lang('WISHLIST_PLEDGE')
th= lang('WISHLIST_DELETE')
tbody
each item, index in wishlist
if req.user._id === item.addedBy || req.params.user !== req.user._id
tr(id=item.id)
td.rank= index + 1
td
figure(style='width: 100%; margin: 0;')
img(src=item.image, style='width: 100%; max-height: 20em; object-fit: contain;')
if item.url
td.ugc(data-label='Name')
a(
href=item.url,
rel='noopener noreferrer',
target='_blank'
)= (item.name ? item.name : item.url)
else
td.ugc(data-label=lang('WISHLIST_NAME'))= item.name
if _CC.config.wishlist.note.markdown
td.ugc(data-label=lang('WISHLIST_NOTE'))
div!= item.note
else
td.ugc(data-label=lang('WISHLIST_NOTE'))= item.note
td.ugc(data-label=lang('WISHLIST_PRICE'))= item.price
td(data-label=lang('WISHLIST_EDIT_ITEM'))
form.inline(method='GET', action=`${_CC.config.base}wishlist/${req.params.user}/note/${item.id}`)
.field.inline
.control.inline
button.button.is-text(
type='submit',
style='text-decoration: none;'
disabled=item.addedBy !== req.user._id
)
span.icon
i.far.fa-edit
td.ugc(data-label=lang('WISHLIST_ADDED_BY'))= item.addedBy
if req.params.user === req.user._id
td(data-label=lang('WISHLIST_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=lang('WISHLIST_MOVE_ITEM_UP'))
form.upForm.inline(method='POST', action=`${_CC.config.base}wishlist/${req.params.user}/move/up/${item.id}`)
.field.inline
.control.inline
button.button.is-text(
type='submit',
style='text-decoration: none;',
disabled=index === firstCanSee
)
span.icon
i.fas.fa-arrow-up
td(data-label=lang('WISHLIST_MOVE_ITEM_DOWN'))
form.downForm.inline(method='POST', action=`${_CC.config.base}wishlist/${req.params.user}/move/down/${item.id}`)
.field.inline
.control.inline
button.button.is-text(
type='submit',
style='text-decoration: none;',
disabled=index === lastCanSee
)
span.icon
i.fas.fa-arrow-down
else
td(data-label=lang('WISHLIST_PLEDGE'))
if req.params.user !== req.user._id && !item.pledgedBy
form.inline(method='POST', action=`${_CC.config.base}wishlist/${req.params.user}/pledge/${item.id}`)
.field.inline
.control.inline
input.inline.button.is-primary(type='submit' value=lang('WISHLIST_PLEDGE_ITEM'))
if item.pledgedBy === req.user._id
form.inline(method='POST', action=`${_CC.config.base}wishlist/${req.params.user}/unpledge/${item.id}`)
.field.inline
.control.inline
input.inline.button(type='submit' value=lang('WISHLIST_UNPLEDGE'))
if item.pledgedBy && item.pledgedBy !== req.user._id
if item.pledgedBy === '_CCUNKNOWN'
span.ugc=lang('WISHLIST_PLEDGED_GUEST')
else
span.ugc=lang('WISHLIST_PLEDGED', item.pledgedBy)
td(data-label='Delete Item')
form.inline(
method='POST',
action=`${_CC.config.base}wishlist/${req.params.user}/remove/${item.id}`
)
each item, index in items
tr(id=item.id)
td.rank= index + 1
td
figure(style='width: 100%; margin: 0;')
img(src=item.image, style='width: 100%; max-height: 20em; object-fit: contain;')
if item.url
td.ugc(data-label='Name')
a(
href=item.url,
rel='noopener noreferrer',
target='_blank'
)= (item.name ? item.name : item.url)
else
td.ugc(data-label=lang('WISHLIST_NAME'))= item.name
if _CC.config.wishlist.note.markdown
td.ugc(data-label=lang('WISHLIST_NOTE'))
div!= item.note
else
td.ugc(data-label=lang('WISHLIST_NOTE'))= item.note
td.ugc(data-label=lang('WISHLIST_PRICE'))= item.price
td(data-label=lang('WISHLIST_EDIT_ITEM'))
form.inline(method='GET', action=`${_CC.config.base}wishlist/${req.params.user}/note/${item.id}`)
.field.inline
.control.inline
button.button.is-text(
type='submit',
style='text-decoration: none;'
disabled=item.addedBy !== req.user._id
)
span.icon
i.far.fa-edit
td.ugc(data-label=lang('WISHLIST_ADDED_BY'))= item.addedBy
if req.params.user === req.user._id
td(data-label=lang('WISHLIST_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=item.addedBy !== req.user._id
disabled=index === 0
)
span.icon
i.fas.fa-trash
i.fas.fa-angle-double-up
td(data-label=lang('WISHLIST_MOVE_ITEM_UP'))
form.upForm.inline(method='POST', action=`${_CC.config.base}wishlist/${req.params.user}/move/up/${item.id}`)
.field.inline
.control.inline
button.button.is-text(
type='submit',
style='text-decoration: none;',
disabled=index === 0
)
span.icon
i.fas.fa-arrow-up
td(data-label=lang('WISHLIST_MOVE_ITEM_DOWN'))
form.downForm.inline(method='POST', action=`${_CC.config.base}wishlist/${req.params.user}/move/down/${item.id}`)
.field.inline
.control.inline
button.button.is-text(
type='submit',
style='text-decoration: none;',
disabled=index === items.length - 1
)
span.icon
i.fas.fa-arrow-down
else
td(data-label=lang('WISHLIST_PLEDGE'))
if req.params.user !== req.user._id && !item.pledgedBy
form.inline(method='POST', action=`${_CC.config.base}wishlist/${req.params.user}/pledge/${item.id}`)
.field.inline
.control.inline
input.inline.button.is-primary(type='submit' value=lang('WISHLIST_PLEDGE_ITEM'))
if item.pledgedBy === req.user._id
form.inline(method='POST', action=`${_CC.config.base}wishlist/${req.params.user}/unpledge/${item.id}`)
.field.inline
.control.inline
input.inline.button(type='submit' value=lang('WISHLIST_UNPLEDGE'))
if item.pledgedBy && item.pledgedBy !== req.user._id
if item.pledgedBy === '_CCUNKNOWN'
span.ugc=lang('WISHLIST_PLEDGED_GUEST')
else
span.ugc=lang('WISHLIST_PLEDGED', item.pledgedBy)
td(data-label='Delete Item')
form.inline(
method='POST',
action=`${_CC.config.base}wishlist/${req.params.user}/remove/${item.id}`
)
.field.inline
.control.inline
button.button.is-text(
type='submit',
style='text-decoration: none;',
disabled=item.addedBy !== req.user._id
)
span.icon
i.fas.fa-trash
else
each item, index in wishlist
each item, index in items
if req.user._id === item.addedBy || req.params.user !== req.user._id
.box
if item.price
@ -187,12 +186,12 @@ block content
.field.inline
.control.inline
input.inline.button(type='submit', value=lang('WISHLIST_EDIT_ITEM'))
if index !== firstCanSee && req.user._id === req.params.user
if index !== 0 && req.user._id === req.params.user
form.inline(method='POST', action=`${_CC.config.base}wishlist/${req.params.user}/move/up/${item.id}`)
.field.inline
.control.inline
input.inline.button(type='submit' value=lang('WISHLIST_MOVE_ITEM_UP'))
if index !== lastCanSee && req.user._id === req.params.user
if index !== items.length - 1 && req.user._id === req.params.user
form.inline(method='POST', action=`${_CC.config.base}wishlist/${req.params.user}/move/down/${item.id}`)
.field.inline
.control.inline
@ -226,7 +225,7 @@ block content
block print
h1 #{req.params.user}'s Wishlist
.print-gifts
each item, index in wishlist.filter(item => item.addedBy === req.params.user)
each item, index in items.filter(item => item.addedBy === req.params.user)
.print-gift(style='page-break-inside: avoid;')
if index > 0
hr(style='margin-top: .5em; margin-bottom: .5em; background-color: black;')