diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index af46dbcffb..6d93781c4b 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json +++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json @@ -15,12 +15,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.0.97", - "_release": "1.0.97", + "version": "1.0.99", + "_release": "1.0.99", "_resolution": { "type": "version", - "tag": "1.0.97", - "commit": "40f6e65dd5743493289d2abc451536c191ab4dd0" + "tag": "1.0.99", + "commit": "21544fe9ee7a66c5ae65f7defa5247ff2688967d" }, "_source": "git://github.com/MediaBrowser/emby-webcomponents.git", "_target": "~1.0.0", diff --git a/dashboard-ui/bower_components/emby-webcomponents/alert/alert.js b/dashboard-ui/bower_components/emby-webcomponents/alert/alert.js new file mode 100644 index 0000000000..7030f5b0e9 --- /dev/null +++ b/dashboard-ui/bower_components/emby-webcomponents/alert/alert.js @@ -0,0 +1,81 @@ +define(['paperdialoghelper', 'layoutManager', 'dialogText', 'html!./../prompt/icons.html', 'css!./../prompt/style.css', 'paper-button', 'paper-input'], function (paperdialoghelper, layoutManager, dialogText) { + + return function (options) { + + if (typeof options === 'string') { + options = { + title: '', + text: options + }; + } + + var dialogOptions = { + removeOnClose: true + }; + + var backButton = false; + var raisedButtons = false; + + if (layoutManager.tv) { + dialogOptions.size = 'fullscreen'; + backButton = true; + raisedButtons = true; + } else { + + dialogOptions.modal = false; + dialogOptions.entryAnimationDuration = 160; + dialogOptions.exitAnimationDuration = 200; + } + + var dlg = paperdialoghelper.createDialog(dialogOptions); + + dlg.classList.add('promptDialog'); + + var html = ''; + + html += '
'; + if (backButton) { + html += ''; + } + + if (options.title) { + html += '

'; + html += options.title; + html += '

'; + } + + if (options.text) { + + if (options.title) { + html += '

'; + } else { + html += '

'; + } + + html += options.text; + html += '

'; + } + + var buttonText = options.type == 'error' ? 'Ok' : 'GotIt'; + if (raisedButtons) { + html += '' + dialogText.get(buttonText) + ''; + } else { + html += '
'; + html += '' + dialogText.get(buttonText) + ''; + html += '
'; + } + + html += '
'; + + dlg.innerHTML = html; + + document.body.appendChild(dlg); + + dlg.querySelector('.btnSubmit').addEventListener('click', function (e) { + + paperdialoghelper.close(dlg); + }); + + return paperdialoghelper.open(dlg); + }; +}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/alert/nativealert.js b/dashboard-ui/bower_components/emby-webcomponents/alert/nativealert.js new file mode 100644 index 0000000000..271638f029 --- /dev/null +++ b/dashboard-ui/bower_components/emby-webcomponents/alert/nativealert.js @@ -0,0 +1,22 @@ +define([], function () { + + function replaceAll(str, find, replace) { + + return str.split(find).join(replace); + } + + return function (options) { + + if (typeof options === 'string') { + options = { + text: options + }; + } + + var text = replaceAll(options.text || '', '
', '\n'); + + alert(text); + + return Promise.resolve(); + }; +}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/iron-behaviors/.bower.json b/dashboard-ui/bower_components/iron-behaviors/.bower.json index 85e8252b32..0b0736d6a6 100644 --- a/dashboard-ui/bower_components/iron-behaviors/.bower.json +++ b/dashboard-ui/bower_components/iron-behaviors/.bower.json @@ -29,14 +29,14 @@ "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "ignore": [], - "homepage": "https://github.com/PolymerElements/iron-behaviors", + "homepage": "https://github.com/polymerelements/iron-behaviors", "_release": "1.0.13", "_resolution": { "type": "version", "tag": "v1.0.13", "commit": "a7bc3428a6da2beed21987b3a8028206826a12bc" }, - "_source": "git://github.com/PolymerElements/iron-behaviors.git", + "_source": "git://github.com/polymerelements/iron-behaviors.git", "_target": "^1.0.0", - "_originalSource": "PolymerElements/iron-behaviors" + "_originalSource": "polymerelements/iron-behaviors" } \ No newline at end of file diff --git a/dashboard-ui/scripts/encodingsettings.js b/dashboard-ui/scripts/encodingsettings.js index 0ccd8e9745..a7ef820261 100644 --- a/dashboard-ui/scripts/encodingsettings.js +++ b/dashboard-ui/scripts/encodingsettings.js @@ -34,10 +34,11 @@ if ($('#selectVideoDecoder', form).val()) { - Dashboard.alert({ - callback: onDecoderConfirmed, - title: Globalize.translate('TitleHardwareAcceleration'), - message: Globalize.translate('HardwareAccelerationWarning') + require(['alert'], function (alert) { + alert({ + title: Globalize.translate('TitleHardwareAcceleration'), + text: Globalize.translate('HardwareAccelerationWarning') + }).then(onDecoderConfirmed); }); } else { diff --git a/dashboard-ui/scripts/mediacontroller.js b/dashboard-ui/scripts/mediacontroller.js index 2010c8dc31..e51e02611b 100644 --- a/dashboard-ui/scripts/mediacontroller.js +++ b/dashboard-ui/scripts/mediacontroller.js @@ -802,15 +802,13 @@ self.showPlaybackInfoErrorMessage = function (errorCode) { - // This timeout is messy, but if jqm is in the act of hiding a popup, it will not show a new one - // If we're coming from the popup play menu, this will be a problem - - setTimeout(function () { - Dashboard.alert({ - message: Globalize.translate('MessagePlaybackError' + errorCode), - title: Globalize.translate('HeaderPlaybackError') + require(['alert'], function (alert) { + alert({ + title: Globalize.translate('HeaderPlaybackError'), + text: Globalize.translate('MessagePlaybackError' + errorCode), + type: 'error' }); - }, 300); + }); }; diff --git a/dashboard-ui/scripts/medialibrarypage.js b/dashboard-ui/scripts/medialibrarypage.js index 0bc0b3f419..eeee7ea3ba 100644 --- a/dashboard-ui/scripts/medialibrarypage.js +++ b/dashboard-ui/scripts/medialibrarypage.js @@ -2,9 +2,11 @@ function changeCollectionType(page, virtualFolder) { - Dashboard.alert({ - message: Globalize.translate('HeaderChangeFolderTypeHelp'), - title: Globalize.translate('HeaderChangeFolderType') + require(['alert'], function (alert) { + alert({ + title: Globalize.translate('HeaderChangeFolderType'), + text: Globalize.translate('HeaderChangeFolderTypeHelp') + }); }); } diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index 199eb7a70a..25f76f0229 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -540,59 +540,12 @@ var Dashboard = { return; } - if (browserInfo.mobile && options.message.indexOf('<') == -1) { - - alert(options.message); - - if (options.callback) { - options.callback(); - } - - } else { - require(['paper-dialog', 'fade-in-animation', 'fade-out-animation'], function () { - Dashboard.confirmInternal(options.message, options.title || Globalize.translate('HeaderAlert'), false, options.callback); - }); - } - }, - - confirmInternal: function (message, title, showCancel, callback) { - - var dlg = document.createElement('paper-dialog'); - - dlg.setAttribute('with-backdrop', 'with-backdrop'); - dlg.setAttribute('role', 'alertdialog'); - dlg.entryAnimation = 'fade-in-animation'; - dlg.exitAnimation = 'fade-out-animation'; - dlg.setAttribute('with-backdrop', 'with-backdrop'); - - var html = ''; - html += '

