Skip to content

Commit

Permalink
fix: rewards fixes
Browse files Browse the repository at this point in the history
fix enabled/disabled button
sort rewards from oldest to newest
  • Loading branch information
barisusakli committed Oct 16, 2023
1 parent d45f506 commit 347a43f
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 12 deletions.
10 changes: 10 additions & 0 deletions public/language/en-GB/rewards.json
@@ -0,0 +1,10 @@
{
"awarded-x-reputation": "You have been awarded <strong>%1</strong> reputation",
"awarded-group-membership": "You have been added to the group <strong>%1</strong>",

"essentials/user.reputation-conditional-value": "<span class=\"text-xs\">(Reputation %1 %2)</span>",
"essentials/user.postcount-conditional-value": "<span class=\"text-xs\">(Post Count %1 %2)</span>",
"essentials/user.lastonline-conditional-value": "<span class=\"text-xs\">(Last Online %1 %2)</span>",
"essentials/user.joindate-conditional-value": "<span class=\"text-xs\">(Join Date %1 %2)</span>",
"essentials/user.daysregistered-conditional-value": "<span class=\"text-xs\">(Days Registered %1 %2)</span>"
}
14 changes: 7 additions & 7 deletions public/src/admin/extend/rewards.js
Expand Up @@ -41,8 +41,8 @@ define('admin/extend/rewards', ['alerts'], function (alerts) {
})
.on('click', '.toggle', function () {
const btn = $(this);
const disabled = btn.hasClass('btn-success');
btn.toggleClass('btn-warning').toggleClass('btn-success').translateHtml('[[admin/extend/rewards:' + (disabled ? 'disable' : 'enable') + ']]');
btn.parent().find('.toggle').removeClass('hidden');
btn.addClass('hidden');
// send disable api call
return false;
});
Expand Down Expand Up @@ -92,16 +92,16 @@ define('admin/extend/rewards', ['alerts'], function (alerts) {
}

inputs.forEach(function (input) {
html += '<label for="' + input.name + '">' + input.label + '<br />';
html += `<label class="form-label text-nowrap" for="${input.name}">${input.label}<br />`;
switch (input.type) {
case 'select':
html += '<select class="form-select form-select-sm" name="' + input.name + '">';
html += `<select class="form-select form-select-sm" name="${input.name}" >`;
input.values.forEach(function (value) {
html += '<option value="' + value.value + '">' + value.name + '</option>';
html += `<option value="${value.value}">${value.name}</option>`;
});
break;
case 'text':
html += '<input type="text" class="form-control form-control-sm" name="' + input.name + '" />';
html += `<input type="text" class="form-control form-control-sm" name="${input.name}" />`;
break;
}
html += '</label>';
Expand Down Expand Up @@ -162,7 +162,7 @@ define('admin/extend/rewards', ['alerts'], function (alerts) {
});

data.id = $(this).attr('data-id');
data.disabled = $(this).find('.toggle').hasClass('btn-success');
data.disabled = $(this).find('.toggle.disable').hasClass('hidden');

activeRewards.push(data);
});
Expand Down
2 changes: 1 addition & 1 deletion src/notifications.js
Expand Up @@ -99,7 +99,7 @@ Notifications.getMultiple = async function (nids) {
}

notification.user = usersData[index];
if (notification.user) {
if (notification.user && notification.from) {
notification.image = notification.user.picture || null;
if (notification.user.username === '[[global:guest]]') {
notification.bodyShort = notification.bodyShort.replace(/([\s\S]*?),[\s\S]*?,([\s\S]*?)/, '$1, [[global:guest]], $2');
Expand Down
3 changes: 2 additions & 1 deletion src/rewards/admin.js
Expand Up @@ -67,13 +67,14 @@ async function getActiveRewards() {
db.getObject(`rewards:id:${id}:rewards`),
]);
if (main) {
main.disabled = main.disabled === 'true';
main.disabled = main.disabled === 'true' || main.disabled === true;
main.rewards = rewards;
}
return main;
}

const rewardsList = await db.getSetMembers('rewards:list');
rewardsList.sort((a, b) => a - b);
const rewardData = await Promise.all(rewardsList.map(id => load(id)));
return rewardData.filter(Boolean);
}
Expand Down
6 changes: 5 additions & 1 deletion src/rewards/index.js
Expand Up @@ -72,7 +72,11 @@ async function giveRewards(uid, rewards) {
const rewardData = await getRewardsByRewardData(rewards);
for (let i = 0; i < rewards.length; i++) {
/* eslint-disable no-await-in-loop */
await plugins.hooks.fire(`action:rewards.award:${rewards[i].rid}`, { uid: uid, reward: rewardData[i] });
await plugins.hooks.fire(`action:rewards.award:${rewards[i].rid}`, {
uid: uid,
rewardData: rewards[i],
reward: rewardData[i],
});
await db.sortedSetIncrBy(`uid:${uid}:rewards`, 1, rewards[i].id);
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/views/admin/extend/rewards.tpl
Expand Up @@ -35,7 +35,7 @@
{{{ end }}}
</select>

<input class="form-control form-control-sm" type="text" name="value" value="{active.value}" style="max-width: 64px;"/>
<input class="form-control form-control-sm" type="text" name="value" value="{active.value}" style="max-width: 128px;"/>
</div>
</div>
<div class="card card-body m-0 then-block border-primary border border-2">
Expand All @@ -47,7 +47,7 @@
</select>
</div>
</form>
<form class="rewards">
<form class="rewards flex-1">
<div class="inputs card card-body m-0 h-100 reward-block border-success border border-2"><div class="d-flex h-100 align-items-center">[[admin/extend/rewards:select-reward]]</div></div>
</form>
</div>
Expand Down

0 comments on commit 347a43f

Please sign in to comment.