From 855f9a4827b57fa0a5ecb4077b777407591f0082 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Tue, 24 Sep 2024 01:56:38 +0000
Subject: [PATCH 01/20] docs(contributor): contrib-readme-action has updated
readme
---
README.md | 31 ++++++++++++-------------------
1 file changed, 12 insertions(+), 19 deletions(-)
diff --git a/README.md b/README.md
index 4b645501..c6747413 100644
--- a/README.md
+++ b/README.md
@@ -156,10 +156,10 @@ Hi, I'm Wingy. I made this app. My website is [samwing.dev](https://samwing.dev)
-
-
-
-
- jskiddie
-
|
From c73b3e9afb694a5a179d8d8b885d59ee8bb3eec4 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Wed, 2 Oct 2024 00:29:34 +0000
Subject: [PATCH 10/20] docs(contributor): contrib-readme-action has updated
readme
---
README.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index d059073a..73600610 100644
--- a/README.md
+++ b/README.md
@@ -158,10 +158,10 @@ Hi, I'm Wingy. I made this app. My website is [samwing.dev](https://samwing.dev)
From fe03827d0c03ad467ca04d4d72976d2832892b16 Mon Sep 17 00:00:00 2001
From: Christopher Blake
Date: Wed, 9 Oct 2024 21:08:27 -0300
Subject: [PATCH 11/20] Ability to create pledge only users
---
src/languages/en-us.ts | 4 ++++
src/routes/adminSettings/index.js | 20 ++++++++++++++++++++
src/routes/setup/index.js | 3 ++-
src/views/admin-user-edit.pug | 9 +++++++++
src/views/adminSettings.pug | 8 +++++++-
src/views/includes/navbar.pug | 3 ++-
src/views/profile.pug | 31 ++++++++++++++++---------------
src/views/wishlists.pug | 4 ++--
8 files changed, 62 insertions(+), 20 deletions(-)
diff --git a/src/languages/en-us.ts b/src/languages/en-us.ts
index 6055cc63..4bc33cb0 100644
--- a/src/languages/en-us.ts
+++ b/src/languages/en-us.ts
@@ -15,6 +15,7 @@ export const strings = {
ADMIN_SETTINGS_USERS_ADD_HEADER: 'Add user',
ADMIN_SETTINGS_USERS_ADD_PLACEHOLDER: 'john',
ADMIN_SETTINGS_USERS_ADD_USERNAME: 'Username',
+ ADMIN_SETTINGS_USERS_ADD_PLEDGE_ONLY: 'Pledge only user?',
ADMIN_SETTINGS_USERS_ADD_ERROR_USERNAME_EMPTY: 'Username cannot be empty.',
ADMIN_SETTINGS_USERS_EDIT_DELETE_FAIL_ADMIN: 'Failed to remove: user is admin.',
ADMIN_SETTINGS_USERS_EDIT_DELETE_SUCCESS: name => `Successfully removed user ${name}`,
@@ -28,11 +29,14 @@ export const strings = {
ADMIN_SETTINGS_USERS_EDIT_PROMOTE_SUCCESS: name => `${name} is now an admin.`,
ADMIN_SETTINGS_USERS_EDIT_RENAMED_USER: 'Renamed user!',
ADMIN_SETTINGS_USERS_EDIT_SAME_NAME: 'Username is same as new username.',
+ ADMIN_USER_EDIT_PLEDGE_ONLY: 'Pledge only',
+ ADMIN_USER_EDIT_PLEDGE_ONLY_BUTTON: 'Change pledge only',
ADMIN_SETTINGS_USERS_EDIT: 'Edit',
ADMIN_SETTINGS_USERS_HEADER: 'Users',
ADMIN_SETTINGS_VERSION_INFO: 'Version Info',
ADMIN_SETTINGS_TABLE_USERNAME: 'Username',
ADMIN_SETTINGS_TABLE_ADMIN_USER: 'Admin',
+ ADMIN_SETTINGS_TABLE_PLEDGE_ONLY: 'Pledge only',
ADMIN_SETTINGS_TABLE_WISHLIST_COUNT: 'Wishlist items',
ADMIN_SETTINGS_TABLE_EDIT: 'Edit',
ADMIN_USER_EDIT_ACCOUNT_UNCONFIRMED: "This account hasn't been confirmed.",
diff --git a/src/routes/adminSettings/index.js b/src/routes/adminSettings/index.js
index 87bbcac8..bd41adb8 100644
--- a/src/routes/adminSettings/index.js
+++ b/src/routes/adminSettings/index.js
@@ -44,10 +44,14 @@ export default function ({ db, ensurePfp }) {
})
}
+ const pledgeOnlyValue = req.body.newPledgeOnlyUser
+ const pledgeOnly = pledgeOnlyValue === 'on'
+
await db.put({
_id: username,
admin: false,
wishlist: [],
+ pledgeOnly: pledgeOnly,
signupToken: nanoid(SECRET_TOKEN_LENGTH),
expiry: new Date().getTime() + SECRET_TOKEN_LIFETIME
@@ -138,6 +142,22 @@ export default function ({ db, ensurePfp }) {
}
})
+ router.post('/edit/pledgeOnly/:userToChange', verifyAuth(), async (req, res) => {
+
+ const newPledgeValue = req.body.editPledgeOnlyUser
+ const newPledge = newPledgeValue === 'on'
+
+ const userDoc = await db.get(req.params.userToChange)
+ userDoc.pledgeOnly = newPledge
+ try {
+ await db.put(userDoc)
+ await _CC.wishlistManager.clearCache()
+ } catch (error) {
+ req.flash('error', error.message)
+ return res.redirect(`/admin-settings/edit/${req.params.userToChange}`)
+ }
+ })
+
router.post('/edit/impersonate/:userToEdit', verifyAuth(), async (req, res) => {
if (!req.user.admin) return res.redirect('/')
req.login({ _id: req.params.userToEdit }, err => {
diff --git a/src/routes/setup/index.js b/src/routes/setup/index.js
index 36cfa46d..848781f2 100644
--- a/src/routes/setup/index.js
+++ b/src/routes/setup/index.js
@@ -27,7 +27,8 @@ export default function ({ db, ensurePfp }) {
_id: username,
password: adminPasswordHash,
admin: true,
- wishlist: []
+ wishlist: [],
+ pledgeOnly: false
})
resolve()
})
diff --git a/src/views/admin-user-edit.pug b/src/views/admin-user-edit.pug
index c7869334..0976aa00 100644
--- a/src/views/admin-user-edit.pug
+++ b/src/views/admin-user-edit.pug
@@ -44,6 +44,15 @@ block content
.field
.control
input.button.is-primary(type='submit' value=lang('ADMIN_USER_EDIT_CHANGE_USERNAME'))
+ .column.is-narrow
+ h2= lang('ADMIN_USER_EDIT_PLEDGE_ONLY')
+ form(action=`${_CC.config.base}admin-settings/edit/pledgeOnly/${user._id}`, method='POST')
+ .field
+ .control
+ input(type='checkbox', name='editPledgeOnlyUser', checked=user.pledgeOnly)
+ .field
+ .control
+ input.input.button(type='submit', value=lang('ADMIN_USER_EDIT_PLEDGE_ONLY_BUTTON'), style='margin-top: 1em;')
.column.is-narrow
h2= lang('ADMIN_USER_EDIT_ADMIN')
//- Yes, ternary exists, but I think the code is cleaner with a more "naive" style :)
diff --git a/src/views/adminSettings.pug b/src/views/adminSettings.pug
index d834952a..a53d68e6 100644
--- a/src/views/adminSettings.pug
+++ b/src/views/adminSettings.pug
@@ -6,13 +6,15 @@ block content
thead
th=lang('ADMIN_SETTINGS_TABLE_USERNAME')
th=lang('ADMIN_SETTINGS_TABLE_ADMIN_USER')
+ th=lang('ADMIN_SETTINGS_TABLE_PLEDGE_ONLY')
th=lang('ADMIN_SETTINGS_TABLE_WISHLIST_COUNT')
th=lang('ADMIN_SETTINGS_TABLE_EDIT')
tbody
each user in users
tr(id=user.id)
td=user.id
- td=user.doc.admin
+ td=user.doc.admin
+ td=user.doc.pledgeOnly
td=Object.keys(user.doc.wishlist).length
td
a(href=`${_CC.config.base}admin-settings/edit/${user.id}`)
@@ -30,6 +32,10 @@ block content
input.input(type='text', name='newUserUsername', placeholder=lang('ADMIN_SETTINGS_USERS_ADD_PLACEHOLDER'))
span.icon.is-small.is-left
i.fas.fa-user
+ .field
+ label.label= lang('ADMIN_SETTINGS_USERS_ADD_PLEDGE_ONLY')
+ .control.has-icons-left
+ input(type='checkbox', name='newPledgeOnlyUser')
.field
.control
input.button.is-primary(type='submit' value=lang('ADMIN_SETTINGS_USERS_ADD_BUTTON'))
diff --git a/src/views/includes/navbar.pug b/src/views/includes/navbar.pug
index c110f53a..ce35d6be 100644
--- a/src/views/includes/navbar.pug
+++ b/src/views/includes/navbar.pug
@@ -28,7 +28,8 @@ nav.navbar.is-fixed-top(role='navigation', aria-label='main navigation',style='b
.navbar-item.has-dropdown.is-hoverable
a.navbar-link= req.user._id
.navbar-dropdown
- +navBarLink(`${_CC.config.base}wishlist/${req.user._id}`, lang('NAVBAR_WISHLIST'))
+ if req.user.pledgeOnly != true
+ +navBarLink(`${_CC.config.base}wishlist/${req.user._id}`, lang('NAVBAR_WISHLIST'))
+navBarLink(`${_CC.config.base}profile`, lang('NAVBAR_PROFILE'))
if req.user.admin
+navBarLink(`${_CC.config.base}admin-settings`, lang('NAVBAR_ADMIN'))
diff --git a/src/views/profile.pug b/src/views/profile.pug
index 72390d12..c243bd23 100644
--- a/src/views/profile.pug
+++ b/src/views/profile.pug
@@ -36,21 +36,22 @@ block content
button.button.is-primary(type='submit')
span.icon
i.fas.fa-save
- h2= lang('PROFILE_SHARED_INFORMATION')
- form(action=`${_CC.config.base}profile/info`, method='POST')
- .columns.is-multiline.is-mobile
- .column.is-narrow
- +sharedInfoProp('shoeSize', 'PROFILE_SHOE_SIZE')
- +sharedInfoProp('ringSize', 'PROFILE_RING_SIZE')
- +sharedInfoProp('dressSize', 'PROFILE_DRESS_SIZE')
- .column.is-narrow
- +sharedInfoProp('sweaterSize', 'PROFILE_SWEATER_SIZE')
- +sharedInfoProp('shirtSize', 'PROFILE_SHIRT_SIZE')
- +sharedInfoProp('pantsSize', 'PROFILE_PANTS_SIZE')
- .column.is-narrow
- +sharedInfoProp('coatSize', 'PROFILE_COAT_SIZE')
- +sharedInfoProp('hatSize', 'PROFILE_HAT_SIZE')
- +sharedInfoProp('phoneModel', 'PROFILE_PHONE_MODEL')
+ if req.user.pledgeOnly != true
+ h2= lang('PROFILE_SHARED_INFORMATION')
+ form(action=`${_CC.config.base}profile/info`, method='POST')
+ .columns.is-multiline.is-mobile
+ .column.is-narrow
+ +sharedInfoProp('shoeSize', 'PROFILE_SHOE_SIZE')
+ +sharedInfoProp('ringSize', 'PROFILE_RING_SIZE')
+ +sharedInfoProp('dressSize', 'PROFILE_DRESS_SIZE')
+ .column.is-narrow
+ +sharedInfoProp('sweaterSize', 'PROFILE_SWEATER_SIZE')
+ +sharedInfoProp('shirtSize', 'PROFILE_SHIRT_SIZE')
+ +sharedInfoProp('pantsSize', 'PROFILE_PANTS_SIZE')
+ .column.is-narrow
+ +sharedInfoProp('coatSize', 'PROFILE_COAT_SIZE')
+ +sharedInfoProp('hatSize', 'PROFILE_HAT_SIZE')
+ +sharedInfoProp('phoneModel', 'PROFILE_PHONE_MODEL')
h2= lang('PROFILE_SECURITY')
a.button.is-primary(href=`${_CC.config.base}profile/password`)
diff --git a/src/views/wishlists.pug b/src/views/wishlists.pug
index 4243928a..7f141404 100644
--- a/src/views/wishlists.pug
+++ b/src/views/wishlists.pug
@@ -52,7 +52,7 @@ block content
div!= _CC.config.customHtml.wishlists
ul.noStyle.noLeftMargin
- if req.user._id !== '_CCUNKNOWN'
+ if req.user._id !== '_CCUNKNOWN' && req.user.pledgeOnly != true
li
.box
a(href=`${_CC.config.base}wishlist/${req.user._id}`, style='color: #4a4a4a;')
@@ -67,7 +67,7 @@ block content
progress.progress(value=1, max=1)
+wishlistDetails(req.user.wishlist, req.user._id)
each user in users
- if req.user._id !== user.id
+ if req.user._id !== user.id && user.doc.pledgeOnly != true
li
.box
a(href=`${_CC.config.base}wishlist/${user.id}`, style='color: #4a4a4a;')
From cc185ca7618899779e794f5b2b80092727f338f1 Mon Sep 17 00:00:00 2001
From: Christopher Blake
Date: Fri, 11 Oct 2024 20:23:20 -0300
Subject: [PATCH 12/20] add localization
---
src/languages/en-us.ts | 4 +++-
src/views/adminSettings.pug | 2 +-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/languages/en-us.ts b/src/languages/en-us.ts
index 6055cc63..2ff72fd1 100644
--- a/src/languages/en-us.ts
+++ b/src/languages/en-us.ts
@@ -201,5 +201,7 @@ export const strings = {
WISHLIST_URL_REQUIRED: 'Item URL or Name is required',
WISHLISTS_COUNTS_SELF: name => `${name}: ???/???`,
WISHLISTS_COUNTS: (name, pledged, total) => `${name}: ${pledged}/${total}`,
- WISHLISTS_TITLE: `${_CC.config.siteTitle} - Wishlists`
+ WISHLISTS_TITLE: `${_CC.config.siteTitle} - Wishlists`,
+ YES: 'Yes',
+ NO: 'No'
} as const
diff --git a/src/views/adminSettings.pug b/src/views/adminSettings.pug
index d834952a..e88428bc 100644
--- a/src/views/adminSettings.pug
+++ b/src/views/adminSettings.pug
@@ -12,7 +12,7 @@ block content
each user in users
tr(id=user.id)
td=user.id
- td=user.doc.admin
+ td=user.doc.admin ? lang('YES') : lang('NO')
td=Object.keys(user.doc.wishlist).length
td
a(href=`${_CC.config.base}admin-settings/edit/${user.id}`)
From 24929e8591c99d1f021c3a5a2fb6aebbff31897b Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Tue, 31 Dec 2024 13:09:21 +0000
Subject: [PATCH 13/20] docs(contributor): contrib-readme-action has updated
readme
---
README.md | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/README.md b/README.md
index 5cc0031e..0ab844de 100644
--- a/README.md
+++ b/README.md
@@ -195,6 +195,13 @@ Hi, I'm Wingy. I made this app. My website is [samwing.dev](https://samwing.dev)
PeteS4
|
+
+
+
+
+ jskiddie
+
+ |
@@ -208,21 +215,14 @@ Hi, I'm Wingy. I made this app. My website is [samwing.dev](https://samwing.dev)
Laeborg
- |
+
+