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

203 lines
6.4 KiB
JavaScript
Raw Normal View History

2014-08-24 11:48:06 -04:00
(function () {
function addRecurringFields(period, page) {
2015-05-16 15:09:02 -04:00
RegistrationServices.addRecurringFields(page, period);
2014-08-24 11:48:06 -04:00
}
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-31 15:15:33 -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
2015-09-02 09:04:33 -04:00
function setItemName(page, itemName) {
$('#ppItemName', page).val(itemName);
}
2014-08-24 11:48:06 -04:00
function getDonationType(page) {
return $(".radioDonationType:checked", page).val();
}
2015-08-31 10:57:04 -04:00
var lifeTimeAmount = 79.99;
2014-09-03 21:44:40 -04:00
var dailyAmount = 1;
2015-09-02 09:04:33 -04:00
var monthlyAmount = 5.99;
2015-08-31 10:57:04 -04:00
var yearlyAmount = 37.99;
2014-08-24 11:48:06 -04:00
function getDonationAmount(page) {
var type = getDonationType(page);
if (type == 'once') {
return $("#selectOneTimeDonationAmount", page).val();
}
if (type == 'yearly') {
return yearlyAmount;
}
if (type == 'monthly') {
return monthlyAmount;
}
2014-09-03 21:44:40 -04:00
if (type == 'daily') {
return dailyAmount;
}
2014-08-24 11:48:06 -04:00
// lifetime
return lifeTimeAmount;
}
function updateSavedDonationAmount(page) {
$("#donateAmt", page).val(getDonationAmount(page));
}
2014-08-31 15:15:33 -04:00
function loadUserInfo(page) {
ApiClient.getJSON(ApiClient.getUrl('System/SupporterInfo')).done(function (info) {
$('.hfPlanType', page).val(info.PlanType || '');
$('.hfIsActive', page).val(info.IsActiveSupporter.toString());
$('.radioDonationType', page).checked(false).checkboxradio('refresh');
if (info.PlanType == 'Lifetime' && info.IsActiveSupporter) {
// If they have an active lifetime plan, select the one-time option
$('#radioOneTimeDonation', page).checked(true).checkboxradio('refresh');
} else {
// For all other statuses, select lifetime, to either acquire or upgrade
$('#radioLifetimeSupporter', page).checked(true).checkboxradio('refresh');
}
$('.radioDonationType:checked', page).trigger('change');
if (info.IsActiveSupporter || info.IsExpiredSupporter) {
$('.currentPlanInfo', page).show();
} else {
$('.currentPlanInfo', page).hide();
}
if (info.IsActiveSupporter && info.PlanType == 'Lifetime') {
$('.planSummary', page)
2014-09-10 21:57:11 -04:00
.html(Globalize.translate('MessageYouHaveALifetimeMembership'))
2015-01-11 13:36:26 -05:00
.css('color', 'green');
2014-08-31 15:15:33 -04:00
}
else if (info.IsActiveSupporter) {
$('.planSummary', page)
2014-09-10 21:57:11 -04:00
.html(Globalize.translate('MessageYouHaveAnActiveRecurringMembership').replace('{0}', info.PlanType))
2015-01-11 13:36:26 -05:00
.css('color', 'green');
2014-08-31 15:15:33 -04:00
}
else if (info.IsExpiredSupporter) {
var expirationDate = info.ExpirationDate ? parseISO8601Date(info.ExpirationDate, { toLocal: true }) : new Date();
expirationDate = expirationDate.toLocaleDateString();
$('.planSummary', page)
2014-09-10 21:57:11 -04:00
.html(Globalize.translate('MessageSupporterMembershipExpiredOn').replace('{0}', expirationDate))
2014-08-31 15:15:33 -04:00
.css('color', 'red');
}
});
}
2015-05-17 21:27:48 -04:00
function onSubmit() {
var form = this;
var page = $(form).parents('.page');
if ($('.hfIsActive', page).val() == 'true') {
var currentPlanType = $('.hfPlanType', page).val();
if (currentPlanType != 'Lifetime') {
// Use a regular alert to block the submission process until they hit ok
alert(Globalize.translate('MessageChangeRecurringPlanConfirm'));
}
}
}
2015-09-01 10:01:59 -04:00
$(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('Y', page);
2014-08-27 14:55:51 -04:00
setItemNumber(page, 'MBSClubYearly');
2015-09-02 09:04:33 -04:00
setItemName(page, 'Emby Supporter Annual');
2014-08-27 14:55:51 -04:00
$('#oneTimeDescription').hide();
2014-08-24 11:48:06 -04:00
}
else if (donationType == 'monthly') {
$('.fldOneTimeDonationAmount', page).hide();
addRecurringFields('M', page);
2014-08-27 14:55:51 -04:00
setItemNumber(page, 'MBSClubMonthly');
2015-09-02 09:04:33 -04:00
setItemName(page, 'Emby Supporter Monthly');
2014-08-27 14:55:51 -04:00
$('#oneTimeDescription').hide();
2014-08-24 11:48:06 -04:00
}
2014-09-03 21:44:40 -04:00
else if (donationType == 'daily') {
$('.fldOneTimeDonationAmount', page).hide();
addRecurringFields('D', page);
setItemNumber(page, 'MBSClubDaily');
$('#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');
2014-08-31 15:26:01 -04:00
$('#oneTimeDescription').hide();
2014-08-24 11:48:06 -04:00
}
});
$('#selectOneTimeDonationAmount', page).on('change', function () {
updateSavedDonationAmount(page);
});
2015-05-17 21:27:48 -04:00
RegistrationServices.initSupporterForm(page);
$('.supporterForm').off('submit', onSubmit).on('submit', onSubmit);
2015-05-19 15:15:40 -04:00
}).on('pageshowready', "#supporterPage", function () {
2014-08-24 11:48:06 -04:00
var page = this;
$('.lifetimeAmount', page).html('$' + lifeTimeAmount);
$('.monthlyAmount', page).html('$' + monthlyAmount);
2014-09-03 21:44:40 -04:00
$('.dailyAmount', page).html('$' + dailyAmount);
2014-08-24 11:48:06 -04:00
$('.yearlyAmount', page).html('$' + yearlyAmount);
2015-05-16 15:09:02 -04:00
$('#returnUrl', 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
2015-03-21 14:12:12 -04:00
$('.benefits', page).html(Globalize.translate('HeaderSupporterBenefit', '<a href="http://emby.media/donate" target="_blank">', '</a>')).trigger('create');
2015-01-11 13:36:26 -05:00
2014-08-31 15:15:33 -04:00
loadUserInfo(page);
2014-08-24 11:48:06 -04:00
});
2013-02-20 20:33:05 -05:00
2014-08-24 11:48:06 -04:00
})();