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

update recording dialogs

This commit is contained in:
Luke Pulverenti 2016-10-15 18:12:16 -04:00
parent bdfd870584
commit 141344eead
60 changed files with 546 additions and 211 deletions

View file

@ -24,13 +24,131 @@
});
}
function showPeriodicMessage(feature, settingsKey) {
return new Promise(function (resolve, reject) {
appSettings.set(settingsKey, new Date().getTime());
require(['listViewStyle', 'emby-button', 'formDialogStyle'], function () {
var dlg = dialogHelper.createDialog({
size: 'fullscreen-border',
removeOnClose: true,
scrollY: false
});
dlg.classList.add('formDialog');
var html = '';
html += '<div class="formDialogHeader">';
html += '<button is="paper-icon-button-light" class="btnCancelSupporterInfo autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button>';
html += '<h3 class="formDialogHeaderTitle">';
html += '</h3>';
html += '</div>';
html += '<div class="formDialogContent smoothScrollY">';
html += '<div class="dialogContentInner dialog-content-centered">';
html += '<h1>' + globalize.translate('sharedcomponents#HeaderDiscoverEmbyPremiere') + '</h1>';
html += '<p>' + globalize.translate('sharedcomponents#MessageDidYouKnowCinemaMode') + '</p>';
html += '<p>' + globalize.translate('sharedcomponents#MessageDidYouKnowCinemaMode2') + '</p>';
html += '<h1 style="margin-top:1.5em;">' + globalize.translate('sharedcomponents#HeaderBenefitsEmbyPremiere') + '</h1>';
html += '<div class="paperList">';
html += getSubscriptionBenefits().map(getSubscriptionBenefitHtml).join('');
html += '</div>';
html += '<br/>';
html += '<div class="formDialogFooter">';
html += '<button is="emby-button" type="button" class="raised button-submit block btnGetPremiere formDialogFooterItem" autoFocus><span>' + globalize.translate('sharedcomponents#HeaderBecomeProjectSupporter') + '</span></button>';
html += '<button is="emby-button" type="button" class="raised button-cancel block btnCancelSupporterInfo formDialogFooterItem"><span>' + globalize.translate('sharedcomponents#HeaderPlayMyMedia') + '</span></button>';
html += '</div>';
html += '</div>';
html += '</div>';
dlg.innerHTML = html;
if (layoutManager.tv) {
centerFocus(dlg.querySelector('.formDialogContent'), false, true);
}
// Has to be assigned a z-index after the call to .open()
dlg.addEventListener('close', function (e) {
if (layoutManager.tv) {
centerFocus(dlg.querySelector('.formDialogContent'), false, false);
}
appSettings.set(settingsKey, new Date().getTime());
resolve();
});
dlg.querySelector('.btnGetPremiere').addEventListener('click', showPremiereInfo);
dialogHelper.open(dlg);
var onCancelClick = function () {
dialogHelper.close(dlg);
};
var i, length;
var elems = dlg.querySelectorAll('.btnCancelSupporterInfo');
for (i = 0, length = elems.length; i < length; i++) {
elems[i].addEventListener('click', onCancelClick);
}
});
});
}
function showPeriodicMessageIfNeeded(feature) {
var intervalMs = iapManager.getPeriodicMessageIntervalMs(feature);
if (intervalMs <= 0) {
return Promise.resolve();
}
var settingsKey = 'periodicmessage-' + feature;
var lastMessage = parseInt(appSettings.get(settingsKey) || '0');
if (!lastMessage) {
// Don't show on the very first playback attempt
appSettings.set(settingsKey, new Date().getTime());
return Promise.resolve();
}
if ((new Date().getTime() - lastMessage) > intervalMs) {
connectionManager.currentApiClient().getPluginSecurityInfo().then(function (regInfo) {
if (regInfo.IsMBSupporter) {
appSettings.set(settingsKey, new Date().getTime());
return Promise.resolve();
}
return showPeriodicMessage(feature, settingsKey);
}, function () {
return showPeriodicMessage(feature, settingsKey);
});
}
return Promise.resolve();
}
function validateFeature(feature, options) {
options = options || {};
console.log('validateFeature: ' + feature);
return iapManager.isUnlockedByDefault(feature).catch(function () {
return iapManager.isUnlockedByDefault(feature).then(function () {
return showPeriodicMessageIfNeeded(feature);
}, function () {
var unlockableFeatureCacheKey = 'featurepurchased-' + feature;
if (appSettings.get(unlockableFeatureCacheKey) == '1') {
@ -157,8 +275,9 @@
html += '</p>';
var hasProduct = false;
var i, length;
for (var i = 0, length = subscriptionOptions.length; i < length; i++) {
for (i = 0, length = subscriptionOptions.length; i < length; i++) {
hasProduct = true;
html += '<p>';
@ -205,7 +324,6 @@
dlg.innerHTML = html;
document.body.appendChild(dlg);
var i, length;
var btnPurchases = dlg.querySelectorAll('.btnPurchase');
for (i = 0, length = btnPurchases.length; i < length; i++) {
btnPurchases[i].addEventListener('click', onPurchaseButtonClick);