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

update schedules direct

This commit is contained in:
Luke Pulverenti 2015-10-01 12:28:24 -04:00
parent 4acfe20470
commit a07e6b59a3
35 changed files with 215 additions and 314 deletions

View file

@ -66,14 +66,14 @@
<p>${MessageSupporterPluginRequiresMembership}</p> <p>${MessageSupporterPluginRequiresMembership}</p>
<p><a href="http://emby.media/donate" target="_blank">${LinkSupporterMembership}</a></p> <p><a href="http://emby.media/premiere" target="_blank">${LinkSupporterMembership}</a></p>
</div> </div>
<div class="premiumDescription"> <div class="premiumDescription">
<p>${MessagePremiumPluginRequiresMembership}</p> <p>${MessagePremiumPluginRequiresMembership}</p>
<p><a href="http://emby.media/donate" target="_blank">${LinkSupporterMembership}</a></p> <p><a href="http://emby.media/premiere" target="_blank">${LinkSupporterMembership}</a></p>
</div> </div>
<div class="premiumHasPrice" style="display: none"> <div class="premiumHasPrice" style="display: none">
<p id="regPrice"> <p id="regPrice">

View file

@ -498,18 +498,17 @@
require(['localassetmanager'], function () { require(['localassetmanager'], function () {
LocalAssetManager.getLocalItem(itemId, serverId).done(function (localItem) { LocalAssetManager.getUserIdsWithAccess(itemId, serverId).done(function (savedUserIdsWithAccess) {
var userIdsWithAccess = syncDataResult.ItemUserAccess[itemId]; var userIdsWithAccess = syncDataResult.ItemUserAccess[itemId];
if (userIdsWithAccess.join(',') == localItem.UserIdsWithAccess.join(',')) { if (userIdsWithAccess.join(',') == savedUserIdsWithAccess.join(',')) {
// Hasn't changed, nothing to do // Hasn't changed, nothing to do
deferred.resolve(); deferred.resolve();
} }
else { else {
localItem.UserIdsWithAccess = userIdsWithAccess; LocalAssetManager.saveUserIdsWithAccess(itemId, serverId, userIdsWithAccess).done(function () {
LocalAssetManager.addOrUpdateLocalItem(localItem).done(function () {
deferred.resolve(); deferred.resolve();
}).fail(getOnFail(deferred)); }).fail(getOnFail(deferred));
} }

View file

@ -79,6 +79,11 @@
function syncOfflineUsers(server, options, deferred) { function syncOfflineUsers(server, options, deferred) {
if (options.syncOfflineUsers === false) {
syncMedia(server, options, deferred);
return;
}
require(['offlineusersync'], function () { require(['offlineusersync'], function () {
var apiClient = connectionManager.getApiClient(server.Id); var apiClient = connectionManager.getApiClient(server.Id);

View file

@ -27,14 +27,14 @@
"web-component-tester": "*", "web-component-tester": "*",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
}, },
"homepage": "https://github.com/PolymerElements/iron-behaviors", "homepage": "https://github.com/polymerelements/iron-behaviors",
"_release": "1.0.8", "_release": "1.0.8",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "v1.0.8", "tag": "v1.0.8",
"commit": "663ad706b43989f4961d945b8116cf4db346532f" "commit": "663ad706b43989f4961d945b8116cf4db346532f"
}, },
"_source": "git://github.com/PolymerElements/iron-behaviors.git", "_source": "git://github.com/polymerelements/iron-behaviors.git",
"_target": "^1.0.0", "_target": "^1.0.0",
"_originalSource": "PolymerElements/iron-behaviors" "_originalSource": "polymerelements/iron-behaviors"
} }

View file

@ -25,14 +25,14 @@
"web-component-tester": "*", "web-component-tester": "*",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
}, },
"homepage": "https://github.com/PolymerElements/iron-meta", "homepage": "https://github.com/polymerelements/iron-meta",
"_release": "1.0.3", "_release": "1.0.3",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "v1.0.3", "tag": "v1.0.3",
"commit": "91529259262b0d8f33fed44bc3fd47aedf35cb04" "commit": "91529259262b0d8f33fed44bc3fd47aedf35cb04"
}, },
"_source": "git://github.com/PolymerElements/iron-meta.git", "_source": "git://github.com/polymerelements/iron-meta.git",
"_target": "^1.0.0", "_target": "^1.0.0",
"_originalSource": "PolymerElements/iron-meta" "_originalSource": "polymerelements/iron-meta"
} }

View file

@ -1,6 +1,6 @@
{ {
"name": "paper-dropdown-menu", "name": "paper-dropdown-menu",
"version": "1.0.3", "version": "1.0.4",
"description": "An element that works similarly to a native browser select", "description": "An element that works similarly to a native browser select",
"authors": [ "authors": [
"The Polymer Authors" "The Polymer Authors"
@ -40,11 +40,11 @@
"web-component-tester": "*", "web-component-tester": "*",
"paper-tabs": "polymerelements/paper-tabs#^1.0.0" "paper-tabs": "polymerelements/paper-tabs#^1.0.0"
}, },
"_release": "1.0.3", "_release": "1.0.4",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "v1.0.3", "tag": "v1.0.4",
"commit": "346aba1cc0231f52d32fe4dce1792a16df3a990a" "commit": "b278c9ea1b3642c77bd4597a28b39a61996a5a9e"
}, },
"_source": "git://github.com/PolymerElements/paper-dropdown-menu.git", "_source": "git://github.com/PolymerElements/paper-dropdown-menu.git",
"_target": "~1.0.1", "_target": "~1.0.1",

View file

@ -1,6 +1,6 @@
{ {
"name": "paper-dropdown-menu", "name": "paper-dropdown-menu",
"version": "1.0.3", "version": "1.0.4",
"description": "An element that works similarly to a native browser select", "description": "An element that works similarly to a native browser select",
"authors": [ "authors": [
"The Polymer Authors" "The Polymer Authors"

View file

@ -117,6 +117,7 @@ respectively.
} }
paper-menu-button { paper-menu-button {
display: block;
@apply(--paper-dropdown-menu-button); @apply(--paper-dropdown-menu-button);
} }
@ -199,6 +200,8 @@ respectively.
* The last selected item. An item is selected if the dropdown menu has * The last selected item. An item is selected if the dropdown menu has
* a child with class `dropdown-content`, and that child triggers an * a child with class `dropdown-content`, and that child triggers an
* `iron-select` event with the selected `item` in the `detail`. * `iron-select` event with the selected `item` in the `detail`.
*
* @type {?Object}
*/ */
selectedItem: { selectedItem: {
type: Object, type: Object,
@ -364,4 +367,3 @@ respectively.
}); });
})(); })();
</script> </script>

