diff --git a/dashboard-ui/bower_components/iron-resizable-behavior/.bower.json b/dashboard-ui/bower_components/iron-resizable-behavior/.bower.json index 1f0548f3d7..9ae5e84c7e 100644 --- a/dashboard-ui/bower_components/iron-resizable-behavior/.bower.json +++ b/dashboard-ui/bower_components/iron-resizable-behavior/.bower.json @@ -27,14 +27,14 @@ "web-component-tester": "*", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, - "homepage": "https://github.com/polymerelements/iron-resizable-behavior", + "homepage": "https://github.com/PolymerElements/iron-resizable-behavior", "_release": "1.0.2", "_resolution": { "type": "version", "tag": "v1.0.2", "commit": "85de8ba28be2bf17c81d6436ef1119022b003674" }, - "_source": "git://github.com/polymerelements/iron-resizable-behavior.git", + "_source": "git://github.com/PolymerElements/iron-resizable-behavior.git", "_target": "^1.0.0", - "_originalSource": "polymerelements/iron-resizable-behavior" + "_originalSource": "PolymerElements/iron-resizable-behavior" } \ No newline at end of file diff --git a/dashboard-ui/bower_components/paper-radio-button/.bower.json b/dashboard-ui/bower_components/paper-radio-button/.bower.json new file mode 100644 index 0000000000..b0e8f9b031 --- /dev/null +++ b/dashboard-ui/bower_components/paper-radio-button/.bower.json @@ -0,0 +1,45 @@ +{ + "name": "paper-radio-button", + "version": "1.0.5", + "description": "A material design radio button", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "radio", + "control" + ], + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-radio-button" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/paper-radio-button", + "ignore": [], + "dependencies": { + "paper-ripple": "PolymerElements/paper-ripple#^1.0.0", + "paper-styles": "PolymerLabs/paper-styles#^1.0.0", + "paper-behaviors": "PolymerElements/paper-behaviors#^1.0.0", + "polymer": "Polymer/polymer#^1.0.0" + }, + "devDependencies": { + "web-component-tester": "*", + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + }, + "_release": "1.0.5", + "_resolution": { + "type": "version", + "tag": "v1.0.5", + "commit": "05cd3c675d1e807362d2e72c83d3ae34c5d120a9" + }, + "_source": "git://github.com/PolymerElements/paper-radio-button.git", + "_target": "~1.0.5", + "_originalSource": "PolymerElements/paper-radio-button", + "_direct": true +} \ No newline at end of file diff --git a/dashboard-ui/bower_components/paper-radio-button/.gitignore b/dashboard-ui/bower_components/paper-radio-button/.gitignore new file mode 100644 index 0000000000..8d4ae2536a --- /dev/null +++ b/dashboard-ui/bower_components/paper-radio-button/.gitignore @@ -0,0 +1 @@ +bower_components diff --git a/dashboard-ui/bower_components/paper-radio-button/bower.json b/dashboard-ui/bower_components/paper-radio-button/bower.json new file mode 100644 index 0000000000..b6a2bad255 --- /dev/null +++ b/dashboard-ui/bower_components/paper-radio-button/bower.json @@ -0,0 +1,35 @@ +{ + "name": "paper-radio-button", + "version": "1.0.5", + "description": "A material design radio button", + "authors": [ + "The Polymer Authors" + ], + "keywords": [ + "web-components", + "polymer", + "radio", + "control" + ], + "private": true, + "repository": { + "type": "git", + "url": "git://github.com/PolymerElements/paper-radio-button" + }, + "license": "http://polymer.github.io/LICENSE.txt", + "homepage": "https://github.com/PolymerElements/paper-radio-button", + "ignore": [], + "dependencies": { + "paper-ripple": "PolymerElements/paper-ripple#^1.0.0", + "paper-styles": "PolymerLabs/paper-styles#^1.0.0", + "paper-behaviors": "PolymerElements/paper-behaviors#^1.0.0", + "polymer": "Polymer/polymer#^1.0.0" + }, + "devDependencies": { + "web-component-tester": "*", + "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "test-fixture": "PolymerElements/test-fixture#^1.0.0", + "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", + "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" + } +} diff --git a/dashboard-ui/bower_components/paper-radio-button/demo/index.html b/dashboard-ui/bower_components/paper-radio-button/demo/index.html new file mode 100644 index 0000000000..b79501b7d2 --- /dev/null +++ b/dashboard-ui/bower_components/paper-radio-button/demo/index.html @@ -0,0 +1,93 @@ + + + + + paper-radio-button demo + + + + + + + + + + + + +
+
+

Enabled

+
+ Oxygen + Carbon + Hydrogen + Nitrogen + Calcium +
+
+ +
+

Disabled

+
+ Oxygen + Carbon + Hydrogen + Nitrogen + Calcium +
+
+ +
+

Color

+
+ Oxygen + Carbon + Hydrogen + Nitrogen + Calcium +
+
+
+ + diff --git a/dashboard-ui/bower_components/paper-radio-button/hero.svg b/dashboard-ui/bower_components/paper-radio-button/hero.svg new file mode 100644 index 0000000000..7fbac94dd7 --- /dev/null +++ b/dashboard-ui/bower_components/paper-radio-button/hero.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/dashboard-ui/bower_components/paper-radio-button/index.html b/dashboard-ui/bower_components/paper-radio-button/index.html new file mode 100644 index 0000000000..a564b412af --- /dev/null +++ b/dashboard-ui/bower_components/paper-radio-button/index.html @@ -0,0 +1,29 @@ + + + + + + + + + paper-radio-button + + + + + + + + + + + + + diff --git a/dashboard-ui/bower_components/paper-radio-button/paper-radio-button.css b/dashboard-ui/bower_components/paper-radio-button/paper-radio-button.css new file mode 100644 index 0000000000..852296ee0d --- /dev/null +++ b/dashboard-ui/bower_components/paper-radio-button/paper-radio-button.css @@ -0,0 +1,111 @@ +/* +Copyright (c) 2015 The Polymer Project Authors. All rights reserved. +This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt +The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt +The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt +Code distributed by Google as part of the polymer project is also +subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt +*/ + +:host { + display: inline-block; + white-space: nowrap; +} + +:host(:focus) { + outline: none; +} + +#radioContainer { + display: inline-block; + position: relative; + width: 16px; + height: 16px; + cursor: pointer; + vertical-align: middle; +} + +:host #ink { + position: absolute; + top: -16px; + left: -16px; + width: 48px; + height: 48px; + color: var(--paper-radio-button-unchecked-ink-color, --primary-text-color); + opacity: 0.6; + pointer-events: none; +} + +:host #ink[checked] { + color: var(--paper-radio-button-checked-ink-color, --default-primary-color); +} + +:host #offRadio { + position: absolute; + top: 0px; + left: 0px; + width: 12px; + height: 12px; + border-radius: 50%; + border: solid 2px; + background-color: var(--paper-radio-button-unchecked-background-color, transparent); + border-color: var(--paper-radio-button-unchecked-color, --primary-text-color); + transition: border-color 0.28s; +} + +:host #onRadio { + position: absolute; + top: 4px; + left: 4px; + width: 8px; + height: 8px; + border-radius: 50%; + background-color: var(--paper-radio-button-checked-color, --default-primary-color); + -webkit-transform: scale(0); + transform: scale(0); + transition: -webkit-transform ease 0.28s; + transition: transform ease 0.28s; +} + +:host([checked]) #offRadio { + border-color: var(--paper-radio-button-checked-color, --default-primary-color); +} + +:host([checked]) #onRadio { + -webkit-transform: scale(1); + transform: scale(1); +} + +#radioLabel { + position: relative; + display: inline-block; + vertical-align: middle; + margin-left: 10px; + white-space: normal; + pointer-events: none; + color: var(--paper-radio-button-label-color, --primary-text-color); +} + +#radioLabel[hidden] { + display: none; +} + +/* disabled state */ +:host([disabled]) { + pointer-events: none; +} + +:host([disabled]) #offRadio { + border-color: var(--paper-radio-button-unchecked-color, --primary-text-color); + opacity: 0.5; +} + +:host([disabled][checked]) #onRadio { + background-color: var(--paper-radio-button-unchecked-color, --primary-text-color); + opacity: 0.5; +} + +:host([disabled]) #radioLabel { + /* slightly darker than the button, so that it's readable */ + opacity: 0.65; +} diff --git a/dashboard-ui/bower_components/paper-radio-button/paper-radio-button.html b/dashboard-ui/bower_components/paper-radio-button/paper-radio-button.html new file mode 100644 index 0000000000..781ea10771 --- /dev/null +++ b/dashboard-ui/bower_components/paper-radio-button/paper-radio-button.html @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + diff --git a/dashboard-ui/bower_components/paper-radio-button/test/basic.html b/dashboard-ui/bower_components/paper-radio-button/test/basic.html new file mode 100644 index 0000000000..6851d3d51b --- /dev/null +++ b/dashboard-ui/bower_components/paper-radio-button/test/basic.html @@ -0,0 +1,101 @@ + + + + + + paper-radio-button basic tests + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dashboard-ui/bower_components/paper-radio-button/test/index.html b/dashboard-ui/bower_components/paper-radio-button/test/index.html new file mode 100644 index 0000000000..bc6ad6e08f --- /dev/null +++ b/dashboard-ui/bower_components/paper-radio-button/test/index.html @@ -0,0 +1,24 @@ + + + + + + + paper-radio-button tests + + + + + + diff --git a/dashboard-ui/bower_components/requirejs/.bower.json b/dashboard-ui/bower_components/requirejs/.bower.json index 2b3967d632..0da5fbf063 100644 --- a/dashboard-ui/bower_components/requirejs/.bower.json +++ b/dashboard-ui/bower_components/requirejs/.bower.json @@ -1,6 +1,7 @@ { "name": "requirejs", - "version": "2.1.19", + "version": "2.1.20", + "ignore": [], "homepage": "http://requirejs.org", "authors": [ "jrburke.com" @@ -14,14 +15,13 @@ "BSD-3-Clause", "MIT" ], - "_release": "2.1.19", + "_release": "2.1.20", "_resolution": { "type": "version", - "tag": "2.1.19", - "commit": "0616d2b7899c058419342c6dff56ca6ad9f04955" + "tag": "2.1.20", + "commit": "eaec2af816f2550c0a4a2b69a4f3a635aec48d29" }, "_source": "git://github.com/jrburke/requirejs-bower.git", "_target": "~2.1.19", - "_originalSource": "requirejs", - "_direct": true + "_originalSource": "requirejs" } \ No newline at end of file diff --git a/dashboard-ui/bower_components/requirejs/bower.json b/dashboard-ui/bower_components/requirejs/bower.json index f86e3d81ef..d008e02d68 100644 --- a/dashboard-ui/bower_components/requirejs/bower.json +++ b/dashboard-ui/bower_components/requirejs/bower.json @@ -1,6 +1,7 @@ { "name": "requirejs", "version": "2.1.19", + "ignore": [], "homepage": "http://requirejs.org", "authors": [ "jrburke.com" diff --git a/dashboard-ui/bower_components/requirejs/require.js b/dashboard-ui/bower_components/requirejs/require.js index a3e74da0b2..5237640495 100644 --- a/dashboard-ui/bower_components/requirejs/require.js +++ b/dashboard-ui/bower_components/requirejs/require.js @@ -1,5 +1,5 @@ /** vim: et:ts=4:sw=4:sts=4 - * @license RequireJS 2.1.19 Copyright (c) 2010-2015, The Dojo Foundation All Rights Reserved. + * @license RequireJS 2.1.20 Copyright (c) 2010-2015, The Dojo Foundation All Rights Reserved. * Available via the MIT or new BSD license. * see: http://github.com/jrburke/requirejs for details */ @@ -12,7 +12,7 @@ var requirejs, require, define; (function (global) { var req, s, head, baseElement, dataMain, src, interactiveScript, currentlyAddingScript, mainScript, subPath, - version = '2.1.19', + version = '2.1.20', commentRegExp = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg, cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g, jsSuffixRegExp = /\.js$/, @@ -21,7 +21,6 @@ var requirejs, require, define; ostring = op.toString, hasOwn = op.hasOwnProperty, ap = Array.prototype, - apsp = ap.splice, isBrowser = !!(typeof window !== 'undefined' && typeof navigator !== 'undefined' && window.document), isWebWorker = !isBrowser && typeof importScripts !== 'undefined', //PS3 indicates loaded and complete, but need to wait for complete @@ -554,11 +553,13 @@ var requirejs, require, define; function takeGlobalQueue() { //Push all the globalDefQueue items into the context's defQueue if (globalDefQueue.length) { - //Array splice in the values since the context code has a - //local var ref to defQueue, so cannot just reassign the one - //on context. - apsp.apply(defQueue, - [defQueue.length, 0].concat(globalDefQueue)); + each(globalDefQueue, function(queueItem) { + var id = queueItem[0]; + if (typeof id === 'string') { + context.defQueueMap[id] = true; + } + defQueue.push(queueItem); + }); globalDefQueue = []; } } @@ -845,7 +846,10 @@ var requirejs, require, define; factory = this.factory; if (!this.inited) { - this.fetch(); + // Only fetch if not already in the defQueue. + if (!hasProp(context.defQueueMap, id)) { + this.fetch(); + } } else if (this.error) { this.emit('error', this.error); } else if (!this.defining) { @@ -1244,6 +1248,7 @@ var requirejs, require, define; callGetModule(args); } } + context.defQueueMap = {}; } context = { @@ -1253,6 +1258,7 @@ var requirejs, require, define; defined: defined, urlFetched: urlFetched, defQueue: defQueue, + defQueueMap: {}, Module: Module, makeModuleMap: makeModuleMap, nextTick: req.nextTick, @@ -1502,6 +1508,7 @@ var requirejs, require, define; defQueue.splice(i, 1); } }); + delete context.defQueueMap[id]; if (mod) { //Hold on to listeners in case the @@ -1563,6 +1570,7 @@ var requirejs, require, define; callGetModule(args); } + context.defQueueMap = {}; //Do this after the cycle of callGetModule in case the result //of those calls/init calls changes the registry. @@ -2067,7 +2075,12 @@ var requirejs, require, define; //where the module name is not known until the script onload event //occurs. If no context, use the global queue, and get it processed //in the onscript load callback. - (context ? context.defQueue : globalDefQueue).push([name, deps, callback]); + if (context) { + context.defQueue.push([name, deps, callback]); + context.defQueueMap[name] = true; + } else { + globalDefQueue.push([name, deps, callback]); + } }; define.amd = { diff --git a/dashboard-ui/forgotpassword.html b/dashboard-ui/forgotpassword.html index 3e4cf9ee9c..1ce4bc46f6 100644 --- a/dashboard-ui/forgotpassword.html +++ b/dashboard-ui/forgotpassword.html @@ -4,7 +4,7 @@ ${TitleForgotPassword} -
+
diff --git a/dashboard-ui/scripts/forgotpassword.js b/dashboard-ui/scripts/forgotpassword.js index a62115c9d9..e21abcc990 100644 --- a/dashboard-ui/scripts/forgotpassword.js +++ b/dashboard-ui/scripts/forgotpassword.js @@ -63,7 +63,9 @@ $(document).on('pageinitdepends', '#forgotPasswordPage', function () { - $('.forgotPasswordForm').off('submit', onSubmit).on('submit', onSubmit); + + var page = this; + $('.forgotPasswordForm', page).off('submit', onSubmit).on('submit', onSubmit); }); })(window); \ No newline at end of file diff --git a/dashboard-ui/scripts/mediacontroller.js b/dashboard-ui/scripts/mediacontroller.js index 8406451f02..47e3ef4d75 100644 --- a/dashboard-ui/scripts/mediacontroller.js +++ b/dashboard-ui/scripts/mediacontroller.js @@ -78,8 +78,9 @@ var playerInfo = MediaController.getPlayerInfo(); var html = ''; - html += '
'; + + html += '

