diff --git a/dashboard-ui/components/directorybrowser/directorybrowser.js b/dashboard-ui/components/directorybrowser/directorybrowser.js
index 742a13c728..7a445d386c 100644
--- a/dashboard-ui/components/directorybrowser/directorybrowser.js
+++ b/dashboard-ui/components/directorybrowser/directorybrowser.js
@@ -64,12 +64,7 @@
if (path) {
- html += '';
- html += '';
- html += '...';
- html += '';
- html += '';
- html += '';
+ html += getItem("lnkPath lnkDirectory", parentPath, "Network", '...');
}
for (var i = 0, length = folders.length; i < length; i++) {
@@ -78,21 +73,11 @@
var cssClass = folder.Type == "File" ? "lnkPath lnkFile" : "lnkPath lnkDirectory";
- html += '';
- html += '';
- html += folder.Name;
- html += '';
- html += '';
- html += '';
+ html += getItem(cssClass, folder.Type, folder.Path, folder.Name);
}
if (!path) {
- html += '';
- html += '';
- html += Globalize.translate('ButtonNetwork');
- html += '';
- html += '';
- html += '';
+ html += getItem("lnkPath lnkDirectory", "", "Network", Globalize.translate('ButtonNetwork'));
}
$('.results', page).html(html);
@@ -108,6 +93,19 @@
});
}
+ function getItem(cssClass, type, path, name) {
+
+ var html = '';
+ html += '';
+ html += '';
+ html += name;
+ html += '';
+ html += '';
+ html += '';
+
+ return html;
+ }
+
function getEditorHtml(options, systemInfo) {
var html = '';
diff --git a/dashboard-ui/components/medialibraryeditor/medialibraryeditor.js b/dashboard-ui/components/medialibraryeditor/medialibraryeditor.js
index b769bada8f..619d228799 100644
--- a/dashboard-ui/components/medialibraryeditor/medialibraryeditor.js
+++ b/dashboard-ui/components/medialibraryeditor/medialibraryeditor.js
@@ -55,10 +55,7 @@
html += '';
- if (!$.browser.msie) {
- // Not sure why, but this is causing the entire browser to hang
- html += '';
- }
+ html += '';
html += '';
html += path;
diff --git a/dashboard-ui/components/paperdialoghelper.js b/dashboard-ui/components/paperdialoghelper.js
index e3eefa4cc8..ddc63cbfdb 100644
--- a/dashboard-ui/components/paperdialoghelper.js
+++ b/dashboard-ui/components/paperdialoghelper.js
@@ -87,9 +87,12 @@
// without this safari will scroll the background instead of the dialog contents
// but not needed here since this is already on top of an existing dialog
- dlg.setAttribute('modal', 'modal');
+ // but skip it in IE because it's causing the entire browser to hang
+ if (!$.browser.msie) {
+ dlg.setAttribute('modal', 'modal');
+ }
- // seeing max call stack size exceeded in the debugger with this
+ //// seeing max call stack size exceeded in the debugger with this
dlg.setAttribute('noAutoFocus', 'noAutoFocus');
dlg.entryAnimation = 'scale-up-animation';
dlg.exitAnimation = 'fade-out-animation';
diff --git a/dashboard-ui/components/tvproviders/schedulesdirect.js b/dashboard-ui/components/tvproviders/schedulesdirect.js
index f647f0214a..1edecc3987 100644
--- a/dashboard-ui/components/tvproviders/schedulesdirect.js
+++ b/dashboard-ui/components/tvproviders/schedulesdirect.js
@@ -166,7 +166,7 @@
}).fail(function () {
Dashboard.hideLoadingMsg();
Dashboard.alert({
- message: Globalize.translate('ErrorSavingTvProvider')
+ message: Globalize.translate('ErrorAddingListingsToSchedulesDirect')
});
});
diff --git a/dashboard-ui/devices/ie/ie.css b/dashboard-ui/devices/ie/ie.css
index 7bad58f9ef..7fb2dd0e90 100644
--- a/dashboard-ui/devices/ie/ie.css
+++ b/dashboard-ui/devices/ie/ie.css
@@ -3,5 +3,5 @@
}
paper-fab.keyboard-focus.paper-fab-0 {
- /*background: #444;*/
+ background: #444;
}
diff --git a/dashboard-ui/scripts/mediaplayer.js b/dashboard-ui/scripts/mediaplayer.js
index 298f1cd594..5fb45da29e 100644
--- a/dashboard-ui/scripts/mediaplayer.js
+++ b/dashboard-ui/scripts/mediaplayer.js
@@ -125,7 +125,10 @@
var isVlc = AppInfo.isNativeApp && $.browser.android;
var bitrateSetting = AppSettings.maxStreamingBitrate();
- var canPlayWebm = self.canPlayWebm();
+ var supportedFormats = getSupportedFormats();
+
+ var canPlayWebm = supportedFormats.indexOf('webm') != -1;
+ var canPlayAc3 = supportedFormats.indexOf('ac3') != -1;
var profile = {};
@@ -135,28 +138,21 @@
profile.DirectPlayProfiles = [];
- if (canPlayH264()) {
+ if (supportedFormats.indexOf('h264') != -1) {
profile.DirectPlayProfiles.push({
Container: 'mp4,m4v',
Type: 'Video',
VideoCodec: 'h264',
- AudioCodec: 'aac,mp3'
+ AudioCodec: 'aac,mp3' + (canPlayAc3 ? ',ac3' : '')
});
}
if ($.browser.chrome) {
profile.DirectPlayProfiles.push({
- Container: 'mkv',
+ Container: 'mkv,mov',
Type: 'Video',
VideoCodec: 'h264',
- AudioCodec: 'aac,mp3'
- });
-
- profile.DirectPlayProfiles.push({
- Container: 'mov',
- Type: 'Video',
- VideoCodec: 'h264',
- AudioCodec: 'aac,mp3'
+ AudioCodec: 'aac,mp3' + (canPlayAc3 ? ',ac3' : '')
});
}
@@ -207,7 +203,7 @@
profile.TranscodingProfiles.push({
Container: 'ts',
Type: 'Video',
- AudioCodec: 'aac',
+ AudioCodec: 'aac' + (canPlayAc3 ? ',ac3' : ''),
VideoCodec: 'h264',
Context: 'Streaming',
Protocol: 'hls'
@@ -1827,7 +1823,6 @@
function canPlayH264() {
var userAgent = navigator.userAgent.toLowerCase();
-
if (userAgent.indexOf('firefox') != -1) {
if (userAgent.indexOf('windows') != -1) {
return true;
@@ -1838,14 +1833,35 @@
return true;
}
- self._canPlayWebm = null;
- self.canPlayWebm = function () {
+ var supportedFormats;
+ function getSupportedFormats() {
- if (self._canPlayWebm == null) {
- self._canPlayWebm = document.createElement('video').canPlayType('video/webm').replace(/no/, '');
+ if (supportedFormats) {
+ return supportedFormats;
}
- return self._canPlayWebm;
- };
+
+ var list = [];
+ var elem = document.createElement('video');
+
+ if (elem.canPlayType('video/webm').replace(/no/, '')) {
+ list.push('webm');
+ }
+ if (elem.canPlayType('audio/mp4; codecs="ac-3"').replace(/no/, '')) {
+ list.push('ac3');
+ }
+
+ var canPlayH264 = true;
+ var userAgent = navigator.userAgent.toLowerCase();
+ if (userAgent.indexOf('firefox') != -1 && userAgent.indexOf('windows') == -1) {
+ canPlayH264 = false;
+ }
+
+ if (canPlayH264) {
+ list.push('h264');
+ }
+ supportedFormats = list;
+ return list;
+ }
self.canAutoPlayAudio = function () {
diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js
index 13ce034675..ebb24dede8 100644
--- a/dashboard-ui/scripts/site.js
+++ b/dashboard-ui/scripts/site.js
@@ -1622,6 +1622,8 @@ var Dashboard = {
name = "Opera";
} else if ($.browser.mozilla) {
name = "Firefox";
+ } else if ($.browser.edge) {
+ name = "Edge";
}
if ($.browser.version) {
diff --git a/dashboard-ui/strings/javascript/javascript.json b/dashboard-ui/strings/javascript/javascript.json
index cc6f6f1d20..35112e3f6a 100644
--- a/dashboard-ui/strings/javascript/javascript.json
+++ b/dashboard-ui/strings/javascript/javascript.json
@@ -921,5 +921,6 @@
"HeaderTryDragAndDrop": "Try Drag and Drop",
"TryDragAndDropMessage": "To re-arrange playlist items, just drag and drop. Try it!",
"HeaderTryMicrosoftEdge": "Try Microsoft Edge",
- "MessageTryMicrosoftEdge": "For a better experience on Windows 10, try the new Microsoft Edge Browser."
+ "MessageTryMicrosoftEdge": "For a better experience on Windows 10, try the new Microsoft Edge Browser.",
+ "ErrorAddingListingsToSchedulesDirect": "There was an error adding the lineup to your Schedules Direct account. Schedules Direct only allows a limited number of lineups per account. You may need to log into the Schedules Direct website and remove others listings from your account before proceeeding."
}
diff --git a/dashboard-ui/thirdparty/browser.js b/dashboard-ui/thirdparty/browser.js
index cda788ce6c..682fb7cd57 100644
--- a/dashboard-ui/thirdparty/browser.js
+++ b/dashboard-ui/thirdparty/browser.js
@@ -902,7 +902,8 @@
jQuery.uaMatch = function (ua) {
ua = ua.toLowerCase();
- var match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
+ var match = /(edge)[ \/]([\w.]+)/.exec(ua) ||
+ /(chrome)[ \/]([\w.]+)/.exec(ua) ||
/(safari)[ \/]([\w.]+)/.exec(ua) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
/(msie) ([\w.]+)/.exec(ua) ||
@@ -945,7 +946,7 @@
browser[matched.platform] = true;
}
- if (userAgent.toLowerCase().indexOf("webkit") != -1 && !browser.chrome && !browser.msie) {
+ if (userAgent.toLowerCase().indexOf("webkit") != -1 && !browser.chrome && !browser.msie && !browser.edge) {
browser.safari = true;
}