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

Merge pull request #2897 from MediaBrowser/beta

Beta
This commit is contained in:
Luke 2017-09-20 13:22:39 -04:00 committed by GitHub
commit a79c09d9ef
159 changed files with 558 additions and 755 deletions

View file

@ -1,9 +0,0 @@
<div id="libraryFileOrganizerLogPage" data-role="page" class="page type-interior organizePage fullWidthContent libraryFileOrganizerLogPage">
<div>
<div class="content-primary">
<h2>Auto-Organize is now a plugin. Please install the Auto-Organize plugin using the Emby plugin catalog.</h2>
<h2>After installation, you can still come back to this menu to manage Auto-Organize. Happy organizing!</h2>
</div>
</div>
</div>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
define(["cardBuilder"],function(cardBuilder){"use strict";function buildPeopleCards(items,options){options=Object.assign(options||{},{cardLayout:!0,centerText:!0,showTitle:!0,cardFooterAside:"none",showPersonRoleOrType:!0,cardCssClass:"personCard"}),cardBuilder.buildCards(items,options)}return{buildPeopleCards:buildPeopleCards}});
define(["cardBuilder"],function(cardBuilder){"use strict";function buildPeopleCards(items,options){options=Object.assign(options||{},{cardLayout:!1,centerText:!0,showTitle:!0,cardFooterAside:"none",showPersonRoleOrType:!0,cardCssClass:"personCard"}),cardBuilder.buildCards(items,options)}return{buildPeopleCards:buildPeopleCards}});

View file

@ -1 +1 @@
.card-round:focus>.cardBox-focustransform{-webkit-transform:scale(1.26,1.26);transform:scale(1.26,1.26)}.cardContent-round{overflow:visible}.cardImage-round,.cardImageContainer-round{-webkit-border-radius:1000px;border-radius:1000px}
.card-round:focus>.cardBox-focustransform{-webkit-transform:scale(1.26,1.26);transform:scale(1.26,1.26)}.cardImage-round,.cardImageContainer-round{-webkit-border-radius:1000px;border-radius:1000px}

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
.emby-input{display:block;margin:0;margin-bottom:0!important;background:0 0;border-style:solid;border-width:0 0 1px;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:110%;font-family:inherit;font-weight:inherit;color:inherit;padding:.35em 0 .3em;outline:0!important;-webkit-tap-highlight-color:transparent;width:100%;-webkit-border-radius:0;border-radius:0;position:relative}.emby-input::-moz-focus-inner{border:0}.inputContainer{margin-bottom:1.8em}.inputLabel{display:inline-block;-webkit-transition:all .2s ease-out;-o-transition:all .2s ease-out;transition:all .2s ease-out}.inputLabel-float{-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:scale(1.25,1.25) translateY(94%);transform:scale(1.25,1.25) translateY(94%)}.emby-input-selectionbar{height:2px;-webkit-transform:scale(0,1);transform:scale(0,1);-webkit-transition:-webkit-transform .25s ease-out;-o-transition:transform .25s ease-out;transition:transform .25s ease-out;position:relative;top:-1px;margin-bottom:.5em;-webkit-transform-origin:center center;transform-origin:center center}.emby-input:focus+.emby-input-selectionbar{-webkit-transform:none;transform:none}
.emby-input{display:block;margin:0;margin-bottom:0!important;font-size:110%;font-family:inherit;font-weight:inherit;padding:.4em .25em;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0!important;-webkit-tap-highlight-color:transparent;width:100%}.emby-input::-moz-focus-inner{border:0}.inputContainer{margin-bottom:1.8em}.inputLabel{display:inline-block;margin-bottom:.25em}.emby-input+.fieldDescription{margin-top:.25em}.emby-input-iconbutton{-webkit-align-self:flex-end;align-self:flex-end}

View file

