diff --git a/dashboard-ui/autoorganizelog.html b/dashboard-ui/autoorganizelog.html index ce2b094e6..563f3bc61 100644 --- a/dashboard-ui/autoorganizelog.html +++ b/dashboard-ui/autoorganizelog.html @@ -1,9 +1,8 @@ -
+
-
-
- - - - - - - - - - -
${HeaderDate}${HeaderSource}${HeaderDestination}
-
-
-
- ${LabelCompleted} -
- ${LabelFailed} -
- ${LabelSkipped} -
-
+ +
+ + + + + + + + + + + +
${HeaderDate}${HeaderSource}${HeaderDestination}
+
+
+
+
+ ${LabelCompleted} +
+ ${LabelFailed} +
+ ${LabelSkipped} +
+
+
diff --git a/dashboard-ui/autoorganizesmart.html b/dashboard-ui/autoorganizesmart.html index 26b68b72a..335f50136 100644 --- a/dashboard-ui/autoorganizesmart.html +++ b/dashboard-ui/autoorganizesmart.html @@ -1,4 +1,4 @@ -
+
diff --git a/dashboard-ui/autoorganizetv.html b/dashboard-ui/autoorganizetv.html index 308de1af4..4810f0187 100644 --- a/dashboard-ui/autoorganizetv.html +++ b/dashboard-ui/autoorganizetv.html @@ -1,5 +1,4 @@ -
- +
@@ -8,48 +7,52 @@

${AutoOrganizeHelp}

${AutoOrganizeTvHelp}

-
    -
  • -
    - ${OptionEnableEpisodeOrganization} -
  • -
  • - - -
    -
    ${LabelWatchFolderHelp}
    +
    + +
    +
    +
    +
    + +
    ${LabelWatchFolderHelp}
    -
  • -
  • - -
    ${LabelMinFileSizeForOrganizeHelp}
    -
  • -
  • - -
    -
  • -
  • - -
  • -

+ +
+
+
+ +
${LabelMinFileSizeForOrganizeHelp}
+
+
+ +
+
+
+ +
+
+ +

-
- +
+
-
-
- +
+

${HeaderSupportedPatterns}

- +
@@ -129,35 +132,33 @@

-
    -
  • - - -
    ${LabelTransferMethodHelp}
    -
  • -
  • -
    - ${OptionOverwriteExistingEpisodes} -
  • -
  • - -
    ${LabelDeleteLeftOverFilesHelp}
    -
  • -
  • - ${LabelDeleteEmptyFolders} -
    ${LabelDeleteEmptyFoldersHelp}
    -
  • -
- -
    -
  • - -
  • - -
+
+ +
${LabelTransferMethodHelp}
+
+
+ +
+
+ +
${LabelDeleteLeftOverFilesHelp}
+
+
+ +
${LabelDeleteEmptyFoldersHelp}
+
+
+ +
diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index 5fa92725d..cb026748a 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json +++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json @@ -14,12 +14,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.4.176", - "_release": "1.4.176", + "version": "1.4.178", + "_release": "1.4.178", "_resolution": { "type": "version", - "tag": "1.4.176", - "commit": "a69a071e40e18eb0f20b800f27de8f1c62c38fec" + "tag": "1.4.178", + "commit": "7c624942d8f173858375ee1b3dfe735a82245af6" }, "_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_target": "^1.2.1", diff --git a/dashboard-ui/bower_components/emby-webcomponents/emby-collapse/emby-collapse.css b/dashboard-ui/bower_components/emby-webcomponents/emby-collapse/emby-collapse.css index 9556fdf2a..86e4d811c 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/emby-collapse/emby-collapse.css +++ b/dashboard-ui/bower_components/emby-webcomponents/emby-collapse/emby-collapse.css @@ -4,7 +4,7 @@ .collapseContent { border-width: 0 1px 1px 1px; - padding: 1em 1.25em; + padding: 1.25em 1.25em; height: 0; transition-property: height; transition-duration: 300ms; diff --git a/dashboard-ui/bower_components/emby-webcomponents/emby-input/emby-input.css b/dashboard-ui/bower_components/emby-webcomponents/emby-input/emby-input.css index 7eae6f2bf..5de2c6637 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/emby-input/emby-input.css +++ b/dashboard-ui/bower_components/emby-webcomponents/emby-input/emby-input.css @@ -11,13 +11,12 @@ box-sizing: border-box; /* Remove select styling */ /* Font size must the 16px or larger to prevent iOS page zoom on focus */ - font-size: inherit; + font-size: 110%; /* General select styles: change as needed */ font-family: inherit; font-weight: inherit; color: inherit; padding: .35em 0 .3em 0; - cursor: pointer; outline: none !important; width: 100%; background-color: transparent; @@ -35,7 +34,7 @@ .inputLabel-float { transform-origin: left top; - transform: scale(1.3,1.3) translateY(86%); + transform: scale(1.25,1.25) translateY(94%); } .inputLabelFocused { diff --git a/dashboard-ui/bower_components/emby-webcomponents/emby-input/emby-input.js b/dashboard-ui/bower_components/emby-webcomponents/emby-input/emby-input.js index 585bf1d0f..94baee656 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/emby-input/emby-input.js +++ b/dashboard-ui/bower_components/emby-webcomponents/emby-input/emby-input.js @@ -46,8 +46,9 @@ var label = this.ownerDocument.createElement('label'); label.innerHTML = this.getAttribute('label') || ''; label.classList.add('inputLabel'); + label.classList.add('inputLabelUnfocused'); - var instanceSupportsFloat = supportsFloatingLabel && this.type != 'date'; + var instanceSupportsFloat = supportsFloatingLabel && this.type != 'date' && this.type != 'time'; label.htmlFor = this.id; parentNode.insertBefore(label, this); diff --git a/dashboard-ui/bower_components/emby-webcomponents/emby-select/emby-select.css b/dashboard-ui/bower_components/emby-webcomponents/emby-select/emby-select.css index 7a370cb1f..2ce005392 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/emby-select/emby-select.css +++ b/dashboard-ui/bower_components/emby-webcomponents/emby-select/emby-select.css @@ -11,7 +11,7 @@ box-sizing: border-box; /* Remove select styling */ /* Font size must the 16px or larger to prevent iOS page zoom on focus */ - font-size: inherit; + font-size: 110%; /* General select styles: change as needed */ font-family: inherit; font-weight: inherit; diff --git a/dashboard-ui/bower_components/emby-webcomponents/emby-tabs/emby-tabs.css b/dashboard-ui/bower_components/emby-webcomponents/emby-tabs/emby-tabs.css index 6fb8fa488..731cb4ab4 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/emby-tabs/emby-tabs.css +++ b/dashboard-ui/bower_components/emby-webcomponents/emby-tabs/emby-tabs.css @@ -1,7 +1,7 @@ .emby-tab-button { background: transparent; - border: 2px solid transparent !important; - border-width: 0 0 2px 0 !important; + border: 2px solid transparent; + border-width: 0 0 2px 0; cursor: pointer; outline: none !important; width: auto; @@ -24,13 +24,13 @@ overflow: hidden; } -.emby-tab-button:focus { - font-weight: bold !important; -} + .emby-tab-button:focus { + font-weight: bold !important; + } .emby-tab-button-active { color: #52B54B !important; - border-color: #52B54B !important; + border-color: #52B54B; } .emby-tabs-slider { diff --git a/dashboard-ui/bower_components/emby-webcomponents/focusmanager.js b/dashboard-ui/bower_components/emby-webcomponents/focusmanager.js index e5370a478..9e0c02707 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/focusmanager.js +++ b/dashboard-ui/bower_components/emby-webcomponents/focusmanager.js @@ -171,8 +171,6 @@ define(['dom'], function (dom) { function getWindowData(win, documentElement) { return { - pageYOffset: win.pageYOffset, - pageXOffset: win.pageXOffset, clientTop: documentElement.clientTop, clientLeft: documentElement.clientLeft }; @@ -180,16 +178,25 @@ define(['dom'], function (dom) { function getOffset(elem, windowData) { - var box = { top: 0, left: 0 }; + var box; // Support: BlackBerry 5, iOS 3 (original iPhone) // If we don't have gBCR, just use 0,0 rather than error if (elem.getBoundingClientRect) { box = elem.getBoundingClientRect(); + } else { + box = { + top: 0, + left: 0, + width: 0, + height: 0 + }; } return { - top: box.top + windowData.pageYOffset - windowData.clientTop, - left: box.left + windowData.pageXOffset - windowData.clientLeft + top: box.top - windowData.clientTop, + left: box.left - windowData.clientLeft, + width: box.width, + height: box.height }; } @@ -197,11 +204,13 @@ define(['dom'], function (dom) { var offset = getOffset(elem, windowData); - var posY = offset.top - windowData.pageYOffset; - var posX = offset.left - windowData.pageXOffset; + var posY = offset.top; + var posX = offset.left; - var width = elem.offsetWidth; - var height = elem.offsetHeight; + var width = offset.width; + var height = offset.height; + //var width = elem.offsetWidth; + //var height = elem.offsetHeight; return { left: posX, diff --git a/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js b/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js index e9567d853..c9012b9cd 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js +++ b/dashboard-ui/bower_components/emby-webcomponents/guide/guide.js @@ -407,8 +407,7 @@ // Normally we'd want to just let responsive css handle this, // but since mobile browsers are often underpowered, // it can help performance to get them out of the markup - var showIndicators = window.innerWidth >= 800; - showIndicators = false; + var showIndicators = false; var options = { showHdIcon: showIndicators, diff --git a/dashboard-ui/bower_components/emby-webcomponents/require/requirecss.js b/dashboard-ui/bower_components/emby-webcomponents/require/requirecss.js index 83a82972d..4f9063f8f 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/require/requirecss.js +++ b/dashboard-ui/bower_components/emby-webcomponents/require/requirecss.js @@ -35,7 +35,7 @@ define(function () { var url = cssId + '.css'; - if (url.indexOf('http') != 0 && url.indexOf('file:') != 0) { + if (url.indexOf('://') == -1) { url = config.baseUrl + url; } diff --git a/dashboard-ui/bower_components/emby-webcomponents/router.js b/dashboard-ui/bower_components/emby-webcomponents/router.js index 1c5a8f949..3fac504c0 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/router.js +++ b/dashboard-ui/bower_components/emby-webcomponents/router.js @@ -557,18 +557,33 @@ define(['loading', 'viewManager', 'skinManager', 'pluginManager', 'backdrop', 'b return allRoutes; } + var backdropContainer; + var backgroundContainer; function setTransparency(level) { + if (!backdropContainer) { + backdropContainer = document.querySelector('.backdropContainer'); + } + if (!backgroundContainer) { + backgroundContainer = document.querySelector('.backgroundContainer'); + } + if (level == 'full' || level == Emby.TransparencyLevel.Full) { backdrop.clear(true); document.documentElement.classList.add('transparentDocument'); + backgroundContainer.classList.add('backgroundContainer-transparent'); + backdropContainer.classList.add('hide'); } else if (level == 'backdrop' || level == Emby.TransparencyLevel.Backdrop) { backdrop.externalBackdrop(true); document.documentElement.classList.add('transparentDocument'); + backgroundContainer.classList.add('backgroundContainer-transparent'); + backdropContainer.classList.add('hide'); } else { backdrop.externalBackdrop(false); document.documentElement.classList.remove('transparentDocument'); + backgroundContainer.classList.remove('backgroundContainer-transparent'); + backdropContainer.classList.remove('hide'); } } diff --git a/dashboard-ui/bower_components/emby-webcomponents/scroller/smoothscroller.js b/dashboard-ui/bower_components/emby-webcomponents/scroller/smoothscroller.js index 6f66bbe0f..d72e4c415 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/scroller/smoothscroller.js +++ b/dashboard-ui/bower_components/emby-webcomponents/scroller/smoothscroller.js @@ -475,7 +475,7 @@ define(['browser', 'layoutManager', 'dom', 'scrollStyles'], function (browser, l }; }; - self.getCenterPosition = function(item) { + self.getCenterPosition = function (item) { var pos = self.getPos(item); return within(pos.center, pos.start, pos.end); @@ -664,11 +664,15 @@ define(['browser', 'layoutManager', 'dom', 'scrollStyles'], function (browser, l // Bind dragging events if (isTouch) { dragTouchEvents.forEach(function (eventName) { - document.addEventListener(eventName, dragHandler); + dom.addEventListener(document, eventName, dragHandler, { + passive: true + }); }); } else { dragMouseEvents.forEach(function (eventName) { - document.addEventListener(eventName, dragHandler); + dom.addEventListener(document, eventName, dragHandler, { + passive: true + }); }); } @@ -753,11 +757,15 @@ define(['browser', 'layoutManager', 'dom', 'scrollStyles'], function (browser, l if (dragging.touch) { dragTouchEvents.forEach(function (eventName) { - document.removeEventListener(eventName, dragHandler); + dom.removeEventListener(document, eventName, dragHandler, { + passive: true + }); }); } else { dragMouseEvents.forEach(function (eventName) { - document.removeEventListener(eventName, dragHandler); + dom.removeEventListener(document, eventName, dragHandler, { + passive: true + }); }); } @@ -853,7 +861,10 @@ define(['browser', 'layoutManager', 'dom', 'scrollStyles'], function (browser, l */ self.destroy = function () { - window.removeEventListener('resize', onResize, true); + dom.removeEventListener(window, 'resize', onResize, { + passive: true, + capture: true + }); // Reset native FRAME element scroll dom.removeEventListener(frameElement, 'scroll', resetScroll, { @@ -934,7 +945,10 @@ define(['browser', 'layoutManager', 'dom', 'scrollStyles'], function (browser, l dragSourceElement.addEventListener('mousedown', dragInitSlidee); if (!o.scrollWidth) { - window.addEventListener('resize', onResize, true); + dom.addEventListener(window, 'resize', onResize, { + passive: true, + capture: true + }); } if (!o.horizontal) { diff --git a/dashboard-ui/bower_components/emby-webcomponents/thememediaplayer.js b/dashboard-ui/bower_components/emby-webcomponents/thememediaplayer.js new file mode 100644 index 000000000..c2099c231 --- /dev/null +++ b/dashboard-ui/bower_components/emby-webcomponents/thememediaplayer.js @@ -0,0 +1,100 @@ +define(['playbackManager', 'browser'], function (playbackManager, browser) { + + var currentOwnerId; + var currentThemeIds = []; + + function playThemeMedia(items, ownerId) { + + if (items.length) { + + // Stop if a theme song from another ownerId + // Leave it alone if anything else (e.g user playing a movie) + if (!currentOwnerId && playbackManager.isPlaying()) { + return; + } + + currentThemeIds = items.map(function (i) { + return i.Id; + }); + + currentOwnerId = ownerId; + + if (enabled(items[0].MediaType)) { + playbackManager.play({ + items: items, + fullscreen: false + }); + } + + } else { + + if (currentOwnerId) { + playbackManager.stop(); + } + + currentOwnerId = null; + } + } + + function enabled(mediaType) { + + if (mediaType == 'Video') { + // too slow + if (browser.slow) { + return false; + } + } + + return true; + } + + function loadThemeMedia(item) { + + require(['connectionManager'], function (connectionManager) { + + var apiClient = connectionManager.currentApiClient(); + apiClient.getThemeMedia(apiClient.getCurrentUserId(), item.Id, true).then(function (themeMediaResult) { + + var ownerId = themeMediaResult.ThemeVideosResult.Items.length ? themeMediaResult.ThemeVideosResult.OwnerId : themeMediaResult.ThemeSongsResult.OwnerId; + + if (ownerId != currentOwnerId) { + + var items = themeMediaResult.ThemeVideosResult.Items.length ? themeMediaResult.ThemeVideosResult.Items : themeMediaResult.ThemeSongsResult.Items; + + playThemeMedia(items, ownerId); + } + }); + + }); + } + + document.addEventListener('viewshow', function (e) { + + var state = e.detail.state || {}; + var item = state.item; + + if (item) { + loadThemeMedia(item); + return; + } + + var viewOptions = e.detail.options || {}; + + if (viewOptions.supportsThemeMedia) { + // Do nothing here, allow it to keep playing + } + else { + playThemeMedia([], null); + } + + }, true); + + //Events.on(Emby.PlaybackManager, 'playbackstart', function (e, player) { + // var item = Emby.PlaybackManager.currentItem(player); + // // User played something manually + // if (currentThemeIds.indexOf(item.Id) == -1) { + // currentOwnerId = null; + // } + //}); + +}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/viewmanager/viewcontainer-lite.js b/dashboard-ui/bower_components/emby-webcomponents/viewmanager/viewcontainer-lite.js index 35113f2fc..ca3b6ffb7 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/viewmanager/viewcontainer-lite.js +++ b/dashboard-ui/bower_components/emby-webcomponents/viewmanager/viewcontainer-lite.js @@ -8,6 +8,10 @@ define(['browser', 'css!./viewcontainer-lite'], function (browser) { function enableAnimation() { + if (browser.animate) { + return true; + } + if (browser.tv) { return false; } @@ -261,7 +265,7 @@ define(['browser', 'css!./viewcontainer-lite'], function (browser) { selectedPageIndex = -1; } - if (enableAnimation() && !browser.animate) { + if (enableAnimation()) { require(['webAnimations']); } diff --git a/dashboard-ui/bower_components/iron-autogrow-textarea/.bower.json b/dashboard-ui/bower_components/iron-autogrow-textarea/.bower.json deleted file mode 100644 index e143ff52a..000000000 --- a/dashboard-ui/bower_components/iron-autogrow-textarea/.bower.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "iron-autogrow-textarea", - "version": "1.0.13", - "description": "A textarea element that automatically grows with input", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "input", - "textarea" - ], - "main": "iron-autogrow-textarea.html", - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-autogrow-textarea.git" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/iron-autogrow-textarea", - "ignore": [], - "dependencies": { - "iron-behaviors": "PolymerElements/iron-behaviors#^1.0.0", - "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", - "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#^1.0.0", - "iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#^1.0.0", - "polymer": "Polymer/polymer#^1.1.0" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", - "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "^4.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "_release": "1.0.13", - "_resolution": { - "type": "version", - "tag": "v1.0.13", - "commit": "399cfdbb3fac0c7b61d14a8cf8402c0195b0ff04" - }, - "_source": "git://github.com/PolymerElements/iron-autogrow-textarea.git", - "_target": "^1.0.0", - "_originalSource": "PolymerElements/iron-autogrow-textarea" -} \ No newline at end of file diff --git a/dashboard-ui/bower_components/iron-autogrow-textarea/.github/ISSUE_TEMPLATE.md b/dashboard-ui/bower_components/iron-autogrow-textarea/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 0b70c29de..000000000 --- a/dashboard-ui/bower_components/iron-autogrow-textarea/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/dashboard-ui/bower_components/iron-autogrow-textarea/.gitignore b/dashboard-ui/bower_components/iron-autogrow-textarea/.gitignore deleted file mode 100644 index 8d4ae2536..000000000 --- a/dashboard-ui/bower_components/iron-autogrow-textarea/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components diff --git a/dashboard-ui/bower_components/iron-autogrow-textarea/.travis.yml b/dashboard-ui/bower_components/iron-autogrow-textarea/.travis.yml deleted file mode 100644 index d7b930010..000000000 --- a/dashboard-ui/bower_components/iron-autogrow-textarea/.travis.yml +++ /dev/null @@ -1,23 +0,0 @@ -language: node_js -sudo: required -before_script: -- npm install -g bower polylint web-component-tester -- bower install -- polylint -env: - global: - - secure: TqFz1Cdu4BtLCHYLFPES0q+6wPfCnj9bnTfven9LIU+gtek70FPDT3UlnviNwp5ob3o0sbLgsLWG5OkCsRHli+HCgPEVDazSrghfwaT9mL+h/DlM/PVB079VDdIKvZM6L7xEF0zPv7t26kljBRQcZJ81O3K7h1mNjeBj6sDXHzE= - - secure: ihYM52Uu3H7FGU+x+f+hzMcWt00B7l6GZOtxzT1xYx4hb4E9/WwXYR5z9bqN+s5p10yf3FG64zbmMTuJeBvknDpSyBt/vKP+QBBZT0hxv05GifS38hiSoYT3HBxEpwhYdpjlsSJtIbKfYGR3xIXutRzRrRKSYigcrQNX83MGWFY= -node_js: stable -addons: - firefox: '46.0' - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true -script: -- xvfb-run wct -- if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then wct -s 'default'; fi -dist: trusty diff --git a/dashboard-ui/bower_components/iron-autogrow-textarea/CONTRIBUTING.md b/dashboard-ui/bower_components/iron-autogrow-textarea/CONTRIBUTING.md deleted file mode 100644 index 093090d43..000000000 --- a/dashboard-ui/bower_components/iron-autogrow-textarea/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/dashboard-ui/bower_components/iron-autogrow-textarea/bower.json b/dashboard-ui/bower_components/iron-autogrow-textarea/bower.json deleted file mode 100644 index 2622be998..000000000 --- a/dashboard-ui/bower_components/iron-autogrow-textarea/bower.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "iron-autogrow-textarea", - "version": "1.0.13", - "description": "A textarea element that automatically grows with input", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "input", - "textarea" - ], - "main": "iron-autogrow-textarea.html", - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-autogrow-textarea.git" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/iron-autogrow-textarea", - "ignore": [], - "dependencies": { - "iron-behaviors": "PolymerElements/iron-behaviors#^1.0.0", - "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", - "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#^1.0.0", - "iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#^1.0.0", - "polymer": "Polymer/polymer#^1.1.0" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", - "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "^4.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/dashboard-ui/bower_components/iron-autogrow-textarea/demo/index.html b/dashboard-ui/bower_components/iron-autogrow-textarea/demo/index.html deleted file mode 100644 index 525d90a43..000000000 --- a/dashboard-ui/bower_components/iron-autogrow-textarea/demo/index.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - iron-autogrow-textarea demo - - - - - - - - - -
-