View file

@ -1,6 +1,6 @@
{ {
"name": "paper-progress", "name": "paper-progress",
"version": "1.0.6", "version": "1.0.7",
"license": "http://polymer.github.io/LICENSE.txt", "license": "http://polymer.github.io/LICENSE.txt",
"description": "A material design progress bar", "description": "A material design progress bar",
"authors": "The Polymer Authors", "authors": "The Polymer Authors",
@ -19,7 +19,8 @@
"dependencies": { "dependencies": {
"polymer": "Polymer/polymer#^1.0.0", "polymer": "Polymer/polymer#^1.0.0",
"iron-range-behavior": "PolymerElements/iron-range-behavior#^1.0.0", "iron-range-behavior": "PolymerElements/iron-range-behavior#^1.0.0",
"paper-styles": "PolymerElements/paper-styles#^1.0.0" "paper-styles": "PolymerElements/paper-styles#^1.0.0",
"iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0"
}, },
"devDependencies": { "devDependencies": {
"iron-component-page": "PolymerElements/iron-component-page#^1.0.0", "iron-component-page": "PolymerElements/iron-component-page#^1.0.0",
@ -29,11 +30,11 @@
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
}, },
"homepage": "https://github.com/PolymerElements/paper-progress", "homepage": "https://github.com/PolymerElements/paper-progress",
"_release": "1.0.6", "_release": "1.0.7",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "v1.0.6", "tag": "v1.0.7",
"commit": "520d84592d98cac975bfcedfcc5765e51d2c2871" "commit": "39a860b8306b0a47e9216ac5b6063b2f88b7772f"
}, },
"_source": "git://github.com/PolymerElements/paper-progress.git", "_source": "git://github.com/PolymerElements/paper-progress.git",
"_target": "^1.0.0", "_target": "^1.0.0",

View file

