diff --git a/dashboard-ui/scripts/htmlmediarenderer.js b/dashboard-ui/scripts/htmlmediarenderer.js
index 5038cc6466..7f5d619a4b 100644
--- a/dashboard-ui/scripts/htmlmediarenderer.js
+++ b/dashboard-ui/scripts/htmlmediarenderer.js
@@ -11,7 +11,7 @@
function hideStatusBar() {
if (options.type == 'video' && window.StatusBar) {
- StatusBar.backgroundColorByName("black");
+ //StatusBar.backgroundColorByName("black");
//StatusBar.overlaysWebView(true);
StatusBar.hide();
}
diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js
index 3ffbaccf3e..f61089e967 100644
--- a/dashboard-ui/scripts/librarybrowser.js
+++ b/dashboard-ui/scripts/librarybrowser.js
@@ -143,15 +143,7 @@
return false;
},
- configureSwipeTabs: function (ownerpage, tabs, pages) {
-
- if (LibraryBrowser.animatePaperTabs()) {
- // Safari doesn't handle the horizontal swiping very well
- pages.entryAnimation = 'slide-from-right-animation';
- pages.exitAnimation = 'slide-left-animation';
- }
-
- var pageCount = pages.querySelectorAll('neon-animatable').length;
+ allowSwipe: function (target) {
function allowSwipeOn(elem) {
@@ -166,28 +158,34 @@
return true;
}
- function allowSwipe(e) {
-
- var target = e.target;
-
- var parent = target.parentNode;
- while (parent != null) {
- if (!allowSwipeOn(parent)) {
- return false;
- }
- parent = parent.parentNode;
+ var parent = target;
+ while (parent != null) {
+ if (!allowSwipeOn(parent)) {
+ return false;
}
-
- return true;
+ parent = parent.parentNode;
}
+ return true;
+ },
+
+ configureSwipeTabs: function (ownerpage, tabs, pages) {
+
+ if (LibraryBrowser.animatePaperTabs()) {
+ // Safari doesn't handle the horizontal swiping very well
+ pages.entryAnimation = 'slide-from-right-animation';
+ pages.exitAnimation = 'slide-left-animation';
+ }
+
+ var pageCount = pages.querySelectorAll('neon-animatable').length;
+
require(['hammer'], function (Hammer) {
var hammertime = new Hammer(pages);
hammertime.get('swipe').set({ direction: Hammer.DIRECTION_HORIZONTAL });
hammertime.on('swipeleft', function (e) {
- if (allowSwipe(e)) {
+ if (LibraryBrowser.allowSwipe(e.target)) {
var selected = parseInt(pages.selected || '0');
if (selected < (pageCount - 1)) {
if (LibraryBrowser.animatePaperTabs()) {
@@ -200,7 +198,7 @@
});
hammertime.on('swiperight', function (e) {
- if (allowSwipe(e)) {
+ if (LibraryBrowser.allowSwipe(e.target)) {
var selected = parseInt(pages.selected || '0');
if (selected > 0) {
if (LibraryBrowser.animatePaperTabs()) {
diff --git a/dashboard-ui/scripts/librarylist.js b/dashboard-ui/scripts/librarylist.js
index 5f6b2c258e..fbbe49a078 100644
--- a/dashboard-ui/scripts/librarylist.js
+++ b/dashboard-ui/scripts/librarylist.js
@@ -955,8 +955,10 @@
this.on('click', onListViewPlayButtonClick);
if (AppInfo.isTouchPreferred) {
- this.off('contextmenu', disableEvent);
- this.on('contextmenu', disableEvent);
+ //this.off('contextmenu', disableEvent);
+ //this.on('contextmenu', disableEvent);
+ this.off('contextmenu', onContextMenu);
+ this.on('contextmenu', onContextMenu);
}
else {
this.off('contextmenu', onContextMenu);
@@ -973,7 +975,7 @@
}
for (var i = 0, length = this.length; i < length; i++) {
- initTapHold(this[i]);
+ //initTapHold(this[i]);
}
return this;
@@ -990,6 +992,10 @@
function initTapHold(element) {
+ if (!LibraryBrowser.allowSwipe(element)) {
+ return;
+ }
+
require(['hammer'], function (Hammer) {
var hammertime = new Hammer(element);
diff --git a/dashboard-ui/scripts/mediacontroller.js b/dashboard-ui/scripts/mediacontroller.js
index 71b43cbbc1..7dfaf4cf97 100644
--- a/dashboard-ui/scripts/mediacontroller.js
+++ b/dashboard-ui/scripts/mediacontroller.js
@@ -249,10 +249,15 @@
}
Events.on(player, 'playbackstop', onPlaybackStop);
+ Events.on(player, 'playbackstart', onPlaybackStart);
};
+ function onPlaybackStart(e, state) {
+ $(self).trigger('playbackstart', [state, this]);
+ }
+
function onPlaybackStop(e, state) {
- $(self).trigger('playbackstop', [state]);
+ $(self).trigger('playbackstop', [state, this]);
}
self.getPlayerInfo = function () {
diff --git a/dashboard-ui/scripts/mysync.js b/dashboard-ui/scripts/mysync.js
index 572fbb3e98..2e530fc5e2 100644
--- a/dashboard-ui/scripts/mysync.js
+++ b/dashboard-ui/scripts/mysync.js
@@ -13,7 +13,12 @@
page.querySelector('.labelSyncStatus').innerHTML = Globalize.translate('LabelLocalSyncStatusValue', status);
page.querySelector('.syncSpinner').active = status == "Active";
- page.querySelector('.btnSyncNow').disabled = status == "Active";
+ if (status == "Active") {
+ page.querySelector('.btnSyncNow').classList.add('hide');
+ }
+ else {
+ page.querySelector('.btnSyncNow').classList.remove('hide');
+ }
} else {
page.querySelector('.localSyncStatus').classList.add('hide');
diff --git a/dashboard-ui/scripts/searchpage.js b/dashboard-ui/scripts/searchpage.js
new file mode 100644
index 0000000000..42c4b3a4fe
--- /dev/null
+++ b/dashboard-ui/scripts/searchpage.js
@@ -0,0 +1,41 @@
+(function () {
+
+ function loadSuggestions(page) {
+
+ var options = {
+
+ SortBy: "IsFavoriteOrLike,Random",
+ IncludeItemTypes: "Movie,Series,MusicArtist",
+ Limit: 20,
+ Recursive: true,
+ ImageTypeLimit: 0,
+ EnableImages: false
+ };
+
+ ApiClient.getItems(Dashboard.getCurrentUserId(), options).done(function (result) {
+
+ var html = result.Items.map(function (i) {
+
+ var href = LibraryBrowser.getHref(i);
+
+ var itemHtml = '
';
+ itemHtml += i.Name;
+ itemHtml += '';
+ return itemHtml;
+
+ }).join('');
+
+ page.querySelector('.searchSuggestions').innerHTML = html;
+ });
+ }
+
+ pageIdOn('pageshowready', "searchPage", function () {
+
+ var page = this;
+ loadSuggestions(page);
+
+ Search.showSearchPanel();
+ });
+
+
+})();
\ No newline at end of file
diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js
index 338bf282d2..1eb6b9701b 100644
--- a/dashboard-ui/scripts/site.js
+++ b/dashboard-ui/scripts/site.js
@@ -1762,6 +1762,7 @@ var AppInfo = {};
AppInfo.enableMovieTrailersTab = true;
}
+ AppInfo.enableAppLayouts = true;
if (isCordova) {
AppInfo.enableAppLayouts = true;
AppInfo.hasKnownExternalPlayerSupport = true;
diff --git a/dashboard-ui/search.html b/dashboard-ui/search.html
new file mode 100644
index 0000000000..151bad2193
--- /dev/null
+++ b/dashboard-ui/search.html
@@ -0,0 +1,20 @@
+
+
+
+
Emby
+
+
+
+
+
+
+
+
${TabSuggestions}
+
+
+
+
+
+
+
+
diff --git a/dashboard-ui/themes/ios.css b/dashboard-ui/themes/ios.css
index 982e94d2c4..5476741d58 100644
--- a/dashboard-ui/themes/ios.css
+++ b/dashboard-ui/themes/ios.css
@@ -61,6 +61,15 @@ body {
flex-grow: 0 !important;
}
+.ui-body-b .paperList {
+ background-color: transparent;
+ box-shadow: none;
+}
+
+.settingsMenuHeader {
+ display: none;
+}
+
@media all and (max-width: 600px) {
.libraryViewNav a {
diff --git a/dashboard-ui/thirdparty/paper-button-style.css b/dashboard-ui/thirdparty/paper-button-style.css
index 3e76ba1667..c0ec7b2764 100644
--- a/dashboard-ui/thirdparty/paper-button-style.css
+++ b/dashboard-ui/thirdparty/paper-button-style.css
@@ -321,6 +321,10 @@ paper-fab.square {
border-radius: 5px;
}
+paper-fab.accent {
+ background-color: #52B54B;
+}
+
paper-slider {
width: 100%;
}
diff --git a/dashboard-ui/vulcanize-out.html b/dashboard-ui/vulcanize-out.html
index 4463053fe0..57203acda3 100644
--- a/dashboard-ui/vulcanize-out.html
+++ b/dashboard-ui/vulcanize-out.html
@@ -1,12 +1,4 @@