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

update schedules direct mapping

This commit is contained in:
Luke Pulverenti 2015-10-10 20:39:30 -04:00
parent bd43e4e167
commit c97c4ac4e3
10 changed files with 126 additions and 80 deletions

View file

@ -1,6 +1,6 @@
{ {
"name": "polymer", "name": "polymer",
"version": "1.1.4", "version": "1.1.5",
"main": [ "main": [
"polymer.html" "polymer.html"
], ],
@ -25,11 +25,11 @@
}, },
"private": true, "private": true,
"homepage": "https://github.com/Polymer/polymer", "homepage": "https://github.com/Polymer/polymer",
"_release": "1.1.4", "_release": "1.1.5",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "v1.1.4", "tag": "v1.1.5",
"commit": "eaedcbc28671ee6cf6a4c0350133bdddfbff50b8" "commit": "4c94736fac6681e84ec8c00da53484c5d3c2226b"
}, },
"_source": "git://github.com/Polymer/polymer.git", "_source": "git://github.com/Polymer/polymer.git",
"_target": "^1.0.0", "_target": "^1.0.0",

View file

@ -1,6 +1,6 @@
{ {
"name": "polymer", "name": "polymer",
"version": "1.1.4", "version": "1.1.5",
"main": [ "main": [
"polymer.html" "polymer.html"
], ],

View file

@ -5,7 +5,7 @@
function getStoreFeatureId(feature) { function getStoreFeatureId(feature) {
if (feature == 'embypremieremonthly') { if (feature == 'embypremieremonthly') {
return "emby.supporter.weekly"; return "emby.supporter.monthly";
} }
return "com.mb.android.unlock"; return "com.mb.android.unlock";
@ -39,14 +39,26 @@
return products.length ? products[0] : null; return products.length ? products[0] : null;
} }
var storeReady = false;
function onStoreReady() {
storeReady = true;
refreshPurchases();
}
function isPurchaseAvailable(feature) { function isPurchaseAvailable(feature) {
return NativeIapManager.isStoreAvailable(); return storeReady;
} }
function beginPurchase(feature, email) { function beginPurchase(feature, email) {
var id = getStoreFeatureId(feature);
return MainActivity.beginPurchase(id, email); if (feature == 'embypremieremonthly') {
return MainActivity.purchasePremiereMonthly(email);
}
if (feature == 'embypremiereweekly') {
return MainActivity.purchasePremiereWeekly(email);
}
return MainActivity.purchaseUnlock(email);
} }
function onPurchaseComplete(result) { function onPurchaseComplete(result) {
@ -90,10 +102,10 @@
updateProduct: updateProductInfo, updateProduct: updateProductInfo,
beginPurchase: beginPurchase, beginPurchase: beginPurchase,
onPurchaseComplete: onPurchaseComplete, onPurchaseComplete: onPurchaseComplete,
getStoreFeatureId: getStoreFeatureId, getSubscriptionOptions: getSubscriptionOptions,
getSubscriptionOptions: getSubscriptionOptions onStoreReady: onStoreReady
}; };
refreshPurchases(); NativeIapManager.initStore();
})(); })();

View file