@ -1,6 +1,6 @@
{ {
"name": "paper-progress", "name": "paper-progress",
"version": "1.0.5", "version": "1.0.7",
"license": "http://polymer.github.io/LICENSE.txt", "license": "http://polymer.github.io/LICENSE.txt",
"description": "A material design progress bar", "description": "A material design progress bar",
"authors": "The Polymer Authors", "authors": "The Polymer Authors",
@ -19,7 +19,8 @@
"dependencies": { "dependencies": {
"polymer": "Polymer/polymer#^1.0.0", "polymer": "Polymer/polymer#^1.0.0",
"iron-range-behavior": "PolymerElements/iron-range-behavior#^1.0.0", "iron-range-behavior": "PolymerElements/iron-range-behavior#^1.0.0",
"paper-styles": "PolymerElements/paper-styles#^1.0.0" "paper-styles": "PolymerElements/paper-styles#^1.0.0",
"iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0"
}, },
"devDependencies": { "devDependencies": {
"iron-component-page": "PolymerElements/iron-component-page#^1.0.0", "iron-component-page": "PolymerElements/iron-component-page#^1.0.0",

View file

@ -9,9 +9,9 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
--> -->
<link rel="import" href="../polymer/polymer.html"> <link rel="import" href="../polymer/polymer.html">
<link rel="import" href="../paper-styles/paper-styles.html">
<link rel="import" href="../paper-styles/paper-styles-classes.html">
<link rel="import" href="../iron-range-behavior/iron-range-behavior.html"> <link rel="import" href="../iron-range-behavior/iron-range-behavior.html">
<link rel="import" href="../paper-styles/color.html">
<link rel="import" href="../iron-flex-layout/iron-flex-layout.html">
<!-- <!--
The progress bars are for situations where the percentage completed can be The progress bars are for situations where the percentage completed can be

View file

@ -1,6 +1,6 @@
{ {
"name": "paper-toggle-button", "name": "paper-toggle-button",
"version": "1.0.9", "version": "1.0.10",
"description": "A material design toggle button control", "description": "A material design toggle button control",
"authors": [ "authors": [
"The Polymer Authors" "The Polymer Authors"
@ -34,11 +34,11 @@
"iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0",
"iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0" "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0"
}, },
"_release": "1.0.9", "_release": "1.0.10",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "v1.0.9", "tag": "v1.0.10",
"commit": "95a18ee82adfb9e10594f99251e991f91b489ac1" "commit": "b9851b6ab872ea03df70b80c6f89478f50d12823"
}, },
"_source": "git://github.com/PolymerElements/paper-toggle-button.git", "_source": "git://github.com/PolymerElements/paper-toggle-button.git",
"_target": "~1.0.5", "_target": "~1.0.5",

View file

@ -1,6 +1,6 @@
{ {
"name": "paper-toggle-button", "name": "paper-toggle-button",
"version": "1.0.9", "version": "1.0.10",
"description": "A material design toggle button control", "description": "A material design toggle button control",
"authors": [ "authors": [
"The Polymer Authors" "The Polymer Authors"

View file

@ -21,12 +21,13 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
<link rel="import" href="../paper-toggle-button.html"> <link rel="import" href="../paper-toggle-button.html">
<style is="custom-style"> <style is="custom-style">
.line { paper-toggle-button {
margin-bottom: 40px; margin-bottom: 40px;
display: block;
} }
.line span { paper-toggle-button:last-child {
margin-left: 24px; margin-bottom: 0;
} }
paper-toggle-button.blue { paper-toggle-button.blue {
@ -71,33 +72,33 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
<div> <div>
<h4>Enabled</h4> <h4>Enabled</h4>
<div class="horizontal-section"> <div class="horizontal-section">
<div class="line"><paper-toggle-button></paper-toggle-button><span>Oxygen</span></div> <paper-toggle-button>Oxygen</paper-toggle-button>
<div class="line"><paper-toggle-button></paper-toggle-button><span>Carbon</span></div> <paper-toggle-button>Carbon</paper-toggle-button>
<div class="line"><paper-toggle-button checked></paper-toggle-button><span>Hydrogen</span></div> <paper-toggle-button checked>Hydrogen</paper-toggle-button>
<div class="line"><paper-toggle-button checked></paper-toggle-button><span>Nitrogen</span></div> <paper-toggle-button checked>Nitrogen</paper-toggle-button>
<div class="line"><paper-toggle-button checked></paper-toggle-button><span>Calcium</span></div> <paper-toggle-button checked>Calcium</paper-toggle-button>
</div> </div>
</div> </div>
<div> <div>
<h4>Disabled</h4> <h4>Disabled</h4>
<div class="horizontal-section"> <div class="horizontal-section">
<div class="line"><paper-toggle-button disabled></paper-toggle-button><span>Oxygen</span></div> <paper-toggle-button disabled>Oxygen</paper-toggle-button>
<div class="line"><paper-toggle-button disabled></paper-toggle-button><span>Carbon</span></div> <paper-toggle-button disabled>Carbon</paper-toggle-button>
<div class="line"><paper-toggle-button checked disabled></paper-toggle-button><span>Hydrogen</span></div> <paper-toggle-button checked disabled>Hydrogen</paper-toggle-button>
<div class="line"><paper-toggle-button checked disabled></paper-toggle-button><span>Nitrogen</span></div> <paper-toggle-button checked disabled>Nitrogen</paper-toggle-button>
<div class="line"><paper-toggle-button checked disabled></paper-toggle-button><span>Calcium</span></div> <paper-toggle-button checked disabled>Calcium</paper-toggle-button>
</div> </div>
</div> </div>
<div> <div>
<h4>Color</h4> <h4>Color</h4>
<div class="horizontal-section"> <div class="horizontal-section">
<div class="line"><paper-toggle-button class="blue"></paper-toggle-button><span>Oxygen</span></div> <paper-toggle-button class="blue">Oxygen</paper-toggle-button>
<div class="line"><paper-toggle-button class="red"></paper-toggle-button><span>Carbon</span></div> <paper-toggle-button class="red">Carbon</paper-toggle-button>
<div class="line"><paper-toggle-button checked class="orange"></paper-toggle-button><span>Hydrogen</span></div> <paper-toggle-button checked class="orange">Hydrogen</paper-toggle-button>
<div class="line"><paper-toggle-button checked class="green"></paper-toggle-button><span>Nitrogen</span></div> <paper-toggle-button checked class="green">Nitrogen</paper-toggle-button>
<div class="line"><paper-toggle-button checked class="blue"></paper-toggle-button><span>Calcium</span></div> <paper-toggle-button checked class="blue">Calcium</paper-toggle-button>
</div> </div>
</div> </div>
</div> </div>

View file

@ -39,6 +39,7 @@ Custom property | Description | Default
`--paper-toggle-button-unchecked-button` | Mixin applied to the slider button when the input is not checked | `{}` `--paper-toggle-button-unchecked-button` | Mixin applied to the slider button when the input is not checked | `{}`
`--paper-toggle-button-checked-bar` | Mixin applied to the slider when the input is checked | `{}` `--paper-toggle-button-checked-bar` | Mixin applied to the slider when the input is checked | `{}`
`--paper-toggle-button-checked-button` | Mixin applied to the slider button when the input is checked | `{}` `--paper-toggle-button-checked-button` | Mixin applied to the slider button when the input is checked | `{}`
`--paper-toggle-button-label-color` | Label color | `--primary-text-color`
@group Paper Elements @group Paper Elements
@element paper-toggle-button @element paper-toggle-button
@ -93,7 +94,7 @@ Custom property | Description | Default
transition: none; transition: none;
} }
:host([checked]):not([disabled]) .toggle-bar { :host([checked]:not([disabled])) .toggle-bar {
opacity: 0.5; opacity: 0.5;
background-color: var(--paper-toggle-button-checked-bar-color, --default-primary-color); background-color: var(--paper-toggle-button-checked-bar-color, --default-primary-color);
@apply(--paper-toggle-button-checked-bar); @apply(--paper-toggle-button-checked-bar);
@ -109,7 +110,7 @@ Custom property | Description | Default
transform: translate(16px, 0); transform: translate(16px, 0);
} }
:host([checked]):not([disabled]) .toggle-button { :host([checked]:not([disabled])) .toggle-button {
background-color: var(--paper-toggle-button-checked-button-color, --default-primary-color); background-color: var(--paper-toggle-button-checked-button-color, --default-primary-color);
@apply(--paper-toggle-button-checked-button); @apply(--paper-toggle-button-checked-button);
} }
@ -135,10 +136,22 @@ Custom property | Description | Default
} }
.toggle-container { .toggle-container {
display: inline-block;
position: relative; position: relative;
width: 36px; width: 36px;
height: 14px; height: 14px;
} }
.toggle-label {
position: relative;
top: -2px;
display: inline-block;
vertical-align: middle;
margin-left: 10px;
white-space: normal;
pointer-events: none;
color: var(--paper-toggle-button-label-color, --primary-text-color);
}
</style> </style>
<div class="toggle-container"> <div class="toggle-container">
@ -148,6 +161,8 @@ Custom property | Description | Default
</div> </div>
</div> </div>
<div class="toggle-label"><content></content></div>
</template> </template>
<script> <script>

View file

@ -43,7 +43,7 @@
<input type="checkbox" id="chkOtherTrailers" /> <input type="checkbox" id="chkOtherTrailers" />
</fieldset> </fieldset>
<div class="fieldDescription">${LabelTheseFeaturesRequireSupporterHelpAndTrailers}</div> <div class="fieldDescription">${LabelTheseFeaturesRequireSupporterHelpAndTrailers}</div>
<div class="fieldDescription"><a class="lnkSupporterLearnMore" href="http://emby.media/donate" target="_blank" style="display:none;">${ButtonLearnMore}</a></div> <div class="fieldDescription"><a class="lnkSupporterLearnMore" href="http://emby.media/premiere" target="_blank" style="display:none;">${ButtonLearnMore}</a></div>
</li> </li>
<li> <li>
<label for="chkMyMovieTrailers">${OptionTrailersFromMyMovies}</label> <label for="chkMyMovieTrailers">${OptionTrailersFromMyMovies}</label>

View file

@ -307,17 +307,15 @@
var editorContent = dlg.querySelector('.editorContent'); var editorContent = dlg.querySelector('.editorContent');
initEditor(editorContent); initEditor(editorContent);
$('.btnCloseDialog', dlg).on('click', closeDialog); $('.btnCloseDialog', dlg).on('click', function () {
PaperDialogHelper.close(dlg);
});
reloadBrowsableImages(editorContent); reloadBrowsableImages(editorContent);
}); });
} }
function closeDialog() {
history.back();
}
function onDialogClosed() { function onDialogClosed() {
$(this).remove(); $(this).remove();

View file

@ -51,7 +51,6 @@
startSync(true, { startSync(true, {
uploadPhotos: false, uploadPhotos: false,
enableBackgroundTransfer: true,
enableNewDownloads: true enableNewDownloads: true
}); });
} }
@ -60,31 +59,14 @@
Logger.log('- BackgroundFetch failed'); Logger.log('- BackgroundFetch failed');
} }
var syncInterval = 1800000; var syncInterval = 900000;
var photoUploadInterval = 21600000;
function restartInterval() { var offlineUserSyncInterval = 43200000;
setInterval(function () {
startIntervalSync();
}, syncInterval);
if (lastStart > 0 && (new Date().getTime() - lastStart) >= syncInterval) {
setTimeout(function () {
startIntervalSync();
}, 5000);
}
}
function startIntervalSync() { function startIntervalSync() {
startSync(false, { startSync(false, {
uploadPhotos: true, uploadPhotos: true,
enableNewDownloads: false, enableNewDownloads: true
enableBackgroundTransfer: true
}); });
} }
@ -92,9 +74,8 @@
options.enableBackgroundTransfer = true; options.enableBackgroundTransfer = true;
if (options.enableNewDownloads == null) { options.uploadPhotos = (new Date().getTime() - lastStart) >= photoUploadInterval;
options.enableNewDownloads = false; options.syncOfflineUsers = (new Date().getTime() - lastStart) >= offlineUserSyncInterval;
}
} }
Dashboard.ready(function () { Dashboard.ready(function () {
@ -103,10 +84,23 @@
LocalSync.normalizeSyncOptions = normalizeSyncOptions; LocalSync.normalizeSyncOptions = normalizeSyncOptions;
}); });
restartInterval();
}); });
document.addEventListener("resume", restartInterval, false);
pageClassOn('pageshow', "page", function () {
if (!Dashboard.getCurrentUserId()) {
return;
}
if ((new Date().getTime() - lastStart) >= syncInterval) {
setTimeout(function () {
startIntervalSync();
}, 10000);
}
});
onDeviceReady(); onDeviceReady();
})(); })();