@ -1 +1 @@
define(["layoutManager","browser","dom","css!./emby-input","registerElement"],function(layoutManager,browser,dom){"use strict";function onChange(){var label=this.labelElement;if(this.value)label.classList.remove("inputLabel-float");else{var instanceSupportsFloat=supportsFloatingLabel&&"date"!==this.type&&"time"!==this.type;instanceSupportsFloat&&label.classList.add("inputLabel-float")}}var EmbyInputPrototype=Object.create(HTMLInputElement.prototype),inputId=0,supportsFloatingLabel=!1;if(Object.getOwnPropertyDescriptor&&Object.defineProperty){var descriptor=Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value");if(descriptor&&descriptor.configurable){var baseSetMethod=descriptor.set;descriptor.set=function(value){baseSetMethod.call(this,value),this.dispatchEvent(new CustomEvent("valueset",{bubbles:!1,cancelable:!1}))},Object.defineProperty(HTMLInputElement.prototype,"value",descriptor),supportsFloatingLabel=!0}}EmbyInputPrototype.createdCallback=function(){if(this.id||(this.id="embyinput"+inputId,inputId++),!this.classList.contains("emby-input")){this.classList.add("emby-input");var parentNode=this.parentNode,document=this.ownerDocument,label=document.createElement("label");label.innerHTML=this.getAttribute("label")||"",label.classList.add("inputLabel"),label.classList.add("inputLabelUnfocused"),label.htmlFor=this.id,parentNode.insertBefore(label,this),this.labelElement=label;var div=document.createElement("div");div.classList.add("emby-input-selectionbar"),parentNode.insertBefore(div,this.nextSibling),dom.addEventListener(this,"focus",function(){onChange.call(this),document.attachIME&&document.attachIME(this),label.classList.add("inputLabelFocused"),label.classList.remove("inputLabelUnfocused")},{passive:!0}),dom.addEventListener(this,"blur",function(){onChange.call(this),label.classList.remove("inputLabelFocused"),label.classList.add("inputLabelUnfocused")},{passive:!0}),dom.addEventListener(this,"change",onChange,{passive:!0}),dom.addEventListener(this,"input",onChange,{passive:!0}),dom.addEventListener(this,"valueset",onChange,{passive:!0})}},EmbyInputPrototype.attachedCallback=function(){this.labelElement.htmlFor=this.id,onChange.call(this)},EmbyInputPrototype.label=function(text){this.labelElement.innerHTML=text},document.registerElement("emby-input",{prototype:EmbyInputPrototype,extends:"input"})});
define(["layoutManager","browser","dom","css!./emby-input","registerElement"],function(layoutManager,browser,dom){"use strict";function onChange(){var label=this.labelElement;if(this.value)label.classList.remove("inputLabel-float");else{var instanceSupportsFloat=supportsFloatingLabel&&"date"!==this.type&&"time"!==this.type;instanceSupportsFloat&&label.classList.add("inputLabel-float")}}var EmbyInputPrototype=Object.create(HTMLInputElement.prototype),inputId=0,supportsFloatingLabel=!1;if(Object.getOwnPropertyDescriptor&&Object.defineProperty){var descriptor=Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value");if(descriptor&&descriptor.configurable){var baseSetMethod=descriptor.set;descriptor.set=function(value){baseSetMethod.call(this,value),this.dispatchEvent(new CustomEvent("valueset",{bubbles:!1,cancelable:!1}))},Object.defineProperty(HTMLInputElement.prototype,"value",descriptor),supportsFloatingLabel=!0}}EmbyInputPrototype.createdCallback=function(){if(this.id||(this.id="embyinput"+inputId,inputId++),!this.classList.contains("emby-input")){this.classList.add("emby-input");var parentNode=this.parentNode,document=this.ownerDocument,label=document.createElement("label");label.innerHTML=this.getAttribute("label")||"",label.classList.add("inputLabel"),label.classList.add("inputLabelUnfocused"),label.htmlFor=this.id,parentNode.insertBefore(label,this),this.labelElement=label,dom.addEventListener(this,"focus",function(){onChange.call(this),document.attachIME&&document.attachIME(this),label.classList.add("inputLabelFocused"),label.classList.remove("inputLabelUnfocused")},{passive:!0}),dom.addEventListener(this,"blur",function(){onChange.call(this),label.classList.remove("inputLabelFocused"),label.classList.add("inputLabelUnfocused")},{passive:!0}),dom.addEventListener(this,"change",onChange,{passive:!0}),dom.addEventListener(this,"input",onChange,{passive:!0}),dom.addEventListener(this,"valueset",onChange,{passive:!0})}},EmbyInputPrototype.attachedCallback=function(){this.labelElement.htmlFor=this.id,onChange.call(this)},EmbyInputPrototype.label=function(text){this.labelElement.innerHTML=text},document.registerElement("emby-input",{prototype:EmbyInputPrototype,extends:"input"})});

View file

@ -1 +1 @@
define(["scroller","dom","layoutManager","inputManager","focusManager","registerElement"],function(scroller,dom,layoutManager,inputManager,focusManager){"use strict";function initCenterFocus(elem,scrollerInstance){dom.addEventListener(elem,"focus",function(e){var focused=focusManager.focusableParent(e.target);focused&&scrollerInstance.toCenter(focused)},{capture:!0,passive:!0})}function onInputCommand(e){var cmd=e.detail.command;"home"===cmd?(focusManager.focusFirst(this,"."+this.getAttribute("data-navcommands")),e.preventDefault(),e.stopPropagation()):"end"===cmd?(focusManager.focusLast(this,"."+this.getAttribute("data-navcommands")),e.preventDefault(),e.stopPropagation()):"pageup"===cmd?(focusManager.moveFocus(e.target,this,"."+this.getAttribute("data-navcommands"),-12),e.preventDefault(),e.stopPropagation()):"pagedown"===cmd&&(focusManager.moveFocus(e.target,this,"."+this.getAttribute("data-navcommands"),12),e.preventDefault(),e.stopPropagation())}function initHeadroom(elem){require(["headroom"],function(Headroom){var headroom=new Headroom([],{scroller:elem});headroom.init(),headroom.add(document.querySelector(".skinHeader")),elem.headroom=headroom})}function loadScrollButtons(scroller){require(["emby-scrollbuttons"],function(){scroller.insertAdjacentHTML("beforeend",'<div is="emby-scrollbuttons"></div>')})}var ScrollerProtoType=Object.create(HTMLDivElement.prototype);ScrollerProtoType.createdCallback=function(){this.classList.add("emby-scroller")},ScrollerProtoType.scrollToBeginning=function(){this.scroller&&this.scroller.slideTo(0,!0)},ScrollerProtoType.toStart=function(elem,immediate){this.scroller&&this.scroller.toStart(elem,immediate)},ScrollerProtoType.toCenter=function(elem,immediate){this.scroller&&this.scroller.toCenter(elem,immediate)},ScrollerProtoType.scrollToPosition=function(pos,immediate){this.scroller&&this.scroller.slideTo(pos,immediate)},ScrollerProtoType.getScrollPosition=function(){if(this.scroller)return this.scroller.getScrollPosition()},ScrollerProtoType.getScrollSize=function(){if(this.scroller)return this.scroller.getScrollSize()},ScrollerProtoType.getScrollEventName=function(){if(this.scroller)return this.scroller.getScrollEventName()},ScrollerProtoType.getScrollSlider=function(){if(this.scroller)return this.scroller.getScrollSlider()},ScrollerProtoType.addScrollEventListener=function(fn,options){this.scroller&&dom.addEventListener(this.scroller.getScrollFrame(),this.scroller.getScrollEventName(),fn,options)},ScrollerProtoType.removeScrollEventListener=function(fn,options){this.scroller&&dom.removeEventListener(this.scroller.getScrollFrame(),this.scroller.getScrollEventName(),fn,options)},ScrollerProtoType.attachedCallback=function(){this.getAttribute("data-navcommands")&&inputManager.on(this,onInputCommand);var horizontal="false"!==this.getAttribute("data-horizontal"),slider=this.querySelector(".scrollSlider");horizontal&&(slider.style["white-space"]="nowrap");var bindHeader="true"===this.getAttribute("data-bindheader"),scrollFrame=this.querySelector(".scrollerframe")||this,enableScrollButtons=layoutManager.desktop&&horizontal&&"false"!==this.getAttribute("data-scrollbuttons")&&scrollFrame!==this,options={horizontal:horizontal,mouseDragging:1,mouseWheel:"false"!==this.getAttribute("data-mousewheel"),touchDragging:1,slidee:slider,scrollBy:200,speed:horizontal?300:270,elasticBounds:1,dragHandle:1,scrollWidth:"auto"===this.getAttribute("data-scrollsize")?null:5e6,autoImmediate:!0,skipSlideToWhenVisible:"true"===this.getAttribute("data-skipfocuswhenvisible"),dispatchScrollEvent:enableScrollButtons||bindHeader||"true"===this.getAttribute("data-scrollevent"),hideScrollbar:enableScrollButtons,allowNativeSmoothScroll:"true"===this.getAttribute("data-allownativesmoothscroll"),forceHideScrollbars:enableScrollButtons};this.scroller=new scroller(scrollFrame,options),this.scroller.init(),layoutManager.tv&&this.getAttribute("data-centerfocus")&&initCenterFocus(this,this.scroller),bindHeader&&initHeadroom(this),enableScrollButtons&&loadScrollButtons(this)},ScrollerProtoType.detachedCallback=function(){this.getAttribute("data-navcommands")&&inputManager.off(this,onInputCommand);var headroom=this.headroom;headroom&&(headroom.destroy(),this.headroom=null);var scrollerInstance=this.scroller;scrollerInstance&&(scrollerInstance.destroy(),this.scroller=null)},document.registerElement("emby-scroller",{prototype:ScrollerProtoType,extends:"div"})});
define(["scroller","dom","layoutManager","inputManager","focusManager","registerElement"],function(scroller,dom,layoutManager,inputManager,focusManager){"use strict";function initCenterFocus(elem,scrollerInstance){dom.addEventListener(elem,"focus",function(e){var focused=focusManager.focusableParent(e.target);focused&&scrollerInstance.toCenter(focused)},{capture:!0,passive:!0})}function onInputCommand(e){var cmd=e.detail.command;"home"===cmd?(focusManager.focusFirst(this,"."+this.getAttribute("data-navcommands")),e.preventDefault(),e.stopPropagation()):"end"===cmd?(focusManager.focusLast(this,"."+this.getAttribute("data-navcommands")),e.preventDefault(),e.stopPropagation()):"pageup"===cmd?(focusManager.moveFocus(e.target,this,"."+this.getAttribute("data-navcommands"),-12),e.preventDefault(),e.stopPropagation()):"pagedown"===cmd&&(focusManager.moveFocus(e.target,this,"."+this.getAttribute("data-navcommands"),12),e.preventDefault(),e.stopPropagation())}function initHeadroom(elem){require(["headroom"],function(Headroom){var headroom=new Headroom([],{scroller:elem});headroom.init(),headroom.add(document.querySelector(".skinHeader")),elem.headroom=headroom})}function loadScrollButtons(scroller){require(["emby-scrollbuttons"],function(){scroller.insertAdjacentHTML("beforeend",'<div is="emby-scrollbuttons"></div>')})}var ScrollerProtoType=Object.create(HTMLDivElement.prototype);ScrollerProtoType.createdCallback=function(){this.classList.add("emby-scroller")},ScrollerProtoType.scrollToBeginning=function(){this.scroller&&this.scroller.slideTo(0,!0)},ScrollerProtoType.toStart=function(elem,immediate){this.scroller&&this.scroller.toStart(elem,immediate)},ScrollerProtoType.toCenter=function(elem,immediate){this.scroller&&this.scroller.toCenter(elem,immediate)},ScrollerProtoType.scrollToPosition=function(pos,immediate){this.scroller&&this.scroller.slideTo(pos,immediate)},ScrollerProtoType.getScrollPosition=function(){if(this.scroller)return this.scroller.getScrollPosition()},ScrollerProtoType.getScrollSize=function(){if(this.scroller)return this.scroller.getScrollSize()},ScrollerProtoType.getScrollEventName=function(){if(this.scroller)return this.scroller.getScrollEventName()},ScrollerProtoType.getScrollSlider=function(){if(this.scroller)return this.scroller.getScrollSlider()},ScrollerProtoType.addScrollEventListener=function(fn,options){this.scroller&&dom.addEventListener(this.scroller.getScrollFrame(),this.scroller.getScrollEventName(),fn,options)},ScrollerProtoType.removeScrollEventListener=function(fn,options){this.scroller&&dom.removeEventListener(this.scroller.getScrollFrame(),this.scroller.getScrollEventName(),fn,options)},ScrollerProtoType.attachedCallback=function(){this.getAttribute("data-navcommands")&&inputManager.on(this,onInputCommand);var horizontal="false"!==this.getAttribute("data-horizontal"),slider=this.querySelector(".scrollSlider");horizontal&&(slider.style["white-space"]="nowrap");var bindHeader="true"===this.getAttribute("data-bindheader"),scrollFrame=this.querySelector(".scrollerframe")||this,enableScrollButtons=layoutManager.desktop&&horizontal&&"false"!==this.getAttribute("data-scrollbuttons")&&scrollFrame!==this,options={horizontal:horizontal,mouseDragging:1,mouseWheel:"false"!==this.getAttribute("data-mousewheel"),touchDragging:1,slidee:slider,scrollBy:200,speed:horizontal?270:240,elasticBounds:1,dragHandle:1,scrollWidth:"auto"===this.getAttribute("data-scrollsize")?null:5e6,autoImmediate:!0,skipSlideToWhenVisible:"true"===this.getAttribute("data-skipfocuswhenvisible"),dispatchScrollEvent:enableScrollButtons||bindHeader||"true"===this.getAttribute("data-scrollevent"),hideScrollbar:enableScrollButtons||"true"===this.getAttribute("data-hidescrollbar"),allowNativeSmoothScroll:"true"===this.getAttribute("data-allownativesmoothscroll"),forceHideScrollbars:enableScrollButtons};this.scroller=new scroller(scrollFrame,options),this.scroller.init(),layoutManager.tv&&this.getAttribute("data-centerfocus")&&initCenterFocus(this,this.scroller),bindHeader&&initHeadroom(this),enableScrollButtons&&loadScrollButtons(this)},ScrollerProtoType.detachedCallback=function(){this.getAttribute("data-navcommands")&&inputManager.off(this,onInputCommand);var headroom=this.headroom;headroom&&(headroom.destroy(),this.headroom=null);var scrollerInstance=this.scroller;scrollerInstance&&(scrollerInstance.destroy(),this.scroller=null)},document.registerElement("emby-scroller",{prototype:ScrollerProtoType,extends:"div"})});

View file

@ -1 +1 @@
.emby-select,.selectLabel{display:block}.emby-select{margin:0;margin-bottom:0!important;border-style:solid;border-width:0 0 1px;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:110%;font-family:inherit;font-weight:inherit;padding:.35em .8em .3em 0;cursor:pointer;outline:0!important;-webkit-tap-highlight-color:transparent;width:100%}.emby-select::-moz-focus-inner{border:0}.emby-select-withoptioncolor{color:inherit;background:0 0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.emby-select-withoptioncolor>option{color:initial}.selectContainer{margin-bottom:1.8em;position:relative}.selectArrowContainer{position:absolute;right:0;top:.25em;color:inherit}.selectArrow{margin-top:.35em}.emby-select-selectionbar{height:2px;-webkit-transform:scale(0,1);transform:scale(0,1);-webkit-transition:-webkit-transform .25s ease-out;-o-transition:transform .25s ease-out;transition:transform .25s ease-out;position:relative;top:-1px;margin-bottom:.5em;-webkit-transform-origin:center center;transform-origin:center center}.emby-select:focus+.emby-select-selectionbar{-webkit-transform:none;transform:none}
.emby-select{display:block;margin:0;margin-bottom:0!important;font-size:110%;font-family:inherit;font-weight:inherit;padding:.46em .5em;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0!important;-webkit-tap-highlight-color:transparent;width:100%}.emby-select::-moz-focus-inner{border:0}.emby-select+.fieldDescription{margin-top:.25em}.selectContainer{margin-bottom:1.8em;position:relative}.selectLabel{display:block;margin-bottom:.25em}.emby-select-withcolor{-webkit-appearance:none;-moz-appearance:none;appearance:none}.selectArrowContainer{position:absolute;right:.35em;top:.25em;color:inherit;pointer-events:none}.selectArrow{margin-top:.35em;font-size:1.7em}.emby-select-iconbutton{-webkit-align-self:flex-end;align-self:flex-end}

View file

@ -1 +1 @@
define(["layoutManager","browser","actionsheet","css!./emby-select","registerElement"],function(layoutManager,browser,actionsheet){"use strict";function enableNativeMenu(){return!(!browser.edgeUwp&&!browser.xboxOne)||!browser.tizen&&!browser.orsay&&(!!browser.tv||!layoutManager.tv)}function triggerChange(select){var evt=document.createEvent("HTMLEvents");evt.initEvent("change",!1,!0),select.dispatchEvent(evt)}function setValue(select,value){select.value=value}function showActionSheet(select){var labelElem=getLabel(select),title=labelElem?labelElem.textContent||labelElem.innerText:null;actionsheet.show({items:select.options,positionTo:select,title:title}).then(function(value){setValue(select,value),triggerChange(select)})}function getLabel(select){for(var elem=select.previousSibling;elem&&"LABEL"!==elem.tagName;)elem=elem.previousSibling;return elem}function onFocus(e){var label=getLabel(this);label&&(label.classList.add("selectLabelFocused"),label.classList.remove("selectLabelUnfocused"))}function onBlur(e){var label=getLabel(this);label&&(label.classList.add("selectLabelUnfocused"),label.classList.remove("selectLabelFocused"))}function onMouseDown(e){e.button||enableNativeMenu()||(e.preventDefault(),showActionSheet(this))}function onKeyDown(e){switch(e.keyCode){case 13:return void(enableNativeMenu()||(e.preventDefault(),showActionSheet(this)));case 37:case 38:case 39:case 40:return void(layoutManager.tv&&e.preventDefault())}}var EmbySelectPrototype=Object.create(HTMLSelectElement.prototype),inputId=0;EmbySelectPrototype.createdCallback=function(){this.id||(this.id="embyselect"+inputId,inputId++),browser.firefox||this.classList.add("emby-select-withoptioncolor"),this.addEventListener("mousedown",onMouseDown),this.addEventListener("keydown",onKeyDown),this.addEventListener("focus",onFocus),this.addEventListener("blur",onBlur)},EmbySelectPrototype.attachedCallback=function(){if(!this.classList.contains("emby-select")){this.classList.add("emby-select");var label=this.ownerDocument.createElement("label");label.innerHTML=this.getAttribute("label")||"",label.classList.add("selectLabel"),label.classList.add("selectLabelUnfocused"),label.htmlFor=this.id,this.parentNode.insertBefore(label,this);var div=document.createElement("div");div.classList.add("emby-select-selectionbar"),this.parentNode.insertBefore(div,this.nextSibling);var arrowContainer=document.createElement("div");arrowContainer.classList.add("selectArrowContainer"),arrowContainer.innerHTML='<div style="visibility:hidden;">0</div>',this.parentNode.appendChild(arrowContainer);var arrow=document.createElement("i");arrow.classList.add("md-icon"),arrow.classList.add("selectArrow"),arrow.innerHTML="&#xE313;",arrowContainer.appendChild(arrow)}},EmbySelectPrototype.setLabel=function(text){var label=this.parentNode.querySelector("label");label.innerHTML=text},document.registerElement("emby-select",{prototype:EmbySelectPrototype,extends:"select"})});
define(["layoutManager","browser","actionsheet","css!./emby-select","registerElement"],function(layoutManager,browser,actionsheet){"use strict";function enableNativeMenu(){return!(!browser.edgeUwp&&!browser.xboxOne)||!browser.tizen&&!browser.orsay&&(!!browser.tv||!layoutManager.tv)}function triggerChange(select){var evt=document.createEvent("HTMLEvents");evt.initEvent("change",!1,!0),select.dispatchEvent(evt)}function setValue(select,value){select.value=value}function showActionSheet(select){var labelElem=getLabel(select),title=labelElem?labelElem.textContent||labelElem.innerText:null;actionsheet.show({items:select.options,positionTo:select,title:title}).then(function(value){setValue(select,value),triggerChange(select)})}function getLabel(select){for(var elem=select.previousSibling;elem&&"LABEL"!==elem.tagName;)elem=elem.previousSibling;return elem}function onFocus(e){var label=getLabel(this);label&&(label.classList.add("selectLabelFocused"),label.classList.remove("selectLabelUnfocused"))}function onBlur(e){var label=getLabel(this);label&&(label.classList.add("selectLabelUnfocused"),label.classList.remove("selectLabelFocused"))}function onMouseDown(e){e.button||enableNativeMenu()||(e.preventDefault(),showActionSheet(this))}function onKeyDown(e){switch(e.keyCode){case 13:return void(enableNativeMenu()||(e.preventDefault(),showActionSheet(this)));case 37:case 38:case 39:case 40:return void(layoutManager.tv&&e.preventDefault())}}var EmbySelectPrototype=Object.create(HTMLSelectElement.prototype),inputId=0;EmbySelectPrototype.createdCallback=function(){this.id||(this.id="embyselect"+inputId,inputId++),browser.firefox||this.classList.add("emby-select-withcolor"),this.addEventListener("mousedown",onMouseDown),this.addEventListener("keydown",onKeyDown),this.addEventListener("focus",onFocus),this.addEventListener("blur",onBlur)},EmbySelectPrototype.attachedCallback=function(){if(!this.classList.contains("emby-select")){this.classList.add("emby-select");var label=this.ownerDocument.createElement("label");label.innerHTML=this.getAttribute("label")||"",label.classList.add("selectLabel"),label.classList.add("selectLabelUnfocused"),label.htmlFor=this.id,this.parentNode.insertBefore(label,this),this.classList.contains("emby-select-withcolor")&&this.parentNode.insertAdjacentHTML("beforeend",'<div class="selectArrowContainer"><div style="visibility:hidden;">0</div><i class="selectArrow md-icon">&#xE313;</i></div>')}},EmbySelectPrototype.setLabel=function(text){var label=this.parentNode.querySelector("label");label.innerHTML=text},document.registerElement("emby-select",{prototype:EmbySelectPrototype,extends:"select"})});

View file

@ -1 +1 @@
.emby-tab-button,.emby-tabs-slider{position:relative}.emby-tab-button{background:0 0;-webkit-box-shadow:none;box-shadow:none;cursor:pointer;outline:0!important;width:auto;font-family:inherit;font-size:inherit;display:inline-block;vertical-align:middle;-webkit-flex-shrink:0;flex-shrink:0;margin:0;padding:1em .9em;height:auto;min-width:initial;line-height:initial;-webkit-border-radius:0!important;border-radius:0!important;overflow:hidden;font-weight:500}.emby-tab-button.emby-button-tv{font-weight:400}.emby-tab-button.emby-button-tv:focus{-webkit-transform:scale(1.26);transform:scale(1.26);-webkit-transform-origin:center center;transform-origin:center center}.emby-tab-button-ripple-effect{background:rgba(0,0,0,.7)!important}.tabContent:not(.is-active){display:none}
.emby-tab-button,.emby-tabs-slider{position:relative}.emby-tab-button{background:0 0;-webkit-box-shadow:none;box-shadow:none;cursor:pointer;outline:0!important;width:auto;font-family:inherit;font-size:inherit;display:inline-block;vertical-align:middle;-webkit-flex-shrink:0;flex-shrink:0;margin:0;padding:1em .9em;height:auto;min-width:initial;line-height:initial;-webkit-border-radius:0!important;border-radius:0!important;overflow:hidden;font-weight:500}.emby-tab-button.emby-button-tv{font-weight:400}.emby-tab-button.emby-button-tv:focus{-webkit-transform:scale(1.32);transform:scale(1.32);-webkit-transform-origin:center center;transform-origin:center center}.emby-tab-button-ripple-effect{background:rgba(0,0,0,.7)!important}.tabContent:not(.is-active){display:none}

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
.emby-textarea{display:block;margin:0;margin-bottom:0!important;background:0 0;border-style:solid;border-width:0 0 1px;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:inherit;font-family:inherit;font-weight:inherit;color:inherit;padding:.35em 0 .3em;cursor:pointer;outline:0!important;-webkit-tap-highlight-color:transparent;width:100%;-webkit-border-radius:0;border-radius:0}.emby-textarea::-moz-focus-inner{border:0}.textareaLabel{display:inline-block;-webkit-transition:all .2s ease-out;-o-transition:all .2s ease-out;transition:all .2s ease-out}.emby-textarea:focus+.emby-input-selectionbar{-webkit-transform:none;transform:none}
.emby-textarea{display:block;margin:0;margin-bottom:0!important;font-size:inherit;font-family:inherit;font-weight:inherit;color:inherit;padding:.35em .25em;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0!important;-webkit-tap-highlight-color:transparent;width:100%}.emby-textarea::-moz-focus-inner{border:0}.textareaLabel{display:inline-block;-webkit-transition:all .2s ease-out;-o-transition:all .2s ease-out;transition:all .2s ease-out;margin-bottom:.25em}.emby-textarea+.fieldDescription{margin-top:.25em}

View file

@ -1 +1 @@
define(["layoutManager","browser","css!./emby-textarea","registerElement","emby-input"],function(layoutManager,browser){"use strict";function autoGrow(textarea,maxLines){function reset(){textarea.rows=1,offset=self.getOffset(textarea),self.rows=textarea.rows||1,self.lineHeight=textarea.scrollHeight/self.rows-offset/self.rows,self.maxAllowedHeight=self.lineHeight*maxLines-offset}function autogrowFn(){if((!self.lineHeight||self.lineHeight<=0)&&reset(),self.lineHeight<=0)return textarea.style.overflowY="scroll",textarea.style.height="auto",void(textarea.rows=3);var newHeight=0,hasGrown=!1;textarea.scrollHeight-offset>self.maxAllowedHeight?(textarea.style.overflowY="scroll",newHeight=self.maxAllowedHeight):(textarea.style.overflowY="hidden",textarea.style.height="auto",newHeight=textarea.scrollHeight,hasGrown=!0),textarea.style.height=newHeight+"px"}var self=this;void 0===maxLines&&(maxLines=999),self.getOffset=function(textarea){for(var style=window.getComputedStyle(textarea,null),props=["paddingTop","paddingBottom"],offset=0,i=0;i<props.length;i++)offset+=parseInt(style[props[i]]);return offset};var offset;textarea.addEventListener("input",autogrowFn),textarea.addEventListener("focus",autogrowFn),textarea.addEventListener("valueset",autogrowFn),autogrowFn()}var EmbyTextAreaPrototype=Object.create(HTMLTextAreaElement.prototype),elementId=0,supportsFloatingLabel=!1;if(Object.getOwnPropertyDescriptor&&Object.defineProperty){var descriptor=Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype,"value");if(descriptor&&descriptor.configurable){var baseSetMethod=descriptor.set;descriptor.set=function(value){baseSetMethod.call(this,value),this.dispatchEvent(new CustomEvent("valueset",{bubbles:!1,cancelable:!1}))},Object.defineProperty(HTMLTextAreaElement.prototype,"value",descriptor),supportsFloatingLabel=!0}}EmbyTextAreaPrototype.createdCallback=function(){this.id||(this.id="embytextarea"+elementId,elementId++)},EmbyTextAreaPrototype.attachedCallback=function(){if(!this.classList.contains("emby-textarea")){this.rows=1,this.classList.add("emby-textarea");var parentNode=this.parentNode,label=this.ownerDocument.createElement("label");label.innerHTML=this.getAttribute("label")||"",label.classList.add("textareaLabel"),supportsFloatingLabel&&"date"!==this.type||label.classList.add("nofloat"),label.htmlFor=this.id,parentNode.insertBefore(label,this);var div=document.createElement("div");div.classList.add("emby-input-selectionbar"),parentNode.insertBefore(div,this.nextSibling),this.addEventListener("focus",function(){label.classList.add("textareaLabelFocused"),label.classList.remove("textareaLabelUnfocused")}),this.addEventListener("blur",function(){label.classList.remove("textareaLabelFocused"),label.classList.add("textareaLabelUnfocused")}),this.label=function(text){label.innerHTML=text},new autoGrow(this)}},document.registerElement("emby-textarea",{prototype:EmbyTextAreaPrototype,extends:"textarea"})});
define(["layoutManager","browser","css!./emby-textarea","registerElement","emby-input"],function(layoutManager,browser){"use strict";function autoGrow(textarea,maxLines){function reset(){textarea.rows=1,offset=self.getOffset(textarea),self.rows=textarea.rows||1,self.lineHeight=textarea.scrollHeight/self.rows-offset/self.rows,self.maxAllowedHeight=self.lineHeight*maxLines-offset}function autogrowFn(){if((!self.lineHeight||self.lineHeight<=0)&&reset(),self.lineHeight<=0)return textarea.style.overflowY="scroll",textarea.style.height="auto",void(textarea.rows=3);var newHeight=0,hasGrown=!1;textarea.scrollHeight-offset>self.maxAllowedHeight?(textarea.style.overflowY="scroll",newHeight=self.maxAllowedHeight):(textarea.style.overflowY="hidden",textarea.style.height="auto",newHeight=textarea.scrollHeight,hasGrown=!0),textarea.style.height=newHeight+"px"}var self=this;void 0===maxLines&&(maxLines=999),self.getOffset=function(textarea){for(var style=window.getComputedStyle(textarea,null),props=["paddingTop","paddingBottom"],offset=0,i=0;i<props.length;i++)offset+=parseInt(style[props[i]]);return offset};var offset;textarea.addEventListener("input",autogrowFn),textarea.addEventListener("focus",autogrowFn),textarea.addEventListener("valueset",autogrowFn),autogrowFn()}var EmbyTextAreaPrototype=Object.create(HTMLTextAreaElement.prototype),elementId=0;if(Object.getOwnPropertyDescriptor&&Object.defineProperty){var descriptor=Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype,"value");if(descriptor&&descriptor.configurable){var baseSetMethod=descriptor.set;descriptor.set=function(value){baseSetMethod.call(this,value),this.dispatchEvent(new CustomEvent("valueset",{bubbles:!1,cancelable:!1}))},Object.defineProperty(HTMLTextAreaElement.prototype,"value",descriptor)}}EmbyTextAreaPrototype.createdCallback=function(){this.id||(this.id="embytextarea"+elementId,elementId++)},EmbyTextAreaPrototype.attachedCallback=function(){if(!this.classList.contains("emby-textarea")){this.rows=1,this.classList.add("emby-textarea");var parentNode=this.parentNode,label=this.ownerDocument.createElement("label");label.innerHTML=this.getAttribute("label")||"",label.classList.add("textareaLabel"),label.htmlFor=this.id,parentNode.insertBefore(label,this),this.addEventListener("focus",function(){label.classList.add("textareaLabelFocused"),label.classList.remove("textareaLabelUnfocused")}),this.addEventListener("blur",function(){label.classList.remove("textareaLabelFocused"),label.classList.add("textareaLabelUnfocused")}),this.label=function(text){label.innerHTML=text},new autoGrow(this)}},document.registerElement("emby-textarea",{prototype:EmbyTextAreaPrototype,extends:"textarea"})});

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
h1,h2,h3{font-weight:400}h1{font-size:1.72em}h2{font-size:1.5em}h3{font-size:1.17em}.layout-tv h2{font-size:1.35em}@media all and (min-height:720px){html{font-size:22px}}@media all and (min-height:1000px){html{font-size:27px}}
h1,h2,h3{font-weight:400}h1{font-size:1.72em}h2{font-size:1.5em}h3{font-size:1.17em}.layout-tv h2{font-size:1.35em}@media all and (min-height:720px){html{font-size:20px}}@media all and (min-height:1000px){html{font-size:27px}}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
.headroom{-webkit-transition:-webkit-transform 160ms linear;-o-transition:transform 160ms linear;transition:transform 160ms linear}.headroom--pinned{-webkit-transform:none;transform:none}.headroom--unpinned:not(.headroomDisabled){-webkit-transform:translateY(-100%);transform:translateY(-100%)}
.headroom{-webkit-transition:-webkit-transform 140ms linear;-o-transition:transform 140ms linear;transition:transform 140ms linear}.headroom--pinned{-webkit-transform:none;transform:none}.headroom--unpinned:not(.headroomDisabled){-webkit-transform:translateY(-100%);transform:translateY(-100%)}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
define(["lazyLoader","imageFetcher","layoutManager","browser","appSettings","require","css!./style"],function(lazyLoader,imageFetcher,layoutManager,browser,appSettings,require){"use strict";function fillImage(elem,source,enableEffects){if(!elem)throw new Error("elem cannot be null");source||(source=elem.getAttribute("data-src")),source&&fillImageElement(elem,source,enableEffects)}function fillImageElement(elem,source,enableEffects){imageFetcher.loadImage(elem,source).then(function(){var fillingVibrant=fillVibrant(elem,source);!enableFade||layoutManager.tv||enableEffects===!1||fillingVibrant||fadeIn(elem),elem.removeAttribute("data-src")})}function fillVibrant(img,url,canvas,canvasContext){var vibrantElement=img.getAttribute("data-vibrant");return!!vibrantElement&&(window.Vibrant?(fillVibrantOnLoaded(img,url,vibrantElement,canvas,canvasContext),!0):(require(["vibrant"],function(){fillVibrantOnLoaded(img,url,vibrantElement,canvas,canvasContext)}),!0))}function fillVibrantOnLoaded(img,url,vibrantElement){vibrantElement=document.getElementById(vibrantElement),vibrantElement&&requestIdleCallback(function(){getVibrantInfoFromElement(img,url).then(function(vibrantInfo){var swatch=vibrantInfo.split("|");if(swatch.length){var index=0,style=vibrantElement.style;style.backgroundColor=swatch[index],style.color=swatch[index+1];var classList=vibrantElement.classList;classList.contains("cardFooter")?classList.add("cardFooter-vibrant"):classList.add("vibrant")}})})}function getVibrantInfoFromElement(elem,url){return new Promise(function(resolve,reject){require(["vibrant"],function(){if("IMG"===elem.tagName)return void resolve(getVibrantInfo(elem,url));var img=new Image;img.onload=function(){resolve(getVibrantInfo(img,url))},img.src=url})})}function getSettingsKey(url){var parts=url.split("://");url=parts[parts.length-1],url=url.substring(url.indexOf("/")+1),url=url.split("?")[0];var cacheKey="vibrant31";return cacheKey+url}function getCachedVibrantInfo(url){return appSettings.get(getSettingsKey(url))}function getVibrantInfo(img,url){var value=getCachedVibrantInfo(url);if(value)return value;var vibrant=new Vibrant(img),swatches=vibrant.swatches();value="";var swatch=swatches.DarkVibrant;return value+=getSwatchString(swatch),appSettings.set(getSettingsKey(url),value),value}function getSwatchString(swatch){return swatch?swatch.getHex()+"|"+swatch.getBodyTextColor()+"|"+swatch.getTitleTextColor():"||"}function fadeIn(elem){var cssClass=layoutManager.tv?"lazy-image-fadein-fast":"lazy-image-fadein";elem.classList.add(cssClass)}function lazyChildren(elem){lazyLoader.lazyChildren(elem,fillImage)}function getPrimaryImageAspectRatio(items){for(var values=[],i=0,length=items.length;i<length;i++){var ratio=items[i].PrimaryImageAspectRatio||0;ratio&&(values[values.length]=ratio)}if(!values.length)return null;values.sort(function(a,b){return a-b});var result,half=Math.floor(values.length/2);result=values.length%2?values[half]:(values[half-1]+values[half])/2;var aspect2x3=2/3;if(Math.abs(aspect2x3-result)<=.15)return aspect2x3;var aspect16x9=16/9;if(Math.abs(aspect16x9-result)<=.2)return aspect16x9;if(Math.abs(1-result)<=.15)return 1;var aspect4x3=4/3;return Math.abs(aspect4x3-result)<=.15?aspect4x3:result}function fillImages(elems){for(var i=0,length=elems.length;i<length;i++){var elem=elems[0];fillImage(elem)}}var requestIdleCallback=window.requestIdleCallback||function(fn){fn()},self={},enableFade=!browser.slow&&!browser.firefox;return self.fillImages=fillImages,self.lazyImage=fillImage,self.lazyChildren=lazyChildren,self.getPrimaryImageAspectRatio=getPrimaryImageAspectRatio,self.getCachedVibrantInfo=getCachedVibrantInfo,self.getVibrantInfoFromElement=getVibrantInfoFromElement,self});
define(["lazyLoader","imageFetcher","layoutManager","browser","appSettings","require","css!./style"],function(lazyLoader,imageFetcher,layoutManager,browser,appSettings,require){"use strict";function fillImage(elem,source,enableEffects){if(!elem)throw new Error("elem cannot be null");source||(source=elem.getAttribute("data-src")),source&&fillImageElement(elem,source,enableEffects)}function fillImageElement(elem,source,enableEffects){imageFetcher.loadImage(elem,source).then(function(){var fillingVibrant=fillVibrant(elem,source);enableFade&&!layoutManager.tv&&enableEffects!==!1&&!fillingVibrant,elem.removeAttribute("data-src")})}function fillVibrant(img,url,canvas,canvasContext){var vibrantElement=img.getAttribute("data-vibrant");return!!vibrantElement&&(window.Vibrant?(fillVibrantOnLoaded(img,url,vibrantElement,canvas,canvasContext),!0):(require(["vibrant"],function(){fillVibrantOnLoaded(img,url,vibrantElement,canvas,canvasContext)}),!0))}function fillVibrantOnLoaded(img,url,vibrantElement){vibrantElement=document.getElementById(vibrantElement),vibrantElement&&requestIdleCallback(function(){getVibrantInfoFromElement(img,url).then(function(vibrantInfo){var swatch=vibrantInfo.split("|");if(swatch.length){var index=0,style=vibrantElement.style;style.backgroundColor=swatch[index],style.color=swatch[index+1];var classList=vibrantElement.classList;classList.contains("cardFooter")?classList.add("cardFooter-vibrant"):classList.add("vibrant")}})})}function getVibrantInfoFromElement(elem,url){return new Promise(function(resolve,reject){require(["vibrant"],function(){if("IMG"===elem.tagName)return void resolve(getVibrantInfo(elem,url));var img=new Image;img.onload=function(){resolve(getVibrantInfo(img,url))},img.src=url})})}function getSettingsKey(url){var parts=url.split("://");url=parts[parts.length-1],url=url.substring(url.indexOf("/")+1),url=url.split("?")[0];var cacheKey="vibrant31";return cacheKey+url}function getCachedVibrantInfo(url){return appSettings.get(getSettingsKey(url))}function getVibrantInfo(img,url){var value=getCachedVibrantInfo(url);if(value)return value;var vibrant=new Vibrant(img),swatches=vibrant.swatches();value="";var swatch=swatches.DarkVibrant;return value+=getSwatchString(swatch),appSettings.set(getSettingsKey(url),value),value}function getSwatchString(swatch){return swatch?swatch.getHex()+"|"+swatch.getBodyTextColor()+"|"+swatch.getTitleTextColor():"||"}function lazyChildren(elem){lazyLoader.lazyChildren(elem,fillImage)}function getPrimaryImageAspectRatio(items){for(var values=[],i=0,length=items.length;i<length;i++){var ratio=items[i].PrimaryImageAspectRatio||0;ratio&&(values[values.length]=ratio)}if(!values.length)return null;values.sort(function(a,b){return a-b});var result,half=Math.floor(values.length/2);result=values.length%2?values[half]:(values[half-1]+values[half])/2;var aspect2x3=2/3;if(Math.abs(aspect2x3-result)<=.15)return aspect2x3;var aspect16x9=16/9;if(Math.abs(aspect16x9-result)<=.2)return aspect16x9;if(Math.abs(1-result)<=.15)return 1;var aspect4x3=4/3;return Math.abs(aspect4x3-result)<=.15?aspect4x3:result}function fillImages(elems){for(var i=0,length=elems.length;i<length;i++){var elem=elems[0];fillImage(elem)}}var requestIdleCallback=window.requestIdleCallback||function(fn){fn()},self={},enableFade=!browser.slow&&!browser.firefox;return self.fillImages=fillImages,self.lazyImage=fillImage,self.lazyChildren=lazyChildren,self.getPrimaryImageAspectRatio=getPrimaryImageAspectRatio,self.getCachedVibrantInfo=getCachedVibrantInfo,self.getVibrantInfoFromElement=getVibrantInfoFromElement,self});

View file

@ -1 +1 @@
.lazy-image-fadein{-webkit-animation:lazy-image-fadein .3s ease-in normal both;animation:lazy-image-fadein .3s ease-in normal both}.lazy-image-fadein-fast{-webkit-animation:lazy-image-fadein 160ms ease-in normal both;animation:lazy-image-fadein 160ms ease-in normal both}@-webkit-keyframes lazy-image-fadein{from{opacity:0}to{opacity:1}}@keyframes lazy-image-fadein{from{opacity:0}to{opacity:1}}
.lazy-image-fadein{-webkit-animation:lazy-image-fadein 330ms ease-in normal both;animation:lazy-image-fadein 330ms ease-in normal both}.lazy-image-fadein-fast{-webkit-animation:lazy-image-fadein 160ms ease-in normal both;animation:lazy-image-fadein 160ms ease-in normal both}@-webkit-keyframes lazy-image-fadein{from{opacity:0}to{opacity:1}}@keyframes lazy-image-fadein{from{opacity:0}to{opacity:1}}

View file

@ -1 +1 @@
define(["connectionManager","playbackManager","events","inputManager","focusManager","appRouter"],function(connectionManager,playbackManager,events,inputManager,focusManager,appRouter){"use strict";function notifyApp(){inputManager.notify()}function displayMessage(cmd){var args=cmd.Arguments;args.TimeoutMs?require(["toast"],function(toast){toast({title:args.Header,text:args.Text})}):require(["alert"],function(alert){alert({title:args.Header,text:args.Text})})}function displayContent(cmd,apiClient){appRouter.showItem(cmd.Arguments.ItemId,apiClient.serverId())}function processGeneralCommand(cmd,apiClient){switch(cmd.Name){case"Select":return void inputManager.trigger("select");case"Back":return void inputManager.trigger("back");case"MoveUp":return void inputManager.trigger("up");case"MoveDown":return void inputManager.trigger("down");case"MoveLeft":return void inputManager.trigger("left");case"MoveRight":return void inputManager.trigger("right");case"PageUp":return void inputManager.trigger("pageup");case"PageDown":return void inputManager.trigger("pagedown");case"SetRepeatMode":playbackManager.setRepeatMode(cmd.Arguments.RepeatMode);break;case"VolumeUp":return void inputManager.trigger("volumeup");case"VolumeDown":return void inputManager.trigger("volumedown");case"ChannelUp":return void inputManager.trigger("channelup");case"ChannelDown":return void inputManager.trigger("channeldown");case"Mute":return void inputManager.trigger("mute");case"Unmute":return void inputManager.trigger("unmute");case"ToggleMute":return void inputManager.trigger("togglemute");case"SetVolume":notifyApp(),playbackManager.setVolume(cmd.Arguments.Volume);break;case"SetAudioStreamIndex":notifyApp(),playbackManager.setAudioStreamIndex(parseInt(cmd.Arguments.Index));break;case"SetSubtitleStreamIndex":notifyApp(),playbackManager.setSubtitleStreamIndex(parseInt(cmd.Arguments.Index));break;case"ToggleFullscreen":return void inputManager.trigger("togglefullscreen");case"GoHome":return void inputManager.trigger("home");case"GoToSettings":return void inputManager.trigger("settings");case"DisplayContent":displayContent(cmd,apiClient);break;case"GoToSearch":return void inputManager.trigger("search");case"DisplayMessage":displayMessage(cmd);break;case"ToggleOsd":break;case"ToggleContextMenu":break;case"TakeScreenShot":break;case"SendKey":break;case"SendString":focusManager.sendText(cmd.Arguments.String);break;default:console.log("processGeneralCommand does not recognize: "+cmd.Name)}notifyApp()}function onWebSocketMessageReceived(e,msg){var apiClient=this;if("Play"===msg.MessageType){notifyApp();var serverId=apiClient.serverInfo().Id;"PlayNext"===msg.Data.PlayCommand?playbackManager.queueNext({ids:msg.Data.ItemIds,serverId:serverId}):"PlayLast"===msg.Data.PlayCommand?playbackManager.queue({ids:msg.Data.ItemIds,serverId:serverId}):playbackManager.play({ids:msg.Data.ItemIds,startPositionTicks:msg.Data.StartPositionTicks,serverId:serverId})}else if("Playstate"===msg.MessageType)"Stop"===msg.Data.Command?inputManager.trigger("stop"):"Pause"===msg.Data.Command?inputManager.trigger("pause"):"Unpause"===msg.Data.Command?inputManager.trigger("play"):"Seek"===msg.Data.Command?playbackManager.seek(msg.Data.SeekPositionTicks):"NextTrack"===msg.Data.Command?inputManager.trigger("next"):"PreviousTrack"===msg.Data.Command?inputManager.trigger("previous"):notifyApp();else if("GeneralCommand"===msg.MessageType){var cmd=msg.Data;processGeneralCommand(cmd,apiClient)}}function bindEvents(apiClient){events.off(apiClient,"websocketmessage",onWebSocketMessageReceived),events.on(apiClient,"websocketmessage",onWebSocketMessageReceived)}connectionManager.getApiClients().forEach(bindEvents),events.on(connectionManager,"apiclientcreated",function(e,newApiClient){bindEvents(newApiClient)})});
define(["connectionManager","playbackManager","events","inputManager","focusManager","appRouter"],function(connectionManager,playbackManager,events,inputManager,focusManager,appRouter){"use strict";function notifyApp(){inputManager.notify()}function displayMessage(cmd){var args=cmd.Arguments;args.TimeoutMs?require(["toast"],function(toast){toast({title:args.Header,text:args.Text})}):require(["alert"],function(alert){alert({title:args.Header,text:args.Text})})}function displayContent(cmd,apiClient){appRouter.showItem(cmd.Arguments.ItemId,apiClient.serverId())}function processGeneralCommand(cmd,apiClient){switch(cmd.Name){case"Select":return void inputManager.trigger("select");case"Back":return void inputManager.trigger("back");case"MoveUp":return void inputManager.trigger("up");case"MoveDown":return void inputManager.trigger("down");case"MoveLeft":return void inputManager.trigger("left");case"MoveRight":return void inputManager.trigger("right");case"PageUp":return void inputManager.trigger("pageup");case"PageDown":return void inputManager.trigger("pagedown");case"SetRepeatMode":playbackManager.setRepeatMode(cmd.Arguments.RepeatMode);break;case"VolumeUp":return void inputManager.trigger("volumeup");case"VolumeDown":return void inputManager.trigger("volumedown");case"ChannelUp":return void inputManager.trigger("channelup");case"ChannelDown":return void inputManager.trigger("channeldown");case"Mute":return void inputManager.trigger("mute");case"Unmute":return void inputManager.trigger("unmute");case"ToggleMute":return void inputManager.trigger("togglemute");case"SetVolume":notifyApp(),playbackManager.setVolume(cmd.Arguments.Volume);break;case"SetAudioStreamIndex":notifyApp(),playbackManager.setAudioStreamIndex(parseInt(cmd.Arguments.Index));break;case"SetSubtitleStreamIndex":notifyApp(),playbackManager.setSubtitleStreamIndex(parseInt(cmd.Arguments.Index));break;case"ToggleFullscreen":return void inputManager.trigger("togglefullscreen");case"GoHome":return void inputManager.trigger("home");case"GoToSettings":return void inputManager.trigger("settings");case"DisplayContent":displayContent(cmd,apiClient);break;case"GoToSearch":return void inputManager.trigger("search");case"DisplayMessage":displayMessage(cmd);break;case"ToggleOsd":break;case"ToggleContextMenu":break;case"TakeScreenShot":break;case"SendKey":break;case"SendString":focusManager.sendText(cmd.Arguments.String);break;default:console.log("processGeneralCommand does not recognize: "+cmd.Name)}notifyApp()}function onWebSocketMessageReceived(e,msg){var apiClient=this;if("Play"===msg.MessageType){notifyApp();var serverId=apiClient.serverInfo().Id;"PlayNext"===msg.Data.PlayCommand?playbackManager.queueNext({ids:msg.Data.ItemIds,serverId:serverId}):"PlayLast"===msg.Data.PlayCommand?playbackManager.queue({ids:msg.Data.ItemIds,serverId:serverId}):playbackManager.play({ids:msg.Data.ItemIds,startPositionTicks:msg.Data.StartPositionTicks,serverId:serverId})}else if("Playstate"===msg.MessageType)"Stop"===msg.Data.Command?inputManager.trigger("stop"):"Pause"===msg.Data.Command?inputManager.trigger("pause"):"Unpause"===msg.Data.Command?inputManager.trigger("play"):"PlayPause"===msg.Data.Command?inputManager.trigger("playpause"):"Seek"===msg.Data.Command?playbackManager.seek(msg.Data.SeekPositionTicks):"NextTrack"===msg.Data.Command?inputManager.trigger("next"):"PreviousTrack"===msg.Data.Command?inputManager.trigger("previous"):notifyApp();else if("GeneralCommand"===msg.MessageType){var cmd=msg.Data;processGeneralCommand(cmd,apiClient)}}function bindEvents(apiClient){events.off(apiClient,"websocketmessage",onWebSocketMessageReceived),events.on(apiClient,"websocketmessage",onWebSocketMessageReceived)}connectionManager.getApiClients().forEach(bindEvents),events.on(connectionManager,"apiclientcreated",function(e,newApiClient){bindEvents(newApiClient)})});

View file

@ -1 +1 @@
.loading-spinner{margin-top:-5vh;margin-left:-5vh;width:10vh;height:10vh;position:fixed;top:50%;left:50%;z-index:9999999}
.loading-spinner{margin-top:-3em;margin-left:-3em;width:6em;height:6em;position:fixed;top:50%;left:50%;z-index:9999999}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
define(["connectionManager","globalize","userSettings","apphost"],function(connectionManager,globalize,userSettings,appHost){"use strict";function showMessage(text,userSettingsKey,appHostFeature){return appHost.supports(appHostFeature)?Promise.resolve():"1"===userSettings.get(userSettingsKey,!1)?Promise.resolve():new Promise(function(resolve,reject){userSettings.set(userSettingsKey,"1",!1),require(["alert"],function(alert){return alert(text).then(resolve,resolve)})})}function showBlurayMessage(){var message="Playback of Bluray folders in this app is experimental. Some titles may not work at all. For a better experience, consider converting to mkv video files, or use an Emby app with native Bluray folder support.";return showMessage(message,"blurayexpirementalinfo","nativeblurayplayback")}function showDvdMessage(){var message="Playback of Dvd folders in this app is experimental. Some titles may not work at all. For a better experience, consider converting to mkv video files, or use an Emby app with native Dvd folder support.";return showMessage(message,"dvdexpirementalinfo","nativedvdplayback")}function showIsoMessage(){var message="Playback of ISO files in this app is experimental. Some titles may not work at all. For a better experience, consider converting to mkv video files, or use an Emby app with native ISO support.";return showMessage(message,"isoexpirementalinfo","nativeisoplayback")}function ExpirementalPlaybackWarnings(){this.name="Experimental playback warnings",this.type="preplayintercept",this.id="expirementalplaybackwarnings"}return ExpirementalPlaybackWarnings.prototype.intercept=function(options){var item=options.item;return item?"Iso"===item.VideoType?showIsoMessage():"BluRay"===item.VideoType?showBlurayMessage():"Dvd"===item.VideoType?showDvdMessage():Promise.resolve():Promise.resolve()},ExpirementalPlaybackWarnings});
define(["connectionManager","globalize","userSettings","apphost"],function(connectionManager,globalize,userSettings,appHost){"use strict";function showMessage(text,userSettingsKey,appHostFeature){return userSettingsKey+=(new Date).getMonth(),appHost.supports(appHostFeature)?Promise.resolve():"1"===userSettings.get(userSettingsKey,!1)?Promise.resolve():new Promise(function(resolve,reject){userSettings.set(userSettingsKey,"1",!1),require(["alert"],function(alert){return alert(text).then(resolve,resolve)})})}function showBlurayMessage(){var message="Playback of Bluray folders in this app is experimental. Some titles may not work at all. For a better experience, consider converting to mkv video files, or use an Emby app with native Bluray folder support.";return showMessage(message,"blurayexpirementalinfo","nativeblurayplayback")}function showDvdMessage(){var message="Playback of Dvd folders in this app is experimental. Some titles may not work at all. For a better experience, consider converting to mkv video files, or use an Emby app with native Dvd folder support.";return showMessage(message,"dvdexpirementalinfo","nativedvdplayback")}function showIsoMessage(){var message="Playback of ISO files in this app is experimental. Some titles may not work at all. For a better experience, consider converting to mkv video files, or use an Emby app with native ISO support.";return showMessage(message,"isoexpirementalinfo","nativeisoplayback")}function ExpirementalPlaybackWarnings(){this.name="Experimental playback warnings",this.type="preplayintercept",this.id="expirementalplaybackwarnings"}return ExpirementalPlaybackWarnings.prototype.intercept=function(options){var item=options.item;return item?"Iso"===item.VideoType?showIsoMessage():"BluRay"===item.VideoType?showBlurayMessage():"Dvd"===item.VideoType?showDvdMessage():Promise.resolve():Promise.resolve()},ExpirementalPlaybackWarnings});

View file

@ -1 +1 @@
define(["playbackManager","nowPlayingHelper","events","connectionManager"],function(playbackManager,nowPlayingHelper,events,connectionManager){"use strict";function seriesImageUrl(item,options){if("Episode"!==item.Type)return null;if(options=options||{},options.type=options.type||"Primary","Primary"===options.type&&item.SeriesPrimaryImageTag)return options.tag=item.SeriesPrimaryImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId,options);if("Thumb"===options.type){if(item.SeriesThumbImageTag)return options.tag=item.SeriesThumbImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId,options);if(item.ParentThumbImageTag)return options.tag=item.ParentThumbImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.ParentThumbItemId,options)}return null}function imageUrl(item,options){return options=options||{},options.type=options.type||"Primary",item.ImageTags&&item.ImageTags[options.type]?(options.tag=item.ImageTags[options.type],connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.Id,options)):item.AlbumId&&item.AlbumPrimaryImageTag?(options.tag=item.AlbumPrimaryImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.AlbumId,options)):null}function pushImageUrl(item,height,list){var imageOptions={height:height},url=seriesImageUrl(item,imageOptions)||imageUrl(item,imageOptions);url&&list.push({src:url,sizes:height+"x"+height})}function getImageUrls(item){var list=[];return pushImageUrl(item,96,list),pushImageUrl(item,128,list),pushImageUrl(item,192,list),pushImageUrl(item,256,list),pushImageUrl(item,384,list),pushImageUrl(item,512,list),list}function updatePlayerState(player,state,eventName){var item=state.NowPlayingItem;if(!item)return void hideMediaControls();var playState=state.PlayState||{},parts=nowPlayingHelper.getNowPlayingNames(item),artist=1===parts.length?"":parts[0].text,title=parts[parts.length-1].text,isVideo="Video"===item.MediaType;if(isVideo&&parts.length>1){var temp=artist;artist=title,title=temp}var albumArtist;item.AlbumArtists&&item.AlbumArtists[0]&&(albumArtist=item.AlbumArtists[0].Name);var album=item.Album||"",itemId=item.Id,duration=parseInt(item.RunTimeTicks?item.RunTimeTicks/1e4:0),currentTime=parseInt(playState.PositionTicks?playState.PositionTicks/1e4:0),isPaused=playState.IsPaused||!1;playState.CanSeek||!1;navigator.mediaSession.metadata=new MediaMetadata({title:title,artist:artist,album:album,artwork:getImageUrls(item),albumArtist:albumArtist,currentTime:currentTime,duration:duration,paused:isPaused,itemId:itemId,mediaType:item.MediaType})}function onGeneralEvent(e,state){var player=this;playbackManager.getPlayerState(player).then(function(state){updatePlayerState(player,state,e.type)})}function onStateChanged(e,state){var player=this;updatePlayerState(player,state,"statechange")}function onPlaybackStart(e,state){console.log("nowplaying event: "+e.type);var player=this;updatePlayerState(player,state,e.type)}function onPlaybackStopped(e,state){console.log("nowplaying event: "+e.type);hideMediaControls()}function releaseCurrentPlayer(){currentPlayer&&(events.off(currentPlayer,"playbackstart",onPlaybackStart),events.off(currentPlayer,"playbackstop",onPlaybackStopped),events.off(currentPlayer,"unpause",onGeneralEvent),events.off(currentPlayer,"pause",onGeneralEvent),events.off(currentPlayer,"statechange",onStateChanged),events.off(currentPlayer,"timeupdate",onGeneralEvent),currentPlayer=null,hideMediaControls())}function hideMediaControls(){navigator.mediaSession.metadata=null}function bindToPlayer(player){releaseCurrentPlayer(),player&&(currentPlayer=player,console.log("binding remotecontrols to "+player.name),playbackManager.getPlayerState(player).then(function(state){updatePlayerState(player,state,"init")}),events.on(currentPlayer,"playbackstart",onPlaybackStart),events.on(currentPlayer,"playbackstop",onPlaybackStopped),events.on(currentPlayer,"unpause",onGeneralEvent),events.on(currentPlayer,"pause",onGeneralEvent),events.on(currentPlayer,"statechange",onStateChanged),events.on(currentPlayer,"timeupdate",onGeneralEvent))}function execute(name){playbackManager[name](currentPlayer)}var currentPlayer;console.log("binding remotecontrols to playbackManager"),navigator.mediaSession.setActionHandler("previoustrack",function(){execute("previousChapter")}),navigator.mediaSession.setActionHandler("nexttrack",function(){execute("nextChapter")}),navigator.mediaSession.setActionHandler("play",function(){execute("unpause")}),navigator.mediaSession.setActionHandler("pause",function(){execute("pause")}),navigator.mediaSession.setActionHandler("seekbackward",function(){execute("rewind")}),navigator.mediaSession.setActionHandler("seekforward",function(){execute("fastForward")}),events.on(playbackManager,"playerchange",function(){bindToPlayer(playbackManager.getCurrentPlayer())}),bindToPlayer(playbackManager.getCurrentPlayer())});
define(["playbackManager","nowPlayingHelper","events","connectionManager"],function(playbackManager,nowPlayingHelper,events,connectionManager){"use strict";function seriesImageUrl(item,options){if("Episode"!==item.Type)return null;if(options=options||{},options.type=options.type||"Primary","Primary"===options.type&&item.SeriesPrimaryImageTag)return options.tag=item.SeriesPrimaryImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId,options);if("Thumb"===options.type){if(item.SeriesThumbImageTag)return options.tag=item.SeriesThumbImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId,options);if(item.ParentThumbImageTag)return options.tag=item.ParentThumbImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.ParentThumbItemId,options)}return null}function imageUrl(item,options){return options=options||{},options.type=options.type||"Primary",item.ImageTags&&item.ImageTags[options.type]?(options.tag=item.ImageTags[options.type],connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.Id,options)):item.AlbumId&&item.AlbumPrimaryImageTag?(options.tag=item.AlbumPrimaryImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.AlbumId,options)):null}function pushImageUrl(item,height,list){var imageOptions={height:height},url=seriesImageUrl(item,imageOptions)||imageUrl(item,imageOptions);url&&list.push({src:url,sizes:height+"x"+height})}function getImageUrls(item){var list=[];return pushImageUrl(item,96,list),pushImageUrl(item,128,list),pushImageUrl(item,192,list),pushImageUrl(item,256,list),pushImageUrl(item,384,list),pushImageUrl(item,512,list),list}function updatePlayerState(player,state,eventName){var item=state.NowPlayingItem;if(!item)return void hideMediaControls();var playState=state.PlayState||{},parts=nowPlayingHelper.getNowPlayingNames(item),artist=1===parts.length?"":parts[0].text,title=parts[parts.length-1].text,isVideo="Video"===item.MediaType;if(isVideo&&parts.length>1){var temp=artist;artist=title,title=temp}var albumArtist;item.AlbumArtists&&item.AlbumArtists[0]&&(albumArtist=item.AlbumArtists[0].Name);var album=item.Album||"",itemId=item.Id,duration=parseInt(item.RunTimeTicks?item.RunTimeTicks/1e4:0),currentTime=parseInt(playState.PositionTicks?playState.PositionTicks/1e4:0),isPaused=playState.IsPaused||!1;playState.CanSeek||!1;navigator.mediaSession.metadata=new MediaMetadata({title:title,artist:artist,album:album,artwork:getImageUrls(item),albumArtist:albumArtist,currentTime:currentTime,duration:duration,paused:isPaused,itemId:itemId,mediaType:item.MediaType})}function onGeneralEvent(e){var player=this,state=playbackManager.getPlayerState(player);updatePlayerState(player,state,e.type)}function onStateChanged(e,state){var player=this;updatePlayerState(player,state,"statechange")}function onPlaybackStart(e,state){console.log("nowplaying event: "+e.type);var player=this;updatePlayerState(player,state,e.type)}function onPlaybackStopped(e,state){console.log("nowplaying event: "+e.type);hideMediaControls()}function releaseCurrentPlayer(){currentPlayer&&(events.off(currentPlayer,"playbackstart",onPlaybackStart),events.off(currentPlayer,"playbackstop",onPlaybackStopped),events.off(currentPlayer,"unpause",onGeneralEvent),events.off(currentPlayer,"pause",onGeneralEvent),events.off(currentPlayer,"statechange",onStateChanged),events.off(currentPlayer,"timeupdate",onGeneralEvent),currentPlayer=null,hideMediaControls())}function hideMediaControls(){navigator.mediaSession.metadata=null}function bindToPlayer(player){if(releaseCurrentPlayer(),player){currentPlayer=player,console.log("binding remotecontrols to "+player.name);var state=playbackManager.getPlayerState(player);updatePlayerState(player,state,"init"),events.on(currentPlayer,"playbackstart",onPlaybackStart),events.on(currentPlayer,"playbackstop",onPlaybackStopped),events.on(currentPlayer,"unpause",onGeneralEvent),events.on(currentPlayer,"pause",onGeneralEvent),events.on(currentPlayer,"statechange",onStateChanged),events.on(currentPlayer,"timeupdate",onGeneralEvent)}}function execute(name){playbackManager[name](currentPlayer)}var currentPlayer;console.log("binding remotecontrols to playbackManager"),navigator.mediaSession.setActionHandler("previoustrack",function(){execute("previousChapter")}),navigator.mediaSession.setActionHandler("nexttrack",function(){execute("nextChapter")}),navigator.mediaSession.setActionHandler("play",function(){execute("unpause")}),navigator.mediaSession.setActionHandler("pause",function(){execute("pause")}),navigator.mediaSession.setActionHandler("seekbackward",function(){execute("rewind")}),navigator.mediaSession.setActionHandler("seekforward",function(){execute("fastForward")}),events.on(playbackManager,"playerchange",function(){bindToPlayer(playbackManager.getCurrentPlayer())}),bindToPlayer(playbackManager.getCurrentPlayer())});

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
define(["actionsheet","datetime","playbackManager","globalize","appSettings","qualityoptions"],function(actionsheet,datetime,playbackManager,globalize,appSettings,qualityoptions){"use strict";function showQualityMenu(player,btn){var videoStream=playbackManager.currentMediaSource(player).MediaStreams.filter(function(stream){return"Video"===stream.Type})[0],videoWidth=videoStream?videoStream.Width:null,options=qualityoptions.getVideoQualityOptions({currentMaxBitrate:playbackManager.getMaxStreamingBitrate(player),isAutomaticBitrateEnabled:playbackManager.enableAutomaticBitrateDetection(player),videoWidth:videoWidth,enableAuto:!0}),menuItems=options.map(function(o){var opt={name:o.name,id:o.bitrate,secondaryText:o.secondaryText};return o.selected&&(opt.selected=!0),opt}),selectedId=options.filter(function(o){return o.selected});return selectedId=selectedId.length?selectedId[0].bitrate:null,actionsheet.show({items:menuItems,positionTo:btn}).then(function(id){var bitrate=parseInt(id);bitrate!==selectedId&&playbackManager.setMaxStreamingBitrate({enableAutomaticBitrateDetection:!bitrate,maxBitrate:bitrate},player)})}function showRepeatModeMenu(player,btn){var menuItems=[],currentValue=playbackManager.getRepeatMode(player);return menuItems.push({name:globalize.translate("sharedcomponents#RepeatAll"),id:"RepeatAll",selected:"RepeatAll"===currentValue}),menuItems.push({name:globalize.translate("sharedcomponents#RepeatOne"),id:"RepeatOne",selected:"RepeatOne"===currentValue}),menuItems.push({name:globalize.translate("sharedcomponents#None"),id:"RepeatNone",selected:"RepeatNone"===currentValue}),actionsheet.show({items:menuItems,positionTo:btn}).then(function(mode){mode&&playbackManager.setRepeatMode(mode,player)})}function getQualitySecondaryText(player){return playbackManager.getPlayerState(player).then(function(state){var videoStream=(playbackManager.enableAutomaticBitrateDetection(player),playbackManager.getMaxStreamingBitrate(player),playbackManager.currentMediaSource(player).MediaStreams.filter(function(stream){return"Video"===stream.Type})[0]),videoWidth=videoStream?videoStream.Width:null,options=qualityoptions.getVideoQualityOptions({currentMaxBitrate:playbackManager.getMaxStreamingBitrate(player),isAutomaticBitrateEnabled:playbackManager.enableAutomaticBitrateDetection(player),videoWidth:videoWidth,enableAuto:!0}),selectedOption=(options.map(function(o){var opt={name:o.name,id:o.bitrate,secondaryText:o.secondaryText};return o.selected&&(opt.selected=!0),opt}),options.filter(function(o){return o.selected}));if(!selectedOption.length)return null;selectedOption=selectedOption[0];var text=selectedOption.name;return selectedOption.autoText&&(text+=state.PlayState&&"Transcode"!==state.PlayState.PlayMethod?" - Direct":" "+selectedOption.autoText),text})}function showAspectRatioMenu(player,btn){var currentId=playbackManager.getAspectRatio(player),menuItems=playbackManager.getSupportedAspectRatios(player).map(function(i){return{id:i.id,name:i.name,selected:i.id===currentId}});return actionsheet.show({items:menuItems,positionTo:btn}).then(function(id){return id?(playbackManager.setAspectRatio(id,player),Promise.resolve()):Promise.reject()})}function show(options){var player=options.player,supportedCommands=playbackManager.getSupportedCommands(player);return getQualitySecondaryText(player).then(function(secondaryQualityText){var menuItems=(options.mediaType,[]);if(supportedCommands.indexOf("SetAspectRatio")!==-1){var currentAspectRatioId=playbackManager.getAspectRatio(player),currentAspectRatio=playbackManager.getSupportedAspectRatios(player).filter(function(i){return i.id===currentAspectRatioId})[0];menuItems.push({name:globalize.translate("sharedcomponents#AspectRatio"),id:"aspectratio",secondaryText:currentAspectRatio?currentAspectRatio.name:null})}menuItems.push({name:globalize.translate("sharedcomponents#Quality"),id:"quality",secondaryText:secondaryQualityText});var repeatMode=playbackManager.getRepeatMode(player);return supportedCommands.indexOf("SetRepeatMode")!==-1&&playbackManager.currentMediaSource(player).RunTimeTicks&&menuItems.push({name:globalize.translate("sharedcomponents#RepeatMode"),id:"repeatmode",secondaryText:"RepeatNone"===repeatMode?globalize.translate("sharedcomponents#None"):globalize.translate("sharedcomponents#"+repeatMode)}),options.stats&&menuItems.push({name:globalize.translate("sharedcomponents#StatsForNerds"),id:"stats",secondaryText:null}),actionsheet.show({items:menuItems,positionTo:options.positionTo}).then(function(id){return handleSelectedOption(id,options,player)})})}function handleSelectedOption(id,options,player){switch(id){case"quality":return showQualityMenu(player,options.positionTo);case"aspectratio":return showAspectRatioMenu(player,options.positionTo);case"repeatmode":return showRepeatModeMenu(player,options.positionTo);case"stats":return options.onOption&&options.onOption("stats"),Promise.resolve()}return Promise.reject()}return{show:show}});
define(["actionsheet","datetime","playbackManager","globalize","appSettings","qualityoptions"],function(actionsheet,datetime,playbackManager,globalize,appSettings,qualityoptions){"use strict";function showQualityMenu(player,btn){var videoStream=playbackManager.currentMediaSource(player).MediaStreams.filter(function(stream){return"Video"===stream.Type})[0],videoWidth=videoStream?videoStream.Width:null,options=qualityoptions.getVideoQualityOptions({currentMaxBitrate:playbackManager.getMaxStreamingBitrate(player),isAutomaticBitrateEnabled:playbackManager.enableAutomaticBitrateDetection(player),videoWidth:videoWidth,enableAuto:!0}),menuItems=options.map(function(o){var opt={name:o.name,id:o.bitrate,secondaryText:o.secondaryText};return o.selected&&(opt.selected=!0),opt}),selectedId=options.filter(function(o){return o.selected});return selectedId=selectedId.length?selectedId[0].bitrate:null,actionsheet.show({items:menuItems,positionTo:btn}).then(function(id){var bitrate=parseInt(id);bitrate!==selectedId&&playbackManager.setMaxStreamingBitrate({enableAutomaticBitrateDetection:!bitrate,maxBitrate:bitrate},player)})}function showRepeatModeMenu(player,btn){var menuItems=[],currentValue=playbackManager.getRepeatMode(player);return menuItems.push({name:globalize.translate("sharedcomponents#RepeatAll"),id:"RepeatAll",selected:"RepeatAll"===currentValue}),menuItems.push({name:globalize.translate("sharedcomponents#RepeatOne"),id:"RepeatOne",selected:"RepeatOne"===currentValue}),menuItems.push({name:globalize.translate("sharedcomponents#None"),id:"RepeatNone",selected:"RepeatNone"===currentValue}),actionsheet.show({items:menuItems,positionTo:btn}).then(function(mode){mode&&playbackManager.setRepeatMode(mode,player)})}function getQualitySecondaryText(player){var state=playbackManager.getPlayerState(player),videoStream=(playbackManager.enableAutomaticBitrateDetection(player),playbackManager.getMaxStreamingBitrate(player),playbackManager.currentMediaSource(player).MediaStreams.filter(function(stream){return"Video"===stream.Type})[0]),videoWidth=videoStream?videoStream.Width:null,options=qualityoptions.getVideoQualityOptions({currentMaxBitrate:playbackManager.getMaxStreamingBitrate(player),isAutomaticBitrateEnabled:playbackManager.enableAutomaticBitrateDetection(player),videoWidth:videoWidth,enableAuto:!0}),selectedOption=(options.map(function(o){var opt={name:o.name,id:o.bitrate,secondaryText:o.secondaryText};return o.selected&&(opt.selected=!0),opt}),options.filter(function(o){return o.selected}));if(!selectedOption.length)return null;selectedOption=selectedOption[0];var text=selectedOption.name;return selectedOption.autoText&&(text+=state.PlayState&&"Transcode"!==state.PlayState.PlayMethod?" - Direct":" "+selectedOption.autoText),text}function showAspectRatioMenu(player,btn){var currentId=playbackManager.getAspectRatio(player),menuItems=playbackManager.getSupportedAspectRatios(player).map(function(i){return{id:i.id,name:i.name,selected:i.id===currentId}});return actionsheet.show({items:menuItems,positionTo:btn}).then(function(id){return id?(playbackManager.setAspectRatio(id,player),Promise.resolve()):Promise.reject()})}function show(options){var player=options.player,supportedCommands=playbackManager.getSupportedCommands(player),secondaryQualityText=getQualitySecondaryText(player),menuItems=(options.mediaType,[]);if(supportedCommands.indexOf("SetAspectRatio")!==-1){var currentAspectRatioId=playbackManager.getAspectRatio(player),currentAspectRatio=playbackManager.getSupportedAspectRatios(player).filter(function(i){return i.id===currentAspectRatioId})[0];menuItems.push({name:globalize.translate("sharedcomponents#AspectRatio"),id:"aspectratio",secondaryText:currentAspectRatio?currentAspectRatio.name:null})}menuItems.push({name:globalize.translate("sharedcomponents#Quality"),id:"quality",secondaryText:secondaryQualityText});var repeatMode=playbackManager.getRepeatMode(player);return supportedCommands.indexOf("SetRepeatMode")!==-1&&playbackManager.currentMediaSource(player).RunTimeTicks&&menuItems.push({name:globalize.translate("sharedcomponents#RepeatMode"),id:"repeatmode",secondaryText:"RepeatNone"===repeatMode?globalize.translate("sharedcomponents#None"):globalize.translate("sharedcomponents#"+repeatMode)}),options.stats&&menuItems.push({name:globalize.translate("sharedcomponents#StatsForNerds"),id:"stats",secondaryText:null}),actionsheet.show({items:menuItems,positionTo:options.positionTo}).then(function(id){return handleSelectedOption(id,options,player)})}function handleSelectedOption(id,options,player){switch(id){case"quality":return showQualityMenu(player,options.positionTo);case"aspectratio":return showAspectRatioMenu(player,options.positionTo);case"repeatmode":return showRepeatModeMenu(player,options.positionTo);case"stats":return options.onOption&&options.onOption("stats"),Promise.resolve()}return Promise.reject()}return{show:show}});