' + title + '

'; - html += '
' + message + '
'; - html += '
'; - - html += '' + Globalize.translate('ButtonOk') + ''; - - if (showCancel) { - html += '' + Globalize.translate('ButtonCancel') + ''; - } - - html += '
'; - - dlg.innerHTML = html; - document.body.appendChild(dlg); - - // Has to be assigned a z-index after the call to .open() - dlg.addEventListener('iron-overlay-closed', function (e) { - - var confirmed = dlg.closingReason.confirmed; - dlg.parentNode.removeChild(dlg); - - if (callback) { - callback(confirmed); - } + require(['alert'], function (alert) { + alert({ + title: options.title || Globalize.translate('HeaderAlert'), + text: options.message + }).then(options.callback || function () { }); }); - - dlg.open(); }, refreshSystemInfoFromServer: function () { @@ -1997,9 +1950,11 @@ var AppInfo = {}; if (browser.mobile || browser.msie) { define("prompt", [embyWebComponentsBowerPath + "/prompt/nativeprompt"], returnFirstDependency); define("confirm", [embyWebComponentsBowerPath + "/confirm/nativeconfirm"], returnFirstDependency); + define("alert", [embyWebComponentsBowerPath + "/alert/nativealert"], returnFirstDependency); } else { define("prompt", [embyWebComponentsBowerPath + "/prompt/prompt"], returnFirstDependency); define("confirm", [embyWebComponentsBowerPath + "/confirm/confirm"], returnFirstDependency); + define("alert", [embyWebComponentsBowerPath + "/alert/alert"], returnFirstDependency); } } diff --git a/dashboard-ui/scripts/userprofilespage.js b/dashboard-ui/scripts/userprofilespage.js index 7869a86484..9db2902f30 100644 --- a/dashboard-ui/scripts/userprofilespage.js +++ b/dashboard-ui/scripts/userprofilespage.js @@ -340,9 +340,11 @@ msg += '' + Globalize.translate('ButtonLinkMyEmbyAccount') + ''; msg += '
'; - Dashboard.alert({ - message: msg, - title: Globalize.translate('HeaderInviteGuest') + require(['alert'], function (alert) { + alert({ + title: Globalize.translate('HeaderInviteGuest'), + text: msg + }); }); return; } diff --git a/dashboard-ui/strings/javascript/en-US.json b/dashboard-ui/strings/javascript/en-US.json index e872bb4cae..6a7a4e0af4 100644 --- a/dashboard-ui/strings/javascript/en-US.json +++ b/dashboard-ui/strings/javascript/en-US.json @@ -959,5 +959,7 @@ "HeaderSelectCodecIntrosPath": "Select Codec Intros Path", "ButtonLocalRefresh": "Local refresh", "ButtonAddMissingData": "Add missing data only", - "ButtonFullRefresh": "Full refresh" + "ButtonFullRefresh": "Full refresh", + "ValueExample": "1:00 PM", + "ButtonGotIt": "Got It" } \ No newline at end of file diff --git a/dashboard-ui/strings/javascript/javascript.json b/dashboard-ui/strings/javascript/javascript.json index ba40a3188c..583c2fdc66 100644 --- a/dashboard-ui/strings/javascript/javascript.json +++ b/dashboard-ui/strings/javascript/javascript.json @@ -970,5 +970,6 @@ "ButtonLocalRefresh": "Local refresh", "ButtonAddMissingData": "Add missing data only", "ButtonFullRefresh": "Full refresh", - "ValueExample": "1:00 PM" + "ValueExample": "1:00 PM", + "ButtonGotIt": "Got It" }