View file

@ -97,9 +97,7 @@
TabBar.show(); TabBar.show();
} }
function showUserTabs() { function showUserTabs(user) {
Dashboard.getCurrentUser().done(function (user) {
var tabs = ['Library', 'Favorites', 'Search', 'NowPlaying']; var tabs = ['Library', 'Favorites', 'Search', 'NowPlaying'];
@ -114,7 +112,15 @@
// We need to make sure the above completes first // We need to make sure the above completes first
setTimeout(showTabs, 500); setTimeout(showTabs, 500);
}); }
function showCurrentUserTabs() {
if (!Dashboard.getCurrentUserId()) {
return;
}
Dashboard.getCurrentUser().done(showUserTabs);
} }
var isFirstHide = true; var isFirstHide = true;
@ -137,12 +143,15 @@
init(); init();
showUserTabs(); Events.on(ConnectionManager, 'localusersignedin', function (e, user) {
showUserTabs(user);
});
Events.on(ConnectionManager, 'localusersignedin', showUserTabs);
Events.on(ConnectionManager, 'localusersignedout', hideTabs); Events.on(ConnectionManager, 'localusersignedout', hideTabs);
Events.on(MediaController, 'beforeplaybackstart', onPlaybackStart); Events.on(MediaController, 'beforeplaybackstart', onPlaybackStart);
Events.on(MediaController, 'playbackstop', onPlaybackStop); Events.on(MediaController, 'playbackstop', onPlaybackStop);
showCurrentUserTabs();
}); });
function onPlaybackStart(e, state, player) { function onPlaybackStart(e, state, player) {

View file

@ -246,6 +246,54 @@
return deferred.promise(); return deferred.promise();
} }
function getUserIdsWithAccess(itemId, serverId) {
var deferred = DeferredBuilder.Deferred();
getOfflineItemsDb(function (db) {
db.transaction(function (tx) {
tx.executeSql("SELECT UserIdsWithAccess from Items where ItemId=? AND ServerId=?", [itemId, serverId], function (tx, res) {
var itemIds = [];
if (res.rows.length) {
itemIds = res.rows.item(0).UserIdsWithAccess;
itemIds = itemIds ? itemIds.split(',') : [];
}
deferred.resolveWith(null, [itemIds]);
}, function (e) {
deferred.reject();
});
});
});
return deferred.promise();
}
function saveUserIdsWithAccess(itemId, serverId, userIds) {
Logger.log('saveUserIdsWithAccess');
var deferred = DeferredBuilder.Deferred();
getOfflineItemsDb(function (db) {
db.transaction(function (tx) {
var values = [userIds.join(','), itemId, serverId];
tx.executeSql("Update Items set UserIdsWithAccess=? where ItemId=? and ServerId=?", values);
deferred.resolve();
});
});
return deferred.promise();
}
function getLocalItem(itemId, serverId) { function getLocalItem(itemId, serverId) {
var deferred = DeferredBuilder.Deferred(); var deferred = DeferredBuilder.Deferred();
@ -509,7 +557,7 @@
isResolved = true; isResolved = true;
// true indicates that it's queued // true indicates that it's queued
deferred.resolveWith(null, [localPath, true]); deferred.resolveWith(null, [localPath, true]);
}, 700); }, 500);
// Start the download and persist the promise to be able to cancel the download. // Start the download and persist the promise to be able to cancel the download.
download.startAsync().then(function () { download.startAsync().then(function () {
@ -622,7 +670,7 @@
// true indicates that it's queued // true indicates that it's queued
deferred.resolveWith(null, [localPath, isQueued]); deferred.resolveWith(null, [localPath, isQueued]);
} }
}, 3000); }, 500);
} }
}, function () { }, function () {
@ -871,7 +919,9 @@
hasImage: hasImage, hasImage: hasImage,
downloadImage: downloadImage, downloadImage: downloadImage,
fileExists: fileExists, fileExists: fileExists,
translateFilePath: translateFilePath translateFilePath: translateFilePath,
getUserIdsWithAccess: getUserIdsWithAccess,
saveUserIdsWithAccess: saveUserIdsWithAccess
}; };
})(); })();