View file

@ -1 +1 @@
define(["events","playbackManager"],function(events,playbackManager){"use strict";function transferPlayback(oldPlayer,newPlayer){playbackManager.getPlayerState(oldPlayer).then(function(state){var item=state.NowPlayingItem;if(item){var playState=state.PlayState||{};playbackManager.stop(oldPlayer).then(function(){var resumePositionTicks=playState.PositionTicks||0;playbackManager.play({ids:[item.Id],serverId:item.ServerId,startPositionTicks:resumePositionTicks},newPlayer)})}})}events.on(playbackManager,"playerchange",function(e,newPlayer,newTarget,oldPlayer){if(oldPlayer&&newPlayer)return oldPlayer.isLocalPlayer?newPlayer.isLocalPlayer?void console.log("Skipping remote control autoplay because newPlayer is a local player"):void transferPlayback(oldPlayer,newPlayer):void console.log("Skipping remote control autoplay because oldPlayer is not a local player")})});
define(["events","playbackManager"],function(events,playbackManager){"use strict";function transferPlayback(oldPlayer,newPlayer){var state=playbackManager.getPlayerState(oldPlayer),item=state.NowPlayingItem;if(item){var playState=state.PlayState||{};playbackManager.stop(oldPlayer).then(function(){var resumePositionTicks=playState.PositionTicks||0;playbackManager.play({ids:[item.Id],serverId:item.ServerId,startPositionTicks:resumePositionTicks},newPlayer)})}}events.on(playbackManager,"playerchange",function(e,newPlayer,newTarget,oldPlayer){if(oldPlayer&&newPlayer)return oldPlayer.isLocalPlayer?newPlayer.isLocalPlayer?void console.log("Skipping remote control autoplay because newPlayer is a local player"):void transferPlayback(oldPlayer,newPlayer):void console.log("Skipping remote control autoplay because oldPlayer is not a local player")})});

