1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

update action sheet

This commit is contained in:
Luke Pulverenti 2015-06-30 13:21:20 -04:00
parent a81a127cc6
commit d1842ae4e3
24 changed files with 246 additions and 98 deletions

View file

@ -1,12 +1,12 @@
(function (globalScope) { (function (globalScope) {
globalScope.AjaxApi = { globalScope.HttpClient = {
param: function (params) { param: function (params) {
return jQuery.param(params); return jQuery.param(params);
}, },
ajax: function (request) { send: function (request) {
request.timeout = request.timeout || 30000; request.timeout = request.timeout || 30000;

View file

@ -1,12 +1,12 @@
(function (globalScope, angular) { (function (globalScope, angular) {
globalScope.AjaxApi = { globalScope.HttpClient = {
param: function(params) { param: function(params) {
return serialize(params); return serialize(params);
}, },
ajax: function(options) { send: function(options) {
var request = getAngularRequest(options), var request = getAngularRequest(options),
defer = globalScope.DeferredBuilder.Deferred(); defer = globalScope.DeferredBuilder.Deferred();
@ -91,7 +91,7 @@
for (var key in jParams) { for (var key in jParams) {
if (!paramMap[key]) { if (!paramMap[key]) {
// This parameter hasn't been implemented in the paramMap object // This parameter hasn't been implemented in the paramMap object
Logger.log('ERROR: ajax option property "' + key + '" not implemented by AjaxApi.'); Logger.log('ERROR: ajax option property "' + key + '" not implemented by HttpClient.');
continue; continue;
} }

View file

@ -115,7 +115,7 @@
name = name.split('&').join('-'); name = name.split('&').join('-');
name = name.split('?').join('-'); name = name.split('?').join('-');
var val = AjaxApi.param({ name: name }); var val = HttpClient.param({ name: name });
return val.substring(val.indexOf('=') + 1).replace("'", '%27'); return val.substring(val.indexOf('=') + 1).replace("'", '%27');
}; };
@ -175,7 +175,7 @@
if (self.enableAutomaticNetworking === false || request.type != "GET") { if (self.enableAutomaticNetworking === false || request.type != "GET") {
logger.log('Requesting url without automatic networking: ' + request.url); logger.log('Requesting url without automatic networking: ' + request.url);
return AjaxApi.ajax(request).fail(onRequestFail); return HttpClient.send(request).fail(onRequestFail);
} }
var deferred = DeferredBuilder.Deferred(); var deferred = DeferredBuilder.Deferred();
@ -218,7 +218,7 @@
var timeout = connectionMode == MediaBrowser.ConnectionMode.Local ? 5000 : 15000; var timeout = connectionMode == MediaBrowser.ConnectionMode.Local ? 5000 : 15000;
AjaxApi.ajax({ HttpClient.send({
type: "GET", type: "GET",
url: url + "/system/info/public", url: url + "/system/info/public",
@ -282,7 +282,7 @@
request.timeout = 15000; request.timeout = 15000;
AjaxApi.ajax(request).done(function (response) { HttpClient.send(request).done(function (response) {
deferred.resolve(response, 0); deferred.resolve(response, 0);
@ -356,7 +356,7 @@
url += name; url += name;
if (params) { if (params) {
url += "?" + AjaxApi.param(params); url += "?" + HttpClient.param(params);
} }
return url; return url;

View file

@ -85,7 +85,7 @@
logger.log('tryConnect url: ' + url); logger.log('tryConnect url: ' + url);
return AjaxApi.ajax({ return HttpClient.send({
type: "GET", type: "GET",
url: url, url: url,
@ -378,7 +378,7 @@
var url = "https://connect.mediabrowser.tv/service/user?id=" + userId; var url = "https://connect.mediabrowser.tv/service/user?id=" + userId;
return AjaxApi.ajax({ return HttpClient.send({
type: "GET", type: "GET",
url: url, url: url,
dataType: "json", dataType: "json",
@ -403,7 +403,7 @@
url += "/Connect/Exchange?format=json&ConnectUserId=" + credentials.ConnectUserId; url += "/Connect/Exchange?format=json&ConnectUserId=" + credentials.ConnectUserId;
return AjaxApi.ajax({ return HttpClient.send({
type: "GET", type: "GET",
url: url, url: url,
dataType: "json", dataType: "json",
@ -429,7 +429,7 @@
var url = MediaBrowser.ServerInfo.getServerAddress(server, connectionMode); var url = MediaBrowser.ServerInfo.getServerAddress(server, connectionMode);
AjaxApi.ajax({ HttpClient.send({
type: "GET", type: "GET",
url: url + "/system/info", url: url + "/system/info",
@ -444,7 +444,7 @@
if (server.UserId) { if (server.UserId) {
AjaxApi.ajax({ HttpClient.send({
type: "GET", type: "GET",
url: url + "/users/" + server.UserId, url: url + "/users/" + server.UserId,
@ -634,7 +634,7 @@
var url = "https://connect.mediabrowser.tv/service/servers?userId=" + credentials.ConnectUserId; var url = "https://connect.mediabrowser.tv/service/servers?userId=" + credentials.ConnectUserId;
AjaxApi.ajax({ HttpClient.send({
type: "GET", type: "GET",
url: url, url: url,
dataType: "json", dataType: "json",
@ -1083,7 +1083,7 @@
var md5 = self.getConnectPasswordHash(password); var md5 = self.getConnectPasswordHash(password);
AjaxApi.ajax({ HttpClient.send({
type: "POST", type: "POST",
url: "https://connect.mediabrowser.tv/service/user/authenticate", url: "https://connect.mediabrowser.tv/service/user/authenticate",
data: { data: {
@ -1146,7 +1146,7 @@
var md5 = self.getConnectPasswordHash(password); var md5 = self.getConnectPasswordHash(password);
AjaxApi.ajax({ HttpClient.send({
type: "POST", type: "POST",
url: "https://connect.mediabrowser.tv/service/register", url: "https://connect.mediabrowser.tv/service/register",
data: { data: {
@ -1218,7 +1218,7 @@
var url = "https://connect.mediabrowser.tv/service/servers?userId=" + self.connectUserId() + "&status=Waiting"; var url = "https://connect.mediabrowser.tv/service/servers?userId=" + self.connectUserId() + "&status=Waiting";
return AjaxApi.ajax({ return HttpClient.send({
type: "GET", type: "GET",
url: url, url: url,
dataType: "json", dataType: "json",
@ -1265,7 +1265,7 @@
var url = "https://connect.mediabrowser.tv/service/serverAuthorizations?serverId=" + serverId + "&userId=" + self.connectUserId(); var url = "https://connect.mediabrowser.tv/service/serverAuthorizations?serverId=" + serverId + "&userId=" + self.connectUserId();
return AjaxApi.ajax({ return HttpClient.send({
type: "DELETE", type: "DELETE",
url: url, url: url,
headers: { headers: {
@ -1300,7 +1300,7 @@
var url = "https://connect.mediabrowser.tv/service/serverAuthorizations?serverId=" + serverId + "&userId=" + self.connectUserId(); var url = "https://connect.mediabrowser.tv/service/serverAuthorizations?serverId=" + serverId + "&userId=" + self.connectUserId();
return AjaxApi.ajax({ return HttpClient.send({
type: "DELETE", type: "DELETE",
url: url, url: url,
headers: { headers: {
@ -1327,7 +1327,7 @@
var url = "https://connect.mediabrowser.tv/service/ServerAuthorizations/accept?serverId=" + serverId + "&userId=" + self.connectUserId(); var url = "https://connect.mediabrowser.tv/service/ServerAuthorizations/accept?serverId=" + serverId + "&userId=" + self.connectUserId();
return AjaxApi.ajax({ return HttpClient.send({
type: "GET", type: "GET",
url: url, url: url,
headers: { headers: {

View file

@ -25,14 +25,14 @@
"web-component-tester": "*", "web-component-tester": "*",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
}, },
"homepage": "https://github.com/polymerelements/iron-meta", "homepage": "https://github.com/PolymerElements/iron-meta",
"_release": "1.0.3", "_release": "1.0.3",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "v1.0.3", "tag": "v1.0.3",
"commit": "91529259262b0d8f33fed44bc3fd47aedf35cb04" "commit": "91529259262b0d8f33fed44bc3fd47aedf35cb04"
}, },
"_source": "git://github.com/polymerelements/iron-meta.git", "_source": "git://github.com/PolymerElements/iron-meta.git",
"_target": "^1.0.0", "_target": "^1.0.0",
"_originalSource": "polymerelements/iron-meta" "_originalSource": "PolymerElements/iron-meta"
} }

View file

@ -34,7 +34,7 @@
"tag": "v1.0.7", "tag": "v1.0.7",
"commit": "c65f5ce6b898bb756fca35cedaa53c3e8011abeb" "commit": "c65f5ce6b898bb756fca35cedaa53c3e8011abeb"
}, },
"_source": "git://github.com/polymerelements/paper-styles.git", "_source": "git://github.com/PolymerElements/paper-styles.git",
"_target": "^1.0.0", "_target": "^1.0.0",
"_originalSource": "polymerelements/paper-styles" "_originalSource": "PolymerElements/paper-styles"
} }

View file

@ -37,8 +37,8 @@
return id.toString(); return id.toString();
} }
function initAjax() { function initAjax() {
baseAjaxMethod = AjaxApi.ajax; baseAjaxMethod = HttpClient.send;
AjaxApi.ajax = sendRequest; HttpClient.send = sendRequest;
} }
function sendRequest(request) { function sendRequest(request) {

View file

@ -1,28 +1,4 @@
@font-face { /* cyrillic-ext */
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
src: url(../thirdparty/materialicons/MaterialIcons-Regular.eot); /* For IE6-8 */
src: local('Material Icons'), local('MaterialIcons-Regular'), url(../thirdparty/materialicons/MaterialIcons-Regular.woff2) format('woff2'), url(../thirdparty/materialicons/MaterialIcons-Regular.woff) format('woff'), url(../thirdparty/materialicons/MaterialIcons-Regular.ttf) format('truetype');
}
.material-icons {
font-family: 'Material Icons';
font-weight: normal;
font-style: normal;
display: inline-block;
text-transform: none;
/* Support for all WebKit browsers. */
-webkit-font-smoothing: antialiased;
/* Support for Safari and Chrome. */
text-rendering: optimizeLegibility;
/* Support for Firefox. */
-moz-osx-font-smoothing: grayscale;
/* Support for IE. */
font-feature-settings: 'liga';
}
/* cyrillic-ext */
@font-face { @font-face {
font-family: 'Roboto'; font-family: 'Roboto';
font-style: normal; font-style: normal;

View file

@ -66,11 +66,12 @@
return o.ironIcon; return o.ironIcon;
}).length; }).length;
html += '<paper-menu>';
for (var i = 0, length = options.items.length; i < length; i++) { for (var i = 0, length = options.items.length; i < length; i++) {
var option = options.items[i]; var option = options.items[i];
html += '<paper-button class="block menuButton ripple btnOption" data-id="' + option.id + '" style="margin:0;">'; html += '<paper-menu-item class="actionSheetMenuItem" data-id="' + option.id + '" style="display:block;">';
if (option.ironIcon) { if (option.ironIcon) {
html += '<iron-icon icon="' + option.ironIcon + '"></iron-icon>'; html += '<iron-icon icon="' + option.ironIcon + '"></iron-icon>';
@ -79,8 +80,9 @@
html += '<iron-icon></iron-icon>'; html += '<iron-icon></iron-icon>';
} }
html += '<span>' + option.name + '</span>'; html += '<span>' + option.name + '</span>';
html += '</paper-button>'; html += '</paper-menu-item>';
} }
html += '</paper-menu>';
if (isScrollable) { if (isScrollable) {
html += '</paper-dialog-scrollable>'; html += '</paper-dialog-scrollable>';
@ -106,7 +108,7 @@
$(this).remove(); $(this).remove();
}); });
$('.btnOption', dlg).on('click', function () { $('.actionSheetMenuItem', dlg).on('click', function () {
var selectedId = this.getAttribute('data-id'); var selectedId = this.getAttribute('data-id');

View file

@ -122,10 +122,6 @@
return false; return false;
} }
if ($.browser.android && AppInfo.isNativeApp) {
return screen.availWidth >= 1200;
}
if ($.browser.mobile) { if ($.browser.mobile) {
return false; return false;
} }

View file

@ -108,6 +108,8 @@
$.when(promises).done(function () { $.when(promises).done(function () {
Dashboard.hideLoadingMsg(); Dashboard.hideLoadingMsg();
LibraryBrowser.setLastRefreshed(page);
}); });
} }
@ -117,7 +119,9 @@
var userId = Dashboard.getCurrentUserId(); var userId = Dashboard.getCurrentUserId();
loadSections(page, userId); if (LibraryBrowser.needsRefresh(page)) {
loadSections(page, userId);
}
}); });
})(jQuery, document); })(jQuery, document);

View file

@ -3,7 +3,7 @@
var pageSizeKey = 'pagesize_v4'; var pageSizeKey = 'pagesize_v4';
return { return {
getDefaultPageSize: function(key, defaultValue) { getDefaultPageSize: function (key, defaultValue) {
var saved = appStorage.getItem(key || pageSizeKey); var saved = appStorage.getItem(key || pageSizeKey);
@ -21,13 +21,13 @@
return isChrome ? 200 : 100; return isChrome ? 200 : 100;
}, },
getDefaultItemsView: function(view, mobileView) { getDefaultItemsView: function (view, mobileView) {
return $.browser.mobile ? mobileView : view; return $.browser.mobile ? mobileView : view;
}, },
loadSavedQueryValues: function(key, query) { loadSavedQueryValues: function (key, query) {
var values = appStorage.getItem(key + '_' + Dashboard.getCurrentUserId()); var values = appStorage.getItem(key + '_' + Dashboard.getCurrentUserId());
@ -41,7 +41,7 @@
return query; return query;
}, },
saveQueryValues: function(key, query) { saveQueryValues: function (key, query) {
var values = {}; var values = {};
@ -59,7 +59,7 @@
} }
}, },
saveViewSetting: function(key, value) { saveViewSetting: function (key, value) {
try { try {
appStorage.setItem(key + '_' + Dashboard.getCurrentUserId() + '_view', value); appStorage.setItem(key + '_' + Dashboard.getCurrentUserId() + '_view', value);
@ -68,7 +68,7 @@
} }
}, },
getSavedViewSetting: function(key) { getSavedViewSetting: function (key) {
var deferred = $.Deferred(); var deferred = $.Deferred();
var val = appStorage.getItem(key + '_' + Dashboard.getCurrentUserId() + '_view'); var val = appStorage.getItem(key + '_' + Dashboard.getCurrentUserId() + '_view');
@ -77,25 +77,39 @@
return deferred.promise(); return deferred.promise();
}, },
needsRefresh: function(elem) { needsRefresh: function (elem) {
var last = elem.getAttribute('data-lastrefresh') || '0'; var last = parseInt(elem.getAttribute('data-lastrefresh') || '0');
if (!last) {
return true;
}
if (NavHelper.isBack()) { if (NavHelper.isBack()) {
return false; return false;
} }
var now = new Date().getTime(); var now = new Date().getTime();
if ((now - parseInt(last)) < 90000) { var cacheDuration = 300000;
if (!AppInfo.isNativeApp && ($.browser.ipad || $.browser.iphone || $.browser.android)) {
cacheDuration = 10000;
}
else if (!$.browser.mobile) {
cacheDuration = 60000;
}
if ((now - last) < cacheDuration) {
return false; return false;
} }
return true; return true;
}, },
setLastRefreshed: function(elem) { setLastRefreshed: function (elem) {
elem.setAttribute('data-lastrefresh', new Date().getTime()); elem.setAttribute('data-lastrefresh', new Date().getTime());
elem.classList.add('hasrefreshtime');
}, },
getDateParamValue: function (date) { getDateParamValue: function (date) {
@ -535,13 +549,6 @@
var href = LibraryBrowser.getHrefInternal(item, context); var href = LibraryBrowser.getHrefInternal(item, context);
if (context) {
if (context != 'livetv') {
href += href.indexOf('?') == -1 ? "?context=" : "&context=";
href += context;
}
}
if (context != 'livetv') { if (context != 'livetv') {
if (topParentId == null && context != 'playlists') { if (topParentId == null && context != 'playlists') {
topParentId = LibraryMenu.getTopParentId(); topParentId = LibraryMenu.getTopParentId();
@ -566,6 +573,8 @@
return item.url; return item.url;
} }
var contextSuffix = context ? ('&context=' + context) : '';
// Handle search hints // Handle search hints
var id = item.Id || item.ItemId; var id = item.Id || item.ItemId;
@ -632,48 +641,48 @@
return "livetvprogram.html?id=" + id; return "livetvprogram.html?id=" + id;
} }
if (item.Type == "Series") { if (item.Type == "Series") {
return "itemdetails.html?id=" + id; return "itemdetails.html?id=" + id + contextSuffix;
} }
if (item.Type == "Season") { if (item.Type == "Season") {
return "itemdetails.html?id=" + id; return "itemdetails.html?id=" + id + contextSuffix;
} }
if (item.Type == "BoxSet") { if (item.Type == "BoxSet") {
return "itemdetails.html?id=" + id; return "itemdetails.html?id=" + id + contextSuffix;
} }
if (item.Type == "MusicAlbum") { if (item.Type == "MusicAlbum") {
return "itemdetails.html?id=" + id; return "itemdetails.html?id=" + id + contextSuffix;
} }
if (item.Type == "GameSystem") { if (item.Type == "GameSystem") {
return "itemdetails.html?id=" + id; return "itemdetails.html?id=" + id + contextSuffix;
} }
if (item.Type == "Genre") { if (item.Type == "Genre") {
return "itembynamedetails.html?id=" + id; return "itembynamedetails.html?id=" + id + contextSuffix;
} }
if (item.Type == "MusicGenre") { if (item.Type == "MusicGenre") {
return "itembynamedetails.html?id=" + id; return "itembynamedetails.html?id=" + id + contextSuffix;
} }
if (item.Type == "GameGenre") { if (item.Type == "GameGenre") {
return "itembynamedetails.html?id=" + id; return "itembynamedetails.html?id=" + id + contextSuffix;
} }
if (item.Type == "Studio") { if (item.Type == "Studio") {
return "itembynamedetails.html?id=" + id; return "itembynamedetails.html?id=" + id + contextSuffix;
} }
if (item.Type == "Person") { if (item.Type == "Person") {
return "itembynamedetails.html?id=" + id; return "itembynamedetails.html?id=" + id + contextSuffix;
} }
if (item.Type == "Recording") { if (item.Type == "Recording") {
return "livetvrecording.html?id=" + id; return "livetvrecording.html?id=" + id + contextSuffix;
} }
if (item.Type == "MusicArtist") { if (item.Type == "MusicArtist") {
return "itembynamedetails.html?id=" + id; return "itembynamedetails.html?id=" + id + contextSuffix;
} }
if (item.IsFolder) { if (item.IsFolder) {
return id ? "itemlist.html?parentId=" + id : "#"; return id ? "itemlist.html?parentId=" + id : "#";
} }
return "itemdetails.html?id=" + id; return "itemdetails.html?id=" + id + contextSuffix;
}, },
getImageUrl: function (item, type, index, options) { getImageUrl: function (item, type, index, options) {

View file

@ -115,7 +115,7 @@
var resumePosition = (item.UserData || {}).PlaybackPositionTicks || 0; var resumePosition = (item.UserData || {}).PlaybackPositionTicks || 0;
html += '<paper-icon-button icon="play-circle-filled" class="btnPlayItem" data-itemid="' + item.Id + '" data-itemtype="' + item.Type + '" data-isfolder="' + item.IsFolder + '" data-mediatype="' + item.MediaType + '" data-resumeposition="' + resumePosition + '"></paper-icon-button>'; html += '<paper-icon-button icon="play-circle-outline" class="btnPlayItem" data-itemid="' + item.Id + '" data-itemtype="' + item.Type + '" data-isfolder="' + item.IsFolder + '" data-mediatype="' + item.MediaType + '" data-resumeposition="' + resumePosition + '"></paper-icon-button>';
buttonCount++; buttonCount++;
} }
@ -1228,6 +1228,10 @@
$(apiClient).off('websocketmessage', onWebSocketMessage).on('websocketmessage', onWebSocketMessage); $(apiClient).off('websocketmessage', onWebSocketMessage).on('websocketmessage', onWebSocketMessage);
} }
function clearRefreshTimes() {
$('.hasrefreshtime').removeClass('hasrefreshtime').removeAttr('data-lastrefresh');
}
Dashboard.ready(function () { Dashboard.ready(function () {
if (window.ApiClient) { if (window.ApiClient) {
@ -1237,6 +1241,9 @@
$(ConnectionManager).on('apiclientcreated', function (e, apiClient) { $(ConnectionManager).on('apiclientcreated', function (e, apiClient) {
initializeApiClient(apiClient); initializeApiClient(apiClient);
}); });
Events.on(ConnectionManager, 'localusersignedin', clearRefreshTimes);
Events.on(ConnectionManager, 'localusersignedout', clearRefreshTimes);
}); });
})(jQuery, document, window); })(jQuery, document, window);

View file

@ -121,6 +121,7 @@
if (LibraryBrowser.needsRefresh(page)) { if (LibraryBrowser.needsRefresh(page)) {
query.UserId = Dashboard.getCurrentUserId(); query.UserId = Dashboard.getCurrentUserId();
LibraryBrowser.loadSavedQueryValues('movies', query); LibraryBrowser.loadSavedQueryValues('movies', query);
query.Limit = query.Limit || LibraryBrowser.getDefaultPageSize();
reloadItems(page); reloadItems(page);
updateFilterControls(this); updateFilterControls(this);
} }

View file

@ -89,6 +89,7 @@
renderRecordings($('#latestRecordings', page), result.Items); renderRecordings($('#latestRecordings', page), result.Items);
LibraryBrowser.setLastRefreshed(page);
}); });
ApiClient.getLiveTvRecordingGroups({ ApiClient.getLiveTvRecordingGroups({
@ -106,7 +107,9 @@
var page = this; var page = this;
reload(page); if (LibraryBrowser.needsRefresh(page)) {
reload(page);
}
}); });

View file

@ -97,6 +97,7 @@
renderTimers(page, result.Items); renderTimers(page, result.Items);
LibraryBrowser.setLastRefreshed(page);
}); });
} }
@ -120,7 +121,9 @@
var page = this; var page = this;
reload(page); if (LibraryBrowser.needsRefresh(page)) {
reload(page);
}
}).on('pageinit', "#liveTvSeriesTimersPage", function () { }).on('pageinit', "#liveTvSeriesTimersPage", function () {

View file

@ -104,6 +104,7 @@
renderTimers(page, result.Items); renderTimers(page, result.Items);
LibraryBrowser.setLastRefreshed(page);
}); });
} }
@ -111,7 +112,9 @@
var page = this; var page = this;
reload(page); if (LibraryBrowser.needsRefresh(page)) {
reload(page);
}
}); });
})(jQuery, document); })(jQuery, document);

View file

@ -1844,6 +1844,7 @@ var AppInfo = {};
} }
else if ($.browser.safari) { else if ($.browser.safari) {
Dashboard.importCss('themes/ios.css'); Dashboard.importCss('themes/ios.css');
Dashboard.importCss('thirdparty/materialicons/style.css');
} }
} }

View file

@ -17,3 +17,6 @@
.ui-page-theme-b .visualCardBox { .ui-page-theme-b .visualCardBox {
background: rgba(56,56,56,.85); background: rgba(56,56,56,.85);
} }
.libraryViewNav a{
font-weight: 500;
}

View file

@ -110,6 +110,7 @@ See [iron-iconset](#iron-iconset) and [iron-iconset-svg](#iron-iconset-svg) for
<g id="games"><path d="M15 7.5V2H9v5.5l3 3 3-3zM7.5 9H2v6h5.5l3-3-3-3zM9 16.5V22h6v-5.5l-3-3-3 3zM16.5 9l-3 3 3 3H22V9h-5.5z" /></g> <g id="games"><path d="M15 7.5V2H9v5.5l3 3 3-3zM7.5 9H2v6h5.5l3-3-3-3zM9 16.5V22h6v-5.5l-3-3-3 3zM16.5 9l-3 3 3 3H22V9h-5.5z" /></g>
<g id="play-circle-filled"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5v-9l6 4.5-6 4.5z" /></g> <g id="play-circle-filled"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5v-9l6 4.5-6 4.5z" /></g>
<g id="cloud"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96z" /></g> <g id="cloud"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96z" /></g>
<g id="play-circle-outline"><path d="M10 16.5l6-4.5-6-4.5v9zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z" /></g>
</defs> </defs>
</svg> </svg>
</iron-iconset-svg> </iron-iconset-svg>

View file

@ -0,0 +1,23 @@
@font-face {
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
src: url(MaterialIcons-Regular.eot); /* For IE6-8 */
src: local('Material Icons'), local('MaterialIcons-Regular'), url(MaterialIcons-Regular.woff2) format('woff2'), url(MaterialIcons-Regular.woff) format('woff'), url(MaterialIcons-Regular.ttf) format('truetype');
}
.material-icons {
font-family: 'Material Icons';
font-weight: normal;
font-style: normal;
display: inline-block;
text-transform: none;
/* Support for all WebKit browsers. */
-webkit-font-smoothing: antialiased;
/* Support for Safari and Chrome. */
text-rendering: optimizeLegibility;
/* Support for Firefox. */
-moz-osx-font-smoothing: grayscale;
/* Support for IE. */
font-feature-settings: 'liga';
}

View file

@ -314,3 +314,40 @@ paper-fab.square {
paper-slider { paper-slider {
width: 100%; width: 100%;
} }
paper-menu-item {
padding: .35em .5em;
}
paper-menu-item iron-icon {
margin-right: 1.5em;
}
.actionSheetMenuItem {
cursor: pointer;
}
.actionSheetMenuItem:hover {
background: #eee;
}
.scrollablePaperTabs paper-icon-button {
display: none !important;
}
/*.scrollablePaperTabs #tabsContainer {
text-align: center;
overflow-x: scroll;
-webkit-overflow-scrolling: touch;
overflow-y: hidden;
white-space: nowrap;
-ms-overflow-style: none;
overflow: -moz-scrollbars-none;
}
.scrollablePaperTabs #tabsContainer::-webkit-scrollbar {
height: 0 !important;
display: none;
}
.scrollablePaperTabs #tabsContent {
position: static !important;
}*/

View file

@ -16,4 +16,5 @@
<link rel="import" href="bower_components/paper-drawer-panel/paper-drawer-panel.html"> <link rel="import" href="bower_components/paper-drawer-panel/paper-drawer-panel.html">
<link rel="import" href="bower_components/paper-tabs/paper-tabs.html"> <link rel="import" href="bower_components/paper-tabs/paper-tabs.html">
<link rel="import" href="bower_components/paper-slider/paper-slider.html"> <link rel="import" href="bower_components/paper-slider/paper-slider.html">
<link rel="import" href="bower_components/paper-menu/paper-menu.html">
<link rel="import" href="thirdparty/emby-icons.html"> <link rel="import" href="thirdparty/emby-icons.html">

View file

@ -12057,6 +12057,8 @@ is separate from validation, and `allowed-pattern` does not affect how the input
</head><body><div hidden="" by-vulcanize=""><dom-module id="paper-material" assetpath="bower_components/paper-material/"> </head><body><div hidden="" by-vulcanize=""><dom-module id="paper-material" assetpath="bower_components/paper-material/">
<style> <style>
:host { :host {
@ -17038,6 +17040,81 @@ paper-ripple {
* @event change * @event change
*/ */
</script>
<dom-module id="paper-menu" assetpath="bower_components/paper-menu/">
<style>
:host {
display: block;
padding: 8px 0;
background: var(--paper-menu-background-color, --primary-background-color);
color: var(--paper-menu-color, --primary-text-color);
@apply(--paper-menu);
}
/* need a wrapper element to make this higher specificity than the :host rule in paper-item */
.content > ::content > .iron-selected {
font-weight: bold;
@apply(--paper-menu-selected-item);
}
.content > ::content > [disabled] {
color: var(--paper-menu-disabled-color, --disabled-text-color);
}
.content > ::content > *:focus {
position: relative;
outline: 0;
@apply(--paper-menu-colored-focused-item);
}
.content > ::content > *:focus:after {
@apply(--layout-fit);
background: currentColor;
/* FIXME move to paper-styles for next widget */
opacity: 0.12;
content: '';
@apply(--paper-menu-colored-focused-item-after);
}
.content > ::content > *[colored]:focus:after {
opacity: 0.26;
}
</style>
<template>
<div class="content">
<content></content>
</div>
</template>
</dom-module>
<script>
(function() {
Polymer({
is: 'paper-menu',
behaviors: [
Polymer.IronMenuBehavior
]
});
})();
</script> </script>
<iron-iconset-svg name="icons" size="24"> <iron-iconset-svg name="icons" size="24">
<svg> <svg>
@ -17116,7 +17193,8 @@ paper-ripple {
<g id="games"><path d="M15 7.5V2H9v5.5l3 3 3-3zM7.5 9H2v6h5.5l3-3-3-3zM9 16.5V22h6v-5.5l-3-3-3 3zM16.5 9l-3 3 3 3H22V9h-5.5z"></path></g> <g id="games"><path d="M15 7.5V2H9v5.5l3 3 3-3zM7.5 9H2v6h5.5l3-3-3-3zM9 16.5V22h6v-5.5l-3-3-3 3zM16.5 9l-3 3 3 3H22V9h-5.5z"></path></g>
<g id="play-circle-filled"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5v-9l6 4.5-6 4.5z"></path></g> <g id="play-circle-filled"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5v-9l6 4.5-6 4.5z"></path></g>
<g id="cloud"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96z"></path></g> <g id="cloud"><path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96z"></path></g>
</defs> <g id="play-circle-outline"><path d="M10 16.5l6-4.5-6-4.5v9zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"></path></g>
</defs>
</svg> </svg>
</iron-iconset-svg> </iron-iconset-svg>
</div></body></html> </div></body></html>