An iron-autogrow-textarea grows automatically as more text is entered

- - - - -

The maximum height can be controlled either through the max-rows - property, or through a fixed max height

- - - - -

The initial height can also be controlled using the rows property, - or through a fixed height

- - - - -

Example of updating the value imperatively

- -
- -
-
- - - diff --git a/dashboard-ui/bower_components/iron-autogrow-textarea/hero.svg b/dashboard-ui/bower_components/iron-autogrow-textarea/hero.svg deleted file mode 100644 index 19ec70a05..000000000 --- a/dashboard-ui/bower_components/iron-autogrow-textarea/hero.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/iron-autogrow-textarea/index.html b/dashboard-ui/bower_components/iron-autogrow-textarea/index.html deleted file mode 100644 index 3be2964fa..000000000 --- a/dashboard-ui/bower_components/iron-autogrow-textarea/index.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - iron-autogrow-textarea - - - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/iron-autogrow-textarea/iron-autogrow-textarea.html b/dashboard-ui/bower_components/iron-autogrow-textarea/iron-autogrow-textarea.html deleted file mode 100644 index d3ff0741d..000000000 --- a/dashboard-ui/bower_components/iron-autogrow-textarea/iron-autogrow-textarea.html +++ /dev/null @@ -1,353 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/iron-autogrow-textarea/test/basic.html b/dashboard-ui/bower_components/iron-autogrow-textarea/test/basic.html deleted file mode 100644 index 51f3abab7..000000000 --- a/dashboard-ui/bower_components/iron-autogrow-textarea/test/basic.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - iron-autogrow-textarea tests - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/iron-autogrow-textarea/test/index.html b/dashboard-ui/bower_components/iron-autogrow-textarea/test/index.html deleted file mode 100644 index c4c521599..000000000 --- a/dashboard-ui/bower_components/iron-autogrow-textarea/test/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - iron-autogrow-textarea tests - - - - - - - diff --git a/dashboard-ui/bower_components/iron-input/.bower.json b/dashboard-ui/bower_components/iron-input/.bower.json deleted file mode 100644 index 28b0a135d..000000000 --- a/dashboard-ui/bower_components/iron-input/.bower.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "iron-input", - "version": "1.0.10", - "description": "An input element with data binding", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "input" - ], - "main": "iron-input.html", - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-input.git" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/iron-input", - "ignore": [], - "dependencies": { - "iron-a11y-announcer": "PolymerElements/iron-a11y-announcer#^1.0.0", - "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.2", - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-validator-behavior": "PolymerElements/iron-validator-behavior#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "_release": "1.0.10", - "_resolution": { - "type": "version", - "tag": "1.0.10", - "commit": "01d17407672ad8033ee447c9c7a65162f13c8f49" - }, - "_source": "git://github.com/PolymerElements/iron-input.git", - "_target": "^1.0.0", - "_originalSource": "PolymerElements/iron-input" -} \ No newline at end of file diff --git a/dashboard-ui/bower_components/iron-input/.github/ISSUE_TEMPLATE.md b/dashboard-ui/bower_components/iron-input/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index b01fd73e1..000000000 --- a/dashboard-ui/bower_components/iron-input/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/dashboard-ui/bower_components/iron-input/.gitignore b/dashboard-ui/bower_components/iron-input/.gitignore deleted file mode 100644 index 8d4ae2536..000000000 --- a/dashboard-ui/bower_components/iron-input/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components diff --git a/dashboard-ui/bower_components/iron-input/.travis.yml b/dashboard-ui/bower_components/iron-input/.travis.yml deleted file mode 100644 index 05aea78b0..000000000 --- a/dashboard-ui/bower_components/iron-input/.travis.yml +++ /dev/null @@ -1,23 +0,0 @@ -language: node_js -sudo: required -before_script: - - npm install -g bower polylint web-component-tester - - bower install - - polylint -env: - global: - - secure: AnFRDBxxASn2RP4u+CHJS04g2klVTM+YL1fgNfkNIiECChymGRkeBiF7zvWPfodqPGKWhBZPAMxVuFKbztawQ95kWlbPSTNJtWhHhPcRarV5AYvjhyUV372E3REZ4CGt+T8nghD9bdJiMX5x0pXAz+wfBPPpiHwbiSPPjFLFvTs= - - secure: SvsE+VQL35CZ967ZVy0+7o5xclnBM8egjhsjNRG7WxVPZQboCQ3Xwm8tIDQSWeagM3ZQRkTGca4ta91F1ZEhm4Jdt5CwKhhSNC6JgS3CX819r9UKgUnSS3nvWdqcZq4GXcMoOZm4qE9ttd3xdoKCfkLRQlEGAvM2TEw69mBhj24= -node_js: stable -addons: - firefox: latest - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true -script: - - xvfb-run wct - - "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" -dist: trusty diff --git a/dashboard-ui/bower_components/iron-input/CONTRIBUTING.md b/dashboard-ui/bower_components/iron-input/CONTRIBUTING.md deleted file mode 100644 index f147978a3..000000000 --- a/dashboard-ui/bower_components/iron-input/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/dashboard-ui/bower_components/iron-input/bower.json b/dashboard-ui/bower_components/iron-input/bower.json deleted file mode 100644 index 018f4a163..000000000 --- a/dashboard-ui/bower_components/iron-input/bower.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "iron-input", - "version": "1.0.10", - "description": "An input element with data binding", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "input" - ], - "main": "iron-input.html", - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-input.git" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/iron-input", - "ignore": [], - "dependencies": { - "iron-a11y-announcer": "PolymerElements/iron-a11y-announcer#^1.0.0", - "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#^1.0.0", - "polymer": "Polymer/polymer#^1.0.0" - }, - "devDependencies": { - "paper-styles": "polymerelements/paper-styles#^1.0.2", - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-validator-behavior": "PolymerElements/iron-validator-behavior#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/dashboard-ui/bower_components/iron-input/demo/index.html b/dashboard-ui/bower_components/iron-input/demo/index.html deleted file mode 100644 index 59d37b2d9..000000000 --- a/dashboard-ui/bower_components/iron-input/demo/index.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - iron-input demo - - - - - - - - - - - - -
- -

only allows these characters: - !@#0123456789

- - -
- - - - - diff --git a/dashboard-ui/bower_components/iron-input/hero.svg b/dashboard-ui/bower_components/iron-input/hero.svg deleted file mode 100644 index 146ffeac6..000000000 --- a/dashboard-ui/bower_components/iron-input/hero.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/iron-input/index.html b/dashboard-ui/bower_components/iron-input/index.html deleted file mode 100644 index ca0dac066..000000000 --- a/dashboard-ui/bower_components/iron-input/index.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - iron-input - - - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/iron-input/iron-input.html b/dashboard-ui/bower_components/iron-input/iron-input.html deleted file mode 100644 index 3424b64a3..000000000 --- a/dashboard-ui/bower_components/iron-input/iron-input.html +++ /dev/null @@ -1,306 +0,0 @@ - - - - - - - diff --git a/dashboard-ui/bower_components/iron-input/test/disabled-input.html b/dashboard-ui/bower_components/iron-input/test/disabled-input.html deleted file mode 100644 index 06503e595..000000000 --- a/dashboard-ui/bower_components/iron-input/test/disabled-input.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - diff --git a/dashboard-ui/bower_components/iron-input/test/index.html b/dashboard-ui/bower_components/iron-input/test/index.html deleted file mode 100644 index 0e3c37ca5..000000000 --- a/dashboard-ui/bower_components/iron-input/test/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - iron-input tests - - - - - - - diff --git a/dashboard-ui/bower_components/iron-input/test/iron-input.html b/dashboard-ui/bower_components/iron-input/test/iron-input.html deleted file mode 100644 index fddf9ae93..000000000 --- a/dashboard-ui/bower_components/iron-input/test/iron-input.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - - - iron-input tests - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/iron-input/test/letters-only.html b/dashboard-ui/bower_components/iron-input/test/letters-only.html deleted file mode 100644 index bfc301c3e..000000000 --- a/dashboard-ui/bower_components/iron-input/test/letters-only.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - diff --git a/dashboard-ui/bower_components/iron-range-behavior/.bower.json b/dashboard-ui/bower_components/iron-range-behavior/.bower.json deleted file mode 100644 index 91448e034..000000000 --- a/dashboard-ui/bower_components/iron-range-behavior/.bower.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "iron-range-behavior", - "version": "1.0.6", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "Provides a behavior for something with a minimum and maximum value", - "authors": "The Polymer Authors", - "keywords": [ - "web-components", - "polymer", - "behavior" - ], - "main": "iron-range-behavior.html", - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-range-behavior.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#^1.1.0" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-input": "PolymerElements/iron-input#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "ignore": [], - "homepage": "https://github.com/PolymerElements/iron-range-behavior", - "_release": "1.0.6", - "_resolution": { - "type": "version", - "tag": "v1.0.6", - "commit": "1317604307387599725b80b63cbd293102ea2db0" - }, - "_source": "git://github.com/PolymerElements/iron-range-behavior.git", - "_target": "^1.0.0", - "_originalSource": "PolymerElements/iron-range-behavior" -} \ No newline at end of file diff --git a/dashboard-ui/bower_components/iron-range-behavior/.github/ISSUE_TEMPLATE.md b/dashboard-ui/bower_components/iron-range-behavior/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 027392730..000000000 --- a/dashboard-ui/bower_components/iron-range-behavior/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/dashboard-ui/bower_components/iron-range-behavior/.gitignore b/dashboard-ui/bower_components/iron-range-behavior/.gitignore deleted file mode 100644 index 8d4ae2536..000000000 --- a/dashboard-ui/bower_components/iron-range-behavior/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components diff --git a/dashboard-ui/bower_components/iron-range-behavior/.travis.yml b/dashboard-ui/bower_components/iron-range-behavior/.travis.yml deleted file mode 100644 index 876632a17..000000000 --- a/dashboard-ui/bower_components/iron-range-behavior/.travis.yml +++ /dev/null @@ -1,23 +0,0 @@ -language: node_js -sudo: required -before_script: -- npm install -g bower polylint web-component-tester -- bower install -- polylint -env: - global: - - secure: ioGoTHzroJHO2O9B8y/xB7dsnWY+dArvRF+Dem/0Z8yTJZ/QFCeqFctQXNdj7HIm/y7ZxetVFBnxr+0HbF62qdmVkvfBzD/TaQPeXOHSyrSbR2aAQLeSwRbcUyOmmtk/q0frf1o81i3inoLjrGKieCZq7U8VF/6YyfRDhouU5/Q= - - secure: LxoITNXWo1Vh2dOlg0I/KI/wuEaiMpNPRcg8MN6TOwy6UIKPwlpA69YZ4eLNDnuCjndQHL7Cl/TA5njubss4UeXG+L3oQMGNBEcRSHGZGxEyTZpofJp5FFK3Ja9CpaBMB7IsWAwuGPJZXM/6aoyAVipJ1et2Gbbasd5EbQYjRwc= -node_js: stable -addons: - firefox: '46.0' - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true -script: -- xvfb-run wct -- if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then wct -s 'default'; fi -dist: trusty diff --git a/dashboard-ui/bower_components/iron-range-behavior/CONTRIBUTING.md b/dashboard-ui/bower_components/iron-range-behavior/CONTRIBUTING.md deleted file mode 100644 index 093090d43..000000000 --- a/dashboard-ui/bower_components/iron-range-behavior/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/dashboard-ui/bower_components/iron-range-behavior/bower.json b/dashboard-ui/bower_components/iron-range-behavior/bower.json deleted file mode 100644 index c702ac95b..000000000 --- a/dashboard-ui/bower_components/iron-range-behavior/bower.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "iron-range-behavior", - "version": "1.0.6", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "Provides a behavior for something with a minimum and maximum value", - "authors": "The Polymer Authors", - "keywords": [ - "web-components", - "polymer", - "behavior" - ], - "main": "iron-range-behavior.html", - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/iron-range-behavior.git" - }, - "dependencies": { - "polymer": "Polymer/polymer#^1.1.0" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-input": "PolymerElements/iron-input#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "ignore": [] -} diff --git a/dashboard-ui/bower_components/iron-range-behavior/demo/index.html b/dashboard-ui/bower_components/iron-range-behavior/demo/index.html deleted file mode 100644 index a0afe84d5..000000000 --- a/dashboard-ui/bower_components/iron-range-behavior/demo/index.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - iron-range-behavior demo - - - - - - - - - - - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/iron-range-behavior/index.html b/dashboard-ui/bower_components/iron-range-behavior/index.html deleted file mode 100644 index cc7778873..000000000 --- a/dashboard-ui/bower_components/iron-range-behavior/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/iron-range-behavior/iron-range-behavior.html b/dashboard-ui/bower_components/iron-range-behavior/iron-range-behavior.html deleted file mode 100644 index 96f3c15b0..000000000 --- a/dashboard-ui/bower_components/iron-range-behavior/iron-range-behavior.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - diff --git a/dashboard-ui/bower_components/iron-range-behavior/test/basic.html b/dashboard-ui/bower_components/iron-range-behavior/test/basic.html deleted file mode 100644 index 9a7e41dc5..000000000 --- a/dashboard-ui/bower_components/iron-range-behavior/test/basic.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - iron-range-behavior - - - - - - - - - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/iron-range-behavior/test/index.html b/dashboard-ui/bower_components/iron-range-behavior/test/index.html deleted file mode 100644 index b66f1defb..000000000 --- a/dashboard-ui/bower_components/iron-range-behavior/test/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - Tests - - - - - - - diff --git a/dashboard-ui/bower_components/iron-range-behavior/test/x-progressbar.html b/dashboard-ui/bower_components/iron-range-behavior/test/x-progressbar.html deleted file mode 100644 index 2f0db85fb..000000000 --- a/dashboard-ui/bower_components/iron-range-behavior/test/x-progressbar.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - - diff --git a/dashboard-ui/bower_components/paper-input/.bower.json b/dashboard-ui/bower_components/paper-input/.bower.json deleted file mode 100644 index f714364e0..000000000 --- a/dashboard-ui/bower_components/paper-input/.bower.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "name": "paper-input", - "version": "1.1.17", - "description": "Material design text fields", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "input" - ], - "main": [ - "paper-input.html", - "paper-textarea.html", - "paper-input-behavior.html", - "paper-input-container.html", - "paper-input-error.html", - "paper-input-addon-behavior.html", - "paper-input-char-counter.html" - ], - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-input.git" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/paper-input", - "ignore": [], - "dependencies": { - "polymer": "Polymer/polymer#^1.2.0", - "iron-autogrow-textarea": "PolymerElements/iron-autogrow-textarea#^1.0.0", - "iron-behaviors": "PolymerElements/iron-behaviors#^1.0.0", - "iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#^1.0.0", - "iron-input": "PolymerElements/iron-input#^1.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.1.4", - "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", - "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", - "iron-icon": "PolymerElements/iron-icon#^1.0.0", - "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", - "iron-validator-behavior": "PolymerElements/iron-validator-behavior#^1.0.0", - "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "_release": "1.1.17", - "_resolution": { - "type": "version", - "tag": "v1.1.17", - "commit": "61d482886c58324b682cea3c605695c31154e084" - }, - "_source": "git://github.com/PolymerElements/paper-input.git", - "_target": "^1.1.11", - "_originalSource": "PolymerElements/paper-input" -} \ No newline at end of file diff --git a/dashboard-ui/bower_components/paper-input/.github/ISSUE_TEMPLATE.md b/dashboard-ui/bower_components/paper-input/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 99b9301c9..000000000 --- a/dashboard-ui/bower_components/paper-input/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/dashboard-ui/bower_components/paper-input/.gitignore b/dashboard-ui/bower_components/paper-input/.gitignore deleted file mode 100644 index 8d4ae2536..000000000 --- a/dashboard-ui/bower_components/paper-input/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components diff --git a/dashboard-ui/bower_components/paper-input/.travis.yml b/dashboard-ui/bower_components/paper-input/.travis.yml deleted file mode 100644 index 3328a818d..000000000 --- a/dashboard-ui/bower_components/paper-input/.travis.yml +++ /dev/null @@ -1,23 +0,0 @@ -language: node_js -sudo: required -before_script: -- npm install -g bower polylint web-component-tester -- bower install -- polylint -env: - global: - - secure: Hg2KIEhKqOw0J8ZW2C3Pdgp5N4HD/f9jhdluH0tiYRCU4I/jf5grQuA3ohqsbqnJKV5l06gWVIDCdxBDwDEH0h8v9uUG5z/i2diiuLQc94SLQu8kWKkUPDOx+pUyXmfRKj6KnaRTotTLFrwlyuKDi9OfGjQbLZWTvmJUWoFwh4g= - - secure: U6/Hp/V0ezT/yxeP2bv4S99LSLScKEaOfYwQUbe0+v5dPbN5XZaCUS6iSbNP2K8Mtb1UQUEyL8uN6Zn+khFlJ8/KJshppJ6HJi235CykahBhh9/Cv7EapgDUoss14ntE8EKpm6Ijo4LvVyPVmhgqKk9wP5ykDFtvhoKD4C3guVU= -node_js: stable -addons: - firefox: '46.0' - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true -script: -- xvfb-run wct -- if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then wct -s 'default'; fi -dist: trusty diff --git a/dashboard-ui/bower_components/paper-input/CONTRIBUTING.md b/dashboard-ui/bower_components/paper-input/CONTRIBUTING.md deleted file mode 100644 index 093090d43..000000000 --- a/dashboard-ui/bower_components/paper-input/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/dashboard-ui/bower_components/paper-input/all-imports.html b/dashboard-ui/bower_components/paper-input/all-imports.html deleted file mode 100644 index 0f4577186..000000000 --- a/dashboard-ui/bower_components/paper-input/all-imports.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - diff --git a/dashboard-ui/bower_components/paper-input/bower.json b/dashboard-ui/bower_components/paper-input/bower.json deleted file mode 100644 index d78041571..000000000 --- a/dashboard-ui/bower_components/paper-input/bower.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "paper-input", - "version": "1.1.17", - "description": "Material design text fields", - "authors": [ - "The Polymer Authors" - ], - "keywords": [ - "web-components", - "polymer", - "input" - ], - "main": [ - "paper-input.html", - "paper-textarea.html", - "paper-input-behavior.html", - "paper-input-container.html", - "paper-input-error.html", - "paper-input-addon-behavior.html", - "paper-input-char-counter.html" - ], - "private": true, - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-input.git" - }, - "license": "http://polymer.github.io/LICENSE.txt", - "homepage": "https://github.com/PolymerElements/paper-input", - "ignore": [], - "dependencies": { - "polymer": "Polymer/polymer#^1.2.0", - "iron-autogrow-textarea": "PolymerElements/iron-autogrow-textarea#^1.0.0", - "iron-behaviors": "PolymerElements/iron-behaviors#^1.0.0", - "iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#^1.0.0", - "iron-input": "PolymerElements/iron-input#^1.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.1.4", - "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", - "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", - "iron-icon": "PolymerElements/iron-icon#^1.0.0", - "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", - "iron-validator-behavior": "PolymerElements/iron-validator-behavior#^1.0.0", - "paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - } -} diff --git a/dashboard-ui/bower_components/paper-input/demo/index.html b/dashboard-ui/bower_components/paper-input/demo/index.html deleted file mode 100644 index f84799de7..000000000 --- a/dashboard-ui/bower_components/paper-input/demo/index.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - - - paper-input demo - - - - - - - - - - - - - - - - - - - -
-

Inputs can have different types, and be disabled

- - - - -

Inputs can have character counters

- - - - -

The label can have different floating states

- - - - -

Inputs can validate automatically or on demand, and can have custom error messages

- - - - -

Inputs can have prefixes and suffixes

- - - - -

Inputs can have custom logic

- - - -
- - - - diff --git a/dashboard-ui/bower_components/paper-input/demo/ssn-input.html b/dashboard-ui/bower_components/paper-input/demo/ssn-input.html deleted file mode 100644 index c7ab51dd6..000000000 --- a/dashboard-ui/bower_components/paper-input/demo/ssn-input.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/paper-input/demo/ssn-validator.html b/dashboard-ui/bower_components/paper-input/demo/ssn-validator.html deleted file mode 100644 index e45365b51..000000000 --- a/dashboard-ui/bower_components/paper-input/demo/ssn-validator.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - diff --git a/dashboard-ui/bower_components/paper-input/hero.svg b/dashboard-ui/bower_components/paper-input/hero.svg deleted file mode 100644 index 146ffeac6..000000000 --- a/dashboard-ui/bower_components/paper-input/hero.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/paper-input/index.html b/dashboard-ui/bower_components/paper-input/index.html deleted file mode 100644 index e6c9fadce..000000000 --- a/dashboard-ui/bower_components/paper-input/index.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - paper-input - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/paper-input/paper-input-addon-behavior.html b/dashboard-ui/bower_components/paper-input/paper-input-addon-behavior.html deleted file mode 100644 index 41081c713..000000000 --- a/dashboard-ui/bower_components/paper-input/paper-input-addon-behavior.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - diff --git a/dashboard-ui/bower_components/paper-input/paper-input-behavior.html b/dashboard-ui/bower_components/paper-input/paper-input-behavior.html deleted file mode 100644 index 18bad12f6..000000000 --- a/dashboard-ui/bower_components/paper-input/paper-input-behavior.html +++ /dev/null @@ -1,569 +0,0 @@ - - - - - - - diff --git a/dashboard-ui/bower_components/paper-input/paper-input-char-counter.html b/dashboard-ui/bower_components/paper-input/paper-input-char-counter.html deleted file mode 100644 index 1a09a06d0..000000000 --- a/dashboard-ui/bower_components/paper-input/paper-input-char-counter.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/paper-input/paper-input-container.html b/dashboard-ui/bower_components/paper-input/paper-input-container.html deleted file mode 100644 index 815a0a36a..000000000 --- a/dashboard-ui/bower_components/paper-input/paper-input-container.html +++ /dev/null @@ -1,621 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/paper-input/paper-input-error.html b/dashboard-ui/bower_components/paper-input/paper-input-error.html deleted file mode 100644 index 645f1e722..000000000 --- a/dashboard-ui/bower_components/paper-input/paper-input-error.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/paper-input/paper-input.html b/dashboard-ui/bower_components/paper-input/paper-input.html deleted file mode 100644 index 2b795a018..000000000 --- a/dashboard-ui/bower_components/paper-input/paper-input.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/paper-input/paper-textarea.html b/dashboard-ui/bower_components/paper-input/paper-textarea.html deleted file mode 100644 index cc3381de5..000000000 --- a/dashboard-ui/bower_components/paper-input/paper-textarea.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/paper-input/test/index.html b/dashboard-ui/bower_components/paper-input/test/index.html deleted file mode 100644 index 48aa82fda..000000000 --- a/dashboard-ui/bower_components/paper-input/test/index.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - paper-input tests - - - - - - - diff --git a/dashboard-ui/bower_components/paper-input/test/letters-only.html b/dashboard-ui/bower_components/paper-input/test/letters-only.html deleted file mode 100644 index bfc301c3e..000000000 --- a/dashboard-ui/bower_components/paper-input/test/letters-only.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - diff --git a/dashboard-ui/bower_components/paper-input/test/paper-input-char-counter.html b/dashboard-ui/bower_components/paper-input/test/paper-input-char-counter.html deleted file mode 100644 index 65d2d140f..000000000 --- a/dashboard-ui/bower_components/paper-input/test/paper-input-char-counter.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - paper-input-counter tests - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/paper-input/test/paper-input-container.html b/dashboard-ui/bower_components/paper-input/test/paper-input-container.html deleted file mode 100644 index caa3a3ee8..000000000 --- a/dashboard-ui/bower_components/paper-input/test/paper-input-container.html +++ /dev/null @@ -1,302 +0,0 @@ - - - - - - paper-input-container tests - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/paper-input/test/paper-input-error.html b/dashboard-ui/bower_components/paper-input/test/paper-input-error.html deleted file mode 100644 index 9337a95e8..000000000 --- a/dashboard-ui/bower_components/paper-input/test/paper-input-error.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - paper-input-error tests - - - - - - - - - - - - - - - - - - error - - - - - - - - - - diff --git a/dashboard-ui/bower_components/paper-input/test/paper-input.html b/dashboard-ui/bower_components/paper-input/test/paper-input.html deleted file mode 100644 index 77f68c58a..000000000 --- a/dashboard-ui/bower_components/paper-input/test/paper-input.html +++ /dev/null @@ -1,398 +0,0 @@ - - - - - - paper-input tests - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/paper-input/test/paper-textarea.html b/dashboard-ui/bower_components/paper-input/test/paper-textarea.html deleted file mode 100644 index 7231974d6..000000000 --- a/dashboard-ui/bower_components/paper-input/test/paper-textarea.html +++ /dev/null @@ -1,225 +0,0 @@ - - - - - - paper-textarea tests - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/paper-progress/.bower.json b/dashboard-ui/bower_components/paper-progress/.bower.json deleted file mode 100644 index 528833b81..000000000 --- a/dashboard-ui/bower_components/paper-progress/.bower.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "paper-progress", - "version": "1.0.10", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "A material design progress bar", - "authors": "The Polymer Authors", - "keywords": [ - "web-components", - "polymer", - "progress" - ], - "main": "paper-progress.html", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-progress.git" - }, - "dependencies": { - "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", - "iron-range-behavior": "PolymerElements/iron-range-behavior#^1.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "polymer": "Polymer/polymer#^1.1.0" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", - "paper-button": "PolymerElements/paper-button#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "ignore": [], - "homepage": "https://github.com/PolymerElements/paper-progress", - "_release": "1.0.10", - "_resolution": { - "type": "version", - "tag": "v1.0.10", - "commit": "dfdde2b02947fb2dfd3f2d303ec17f7f4919348c" - }, - "_source": "git://github.com/PolymerElements/paper-progress.git", - "_target": "^1.0.9", - "_originalSource": "PolymerElements/paper-progress" -} \ No newline at end of file diff --git a/dashboard-ui/bower_components/paper-progress/.github/ISSUE_TEMPLATE.md b/dashboard-ui/bower_components/paper-progress/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 09b5a1e5d..000000000 --- a/dashboard-ui/bower_components/paper-progress/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,33 +0,0 @@ - -### Description - - -### Expected outcome - - - -### Actual outcome - - - -### Live Demo - - -### Steps to reproduce - - - -### Browsers Affected - -- [ ] Chrome -- [ ] Firefox -- [ ] Safari 9 -- [ ] Safari 8 -- [ ] Safari 7 -- [ ] Edge -- [ ] IE 11 -- [ ] IE 10 diff --git a/dashboard-ui/bower_components/paper-progress/.gitignore b/dashboard-ui/bower_components/paper-progress/.gitignore deleted file mode 100644 index 8d4ae2536..000000000 --- a/dashboard-ui/bower_components/paper-progress/.gitignore +++ /dev/null @@ -1 +0,0 @@ -bower_components diff --git a/dashboard-ui/bower_components/paper-progress/.travis.yml b/dashboard-ui/bower_components/paper-progress/.travis.yml deleted file mode 100644 index f80bf47c9..000000000 --- a/dashboard-ui/bower_components/paper-progress/.travis.yml +++ /dev/null @@ -1,23 +0,0 @@ -language: node_js -sudo: required -before_script: -- npm install -g bower polylint web-component-tester -- bower install -- polylint -env: - global: - - secure: H1BFM+lOHi3yosJV4VpeDHO/N33EeAeQqKbWMAiGfbjMmVUa2Y9gQzpIONMtO09KMTZMw0dlE3GYNLnc44JXlnSvmp34Fh8KpxOz4BxlbIj2aw/M99FWxRAJYpV+BWWKhwwuFq6DctATljcdfvYyHxpjCAFjTIMCCAHtdVrowlxMlivu/BSlBlZ4HR0OfHr7l8PAC1hSieWr5Rpk0PMcQ6B0nEhSTRgGdxEwADnkOL3Sx966vNv3qxwIML29UrZ3mFdfrgnfwdNZTivjDaRhY4tUu7bw5vP8c4PeVR7lalhVBse5J4xKo7Xw80To+bm/0Hyo4ZgZPzEbq0EAIszRnwRo/d4YiFGkyIgFHJ8a/v2h3BWxW+9W51nKsQcFijitu2pMhKC9ankRxL23TK0rtYff6hj/bCwtfy/965PzZgiAeBgcQUZ25+unOc11VAyIEGUZeLAqzulMOn2LAcvSrVEVGpb90whvVxfG3T8hkFbIrPtD3TWrtvt4ul/25pe+eLNET2DUTqrPFfizthyaGFfavykA6PPGI58AFD2EnFmaD9eJC/eCP34FAZec8G2yMbXOYxg6B40Z1ezHo8j7jzbekEJBsHVegpart9YSxQwx5b95SsqlPbyhdLLHIZIzT9dSfbS/l0YFUYbejeMM5koi1qdqXVCdCMpbwS61WA8= - - secure: KZek5eiBlb80rC3C0pgb39C4mWskrGJdxV0Xp9WBAnJQkXN4fvKgB5QOIGVV8yP/aM824zv/nj1Z61MWcjKw5kYJBon0Hw4Qemk7KJh7kde5bhg+3dWcdfv8Hhz9wuVGxqmZ01N8LWat+dRzEqY5ZawFQ+P2M/FXxxwKKsH3GKpjgjN2G8u7nadD2p4hDIBmVVGK0dqDZDOg+YZ+jEdGyWTbjeVOnktvb6dDfcKm52VIpcgAvqa8CCFFwTE3lFrHK4UdiqxFW2YcIB1lgJADJ1B2wAjL0cuf97uu8jaCpCGMeQXz5/XH5SxLA8ah/6GV7C37+WlEPeyallUUbSn05m/xYVFEMvrw/04bFQUyiwt9/rdqA8OLNOUwIEk9hMWC3LkooE2LTLs4l1OKN2x9OuTGPTU2f4LrH4z32zSChxjI/4fqCFwDJs6MBfQFIlpV1e6F1YOvPLPOtBLLTVK1n1KeXeY9HSvk+f5lxRwS4VFZ1oG6+a/l+MoB2HMUmhEn0Wa+KS2qk5Yfea/UIlvi8IuA7zsXoeYkBuwIT7VJVdU0Oebfkam4jWR6qYs/QQF/MchzungKchhwyhsSzQvCuaHJhdA6D1L0oqkXRpPouJwkcvGu9z+wf+zPfh3h065Trg7tC4DYHnXRSTF0ocO3H+EfImRSP5jsgPz0gMl4iI0= -node_js: stable -addons: - firefox: '46.0' - apt: - sources: - - google-chrome - packages: - - google-chrome-stable - sauce_connect: true -script: -- xvfb-run wct -- if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then wct -s 'default'; fi -dist: trusty diff --git a/dashboard-ui/bower_components/paper-progress/CONTRIBUTING.md b/dashboard-ui/bower_components/paper-progress/CONTRIBUTING.md deleted file mode 100644 index 093090d43..000000000 --- a/dashboard-ui/bower_components/paper-progress/CONTRIBUTING.md +++ /dev/null @@ -1,77 +0,0 @@ - - -# Polymer Elements -## Guide for Contributors - -Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines: - -### Filing Issues - -**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions: - - 1. **Who will use the feature?** _“As someone filling out a form…”_ - 2. **When will they use the feature?** _“When I enter an invalid value…”_ - 3. **What is the user’s goal?** _“I want to be visually notified that the value needs to be corrected…”_ - -**If you are filing an issue to report a bug**, please provide: - - 1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug: - - ```markdown - The `paper-foo` element causes the page to turn pink when clicked. - - ## Expected outcome - - The page stays the same color. - - ## Actual outcome - - The page turns pink. - - ## Steps to reproduce - - 1. Put a `paper-foo` element in the page. - 2. Open the page in a web browser. - 3. Click the `paper-foo` element. - ``` - - 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output). - - 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. - -### Submitting Pull Requests - -**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request. - -When submitting pull requests, please provide: - - 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax: - - ```markdown - (For a single issue) - Fixes #20 - - (For multiple issues) - Fixes #32, fixes #40 - ``` - - 2. **A succinct description of the design** used to fix any related issues. For example: - - ```markdown - This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked. - ``` - - 3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered. - -If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so don’t be afraid to ask us if you need help with that! diff --git a/dashboard-ui/bower_components/paper-progress/bower.json b/dashboard-ui/bower_components/paper-progress/bower.json deleted file mode 100644 index 017624b3c..000000000 --- a/dashboard-ui/bower_components/paper-progress/bower.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "paper-progress", - "version": "1.0.10", - "license": "http://polymer.github.io/LICENSE.txt", - "description": "A material design progress bar", - "authors": "The Polymer Authors", - "keywords": [ - "web-components", - "polymer", - "progress" - ], - "main": "paper-progress.html", - "repository": { - "type": "git", - "url": "git://github.com/PolymerElements/paper-progress.git" - }, - "dependencies": { - "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0", - "iron-range-behavior": "PolymerElements/iron-range-behavior#^1.0.0", - "paper-styles": "PolymerElements/paper-styles#^1.0.0", - "polymer": "Polymer/polymer#^1.1.0" - }, - "devDependencies": { - "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", - "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", - "paper-button": "PolymerElements/paper-button#^1.0.0", - "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "^4.0.0", - "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" - }, - "ignore": [] -} diff --git a/dashboard-ui/bower_components/paper-progress/demo/index.html b/dashboard-ui/bower_components/paper-progress/demo/index.html deleted file mode 100644 index 6f7b02b12..000000000 --- a/dashboard-ui/bower_components/paper-progress/demo/index.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - paper-progress demo - - - - - - - - - - - - - - - - -
-

paper-progress can be imperatively controlled

- - - - -

paper-progress can be indeterminate with a custom duration

- - - - -

It can be styled using custom properties

- - - -
- - - - - diff --git a/dashboard-ui/bower_components/paper-progress/hero.svg b/dashboard-ui/bower_components/paper-progress/hero.svg deleted file mode 100644 index dc422a491..000000000 --- a/dashboard-ui/bower_components/paper-progress/hero.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/paper-progress/index.html b/dashboard-ui/bower_components/paper-progress/index.html deleted file mode 100644 index 225e3dd93..000000000 --- a/dashboard-ui/bower_components/paper-progress/index.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - paper-progress - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/paper-progress/paper-progress.html b/dashboard-ui/bower_components/paper-progress/paper-progress.html deleted file mode 100644 index f0334b424..000000000 --- a/dashboard-ui/bower_components/paper-progress/paper-progress.html +++ /dev/null @@ -1,354 +0,0 @@ - - - - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/paper-progress/test/basic.html b/dashboard-ui/bower_components/paper-progress/test/basic.html deleted file mode 100644 index 73547501e..000000000 --- a/dashboard-ui/bower_components/paper-progress/test/basic.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - paper-progress test - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dashboard-ui/bower_components/paper-progress/test/index.html b/dashboard-ui/bower_components/paper-progress/test/index.html deleted file mode 100644 index b66f1defb..000000000 --- a/dashboard-ui/bower_components/paper-progress/test/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - Tests - - - - - - - diff --git a/dashboard-ui/cinemamodeconfiguration.html b/dashboard-ui/cinemamodeconfiguration.html index 3cb858f87..1238c2c3e 100644 --- a/dashboard-ui/cinemamodeconfiguration.html +++ b/dashboard-ui/cinemamodeconfiguration.html @@ -1,4 +1,4 @@ -
+
@@ -33,8 +33,9 @@

-
- +
+
+

@@ -46,18 +47,22 @@ ${LabelLimitIntrosToUnwatchedContent}

-
-
- - +
+
+
+
+ +
+
${LabelCustomIntrosPathHelp}
-
-
-
- - +
+
+
+ +
+
${LabelCodecIntrosPathHelp}
@@ -65,7 +70,6 @@

-

${CinemaModeConfigurationHelp2}

diff --git a/dashboard-ui/components/appfooter/appfooter.css b/dashboard-ui/components/appfooter/appfooter.css index b7013c80a..df73af993 100644 --- a/dashboard-ui/components/appfooter/appfooter.css +++ b/dashboard-ui/components/appfooter/appfooter.css @@ -1,5 +1,6 @@ .appfooter { background: #1c1c1c; + /*background: #222326;*/ position: fixed; left: 0; right: 0; @@ -8,6 +9,6 @@ transition: transform 180ms linear; } -.appfooter.headroom--unpinned { - transform: translateY(100%); -} \ No newline at end of file + .appfooter.headroom--unpinned { + transform: translateY(100%); + } diff --git a/dashboard-ui/components/dockedtabs/dockedtabs.css b/dashboard-ui/components/dockedtabs/dockedtabs.css index 1c975aed3..3a166ce3e 100644 --- a/dashboard-ui/components/dockedtabs/dockedtabs.css +++ b/dashboard-ui/components/dockedtabs/dockedtabs.css @@ -14,6 +14,8 @@ padding: 0 !important; margin: 0 !important; text-align: center; + border-color: transparent !important; + border-width: 0 !important; } .dockedtabs-tab-button, .dockedtabs-tab-button-foreground { diff --git a/dashboard-ui/components/favoriteitems.js b/dashboard-ui/components/favoriteitems.js index b59e44442..c730e3693 100644 --- a/dashboard-ui/components/favoriteitems.js +++ b/dashboard-ui/components/favoriteitems.js @@ -1,4 +1,4 @@ -define(['libraryBrowser', 'cardBuilder', 'scrollStyles', 'emby-itemscontainer'], function (libraryBrowser, cardBuilder) { +define(['libraryBrowser', 'cardBuilder', 'dom', 'scrollStyles', 'emby-itemscontainer'], function (libraryBrowser, cardBuilder, dom) { function enableScrollX() { return browserInfo.mobile && AppInfo.enableAppLayouts; @@ -31,7 +31,7 @@ function loadSection(elem, userId, topParentId, section, isSingleSection) { - var screenWidth = window.innerWidth; + var screenWidth = dom.getWindowSize().innerWidth; var options = { SortBy: "SortName", diff --git a/dashboard-ui/components/tvproviders/schedulesdirect.js b/dashboard-ui/components/tvproviders/schedulesdirect.js index 13b74dd94..12e629054 100644 --- a/dashboard-ui/components/tvproviders/schedulesdirect.js +++ b/dashboard-ui/components/tvproviders/schedulesdirect.js @@ -1,4 +1,4 @@ -define(['jQuery','paper-checkbox', 'listViewStyle', 'paper-input', 'paper-checkbox'], function ($) { +define(['jQuery','paper-checkbox', 'listViewStyle', 'emby-input', 'emby-select'], function ($) { return function (page, providerId, options) { diff --git a/dashboard-ui/components/tvproviders/schedulesdirect.template.html b/dashboard-ui/components/tvproviders/schedulesdirect.template.html index 3fd309fe3..83ae72b00 100644 --- a/dashboard-ui/components/tvproviders/schedulesdirect.template.html +++ b/dashboard-ui/components/tvproviders/schedulesdirect.template.html @@ -13,15 +13,15 @@
-
- +
+
+
-
- +
+
-
@@ -39,21 +39,17 @@
-
+

- - + +
+
+ +
+
+
- -
-
-
- - -
-
-
${OptionEnableForAllTuners}


diff --git a/dashboard-ui/css/autoorganizetable.css b/dashboard-ui/css/autoorganizetable.css new file mode 100644 index 000000000..cfc1da14a --- /dev/null +++ b/dashboard-ui/css/autoorganizetable.css @@ -0,0 +1,68 @@ +.autoorganizetable > .table { + width: 100%; +} + + .autoorganizetable > .table > tbody > tr > td { + padding: 0.4em; + } + +.autoorganizetable .fileCell { + word-wrap: break-word; + word-break: break-all; +} + +.autoorganizetable > .table > thead > th { + text-align: left; +} + +.autoorganizetable tbody tr:nth-child(odd) td, +.autoorganizetable tbody tr:nth-child(odd) th { + background-color: #eeeeee; /* non-RGBA fallback */ + background-color: rgba(0,0,0,.04); +} + + +@media screen and (max-width: 800px) { + .autoorganizetable > .table { + margin-bottom: 0; + background-color: transparent; + } + + .autoorganizetable .spinnerCell { + display: none !important; + } + + .autoorganizetable > .table > thead, + .autoorganizetable > .table > tfoot { + display: none; + } + + .autoorganizetable > .table > tbody { + display: block; + } + + .autoorganizetable > .table > tbody > tr { + display: block; + border: 1px solid #e0e0e0; + border-radius: 2px; + margin-bottom: 1.6rem; + } + + .autoorganizetable > .table > tbody > tr > td { + background-color: #eeeeee; /* non-RGBA fallback */ + background-color: rgba(0,0,0,.04); + display: block; + vertical-align: middle; + text-align: left; + text-overflow: ellipsis; + padding: 0.4em; + } + + .autoorganizetable > .table > tbody > tr > td[data-title]:before { + content: attr(data-title); + float: left; + font-size: inherit; + font-weight: bold; + min-width: 20%; + } +} diff --git a/dashboard-ui/css/dashboard.css b/dashboard-ui/css/dashboard.css index b790d8bca..432d40442 100644 --- a/dashboard-ui/css/dashboard.css +++ b/dashboard-ui/css/dashboard.css @@ -8,11 +8,6 @@ padding-top: 5px; } -paper-input + .fieldDescription { - padding-top: 5px; - opacity: .9; -} - /* Tabs (e.g. advanced metadata page) */ .localnav { margin-bottom: 30px !important; @@ -175,17 +170,12 @@ paper-checkbox #checkmark { padding: .5em 0; } -paper-input label, paper-textarea label { - font-size: 18px !important; - font-family: inherit !important; -} - .paperListLabel { font-size: 16px; margin-bottom: .5em; } -paper-textarea.mono textarea { +.textarea-mono { font-family: monospace !important; } @@ -194,18 +184,6 @@ paper-textarea.mono textarea { border-color: #52B54B; } -.ui-body-a .paper-input-container-0 .input-content.paper-input-container label, .ui-body-a .paper-input-container-0 .input-content.paper-input-container .paper-input-label, .ui-body-a paper-textarea label { - color: #555; -} - -.ui-body-a .paper-input-container-0 .input-content.label-is-highlighted.paper-input-container label, .ui-body-a .paper-input-container-0 .input-content.label-is-highlighted.paper-input-container .paper-input-label { - color: green; -} - -paper-input .focused-line, paper-textarea .focused-line { - background-color: #52B54B !important; -} - .paperList { padding: .5em 0; margin: 12px auto; @@ -671,21 +649,6 @@ a[data-role='button'], .type-interior button:not([data-role='none']):not(.clearB outline: none !important; } - .scheduledTaskPaperIconItem #progressContainer { - height: 8px !important; - border-radius: 5px; - } - - .scheduledTaskPaperIconItem #primaryProgress { - border-bottom-left-radius: 5px; - border-top-left-radius: 5px; - } - - .scheduledTaskPaperIconItem paper-progress { - display: inline-block; - } - - @media all and (min-width: 420px) { .activeSession { diff --git a/dashboard-ui/css/images/throbber.gif b/dashboard-ui/css/images/throbber.gif new file mode 100644 index 000000000..1b5b2fde4 Binary files /dev/null and b/dashboard-ui/css/images/throbber.gif differ diff --git a/dashboard-ui/css/site.css b/dashboard-ui/css/site.css index 8e545658e..0d09ff734 100644 --- a/dashboard-ui/css/site.css +++ b/dashboard-ui/css/site.css @@ -116,7 +116,7 @@ h1 a:hover { color: #52B54B !important; } -input:not(.paper-input):not([type='checkbox']):not([type='radio']):not([type='file']):not([type='range']):not([is='emby-input']) { +input:not([type='checkbox']):not([type='radio']):not([type='file']):not([type='range']):not([is='emby-input']) { -webkit-appearance: none; -webkit-font-smoothing: antialiased; -webkit-rtl-ordering: logical; @@ -593,7 +593,6 @@ progress { .ui-body-b .emby-collapsible-content, .ui-body-b .collapseContent { border-width: 0; - padding: 1em 1.25em; background-color: #222; } @@ -621,7 +620,6 @@ progress { .ui-body-a .emby-collapsible-content, .ui-body-a .collapseContent { border-width: 0; - padding: 1em 1.25em; background-color: #fff; } diff --git a/dashboard-ui/dashboardgeneral.html b/dashboard-ui/dashboardgeneral.html index ff0add52c..6e06cbaac 100644 --- a/dashboard-ui/dashboardgeneral.html +++ b/dashboard-ui/dashboardgeneral.html @@ -5,12 +5,10 @@ -
- +
+
${LabelFriendlyServerNameHelp}
-
-

@@ -44,46 +42,46 @@
-
    -
  • - - +
    +
    +
    +
    + +
    + +
    ${LabelCachePathHelp}
    -
  • -
+
+

-
    -
  • -
    - - -
    -
  • -
  • - - - -
  • - -
+
+
+ + +
+
+
+ + + +
+
@@ -92,16 +90,14 @@

${HeaderBrandingHelp}


-
    -
  • - -
    ${LabelLoginDisclaimerHelp}
    -
  • -
  • - -
    ${LabelCustomCssHelp}
    -
  • -
+
+ +
${LabelLoginDisclaimerHelp}
+
+
+ +
${LabelCustomCssHelp}
+
@@ -119,22 +115,21 @@ ${OptionDisableForDevelopmentHelp}


-
    -
  • - +
    +
    +
    + +
    -
    ${LabelDashboardSourcePathHelp}
    -
  • -
+
+
${LabelDashboardSourcePathHelp}
+

-
    -
  • - -
  • - -
+
+ +
diff --git a/dashboard-ui/device.html b/dashboard-ui/device.html index aa589c0f3..d8f23ea46 100644 --- a/dashboard-ui/device.html +++ b/dashboard-ui/device.html @@ -1,36 +1,32 @@ -
+
-
-
+ -

+

-

-
    -
  • - -
    ${LabelCustomDeviceDisplayNameHelp}
    -
  • - +

    +
    + +
    ${LabelCustomDeviceDisplayNameHelp}
    +
    +
    +
    +
    + +
    + +
    +
    ${LabelCameraUploadPathHelp}
    +
    +
    + +
    + -

-
    -
  • - -
  • -
- - - -
\ No newline at end of file diff --git a/dashboard-ui/devices/ios/ios.css b/dashboard-ui/devices/ios/ios.css index 4cb8c0f5b..2cb4cf359 100644 --- a/dashboard-ui/devices/ios/ios.css +++ b/dashboard-ui/devices/ios/ios.css @@ -41,21 +41,11 @@ body:not(.dashboardDocument) .mainDrawerButton { background-color: #000; } -.libraryViewNav .emby-tab-button { +.emby-tab-button { font-weight: 400; text-transform: none; -} - -.emby-tab-button-selection-bar { - display: none !important; -} - -.libraryViewNav .emby-tab-button-active { - color: #52B54B !important; -} - -.emby-tab-button-active { border-color: transparent !important; + border-width: 0 !important; } .criticReviewPaperList { diff --git a/dashboard-ui/devicesupload.html b/dashboard-ui/devicesupload.html index 70e9c7e73..dbb1283f6 100644 --- a/dashboard-ui/devicesupload.html +++ b/dashboard-ui/devicesupload.html @@ -1,35 +1,33 @@ -
+
-
+

${HeaderCameraUploadHelp}

- +
+
+
+ +
+ +
+
${LabelCameraUploadPathHelp}
+
+
+
+ ${LabelCreateCameraUploadSubfolder} +
${LabelCreateCameraUploadSubfolderHelp}
+
+
+
+
+ +
-
    -
  • - - -
    ${LabelCameraUploadPathHelp}
    -
  • -
  • -
    - ${LabelCreateCameraUploadSubfolder} -
    ${LabelCreateCameraUploadSubfolderHelp}
    -
  • - -

-
    -
  • - -
  • -
- - -
+
\ No newline at end of file diff --git a/dashboard-ui/dlnasettings.html b/dashboard-ui/dlnasettings.html index 8dd653117..be27b1d39 100644 --- a/dashboard-ui/dlnasettings.html +++ b/dashboard-ui/dlnasettings.html @@ -1,54 +1,59 @@ -
+
-
    -
  • - ${LabelEnableDlnaPlayTo} -
    ${LabelEnableDlnaPlayToHelp}
    -
  • -
  • - ${LabelEnableDlnaDebugLogging} -
    ${LabelEnableDlnaDebugLoggingHelp}
    -
  • -
  • - -
    ${LabelEnableDlnaClientDiscoveryIntervalHelp}
    -
  • -
-
    -
  • - ${LabelEnableDlnaServer} -
    ${LabelEnableDlnaServerHelp}
    -
  • -
  • - ${LabelEnableBlastAliveMessages} -
    ${LabelEnableBlastAliveMessagesHelp}
    -
  • -
  • - -
    ${LabelBlastMessageIntervalHelp}
    -
  • -
  • - - -
    ${LabelDefaultUserHelp}
    -
  • -
  • - ${LabelEnableEnhancedMovies} -
    ${LabelEnableEnhancedMoviesHelp}
    -
  • -
-
    -
  • - -
  • -
+
+ ${LabelEnableDlnaPlayTo} +
${LabelEnableDlnaPlayToHelp}
+
+
+
+
+ ${LabelEnableDlnaDebugLogging} +
${LabelEnableDlnaDebugLoggingHelp}
+
+
+
+
+ +
${LabelEnableDlnaClientDiscoveryIntervalHelp}
+
+
+
+ ${LabelEnableDlnaServer} +
${LabelEnableDlnaServerHelp}
+
+
+
+ ${LabelEnableBlastAliveMessages} +
${LabelEnableBlastAliveMessagesHelp}
+
+
+
+
+ +
${LabelBlastMessageIntervalHelp}
+
+
+
+ +
${LabelDefaultUserHelp}
+
+
+
+ ${LabelEnableEnhancedMovies} +
${LabelEnableEnhancedMoviesHelp}
+
+
+
+
+ +
diff --git a/dashboard-ui/legacy/fnchecked.js b/dashboard-ui/legacy/fnchecked.js index 2a88682a5..f4e61982d 100644 --- a/dashboard-ui/legacy/fnchecked.js +++ b/dashboard-ui/legacy/fnchecked.js @@ -1,12 +1,15 @@ -// TODO: This needs to be deprecated, but it's used heavily -$.fn.checked = function (value) { - if (value === true || value === false) { - // Set the value of the checkbox - return $(this).each(function () { - this.checked = value; - }); - } else { - // Return check state - return this.length && this[0].checked; - } -}; \ No newline at end of file +define(['jQuery'], function ($) { + + // TODO: This needs to be deprecated, but it's used heavily + $.fn.checked = function (value) { + if (value === true || value === false) { + // Set the value of the checkbox + return $(this).each(function () { + this.checked = value; + }); + } else { + // Return check state + return this.length && this[0].checked; + } + }; +}); \ No newline at end of file diff --git a/dashboard-ui/librarysettings.html b/dashboard-ui/librarysettings.html index 13169eac0..253de3a1c 100644 --- a/dashboard-ui/librarysettings.html +++ b/dashboard-ui/librarysettings.html @@ -4,55 +4,52 @@
-
    -
  • - - -
    - ${LabelEnableRealtimeMonitorHelp} +
    + +
    + ${LabelEnableRealtimeMonitorHelp} +
    +
    +
    + +
    ${LabelDateAddedBehaviorHelp}
    +
    +
    +
    +
    +
    -
  • -
  • - - -
    ${LabelDateAddedBehaviorHelp}
    -
  • -
  • - - -
    ${LabelMetadataPathHelp}
    -
    -
  • -
  • - ${OptionSaveMetadataAsHidden} -
    ${OptionSaveMetadataAsHiddenHelp}
    -
    -
  • -
- + +
+
${LabelMetadataPathHelp}
+
+
+ ${OptionSaveMetadataAsHidden} +
${OptionSaveMetadataAsHiddenHelp}
+
+
+

-
    -
  • -
    ${HeaderExtractChapterImagesFor}
    -
    - ${OptionMovies} +
    +
    ${HeaderExtractChapterImagesFor}
    +
    + ${OptionMovies} - ${OptionEpisodes} + ${OptionEpisodes} - ${OptionOtherVideos} -
    -
    ${ExtractChapterImagesHelp}
    -
  • -
+ ${OptionOtherVideos} +
+
${ExtractChapterImagesHelp}
+

${LabelExtractChaptersDuringLibraryScan} @@ -65,51 +62,46 @@

-
    -
  • -
    ${HeaderDownloadPeopleMetadataFor}
    -
    - ${OptionActors} +
    +
    ${HeaderDownloadPeopleMetadataFor}
    +
    + ${OptionActors} - ${OptionComposers} + ${OptionComposers} - ${OptionDirectors} + ${OptionDirectors} - ${OptionGuestStars} + ${OptionGuestStars} - ${OptionProducers} + ${OptionProducers} - ${OptionWriters} + ${OptionWriters} - ${OptionOthers} -
    -
    ${HeaderDownloadPeopleMetadataForHelp}
    -
  • -
+ ${OptionOthers} +
+
${HeaderDownloadPeopleMetadataForHelp}
+
-
- +
+
- +
+ +
${LabelFanartApiKeyHelp}
+ +
-

diff --git a/dashboard-ui/livetvsettings.html b/dashboard-ui/livetvsettings.html index 0fc995620..54a653f35 100644 --- a/dashboard-ui/livetvsettings.html +++ b/dashboard-ui/livetvsettings.html @@ -1,54 +1,62 @@ -
+
-
    -
  • - - -
    ${LabelNumberOfGuideDaysHelp}
    -
  • -
+
+ +
${LabelNumberOfGuideDaysHelp}
+
${OptionTVMovies}
-
-
- - +
+
+
+
+ +
+ +
${LabelRecordingPathHelp}
-
${OptionEnableRecordingSubfolders}
-
-
- - -
-
- - -

+
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
${OptionSendRecordingsToAutoOrganize}
@@ -65,23 +73,19 @@
${OptionConvertRecordingPreserveAudioHelp}

-

${HeaderDefaultPadding}

-
- +
+
-
- +
+

-
-
    -
  • - -
  • -
+
+ +
diff --git a/dashboard-ui/livetvtunerprovider-hdhomerun.html b/dashboard-ui/livetvtunerprovider-hdhomerun.html index fdbea4933..adfc60d99 100644 --- a/dashboard-ui/livetvtunerprovider-hdhomerun.html +++ b/dashboard-ui/livetvtunerprovider-hdhomerun.html @@ -1,42 +1,36 @@ -
+
-
- +

HD Homerun

- -
-
- -
-
-
- ${LabelEnableThisTuner} -
${LabelEnableThisTunerHelp}
-
-
-
- ${LabelImportOnlyFavoriteChannels} -
${ImportFavoriteChannelsHelp}
-
-
-
- ${LabelAllowHWTranscoding} -
${AllowHWTranscodingHelp}
-
-
-

${DrmChannelsNotImported}

-
-
- - -
-
- -
+
+ +
+
+ ${LabelEnableThisTuner} +
${LabelEnableThisTunerHelp}
+
+
+
+ ${LabelImportOnlyFavoriteChannels} +
${ImportFavoriteChannelsHelp}
+
+
+
+ ${LabelAllowHWTranscoding} +
${AllowHWTranscodingHelp}
+
+
+

${DrmChannelsNotImported}

+
+
+ + +
+
diff --git a/dashboard-ui/livetvtunerprovider-m3u.html b/dashboard-ui/livetvtunerprovider-m3u.html index 8732377c1..4af50a9f3 100644 --- a/dashboard-ui/livetvtunerprovider-m3u.html +++ b/dashboard-ui/livetvtunerprovider-m3u.html @@ -1,26 +1,24 @@ -
+
-
- +

M3U Setup

- -
-
- - -
-
-
- - +
+
+
+
+
- -
+
+
+ + +
+
\ No newline at end of file diff --git a/dashboard-ui/metadataimages.html b/dashboard-ui/metadataimages.html index 17668af57..954c99bf1 100644 --- a/dashboard-ui/metadataimages.html +++ b/dashboard-ui/metadataimages.html @@ -1,4 +1,4 @@ -
+
@@ -6,12 +6,10 @@
-
- - +
+

-
@@ -24,22 +22,21 @@
'; + html += ''; - html += ''; - - html += ''; - - html += ''; - - html += ''; + html += renderItemRow(item); html += ''; return html; }).join(''); - var elem = $('.resultBody', page).html(rows).parents('.tblOrganizationResults').table('refresh').trigger('create'); + var resultBody = page.querySelector('.resultBody'); + resultBody.innerHTML = rows; - $('.btnShowStatusMessage', elem).on('click', function () { - - var id = this.getAttribute('data-resultid'); - - showStatusMessage(id); - }); - - $('.btnProcessResult', elem).on('click', function () { - - var id = this.getAttribute('data-resultid'); - - organizeFile(page, id); - }); - - $('.btnDeleteResult', elem).on('click', function () { - - var id = this.getAttribute('data-resultid'); - - deleteOriginalFile(page, id); - }); + resultBody.addEventListener('click', handleItemClick); var pagingHtml = LibraryBrowser.getQueryPagingHtml({ startIndex: query.StartIndex, @@ -234,42 +194,146 @@ updatePageSizeSetting: false }); - $(page)[0].querySelector('.listTopPaging').innerHTML = pagingHtml; + var topPaging = page.querySelector('.listTopPaging'); + topPaging.innerHTML = pagingHtml; - if (result.TotalRecordCount > query.Limit && result.TotalRecordCount > 50) { + var bottomPaging = page.querySelector('.listBottomPaging'); + bottomPaging.innerHTML = pagingHtml; - $('.listBottomPaging', page).html(pagingHtml).trigger('create'); - } else { - - $('.listBottomPaging', page).empty(); - } - - $('.btnNextPage', page).on('click', function () { + var btnNextTop = topPaging.querySelector(".btnNextPage"); + var btnNextBottom = bottomPaging.querySelector(".btnNextPage"); + var btnPrevTop = topPaging.querySelector(".btnPreviousPage"); + var btnPrevBottom = bottomPaging.querySelector(".btnPreviousPage"); + btnNextTop.addEventListener('click', function () { query.StartIndex += query.Limit; - reloadItems(page); + reloadItems(page, true); }); - $('.btnPreviousPage', page).on('click', function () { + btnNextBottom.addEventListener('click', function () { + query.StartIndex += query.Limit; + reloadItems(page, true); + }); + btnPrevTop.addEventListener('click', function () { query.StartIndex -= query.Limit; - reloadItems(page); + reloadItems(page, true); }); + btnPrevBottom.addEventListener('click', function () { + query.StartIndex -= query.Limit; + reloadItems(page, true); + }); + + var btnClearLog = page.querySelector('.btnClearLog'); + if (result.TotalRecordCount) { - page.querySelector('.btnClearLog').classList.remove('hide'); + btnClearLog.classList.remove('hide'); } else { - page.querySelector('.btnClearLog').classList.add('hide'); + btnClearLog.classList.add('hide'); } } - function onWebSocketMessage(e, msg) { + function renderItemRow(item) { - var page = $.mobile.activePage; + var html = ''; - if ((msg.MessageType == 'ScheduledTaskEnded' && msg.Data.Key == 'AutoOrganize') || msg.MessageType == 'AutoOrganizeUpdate') { + html += ''; - reloadItems(page); + html += ''; + + html += ''; + + html += ''; + + html += ''; + + return html; + } + + function handleItemClick(e) { + + var id; + + var buttonStatus = parentWithClass(e.target, 'btnShowStatusMessage'); + if (buttonStatus) { + + id = buttonStatus.getAttribute('data-resultid'); + showStatusMessage(id); + } + + var buttonOrganize = parentWithClass(e.target, 'btnProcessResult'); + if (buttonOrganize) { + + id = buttonOrganize.getAttribute('data-resultid'); + organizeFile(e.view, id); + } + + var buttonDelete = parentWithClass(e.target, 'btnDeleteResult'); + if (buttonDelete) { + + id = buttonDelete.getAttribute('data-resultid'); + deleteOriginalFile(e.view, id); + } + } + + function onServerEvent(e, apiClient, data) { + + if (data) { + + updateItemStatus(page, data); + } else { + + reloadItems(page, false); + } + } + + function updateItemStatus(page, item) { + + var rowId = '#row' + item.Id; + var row = page.querySelector(rowId); + + if (row) { + + row.innerHTML = renderItemRow(item); } } @@ -289,49 +353,48 @@ }]; } - $(document).on('pageinit', "#libraryFileOrganizerLogPage", function () { - var page = this; + return function (view, params) { - $('.btnClearLog', page).on('click', function () { + page = view; + + var clearButton = view.querySelector('.btnClearLog'); + clearButton.addEventListener('click', function () { ApiClient.clearOrganizationLog().then(function () { - reloadItems(page); + reloadItems(view, true); }, Dashboard.processErrorResponse); }); - }).on('pageshow', '#libraryFileOrganizerLogPage', function () { + view.addEventListener('viewshow', function (e) { - LibraryMenu.setTabs('autoorganize', 0, getTabs); + LibraryMenu.setTabs('autoorganize', 0, getTabs); - var page = this; + reloadItems(view, true); - reloadItems(page); + events.on(serverNotifications, 'AutoOrganizeUpdate', onServerEvent); - // on here - taskButton({ - mode: 'on', - progressElem: page.querySelector('.organizeProgress'), - panel: page.querySelector('.organizeTaskPanel'), - taskKey: 'AutoOrganize', - button: page.querySelector('.btnOrganize') + // on here + taskButton({ + mode: 'on', + progressElem: view.querySelector('.organizeProgress'), + panel: view.querySelector('.organizeTaskPanel'), + taskKey: 'AutoOrganize', + button: view.querySelector('.btnOrganize') + }); }); - Events.on(ApiClient, 'websocketmessage', onWebSocketMessage); + view.addEventListener('viewhide', function (e) { - }).on('pagebeforehide', '#libraryFileOrganizerLogPage', function () { + currentResult = null; - var page = this; + events.off(serverNotifications, 'AutoOrganizeUpdate', onServerEvent); - currentResult = null; - - // off here - taskButton({ - mode: 'off', - button: page.querySelector('.btnOrganize') + // off here + taskButton({ + mode: 'off', + button: view.querySelector('.btnOrganize') + }); }); - - Events.off(ApiClient, 'websocketmessage', onWebSocketMessage); - }); - + }; }); \ No newline at end of file diff --git a/dashboard-ui/scripts/autoorganizesmart.js b/dashboard-ui/scripts/autoorganizesmart.js index 444487daf..5a411c221 100644 --- a/dashboard-ui/scripts/autoorganizesmart.js +++ b/dashboard-ui/scripts/autoorganizesmart.js @@ -1,4 +1,4 @@ -define(['jQuery', 'listViewStyle'], function ($) { +define(['listViewStyle'], function () { var query = { @@ -8,6 +8,19 @@ var currentResult; + function parentWithClass(elem, className) { + + while (!elem.classList || !elem.classList.contains(className)) { + elem = elem.parentNode; + + if (!elem) { + return null; + } + } + + return elem; + } + function reloadList(page) { Dashboard.showLoadingMsg(); @@ -60,9 +73,13 @@ html += '
'; + html += '
'; html += 'folder'; + html += '
'; - html += (info.DisplayName || info.ItemName); + html += '
'; + html += "

" + (info.DisplayName || info.ItemName) + "

"; + html += '
'; html += '
'; @@ -71,15 +88,16 @@ html += info.MatchStrings.map(function (m) { var matchStringHtml = ''; + matchStringHtml += '
'; - matchStringHtml += '
'; + matchStringHtml += '
'; matchStringHtml += "
" + m + "
"; matchStringHtml += '
'; - matchStringHtml += ''; + matchStringHtml += ''; matchStringHtml += '
'; matchStringIndex++; @@ -93,7 +111,8 @@ html += "
"; } - $('.divMatchInfos', page).html(html); + var matchInfos = page.querySelector('.divMatchInfos'); + matchInfos.innerHTML = html; } function getTabs() { @@ -112,45 +131,47 @@ }]; } - $(document).on('pageinit', "#libraryFileOrganizerSmartMatchPage", function () { + return function (view, params) { - var page = this; + var self = this; - $('.divMatchInfos', page).on('click', '.btnDeleteMatchEntry', function () { + var divInfos = view.querySelector('.divMatchInfos'); - var button = this; - var index = parseInt(button.getAttribute('data-index')); - var matchIndex = parseInt(button.getAttribute('data-matchindex')); + divInfos.addEventListener('click', function (e) { - var info = currentResult.Items[index]; - var entries = [ - { - Name: info.ItemName, - Value: info.MatchStrings[matchIndex] - }]; + var button = parentWithClass(e.target, 'btnDeleteMatchEntry'); - ApiClient.deleteSmartMatchEntries(entries).then(function () { + if (button) { - reloadList(page); + var index = parseInt(button.getAttribute('data-index')); + var matchIndex = parseInt(button.getAttribute('data-matchindex')); - }, Dashboard.processErrorResponse); + var info = currentResult.Items[index]; + var entries = [ + { + Name: info.ItemName, + Value: info.MatchStrings[matchIndex] + }]; + ApiClient.deleteSmartMatchEntries(entries).then(function () { + + reloadList(view); + + }, Dashboard.processErrorResponse); + } }); - }).on('pageshow', "#libraryFileOrganizerSmartMatchPage", function () { + view.addEventListener('viewshow', function (e) { - var page = this; + LibraryMenu.setTabs('autoorganize', 2, getTabs); + Dashboard.showLoadingMsg(); - LibraryMenu.setTabs('autoorganize', 2, getTabs); + reloadList(view); + }); - Dashboard.showLoadingMsg(); - - reloadList(page); - - }).on('pagebeforehide', "#libraryFileOrganizerSmartMatchPage", function () { - - var page = this; - currentResult = null; - }); + view.addEventListener('viewhide', function (e) { + currentResult = null; + }); + }; }); \ No newline at end of file diff --git a/dashboard-ui/scripts/autoorganizetv.js b/dashboard-ui/scripts/autoorganizetv.js index 8a85790a7..c9c97f92c 100644 --- a/dashboard-ui/scripts/autoorganizetv.js +++ b/dashboard-ui/scripts/autoorganizetv.js @@ -1,13 +1,4 @@ -define(['jQuery'], function ($) { - - function updateSeasonPatternHelp(page, value) { - - var resultValue = value.replace('%s', '1').replace('%0s', '01').replace('%00s', '001'); - - var replacementHtmlResult = Globalize.translate('OrganizePatternResult').replace('{0}', resultValue); - - $('.seasonFolderFieldDescription', page).html(replacementHtmlResult); - } +define([], function () { function getEpisodeFileName(value, enableMultiEpisode) { @@ -38,70 +29,50 @@ .replace('%00e', '004'); } - function updateEpisodePatternHelp(page, value) { - - value = getEpisodeFileName(value, false); - - var replacementHtmlResult = Globalize.translate('OrganizePatternResult').replace('{0}', value); - - $('.episodePatternDescription', page).html(replacementHtmlResult); - } - - function updateMultiEpisodePatternHelp(page, value) { - - value = getEpisodeFileName(value, true); - - var replacementHtmlResult = Globalize.translate('OrganizePatternResult').replace('{0}', value); - - $('.multiEpisodePatternDescription', page).html(replacementHtmlResult); - } - - function loadPage(page, config) { + function loadPage(view, config) { var tvOptions = config.TvOptions; - $('#chkEnableTvSorting', page).checked(tvOptions.IsEnabled); - $('#chkOverwriteExistingEpisodes', page).checked(tvOptions.OverwriteExistingEpisodes); - $('#chkDeleteEmptyFolders', page).checked(tvOptions.DeleteEmptyFolders); + view.querySelector('#chkEnableTvSorting').checked = tvOptions.IsEnabled; + view.querySelector('#chkOverwriteExistingEpisodes').checked = tvOptions.OverwriteExistingEpisodes; + view.querySelector('#chkDeleteEmptyFolders').checked = tvOptions.DeleteEmptyFolders; - $('#txtMinFileSize', page).val(tvOptions.MinFileSizeMb); - $('#txtSeasonFolderPattern', page).val(tvOptions.SeasonFolderPattern).trigger('change'); - $('#txtSeasonZeroName', page).val(tvOptions.SeasonZeroFolderName); - $('#txtWatchFolder', page).val(tvOptions.WatchLocations[0] || ''); + view.querySelector('#txtMinFileSize').value = tvOptions.MinFileSizeMb; + view.querySelector('#txtSeasonFolderPattern').value = tvOptions.SeasonFolderPattern; + view.querySelector('#txtSeasonZeroName').value = tvOptions.SeasonZeroFolderName; + view.querySelector('#txtWatchFolder').value = tvOptions.WatchLocations[0] || ''; - $('#txtEpisodePattern', page).val(tvOptions.EpisodeNamePattern).trigger('change'); - $('#txtMultiEpisodePattern', page).val(tvOptions.MultiEpisodeNamePattern).trigger('change'); + view.querySelector('#txtEpisodePattern').value = tvOptions.EpisodeNamePattern; + view.querySelector('#txtMultiEpisodePattern').value = tvOptions.MultiEpisodeNamePattern; - $('#txtDeleteLeftOverFiles', page).val(tvOptions.LeftOverFileExtensionsToDelete.join(';')); - - $('#copyOrMoveFile', page).val(tvOptions.CopyOriginalFile.toString()); + view.querySelector('#txtDeleteLeftOverFiles').value = tvOptions.LeftOverFileExtensionsToDelete.join(';'); + view.querySelector('#copyOrMoveFile').value = tvOptions.CopyOriginalFile.toString(); } - function onSubmit() { - var form = this; + function onSubmit(view) { ApiClient.getNamedConfiguration('autoorganize').then(function (config) { var tvOptions = config.TvOptions; + + tvOptions.IsEnabled = view.querySelector('#chkEnableTvSorting').checked; + tvOptions.OverwriteExistingEpisodes = view.querySelector('#chkOverwriteExistingEpisodes').checked; + tvOptions.DeleteEmptyFolders = view.querySelector('#chkDeleteEmptyFolders').checked; - tvOptions.IsEnabled = $('#chkEnableTvSorting', form).checked(); - tvOptions.OverwriteExistingEpisodes = $('#chkOverwriteExistingEpisodes', form).checked(); - tvOptions.DeleteEmptyFolders = $('#chkDeleteEmptyFolders', form).checked(); + tvOptions.MinFileSizeMb = view.querySelector('#txtMinFileSize').value; + tvOptions.SeasonFolderPattern = view.querySelector('#txtSeasonFolderPattern').value; + tvOptions.SeasonZeroFolderName = view.querySelector('#txtSeasonZeroName').value; - tvOptions.MinFileSizeMb = $('#txtMinFileSize', form).val(); - tvOptions.SeasonFolderPattern = $('#txtSeasonFolderPattern', form).val(); - tvOptions.SeasonZeroFolderName = $('#txtSeasonZeroName', form).val(); + tvOptions.EpisodeNamePattern = view.querySelector('#txtEpisodePattern').value; + tvOptions.MultiEpisodeNamePattern = view.querySelector('#txtMultiEpisodePattern').value; - tvOptions.EpisodeNamePattern = $('#txtEpisodePattern', form).val(); - tvOptions.MultiEpisodeNamePattern = $('#txtMultiEpisodePattern', form).val(); + tvOptions.LeftOverFileExtensionsToDelete = view.querySelector('#txtDeleteLeftOverFiles').value.split(';'); - tvOptions.LeftOverFileExtensionsToDelete = $('#txtDeleteLeftOverFiles', form).val().split(';'); - - var watchLocation = $('#txtWatchFolder', form).val(); + var watchLocation = view.querySelector('#txtWatchFolder').value; tvOptions.WatchLocations = watchLocation ? [watchLocation] : []; - tvOptions.CopyOriginalFile = $('#copyOrMoveFile', form).val(); + tvOptions.CopyOriginalFile = view.querySelector('#copyOrMoveFile').value; ApiClient.updateNamedConfiguration('autoorganize', config).then(Dashboard.processServerConfigurationUpdateResult, Dashboard.processErrorResponse); }); @@ -125,29 +96,40 @@ }]; } - $(document).on('pageinit', "#libraryFileOrganizerPage", function () { + return function (view, params) { - var page = this; - $('#txtSeasonFolderPattern', page).on('change keyup', function () { + function updateSeasonPatternHelp() { - updateSeasonPatternHelp(page, this.value); + var value = view.querySelector('#txtSeasonFolderPattern').value; + value = value.replace('%s', '1').replace('%0s', '01').replace('%00s', '001'); - }); + var replacementHtmlResult = Globalize.translate('OrganizePatternResult').replace('{0}', value); - $('#txtEpisodePattern', page).on('change keyup', function () { + view.querySelector('.seasonFolderFieldDescription').innerHTML = replacementHtmlResult; + } - updateEpisodePatternHelp(page, this.value); + function updateEpisodePatternHelp() { - }); + var value = view.querySelector('#txtEpisodePattern').value; + var fileName = getEpisodeFileName(value, false); - $('#txtMultiEpisodePattern', page).on('change keyup', function () { + var replacementHtmlResult = Globalize.translate('OrganizePatternResult').replace('{0}', fileName); - updateMultiEpisodePatternHelp(page, this.value); + view.querySelector('.episodePatternDescription').innerHTML = replacementHtmlResult; + } - }); + function updateMultiEpisodePatternHelp() { - $('#btnSelectWatchFolder', page).on("click.selectDirectory", function () { + var value = view.querySelector('#txtMultiEpisodePattern').value; + var fileName = getEpisodeFileName(value, false); + + var replacementHtmlResult = Globalize.translate('OrganizePatternResult').replace('{0}', fileName); + + view.querySelector('.multiEpisodePatternDescription').innerHTML = replacementHtmlResult; + } + + function selectWatchFolder(e) { require(['directorybrowser'], function (directoryBrowser) { @@ -158,28 +140,42 @@ callback: function (path) { if (path) { - $('#txtWatchFolder', page).val(path); + + view.querySelector('#txtWatchFolder').value = path; } picker.close(); }, - header: Globalize.translate('HeaderSelectWatchFolder'), - instruction: Globalize.translate('HeaderSelectWatchFolderHelp') }); }); + } + + view.querySelector('#txtSeasonFolderPattern').addEventListener('change', updateSeasonPatternHelp); + view.querySelector('#txtSeasonFolderPattern').addEventListener('keyup', updateSeasonPatternHelp); + view.querySelector('#txtEpisodePattern').addEventListener('change', updateEpisodePatternHelp); + view.querySelector('#txtEpisodePattern').addEventListener('keyup', updateEpisodePatternHelp); + view.querySelector('#txtMultiEpisodePattern').addEventListener('change', updateMultiEpisodePatternHelp); + view.querySelector('#txtMultiEpisodePattern').addEventListener('keyup', updateMultiEpisodePatternHelp); + view.querySelector('#btnSelectWatchFolder').addEventListener('click', selectWatchFolder); + + view.querySelector('.libraryFileOrganizerForm').addEventListener('submit', function (e) { + + e.preventDefault(); + onSubmit(view); + return false; }); - $('.libraryFileOrganizerForm').off('submit', onSubmit).on('submit', onSubmit); + view.addEventListener('viewshow', function (e) { - }).on('pageshow', "#libraryFileOrganizerPage", function () { + LibraryMenu.setTabs('autoorganize', 1, getTabs); - var page = this; - - LibraryMenu.setTabs('autoorganize', 1, getTabs); - - ApiClient.getNamedConfiguration('autoorganize').then(function (config) { - loadPage(page, config); + ApiClient.getNamedConfiguration('autoorganize').then(function (config) { + loadPage(view, config); + updateSeasonPatternHelp(); + updateEpisodePatternHelp(); + updateMultiEpisodePatternHelp(); + }); }); - }); + }; }); \ No newline at end of file diff --git a/dashboard-ui/scripts/device.js b/dashboard-ui/scripts/device.js index 0d1a30d4b..d84403903 100644 --- a/dashboard-ui/scripts/device.js +++ b/dashboard-ui/scripts/device.js @@ -3,9 +3,9 @@ function load(page, device, capabilities) { if (capabilities.SupportsContentUploading) { - $('#fldCameraUploadPath', page).show(); + $('#fldCameraUploadPath', page).removeClass('hide'); } else { - $('#fldCameraUploadPath', page).hide(); + $('#fldCameraUploadPath', page).addClass('hide'); } $('#txtCustomName', page).val(device.CustomName || ''); diff --git a/dashboard-ui/scripts/itemdetailpage.js b/dashboard-ui/scripts/itemdetailpage.js index d25c1381c..ac17d1385 100644 --- a/dashboard-ui/scripts/itemdetailpage.js +++ b/dashboard-ui/scripts/itemdetailpage.js @@ -1531,16 +1531,7 @@ renderThemeSongs(page, themeSongs); renderThemeVideos(page, themeVideos); - - page.dispatchEvent(new CustomEvent("thememediadownload", { - detail: { - themeMediaResult: result - }, - bubbles: true - })); - }); - } function renderThemeSongs(page, items) { diff --git a/dashboard-ui/scripts/livetvrecordinglist.js b/dashboard-ui/scripts/livetvrecordinglist.js index 18145421d..498a96364 100644 --- a/dashboard-ui/scripts/livetvrecordinglist.js +++ b/dashboard-ui/scripts/livetvrecordinglist.js @@ -1,4 +1,4 @@ -define(['jQuery', 'cardBuilder'], function ($, cardBuilder) { +define(['jQuery', 'cardBuilder', 'dom'], function ($, cardBuilder, dom) { // The base query options var query = { @@ -29,7 +29,7 @@ updateFilterControls(); - var screenWidth = window.innerWidth; + var screenWidth = dom.getWindowSize().innerWidth; html += cardBuilder.getCardsHtml({ diff --git a/dashboard-ui/scripts/metadatasubtitles.js b/dashboard-ui/scripts/metadatasubtitles.js index a95deb891..7e78fbcb7 100644 --- a/dashboard-ui/scripts/metadatasubtitles.js +++ b/dashboard-ui/scripts/metadatasubtitles.js @@ -1,4 +1,4 @@ -define(['jQuery'], function ($) { +define(['jQuery', 'fnchecked'], function ($) { function loadPage(page, config, languages) { @@ -25,7 +25,7 @@ var culture = languages[i]; - html += '' + culture.DisplayName + ''; + html += ''; } $('.downloadLanguages', page).html(html); diff --git a/dashboard-ui/scripts/moviecollections.js b/dashboard-ui/scripts/moviecollections.js index 2dce7084c..f37f0df23 100644 --- a/dashboard-ui/scripts/moviecollections.js +++ b/dashboard-ui/scripts/moviecollections.js @@ -99,7 +99,8 @@ preferThumb: true, context: 'movies', lazy: true, - overlayPlayButton: true + overlayPlayButton: true, + showTitle: true }); } else if (viewStyle == "ThumbCard") { @@ -155,7 +156,8 @@ context: 'movies', centerText: true, lazy: true, - overlayPlayButton: true + overlayPlayButton: true, + showTitle: true }); } diff --git a/dashboard-ui/scripts/moviesrecommended.js b/dashboard-ui/scripts/moviesrecommended.js index 7fc741957..8723b1f5f 100644 --- a/dashboard-ui/scripts/moviesrecommended.js +++ b/dashboard-ui/scripts/moviesrecommended.js @@ -1,4 +1,4 @@ -define(['libraryBrowser', 'components/categorysyncbuttons', 'cardBuilder', 'scrollStyles', 'emby-itemscontainer', 'emby-tabs', 'emby-button'], function (libraryBrowser, categorysyncbuttons, cardBuilder) { +define(['libraryBrowser', 'components/categorysyncbuttons', 'cardBuilder', 'dom', 'scrollStyles', 'emby-itemscontainer', 'emby-tabs', 'emby-button'], function (libraryBrowser, categorysyncbuttons, cardBuilder, dom) { function enableScrollX() { return browserInfo.mobile && AppInfo.enableAppLayouts; @@ -42,7 +42,7 @@ function loadResume(page, userId, parentId) { - var screenWidth = window.innerWidth; + var screenWidth = dom.getWindowSize().innerWidth; var options = { @@ -134,7 +134,7 @@ function loadSuggestions(page, userId, parentId) { - var screenWidth = window.innerWidth; + var screenWidth = dom.getWindowSize().innerWidth; var url = ApiClient.getUrl("Movies/Recommendations", { diff --git a/dashboard-ui/scripts/musicrecommended.js b/dashboard-ui/scripts/musicrecommended.js index 62e36901f..f18ebfa09 100644 --- a/dashboard-ui/scripts/musicrecommended.js +++ b/dashboard-ui/scripts/musicrecommended.js @@ -1,8 +1,8 @@ -define(['libraryBrowser', 'cardBuilder', 'scrollStyles', 'emby-itemscontainer', 'emby-tabs', 'emby-button'], function (libraryBrowser, cardBuilder) { +define(['libraryBrowser', 'cardBuilder', 'dom', 'scrollStyles', 'emby-itemscontainer', 'emby-tabs', 'emby-button'], function (libraryBrowser, cardBuilder, dom) { function itemsPerRow() { - var screenWidth = window.innerWidth; + var screenWidth = dom.getWindowSize().innerWidth; return screenWidth >= 1920 ? 9 : (screenWidth >= 1200 ? 12 : (screenWidth >= 1000 ? 10 : 8)); } diff --git a/dashboard-ui/scripts/mysync.js b/dashboard-ui/scripts/mysync.js index f4c96efce..211138d80 100644 --- a/dashboard-ui/scripts/mysync.js +++ b/dashboard-ui/scripts/mysync.js @@ -1,4 +1,4 @@ -define(['loading', 'apphost', 'globalize', 'syncJobList', 'events', 'localsync', 'emby-button', 'paper-icon-button-light'], function (loading, appHost, globalize, syncJobList, events, localSync) { +define(['apphost', 'globalize', 'syncJobList', 'events', 'localsync', 'emby-button', 'paper-icon-button-light'], function (appHost, globalize, syncJobList, events, localSync) { function initSupporterInfo(view, params) { @@ -40,13 +40,6 @@ var status = localSync.getSyncStatus(); - page.querySelector('.labelSyncStatus').innerHTML = Globalize.translate('LabelLocalSyncStatusValue', status); - if (status == 'Active') { - loading.show(); - } else { - loading.hide(); - } - if (status == "Active") { page.querySelector('.btnSyncNow').classList.add('hide'); } @@ -103,8 +96,6 @@ view.addEventListener('viewbeforehide', function () { - loading.hide(); - if (interval) { clearInterval(interval); interval = null; diff --git a/dashboard-ui/scripts/scheduledtaskpage.js b/dashboard-ui/scripts/scheduledtaskpage.js index 36e4cd75a..96580ff13 100644 --- a/dashboard-ui/scripts/scheduledtaskpage.js +++ b/dashboard-ui/scripts/scheduledtaskpage.js @@ -1,333 +1,340 @@ -// Array Remove - By John Resig (MIT Licensed) -Array.prototype.remove = function (from, to) { - var rest = this.slice((to || from) + 1 || this.length); - this.length = from < 0 ? this.length + from : from; - return this.push.apply(this, rest); -}; +define(['jQuery'], function ($) { -var ScheduledTaskPage = { + // Array Remove - By John Resig (MIT Licensed) + Array.prototype.remove = function (from, to) { + var rest = this.slice((to || from) + 1 || this.length); + this.length = from < 0 ? this.length + from : from; + return this.push.apply(this, rest); + }; - refreshScheduledTask: function () { - Dashboard.showLoadingMsg(); + window.ScheduledTaskPage = { - var id = getParameterByName('id'); + refreshScheduledTask: function () { + Dashboard.showLoadingMsg(); + + var id = getParameterByName('id'); - ApiClient.getScheduledTask(id).then(ScheduledTaskPage.loadScheduledTask); - }, + ApiClient.getScheduledTask(id).then(ScheduledTaskPage.loadScheduledTask); + }, - loadScheduledTask: function (task) { + loadScheduledTask: function (task) { - var page = $($.mobile.activePage)[0]; + var page = $($.mobile.activePage)[0]; - $('.taskName', page).html(task.Name); + $('.taskName', page).html(task.Name); - $('#pTaskDescription', page).html(task.Description); + $('#pTaskDescription', page).html(task.Description); - require(['listViewStyle'], function () { - ScheduledTaskPage.loadTaskTriggers(page, task); - }); + require(['listViewStyle'], function () { + ScheduledTaskPage.loadTaskTriggers(page, task); + }); - Dashboard.hideLoadingMsg(); - }, + Dashboard.hideLoadingMsg(); + }, - loadTaskTriggers: function (context, task) { + loadTaskTriggers: function (context, task) { - var html = ''; + var html = ''; - html += '
'; + html += '
'; - for (var i = 0, length = task.Triggers.length; i < length; i++) { + for (var i = 0, length = task.Triggers.length; i < length; i++) { - var trigger = task.Triggers[i]; + var trigger = task.Triggers[i]; - html += '
'; + html += '
'; - html += 'schedule'; + html += 'schedule'; - html += '
'; - - html += "
" + ScheduledTaskPage.getTriggerFriendlyName(trigger) + "
"; - - if (trigger.MaxRuntimeMs) { - html += '
'; - - var hours = trigger.MaxRuntimeMs / 3600000; - - if (hours == 1) { - html += Globalize.translate('ValueTimeLimitSingleHour'); + if (trigger.MaxRuntimeMs) { + html += '
'; } else { - html += Globalize.translate('ValueTimeLimitMultiHour', hours); + html += '
'; } + + html += "
" + ScheduledTaskPage.getTriggerFriendlyName(trigger) + "
"; + + if (trigger.MaxRuntimeMs) { + html += '
'; + + var hours = trigger.MaxRuntimeMs / 3600000; + + if (hours == 1) { + html += Globalize.translate('ValueTimeLimitSingleHour'); + } else { + html += Globalize.translate('ValueTimeLimitMultiHour', hours); + } + html += '
'; + } + + html += '
'; + + html += ''; + html += '
'; } html += '
'; - html += ''; + context.querySelector('.taskTriggers').innerHTML = html; + }, - html += '
'; - } + getTriggerFriendlyName: function (trigger) { - html += '
'; - - context.querySelector('.taskTriggers').innerHTML = html; - }, - - getTriggerFriendlyName: function (trigger) { - - if (trigger.Type == 'DailyTrigger') { - return 'Daily at ' + ScheduledTaskPage.getDisplayTime(trigger.TimeOfDayTicks); - } - - if (trigger.Type == 'WeeklyTrigger') { - - return trigger.DayOfWeek + 's at ' + ScheduledTaskPage.getDisplayTime(trigger.TimeOfDayTicks); - } - - if (trigger.Type == 'SystemEventTrigger') { - - if (trigger.SystemEvent == 'WakeFromSleep') { - return 'On wake from sleep'; - } - } - - if (trigger.Type == 'IntervalTrigger') { - - var hours = trigger.IntervalTicks / 36000000000; - - if (hours == .25) { - return "Every 15 minutes"; - } - if (hours == .5) { - return "Every 30 minutes"; - } - if (hours == .75) { - return "Every 45 minutes"; - } - if (hours == 1) { - return "Every hour"; + if (trigger.Type == 'DailyTrigger') { + return 'Daily at ' + ScheduledTaskPage.getDisplayTime(trigger.TimeOfDayTicks); } - return 'Every ' + hours + ' hours'; - } + if (trigger.Type == 'WeeklyTrigger') { - if (trigger.Type == 'StartupTrigger') { - return 'On application startup'; - } + return trigger.DayOfWeek + 's at ' + ScheduledTaskPage.getDisplayTime(trigger.TimeOfDayTicks); + } - return trigger.Type; - }, + if (trigger.Type == 'SystemEventTrigger') { - getDisplayTime: function (ticks) { + if (trigger.SystemEvent == 'WakeFromSleep') { + return 'On wake from sleep'; + } + } - var hours = ticks / 36000000000; + if (trigger.Type == 'IntervalTrigger') { - if (hours < 1) { - hours = 0; - } + var hours = trigger.IntervalTicks / 36000000000; - hours = Math.floor(hours); + if (hours == .25) { + return "Every 15 minutes"; + } + if (hours == .5) { + return "Every 30 minutes"; + } + if (hours == .75) { + return "Every 45 minutes"; + } + if (hours == 1) { + return "Every hour"; + } - ticks -= (hours * 36000000000); + return 'Every ' + hours + ' hours'; + } - var minutes = Math.floor((ticks / 600000000)); + if (trigger.Type == 'StartupTrigger') { + return 'On application startup'; + } - var suffix = "am"; + return trigger.Type; + }, - if (hours > 11) { - suffix = "pm"; - } + getDisplayTime: function (ticks) { - hours = hours % 12; + var hours = ticks / 36000000000; - if (hours == 0) { - hours = 12; - } + if (hours < 1) { + hours = 0; + } - if (minutes < 10) { - minutes = '0' + minutes; - } + hours = Math.floor(hours); - return hours + ':' + minutes + ' ' + suffix; - }, + ticks -= (hours * 36000000000); - showAddTriggerPopup: function () { + var minutes = Math.floor((ticks / 600000000)); - var page = $.mobile.activePage; + var suffix = "am"; - $('#selectTriggerType', page).val('DailyTrigger').trigger('change'); + if (hours > 11) { + suffix = "pm"; + } - $('#popupAddTrigger', page).on("popupafteropen", function () { - $('#addTriggerForm input:first', this).focus(); - }).popup("open").on("popupafterclose", function () { + hours = hours % 12; - $('#addTriggerForm', page).off("submit"); - $(this).off("popupafterclose"); - }); - }, + if (hours == 0) { + hours = 12; + } - confirmDeleteTrigger: function (index) { + if (minutes < 10) { + minutes = '0' + minutes; + } - require(['confirm'], function (confirm) { - confirm(Globalize.translate('MessageDeleteTaskTrigger'), Globalize.translate('HeaderDeleteTaskTrigger')).then(function () { - ScheduledTaskPage.deleteTrigger(index); + return hours + ':' + minutes + ' ' + suffix; + }, + + showAddTriggerPopup: function () { + + var page = $.mobile.activePage; + + $('#selectTriggerType', page).val('DailyTrigger').trigger('change'); + + $('#popupAddTrigger', page).on("popupafteropen", function () { + $('#addTriggerForm input:first', this).focus(); + }).popup("open").on("popupafterclose", function () { + + $('#addTriggerForm', page).off("submit"); + $(this).off("popupafterclose"); }); - }); - }, + }, - deleteTrigger: function (index) { + confirmDeleteTrigger: function (index) { - Dashboard.showLoadingMsg(); + require(['confirm'], function (confirm) { + confirm(Globalize.translate('MessageDeleteTaskTrigger'), Globalize.translate('HeaderDeleteTaskTrigger')).then(function () { + ScheduledTaskPage.deleteTrigger(index); + }); + }); + }, - var id = getParameterByName('id'); + deleteTrigger: function (index) { + + Dashboard.showLoadingMsg(); + + var id = getParameterByName('id'); - ApiClient.getScheduledTask(id).then(function (task) { + ApiClient.getScheduledTask(id).then(function (task) { - task.Triggers.remove(index); + task.Triggers.remove(index); - ApiClient.updateScheduledTaskTriggers(task.Id, task.Triggers).then(function () { + ApiClient.updateScheduledTaskTriggers(task.Id, task.Triggers).then(function () { - ScheduledTaskPage.refreshScheduledTask(); + ScheduledTaskPage.refreshScheduledTask(); + + }); + + }); + }, + + refreshTriggerFields: function (triggerType) { + + var page = $.mobile.activePage; + + if (triggerType == 'DailyTrigger') { + + $('#fldTimeOfDay', page).show(); + $('#fldDayOfWeek', page).hide(); + $('#fldSelectSystemEvent', page).hide(); + $('#fldSelectInterval', page).hide(); + $('#txtTimeOfDay', page).attr('required', 'required'); + } + + else if (triggerType == 'WeeklyTrigger') { + $('#fldTimeOfDay', page).show(); + $('#fldDayOfWeek', page).show(); + $('#fldSelectSystemEvent', page).hide(); + $('#fldSelectInterval', page).hide(); + $('#txtTimeOfDay', page).attr('required', 'required'); + } + + else if (triggerType == 'SystemEventTrigger') { + $('#fldTimeOfDay', page).hide(); + $('#fldDayOfWeek', page).hide(); + $('#fldSelectSystemEvent', page).show(); + $('#fldSelectInterval', page).hide(); + $('#txtTimeOfDay', page).removeAttr('required'); + } + + else if (triggerType == 'IntervalTrigger') { + $('#fldTimeOfDay', page).hide(); + $('#fldDayOfWeek', page).hide(); + $('#fldSelectSystemEvent', page).hide(); + $('#fldSelectInterval', page).show(); + $('#txtTimeOfDay', page).removeAttr('required'); + } + + else if (triggerType == 'StartupTrigger') { + $('#fldTimeOfDay', page).hide(); + $('#fldDayOfWeek', page).hide(); + $('#fldSelectSystemEvent', page).hide(); + $('#fldSelectInterval', page).hide(); + $('#txtTimeOfDay', page).removeAttr('required'); + } + }, + + getTriggerToAdd: function () { + + var page = $.mobile.activePage; + + var trigger = { + Type: $('#selectTriggerType', page).val() + }; + + if (trigger.Type == 'DailyTrigger') { + trigger.TimeOfDayTicks = ScheduledTaskPage.getTimeOfDayTicks($('#txtTimeOfDay', page).val()); + } + + else if (trigger.Type == 'WeeklyTrigger') { + trigger.DayOfWeek = $('#selectDayOfWeek', page).val(); + trigger.TimeOfDayTicks = ScheduledTaskPage.getTimeOfDayTicks($('#txtTimeOfDay', page).val()); + } + + else if (trigger.Type == 'SystemEventTrigger') { + trigger.SystemEvent = $('#selectSystemEvent', page).val(); + } + + else if (trigger.Type == 'IntervalTrigger') { + trigger.IntervalTicks = $('#selectInterval', page).val(); + } + + var timeLimit = $('#txtTimeLimit', page).val() || '0'; + timeLimit = parseFloat(timeLimit) * 3600000; + + trigger.MaxRuntimeMs = timeLimit || null; + + return trigger; + }, + + getTimeOfDayTicks: function (val) { + + var vals = val.split(':'); + + var hours = vals[0]; + var minutes = vals[1].split(' ')[0]; + + // Add hours + var ticks = hours * 60 * 60 * 1000 * 10000; + + ticks += minutes * 60 * 1000 * 10000; + + return ticks; + } + }; + + (function () { + + function onSubmit() { + + Dashboard.showLoadingMsg(); + + var id = getParameterByName('id'); + + ApiClient.getScheduledTask(id).then(function (task) { + + task.Triggers.push(ScheduledTaskPage.getTriggerToAdd()); + + ApiClient.updateScheduledTaskTriggers(task.Id, task.Triggers).then(function () { + + $('#popupAddTrigger').popup('close'); + + ScheduledTaskPage.refreshScheduledTask(); + + }); }); - }); - }, - - refreshTriggerFields: function (triggerType) { - - var page = $.mobile.activePage; - - if (triggerType == 'DailyTrigger') { - - $('#fldTimeOfDay', page).show(); - $('#fldDayOfWeek', page).hide(); - $('#fldSelectSystemEvent', page).hide(); - $('#fldSelectInterval', page).hide(); - $('#txtTimeOfDay', page).attr('required', 'required'); + return false; } - else if (triggerType == 'WeeklyTrigger') { - $('#fldTimeOfDay', page).show(); - $('#fldDayOfWeek', page).show(); - $('#fldSelectSystemEvent', page).hide(); - $('#fldSelectInterval', page).hide(); - $('#txtTimeOfDay', page).attr('required', 'required'); - } + $(document).on('pageinit', "#scheduledTaskPage", function () { - else if (triggerType == 'SystemEventTrigger') { - $('#fldTimeOfDay', page).hide(); - $('#fldDayOfWeek', page).hide(); - $('#fldSelectSystemEvent', page).show(); - $('#fldSelectInterval', page).hide(); - $('#txtTimeOfDay', page).removeAttr('required'); - } + var page = this; - else if (triggerType == 'IntervalTrigger') { - $('#fldTimeOfDay', page).hide(); - $('#fldDayOfWeek', page).hide(); - $('#fldSelectSystemEvent', page).hide(); - $('#fldSelectInterval', page).show(); - $('#txtTimeOfDay', page).removeAttr('required'); - } + $('.addTriggerForm').off('submit', onSubmit).on('submit', onSubmit); - else if (triggerType == 'StartupTrigger') { - $('#fldTimeOfDay', page).hide(); - $('#fldDayOfWeek', page).hide(); - $('#fldSelectSystemEvent', page).hide(); - $('#fldSelectInterval', page).hide(); - $('#txtTimeOfDay', page).removeAttr('required'); - } - }, + page.querySelector('.timeFieldExample').innerHTML = Globalize.translate('ValueExample', '1:00 PM'); - getTriggerToAdd: function () { - - var page = $.mobile.activePage; - - var trigger = { - Type: $('#selectTriggerType', page).val() - }; - - if (trigger.Type == 'DailyTrigger') { - trigger.TimeOfDayTicks = ScheduledTaskPage.getTimeOfDayTicks($('#txtTimeOfDay', page).val()); - } - - else if (trigger.Type == 'WeeklyTrigger') { - trigger.DayOfWeek = $('#selectDayOfWeek', page).val(); - trigger.TimeOfDayTicks = ScheduledTaskPage.getTimeOfDayTicks($('#txtTimeOfDay', page).val()); - } - - else if (trigger.Type == 'SystemEventTrigger') { - trigger.SystemEvent = $('#selectSystemEvent', page).val(); - } - - else if (trigger.Type == 'IntervalTrigger') { - trigger.IntervalTicks = $('#selectInterval', page).val(); - } - - var timeLimit = $('#txtTimeLimit', page).val() || '0'; - timeLimit = parseFloat(timeLimit) * 3600000; - - trigger.MaxRuntimeMs = timeLimit || null; - - return trigger; - }, - - getTimeOfDayTicks: function (val) { - - var vals = val.split(':'); - - var hours = vals[0]; - var minutes = vals[1].split(' ')[0]; - - // Add hours - var ticks = hours * 60 * 60 * 1000 * 10000; - - ticks += minutes * 60 * 1000 * 10000; - - return ticks; - } -}; - -(function () { - - function onSubmit() { - - Dashboard.showLoadingMsg(); - - var id = getParameterByName('id'); - - ApiClient.getScheduledTask(id).then(function (task) { - - task.Triggers.push(ScheduledTaskPage.getTriggerToAdd()); - - ApiClient.updateScheduledTaskTriggers(task.Id, task.Triggers).then(function () { - - $('#popupAddTrigger').popup('close'); - - ScheduledTaskPage.refreshScheduledTask(); - - }); + }).on('pageshow', "#scheduledTaskPage", function () { + ScheduledTaskPage.refreshScheduledTask(); }); - return false; - } - - $(document).on('pageinit', "#scheduledTaskPage", function () { - - var page = this; - - $('.addTriggerForm').off('submit', onSubmit).on('submit', onSubmit); - - page.querySelector('.timeFieldExample').innerHTML = Globalize.translate('ValueExample', '1:00 PM'); - - }).on('pageshow', "#scheduledTaskPage", function () { - - ScheduledTaskPage.refreshScheduledTask(); - }); - -})(); + })(); +}); \ No newline at end of file diff --git a/dashboard-ui/scripts/scheduledtaskspage.js b/dashboard-ui/scripts/scheduledtaskspage.js index c9ae8b156..c38e07315 100644 --- a/dashboard-ui/scripts/scheduledtaskspage.js +++ b/dashboard-ui/scripts/scheduledtaskspage.js @@ -1,4 +1,4 @@ -define(['jQuery', 'listViewStyle', 'paper-progress'], function ($) { +define(['jQuery', 'listViewStyle'], function ($) { function reloadList(page) { @@ -141,11 +141,14 @@ var progress = (task.CurrentProgressPercentage || 0).toFixed(1); - html += ''; - html += '' + progress + '%'; - html += ''; + html += '
'; + html += '
'; + html += '
'; + html += '
'; + html += '
'; html += "" + progress + "%"; + html += '
'; } else { diff --git a/dashboard-ui/scripts/sections.js b/dashboard-ui/scripts/sections.js index 6ebb27149..049c063a5 100644 --- a/dashboard-ui/scripts/sections.js +++ b/dashboard-ui/scripts/sections.js @@ -1,4 +1,4 @@ -define(['libraryBrowser', 'cardBuilder', 'appSettings', 'components/groupedcards', 'scrollStyles', 'emby-button', 'paper-icon-button-light', 'emby-itemscontainer'], function (LibraryBrowser, cardBuilder, appSettings, groupedcards) { +define(['libraryBrowser', 'cardBuilder', 'appSettings', 'components/groupedcards', 'dom', 'scrollStyles', 'emby-button', 'paper-icon-button-light', 'emby-itemscontainer'], function (libraryBrowser, cardBuilder, appSettings, groupedcards, dom) { function getUserViews(userId) { @@ -95,7 +95,7 @@ cssClass += ' ' + item.CollectionType + 'buttonCard'; } - var href = item.url || LibraryBrowser.getHref(item); + var href = item.url || libraryBrowser.getHref(item); var onclick = item.onclick ? ' onclick="' + item.onclick + '"' : ''; icon = item.icon || icon; @@ -402,7 +402,7 @@ function loadLatestChannelMedia(elem, userId) { - var screenWidth = window.innerWidth; + var screenWidth = dom.getWindowSize().innerWidth; var options = { @@ -451,7 +451,7 @@ if (items.length) { - var screenWidth = window.innerWidth; + var screenWidth = dom.getWindowSize().innerWidth; html += '
'; html += '

' + Globalize.translate('HeaderMyMedia') + '

'; @@ -495,7 +495,7 @@ function loadResume(elem, userId) { - var screenWidth = window.innerWidth; + var screenWidth = dom.getWindowSize().innerWidth; var options = { @@ -621,7 +621,7 @@ function loadLatestChannelItemsFromChannel(page, channel, index) { - var screenWidth = window.innerWidth; + var screenWidth = dom.getWindowSize().innerWidth; var options = { diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index 59f8686c9..bb3566360 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -179,7 +179,7 @@ var Dashboard = { } if (url.indexOf('/') != 0) { - if (url.indexOf('http') != 0 && url.indexOf('file:') != 0) { + if (url.indexOf('://') == -1) { url = '/' + url; } } @@ -1393,15 +1393,7 @@ var AppInfo = {}; define("cryptojs-sha1", [sha1Path]); define("cryptojs-md5", [md5Path]); - define("paper-button", ["html!" + bowerPath + "/paper-button/paper-button.html"]); - define("paper-icon-button", ["html!" + bowerPath + "/paper-icon-button/paper-icon-button.html"]); - - define("paper-textarea", ['webcomponentsjs', "html!" + bowerPath + "/paper-input/paper-textarea.html"]); define("paper-checkbox", ["html!" + bowerPath + "/paper-checkbox/paper-checkbox.html"]); - define("paper-progress", ["html!" + bowerPath + "/paper-progress/paper-progress.html"]); - define("paper-input", ['webcomponentsjs', "html!" + bowerPath + "/paper-input/paper-input.html"]); - - define("paper-collapse-item", ["html!" + bowerPath + "/paper-collapse-item/paper-collapse-item.html"]); define("jstree", [bowerPath + "/jstree/dist/jstree", "css!thirdparty/jstree/themes/default/style.min.css"]); @@ -1495,13 +1487,15 @@ var AppInfo = {}; define("jQuery", [bowerPath + '/jquery/dist/jquery.slim.min'], function () { - require(['legacy/fnchecked']); + require(['fnchecked']); if (window.ApiClient) { jQuery.ajax = ApiClient.ajax; } return jQuery; }); + define("fnchecked", ['legacy/fnchecked']); + define("dialogHelper", [embyWebComponentsBowerPath + "/dialoghelper/dialoghelper"], function (dialoghelper) { dialoghelper.setOnOpen(onDialogOpen); @@ -1526,10 +1520,21 @@ var AppInfo = {}; // mock this for now. not used in this app define("playbackManager", [], function () { return { + isPlaying: function () { + return MediaPlayer.currentItem != null; + }, isPlayingVideo: function () { - return false; + return MediaPlayer.currentItem != null; }, play: function (options) { + + if (options.fullscreen === false) { + // theme backdrops - not supported + if (!options.items || options.items[0].MediaType == 'Video') { + return; + } + } + MediaController.play(options); }, currentPlaylistIndex: function (options) { @@ -1552,6 +1557,9 @@ var AppInfo = {}; }, pause: function () { return MediaController.pause(); + }, + stop: function () { + return MediaController.stop(); } }; }); @@ -1643,7 +1651,7 @@ var AppInfo = {}; apiClient.getItem(apiClient.getCurrentUserId(), item).then(showItem); }); } else { - Dashboard.navigate(LibraryBrowser.getHref(item)); + Emby.Page.show('/' + LibraryBrowser.getHref(item), { item: item }); } } @@ -1748,14 +1756,15 @@ var AppInfo = {}; } if (Dashboard.isRunningInCordova() && browserInfo.android) { - define("localsync", ["cordova/android/localsync"]); + define("localsync", ["cordova/android/localsync"], returnFirstDependency); } else { - define("localsync", ["scripts/localsync"]); + define("localsync", ["scripts/localsync"], returnFirstDependency); } define("livetvcss", ['css!css/livetv.css']); define("detailtablecss", ['css!css/detailtable.css']); + define("autoorganizetablecss", ['css!css/autoorganizetable.css']); define("buttonenabled", ["legacy/buttonenabled"]); @@ -1779,10 +1788,10 @@ var AppInfo = {}; function initAfterDependencies() { - var deps = []; + var list = []; if (!window.fetch) { - deps.push('fetch'); + list.push('fetch'); } if (typeof Object.assign != 'function') { @@ -1797,7 +1806,7 @@ var AppInfo = {}; list.push('functionbind'); } - require(deps, function () { + require(list, function () { createConnectionManager().then(function () { @@ -1903,20 +1912,23 @@ var AppInfo = {}; defineRoute({ path: '/autoorganizelog.html', - dependencies: [], + dependencies: ['scripts/taskbutton', 'autoorganizetablecss'], + controller: 'scripts/autoorganizelog', roles: 'admin' }); defineRoute({ path: '/autoorganizesmart.html', - dependencies: [], + dependencies: ['emby-button'], + controller: 'scripts/autoorganizesmart', autoFocus: false, roles: 'admin' }); defineRoute({ path: '/autoorganizetv.html', - dependencies: [], + dependencies: ['emby-checkbox', 'emby-input', 'emby-button', 'emby-select', 'emby-collapse'], + controller: 'scripts/autoorganizetv', autoFocus: false, roles: 'admin' }); @@ -1967,7 +1979,7 @@ var AppInfo = {}; defineRoute({ path: '/dashboardgeneral.html', - dependencies: ['emby-collapse', 'paper-textarea', 'paper-input', 'paper-checkbox', 'jqmlistview'], + dependencies: ['emby-collapse', 'emby-textarea', 'emby-input', 'paper-checkbox'], controller: 'scripts/dashboardgeneral', autoFocus: false, roles: 'admin' @@ -2156,7 +2168,7 @@ var AppInfo = {}; defineRoute({ path: '/librarysettings.html', - dependencies: ['emby-collapse', 'paper-input', 'paper-checkbox', 'emby-button', 'jqmlistview'], + dependencies: ['emby-collapse', 'emby-input', 'paper-checkbox', 'emby-button', 'emby-select'], autoFocus: false, roles: 'admin', controller: 'scripts/librarysettings' @@ -2225,7 +2237,7 @@ var AppInfo = {}; defineRoute({ path: '/livetvtunerprovider-satip.html', - dependencies: ['paper-input', 'paper-checkbox'], + dependencies: ['emby-input', 'paper-checkbox'], autoFocus: false, roles: 'admin', controller: 'scripts/livetvtunerprovider-satip' @@ -2720,7 +2732,7 @@ var AppInfo = {}; var postInitDependencies = []; - postInitDependencies.push('scripts/thememediaplayer'); + postInitDependencies.push('bower_components/emby-webcomponents/thememediaplayer'); postInitDependencies.push('scripts/remotecontrol'); postInitDependencies.push('css!css/chromecast.css'); postInitDependencies.push('scripts/autobackdrops'); @@ -2768,7 +2780,7 @@ var AppInfo = {}; postInitDependencies.push('bower_components/emby-webcomponents/input/api'); - if (!browserInfo.tv && !AppInfo.isNativeApp) { + if (!browserInfo.tv) { if (navigator.serviceWorker) { try { navigator.serviceWorker.register('serviceworker.js'); diff --git a/dashboard-ui/scripts/thememediaplayer.js b/dashboard-ui/scripts/thememediaplayer.js deleted file mode 100644 index 5d6eabf68..000000000 --- a/dashboard-ui/scripts/thememediaplayer.js +++ /dev/null @@ -1,76 +0,0 @@ -define(['appStorage'], function (appStorage) { - - var currentOwnerId; - var currentThemeIds = []; - - function playThemeSongs(items, ownerId) { - - var player = getPlayer(); - - if (items.length && player.isDefaultPlayer && player.canAutoPlayAudio()) { - - // Stop if a theme song from another ownerId - // Leave it alone if anything else (e.g user playing a movie) - if (!currentOwnerId && player.isPlaying()) { - return; - } - - currentThemeIds = items.map(function (i) { - return i.Id; - }); - - currentOwnerId = ownerId; - - player.play({ - items: items - }); - - } else { - currentOwnerId = null; - } - } - - function onPlayItem(item) { - - // User played something manually - if (currentThemeIds.indexOf(item.Id) == -1) { - - currentOwnerId = null; - - } - } - - function enabled() { - - var userId = Dashboard.getCurrentUserId(); - - var val = appStorage.getItem('enableThemeSongs-' + userId); - - var localAutoPlayers = MediaController.getPlayers().filter(function (p) { - - return p.isLocalPlayer && p.canAutoPlayAudio(); - }); - - // For bandwidth - return val == '1' || (val != '0' && localAutoPlayers.length); - } - - function getPlayer() { - return MediaController.getCurrentPlayer(); - } - - document.addEventListener('thememediadownload', function (e) { - - if (!enabled()) { - return; - } - - var themeMediaResult = e.detail.themeMediaResult; - var ownerId = themeMediaResult.ThemeSongsResult.OwnerId; - - if (ownerId != currentOwnerId) { - playThemeSongs(themeMediaResult.ThemeSongsResult.Items, ownerId); - } - }); - -}); \ No newline at end of file diff --git a/dashboard-ui/scripts/usernew.js b/dashboard-ui/scripts/usernew.js index 1e4610d75..2efd3d4a5 100644 --- a/dashboard-ui/scripts/usernew.js +++ b/dashboard-ui/scripts/usernew.js @@ -1,12 +1,12 @@ -define(['jQuery'], function ($) { +define(['jQuery', 'fnchecked', 'emby-checkbox'], function ($) { function loadMediaFolders(page, mediaFolders) { var html = ''; - html += '
' + Globalize.translate('HeaderLibraries') + '
'; + html += '

' + Globalize.translate('HeaderLibraries') + '

'; - html += '
'; + html += '
'; for (var i = 0, length = mediaFolders.length; i < length; i++) { @@ -14,7 +14,7 @@ var checkedAttribute = ' checked="checked"'; - html += '' + folder.Name + ''; + html += ''; } html += '
'; @@ -28,9 +28,9 @@ var html = ''; - html += '
' + Globalize.translate('HeaderChannels') + '
'; + html += '

' + Globalize.translate('HeaderChannels') + '

'; - html += '
'; + html += '
'; for (var i = 0, length = channels.length; i < length; i++) { @@ -38,7 +38,7 @@ var checkedAttribute = ' checked="checked"'; - html += '' + folder.Name + ''; + html += ''; } html += '
'; diff --git a/dashboard-ui/strings/en-US.json b/dashboard-ui/strings/en-US.json index 4ad451035..b9aaa04b4 100644 --- a/dashboard-ui/strings/en-US.json +++ b/dashboard-ui/strings/en-US.json @@ -2247,7 +2247,7 @@ "ButtonLocalRefresh": "Local refresh", "ButtonAddMissingData": "Add missing data only", "ButtonFullRefresh": "Full refresh", - "ValueExample": "1:00 PM", + "ValueExample": "Example: {0}", "OptionEnableAnonymousUsageReporting": "Enable anonymous usage reporting", "OptionEnableAnonymousUsageReportingHelp": "Allow Emby to collect anonymous data such as installed plugins, the version numbers of your Emby apps, etc. This information is only used for the purpose of improving the software.", "LabelFileOrUrl": "File or url:", diff --git a/dashboard-ui/usernew.html b/dashboard-ui/usernew.html index faecd6d00..02547da14 100644 --- a/dashboard-ui/usernew.html +++ b/dashboard-ui/usernew.html @@ -1,4 +1,4 @@ -
+
@@ -11,40 +11,39 @@

${HeaderLibraryAccess}

-
- ${OptionEnableAccessToAllLibraries} +
+
${LibraryAccessHelp}
-
-
-
diff --git a/dashboard-ui/wizardlivetvtuner.html b/dashboard-ui/wizardlivetvtuner.html index 74106b8a8..39a5252fe 100644 --- a/dashboard-ui/wizardlivetvtuner.html +++ b/dashboard-ui/wizardlivetvtuner.html @@ -1,4 +1,4 @@ -
+
@@ -21,12 +21,11 @@
${AdditionalLiveTvProvidersCanBeInstalledLater}

-
- +
+
${HelpMoreTunersCanBeAdded}

-
diff --git a/dashboard-ui/wizarduser.html b/dashboard-ui/wizarduser.html index 962d0deb7..8a0c1b8d2 100644 --- a/dashboard-ui/wizarduser.html +++ b/dashboard-ui/wizarduser.html @@ -1,4 +1,4 @@ -
+
${HeaderTerm}
'; - - var date = datetime.parseISO8601Date(item.Date, true); - html += date.toLocaleDateString(); - - html += ''; - var status = item.Status; - - if (status == 'SkippedExisting') { - html += ''; - html += item.OriginalFileName; - html += ''; - } - else if (status == 'Failure') { - html += ''; - html += item.OriginalFileName; - html += ''; - } else { - html += '
'; - html += item.OriginalFileName; - html += '
'; - } - html += '
'; - html += item.TargetPath || ''; - html += ''; - - if (item.Status != 'Success') { - - html += ''; - html += ''; - } - - html += '
'; + var hide = item.IsInProgress ? '' : ' hide'; + html += ''; + html += ''; + var date = datetime.parseISO8601Date(item.Date, true); + html += date.toLocaleDateString(); + html += ''; + var status = item.Status; + + if (item.IsInProgress) { + html += ''; + html += item.OriginalFileName; + html += ''; + } + else if (status == 'SkippedExisting') { + html += ''; + html += item.OriginalFileName; + html += ''; + } + else if (status == 'Failure') { + html += ''; + html += item.OriginalFileName; + html += ''; + } else { + html += ''; + html += item.OriginalFileName; + html += ''; + } + html += ''; + html += item.TargetPath || ''; + html += ''; + + if (item.Status != 'Success') { + + html += ''; + html += ''; + } + + html += '