diff --git a/dashboard-ui/components/servertestermessage.js b/dashboard-ui/components/servertestermessage.js
new file mode 100644
index 0000000000..8bd4eb489c
--- /dev/null
+++ b/dashboard-ui/components/servertestermessage.js
@@ -0,0 +1,157 @@
+define(['appSettings'], function (appSettings) {
+
+ function getReleases() {
+
+ return fetch('https://api.github.com/repos/MediaBrowser/Emby/releases', {
+ method: 'GET'
+
+ }).then(function (response) {
+
+ return response.json();
+
+ }, function () {
+
+ return [];
+
+ }).then(function (releases) {
+
+ var result = {};
+ for (var i = 0, length = releases.length; i < length; i++) {
+
+ var release = releases[i];
+ if (release.prerelease) {
+ if (!result.beta && release.target_commitish == 'beta') {
+ result.beta = release;
+ }
+ if (!result.dev && release.target_commitish == 'dev') {
+ result.dev = release;
+ }
+ }
+
+ if (result.beta && result.dev) {
+ break;
+ }
+ }
+
+ return result;
+
+ });
+ }
+
+ function replaceAll(str, find, replace) {
+
+ return str.split(find).join(replace);
+ }
+
+ function showInternal() {
+
+ getReleases().then(function (releases) {
+
+ require(['dialogHelper'], function (dialogHelper) {
+ var dlg = dialogHelper.createDialog({
+ size: 'small',
+ removeOnClose: true,
+ autoFocus: false
+ });
+
+ dlg.classList.add('ui-body-b');
+ dlg.classList.add('background-theme-b');
+
+ var html = '';
+
+ html += '
';
+
+ html += 'Welcome Emby Tester!
';
+
+ html += 'If you\'re seeing this message, it\s because you\'re running a pre-release version of Emby Server. Thank you for being a part of the Emby pre-release testing process.
';
+
+ html += 'Please take a moment to leave your testing feedback about this version in the Emby Community.
';
+
+ html += 'Visit Emby Community';
+
+ if (releases.beta) {
+ html += 'Beta Release Notes
';
+
+ html += '';
+ html += replaceAll((releases.beta.body || ''), '*', '
');
+ html += '
';
+ }
+
+ if (releases.dev) {
+ html += 'Dev Release Notes
';
+
+ html += '';
+ html += replaceAll((releases.dev.body || ''), '*', '
');
+ html += '
';
+ }
+
+ dlg.innerHTML = html;
+ document.body.appendChild(dlg);
+
+ dialogHelper.open(dlg);
+
+ dlg.querySelector('.btnCancel', dlg).addEventListener('click', function () {
+
+ dialogHelper.close(dlg);
+ });
+ });
+ });
+ }
+
+ function compareVersions(a, b) {
+
+ // -1 a is smaller
+ // 1 a is larger
+ // 0 equal
+ a = a.split('.');
+ b = b.split('.');
+
+ for (var i = 0, length = Math.max(a.length, b.length) ; i < length; i++) {
+ var aVal = parseInt(a[i] || '0');
+ var bVal = parseInt(b[i] || '0');
+
+ if (aVal < bVal) {
+ return -1;
+ }
+
+ if (aVal > bVal) {
+ return 1;
+ }
+ }
+
+ return 0;
+ }
+
+ function show(apiClient) {
+
+ var key = 'servertestermessagetime';
+ var lastShown = parseInt(appSettings.get(key) || '0');
+
+ if ((new Date().getTime() - lastShown) < 172800000) {
+ return;
+ }
+
+ appSettings.set(key, new Date().getTime());
+
+ if (!lastShown) {
+ // don't show the first time
+ //return;
+ }
+
+ apiClient.getPublicSystemInfo().then(function (info) {
+
+ if (compareVersions(info.Version, '3.0.5912') == 1) {
+ showInternal();
+ }
+ });
+ }
+
+ return {
+ show: show
+ };
+});
\ No newline at end of file
diff --git a/dashboard-ui/scripts/librarymenu.js b/dashboard-ui/scripts/librarymenu.js
index af9c9cb2d0..920e270316 100644
--- a/dashboard-ui/scripts/librarymenu.js
+++ b/dashboard-ui/scripts/librarymenu.js
@@ -1091,10 +1091,17 @@
Events.on(ConnectionManager, 'localusersignedin', function (e, user) {
requiresDrawerRefresh = true;
setDrawerClass();
+ var apiClient = ConnectionManager.getApiClient(user.ServerId);
ConnectionManager.user(ConnectionManager.getApiClient(user.ServerId)).then(function (user) {
refreshLibraryDrawer(user);
updateUserInHeader(user);
});
+
+ if (!AppInfo.isNativeApp) {
+ require(['components/servertestermessage'], function (message) {
+ message.show(apiClient);
+ });
+ }
});
Events.on(ConnectionManager, 'localusersignedout', function () {