diff --git a/dashboard-ui/scripts/actionsheet.js b/dashboard-ui/scripts/actionsheet.js
index 4d6f795d1c..ebc6259af9 100644
--- a/dashboard-ui/scripts/actionsheet.js
+++ b/dashboard-ui/scripts/actionsheet.js
@@ -94,12 +94,6 @@
setTimeout(function () {
var dlg = document.getElementById(id);
- if (options.visibleBackground) {
- $(dlg).on('iron-overlay-opened', function(e) {
- $('iron-overlay-backdrop').addClass('visibleBackground');
- });
- }
-
dlg.open();
// Has to be assigned a z-index after the call to .open()
diff --git a/dashboard-ui/scripts/appsettings.js b/dashboard-ui/scripts/appsettings.js
index 340705567e..ce8b2b9425 100644
--- a/dashboard-ui/scripts/appsettings.js
+++ b/dashboard-ui/scripts/appsettings.js
@@ -1,7 +1,7 @@
-(function (window, store) {
+(function (window) {
function update(key, val) {
- store.setItem(key, val);
+ appStorage.setItem(key, val);
Events.trigger(AppSettings, 'settingupdated', [key]);
}
@@ -14,7 +14,7 @@
update('preferredVideoBitrate', val);
}
- return parseInt(store.getItem('preferredVideoBitrate') || '') || 1500000;
+ return parseInt(appStorage.getItem('preferredVideoBitrate') || '') || 1500000;
},
maxChromecastBitrate: function (val) {
@@ -22,7 +22,7 @@
update('chromecastBitrate', val);
}
- return parseInt(store.getItem('chromecastBitrate') || '') || 3000000;
+ return parseInt(appStorage.getItem('chromecastBitrate') || '') || 3000000;
},
enableChromecastAc3: function (val) {
@@ -30,7 +30,7 @@
update('enablechromecastac3', val.toString());
}
- return store.getItem('enablechromecastac3') == 'true';
+ return appStorage.getItem('enablechromecastac3') == 'true';
},
enableExternalPlayers: function (val) {
@@ -38,7 +38,7 @@
update('externalplayers', val.toString());
}
- return store.getItem('externalplayers') == 'true';
+ return appStorage.getItem('externalplayers') == 'true';
},
enableItemPreviews: function (val) {
@@ -46,7 +46,7 @@
update('enableItemPreviews', val.toString());
}
- return store.getItem('enableItemPreviews') == 'true';
+ return appStorage.getItem('enableItemPreviews') == 'true';
},
enableFullScreen: function (val) {
@@ -54,7 +54,7 @@
update('enableFullScreen', val.toString());
}
- return store.getItem('enableFullScreen') == 'true';
+ return appStorage.getItem('enableFullScreen') == 'true';
},
syncPath: function (val) {
@@ -62,10 +62,10 @@
update('syncPath', val.toString());
}
- return store.getItem('syncPath');
+ return appStorage.getItem('syncPath');
}
};
-})(window, window.appStorage);
\ No newline at end of file
+})(window);
\ No newline at end of file
diff --git a/dashboard-ui/scripts/editorsidebar.js b/dashboard-ui/scripts/editorsidebar.js
index 4418b9be66..e99a919cf6 100644
--- a/dashboard-ui/scripts/editorsidebar.js
+++ b/dashboard-ui/scripts/editorsidebar.js
@@ -423,6 +423,10 @@
});
+ }).on('pageinitdepends', ".metadataEditorPage", function () {
+
+ Dashboard.importCss('css/metadataeditor.css');
+
}).on('pagebeforehide', ".metadataEditorPage", function () {
var page = this;
diff --git a/dashboard-ui/scripts/externalplayer.js b/dashboard-ui/scripts/externalplayer.js
index 4c2c2a8239..37a82ed938 100644
--- a/dashboard-ui/scripts/externalplayer.js
+++ b/dashboard-ui/scripts/externalplayer.js
@@ -1,4 +1,4 @@
-(function (window, store) {
+(function (window) {
function getDeviceProfile(serverAddress, deviceId, item, startPositionTicks, maxBitrate, mediaSourceId, audioStreamIndex, subtitleStreamIndex) {
@@ -484,4 +484,4 @@
showPlayerSelectionMenu: showPlayerSelectionMenu
};
-})(window, window.appStorage);
\ No newline at end of file
+})(window);
\ No newline at end of file
diff --git a/dashboard-ui/scripts/htmlmediarenderer.js b/dashboard-ui/scripts/htmlmediarenderer.js
index 1efa2d785e..0d392c51ce 100644
--- a/dashboard-ui/scripts/htmlmediarenderer.js
+++ b/dashboard-ui/scripts/htmlmediarenderer.js
@@ -128,7 +128,7 @@
var elem = $('.itemVideo');
- return $(elem)
+ return elem
.one('.loadedmetadata')
.one('playing', onOneVideoPlaying)
.on('timeupdate', onTimeUpdate)
@@ -146,11 +146,11 @@
if (mediaElement) {
if (val != null) {
- mediaElement.currentTime = val;
+ mediaElement.currentTime = val / 1000;
return;
}
- return mediaElement.currentTime;
+ return (mediaElement.currentTime || 0) * 1000;
}
};
@@ -239,7 +239,7 @@
return false;
};
- self.destroy = function () {
+ self.cleanup = function (destroyRenderer) {
self.setCurrentSrc(null);
diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js
index e0437e55ba..f215f555d4 100644
--- a/dashboard-ui/scripts/librarybrowser.js
+++ b/dashboard-ui/scripts/librarybrowser.js
@@ -1,11 +1,11 @@
-var LibraryBrowser = (function (window, document, $, screen, store) {
+var LibraryBrowser = (function (window, document, $, screen) {
var pageSizeKey = 'pagesize_v4';
return {
getDefaultPageSize: function (key, defaultValue) {
- var saved = store.getItem(key || pageSizeKey);
+ var saved = appStorage.getItem(key || pageSizeKey);
if (saved) {
return parseInt(saved);
@@ -29,7 +29,7 @@
loadSavedQueryValues: function (key, query) {
- var values = store.getItem(key + '_' + Dashboard.getCurrentUserId());
+ var values = appStorage.getItem(key + '_' + Dashboard.getCurrentUserId());
if (values) {
@@ -53,7 +53,7 @@
}
try {
- store.setItem(key + '_' + Dashboard.getCurrentUserId(), JSON.stringify(values));
+ appStorage.setItem(key + '_' + Dashboard.getCurrentUserId(), JSON.stringify(values));
} catch (e) {
}
@@ -62,7 +62,7 @@
saveViewSetting: function (key, value) {
try {
- store.setItem(key + '_' + Dashboard.getCurrentUserId() + '_view', value);
+ appStorage.setItem(key + '_' + Dashboard.getCurrentUserId() + '_view', value);
} catch (e) {
}
@@ -71,7 +71,7 @@
getSavedViewSetting: function (key) {
var deferred = $.Deferred();
- var val = store.getItem(key + '_' + Dashboard.getCurrentUserId() + '_view');
+ var val = appStorage.getItem(key + '_' + Dashboard.getCurrentUserId() + '_view');
deferred.resolveWith(null, [val]);
return deferred.promise();
@@ -469,6 +469,7 @@
ActionSheetElement.show({
items: items,
+ positionTo: positionTo,
callback: function (id) {
switch (id) {
@@ -2159,7 +2160,7 @@
if (limit && options.updatePageSizeSetting !== false) {
try {
- store.setItem(options.pageSizeKey || pageSizeKey, limit);
+ appStorage.setItem(options.pageSizeKey || pageSizeKey, limit);
} catch (e) {
}
@@ -3023,4 +3024,4 @@
}
};
-})(window, document, jQuery, screen, window.appStorage);
\ No newline at end of file
+})(window, document, jQuery, screen);
\ No newline at end of file
diff --git a/dashboard-ui/scripts/librarymenu.js b/dashboard-ui/scripts/librarymenu.js
index 90e9ba8d77..21fe298c2b 100644
--- a/dashboard-ui/scripts/librarymenu.js
+++ b/dashboard-ui/scripts/librarymenu.js
@@ -203,10 +203,13 @@
updateLibraryNavLinks($.mobile.activePage);
});
+
+ $('.mainDrawerPanel #drawer').addClass('verticalScrollingDrawer');
}
function onMainDrawerClosed() {
$(document.body).removeClass('bodyWithPopupOpen');
+ $('.mainDrawerPanel #drawer').removeClass('verticalScrollingDrawer');
}
function closeMainDrawer() {
diff --git a/dashboard-ui/scripts/mediacontroller.js b/dashboard-ui/scripts/mediacontroller.js
index 1254ac2518..cc405a2e24 100644
--- a/dashboard-ui/scripts/mediacontroller.js
+++ b/dashboard-ui/scripts/mediacontroller.js
@@ -1,14 +1,14 @@
-(function ($, window, store) {
+(function ($, window) {
function setMirrorModeEnabled(enabled) {
var val = enabled ? '1' : '0';
- store.setItem('displaymirror--' + Dashboard.getCurrentUserId(), val);
+ appStorage.setItem('displaymirror--' + Dashboard.getCurrentUserId(), val);
}
function isMirrorModeEnabled() {
- return (store.getItem('displaymirror--' + Dashboard.getCurrentUserId()) || '') != '0';
+ return (appStorage.getItem('displaymirror--' + Dashboard.getCurrentUserId()) || '') != '0';
}
var currentDisplayInfo;
@@ -891,4 +891,4 @@
mirrorIfEnabled(info);
});
-})(jQuery, window, window.appStorage);
\ No newline at end of file
+})(jQuery, window);
\ No newline at end of file
diff --git a/dashboard-ui/scripts/mediaplayer-video.js b/dashboard-ui/scripts/mediaplayer-video.js
index df13348f8e..88625bb028 100644
--- a/dashboard-ui/scripts/mediaplayer-video.js
+++ b/dashboard-ui/scripts/mediaplayer-video.js
@@ -494,13 +494,13 @@
$('.videoSubtitlePopup').popup('close');
};
- $(function () {
+ $(Dashboard).on('footercreated', function () {
var parent = $("#mediaPlayer");
+
muteButton = $('.muteButton', parent);
unmuteButton = $('.unmuteButton', parent);
currentTimeElement = $('.currentTime', parent);
-
positionSlider = $(".positionSlider", parent).on('slidestart', function (e) {
isPositionSliderActive = true;
diff --git a/dashboard-ui/scripts/mediaplayer.js b/dashboard-ui/scripts/mediaplayer.js
index 7fe7b82eb6..f714d7ee0b 100644
--- a/dashboard-ui/scripts/mediaplayer.js
+++ b/dashboard-ui/scripts/mediaplayer.js
@@ -1,4 +1,4 @@
-(function (document, setTimeout, clearTimeout, screen, store, $, setInterval, window) {
+(function (document, setTimeout, clearTimeout, screen, $, setInterval, window) {
function mediaPlayer() {
@@ -431,7 +431,7 @@
self.getCurrentTicks = function (mediaRenderer) {
- var playerTime = Math.floor(10000000 * (mediaRenderer || self.currentMediaRenderer).currentTime());
+ var playerTime = Math.floor(10000 * (mediaRenderer || self.currentMediaRenderer).currentTime());
playerTime += self.startTimeTicksOffset;
@@ -510,7 +510,7 @@
if (canClientSeek && params == null) {
- mediaRenderer.currentTime(ticks / (1000 * 10000));
+ mediaRenderer.currentTime(ticks / 10000);
return;
}
@@ -855,7 +855,7 @@
}
if (self.isPlaying()) {
- self.stop();
+ self.stop(false);
}
if (item.MediaType !== 'Audio' && item.MediaType !== 'Video') {
@@ -1220,13 +1220,13 @@
self.saveVolume = function (val) {
if (val) {
- store.setItem("volume", val);
+ appStorage.setItem("volume", val);
}
};
self.getSavedVolume = function () {
- return store.getItem("volume") || 0.5;
+ return appStorage.getItem("volume") || 0.5;
};
self.shuffle = function (id) {
@@ -1344,7 +1344,7 @@
};
- self.stop = function () {
+ self.stop = function (destroyRenderer) {
var mediaRenderer = self.currentMediaRenderer;
@@ -1356,7 +1356,8 @@
$(this).off();
- this.destroy();
+ this.cleanup(destroyRenderer);
+
self.currentMediaRenderer = null;
self.currentItem = null;
self.currentMediaSource = null;
@@ -1728,4 +1729,4 @@
});
-})(document, setTimeout, clearTimeout, screen, window.appStorage, $, setInterval, window);
\ No newline at end of file
+})(document, setTimeout, clearTimeout, screen, $, setInterval, window);
\ No newline at end of file
diff --git a/dashboard-ui/scripts/nowplayingpage.js b/dashboard-ui/scripts/nowplayingpage.js
index d227ef3d65..dcb3f4cd9f 100644
--- a/dashboard-ui/scripts/nowplayingpage.js
+++ b/dashboard-ui/scripts/nowplayingpage.js
@@ -366,10 +366,10 @@
}
});
- $(page).on('swipedown', function () {
+ //$(page).on('swipedown', function () {
- history.back();
- });
+ // history.back();
+ //});
$(page).on('click', '.lnkPlayFromIndex', function () {
@@ -396,6 +396,7 @@
player.beginPlayerUpdates();
onStateChanged.call(player, e, state);
+ loadPlaylist($.mobile.activePage);
}
function onPlaybackStopped(e, state) {
@@ -405,6 +406,7 @@
player.endPlayerUpdates();
onStateChanged.call(player, e, {});
+ loadPlaylist($.mobile.activePage);
}
function onStateChanged(e, state) {
@@ -632,13 +634,13 @@
var expected = '2';
- if (appStorage.getItem('remotecontrolswipedown') != expected) {
- Dashboard.alert({
- message: Globalize.translate('MessageSwipeDownOnRemoteControl'),
- title: Globalize.translate('HeaderAlert')
- });
- appStorage.setItem('remotecontrolswipedown', expected);
- }
+ //if (appStorage.getItem('remotecontrolswipedown') != expected) {
+ // Dashboard.alert({
+ // message: Globalize.translate('MessageSwipeDownOnRemoteControl'),
+ // title: Globalize.translate('HeaderAlert')
+ // });
+ // appStorage.setItem('remotecontrolswipedown', expected);
+ //}
}
diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js
index cdf08dbece..81791cdf6a 100644
--- a/dashboard-ui/scripts/site.js
+++ b/dashboard-ui/scripts/site.js
@@ -589,39 +589,39 @@ var Dashboard = {
confirmInternal: function (message, title, showCancel, callback) {
- $('.confirmFlyout').popup("close").remove();
+ require(['paperbuttonstyle'], function () {
- var html = '
';
+ var id = 'paperdlg' + new Date().getTime();
- html += '
';
- html += '
' + title + '
';
- html += '';
+ var html = '
';
+ html += '' + title + '
';
+ html += '' + message + '
';
+ html += '';
-
- $(document.body).append(html);
-
- $('.confirmFlyout').popup({ history: false }).trigger('create').popup("open").on("popupafterclose", function () {
-
- if (callback) {
- callback(this.confirm == true);
+ if (showCancel) {
+ html += '' + Globalize.translate('ButtonCancel') + '';
}
- $(this).off("popupafterclose").remove();
+ html += '' + Globalize.translate('ButtonOk') + '';
+
+ html += '';
+ html += '';
+
+ $(document.body).append(html);
+
+ // This timeout is obviously messy but it's unclear how to determine when the webcomponent is ready for use
+ // element onload never fires
+ setTimeout(function () {
+
+ var dlg = document.getElementById(id);
+
+ dlg.open();
+
+ // Has to be assigned a z-index after the call to .open()
+ $(dlg).on('iron-overlay-closed', function (e) {
+ $(this).remove();
+ });
+ }, 300);
});
},
@@ -1914,6 +1914,8 @@ var AppInfo = {};
$(document.body).append(footerHtml);
+ $(Dashboard).trigger('footercreated');
+
$(window).on("beforeunload", function () {
var apiClient = window.ApiClient;
@@ -2044,6 +2046,10 @@ var AppInfo = {};
Dashboard.importCss('css/detailtable.css');
return {};
});
+ define("tileitemcss", [], function () {
+ Dashboard.importCss('css/tileitem.css');
+ return {};
+ });
if (Dashboard.isRunningInCordova() && $.browser.safari) {
define("actionsheet", ["cordova/ios/actionsheet"]);
@@ -2061,7 +2067,7 @@ var AppInfo = {};
drawer.forceNarrow = true;
drawer.drawerWidth = screen.availWidth >= 330 ? "310px" : "270px";
- if ($.browser.safari && !AppInfo.isNativeApp) {
+ if ($.browser.safari) {
drawer.disableEdgeSwipe = true;
}
diff --git a/dashboard-ui/thirdparty/paper-button-style.css b/dashboard-ui/thirdparty/paper-button-style.css
index 5acfad9ebc..68f364c918 100644
--- a/dashboard-ui/thirdparty/paper-button-style.css
+++ b/dashboard-ui/thirdparty/paper-button-style.css
@@ -230,11 +230,11 @@ iron-overlay-backdrop {
padding: 0 12px;
}
-paper-dialog > *:last-child {
+paper-dialog > *:last-child:not(.buttons) {
margin-bottom: 12px;
}
-paper-dialog > *:first-child {
+paper-dialog > *:first-child:not(h2) {
margin-top: 12px;
}
@@ -242,10 +242,10 @@ paper-icon-button paper-ripple {
color: inherit !important;
}
-iron-overlay-backdrop {
+paper-dialog + iron-overlay-backdrop {
background-color: transparent !important;
}
- iron-overlay-backdrop.visibleBackground {
- background-color: #000 !important;
- }
+paper-dialog[role="alertdialog"] + iron-overlay-backdrop {
+ background-color: #000 !important;
+}
diff --git a/dashboard-ui/vulcanize-out.html b/dashboard-ui/vulcanize-out.html
index 97a51a7f1a..1f7b60284a 100644
--- a/dashboard-ui/vulcanize-out.html
+++ b/dashboard-ui/vulcanize-out.html
@@ -13440,6 +13440,13 @@ iron-selector:not(.narrow-layout) #main ::content [paper-drawer-toggle] {
this._setPeeking(false);
}
+ var dy = event.detail.dy;
+ var absDy = Math.abs(dy);
+
+ if (absDy >= 70) {
+ // Ignore trackx until we move past the edge peek.
+ return;
+ }
this._moveDrawer(this._translateXForDeltaX(dx));
}
},
@@ -13453,10 +13460,14 @@ iron-selector:not(.narrow-layout) #main ::content [paper-drawer-toggle] {
sharedPanel = null;
this._moveDrawer(null);
+ var dx = event.detail.dx;
+ var dy = event.detail.dy;
+ var absDy = Math.abs(dy);
+
if (this.rightDrawer) {
this[xDirection ? 'closeDrawer' : 'openDrawer']();
} else {
- this[xDirection || event.detail.dx > -80 ? 'openDrawer' : 'closeDrawer']();
+ this[xDirection || dx > -80 || absDy >= 70 ? 'openDrawer' : 'closeDrawer']();
}
}
},