1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
jellyfin-web/dashboard-ui/scripts/supporterpage.js

132 lines
4 KiB
JavaScript
Raw Normal View History

2014-08-24 11:48:06 -04:00
(function () {
function addRecurringFields(page) {
2013-02-20 20:33:05 -05:00
// Add recurring fields to form
$("<input type='hidden' name='a3' class='pprecurring' />")
2014-08-24 11:48:06 -04:00
.attr('value', $('#donateAmt', page).val())
.appendTo("#payPalForm", page);
2014-08-17 01:38:13 -04:00
$("<input type='hidden' name='p3' value='1' class='pprecurring' />")
2014-08-24 11:48:06 -04:00
.appendTo("#payPalForm", page);
$("<input type='hidden' name='t3' value='M' class='pprecurring' />")
2014-08-24 11:48:06 -04:00
.appendTo("#payPalForm", page);
$("<input type='hidden' name='src' value='1' class='pprecurring' />")
2014-08-24 11:48:06 -04:00
.appendTo("#payPalForm", page);
$("<input type='hidden' name='sra' value='1' class='pprecurring' />")
2014-08-24 11:48:06 -04:00
.appendTo("#payPalForm", page);
2013-02-20 20:33:05 -05:00
//change command for subscriptions
2014-08-24 11:48:06 -04:00
$('#ppCmd', page).val('_xclick-subscriptions');
$('#payPalForm', page).trigger('create');
}
function removeRecurringFields(page) {
2014-08-17 01:38:13 -04:00
$('.pprecurring', page).remove();
2014-08-24 11:48:06 -04:00
//change command back
2014-08-17 01:38:13 -04:00
$('#ppCmd', page).val('_xclick');
2014-08-24 11:48:06 -04:00
}
2014-08-27 14:55:51 -04:00
function setItemNumber(page, itemNumber) {
$('#ppItemNo', page).val(itemNumber);
}
2014-08-24 11:48:06 -04:00
function getDonationType(page) {
return $(".radioDonationType:checked", page).val();
}
var lifeTimeAmount = 30;
var monthlyAmount = 3;
var yearlyAmount = 20;
function getDonationAmount(page) {
var type = getDonationType(page);
if (type == 'once') {
return $("#selectOneTimeDonationAmount", page).val();
}
if (type == 'yearly') {
return yearlyAmount;
}
if (type == 'monthly') {
return monthlyAmount;
}
// lifetime
return lifeTimeAmount;
}
function updateSavedDonationAmount(page) {
$("#donateAmt", page).val(getDonationAmount(page));
}
$(document).on('pageinit', "#supporterPage", function () {
2014-08-24 11:48:06 -04:00
var page = this;
$('.radioDonationType', page).on('change', function () {
var donationType = getDonationType(page);
updateSavedDonationAmount(page);
if (donationType == 'once') {
$('.fldOneTimeDonationAmount', page).show();
removeRecurringFields(page);
2014-08-27 14:55:51 -04:00
setItemNumber(page, 'MBDonation');
$('#oneTimeDescription').show();
2014-08-24 11:48:06 -04:00
}
else if (donationType == 'yearly') {
$('.fldOneTimeDonationAmount', page).hide();
addRecurringFields(page);
2014-08-27 14:55:51 -04:00
setItemNumber(page, 'MBSClubYearly');
$('#oneTimeDescription').hide();
2014-08-24 11:48:06 -04:00
}
else if (donationType == 'monthly') {
$('.fldOneTimeDonationAmount', page).hide();
addRecurringFields(page);
2014-08-27 14:55:51 -04:00
setItemNumber(page, 'MBSClubMonthly');
$('#oneTimeDescription').hide();
2014-08-24 11:48:06 -04:00
}
else {
// Lifetime
$('.fldOneTimeDonationAmount', page).hide();
removeRecurringFields(page);
2014-08-27 14:55:51 -04:00
setItemNumber(page, 'MBSupporter');
$('#oneTimeDescription').hide();
2014-08-24 11:48:06 -04:00
}
});
$('#selectOneTimeDonationAmount', page).on('change', function () {
updateSavedDonationAmount(page);
});
}).on('pageshow', "#supporterPage", function () {
var page = this;
$('.lifetimeAmount', page).html('$' + lifeTimeAmount);
$('.monthlyAmount', page).html('$' + monthlyAmount);
$('.yearlyAmount', page).html('$' + yearlyAmount);
$('#paypalReturnUrl', page).val(ApiClient.getUrl("supporterkey.html"));
2014-08-24 11:48:06 -04:00
$('.radioDonationType', page).trigger('change');
2013-02-20 20:33:05 -05:00
2014-08-24 11:48:06 -04:00
// TODO: Pull down supporter status
// If already lifetime, had that option, but allow them to add monthly - many supporters probably will
// If already monthly, hide monthly option
// Or possibly not hide and select that option, but that will imply that changing the option will update their PP (can we do that?)
});
2013-02-20 20:33:05 -05:00
2014-08-24 11:48:06 -04:00
})();