File diff suppressed because one or more lines are too long

View file

@ -32,7 +32,7 @@
</div>
<div class="selectContainer">
<select is="emby-select" class="selectAirTime" label="${LabelAirtime}">
<select is="emby-select" class="selectAirTime" label="${LabelAirTime}">
<option class="optionAroundTime" value="original"></option>
<option value="any">${Anytime}</option>
</select>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
.searchFieldsInner{max-width:60em;margin:0 auto}.searchfields-icon{margin-top:.5em;margin-right:.5em;font-size:2em}
.searchFieldsInner{max-width:60em;margin:0 auto}.searchfields-icon{margin-bottom:.1em;margin-right:.25em;font-size:2em;-webkit-align-self:flex-end;align-self:flex-end}

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
define(["userSettings","events","pluginManager","backdrop","globalize","require","appSettings"],function(userSettings,events,pluginManager,backdrop,globalize,require,appSettings){"use strict";function getCurrentSkin(){return currentSkin}function getRequirePromise(deps){return new Promise(function(resolve,reject){require(deps,resolve)})}function loadSkin(id){var newSkin=pluginManager.plugins().filter(function(p){return p.id===id})[0];newSkin||(newSkin=pluginManager.plugins().filter(function(p){return"defaultskin"===p.id})[0]);var unloadPromise;if(currentSkin){if(currentSkin.id===newSkin.id)return Promise.resolve(currentSkin);unloadPromise=unloadSkin(currentSkin)}else unloadPromise=Promise.resolve();return unloadPromise.then(function(){var deps=newSkin.getDependencies();return console.log("Loading skin dependencies"),getRequirePromise(deps).then(function(){console.log("Skin dependencies loaded");var strings=newSkin.getTranslations?newSkin.getTranslations():[];return globalize.loadStrings({name:newSkin.id,strings:strings}).then(function(){return globalize.defaultModule(newSkin.id),loadSkinHeader(newSkin)})})})}function unloadSkin(skin){return unloadTheme(),backdrop.clear(),console.log("Unloading skin: "+skin.name),skin.unload().then(function(){document.dispatchEvent(new CustomEvent("skinunload",{detail:{name:skin.name}}))})}function loadSkinHeader(skin){return getSkinHeader(skin).then(function(headerHtml){return document.querySelector(".skinHeader").innerHTML=headerHtml,currentSkin=skin,skin.load(),skin})}function getSkinHeader(skin){return new Promise(function(resolve,reject){if(!skin.getHeaderTemplate)return void resolve("");var xhr=new XMLHttpRequest,url=skin.getHeaderTemplate();url+=url.indexOf("?")===-1?"?":"&",url+="v="+cacheParam,xhr.open("GET",url,!0),xhr.onload=function(e){resolve(this.status<400?this.response:"")},xhr.send()})}function loadUserSkin(){var skin=userSettings.get("skin",!1)||"defaultskin";loadSkin(skin).then(function(skin){Emby.Page.goHome()})}function unloadTheme(){var elem=themeStyleElement;elem&&(elem.parentNode.removeChild(elem),themeStyleElement=null,currentThemeId=null)}function getThemes(){return currentSkin.getThemes?currentSkin.getThemes():[]}function onRegistrationSuccess(){appSettings.set("appthemesregistered","true")}function onRegistrationFailure(){appSettings.set("appthemesregistered","false")}function isRegistered(){return getRequirePromise(["registrationServices"]).then(function(registrationServices){registrationServices.validateFeature("themes",{showDialog:!1}).then(onRegistrationSuccess,onRegistrationFailure)}),"false"!==appSettings.get("appthemesregistered")}function getThemeStylesheetInfo(id,isDefaultProperty){for(var defaultTheme,selectedTheme,themes=skinManager.getThemes(),i=0,length=themes.length;i<length;i++){var theme=themes[i];theme[isDefaultProperty]&&(defaultTheme=theme),id===theme.id&&(selectedTheme=theme)}selectedTheme=selectedTheme||defaultTheme,selectedTheme===defaultTheme.id||isRegistered()||(selectedTheme=defaultTheme);var embyWebComponentsBowerPath="bower_components/emby-webcomponents";return{stylesheetPath:require.toUrl(embyWebComponentsBowerPath+"/themes/"+selectedTheme.id+"/theme.css"),themeId:selectedTheme.id}}var currentSkin,cacheParam=(new Date).getTime();events.on(userSettings,"change",function(e,name){"skin"!==name&&"language"!==name||loadUserSkin()});var themeStyleElement,currentThemeId,skinManager={getCurrentSkin:getCurrentSkin,loadSkin:loadSkin,loadUserSkin:loadUserSkin,getThemes:getThemes};return skinManager.setTheme=function(id,context){return new Promise(function(resolve,reject){if(currentThemeId&&currentThemeId===id)return void resolve();var isDefaultProperty="serverdashboard"===context?"isDefaultServerDashboard":"isDefault",info=getThemeStylesheetInfo(id,isDefaultProperty);if(currentThemeId&&currentThemeId===info.themeId)return void resolve();var linkUrl=info.stylesheetPath;unloadTheme();var link=document.createElement("link");link.setAttribute("rel","stylesheet"),link.setAttribute("type","text/css"),link.onload=resolve,link.setAttribute("href",linkUrl),document.head.appendChild(link),themeStyleElement=link,currentThemeId=info.themeId})},skinManager});
define(["userSettings","events","pluginManager","backdrop","globalize","require","appSettings"],function(userSettings,events,pluginManager,backdrop,globalize,require,appSettings){"use strict";function getCurrentSkin(){return currentSkin}function getRequirePromise(deps){return new Promise(function(resolve,reject){require(deps,resolve)})}function loadSkin(id){var newSkin=pluginManager.plugins().filter(function(p){return p.id===id})[0];newSkin||(newSkin=pluginManager.plugins().filter(function(p){return"defaultskin"===p.id})[0]);var unloadPromise;if(currentSkin){if(currentSkin.id===newSkin.id)return Promise.resolve(currentSkin);unloadPromise=unloadSkin(currentSkin)}else unloadPromise=Promise.resolve();return unloadPromise.then(function(){var deps=newSkin.getDependencies();return console.log("Loading skin dependencies"),getRequirePromise(deps).then(function(){console.log("Skin dependencies loaded");var strings=newSkin.getTranslations?newSkin.getTranslations():[];return globalize.loadStrings({name:newSkin.id,strings:strings}).then(function(){return globalize.defaultModule(newSkin.id),loadSkinHeader(newSkin)})})})}function unloadSkin(skin){return unloadTheme(),backdrop.clear(),console.log("Unloading skin: "+skin.name),skin.unload().then(function(){document.dispatchEvent(new CustomEvent("skinunload",{detail:{name:skin.name}}))})}function loadSkinHeader(skin){return getSkinHeader(skin).then(function(headerHtml){return document.querySelector(".skinHeader").innerHTML=headerHtml,currentSkin=skin,skin.load(),skin})}function getSkinHeader(skin){return new Promise(function(resolve,reject){if(!skin.getHeaderTemplate)return void resolve("");var xhr=new XMLHttpRequest,url=skin.getHeaderTemplate();url+=url.indexOf("?")===-1?"?":"&",url+="v="+cacheParam,xhr.open("GET",url,!0),xhr.onload=function(e){resolve(this.status<400?this.response:"")},xhr.send()})}function loadUserSkin(options){var skin=userSettings.get("skin",!1)||"defaultskin";loadSkin(skin).then(function(skin){options=options||{},options.start?Emby.Page.invokeShortcut(options.start):Emby.Page.goHome()})}function unloadTheme(){var elem=themeStyleElement;elem&&(elem.parentNode.removeChild(elem),themeStyleElement=null,currentThemeId=null)}function getThemes(){return currentSkin.getThemes?currentSkin.getThemes():[]}function onRegistrationSuccess(){appSettings.set("appthemesregistered","true")}function onRegistrationFailure(){appSettings.set("appthemesregistered","false")}function isRegistered(){return getRequirePromise(["registrationServices"]).then(function(registrationServices){registrationServices.validateFeature("themes",{showDialog:!1}).then(onRegistrationSuccess,onRegistrationFailure)}),"false"!==appSettings.get("appthemesregistered")}function getThemeStylesheetInfo(id,isDefaultProperty){for(var defaultTheme,selectedTheme,themes=skinManager.getThemes(),i=0,length=themes.length;i<length;i++){var theme=themes[i];theme[isDefaultProperty]&&(defaultTheme=theme),id===theme.id&&(selectedTheme=theme)}selectedTheme=selectedTheme||defaultTheme,selectedTheme.id===defaultTheme.id||isRegistered()||(selectedTheme=defaultTheme);var embyWebComponentsBowerPath="bower_components/emby-webcomponents";return{stylesheetPath:require.toUrl(embyWebComponentsBowerPath+"/themes/"+selectedTheme.id+"/theme.css"),themeId:selectedTheme.id}}var currentSkin,cacheParam=(new Date).getTime();events.on(userSettings,"change",function(e,name){"skin"!==name&&"language"!==name||loadUserSkin()});var themeStyleElement,currentThemeId,skinManager={getCurrentSkin:getCurrentSkin,loadSkin:loadSkin,loadUserSkin:loadUserSkin,getThemes:getThemes};return skinManager.setTheme=function(id,context){return new Promise(function(resolve,reject){if(currentThemeId&&currentThemeId===id)return void resolve();var isDefaultProperty="serverdashboard"===context?"isDefaultServerDashboard":"isDefault",info=getThemeStylesheetInfo(id,isDefaultProperty);if(currentThemeId&&currentThemeId===info.themeId)return void resolve();var linkUrl=info.stylesheetPath;unloadTheme();var link=document.createElement("link");link.setAttribute("rel","stylesheet"),link.setAttribute("type","text/css"),link.onload=resolve,link.setAttribute("href",linkUrl),document.head.appendChild(link),themeStyleElement=link,currentThemeId=info.themeId})},skinManager});

