update polymer

This commit is contained in:
Luke Pulverenti 2015-10-05 22:50:20 -04:00
parent d2bb0d6805
commit d96a2b7946
28 changed files with 109 additions and 118 deletions

View File

@ -166,7 +166,7 @@
var accessToken = currentServerInfo.AccessToken;
if (accessToken) {
headers['X-MediaBrowser-Token'] = accessToken;
headers['X-Emby-Token'] = accessToken;
}
};
@ -356,6 +356,10 @@
throw new Error("serverAddress is yet not set");
}
if (url.toLowerCase().indexOf('/emby') == -1) {
url += '/emby';
}
if (name.charAt(0) != '/') {
url += '/';
}
@ -407,7 +411,7 @@
throw new Error("Cannot open web socket without access token.");
}
var url = serverAddress.replace('http', 'ws');
var url = self.getUrl("socket").replace("/socket", "").replace('http', 'ws');
url += "?api_key=" + accessToken;
url += "&deviceId=" + deviceId;

View File

@ -79,9 +79,13 @@
}
}
function getEmbyServerUrl(baseUrl, handler) {
return baseUrl + "/emby/" + handler;
}
function tryConnect(url, timeout) {
url += "/system/info/public";
url = getEmbyServerUrl(url, "system/info/public");
logger.log('tryConnect url: ' + url);
@ -399,14 +403,14 @@
var url = MediaBrowser.ServerInfo.getServerAddress(server, connectionMode);
url += "/Connect/Exchange?format=json&ConnectUserId=" + credentials.ConnectUserId;
url = getEmbyServerUrl(url, "Connect/Exchange?format=json&ConnectUserId=" + credentials.ConnectUserId);
return HttpClient.send({
type: "GET",
url: url,
dataType: "json",
headers: {
"X-MediaBrowser-Token": server.ExchangeToken
"X-Emby-Token": server.ExchangeToken
}
}).done(function (auth) {
@ -430,10 +434,10 @@
HttpClient.send({
type: "GET",
url: url + "/system/info",
url: getEmbyServerUrl(url, "System/Info"),
dataType: "json",
headers: {
"X-MediaBrowser-Token": server.AccessToken
"X-Emby-Token": server.AccessToken
}
}).done(function (systemInfo) {
@ -445,10 +449,10 @@
HttpClient.send({
type: "GET",
url: url + "/users/" + server.UserId,
url: getEmbyServerUrl(url, "users/" + server.UserId),
dataType: "json",
headers: {
"X-MediaBrowser-Token": server.AccessToken
"X-Emby-Token": server.AccessToken
}
}).done(function (user) {

View File

@ -29,14 +29,14 @@
"web-component-tester": "*",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
},
"homepage": "https://github.com/polymerelements/iron-a11y-keys-behavior",
"homepage": "https://github.com/PolymerElements/iron-a11y-keys-behavior",
"_release": "1.0.6",
"_resolution": {
"type": "version",
"tag": "v1.0.6",
"commit": "af5c98b1cf9b3d180a6326c99ac9c7057eee647f"
},
"_source": "git://github.com/polymerelements/iron-a11y-keys-behavior.git",
"_source": "git://github.com/PolymerElements/iron-a11y-keys-behavior.git",
"_target": "^1.0.0",
"_originalSource": "polymerelements/iron-a11y-keys-behavior"
"_originalSource": "PolymerElements/iron-a11y-keys-behavior"
}

View File

@ -1,7 +1,7 @@
{
"name": "iron-iconset-svg",
"description": "Manages a set of svg icons",
"version": "1.0.5",
"version": "1.0.6",
"keywords": [
"web-components",
"polymer",
@ -30,11 +30,11 @@
"web-component-tester": "*"
},
"homepage": "https://github.com/polymerelements/iron-iconset-svg",
"_release": "1.0.5",
"_release": "1.0.6",
"_resolution": {
"type": "version",
"tag": "v1.0.5",
"commit": "54d35698c1e06462452997f8731ea31a4bf1638c"
"tag": "v1.0.6",
"commit": "ebd17924942abe6110aa0fe81b1b31e1fcc34a9f"
},
"_source": "git://github.com/polymerelements/iron-iconset-svg.git",
"_target": "^1.0.0",

View File

@ -1,7 +1,7 @@
{
"name": "iron-iconset-svg",
"description": "Manages a set of svg icons",
"version": "1.0.5",
"version": "1.0.6",
"keywords": [
"web-components",
"polymer",

View File

@ -179,13 +179,15 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
*/
_prepareSvgClone: function(sourceSvg, size) {
if (sourceSvg) {
var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
svg.setAttribute('viewBox', ['0', '0', size, size].join(' '));
var content = sourceSvg.cloneNode(true),
svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'),
viewBox = content.getAttribute('viewBox') || '0 0 ' + size + ' ' + size;
svg.setAttribute('viewBox', viewBox);
svg.setAttribute('preserveAspectRatio', 'xMidYMid meet');
// TODO(dfreedm): `pointer-events: none` works around https://crbug.com/370136
// TODO(sjmiles): inline style may not be ideal, but avoids requiring a shadow-root
svg.style.cssText = 'pointer-events: none; display: block; width: 100%; height: 100%;';
svg.appendChild(sourceSvg.cloneNode(true)).removeAttribute('id');
svg.appendChild(content).removeAttribute('id');
return svg;
}
return null;

View File

@ -42,6 +42,9 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
<defs>
<circle id="circle" cx="20" cy="20" r="10"></circle>
<rect id="square" x="0" y="0" width="20" height="20"></rect>
<symbol id="rect" viewBox="0 0 50 25">
<rect x="0" y="0" width="50" height="25"></rect>
</symbol>
</defs>
</svg>
</iron-iconset-svg>
@ -97,7 +100,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
});
test('can be queried for all available icons', function () {
expect(iconset.getIconNames()).to.deep.eql(['my-icons:circle', 'my-icons:square']);
expect(iconset.getIconNames()).to.deep.eql(['my-icons:circle', 'my-icons:square', 'my-icons:rect']);
});
test('supports any icon defined in the svg', function () {
@ -110,6 +113,16 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
});
});
test('prefers a viewBox attribute over the iconset size', function () {
iconset.applyIcon(div, 'rect');
expect(div.firstElementChild.getAttribute('viewBox')).to.be.equal('0 0 50 25');
});
test('uses the iconset size when viewBox is not defined on the element', function () {
iconset.applyIcon(div, 'circle');
expect(div.firstElementChild.getAttribute('viewBox')).to.be.equal('0 0 20 20');
});
});
});

View File

@ -1,6 +1,6 @@
{
"name": "iron-selector",
"version": "1.0.5",
"version": "1.0.6",
"description": "Manages a set of elements that can be selected",
"private": true,
"license": "http://polymer.github.io/LICENSE.txt",
@ -32,11 +32,11 @@
"web-component-tester": "*",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
},
"_release": "1.0.5",
"_release": "1.0.6",
"_resolution": {
"type": "version",
"tag": "v1.0.5",
"commit": "396ef93a5d3467810cec0328c53f09037d6ee8e1"
"tag": "v1.0.6",
"commit": "08fa18c70b79abdee8a02486223ab9a4f0acc72c"
},
"_source": "git://github.com/PolymerElements/iron-selector.git",
"_target": "^1.0.0",

View File

@ -1,6 +1,6 @@
{
"name": "iron-selector",
"version": "1.0.5",
"version": "1.0.6",
"description": "Manages a set of elements that can be selected",
"private": true,
"license": "http://polymer.github.io/LICENSE.txt",

View File

@ -111,7 +111,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
* @type {object}
* @default {template: 1}
*/
excludedLocalNames: {
_excludedLocalNames: {
type: Object,
value: function() {
return {
@ -223,7 +223,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
},
_filterItem: function(node) {
return !this.excludedLocalNames[node.localName];
return !this._excludedLocalNames[node.localName];
},
_valueToItem: function(value) {

View File

@ -57,22 +57,22 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
test2 = fixture('test2');
});
test('default `excludedLocalNames`', function() {
assert.isTrue('template' in test1.excludedLocalNames);
assert.isTrue('template' in test2.excludedLocalNames);
test('default `_excludedLocalNames`', function() {
assert.isTrue('template' in test1._excludedLocalNames);
assert.isTrue('template' in test2._excludedLocalNames);
});
test('custom `excludedLocalNames`', function() {
test1.excludedLocalNames.foo = 1;
test('custom `_excludedLocalNames`', function() {
test1._excludedLocalNames.foo = 1;
assert.isTrue('foo' in test1.excludedLocalNames);
assert.isFalse('foo' in test2.excludedLocalNames);
assert.isTrue('foo' in test1._excludedLocalNames);
assert.isFalse('foo' in test2._excludedLocalNames);
});
test('items', function() {
test1.excludedLocalNames.span = 1;
test2.excludedLocalNames.div = 1;
test1._excludedLocalNames.span = 1;
test2._excludedLocalNames.div = 1;
var NOT_FOUND = -1;
var items1 = test1.items.map(function(el) { return el.localName; });

View File

@ -42,7 +42,7 @@
"tag": "v1.0.4",
"commit": "a7ac7fbdb79b4d82416ec9b41613575386d0d226"
},
"_source": "git://github.com/polymerelements/paper-behaviors.git",
"_source": "git://github.com/PolymerElements/paper-behaviors.git",
"_target": "^1.0.0",
"_originalSource": "polymerelements/paper-behaviors"
"_originalSource": "PolymerElements/paper-behaviors"
}

View File

@ -1,6 +1,6 @@
{
"name": "paper-checkbox",
"version": "1.0.10",
"version": "1.0.11",
"description": "A material design checkbox",
"authors": [
"The Polymer Authors"
@ -35,11 +35,11 @@
"iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0",
"iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0"
},
"_release": "1.0.10",
"_release": "1.0.11",
"_resolution": {
"type": "version",
"tag": "v1.0.10",
"commit": "ce4a8e8663892e95fccc0142055db214fa292d6d"
"tag": "v1.0.11",
"commit": "00a147c81fe766f5c90222b2d1b0d8b5ddb12be5"
},
"_source": "git://github.com/PolymerElements/paper-checkbox.git",
"_target": "~1.0.5",

View File

@ -1,6 +1,6 @@
{
"name": "paper-checkbox",
"version": "1.0.10",
"version": "1.0.11",
"description": "A material design checkbox",
"authors": [
"The Polymer Authors"

View File

@ -80,7 +80,7 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
<div>
<h4>Color</h4>
<div class="horizontal-section">
<paper-checkbox class="blue" checked>Oxygen</paper-checkbox>
<paper-checkbox class="blue" checked aria-label="Hurray for oxygen">Oxygen</paper-checkbox>
<paper-checkbox class="red" checked>Carbon</paper-checkbox>
<paper-checkbox class="orange" checked>Hydrogen</paper-checkbox>
<paper-checkbox class="green" checked>Nitrogen</paper-checkbox>

View File

@ -14,7 +14,9 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
<link rel="import" href="../paper-styles/color.html">
<link rel="import" href="../paper-behaviors/paper-inky-focus-behavior.html">
<link rel="import" href="../iron-checked-element-behavior/iron-checked-element-behavior.html">
<!--
Material design: [Checkbox](https://www.google.com/design/spec/components/selection-controls.html#selection-controls-checkbox)
`paper-checkbox` is a button that can be either checked or unchecked. User
can tap the checkbox to check or uncheck it. Usually you use checkboxes
@ -243,23 +245,6 @@ Custom property | Description | Default
attached: function() {
this._isReady = true;
// Don't stomp over a user-set aria-label.
if (!this.getAttribute('aria-label')) {
this.updateAriaLabel();
}
},
/**
* Update the checkbox aria-label. This is a temporary workaround not
* being able to observe changes in <content>
* (see: https://github.com/Polymer/polymer/issues/1773)
*
* Call this if you manually change the contents of the checkbox
* and want the aria-label to match the new contents.
*/
updateAriaLabel: function() {
this.setAttribute('aria-label', Polymer.dom(this).textContent.trim());
},
// button-behavior hook

View File

@ -96,16 +96,6 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
c1.checked = true;
assert.isTrue(c1.validate());
});
test('checkbox label can be updated', function() {
Polymer.dom(c1).textContent = 'Batman';
c1.updateAriaLabel();
assert.isTrue(c1.getAttribute('aria-label') == 'Batman');
Polymer.dom(c1).textContent = 'Robin';
c1.updateAriaLabel();
assert.isTrue(c1.getAttribute('aria-label') == 'Robin');
});
});
suite('a11y', function() {
@ -126,10 +116,6 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
assert.isTrue(!c1.getAttribute('aria-label'));
});
test('checkbox with a label sets an aria label', function() {
assert.isTrue(c2.getAttribute('aria-label') == "Batman");
});
test('checkbox respects the user set aria-label', function() {
var c = fixture('AriaLabel');
assert.isTrue(c.getAttribute('aria-label') == "Batman");

View File

@ -1,6 +1,6 @@
{
"name": "paper-tabs",
"version": "1.0.3",
"version": "1.0.4",
"license": "http://polymer.github.io/LICENSE.txt",
"description": "Material design tabs",
"private": true,
@ -39,11 +39,11 @@
"web-component-tester": "*"
},
"homepage": "https://github.com/PolymerElements/paper-tabs",
"_release": "1.0.3",
"_release": "1.0.4",
"_resolution": {
"type": "version",
"tag": "v1.0.3",
"commit": "19546ca9fbe23da457177cac8de1a7720cb62c57"
"tag": "v1.0.4",
"commit": "b07b594cc08e7c97cda7e9b30b0bdd6c8969226c"
},
"_source": "git://github.com/PolymerElements/paper-tabs.git",
"_target": "~1.0.0",

View File

@ -1,6 +1,6 @@
{
"name": "paper-tabs",
"version": "1.0.3",
"version": "1.0.4",
"license": "http://polymer.github.io/LICENSE.txt",
"description": "Material design tabs",
"private": true,

View File

@ -20,6 +20,8 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
<link rel="import" href="paper-tab.html">
<!--
Material design: [Tabs](https://www.google.com/design/spec/components/tabs.html)
`paper-tabs` makes it easy to explore and switch between different views or functional aspects of
an app, or to browse categorized data sets.
@ -125,6 +127,7 @@ Custom property | Description | Default
.not-visible {
opacity: 0;
cursor: default;
}
paper-icon-button {
@ -172,7 +175,7 @@ Custom property | Description | Default
<template>
<paper-icon-button icon="paper-tabs:chevron-left" class$="[[_computeScrollButtonClass(_leftHidden, scrollable, hideScrollButtons)]]" on-up="_onScrollButtonUp" on-down="_onLeftScrollButtonDown"></paper-icon-button>
<paper-icon-button icon="paper-tabs:chevron-left" class$="[[_computeScrollButtonClass(_leftHidden, scrollable, hideScrollButtons)]]" on-up="_onScrollButtonUp" on-down="_onLeftScrollButtonDown" tabindex="-1"></paper-icon-button>
<div id="tabsContainer" class="flex" on-track="_scroll" on-down="_down">
@ -187,7 +190,7 @@ Custom property | Description | Default
</div>
<paper-icon-button icon="paper-tabs:chevron-right" class$="[[_computeScrollButtonClass(_rightHidden, scrollable, hideScrollButtons)]]" on-up="_onScrollButtonUp" on-down="_onRightScrollButtonDown"></paper-icon-button>
<paper-icon-button icon="paper-tabs:chevron-right" class$="[[_computeScrollButtonClass(_rightHidden, scrollable, hideScrollButtons)]]" on-up="_onScrollButtonUp" on-down="_onRightScrollButtonDown" tabindex="-1"></paper-icon-button>
</template>

View File

@ -101,7 +101,7 @@
var tabs = ['Library', 'Favorites', 'Search', 'NowPlaying'];
if (user.Policy.EnableSync) {
if (user.Policy.EnableSync && Dashboard.capabilities().SupportsSync) {
tabs.push('Sync');
}

View File

@ -364,7 +364,7 @@
html += '<div class="sidebarDivider"></div>';
if (user.localUser && showUserAtTop()) {
html += '<a class="sidebarLink lnkMediaFolder lnkMySettings" onclick="return LibraryMenu.onLinkClicked(event, this);" data-itemid="mysync" href="mypreferencesmenu.html?userId=' + user.localUser.Id + '"><iron-icon icon="settings" class="sidebarLinkIcon"></iron-icon><span class="sidebarLinkText">' + Globalize.translate('ButtonSettings') + '</span></a>';
html += '<a class="sidebarLink lnkMediaFolder lnkMySettings" onclick="return LibraryMenu.onLinkClicked(event, this);" href="mypreferencesmenu.html?userId=' + user.localUser.Id + '"><iron-icon icon="settings" class="sidebarLinkIcon"></iron-icon><span class="sidebarLinkText">' + Globalize.translate('ButtonSettings') + '</span></a>';
}
html += '<a class="sidebarLink lnkMediaFolder lnkMySync" data-itemid="mysync" onclick="return LibraryMenu.onLinkClicked(event, this);" href="mysync.html"><iron-icon icon="sync" class="sidebarLinkIcon"></iron-icon><span class="sidebarLinkText">' + Globalize.translate('ButtonSync') + '</span></a>';

View File

@ -5,7 +5,7 @@
window.LocalSync = {
isSupported: function () {
return AppInfo.isNativeApp;
return AppInfo.isNativeApp && Dashboard.capabilities().SupportsSync;
},
sync: function (options) {

View File

@ -926,11 +926,6 @@
return s.Type == 'Subtitle';
});
// Reports of stuttering with h264 stream copy in IE
if (streamInfo.playMethod == 'Transcode' && streamInfo.url.indexOf('.m3u8') == -1) {
streamInfo.url += '&EnableAutoStreamCopy=false';
}
// Create video player
var mediaPlayerContainer = $("#mediaPlayer").show();
var videoControls = $('.videoControls', mediaPlayerContainer);

View File

@ -950,10 +950,16 @@
if (mediaSource.TranscodingSubProtocol == 'hls') {
// Reports of stuttering with h264 stream copy in IE
mediaUrl += '&EnableAutoStreamCopy=false';
mediaUrl += seekParam;
contentType = 'application/x-mpegURL';
} else {
// Reports of stuttering with h264 stream copy in IE
mediaUrl += '&EnableAutoStreamCopy=false';
startTimeTicksOffset = startPosition || 0;
contentType = 'video/' + mediaSource.TranscodingContainer;
}
@ -1893,7 +1899,6 @@
self.createStreamInfo('Audio', item, mediaSource, startPositionTicks).done(function (streamInfo) {
var audioUrl = streamInfo.url;
self.startTimeTicksOffset = streamInfo.startTimeTicksOffset;
var initialVolume = self.getSavedVolume();

View File

@ -1549,7 +1549,7 @@ var Dashboard = {
SupportedLiveMediaTypes: ['Audio', 'Video']
};
if (Dashboard.isRunningInCordova()) {
if (Dashboard.isRunningInCordova() && !$.browser.safari) {
caps.SupportsOfflineAccess = true;
caps.SupportsSync = true;
caps.SupportsContentUploading = true;
@ -2317,7 +2317,11 @@ var AppInfo = {};
var deps = [];
if (AppInfo.isNativeApp && $.browser.safari) {
deps.push('cordova/ios/backgroundfetch');
if (Dashboard.capabilities().SupportsSync) {
deps.push('cordova/ios/backgroundfetch');
}
deps.push('cordova/ios/tabbar');
}
if (AppInfo.isNativeApp && $.browser.android) {

View File

@ -362,6 +362,10 @@
function isAvailable(item, user) {
if (AppInfo.isNativeApp && !Dashboard.capabilities().SupportsSync) {
return false;
}
return item.SupportsSync;
}

View File

@ -10898,7 +10898,7 @@ The `aria-labelledby` attribute will be set to the header element, if one exists
* @type {object}
* @default {template: 1}
*/
excludedLocalNames: {
_excludedLocalNames: {
type: Object,
value: function() {
return {
@ -11010,7 +11010,7 @@ The `aria-labelledby` attribute will be set to the header element, if one exists
},
_filterItem: function(node) {
return !this.excludedLocalNames[node.localName];
return !this._excludedLocalNames[node.localName];
},
_valueToItem: function(value) {
@ -11886,13 +11886,15 @@ The `aria-labelledby` attribute will be set to the header element, if one exists
*/
_prepareSvgClone: function(sourceSvg, size) {
if (sourceSvg) {
var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
svg.setAttribute('viewBox', ['0', '0', size, size].join(' '));
var content = sourceSvg.cloneNode(true),
svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'),
viewBox = content.getAttribute('viewBox') || '0 0 ' + size + ' ' + size;
svg.setAttribute('viewBox', viewBox);
svg.setAttribute('preserveAspectRatio', 'xMidYMid meet');
// TODO(dfreedm): `pointer-events: none` works around https://crbug.com/370136
// TODO(sjmiles): inline style may not be ideal, but avoids requiring a shadow-root
svg.style.cssText = 'pointer-events: none; display: block; width: 100%; height: 100%;';
svg.appendChild(sourceSvg.cloneNode(true)).removeAttribute('id');
svg.appendChild(content).removeAttribute('id');
return svg;
}
return null;
@ -16167,6 +16169,7 @@ iron-selector:not(.narrow-layout) #main ::content [paper-drawer-toggle] {
.not-visible {
opacity: 0;
cursor: default;
}
paper-icon-button {
@ -16214,7 +16217,7 @@ iron-selector:not(.narrow-layout) #main ::content [paper-drawer-toggle] {
<template>
<paper-icon-button icon="paper-tabs:chevron-left" class$="[[_computeScrollButtonClass(_leftHidden, scrollable, hideScrollButtons)]]" on-up="_onScrollButtonUp" on-down="_onLeftScrollButtonDown"></paper-icon-button>
<paper-icon-button icon="paper-tabs:chevron-left" class$="[[_computeScrollButtonClass(_leftHidden, scrollable, hideScrollButtons)]]" on-up="_onScrollButtonUp" on-down="_onLeftScrollButtonDown" tabindex="-1"></paper-icon-button>
<div id="tabsContainer" class="flex" on-track="_scroll" on-down="_down">
@ -16228,7 +16231,7 @@ iron-selector:not(.narrow-layout) #main ::content [paper-drawer-toggle] {
</div>
<paper-icon-button icon="paper-tabs:chevron-right" class$="[[_computeScrollButtonClass(_rightHidden, scrollable, hideScrollButtons)]]" on-up="_onScrollButtonUp" on-down="_onRightScrollButtonDown"></paper-icon-button>
<paper-icon-button icon="paper-tabs:chevron-right" class$="[[_computeScrollButtonClass(_rightHidden, scrollable, hideScrollButtons)]]" on-up="_onScrollButtonUp" on-down="_onRightScrollButtonDown" tabindex="-1"></paper-icon-button>
</template>
@ -18749,23 +18752,6 @@ paper-ripple {
attached: function() {
this._isReady = true;
// Don't stomp over a user-set aria-label.
if (!this.getAttribute('aria-label')) {
this.updateAriaLabel();
}
},
/**
* Update the checkbox aria-label. This is a temporary workaround not
* being able to observe changes in <content>
* (see: https://github.com/Polymer/polymer/issues/1773)
*
* Call this if you manually change the contents of the checkbox
* and want the aria-label to match the new contents.
*/
updateAriaLabel: function() {
this.setAttribute('aria-label', Polymer.dom(this).textContent.trim());
},
// button-behavior hook