View file

@ -147,6 +147,23 @@
position: relative; position: relative;
top: 1px; top: 1px;
white-space: nowrap; white-space: nowrap;
max-width: 100px;
overflow: hidden;
text-overflow: ellipsis;
}
@media all and (min-width: 500px) {
.libraryMenuButtonText {
max-width: 200px;
}
}
@media all and (min-width: 600px) {
.libraryMenuButtonText {
max-width: 300px;
}
} }
.logoLibraryMenuButtonText { .logoLibraryMenuButtonText {

View file

@ -4,7 +4,7 @@
} }
.nowPlayingText { .nowPlayingText {
display: inline-block;. display: inline-block;
font-weight: normal; font-weight: normal;
position: relative; position: relative;
top: -7px; top: -7px;
@ -24,7 +24,7 @@
} }
.mediaButton.active { .mediaButton.active {
color: #2ad; color: #52B54B;
} }
@media (min-width: 500px) { @media (min-width: 500px) {

View file

@ -70,7 +70,7 @@
<div class="supporterContainer hide"> <div class="supporterContainer hide">
<p>${MessageActiveSupporterMembershipRequiredSeriesRecordings}</p> <p>${MessageActiveSupporterMembershipRequiredSeriesRecordings}</p>
<p class="supporterTrial hide">${HeaderEnjoyDayTrial}</p> <p class="supporterTrial hide">${HeaderEnjoyDayTrial}</p>
<a class="clearLink btnSupporter hide" href="http://emby.media/donate" target="_blank"><paper-button raised class="accent block"><iron-icon icon="check"></iron-icon><span>${HeaderBecomeProjectSupporter}</span></paper-button></a> <a class="clearLink btnSupporter hide" href="http://emby.media/premiere" target="_blank"><paper-button raised class="accent block"><iron-icon icon="check"></iron-icon><span>${HeaderBecomeProjectSupporter}</span></paper-button></a>
<br /> <br />
</div> </div>
<button type="submit" data-role="none" class="clearButton btnSubmitContainer"> <button type="submit" data-role="none" class="clearButton btnSubmitContainer">

View file

@ -10,7 +10,7 @@
<div class="supporterPromotionContainer" style="display:none;text-align: right;"> <div class="supporterPromotionContainer" style="display:none;text-align: right;">
<div class="customSupporterPromotion supporterPromotion inlineSupporterPromotion"> <div class="customSupporterPromotion supporterPromotion inlineSupporterPromotion">
<a class="btn btnActionAccent" href="http://emby.media/donate" target="_blank" style="font-size:14px;"> <a class="btn btnActionAccent" href="http://emby.media/premiere" target="_blank" style="font-size:14px;">
<div class="mainText"> <div class="mainText">
</div> </div>
<div class="btnLearnMore" style="font-weight:normal;font-size:90%;margin-top:5px;"> <div class="btnLearnMore" style="font-weight:normal;font-size:90%;margin-top:5px;">

View file

@ -817,13 +817,13 @@
imgUrl = "css/images/supporter/supporterbadge.png"; imgUrl = "css/images/supporter/supporterbadge.png";
text = Globalize.translate('MessageThankYouForSupporting'); text = Globalize.translate('MessageThankYouForSupporting');
$('.supporterIconContainer', page).html('<a class="imageLink supporterIcon" href="http://emby.media/donate" target="_blank" title="' + text + '"><img src="' + imgUrl + '" style="height:32px;vertical-align: middle; margin-right: .5em;" /></a><span style="position:relative;top:2px;text-decoration:none;">' + text + '</span>'); $('.supporterIconContainer', page).html('<a class="imageLink supporterIcon" href="http://emby.media/premiere" target="_blank" title="' + text + '"><img src="' + imgUrl + '" style="height:32px;vertical-align: middle; margin-right: .5em;" /></a><span style="position:relative;top:2px;text-decoration:none;">' + text + '</span>');
} else { } else {
imgUrl = "css/images/supporter/nonsupporterbadge.png"; imgUrl = "css/images/supporter/nonsupporterbadge.png";
text = Globalize.translate('MessagePleaseSupportProject'); text = Globalize.translate('MessagePleaseSupportProject');
$('.supporterIconContainer', page).html('<a class="imageLink supporterIcon" href="http://emby.media/donate" target="_blank" title="' + text + '"><img src="' + imgUrl + '" style="height:32px;vertical-align: middle; margin-right: .5em;" /><span style="position:relative;top:2px;text-decoration:none;">' + text + '</span></a>'); $('.supporterIconContainer', page).html('<a class="imageLink supporterIcon" href="http://emby.media/premiere" target="_blank" title="' + text + '"><img src="' + imgUrl + '" style="height:32px;vertical-align: middle; margin-right: .5em;" /><span style="position:relative;top:2px;text-decoration:none;">' + text + '</span></a>');
} }
}, },
@ -1064,9 +1064,7 @@ $(document).on('pageshow', "#dashboardPage", DashboardPage.onPageShow).on('pageb
}, 1000); }, 1000);
} }
// https://hacks.mozilla.org/2013/04/detecting-touch-its-the-why-not-the-how/ if (AppInfo.isTouchPreferred) {
if (('ontouchstart' in window) || (navigator.maxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0)) {
/* browser with either Touch Events of Pointer Events /* browser with either Touch Events of Pointer Events
running on touch-capable device */ running on touch-capable device */
return this; return this;
@ -1378,7 +1376,7 @@ $(document).on('pageshow', "#dashboardPage", DashboardPage.onPageShow).on('pageb
$('.supporterPromotion', page).remove(); $('.supporterPromotion', page).remove();
if (!pluginSecurityInfo.IsMBSupporter && AppInfo.enableSupporterMembership) { if (!pluginSecurityInfo.IsMBSupporter && AppInfo.enableSupporterMembership) {
$('.content-primary', page).append('<div class="supporterPromotion"><a class="btn btnActionAccent" href="http://emby.media/donate" target="_blank" style="font-size:14px;"><div>' + Globalize.translate('HeaderSupportTheTeam') + '</div><div style="font-weight:normal;font-size:90%;margin-top:5px;">' + Globalize.translate('TextEnjoyBonusFeatures') + '</div></a></div>'); $('.content-primary', page).append('<div class="supporterPromotion"><a class="btn btnActionAccent" href="http://emby.media/premiere" target="_blank" style="font-size:14px;"><div>' + Globalize.translate('HeaderSupportTheTeam') + '</div><div style="font-weight:normal;font-size:90%;margin-top:5px;">' + Globalize.translate('TextEnjoyBonusFeatures') + '</div></a></div>');
} }
} }

