-
-
-
+
+
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json
index d38e858a46..1c68493aff 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json
+++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json
@@ -16,12 +16,12 @@
},
"devDependencies": {},
"ignore": [],
- "version": "1.1.64",
- "_release": "1.1.64",
+ "version": "1.1.65",
+ "_release": "1.1.65",
"_resolution": {
"type": "version",
- "tag": "1.1.64",
- "commit": "09ad84b364cc201acfa1c7700142e2043bf23db9"
+ "tag": "1.1.65",
+ "commit": "0d838fa5972c686099cf85e830e9c7470972fb2f"
},
"_source": "git://github.com/MediaBrowser/emby-webcomponents.git",
"_target": "~1.1.5",
diff --git a/dashboard-ui/bower_components/emby-webcomponents/router.js b/dashboard-ui/bower_components/emby-webcomponents/router.js
index edfec6d717..5d538bd7b0 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/router.js
+++ b/dashboard-ui/bower_components/emby-webcomponents/router.js
@@ -77,6 +77,7 @@ define(['loading', 'viewManager', 'skinManager', 'pluginManager', 'backdrop', 'b
}
}
+ var htmlCache = {};
var cacheParam = new Date().getTime();
function loadContentUrl(ctx, next, route, request) {
@@ -93,13 +94,29 @@ define(['loading', 'viewManager', 'skinManager', 'pluginManager', 'backdrop', 'b
url = baseUrl() + url;
}
+ if (ctx.querystring && route.enableContentQueryString) {
+ url += '?' + ctx.querystring;
+ }
+
+ if (route.enableCache !== false) {
+ var cachedHtml = htmlCache[url];
+ if (cachedHtml) {
+ loadContent(ctx, route, cachedHtml, request);
+ return;
+ }
+ }
+
url += url.indexOf('?') == -1 ? '?' : '&';
url += 'v=' + cacheParam;
var xhr = new XMLHttpRequest();
xhr.onload = xhr.onerror = function () {
if (this.status < 400) {
- loadContent(ctx, route, this.response, request);
+ var html = this.response;
+ if (route.enableCache !== false) {
+ htmlCache[url.split('?')[0]] = html;
+ }
+ loadContent(ctx, route, html, request);
} else {
next();
}
diff --git a/dashboard-ui/bower_components/emby-webcomponents/viewmanager.js b/dashboard-ui/bower_components/emby-webcomponents/viewmanager.js
index ada7b1b571..87011d528c 100644
--- a/dashboard-ui/bower_components/emby-webcomponents/viewmanager.js
+++ b/dashboard-ui/bower_components/emby-webcomponents/viewmanager.js
@@ -19,7 +19,9 @@ define(['viewcontainer', 'focusManager', 'queryString', 'connectionManager', 'ev
// Use controller method
var controller = new options.controllerFactory(newView, eventDetail.detail.params);
- } else if (dispatchPageEvents) {
+ }
+
+ if (!options.controllerFactory || dispatchPageEvents) {
dispatchViewEvent(newView, 'viewinit');
}
}
diff --git a/dashboard-ui/bower_components/iron-icon/.bower.json b/dashboard-ui/bower_components/iron-icon/.bower.json
index f0167baf13..9784e3a3b7 100644
--- a/dashboard-ui/bower_components/iron-icon/.bower.json
+++ b/dashboard-ui/bower_components/iron-icon/.bower.json
@@ -32,14 +32,14 @@
"web-component-tester": "^4.0.0",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
},
- "homepage": "https://github.com/polymerelements/iron-icon",
+ "homepage": "https://github.com/PolymerElements/iron-icon",
"_release": "1.0.8",
"_resolution": {
"type": "version",
"tag": "v1.0.8",
"commit": "f36b38928849ef3853db727faa8c9ef104d611eb"
},
- "_source": "git://github.com/polymerelements/iron-icon.git",
+ "_source": "git://github.com/PolymerElements/iron-icon.git",
"_target": "^1.0.0",
- "_originalSource": "polymerelements/iron-icon"
+ "_originalSource": "PolymerElements/iron-icon"
}
\ No newline at end of file
diff --git a/dashboard-ui/bower_components/iron-selector/.bower.json b/dashboard-ui/bower_components/iron-selector/.bower.json
index 66d7d54b0f..c6b481c2cb 100644
--- a/dashboard-ui/bower_components/iron-selector/.bower.json
+++ b/dashboard-ui/bower_components/iron-selector/.bower.json
@@ -36,7 +36,7 @@
"tag": "v1.3.0",
"commit": "1662093611cda3fd29125cdab94a61d3d88093da"
},
- "_source": "git://github.com/PolymerElements/iron-selector.git",
+ "_source": "git://github.com/polymerelements/iron-selector.git",
"_target": "^1.0.0",
- "_originalSource": "PolymerElements/iron-selector"
+ "_originalSource": "polymerelements/iron-selector"
}
\ No newline at end of file
diff --git a/dashboard-ui/channelitems.html b/dashboard-ui/channelitems.html
index caabf3a975..83c12d7967 100644
--- a/dashboard-ui/channelitems.html
+++ b/dashboard-ui/channelitems.html
@@ -1,19 +1,11 @@
-
-
-
-
Emby
-
-
-
+
-
-
\ No newline at end of file
diff --git a/dashboard-ui/channels.html b/dashboard-ui/channels.html
index 98831c3a3a..cedf619082 100644
--- a/dashboard-ui/channels.html
+++ b/dashboard-ui/channels.html
@@ -1,40 +1,32 @@
-
-
-
-
Emby
-
-
-
+
-
-
- ${TabLatest}
- ${TabChannels}
-
-
-
-
-
-
+
+
+ ${TabLatest}
+ ${TabChannels}
+
+
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/dashboard-ui/channelsettings.html b/dashboard-ui/channelsettings.html
index ec5cceb706..c874e84399 100644
--- a/dashboard-ui/channelsettings.html
+++ b/dashboard-ui/channelsettings.html
@@ -1,45 +1,37 @@
-
-
-
-
${TitlePlugins}
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/dashboard-ui/cinemamodeconfiguration.html b/dashboard-ui/cinemamodeconfiguration.html
index e88fe7c513..a1d212e563 100644
--- a/dashboard-ui/cinemamodeconfiguration.html
+++ b/dashboard-ui/cinemamodeconfiguration.html
@@ -1,92 +1,84 @@
-
-
-
-
${TitlePlayback}
-
-
-
+
-
-
+
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/dashboard-ui/collections.html b/dashboard-ui/collections.html
index ce215efa33..e4d899dce5 100644
--- a/dashboard-ui/collections.html
+++ b/dashboard-ui/collections.html
@@ -1,25 +1,17 @@
-
-
-
-
Emby
-
-
-
+
-
-
+
+
-
-
-
+
+
-
-
-
${MessageNoCollectionsAvailable}
-
-
-
+
+
+
${MessageNoCollectionsAvailable}
+
+
+
-
-
+
\ No newline at end of file
diff --git a/dashboard-ui/components/viewcontainer-lite.js b/dashboard-ui/components/viewcontainer-lite.js
index bb6350c90b..7e4506f40d 100644
--- a/dashboard-ui/components/viewcontainer-lite.js
+++ b/dashboard-ui/components/viewcontainer-lite.js
@@ -20,7 +20,8 @@ define([], function () {
pageIndex = 0;
}
- var newView = normalizeNewView(options);
+ var newViewInfo = normalizeNewView(options);
+ var newView = newViewInfo.elem;
var dependencies = typeof (newView) == 'string' ? null : newView.getAttribute('data-require');
dependencies = dependencies ? dependencies.split(',') : [];
@@ -62,7 +63,12 @@ define([], function () {
animatable.innerHTML = newView;
} else {
animatable.innerHTML = '';
- animatable.appendChild(newView);
+ if (newViewInfo.hasScript) {
+ // TODO: figure this out without jQuery
+ $(newView).appendTo(animatable);
+ } else {
+ animatable.appendChild(newView);
+ }
enhanceNewView(dependencies, newView);
}
@@ -96,6 +102,13 @@ define([], function () {
}
}
+ function parseHtml(html) {
+
+ var wrapper = document.createElement('div');
+ wrapper.innerHTML = html;
+ return wrapper.querySelector('div[data-role="page"]');
+ }
+
function normalizeNewView(options) {
if (options.view.indexOf('data-role="page"') == -1) {
@@ -105,15 +118,14 @@ define([], function () {
return html;
}
- // TODO: This won't be able to support executing embedded script tags
- var wrapper = document.createElement('div');
- wrapper.innerHTML = options.view;
-
- var elem = wrapper.querySelector('div[data-role="page"]');
+ var elem = parseHtml(options.view);
elem.classList.add('page-view');
elem.setAttribute('data-type', options.type || '');
elem.setAttribute('data-url', options.url);
- return elem;
+ return {
+ elem: elem,
+ hasScript: options.view.indexOf('