' + Globalize.translate('HeaderSelectPlayer') + '

'; html += '
'; var checkedHtml; @@ -111,9 +112,7 @@ checkedHtml = isMirrorModeEnabled() ? ' checked="checked"' : ''; - html += '
'; - html += '' + Globalize.translate('OptionEnableDisplayMirroring') + ''; - html += '
'; + html += '
'; html += ''; @@ -124,84 +123,78 @@ var promise = MediaController.getTargets(); - var html = ''; + var html = '
'; - html += '

' + Globalize.translate('HeaderSelectPlayer') + '

'; - - html += ''; - html += '
'; - html += '
'; + html += '
'; + html += '
'; html += '

' + Globalize.translate('ButtonRemoteControl') + '

'; - html += '
'; html += '
'; $(document.body).append(html); require(['jqmicons']); - setTimeout(function () { + var elem = $('#playerSelectionPanel').panel({}).trigger('create').panel("open").on("panelclose", function () { - var elem = document.getElementById('playerSelectionPanel'); - elem.open(); + $(this).off("panelclose").remove(); + }); - promise.done(function (targets) { + promise.done(function (targets) { - $('.players', elem).html(getTargetsHtml(targets)).trigger('create'); + $('.players', elem).html(getTargetsHtml(targets)).trigger('create'); - $('.chkEnableMirrorMode', elem).on('change', function () { - setMirrorModeEnabled(this.checked); + $('.chkEnableMirrorMode', elem).on('change', function () { + setMirrorModeEnabled(this.checked); - if (this.checked && currentDisplayInfo) { + if (this.checked && currentDisplayInfo) { - mirrorItem(currentDisplayInfo); + mirrorItem(currentDisplayInfo); - } + } - }); + }); - $('.radioSelectPlayerTarget', elem).off('change').on('change', function () { + $('.radioSelectPlayerTarget', elem).off('change').on('change', function () { - var supportsMirror = this.getAttribute('data-mirror') == 'true'; + var supportsMirror = this.getAttribute('data-mirror') == 'true'; - if (supportsMirror) { - $('.fldMirrorMode', elem).show(); - } else { - $('.fldMirrorMode', elem).hide(); - } - - var playerName = this.getAttribute('data-playername'); - var targetId = this.getAttribute('data-targetid'); - var targetName = this.getAttribute('data-targetname'); - var deviceName = this.getAttribute('data-deviceName'); - var playableMediaTypes = this.getAttribute('data-mediatypes').split(','); - var supportedCommands = this.getAttribute('data-commands').split(','); - - MediaController.trySetActivePlayer(playerName, { - id: targetId, - name: targetName, - playableMediaTypes: playableMediaTypes, - supportedCommands: supportedCommands, - deviceName: deviceName - - }); - - if (currentDisplayInfo) { - - mirrorIfEnabled(currentDisplayInfo); - } - - }); - - if ($('.radioSelectPlayerTarget:checked', elem)[0].getAttribute('data-mirror') == 'true') { + if (supportsMirror) { $('.fldMirrorMode', elem).show(); } else { $('.fldMirrorMode', elem).hide(); } - }); - }, 350); + var playerName = this.getAttribute('data-playername'); + var targetId = this.getAttribute('data-targetid'); + var targetName = this.getAttribute('data-targetname'); + var deviceName = this.getAttribute('data-deviceName'); + var playableMediaTypes = this.getAttribute('data-mediatypes').split(','); + var supportedCommands = this.getAttribute('data-commands').split(','); + + MediaController.trySetActivePlayer(playerName, { + id: targetId, + name: targetName, + playableMediaTypes: playableMediaTypes, + supportedCommands: supportedCommands, + deviceName: deviceName + + }); + + if (currentDisplayInfo) { + + mirrorIfEnabled(currentDisplayInfo); + } + + }); + + if ($('.radioSelectPlayerTarget:checked', elem)[0].getAttribute('data-mirror') == 'true') { + $('.fldMirrorMode', elem).show(); + } else { + $('.fldMirrorMode', elem).hide(); + } + }); } function bindKeys(controller) { diff --git a/dashboard-ui/vulcanize-out.html b/dashboard-ui/vulcanize-out.html index 4bba1732bd..128a5c3fdb 100644 --- a/dashboard-ui/vulcanize-out.html +++ b/dashboard-ui/vulcanize-out.html @@ -6716,6 +6716,8 @@ this.fire('dom-change'); 'space:keyup': '_spaceKeyUpHandler', }, + _mouseEventRe: /^mouse/, + _tapHandler: function() { if (this.toggles) { // a tap is needed to toggle the active state @@ -6736,7 +6738,33 @@ this.fire('dom-change'); this.fire('change'); }, - _downHandler: function() { + _eventSourceIsPrimaryInput: function(event) { + event = event.detail.sourceEvent || event; + + // Always true for non-mouse events.... + if (!this._mouseEventRe.test(event.type)) { + return true; + } + + // http://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons + if ('buttons' in event) { + return event.buttons === 1; + } + + // http://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/which + if (typeof event.which === 'number') { + return event.which < 2; + } + + // http://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button + return event.button < 1; + }, + + _downHandler: function(event) { + if (!this._eventSourceIsPrimaryInput(event)) { + return; + } + this._setPointerDown(true); this._setPressed(true); this._setReceivedFocusFromKeyboard(false); @@ -12315,6 +12343,10 @@ is separate from validation, and `allowed-pattern` does not affect how the input + + + +