View file

@ -1469,8 +1469,6 @@
$('.popupAdvancedRefreshForm').off('submit', EditItemMetadataPage.onRefreshFormSubmit).on('submit', EditItemMetadataPage.onRefreshFormSubmit); $('.popupAdvancedRefreshForm').off('submit', EditItemMetadataPage.onRefreshFormSubmit).on('submit', EditItemMetadataPage.onRefreshFormSubmit);
$('.identifyOptionsForm').off('submit', EditItemMetadataPage.onIdentificationOptionsSubmit).on('submit', EditItemMetadataPage.onIdentificationOptionsSubmit); $('.identifyOptionsForm').off('submit', EditItemMetadataPage.onIdentificationOptionsSubmit).on('submit', EditItemMetadataPage.onIdentificationOptionsSubmit);
page.querySelector('.btnMore iron-icon').icon = AppInfo.moreIcon;
$('.btnMore', page).on('click', function () { $('.btnMore', page).on('click', function () {
showMoreMenu(page, this); showMoreMenu(page, this);
}); });

View file

@ -373,9 +373,7 @@
}, 1000); }, 1000);
} }
// https://hacks.mozilla.org/2013/04/detecting-touch-its-the-why-not-the-how/ if (AppInfo.isTouchPreferred) {
if (('ontouchstart' in window) || (navigator.maxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0)) {
/* browser with either Touch Events of Pointer Events /* browser with either Touch Events of Pointer Events
running on touch-capable device */ running on touch-capable device */
return this; return this;

View file

@ -44,7 +44,7 @@
html += '<br/>'; html += '<br/>';
html += '<a class="clearLink" href="http://emby.media/donate" target="_blank"><paper-button raised class="submit block"><iron-icon icon="check"></iron-icon><span>' + Globalize.translate('ButtonBecomeSupporter') + '</span></paper-button></a>'; html += '<a class="clearLink" href="http://emby.media/premiere" target="_blank"><paper-button raised class="submit block"><iron-icon icon="check"></iron-icon><span>' + Globalize.translate('ButtonBecomeSupporter') + '</span></paper-button></a>';
html += '<paper-button raised class="subdued block btnCancelSupporterInfo" style="background:#444;"><iron-icon icon="close"></iron-icon><span>' + Globalize.translate('ButtonClosePlayVideo') + '</span></paper-button>'; html += '<paper-button raised class="subdued block btnCancelSupporterInfo" style="background:#444;"><iron-icon icon="close"></iron-icon><span>' + Globalize.translate('ButtonClosePlayVideo') + '</span></paper-button>';
html += '</div>'; html += '</div>';
@ -82,7 +82,7 @@
} }
Dashboard.alert({ Dashboard.alert({
message: Globalize.translate('HeaderSyncRequiresSupporterMembership') + '<br/><p><a href="http://emby.media/donate" target="_blank">' + Globalize.translate('ButtonLearnMore') + '</a></p>', message: Globalize.translate('HeaderSyncRequiresSupporterMembership') + '<br/><p><a href="http://emby.media/premiere" target="_blank">' + Globalize.translate('ButtonLearnMore') + '</a></p>',
title: Globalize.translate('HeaderSync') title: Globalize.translate('HeaderSync')
}); });