File diff suppressed because one or more lines are too long

View file

@ -388,7 +388,7 @@
"Connect": "Se connecter",
"HeaderMyMedia": "Mes m\u00e9dias",
"HeaderMyMediaSmall": "Mes m\u00e9dias (petit)",
"LatestFromLibrary": "R\u00e9cents {0}",
"LatestFromLibrary": "{0} r\u00e9cemment ajout\u00e9s",
"HeaderLatestChannelMedia": "Derniers \u00e9l\u00e9ments de la cha\u00eene",
"HeaderContinueWatching": "Continuer \u00e0 regarder",
"HeaderContinueListening": "Continuer l'\u00e9coute",

View file

@ -114,7 +114,7 @@
"Identify": "Azonos\u00edt\u00e1s",
"EditImages": "K\u00e9pek szerkeszt\u00e9se",
"EditInfo": "Adatok szerkeszt\u00e9se",
"Sync": "Sync",
"Sync": "Szinkroniz\u00e1l",
"InstantMix": "Instant mix",
"ViewAlbum": "View album",
"ViewArtist": "View artist",

View file

@ -527,6 +527,6 @@
"VideoBitDepthNotSupported": "\u0411\u0435\u0439\u043d\u0435\u043d\u0456\u04a3 \u0431\u0438\u0442\u0442\u0456\u043a \u0442\u0435\u0440\u0435\u04a3\u0434\u0456\u0433\u0456 \u04af\u0448\u0456\u043d \u049b\u043e\u043b\u0434\u0430\u0443 \u043a\u04e9\u0440\u0441\u0435\u0442\u0456\u043b\u043c\u0435\u0439\u0434\u0456",
"RefFramesNotSupported": "\u0411\u0435\u0439\u043d\u0435\u043d\u0456\u04a3 \u0442\u0456\u0440\u0435\u043a \u043a\u0430\u0434\u0440\u043b\u0430\u0440 \u0441\u0430\u043d\u044b\u043d\u0430 \u049b\u043e\u043b\u0434\u0430\u0443 \u043a\u04e9\u0440\u0441\u0435\u0442\u0456\u043b\u043c\u0435\u0439\u0434\u0456",
"ErrorConnectServerUnreachable": "There was an error performing the requested operation. Your server is unable to contact our Emby Connect Server at {0}. Please ensure your server has an active internet connection and that the communications are being allowed by any firewall or security software you have installed.",
"StopRecording": "Stop recording",
"ManageRecording": "Manage recording"
"StopRecording": "\u0416\u0430\u0437\u0443\u0434\u044b \u0442\u043e\u049b\u0442\u0430\u0442\u0443",
"ManageRecording": "\u0416\u0430\u0437\u0443\u0434\u044b \u0440\u0435\u0442\u0442\u0435\u0443"
}

View file

