Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 34 additions & 20 deletions public/src/admin/extend/rewards.js
Original file line number Diff line number Diff line change
Expand Up @@ -81,36 +81,50 @@ define('admin/extend/rewards', [
function selectReward(el) {
const parent = el.parents('[data-rid]');
const div = parent.find('.inputs');
let inputs;
let html = '';
const selectedReward = getReward(el);
if (!selectedReward) return;

parent.attr('data-rid', selectedReward.rid);

const inputs = selectedReward.inputs;
const html = inputsHtml(inputs);
if (!html) {
return alerts.error('[[admin/extend/rewards:alert.no-inputs-found]] ' + el.attr('data-selected'));
}

div.html(html);
}

//Helper function for selectReward to get the reward
function getReward(el) {
const selectedReward = available.find(reward => reward.rid === el.attr('data-selected'));
if (selectedReward) {
inputs = selectedReward.inputs;
parent.attr('data-rid', selectedReward.rid);
if (!selectedReward) {
return null;
}
return selectedReward;
}

//Helper function for selectReward to build the HTML
function inputsHtml(inputs) {
if (!inputs) {
return alerts.error('[[admin/extend/rewards:alert.no-inputs-found]] ' + el.attr('data-selected'));
}
return alerts.error('[[admin/extend/rewards:alert.no-inputs-found]]');
};

inputs.forEach(function (input) {
return inputs.map(input => {
let html = '';
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}" >`;
input.values.forEach(function (value) {
html += `<option value="${value.value}">${value.name}</option>`;
});
break;
case 'text':
html += `<input type="text" class="form-control form-control-sm" name="${input.name}" />`;
break;

if (input.type == 'text') {
html += `<input type="text" class="form-control form-control-sm" name="${input.name}" />`;
} else if (input.type == 'select') {
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 += '</label>';
return html;
});

div.html(html);
}

function populateInputs() {
Expand Down