View file

@ -2331,7 +2331,10 @@ var AppInfo = {};
var name = $.browser.android ? "Emby for Android" : ($.browser.safari ? "Emby for iOS" : "Emby Mobile"); var name = $.browser.android ? "Emby for Android" : ($.browser.safari ? "Emby for iOS" : "Emby Mobile");
init(deferred, capablities, name, appVersion, deviceId, device.model); // Remove special characters
var cleanDeviceName = device.model.replace(/[^\w\s]/gi, '');
init(deferred, capablities, name, appVersion, deviceId, cleanDeviceName);
}); });
} }

View file

@ -201,7 +201,7 @@
$('.radioDonationType', page).trigger('change'); $('.radioDonationType', page).trigger('change');
$('.benefits', page).html(Globalize.translate('HeaderSupporterBenefit', '<a href="http://emby.media/donate" target="_blank">', '</a>')).trigger('create'); $('.benefits', page).html(Globalize.translate('HeaderSupporterBenefit', '<a href="http://emby.media/premiere" target="_blank">', '</a>')).trigger('create');
loadUserInfo(page); loadUserInfo(page);
}); });

View file

@ -404,7 +404,7 @@
$('.supporterPromotionContainer', page).show(); $('.supporterPromotionContainer', page).show();
if (AppInfo.enableSupporterMembership) { if (AppInfo.enableSupporterMembership) {
$('.supporterPromotion a', page).attr('href', 'http://emby.media/donate'); $('.supporterPromotion a', page).attr('href', 'http://emby.media/premiere');
$('.supporterPromotion .btnLearnMore', page).show(); $('.supporterPromotion .btnLearnMore', page).show();
$('.supporterPromotion .mainText', page).html(Globalize.translate('HeaderSyncRequiresSupporterMembership')); $('.supporterPromotion .mainText', page).html(Globalize.translate('HeaderSyncRequiresSupporterMembership'));
} else { } else {

View file

@ -38,7 +38,7 @@
"HeaderSupportTheTeam": "Support the Emby Team", "HeaderSupportTheTeam": "Support the Emby Team",
"TextEnjoyBonusFeatures": "Enjoy Bonus Features", "TextEnjoyBonusFeatures": "Enjoy Bonus Features",
"TitleLiveTV": "Live TV", "TitleLiveTV": "Live TV",
"ButtonCancelSyncJob": "Cancel sync job", "ButtonCancelSyncJob": "Cancel sync",
"ButtonSelectView": "Select view", "ButtonSelectView": "Select view",
"TitleSync": "Sync", "TitleSync": "Sync",
"OptionAutomatic": "Auto", "OptionAutomatic": "Auto",

View file

@ -29,7 +29,7 @@
<div class="supporterContainer hide"> <div class="supporterContainer hide">
<br /> <br />
<a class="clearLink" href="http://emby.media/donate" target="_blank"> <a class="clearLink" href="http://emby.media/premiere" target="_blank">
<paper-button raised class="block accent"><iron-icon icon="check"></iron-icon><span>${HeaderBecomeProjectSupporter}</span></paper-button> <paper-button raised class="block accent"><iron-icon icon="check"></iron-icon><span>${HeaderBecomeProjectSupporter}</span></paper-button>
</a> </a>
</div> </div>

View file

@ -22,7 +22,7 @@
<br /> <br />
<div class="supporterPromotionContainer" style="display:none;"> <div class="supporterPromotionContainer" style="display:none;">
<div class="customSupporterPromotion supporterPromotion"> <div class="customSupporterPromotion supporterPromotion">
<a class="btn btnActionAccent" href="http://emby.media/donate" target="_blank" style="font-size:14px;"> <a class="btn btnActionAccent" href="http://emby.media/premiere" target="_blank" style="font-size:14px;">
<div class="mainText"> <div class="mainText">
</div> </div>
<div class="btnLearnMore" style="font-weight:normal;font-size:90%;margin-top:5px;"> <div class="btnLearnMore" style="font-weight:normal;font-size:90%;margin-top:5px;">

View file

@ -11898,194 +11898,6 @@ The `aria-labelledby` attribute will be set to the header element, if one exists
<style>
.paper-font-display4,
.paper-font-display3,
.paper-font-display2,
.paper-font-display1,
.paper-font-headline,
.paper-font-title,
.paper-font-subhead,
.paper-font-body2,
.paper-font-body1,
.paper-font-caption,
.paper-font-menu,
.paper-font-button {
font-family: 'Roboto', 'Noto', sans-serif;
-webkit-font-smoothing: antialiased; /* OS X subpixel AA bleed bug */
}
.paper-font-code2,
.paper-font-code1 {
font-family: 'Roboto Mono', 'Consolas', 'Menlo', monospace;
-webkit-font-smoothing: antialiased; /* OS X subpixel AA bleed bug */
}
/* Opt for better kerning for headers & other short labels. */
.paper-font-display4,
.paper-font-display3,
.paper-font-display2,
.paper-font-display1,
.paper-font-headline,
.paper-font-title,
.paper-font-subhead,
.paper-font-menu,
.paper-font-button {
text-rendering: optimizeLegibility;
}
/*
"Line wrapping only applies to Body, Subhead, Headline, and the smaller Display
styles. All other styles should exist as single lines."
*/
.paper-font-display4,
.paper-font-display3,
.paper-font-title,
.paper-font-caption,
.paper-font-menu,
.paper-font-button {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.paper-font-display4 {
font-size: 112px;
font-weight: 300;
letter-spacing: -.044em;
line-height: 120px;
}
.paper-font-display3 {
font-size: 56px;
font-weight: 400;
letter-spacing: -.026em;
line-height: 60px;
}
.paper-font-display2 {
font-size: 45px;
font-weight: 400;
letter-spacing: -.018em;
line-height: 48px;
}
.paper-font-display1 {
font-size: 34px;
font-weight: 400;
letter-spacing: -.01em;
line-height: 40px;
}
.paper-font-headline {
font-size: 24px;
font-weight: 400;
letter-spacing: -.012em;
line-height: 32px;
}
.paper-font-title {
font-size: 20px;
font-weight: 500;
line-height: 28px;
}
.paper-font-subhead {
font-size: 16px;
font-weight: 400;
line-height: 24px;
}
.paper-font-body2 {
font-size: 14px;
font-weight: 500;
line-height: 24px;
}
.paper-font-body1 {
font-size: 14px;
font-weight: 400;
line-height: 20px;
}
.paper-font-caption {
font-size: 12px;
font-weight: 400;
letter-spacing: 0.011em;
line-height: 20px;
}
.paper-font-menu {
font-size: 13px;
font-weight: 500;
line-height: 24px;
}
.paper-font-button {
font-size: 14px;
font-weight: 500;
letter-spacing: 0.018em;
line-height: 24px;
text-transform: uppercase;
}
.paper-font-code2 {
font-size: 14px;
font-weight: 700;
line-height: 20px;
}
.paper-font-code1 {
font-size: 14px;
font-weight: 700;
line-height: 20px;
}
</style>
<style>
.shadow-transition {
transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1);
}
.shadow-elevation-2dp {
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14),
0 1px 5px 0 rgba(0, 0, 0, 0.12),
0 3px 1px -2px rgba(0, 0, 0, 0.2);
}
.shadow-elevation-3dp {
box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14),
0 1px 8px 0 rgba(0, 0, 0, 0.12),
0 3px 3px -2px rgba(0, 0, 0, 0.4);
}
.shadow-elevation-4dp {
box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14),
0 1px 10px 0 rgba(0, 0, 0, 0.12),
0 2px 4px -1px rgba(0, 0, 0, 0.4);
}
.shadow-elevation-6dp {
box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14),
0 1px 18px 0 rgba(0, 0, 0, 0.12),
0 3px 5px -1px rgba(0, 0, 0, 0.4);
}
.shadow-elevation-8dp {
box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14),
0 3px 14px 2px rgba(0, 0, 0, 0.12),
0 5px 5px -3px rgba(0, 0, 0, 0.4);
}
.shadow-elevation-16dp {
box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14),
0 6px 30px 5px rgba(0, 0, 0, 0.12),
0 8px 10px -5px rgba(0, 0, 0, 0.4);
}
</style>
<script> <script>
/** /**