@ -382,7 +382,7 @@
"Fill": "Rozci\u0105gnij",
"BestFit": "Najlepsze dopasowane",
"MessageNoServersAvailableToConnect": "Brak serwer\u00f3w dost\u0119pnych do po\u0142\u0105czenia. Je\u015bli zosta\u0142e\u015b zaproszony do korzystania z serwera, upewnij si\u0119, \u017ce je zaakceptowa\u0142e\u015b poni\u017cej lub za naciskaj\u0105c na \u0142\u0105cze w wiadomo\u015bci pocztowej.",
"MessagePlayAccessRestricted": "Odtwarzanie tej zawarto\u015bci jest aktualnie ograniczone. Skontaktuj si\u0119 z administratorem serwera Emby, aby uzyska\u0107 dodatkowe informacje.",
"MessagePlayAccessRestricted": "Odtwarzanie tej zawarto\u015bci jest aktualnie ograniczone. Skontaktuj si\u0119 z administratorem serwera, aby uzyska\u0107 dodatkowe informacje.",
"Accept": "Akceptuj",
"Reject": "Odrzu\u0107",
"Connect": "Po\u0142acz",
@ -411,8 +411,8 @@
"HideWatchedContentFromLatestMedia": "Ukrywaj obejrzan\u0105 zawarto\u015b\u0107 na listach ostatnio dodanych",
"HeaderOnNow": "Teraz",
"HeaderPlaybackError": "B\u0142\u0105d Odtwarzania",
"PlaybackErrorNotAllowed": "Nie masz aktualnie uprawnie\u0144 do odtwarzania tej zawarto\u015bci. Skontaktuj si\u0119 z administratorem serwera Emby, aby uzyska\u0107 dodatkowe informacje.",
"PlaybackErrorNoCompatibleStream": "No compatible streams are currently available. Please try again later or contact your system administrator for details.",
"PlaybackErrorNotAllowed": "Brak uprawnie\u0144 do odtwarzania tej zawarto\u015bci. Skontaktuj si\u0119 z administratorem serwera, aby uzyska\u0107 dodatkowe informacje.",
"PlaybackErrorNoCompatibleStream": "Brak kompatybilnych transmisji. Spr\u00f3buj ponownie p\u00f3\u017aniej lub skontaktuj si\u0119 z administratorem serwera, aby uzyska\u0107 dodatkowe informacje.",
"PlaybackErrorPlaceHolder": "Prosz\u0119 w\u0142o\u017cy\u0107 dysk, aby odtwarza\u0107 to wideo.",
"Guide": "Przewodnik",
"Suggestions": "Polecane",
@ -446,7 +446,7 @@
"DirectPlaying": "Odtwarzanie bezpo\u015brednie",
"DirectStreaming": "Transmisja bezpo\u015brednia",
"Transcoding": "Transkodowanie",
"ContainerBitrateExceedsLimit": "Media bitrate exceeds limit.",
"ContainerBitrateExceedsLimit": "Przep\u0142ywno\u015b\u0107 medi\u00f3w przekracza limit.",
"VideoCodecNotSupported": "Nieobs\u0142ugiwany kodek wideo",
"AudioCodecNotSupported": "Nieobs\u0142ugiwany kodek d\u017awi\u0119ku",
"SubtitleCodecNotSupported": "Nieobs\u0142ugiwany format napis\u00f3w",
@ -492,11 +492,11 @@
"HeaderSubtitleAppearance": "Wygl\u0105d napis\u00f3w",
"OnlyForcedSubtitlesHelp": "Tylko napisy oznaczone jako wymuszone b\u0119d\u0105 wczytywane.",
"AlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.",
"NoSubtitlesHelp": "Subtitles will not be loaded by default. They can still be turned on manually during playback.",
"NoSubtitlesHelp": "Domy\u015blnie napisy nie b\u0119d\u0105 wczytywane. Mo\u017cna je ci\u0105gle w\u0142\u0105czy\u0107 r\u0119cznie podczas odtwarzania.",
"LabelPreferredSubtitleLanguage": "Preferowany j\u0119zyk napis\u00f3w:",
"LabelTextSize": "Rozmiar tekstu:",
"TheseSettingsAffectSubtitlesOnThisDevice": "Te ustawienia dotycz\u0105 napis\u00f3w na tym urz\u0105dzeniu",
"LabelDropShadow": "Drop shadow:",
"LabelDropShadow": "Cie\u0144:",
"LabelTextBackgroundColor": "Kolor t\u0142a tekstu:",
"LabelWindowBackgroundColor": "Kolor t\u0142a tekstu:",
"LabelFont": "Czcionka:",
@ -504,9 +504,9 @@
"Raised": "Raised",
"Depressed": "Depressed",
"Uniform": "Uniform",
"DropShadow": "Drop shadow",
"DropShadow": "Cie\u0144",
"SmallCaps": "Small caps",
"SubtitleAppearanceSettingsDisclaimer": "These settings will not apply to graphical subtitles (PGS, DVD, etc), or subtitles that have their own styles embedded (ASS\/SSA).",
"SubtitleAppearanceSettingsDisclaimer": "Te ustawienia nie maj\u0105 zastosowania do napis\u00f3w graficznych (PGS, DVD, etc) lub napis\u00f3w, kt\u00f3re posiadaj\u0105 swoje w\u0142asne wbudowane style (ASS\/SSA).",
"LabelBurnSubtitles": "Wypalaj napisy:",
"OnlyImageFormats": "Tylko formaty graficzne (VOBSUB, PGS, SUB\/IDX, etc.)",
"Normal": "Normal",
@ -521,12 +521,12 @@
"HeaderNextVideoPlayingInValue": "Nast\u0119pne wideo za {0}",
"HeaderNextEpisodePlayingInValue": "Nast\u0119pne odcinek za {0}",
"HeaderSecondsValue": "{0} sekund",
"AudioBitDepthNotSupported": "Audio bit depth not supported",
"VideoProfileNotSupported": "Video profile not supported",
"VideoFramerateNotSupported": "Video framerate not supported",
"VideoBitDepthNotSupported": "Video bit depth not supported",
"RefFramesNotSupported": "Number of video reference frames not supported",
"AudioBitDepthNotSupported": "Nieobs\u0142ugiwana g\u0142\u0119bia bitowa d\u017awi\u0119ku",
"VideoProfileNotSupported": "Nieobs\u0142ugiwany profil wideo",
"VideoFramerateNotSupported": "Nieobs\u0142ugiwana cz\u0119stotliwo\u015b\u0107 od\u015bwie\u017cania wideo",
"VideoBitDepthNotSupported": "Nieobs\u0142ugiwana g\u0142\u0119bia bitowa wideo",
"RefFramesNotSupported": "Nieobs\u0142ugiwana liczba klatek referencyjnych wideo",
"ErrorConnectServerUnreachable": "There was an error performing the requested operation. Your server is unable to contact our Emby Connect Server at {0}. Please ensure your server has an active internet connection and that the communications are being allowed by any firewall or security software you have installed.",
"StopRecording": "Stop recording",
"ManageRecording": "Manage recording"
"StopRecording": "Zatrzymaj nagrywanie",
"ManageRecording": "Zarz\u0105dzaj nagrywaniem"
}

View file

@ -438,7 +438,7 @@
"Recordings": "\u0417\u0430\u043f\u0438\u0441\u0438",
"MarkWatched": "\u041e\u0442\u043c\u0435\u0442\u0438\u0442\u044c \u043a\u0430\u043a \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u043e\u0435",
"ScanForNewAndUpdatedFiles": "\u0421\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 \u0438 \u0438\u0437\u043c\u0435\u043d\u0451\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432",
"DirectStreamHelp1": "\u041c\u0435\u0434\u0438\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b \u0441 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c \u0432 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438 \u0442\u0438\u043f\u0430 \u043c\u0435\u0434\u0438\u0430\u0434\u0430\u043d\u043d\u044b\u0445 (H.264, AC3, \u0438 \u0442.\u0434.), \u043d\u043e \u0432 \u043d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u043c \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 (.mkv, .avi, .wmv \u0438 \u0442.\u0434.). \u0412\u0438\u0434\u0435\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043e \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u0435\u0440\u0435\u0434 \u0435\u0433\u043e \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0435\u0439 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e.",
"DirectStreamHelp1": "\u041c\u0435\u0434\u0438\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b \u0441 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c \u0432 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438 \u0442\u0438\u043f\u0430 \u043c\u0435\u0434\u0438\u0430\u0434\u0430\u043d\u043d\u044b\u0445 (H.264, AC3, \u0438 \u0442.\u0434.), \u043d\u043e \u0432 \u043d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u043c \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 (.mkv, .avi, .wmv \u0438 \u0442.\u0434.). \u0412\u0438\u0434\u0435\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043e \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0435\u0440\u0435\u0434 \u0435\u0433\u043e \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0435\u0439 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e.",
"DirectStreamHelp2": "\u041f\u0440\u044f\u043c\u0430\u044f \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u0438 \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0438\u0434\u0435\u043e.",
"MediaIsBeingConverted": "\u041c\u0435\u0434\u0438\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u0444\u043e\u0440\u043c\u0430\u0442, \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 \u0441 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u044d\u0442\u0438 \u043c\u0435\u0434\u0438\u0430\u0434\u0430\u043d\u043d\u044b\u0435.",
"StatsForNerds": "\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0434\u043b\u044f \u0443\u043c\u043d\u0438\u043a\u043e\u0432",
@ -527,6 +527,6 @@
"VideoBitDepthNotSupported": "\u0413\u043b\u0443\u0431\u0438\u043d\u0430 \u0446\u0432\u0435\u0442\u0430 \u0432\u0438\u0434\u0435\u043e \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f",
"RefFramesNotSupported": "\u0427\u0438\u0441\u043b\u043e \u043e\u043f\u043e\u0440\u043d\u044b\u0445 \u043a\u0430\u0434\u0440\u043e\u0432 \u0432\u0438\u0434\u0435\u043e \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f",
"ErrorConnectServerUnreachable": "\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0437\u0430\u043f\u0440\u043e\u0448\u0435\u043d\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438. \u0412\u0430\u0448 \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u0432\u044f\u0437\u0430\u0442\u044c\u0441\u044f \u0441 \u043d\u0430\u0448\u0438\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c Emby Connect \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 {0}. \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432\u0430\u0448 \u0441\u0435\u0440\u0432\u0435\u0440 \u0438\u043c\u0435\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0438 \u0447\u0442\u043e \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u044b \u0432 \u0431\u0440\u0430\u043d\u0434\u043c\u0430\u0443\u044d\u0440\u0435 \u0438\u043b\u0438 \u041f\u041e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0443 \u0432\u0430\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e.",
"StopRecording": "Stop recording",
"ManageRecording": "Manage recording"
"StopRecording": "\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c",
"ManageRecording": "\u0423\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c\u044e"
}

View file

@ -7,21 +7,21 @@
"Add": "Ekle",
"ServerUpdateNeeded": "This Emby Server needs to be updated. To download the latest version, please visit {0}",
"LiveTvGuideRequiresUnlock": "The Live TV Guide is currently limited to {0} channels. Click the unlock button to learn how to enjoy the full experience.",
"AttributeNew": "New",
"AttributeNew": "Yeni",
"Premiere": "Premiere",
"Live": "Live",
"Live": "Canl\u0131",
"Repeat": "Repeat",
"TrackCount": "{0} tracks",
"ItemCount": "{0} items",
"OriginalAirDateValue": "Original air date: {0}",
"EndsAtValue": "Ends at {0}",
"HeaderSelectDate": "Select Date",
"ButtonOk": "Ok",
"HeaderSelectDate": "Tarihi Se\u00e7in",
"ButtonOk": "Tamam",
"ButtonCancel": "\u0130ptal",
"AccessRestrictedTryAgainLater": "Access is currently restricted. Please try again later.",
"ButtonGotIt": "Got It",
"ButtonRestart": "Restart",
"RecordingCancelled": "Recording cancelled.",
"ButtonRestart": "Tekrar Ba\u015flat",
"RecordingCancelled": "Kay\u0131t iptal edildi.",
"SeriesCancelled": "Series cancelled.",
"RecordingScheduled": "Recording scheduled.",
"SeriesRecordingScheduled": "Series recording scheduled.",

View file

@ -18,7 +18,7 @@
<div class="selectContainer flex-grow" style="margin-bottom: 0;">
<select is="emby-select" id="selectLanguage" required="required" label="${LabelLanguage}" autofocus></select>
</div>
<button type="submit" is="paper-icon-button-light" title="${Search}" class="btnSearchSubtitles flex-shrink-zero"><i class="md-icon">search</i></button>
<button type="submit" is="paper-icon-button-light" title="${Search}" class="btnSearchSubtitles flex-shrink-zero emby-select-iconbutton"><i class="md-icon">search</i></button>
</div>
<button is="emby-button" type="submit" class="raised btnSubmit block button-submit">${Search}</button>
</form>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -73,7 +73,7 @@
<div style="flex-grow:1;">
<input is="emby-input" id="txtCustomIntrosPath" label="${LabelCustomIntrosPath}" autocomplete="off" />
</div>
<button type="button" is="paper-icon-button-light" id="btnSelectCustomIntrosPath" class="autoSize" title="${ButtonSelectDirectory}"><i class="md-icon">search</i></button>
<button type="button" is="paper-icon-button-light" id="btnSelectCustomIntrosPath" class="emby-input-iconbutton" title="${ButtonSelectDirectory}"><i class="md-icon">search</i></button>
</div>
<div class="fieldDescription">${LabelCustomIntrosPathHelp}</div>
</div>
@ -82,7 +82,7 @@
<div style="flex-grow:1;">
<input is="emby-input" id="txtCodecIntrosPath" label="${LabelCodecIntrosPath}" autocomplete="off" />
</div>
<button type="button" is="paper-icon-button-light" id="btnSelectCodecIntrosPath" class="autoSize" title="${ButtonSelectDirectory}"><i class="md-icon">search</i></button>
<button type="button" is="paper-icon-button-light" id="btnSelectCodecIntrosPath" class="emby-input-iconbutton" title="${ButtonSelectDirectory}"><i class="md-icon">search</i></button>
</div>
<div class="fieldDescription">
<div>${LabelCodecIntrosPathHelp}</div>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
define(["dialogHelper","jQuery","loading","emby-button","emby-select"],function(dialogHelper,$,loading){"use strict";function onFileReaderError(evt){switch(loading.hide(),evt.target.error.code){case evt.target.error.NOT_FOUND_ERR:require(["toast"],function(toast){toast(Globalize.translate("MessageFileNotFound"))});break;case evt.target.error.ABORT_ERR:break;default:require(["toast"],function(toast){toast(Globalize.translate("MessageFileReadError"))})}}function setFiles(page,files){var file=files[0];if(!file||!file.type.match("image.*"))return $("#imageOutput",page).html(""),$("#fldUpload",page).hide(),void(currentFile=null);currentFile=file;var reader=new FileReader;reader.onerror=onFileReaderError,reader.onloadstart=function(){$("#fldUpload",page).hide()},reader.onabort=function(){loading.hide(),console.log("File read cancelled")},reader.onload=function(theFile){return function(e){var html=['<img style="max-width:300px;max-height:100px;" src="',e.target.result,'" title="',escape(theFile.name),'"/>'].join("");$("#imageOutput",page).html(html),$("#fldUpload",page).show()}}(file),reader.readAsDataURL(file)}function processImageChangeResult(page){hasChanges=!0,history.back()}function onSubmit(){var file=currentFile;if(!file)return!1;if("image/png"!==file.type&&"image/jpeg"!==file.type&&"image/jpeg"!==file.type)return!1;loading.show();var page=$(this).parents(".dialog"),imageType=$("#selectImageType",page).val();return ApiClient.uploadItemImage(currentItemId,imageType,file).then(function(){$("#uploadImage",page).val("").trigger("change"),loading.hide(),processImageChangeResult(page)}),!1}function initEditor(page){$("form",page).off("submit",onSubmit).on("submit",onSubmit),$("#uploadImage",page).on("change",function(){setFiles(page,this.files)}),$("#imageDropZone",page).on("dragover",function(e){return e.preventDefault(),e.originalEvent.dataTransfer.dropEffect="Copy",!1}).on("drop",function(e){return e.preventDefault(),setFiles(page,e.originalEvent.dataTransfer.files),!1})}function showEditor(itemId,options){options=options||{};var xhr=new XMLHttpRequest;xhr.open("GET","components/imageuploader/imageuploader.template.html",!0),xhr.onload=function(e){var template=this.response;currentItemId=itemId;var dlg=dialogHelper.createDialog({size:"fullscreen-border"}),theme=options.theme||"b";dlg.classList.add("ui-body-"+theme),dlg.classList.add("background-theme-"+theme);var html="";html+='<h2 class="dialogHeader">',html+='<button type="button" is="emby-button" icon="arrow-back" class="fab mini btnCloseDialog autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button>',html+='<div style="display:inline-block;margin-left:.6em;vertical-align:middle;">'+Globalize.translate("HeaderUploadImage")+"</div>",html+="</h2>",html+='<div class="editorContent" style="padding:0 1em;">',html+=Globalize.translateDocument(template),html+="</div>",dlg.innerHTML=html,$(dlg).on("close",onDialogClosed),dialogHelper.open(dlg);var editorContent=dlg.querySelector(".editorContent");initEditor(editorContent),$("#selectImageType",dlg).val(options.imageType||"Primary"),$(".btnCloseDialog",dlg).on("click",function(){dialogHelper.close(dlg)})},xhr.send()}function onDialogClosed(){$(this).remove(),loading.hide(),currentDeferred.resolveWith(null,[hasChanges])}var currentItemId,currentFile,currentDeferred,hasChanges=!1;return{show:function(itemId,options){var deferred=jQuery.Deferred();return currentDeferred=deferred,hasChanges=!1,showEditor(itemId,options),deferred.promise()}}});
define(["dialogHelper","dom","loading","scrollHelper","layoutManager","globalize","require","emby-button","emby-select","formDialogStyle"],function(dialogHelper,dom,loading,scrollHelper,layoutManager,globalize,require){"use strict";function onFileReaderError(evt){switch(loading.hide(),evt.target.error.code){case evt.target.error.NOT_FOUND_ERR:require(["toast"],function(toast){toast(globalize.translate("MessageFileNotFound"))});break;case evt.target.error.ABORT_ERR:break;default:require(["toast"],function(toast){toast(globalize.translate("MessageFileReadError"))})}}function setFiles(page,files){var file=files[0];if(!file||!file.type.match("image.*"))return page.querySelector("#imageOutput").innerHTML="",page.querySelector("#fldUpload").classList.add("hide"),void(currentFile=null);currentFile=file;var reader=new FileReader;reader.onerror=onFileReaderError,reader.onloadstart=function(){page.querySelector("#fldUpload").classList.add("hide")},reader.onabort=function(){loading.hide(),console.log("File read cancelled")},reader.onload=function(theFile){return function(e){var html=['<img style="max-width:300px;max-height:100px;" src="',e.target.result,'" title="',escape(theFile.name),'"/>'].join("");page.querySelector("#imageOutput").innerHTML=html,page.querySelector("#fldUpload").classList.remove("hide")}}(file),reader.readAsDataURL(file)}function onSubmit(e){var file=currentFile;if(!file)return!1;if("image/png"!==file.type&&"image/jpeg"!==file.type&&"image/jpeg"!==file.type)return!1;loading.show();var dlg=dom.parentWithClass(this,"dialog"),imageType=dlg.querySelector("#selectImageType").value;return ApiClient.uploadItemImage(currentItemId,imageType,file).then(function(){dlg.querySelector("#uploadImage").value="",loading.hide(),hasChanges=!0,dialogHelper.close(dlg)}),e.preventDefault(),!1}function initEditor(page){page.querySelector("form").addEventListener("submit",onSubmit),page.querySelector("#uploadImage").addEventListener("change",function(){setFiles(page,this.files)}),page.querySelector(".btnBrowse").addEventListener("click",function(){page.querySelector("#uploadImage").click()})}function showEditor(itemId,options,resolve,reject){options=options||{},require(["text!./imageuploader.template.html"],function(template){currentItemId=itemId;var dialogOptions={removeOnClose:!0};layoutManager.tv?dialogOptions.size="fullscreen":dialogOptions.size="fullscreen-border";var dlg=dialogHelper.createDialog(dialogOptions);dlg.classList.add("formDialog"),dlg.innerHTML=globalize.translateDocument(template),layoutManager.tv&&scrollHelper.centerFocus.on(dlg,!1),dlg.addEventListener("close",function(){loading.hide(),resolve(hasChanges)}),dialogHelper.open(dlg),initEditor(dlg),dlg.querySelector("#selectImageType").value=options.imageType||"Primary",dlg.querySelector(".btnCancel").addEventListener("click",function(){dialogHelper.close(dlg)})})}var currentItemId,currentFile,hasChanges=!1;return{show:function(itemId,options){return new Promise(function(resolve,reject){hasChanges=!1,showEditor(itemId,options,resolve,reject)})}}});