@ -1,6 +1,7 @@
(function () { (function () {
var updatedProducts = []; var updatedProducts = [];
var enteredEmail;
function getStoreFeatureId(feature) { function getStoreFeatureId(feature) {
@ -41,6 +42,11 @@
} }
function beginPurchase(feature, email) { function beginPurchase(feature, email) {
if (email) {
enteredEmail = email;
}
var id = getStoreFeatureId(feature); var id = getStoreFeatureId(feature);
store.order(id); store.order(id);
} }
@ -54,32 +60,45 @@
// product attributes: // product attributes:
// https://github.com/j3k0/cordova-plugin-purchase/blob/master/doc/api.md#validation-error-codes // https://github.com/j3k0/cordova-plugin-purchase/blob/master/doc/api.md#validation-error-codes
alert(JSON.stringify(product)); var productId = product.id;
alert(JSON.stringify(product.transaction)); var transactionId = product.transaction.id;
var receipt = product.transaction.appStoreReceipt;
var price = product.price;
callback(true, { HttpClient.send({
type: "POST",
url: "https://mb3admin.com/test/admin/service/appstore/register",
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
data: {
store: "Apple",
application: "com.emby.mobile",
product: productId,
type: "Subscription",
feature: "MBSClubMonthly",
email: enteredEmail,
token: receipt,
amt: price,
storeId: transactionId
},
headers: {
"X-Emby-Token": "08606E86D043"
}
}).done(function () {
callback(true, product);
}).fail(function () {
callback(false, product);
}); });
//callback(true, { ... transaction details ... }); // success!
//// OR
//callback(false, {
// error: {
// code: store.PURCHASE_EXPIRED,
// message: "XYZ"
// }
//});
//// OR
//callback(false, "Impossible to proceed with validation");
} }
function initProduct(id, alias, type) { function initProduct(id, requiresVerification, type) {
store.register({ store.register({
id: id, id: id,
alias: alias, alias: id,
type: type type: type
}); });
@ -87,12 +106,12 @@
// show some logs and finish the transaction. // show some logs and finish the transaction.
store.when(id).approved(function (product) { store.when(id).approved(function (product) {
product.finish(); //product.finish();
//if (product.type == store.PAID_SUBSCRIPTION) { if (requiresVerification) {
// product.verify(); product.verify();
//} else { } else {
// product.finish(); product.finish();
//} }
}); });
store.when(id).verified(function (p) { store.when(id).verified(function (p) {
@ -105,7 +124,11 @@
if (product.loaded && product.valid && product.state == store.APPROVED) { if (product.loaded && product.valid && product.state == store.APPROVED) {
Logger.log('finishing previously created transaction'); Logger.log('finishing previously created transaction');
product.finish(); if (requiresVerification) {
product.verify();
} else {
product.finish();
}
} }
updateProductInfo(product); updateProductInfo(product);
}); });
@ -119,8 +142,8 @@
store.validator = validateProduct; store.validator = validateProduct;
initProduct(getStoreFeatureId(""), "premium features", store.NON_CONSUMABLE); initProduct(getStoreFeatureId(""), false, store.NON_CONSUMABLE);
initProduct(getStoreFeatureId("embypremieremonthly"), "emby premiere monthly", store.PAID_SUBSCRIPTION); initProduct(getStoreFeatureId("embypremieremonthly"), true, store.PAID_SUBSCRIPTION);
// When every goes as expected, it's time to celebrate! // When every goes as expected, it's time to celebrate!
// The "ready" event should be welcomed with music and fireworks, // The "ready" event should be welcomed with music and fireworks,
@ -163,7 +186,6 @@
getProductInfo: getProduct, getProductInfo: getProduct,
beginPurchase: beginPurchase, beginPurchase: beginPurchase,
restorePurchase: restorePurchase, restorePurchase: restorePurchase,
getStoreFeatureId: getStoreFeatureId,
getSubscriptionOptions: getSubscriptionOptions getSubscriptionOptions: getSubscriptionOptions
}; };

View file

@ -13,8 +13,6 @@
function validateFeature(feature, deferred) { function validateFeature(feature, deferred) {
var id = IapManager.getStoreFeatureId(feature);
if (validatedFeatures.indexOf(feature) != -1) { if (validatedFeatures.indexOf(feature) != -1) {
deferred.resolve(); deferred.resolve();
return; return;
@ -23,7 +21,7 @@
var info = IapManager.getProductInfo(feature) || {}; var info = IapManager.getProductInfo(feature) || {};
if (info.owned) { if (info.owned) {
notifyServer(id); notifyServer(info.id);
validatedFeatures.push(feature); validatedFeatures.push(feature);
deferred.resolve(); deferred.resolve();
return; return;
@ -31,7 +29,7 @@
var unlockableProductInfo = IapManager.isPurchaseAvailable(feature) ? { var unlockableProductInfo = IapManager.isPurchaseAvailable(feature) ? {
enableAppUnlock: IapManager.isPurchaseAvailable(feature), enableAppUnlock: IapManager.isPurchaseAvailable(feature),
id: id, id: info.id,
price: info.price, price: info.price,
feature: feature feature: feature
@ -211,7 +209,7 @@
$('.btnRestorePurchase', elem).on('click', function () { $('.btnRestorePurchase', elem).on('click', function () {
isCancelled = false; isCancelled = false;
IapManager.restorePurchase(info.feature); IapManager.restorePurchase();
}); });
$(elem).on('iron-overlay-closed', function () { $(elem).on('iron-overlay-closed', function () {

View file

@ -363,17 +363,23 @@
if (items.length) { if (items.length) {
var cssClass = index !== 0 ? 'listHeader' : 'listHeader'; var screenWidth = $(window).width();
html += '<div>'; html += '<div>';
html += '<h1 class="' + cssClass + '">' + Globalize.translate('HeaderMyMedia') + '</h1>'; html += '<h1 class="listHeader">' + Globalize.translate('HeaderMyMedia') + '</h1>';
html += '</div>'; html += '</div>';
html += '<div class="homeTopViews">'; var scrollX = enableScrollX() && $.browser.safari && screenWidth > 800;
if (scrollX) {
html += '<div class="hiddenScrollX itemsContainer homeTopViews">';
} else {
html += '<div class="itemsContainer homeTopViews">';
}
html += LibraryBrowser.getPosterViewHtml({ html += LibraryBrowser.getPosterViewHtml({
items: items, items: items,
shape: shape, shape: scrollX ? 'overflowBackdrop' : shape,
showTitle: showTitles, showTitle: showTitles,
centerText: true, centerText: true,
lazy: true, lazy: true,

View file

@ -95,7 +95,7 @@ var Dashboard = {
var url = data.url.toLowerCase(); var url = data.url.toLowerCase();
// Don't bounce to login on failures to contact our external servers // Don't bounce to login on failures to contact our external servers
if (url.indexOf('emby.media') != -1) { if (url.indexOf('emby.media') != -1 || url.indexOf('mb3admin.com') != -1) {
Dashboard.hideLoadingMsg(); Dashboard.hideLoadingMsg();
return; return;
} }

View file

@ -33,7 +33,7 @@ body {
} }
.background-theme-b, paper-dialog.background-theme-b { .background-theme-b, paper-dialog.background-theme-b {
background: radial-gradient(circle, #282828, #101010); background: #181818;
} }
.backdropContainer .pageBackground { .backdropContainer .pageBackground {

View file

@ -19,10 +19,16 @@
listingsId = info.ListingsId; listingsId = info.ListingsId;
$('#selectListing', page).val(info.ListingsId || ''); $('#selectListing', page).val(info.ListingsId || '');
page.querySelector('.txtUser').value = info.Username || ''; page.querySelector('.txtUser').value = info.Username || '';
page.querySelector('.txtPass').value = info.Username || ''; page.querySelector('.txtPass').value = '';
page.querySelector('.txtZipCode').value = info.ZipCode || ''; page.querySelector('.txtZipCode').value = info.ZipCode || '';
if (info.Username && info.Password) {
page.querySelector('.listingsSection').classList.remove('hide');
} else {
page.querySelector('.listingsSection').classList.add('hide');
}
setCountry(info); setCountry(info);
}); });
} }

View file

@ -28,34 +28,36 @@
<br /> <br />
<br /> <br />
<br /> <br />
<div style="font-size:16px;"> <div class="listingsSection hide">
<div style="display:inline-block;background-color:rgba(82,181,75,.8);color:#fff;padding:2px 10px;font-size:20px;border-radius:1000px;vertical-align:middle;"> <div style="font-size:16px;">
2 <div style="display:inline-block;background-color:rgba(82,181,75,.8);color:#fff;padding:2px 10px;font-size:20px;border-radius:1000px;vertical-align:middle;">
</div> 2
<div style="display:inline-block;vertical-align:middle;margin-left:5px;"> </div>
${GuideProviderSelectListings} <div style="display:inline-block;vertical-align:middle;margin-left:5px;">
${GuideProviderSelectListings}
</div>
</div> </div>
<form class="formListings">
<div>
<div>
<br />
<label for="selectCountry">${LabelCountry}</label>
<select id="selectCountry" data-mini="true" required="required"></select>
</div>
<div>
<paper-input class="txtZipCode" label="${LabelZipCode}" required="required"></paper-input>
</div>
<div>
<br />
<label for="selectListing">${LabelLineup}</label>
<select id="selectListing" data-mini="true" required="required"></select>
</div>
<div>
<button type="submit" data-role="none" class="clearButton btnSubmitListingsContainer">
<paper-button raised class="submit block btnSubmitListings hide"><iron-icon icon="check"></iron-icon><span>${ButtonSave}</span></paper-button>
</button>
<paper-button raised class="cancel block btnCancel hide" onclick="history.back();"><iron-icon icon="close"></iron-icon><span>${ButtonCancel}</span></paper-button>
</div>
</div>
</form>
</div> </div>
<form class="formListings">
<div>
<div>
<br />
<label for="selectCountry">${LabelCountry}</label>
<select id="selectCountry" data-mini="true" required="required"></select>
</div>
<div>
<paper-input class="txtZipCode" label="${LabelZipCode}" required="required"></paper-input>
</div>
<div>
<br />
<label for="selectListing">${LabelLineup}</label>
<select id="selectListing" data-mini="true" required="required"></select>
</div>
<div>
<button type="submit" data-role="none" class="clearButton btnSubmitListingsContainer">
<paper-button raised class="submit block btnSubmitListings hide"><iron-icon icon="check"></iron-icon><span>${ButtonSave}</span></paper-button>
</button>
<paper-button raised class="cancel block btnCancel hide" onclick="history.back();"><iron-icon icon="close"></iron-icon><span>${ButtonCancel}</span></paper-button>
</div>
</div>
</form>