View file

@ -1,34 +1,54 @@
<form class="uploadItemImageForm" style="max-width: 100%;">
<h2>${HeaderAddUpdateImage}</h2>
<div>
<p>${LabelJpgPngOnly}</p>
<input type="file" accept="image/*" id="uploadImage" name="uploadImage" />
<br />
<br />
<div id="imageDropZone" class="imageDropZone">
<h3>${LabelDropImageHere}</h3>
<output id="imageOutput"></output>
</div>
<div id="fldUpload" style="display: none;">
<br />
<div class="selectContainer">
<select is="emby-select" id="selectImageType" name="selectImageType" label="${LabelImageType}">
<option value="Primary">${OptionPrimary}</option>
<option value="Art">${OptionArt}</option>
<option value="Backdrop">${OptionBackdrop}</option>
<option value="Banner">${OptionBanner}</option>
<option value="Box">${OptionBox}</option>
<option value="BoxRear">${OptionBoxRear}</option>
<option value="Disc">${OptionDisc}</option>
<option value="Logo">${OptionLogo}</option>
<option value="Menu">${OptionMenu}</option>
<option value="Screenshot">${OptionScreenshot}</option>
<option value="Thumb">${OptionThumb}</option>
</select>
<div class="formDialogHeader">
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button>
<h3 class="formDialogHeaderTitle">
${HeaderUploadImage}
</h3>
</div>
<div class="formDialogContent">
<div class="dialogContentInner">
<form class="uploadItemImageForm" style="max-width: 100%;">
<div class="flex align-items-center" style="margin:1.5em 0;">
<h2 style="margin:0;">${HeaderAddUpdateImage}</h2>
<button is="emby-button" type="button" class="raised raised-mini btnBrowse" style="margin-left:1.5em;border-radius:500px;">
<span>${Browse}</span>
</button>
</div>
<button is="emby-button" type="submit" class="raised submit block">
<span>${ButtonUpload}</span>
</button>
</div>
<div>
<div id="userImageDropZone" class="imageDropZone fieldDescription">
<div>${LabelDropImageHere}</div>
<output id="imageOutput" class="flex align-items-center justify-content-center" style="position: absolute;top:0;left:0;right:0;bottom:0;width:100%;"></output>
<input type="file" accept="image/*" id="uploadImage" name="uploadImage" style="position: absolute;top:0;left:0;right:0;bottom:0;width:100%;opacity:0;" />
</div>
<div id="fldUpload" class="hide">
<br />
<div class="selectContainer">
<select is="emby-select" id="selectImageType" name="selectImageType" label="${LabelImageType}">
<option value="Primary">${OptionPrimary}</option>
<option value="Art">${OptionArt}</option>
<option value="Backdrop">${OptionBackdrop}</option>
<option value="Banner">${OptionBanner}</option>
<option value="Box">${OptionBox}</option>
<option value="BoxRear">${OptionBoxRear}</option>
<option value="Disc">${OptionDisc}</option>
<option value="Logo">${OptionLogo}</option>
<option value="Menu">${OptionMenu}</option>
<option value="Screenshot">${OptionScreenshot}</option>
<option value="Thumb">${OptionThumb}</option>
</select>
</div>
<button is="emby-button" type="submit" class="raised button-submit block">
<span>${ButtonUpload}</span>
</button>
</div>
</div>
</form>
</div>
</form>
</div>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
body,html{margin:0;padding:0;height:100%}.backgroundContainer{position:fixed;top:0;left:0;right:0;bottom:0;contain:layout style}html{touch-action:manipulation;background-color:#242424;line-height:1.35}.smallerFontSize{font-size:82%}h1,h2,h3{margin-top:1em}body{overflow-y:scroll!important;overflow-x:hidden;background-color:transparent!important;-webkit-font-smoothing:antialiased}body.autoScrollY{overflow-y:auto!important}.mainAnimatedPage{contain:style!important}.pageContainer{overflow-x:visible!important}.bodyWithPopupOpen{overflow-y:hidden!important}.libraryPage h1 a{color:inherit!important}h1 a:hover{text-decoration:underline}div[data-role=page]{outline:0}.hide{display:none!important}.pageTitle{margin-top:0;font-family:inherit}.fieldDescription{padding-left:.15em;font-weight:400;white-space:normal!important}.fieldDescription+.fieldDescription{margin-top:.3em}div[data-role=content]{border-width:0;overflow:visible;overflow-x:hidden;padding:1em}.content-primary,.padded-bottom-page,.page,.pageWithAbsoluteTabs .pageTabContent{padding-bottom:14em!important}.supporterPromotionContainer{margin:0 0 2em}@media all and (min-width:80em){.supporterPromotionContainer{position:fixed;top:120px;right:0}}.fullWidthContent .supporterPromotionContainer{position:static!important}@media all and (min-width:50em){.readOnlyContent,form{max-width:54em}.supporterPromotionContainer{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.supporterPromotion{text-align:center;padding:0 2em}.supporterPromotion button{padding-left:2em;padding-right:2em}}.imageDropZone{border:.25em dashed #bbb;-webkit-border-radius:.3em;border-radius:.3em;padding:1.6em;text-align:center;color:#bbb}
body,html{margin:0;padding:0;height:100%}.backgroundContainer{position:fixed;top:0;left:0;right:0;bottom:0;contain:layout style}html{background-color:#242424;line-height:1.35}.smallerFontSize{font-size:82%}h1,h2,h3{margin-top:1em}body{overflow-y:scroll!important;overflow-x:hidden;background-color:transparent!important;-webkit-font-smoothing:antialiased}body.autoScrollY{overflow-y:auto!important}.mainAnimatedPage{contain:style!important}.pageContainer{overflow-x:visible!important}.bodyWithPopupOpen{overflow-y:hidden!important}.libraryPage h1 a{color:inherit!important}h1 a:hover{text-decoration:underline}div[data-role=page]{outline:0}.hide{display:none!important}.pageTitle{margin-top:0;font-family:inherit}.fieldDescription{padding-left:.15em;font-weight:400;white-space:normal!important}.fieldDescription+.fieldDescription{margin-top:.3em}div[data-role=content]{border-width:0;overflow:visible;overflow-x:hidden;padding:1em}.content-primary,.padded-bottom-page,.page,.pageWithAbsoluteTabs .pageTabContent{padding-bottom:14em!important}.supporterPromotionContainer{margin:0 0 2em}@media all and (min-width:80em){.supporterPromotionContainer{position:fixed;top:120px;right:0}}.fullWidthContent .supporterPromotionContainer{position:static!important}@media all and (min-width:50em){.readOnlyContent,form{max-width:54em}.supporterPromotionContainer{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.supporterPromotion{text-align:center;padding:0 2em}.supporterPromotion button{padding-left:2em;padding-right:2em}}.imageDropZone{border:.2em dashed currentcolor;-webkit-border-radius:.25em;border-radius:.25em;text-align:center;position:relative;height:12em;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.squareImageDropZone{height:12em;width:12em}

View file

@ -46,7 +46,7 @@
<div style="flex-grow:1;">
<input is="emby-input" id="txtCachePath" label="${LabelCachePath}" autocomplete="off" />
</div>
<button type="button" is="paper-icon-button-light" id="btnSelectCachePath" title="${ButtonSelectDirectory}" class="autoSize"><i class="md-icon">search</i></button>
<button type="button" is="paper-icon-button-light" id="btnSelectCachePath" title="${ButtonSelectDirectory}" class="emby-input-iconbutton"><i class="md-icon">search</i></button>
</div>
<div class="fieldDescription">${LabelCachePathHelp}</div>
</div>

View file

@ -31,7 +31,7 @@
<div style="flex-grow:1;">
<input is="emby-input" type="text" id="txtCertificatePath" label="${LabelCustomCertificatePath}" autocomplete="off" />
</div>
<button type="button" is="paper-icon-button-light" id="btnSelectCertPath" title="${ButtonSelectDirectory}"><i class="md-icon">search</i></button>
<button type="button" is="paper-icon-button-light" id="btnSelectCertPath" title="${ButtonSelectDirectory}" class="emby-input-iconbutton"><i class="md-icon">search</i></button>
</div>
<div class="fieldDescription">${LabelCustomCertificatePathHelp}</div>
</div>

View file

@ -18,7 +18,7 @@
<div style="flex-grow:1;">
<input is="emby-input" id="txtUploadPath" label="${LabelCameraUploadPath}" autocomplete="off" />
</div>
<button type="button" is="paper-icon-button-light" id="btnSelectUploadPath" title="${ButtonSelectDirectory}" class="autoSize"><i class="md-icon">search</i></button>
<button type="button" is="paper-icon-button-light" id="btnSelectUploadPath" title="${ButtonSelectDirectory}" class="emby-input-iconbutton"><i class="md-icon">search</i></button>
</div>
<div class="fieldDescription">${LabelCameraUploadPathHelp}</div>
</div>

View file

@ -1 +1 @@
.backdropContainer{background-attachment:initial}.btnSync,.categorySyncButton{display:none!important}.dialog{background:rgba(28,28,28,.84);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.formDialogFooter{position:static!important;margin:0 -1em!important}
html{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.backdropContainer{background-attachment:initial}.btnSync,.categorySyncButton{display:none!important}.dialog{background:rgba(28,28,28,.84);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.formDialogFooter{position:static!important;margin:0 -1em!important}

View file

@ -12,7 +12,7 @@
<div style="flex-grow:1;">
<input is="emby-input" id="txtUploadPath" label="${LabelCameraUploadPath}" autocomplete="off" />
</div>
<button type="button" is="paper-icon-button-light" id="btnSelectUploadPath" title="${ButtonSelectDirectory}"><i class="md-icon">search</i></button>
<button type="button" is="paper-icon-button-light" id="btnSelectUploadPath" title="${ButtonSelectDirectory}" class="emby-input-iconbutton"><i class="md-icon">search</i></button>
</div>
<div class="fieldDescription">${LabelCameraUploadPathHelp}</div>
</div>

View file

@ -9,9 +9,10 @@
<select is="emby-select" id="selectVideoDecoder" label="${LabelHardwareAccelerationType}">
<option value="">${OptionNone}</option>
<option value="qsv">Intel Quick Sync (experimental)</option>
<option value="h264_omx">OpenMAX OMX (experimental)</option>
<option value="omx">OpenMAX OMX (experimental)</option>
<option value="nvenc">Nvidia NVENC (experimental)</option>
<option value="vaapi">Video Acceleration API (VA API) (experimental)</option>
<option value="h264_v4l2m2m">Exynos V4L2 MFC Encoder (experimental)</option>
</select>
<div class="fieldDescription">${LabelHardwareAccelerationTypeHelp}</div>
</div>
@ -25,7 +26,7 @@
<h3 class="checkboxListLabel">${LabelEnableHardwareDecodingFor}</h3>
<div class="checkboxList">
<label>
<input type="checkbox" is="emby-checkbox" class="chkDecodeCodec" data-codec="h264" data-types="qsv,nvenc" />
<input type="checkbox" is="emby-checkbox" class="chkDecodeCodec" data-codec="h264" data-types="qsv,nvenc,omx" />
<span>H264</span>
</label>
<label>
@ -80,12 +81,12 @@
<div class="fieldDescription checkboxFieldDescription">${OptionEnableTranscodingThrottleHelp}</div>
</div>
<div class="inputContainer fldEncoderPath">
<div class="inputContainer fldEncoderPath hide">
<div style="display: flex; align-items: center;">
<div style="flex-grow:1;">
<input is="emby-input" class="txtEncoderPath" label="${LabelffmpegPath}" autocomplete="off" required />
</div>
<button type="button" is="paper-icon-button-light" id="btnSelectEncoderPath" class="autoSize"><i class="md-icon">search</i></button>
<button type="button" is="paper-icon-button-light" id="btnSelectEncoderPath" class="emby-input-iconbutton"><i class="md-icon">search</i></button>
</div>
<div class="fieldDescription">
<div>${LabelffmpegPathHelp}</div>
@ -96,7 +97,7 @@
<div style="flex-grow:1;">
<input is="emby-input" id="txtTranscodingTempPath" label="${LabelTranscodingTempPath}" autocomplete="off" />
</div>
<button type="button" is="paper-icon-button-light" id="btnSelectTranscodingTempPath" class="autoSize"><i class="md-icon">search</i></button>
<button type="button" is="paper-icon-button-light" id="btnSelectTranscodingTempPath" class="emby-input-iconbutton"><i class="md-icon">search</i></button>
</div>
<div class="fieldDescription">${LabelTranscodingTempPathHelp}</div>
</div>
@ -124,6 +125,14 @@
<input is="emby-input" type="number" id="txtH264Crf" pattern="[0-9]*" min="0" max="51" step="1" label="${LabelH264Crf}" />
<div class="fieldDescription">${H264CrfHelp}</div>
</div>
<div class="selectContainer">
<select is="emby-select" id="selectDeinterlaceMethod" label="${LabelDeinterlacingMethod}">
<option value="">${Standard}</option>
<option value="bobandweave">${BobAndWeaveWithHelp}</option>
</select>
</div>
<div class="checkboxContainer checkboxContainer-withDescription">
<label>
<input is="emby-checkbox" type="checkbox" id="chkEnableSubtitleExtraction" />

View file

@ -16,7 +16,7 @@
<div style="flex-grow:1;">
<input is="emby-input" id="txtMetadataPath" label="${LabelMetadataPath}" autocomplete="off" />
</div>
<button type="button" is="paper-icon-button-light" id="btnSelectMetadataPath" title="${ButtonSelectDirectory}"><i class="md-icon">search</i></button>
<button type="button" is="paper-icon-button-light" id="btnSelectMetadataPath" title="${ButtonSelectDirectory}" class="emby-input-iconbutton"><i class="md-icon">search</i></button>
</div>
<div class="fieldDescription">${LabelMetadataPathHelp}</div>
<input type="hidden" id="txtMetadataNetworkPath" />

View file

@ -27,7 +27,7 @@
<div style="flex-grow:1;">
<input is="emby-input" id="txtRecordingPath" label="${LabelRecordingPath}" autocomplete="off" />
</div>
<button type="button" is="paper-icon-button-light" id="btnSelectRecordingPath" title="${ButtonSelectDirectory}"><i class="md-icon">search</i></button>
<button type="button" is="paper-icon-button-light" id="btnSelectRecordingPath" title="${ButtonSelectDirectory}" class="emby-input-iconbutton"><i class="md-icon">search</i></button>
</div>
<div class="fieldDescription">${LabelRecordingPathHelp}</div>
</div>
@ -36,7 +36,7 @@
<div style="flex-grow:1;">
<input is="emby-input" id="txtMovieRecordingPath" label="${LabelMovieRecordingPath}" autocomplete="off" />
</div>
<button type="button" is="paper-icon-button-light" id="btnSelectMovieRecordingPath" title="${ButtonSelectDirectory}"><i class="md-icon">search</i></button>
<button type="button" is="paper-icon-button-light" id="btnSelectMovieRecordingPath" title="${ButtonSelectDirectory}" class="emby-input-iconbutton"><i class="md-icon">search</i></button>
</div>
</div>
<div class="inputContainer">
@ -44,7 +44,7 @@
<div style="flex-grow:1;">
<input is="emby-input" id="txtSeriesRecordingPath" label="${LabelSeriesRecordingPath}" autocomplete="off" />
</div>
<button type="button" is="paper-icon-button-light" id="btnSelectSeriesRecordingPath" title="${ButtonSelectDirectory}"><i class="md-icon">search</i></button>
<button type="button" is="paper-icon-button-light" id="btnSelectSeriesRecordingPath" title="${ButtonSelectDirectory}" class="emby-input-iconbutton"><i class="md-icon">search</i></button>
</div>
</div>
<div class="checkboxContainer checkboxContainer-withDescription">
@ -76,7 +76,7 @@
<div style="flex-grow:1;">
<input is="emby-input" type="text" id="txtPostProcessor" label="${LabelPostProcessor}" />
</div>
<button type="button" is="paper-icon-button-light" id="btnSelectPostProcessorPath" class="autoSize"><i class="md-icon">search</i></button>
<button type="button" is="paper-icon-button-light" id="btnSelectPostProcessorPath" class="emby-input-iconbutton"><i class="md-icon">search</i></button>
</div>
</div>
<div class="inputContainer">

View file

@ -17,7 +17,7 @@
<div style="flex-grow: 1;">
<input is="emby-input" class="txtDevicePath" label="${LabelFileOrUrl}" required="required" autocomplete="off"/>
</div>
<button type="button" is="paper-icon-button-light" class="btnSelectPath hide"><i class="md-icon">search</i></button>
<button type="button" is="paper-icon-button-light" class="btnSelectPath hide emby-input-iconbutton"><i class="md-icon">search</i></button>
</div>
</div>

View file

@ -3,7 +3,7 @@
<form class="displayPreferencesForm userProfileSettingsForm" style="margin: 0 auto;">
<div class="detailSection">
<h1>
${Themes}
${HeaderDisplay}
</h1>
<br />
<div class="selectContainer">
@ -18,10 +18,6 @@
</div>
</div>
<div class="detailSection languageSection hide">
<h1>
${HeaderLanguage}
</h1>
<br />
<div class="selectContainer">
<select id="selectLanguage" is="emby-select" label="${LabelPreferredDisplayLanguage}">
<option value="">${OptionAuto}</option>
@ -68,10 +64,6 @@
</div>
</div>
<div class="detailSection">
<h1>
${HeaderNavigation}
</h1>
<br />
<div class="fldEnableBackdrops selectContainer">
<select id="selectBackdrop" is="emby-select" label="${LabelEnableBackdrops}">
<option value="1">${OptionYes}</option>
@ -88,10 +80,6 @@
</div>
</div>
<div class="detailSection">
<h1>
${HeaderDisplay}
</h1>
<br />
<div class="checkboxContainer checkboxContainer-withDescription">
<label>
<input type="checkbox" is="emby-checkbox" class="chkDisplayMissingEpisodes" />

View file

@ -18,30 +18,6 @@
<span>${LabelPlayDefaultAudioTrack}</span>
</label>
</div>
<div class="detailSection">
<h1>
${HeaderSubtitleSettings}
</h1>
<br />
<div class="selectContainer">
<select is="emby-select" id="selectSubtitleLanguage" label="${LabelSubtitleLanguagePreference}"></select>
</div>
<div class="selectContainer">
<select is="emby-select" id="selectSubtitlePlaybackMode" label="${LabelSubtitlePlaybackMode}">
<option value="Default">${OptionDefaultSubtitles}</option>
<option value="Smart">${OptionSmartSubtitles}</option>
<option value="OnlyForced">${OptionOnlyForcedSubtitles}</option>
<option value="Always">${OptionAlwaysPlaySubtitles}</option>
<option value="None">${OptionNoSubtitles}</option>
</select>
<div class="fieldDescription subtitlesDefaultHelp subtitlesHelp hide">${OptionDefaultSubtitlesHelp}</div>
<div class="fieldDescription subtitlesSmartHelp subtitlesHelp hide">${OptionSmartSubtitlesHelp}</div>
<div class="fieldDescription subtitlesAlwaysHelp subtitlesHelp hide">${OptionAlwaysPlaySubtitlesHelp}</div>
<div class="fieldDescription subtitlesOnlyForcedHelp subtitlesHelp hide">${OptionOnlyForcedSubtitlesHelp}</div>
<div class="fieldDescription subtitlesNoneHelp subtitlesHelp hide">${OptionNoSubtitlesHelp}</div>
</div>
</div>
<div class="detailSection cinemaModeOptions hide">
<h1>
${HeaderCinemaMode}

View file

@ -22,24 +22,27 @@
<form class="newImageForm userProfileSettingsForm hide" style="margin: 1em auto 0;">
<div is="emby-collapse" title="${HeaderUploadNewImage}">
<div class="collapseContent">
<div id="fldNewImage">
<p>${ImageUploadAspectRatioHelp}</p>
<input type="file" accept="image/*" id="uploadUserImage" name="uploadUserImage" />
<div class="flex align-items-center" style="margin:1.5em 0;">
<h1 style="margin:0;">${HeaderUploadNewImage}</h1>
<div id="userImageDropZone" class="imageDropZone">
<h3>${LabelDropImageHere}</h3>
<output id="userImageOutput"></output>
</div>
</div>
<div id="fldNewImagePreview"></div>
<div id="fldUpload" class="hide">
<button type="submit" data-icon="check">${ButtonUpload}</button>
</div>
<button is="emby-button" type="button" class="raised raised-mini btnBrowse" style="margin-left:1.5em;border-radius:500px;">
<span>${Browse}</span>
</button>
</div>
<div id="fldNewImage">
<div id="userImageDropZone" class="imageDropZone squareImageDropZone fieldDescription">
<div>${LabelDropImageHere}</div>
<output id="userImageOutput" class="flex align-items-center justify-content-center" style="position: absolute;top:0;left:0;right:0;bottom:0;width:100%;"></output>
<input type="file" accept="image/*" id="uploadUserImage" name="uploadUserImage" style="position: absolute;top:0;left:0;right:0;bottom:0;width:100%;opacity:0;" />
</div>
</div>
<div id="fldUpload" class="hide" style="margin-top:1em;">
<button is="emby-button" type="submit" class="raised button-submit block">${ButtonUpload}</button>
</div>
</form>
<br />

View file

@ -8,17 +8,11 @@
<option value="MBClassic">${PluginTabAppClassic}</option>
</select>
</div>
<div style="margin-left:2em;" class="optionAdultContainer">
<label style="width:auto;">
<input type="checkbox" is="emby-checkbox" id="chkAdult" />
<span>${OptionDisplayAdultContent}</span>
</label>
</div>
</div>
<br />
<br />
<div id="noPlugins" class="hide">
<br />
<br />
<div style="text-align: center; margin: 10px;">${MessageNoAvailablePlugins}</div>
</div>
<div id="pluginTiles" style="text-align:left;"></div>

View file

@ -1,321 +1,8 @@
<div id="libraryReportManagerPage" data-role="page" class="page libraryPage noSecondaryNavPage reportsPage" data-title="${HeaderReports}" data-require="jQuery,emby-linkbutton,paper-icon-button-light,jqmpanel,scripts/reports,detailtablecss">
<style>
/* Page and overlay */
.ui-page-theme-b .ui-panel-wrapper {
background-color: #252525 /*{b-page-background-color}*/;
border-color: #454545 /*{b-page-border}*/;
color: #fff /*{b-page-color}*/;
}
/* Fixes the issue of jqm panels altering the page background. */
.ui-panel-content-wrap {
background: none !important;
}
.ui-panel fieldset + fieldset {
margin-top: 2em;
}
.ui-panel .ui-panel-inner {
overflow: auto;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
-webkit-overflow-scrolling: touch;
}
.libraryReportIndicator {
position: relative;
display: block;
text-align: center;
vertical-align: middle;
width: 24px;
height: 19px;
padding-top: 3px;
border-radius: 50%;
color: #fff;
background: rgb(204, 0, 0);
background: rgba(204, 0, 0, .8);
}
.libraryReportIndicator div:after {
background-color: transparent !important;
}
.clearLibraryReportIndicator {
background-color: transparent !important;
}
.tblLibraryReport img {
height: 18px;
margin-right: 10px;
}
</style>
<div>
<div style="text-align: center;">
<div class="viewControls">
<span style="margin-right: 10px; vertical-align: middle;">${LabelReport}</span>
<div style="display: inline-block;">
<select data-mini="true" data-inline="true" id="selectViewType">
<option value="ReportData">${OptionReportList}</option>
<option value="ReportActivities">${OptionReportActivities}</option>
</select>
</div>
<div style="display: inline-block;" id="selectIncludeItemTypesBox">
<select data-mini="true" data-inline="true" id="selectIncludeItemTypes" name="selectIncludeItemTypes">
<option value="MusicAlbum">${OptionReportAlbums}</option>
<option value="MusicArtist">${OptionReportArtists}</option>
<option value="Book">${OptionReportBooks}</option>
<option value="BoxSet">${OptionReportCollections}</option>
<option value="Episode">${OptionReportEpisodes}</option>
<option value="Game">${OptionReportGames}</option>
<option value="Video">${OptionReportHomeVideos}</option>
<option value="Movie">${OptionReportMovies}</option>
<option value="MusicVideo">${OptionReportMusicVideos}</option>
<option value="Trailer">${OptionReportTrailers}</option>
<option value="Season">${OptionReportSeasons}</option>
<option value="Series">${OptionReportSeries}</option>
<option value="Audio">${OptionReportSongs}</option>
</select>
</div>
<button is="paper-icon-button-light" onclick="jQuery('.viewPanel').panel('toggle');" class="autoSize" tabindex="-1">
<i class="md-icon">more_vert</i>
</button>
</div>
<div class="listTopPaging">
</div>
</div>
<br />
<div class="reporContainer" style="height:auto"></div>
<div class="listBottomPaging">
</div>
<div data-role="panel" id="viewPanel" class="viewPanel" data-position="right" data-display="overlay" data-position-fixed="true">
<form>
<div class="viewPanelTabs">
<a is="emby-linkbutton" href="#" id="tabView" data-role="button" class="viewTabButton ui-btn-active" data-tab="tabView">${TabView}</a>
<a is="emby-linkbutton" href="#" id="tabFilter" data-role="button" class="viewTabButton" data-tab="tabFilter">${TabFilter}</a>
</div>
<div class="tabView viewTab" id="tabViewBox">
<div id="selectReportGroupingBox">
<label for="selectViewGrouping">${OptionReportGrouping}</label>
<select id="selectReportGroup"></select>
<br />
</div>
<div id="selectPageSizeBox" style="display: none;">
<label for="selectPageSize">${LabelPageSize}</label>
<select id="selectPageSize" class="selectPageSize">
<option value="20">20</option>
<option value="50">50</option>
<option value="100">100</option>
<option value="200">200</option>
<option value="300">300</option>
<option value="500">500</option>
<option value="10000">10000</option>
</select>
<br />
</div>
<div id="exportReportBox">
<fieldset>
<label>${HeaderExport}</label>
<button type="button" name="btnReportExportExcel" id="btnReportExportExcel" data-icon="arrow-d">Excel</button>
<button type="button" name="btnReportExportCsv" id="btnReportExportCsv" data-icon="arrow-d">CSV</button>
</fieldset>
<br />
</div>
<div data-role="collapsible" data-collapsed="true" class="reportsColumns" id="grpReportsColumns">
<h2>${HeaderColumns}</h2>
<button type="button" name="btnResetReportColumns" id="btnResetReportColumns" data-icon="refresh">${ButtonReset}</button>
<br />
<div class="filterOptions">
</div>
</div>
</div>
<div class="tabFilter viewTab hide" id="tabFilterBox">
<fieldset>
<legend>
${HeaderFilters}
</legend>
<input class="chkStandardFilter" type="checkbox" name="chkPlayed" id="chkPlayed" data-filter="IsPlayed">
<label for="chkPlayed">${OptionPlayed}</label>
<input class="chkStandardFilter" type="checkbox" name="chkUnplayed" id="chkUnplayed" data-filter="IsUnPlayed">
<label for="chkUnplayed">${OptionUnplayed}</label>
<input class="chkStandardFilter" type="checkbox" name="chkResumable" id="chkResumable" data-filter="IsResumable">
<label for="chkResumable">${OptionResumable}</label>
<input class="chkStandardFilter" type="checkbox" name="chkLikes" id="chkLikes" data-filter="Likes">
<label for="chkLikes">${OptionLikes}</label>
<input class="chkStandardFilter" type="checkbox" name="chkDislikes" id="chkDislikes" data-filter="Dislikes">
<label for="chkDislikes">${OptionDislikes}</label>
<div id="isFavoriteDiv">
<label for="isFavorite"></label>
<select id="isFavorite" class="isFavorite">
<option value="-">${OptionFavorite}: All</option>
<option value="true">${OptionFavorite}: True</option>
<option value="false">${OptionFavorite}: False</option>
</select>
</div>
</fieldset>
<br />
<div data-role="collapsible" data-collapsed="true" data-mini="true">
<h2>${LabelManagement}</h2>
<div>
<input class="chkIsLocked" type="checkbox" id="chkIsLocked">
<label for="chkIsLocked">${OptionLocked}</label>
<input class="chkMissingOverview" type="checkbox" name="chkMissingOverview" id="chkMissingOverview">
<label for="chkMissingOverview">${OptionMissingOverview}</label>
<input class="chkMissingRating" type="checkbox" name="chkMissingRating" id="chkMissingRating">
<label for="chkMissingRating">${OptionMissingParentalRating}</label>
<input class="chkMissingImdbId" type="checkbox" name="chkMissingImdbId" id="chkMissingImdbId">
<label for="chkMissingImdbId">${OptionMissingImdbId}</label>
<input class="chkMissingTmdbId" type="checkbox" name="chkMissingTmdbId" id="chkMissingTmdbId">
<label for="chkMissingTmdbId">${OptionMissingTmdbId}</label>
<input class="chkMissingTvdbId" type="checkbox" name="chkMissingTvdbId" id="chkMissingTvdbId">
<label for="chkMissingTvdbId">${OptionMissingTvdbId}</label>
</div>
</div>
<div data-role="collapsible" data-collapsed="true" data-mini="true" id="GroupStatus">
<h2>${HeaderStatus}</h2>
<div>
<input class="chkStatus" type="checkbox" name="chkStatusContinuing" id="chkStatusContinuing" data-filter="Continuing">
<label for="chkStatusContinuing">${OptionContinuing}</label>
<input class="chkStatus" type="checkbox" name="chkStatusEnded" id="chkStatusEnded" data-filter="Ended">
<label for="chkStatusEnded">${OptionEnded}</label>
</div>
</div>
<div data-role="collapsible" data-collapsed="true" data-mini="true" id="GroupAirDays">
<h2>${HeaderAirDays}</h2>
<div>
<input class="chkAirDays" type="checkbox" name="chkSunday" id="chkSunday" data-filter="Sunday">
<label for="chkSunday">${OptionSunday}</label>
<input class="chkAirDays" type="checkbox" name="chkMonday" id="chkMonday" data-filter="Monday">
<label for="chkMonday">${OptionMonday}</label>
<input class="chkAirDays" type="checkbox" name="chkTuesday" id="chkTuesday" data-filter="Tuesday">
<label for="chkTuesday">${OptionTuesday}</label>
<input class="chkAirDays" type="checkbox" name="chkWednesday" id="chkWednesday" data-filter="Wednesday">
<label for="chkWednesday">${OptionWednesday}</label>
<input class="chkAirDays" type="checkbox" name="chkThursday" id="chkThursday" data-filter="Thursday">
<label for="chkThursday">${OptionThursday}</label>
<input class="chkAirDays" type="checkbox" name="chkFriday" id="chkFriday" data-filter="Friday">
<label for="chkFriday">${OptionFriday}</label>
<input class="chkAirDays" type="checkbox" name="chkSaturday" id="chkSaturday" data-filter="Saturday">
<label for="chkSaturday">${OptionSaturday}</label>
</div>
</div>
<div data-role="collapsible" data-collapsed="true" data-mini="true" id="GroupEpisodes">
<h2>${HeaderEpisodes}</h2>
<div>
<input type="checkbox" name="chkSpecialEpisode" id="chkSpecialEpisode">
<label for="chkSpecialEpisode">${OptionSeason0}</label>
<input type="checkbox" name="chkMissingEpisode" id="chkMissingEpisode">
<label for="chkMissingEpisode">${OptionMissingEpisode}</label>
</div>
</div>
<div data-role="collapsible" data-collapsed="true" data-mini="true">
<h2>${HeaderFeatures}</h2>
<div>
<input class="chkFeatureFilter" type="checkbox" name="chkSubtitle" id="chkSubtitle">
<label for="chkSubtitle">${OptionHasSubtitles}</label>
<input class="chkFeatureFilter" type="checkbox" name="chkTrailer" id="chkTrailer">
<label for="chkTrailer">${OptionHasTrailer}</label>
<input class="chkFeatureFilter" type="checkbox" name="chkMissingTrailer" id="chkMissingTrailer">
<label for="chkMissingTrailer">${OptionNoTrailer}</label>
<input class="chkFeatureFilter" type="checkbox" name="chkSpecialFeature" id="chkSpecialFeature">
<label for="chkSpecialFeature">${OptionHasSpecialFeatures}</label>
<input class="chkFeatureFilter" type="checkbox" name="chkThemeSong" id="chkThemeSong">
<label for="chkThemeSong">${OptionHasThemeSong}</label>
<input class="chkFeatureFilter" type="checkbox" name="chkThemeVideo" id="chkThemeVideo">
<label for="chkThemeVideo">${OptionHasThemeVideo}</label>
</div>
</div>
<div data-role="collapsible" data-collapsed="true" data-mini="true" class="genreFilters">
<h2>${HeaderGenres}</h2>
<div class="filterOptions">
</div>
</div>
<div data-role="collapsible" data-collapsed="true" data-mini="true" class="officialRatingFilters">
<h2>${HeaderParentalRatings}</h2>
<div class="filterOptions">
</div>
</div>
<div data-role="collapsible" data-collapsed="true" data-mini="true" class="tagFilters">
<h2>${HeaderTags}</h2>
<div class="filterOptions">
</div>
</div>
<div data-role="collapsible" data-collapsed="true" data-mini="true">
<h2>${HeaderVideoTypes}</h2>
<div>
<input class="chkVideoTypeFilter" type="checkbox" name="chkBluray" id="chkBluray" data-filter="Bluray">
<label for="chkBluray">${OptionBluray}</label>
<input class="chkVideoTypeFilter" type="checkbox" name="chkDvd" id="chkDvd" data-filter="Dvd">
<label for="chkDvd">${OptionDvd}</label>
<input class="chkVideoTypeFilter" type="checkbox" name="chkIso" id="chkIso" data-filter="Iso">
<label for="chkIso">${OptionIso}</label>
<input class="chkHDFilter" type="checkbox" name="chkHD" id="chkHD" data-filter="IsHD">
<label for="chkHD">${OptionIsHD}</label>
<input class="chkSDFilter" type="checkbox" name="chkSD" id="chkSD" data-filter="IsHD">
<label for="chkSD">${OptionIsSD}</label>
<input class="chk3DFilter" type="checkbox" name="chk3D" id="chk3D" data-filter="Digital3D,Sbs3D">
<label for="chk3D">${Option3D}</label>
</div>
</div>
<div data-role="collapsible" data-collapsed="true" data-mini="true" class="yearFilters">
<h2>${HeaderYears}</h2>
<div class="filterOptions">
</div>
</div>
</div>
</form>
</div>
<div id="reportsLinkPage" data-role="page" class="page libraryPage noSecondaryNavPage" data-title="${HeaderReports}">
<div style="padding:0 1em;">
<h2>Emby Reports is now a plugin.</h2>
<p>To use Emby Reports, install the Reports plugin from the plugin catalog, then access reports in the Emby Server dashboard.</p>
<p>If you don't see Reports listed in the plugin catalog, please ensure you're running the latest version of Emby Server.</p>
</div>
</div>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show more