mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update mobile detail screen
This commit is contained in:
parent
4d1dfd27b3
commit
6ec6739ab0
32 changed files with 153 additions and 82 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
define(["browser","dom","layoutManager","shell","embyRouter","apphost","css!./emby-button","registerElement"],function(browser,dom,layoutManager,shell,embyRouter,appHost){"use strict";function animateButtonInternal(e,btn){for(var div=document.createElement("div"),i=0,length=btn.classList.length;i<length;i++)div.classList.add(btn.classList[i]+"-ripple-effect");var offsetX=e.offsetX||0,offsetY=e.offsetY||0;offsetX>0&&offsetY>0&&(div.style.left=offsetX+"px",div.style.top=offsetY+"px");var firstChild=btn.firstChild;firstChild?btn.insertBefore(div,btn.firstChild):btn.appendChild(div),div.addEventListener(dom.whichAnimationEvent(),function(){div.parentNode.removeChild(div)},!1)}function animateButton(e,btn){requestAnimationFrame(function(){animateButtonInternal(e,btn)})}function onKeyDown(e){13===e.keyCode&&animateButton(e,this)}function onMouseDown(e){0===e.button&&animateButton(e,this)}function onClick(e){animateButton(e,this)}function enableAnimation(){return!browser.tv}function onAnchorClick(e){var href=this.getAttribute("href");"#"!==href&&(this.getAttribute("target")?appHost.supports("targetblank")||(e.preventDefault(),shell.openUrl(href)):embyRouter.handleAnchorClick(e))}var EmbyButtonPrototype=Object.create(HTMLButtonElement.prototype),EmbyLinkButtonPrototype=Object.create(HTMLAnchorElement.prototype);EmbyButtonPrototype.createdCallback=function(){this.classList.contains("emby-button")||(this.classList.add("emby-button"),layoutManager.tv&&(this.classList.add("emby-button-focusscale"),this.classList.add("emby-button-tv")),enableAnimation()&&(dom.addEventListener(this,"keydown",onKeyDown,{passive:!0}),browser.safari||browser.firefox&&"A"===this.tagName?dom.addEventListener(this,"click",onClick,{passive:!0}):dom.addEventListener(this,"mousedown",onMouseDown,{passive:!0})))},EmbyButtonPrototype.attachedCallback=function(){"A"===this.tagName&&(dom.removeEventListener(this,"click",onAnchorClick,{}),dom.addEventListener(this,"click",onAnchorClick,{}),"true"===this.getAttribute("data-autohide")&&(appHost.supports("externallinks")?this.classList.remove("hide"):this.classList.add("hide")))},EmbyLinkButtonPrototype.createdCallback=EmbyButtonPrototype.createdCallback,EmbyLinkButtonPrototype.attachedCallback=EmbyButtonPrototype.attachedCallback,document.registerElement("emby-button",{prototype:EmbyButtonPrototype,extends:"button"}),document.registerElement("emby-linkbutton",{prototype:EmbyLinkButtonPrototype,extends:"a"})});
|
define(["browser","dom","layoutManager","shell","embyRouter","apphost","css!./emby-button","registerElement"],function(browser,dom,layoutManager,shell,embyRouter,appHost){"use strict";function animateButtonInternal(e,btn){for(var div=document.createElement("div"),i=0,length=btn.classList.length;i<length;i++)div.classList.add(btn.classList[i]+"-ripple-effect");var offsetX=e.offsetX||0,offsetY=e.offsetY||0;offsetX>0&&offsetY>0&&(div.style.left=offsetX+"px",div.style.top=offsetY+"px");var firstChild=btn.firstChild;firstChild?btn.insertBefore(div,btn.firstChild):btn.appendChild(div),div.addEventListener(dom.whichAnimationEvent(),function(){div.parentNode.removeChild(div)},!1)}function animateButton(e,btn){requestAnimationFrame(function(){animateButtonInternal(e,btn)})}function onKeyDown(e){13===e.keyCode&&animateButton(e,this)}function onMouseDown(e){0===e.button&&animateButton(e,this)}function onClick(e){animateButton(e,this)}function enableAnimation(){return!browser.tv}function onAnchorClick(e){var href=this.getAttribute("href");"#"!==href&&(this.getAttribute("target")?appHost.supports("targetblank")||(e.preventDefault(),shell.openUrl(href)):embyRouter.handleAnchorClick(e))}var EmbyButtonPrototype=Object.create(HTMLButtonElement.prototype),EmbyLinkButtonPrototype=Object.create(HTMLAnchorElement.prototype);return EmbyButtonPrototype.createdCallback=function(){this.classList.contains("emby-button")||(this.classList.add("emby-button"),layoutManager.tv&&(this.classList.add("emby-button-focusscale"),this.classList.add("emby-button-tv")),enableAnimation()&&(dom.addEventListener(this,"keydown",onKeyDown,{passive:!0}),browser.safari||browser.firefox&&"A"===this.tagName?dom.addEventListener(this,"click",onClick,{passive:!0}):dom.addEventListener(this,"mousedown",onMouseDown,{passive:!0})))},EmbyButtonPrototype.attachedCallback=function(){"A"===this.tagName&&(dom.removeEventListener(this,"click",onAnchorClick,{}),dom.addEventListener(this,"click",onAnchorClick,{}),"true"===this.getAttribute("data-autohide")&&(appHost.supports("externallinks")?this.classList.remove("hide"):this.classList.add("hide")))},EmbyButtonPrototype.detachedCallback=function(){dom.removeEventListener(this,"click",onAnchorClick,{})},EmbyLinkButtonPrototype.createdCallback=EmbyButtonPrototype.createdCallback,EmbyLinkButtonPrototype.attachedCallback=EmbyButtonPrototype.attachedCallback,document.registerElement("emby-button",{prototype:EmbyButtonPrototype,extends:"button"}),document.registerElement("emby-linkbutton",{prototype:EmbyLinkButtonPrototype,extends:"a"}),EmbyButtonPrototype});
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
.videoPlayerContainer{position:fixed!important;top:0;bottom:0;left:0;right:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.videoPlayerContainer:not(.videoPlayerContainer-withBackdrop){background:#000!important}.videoPlayerContainer-withBackdrop{background-repeat:no-repeat;background-position:center center;-webkit-background-size:cover;background-size:cover;background-attachment:fixed;background-color:#000}.videoPlayerContainer-onTop{z-index:1000}.htmlvideoplayer{margin:0!important;padding:0!important;width:100%;height:100%}.htmlvideoplayer::-webkit-media-text-track-display{margin-top:-2.5em}.htmlvideoplayer::cue{background-color:transparent;text-shadow:2px 2px 2px rgba(0,0,0,1);-webkit-font-smoothing:antialiased;font-family:inherit}.videoSubtitles{position:fixed;bottom:10%;text-align:center;left:0;right:0;color:#fff;font-size:170%}.videoSubtitlesInner{max-width:70%;background-color:rgba(0,0,0,.8);padding:.25em;margin:auto;display:inline-block}@-webkit-keyframes htmlvideoplayer-zoomin{from{-webkit-transform:scale3d(.2,.2,.2);transform:scale3d(.2,.2,.2);opacity:.6}to{-webkit-transform:none;transform:none;opacity:initial}}@keyframes htmlvideoplayer-zoomin{from{-webkit-transform:scale3d(.2,.2,.2);transform:scale3d(.2,.2,.2);opacity:.6}to{-webkit-transform:none;transform:none;opacity:initial}}
|
.videoPlayerContainer{position:fixed!important;top:0;bottom:0;left:0;right:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.videoPlayerContainer:not(.videoPlayerContainer-withBackdrop){background:#000!important}.videoPlayerContainer-withBackdrop{background-repeat:no-repeat;background-position:center center;-webkit-background-size:cover;background-size:cover;background-attachment:fixed;background-color:#000}.videoPlayerContainer-onTop{z-index:1000}.htmlvideoplayer{margin:0!important;padding:0!important;width:100%;height:100%}.htmlvideoplayer-moveupsubtitles::-webkit-media-text-track-display{margin-top:-2em}.htmlvideoplayer::cue{background-color:transparent;text-shadow:2px 2px 2px rgba(0,0,0,1);-webkit-font-smoothing:antialiased;font-family:inherit}.videoSubtitles{position:fixed;bottom:10%;text-align:center;left:0;right:0;color:#fff;font-size:170%}.videoSubtitlesInner{max-width:70%;background-color:rgba(0,0,0,.8);padding:.25em;margin:auto;display:inline-block}@-webkit-keyframes htmlvideoplayer-zoomin{from{-webkit-transform:scale3d(.2,.2,.2);transform:scale3d(.2,.2,.2);opacity:.6}to{-webkit-transform:none;transform:none;opacity:initial}}@keyframes htmlvideoplayer-zoomin{from{-webkit-transform:scale3d(.2,.2,.2);transform:scale3d(.2,.2,.2);opacity:.6}to{-webkit-transform:none;transform:none;opacity:initial}}
|
1
dashboard-ui/bower_components/emby-webcomponents/imagedownloader/imagedownloader.js
vendored
Normal file
1
dashboard-ui/bower_components/emby-webcomponents/imagedownloader/imagedownloader.js
vendored
Normal file
File diff suppressed because one or more lines are too long
44
dashboard-ui/bower_components/emby-webcomponents/imagedownloader/imagedownloader.template.html
vendored
Normal file
44
dashboard-ui/bower_components/emby-webcomponents/imagedownloader/imagedownloader.template.html
vendored
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
<div class="formDialogHeader">
|
||||||
|
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon"></i></button>
|
||||||
|
<h3 class="formDialogHeaderTitle">
|
||||||
|
${Search}
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="formDialogContent">
|
||||||
|
<div class="dialogContentInner">
|
||||||
|
<div class="flex align-items-center justify-content-center flex-wrap" style="margin: 2em 0;">
|
||||||
|
|
||||||
|
<div style="margin: 0;">
|
||||||
|
<label for="selectImageProvider" style="display: inline-block;">${LabelSource}</label>
|
||||||
|
<select id="selectImageProvider" style="padding-left:.5em;padding-right:0;display: inline-block;width:auto!important;">
|
||||||
|
<option value="">${OptionAll}</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="margin-left:1em;">
|
||||||
|
<label for="selectBrowsableImageType" style="display: inline-block;">${LabelImage}</label>
|
||||||
|
<select id="selectBrowsableImageType" style="padding-left:.5em;padding-right:0;display: inline-block;width:auto!important;">
|
||||||
|
<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>
|
||||||
|
<div class="availableImagesPaging" style="margin-left:1em;"></div>
|
||||||
|
<label style="margin: 0 0 0 1em;width:auto;">
|
||||||
|
<input id="chkAllLanguages" type="checkbox" is="emby-checkbox" />
|
||||||
|
<span>${LabelAllLanguages}</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="availableImagesList vertical-wrap centered"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
define(["datetime","css!./indicators.css","material-icons"],function(datetime){"use strict";function enableProgressIndicator(item){return"Video"===item.MediaType&&"TvChannel"!==item.Type||("AudioBook"===item.Type||"AudioPodcast"===item.Type)}function getProgressHtml(pct,options){var containerClass="itemProgressBar";return options&&options.containerClass&&(containerClass+=" "+options.containerClass),'<div class="'+containerClass+'"><div class="itemProgressBarForeground" style="width:'+pct+'%;"></div></div>'}function getAutoTimeProgressHtml(pct,options,start,end){var containerClass="itemProgressBar";return options&&options.containerClass&&(containerClass+=" "+options.containerClass),'<div is="emby-progressbar" data-automode="time" data-starttime="'+start+'" data-endtime="'+end+'" class="'+containerClass+'"><div class="itemProgressBarForeground" style="width:'+pct+'%;"></div></div>'}function getProgressBarHtml(item,options){var pct;if(enableProgressIndicator(item)){if("Recording"===item.Type&&item.CompletionPercentage)return getProgressHtml(item.CompletionPercentage,options);var userData=options?options.userData||item.UserData:item.UserData;if(userData&&(pct=userData.PlayedPercentage,pct&&pct<100))return getProgressHtml(pct,options)}if("Program"===item.Type&&item.StartDate&&item.EndDate){var startDate=0,endDate=1;try{startDate=datetime.parseISO8601Date(item.StartDate).getTime()}catch(err){}try{endDate=datetime.parseISO8601Date(item.EndDate).getTime()}catch(err){}var now=(new Date).getTime(),total=endDate-startDate;if(pct=100*((now-startDate)/total),pct>0&&pct<100)return getAutoTimeProgressHtml(pct,options,startDate,endDate)}return""}function enablePlayedIndicator(item){if("Video"===item.MediaType&&"TvChannel"!==item.Type)return!0;if("Audio"===item.MediaType){if("AudioPodcast"===item.Type)return!0;if("AudioBook"===item.Type)return!0}return"Series"===item.Type||"Season"===item.Type||"BoxSet"===item.Type||"Game"===item.MediaType||"Book"===item.MediaType||"Recording"===item.MediaType}function getPlayedIndicator(item){if(enablePlayedIndicator(item)){var userData=item.UserData||{};if(userData.UnplayedItemCount)return'<div class="countIndicator indicator">'+userData.UnplayedItemCount+"</div>";if(userData.PlayedPercentage&&userData.PlayedPercentage>=100||userData.Played)return'<div class="playedIndicator indicator"><i class="md-icon indicatorIcon"></i></div>'}return""}function getCountIndicatorHtml(count){return'<div class="countIndicator indicator">'+count+"</div>"}function getChildCountIndicatorHtml(item,options){var minCount=0;return options&&(minCount=options.minCount||minCount),item.ChildCount&&item.ChildCount>minCount?getCountIndicatorHtml(item.ChildCount):""}function getTimerIndicator(item){var status;if("SeriesTimer"===item.Type)return'<i class="md-icon timerIndicator indicatorIcon"></i>';if(item.TimerId||item.SeriesTimerId)status=item.Status||"Cancelled";else{if("Timer"!==item.Type)return"";status=item.Status}return item.SeriesTimerId?"Cancelled"!==status?'<i class="md-icon timerIndicator indicatorIcon"></i>':'<i class="md-icon timerIndicator timerIndicator-inactive indicatorIcon"></i>':'<i class="md-icon timerIndicator indicatorIcon"></i>'}function getSyncIndicator(item){return 100===item.SyncPercent?'<div class="syncIndicator indicator fullSyncIndicator"><i class="md-icon indicatorIcon"></i></div>':null!=item.SyncPercent?'<div class="syncIndicator indicator emptySyncIndicator"><i class="md-icon indicatorIcon"></i></div>':""}function getVideoIndicator(item){return"Video"===item.MediaType?'<div class="indicator videoIndicator"><i class="md-icon indicatorIcon"></i></div>':""}function onAutoTimeProgress(){var start=parseInt(this.getAttribute("data-starttime")),end=parseInt(this.getAttribute("data-endtime")),now=(new Date).getTime(),total=end-start,pct=100*((now-start)/total);pct=Math.min(100,pct),pct=Math.max(0,pct);var itemProgressBarForeground=this.querySelector(".itemProgressBarForeground");itemProgressBarForeground.style.width=pct+"%"}var ProgressBarPrototype=Object.create(HTMLDivElement.prototype);return ProgressBarPrototype.attachedCallback=function(){this.timeInterval&&clearInterval(this.timeInterval),"time"===this.getAttribute("data-automode")&&(this.timeInterval=setInterval(onAutoTimeProgress.bind(this),6e4))},ProgressBarPrototype.detachedCallback=function(){this.timeInterval&&(clearInterval(this.timeInterval),this.timeInterval=null)},document.registerElement("emby-progressbar",{prototype:ProgressBarPrototype,extends:"div"}),{getProgressBarHtml:getProgressBarHtml,getPlayedIndicatorHtml:getPlayedIndicator,getChildCountIndicatorHtml:getChildCountIndicatorHtml,enableProgressIndicator:enableProgressIndicator,getTimerIndicator:getTimerIndicator,enablePlayedIndicator:enablePlayedIndicator,getSyncIndicator:getSyncIndicator,getVideoIndicator:getVideoIndicator}});
|
define(["datetime","itemHelper","css!./indicators.css","material-icons"],function(datetime,itemHelper){"use strict";function enableProgressIndicator(item){return"Video"===item.MediaType&&"TvChannel"!==item.Type||("AudioBook"===item.Type||"AudioPodcast"===item.Type)}function getProgressHtml(pct,options){var containerClass="itemProgressBar";return options&&options.containerClass&&(containerClass+=" "+options.containerClass),'<div class="'+containerClass+'"><div class="itemProgressBarForeground" style="width:'+pct+'%;"></div></div>'}function getAutoTimeProgressHtml(pct,options,start,end){var containerClass="itemProgressBar";return options&&options.containerClass&&(containerClass+=" "+options.containerClass),'<div is="emby-progressbar" data-automode="time" data-starttime="'+start+'" data-endtime="'+end+'" class="'+containerClass+'"><div class="itemProgressBarForeground" style="width:'+pct+'%;"></div></div>'}function getProgressBarHtml(item,options){var pct;if(enableProgressIndicator(item)){if("Recording"===item.Type&&item.CompletionPercentage)return getProgressHtml(item.CompletionPercentage,options);var userData=options?options.userData||item.UserData:item.UserData;if(userData&&(pct=userData.PlayedPercentage,pct&&pct<100))return getProgressHtml(pct,options)}if("Program"===item.Type&&item.StartDate&&item.EndDate){var startDate=0,endDate=1;try{startDate=datetime.parseISO8601Date(item.StartDate).getTime()}catch(err){}try{endDate=datetime.parseISO8601Date(item.EndDate).getTime()}catch(err){}var now=(new Date).getTime(),total=endDate-startDate;if(pct=100*((now-startDate)/total),pct>0&&pct<100)return getAutoTimeProgressHtml(pct,options,startDate,endDate)}return""}function enablePlayedIndicator(item){return itemHelper.canMarkPlayed(item)}function getPlayedIndicator(item){if(enablePlayedIndicator(item)){var userData=item.UserData||{};if(userData.UnplayedItemCount)return'<div class="countIndicator indicator">'+userData.UnplayedItemCount+"</div>";if(userData.PlayedPercentage&&userData.PlayedPercentage>=100||userData.Played)return'<div class="playedIndicator indicator"><i class="md-icon indicatorIcon"></i></div>'}return""}function getCountIndicatorHtml(count){return'<div class="countIndicator indicator">'+count+"</div>"}function getChildCountIndicatorHtml(item,options){var minCount=0;return options&&(minCount=options.minCount||minCount),item.ChildCount&&item.ChildCount>minCount?getCountIndicatorHtml(item.ChildCount):""}function getTimerIndicator(item){var status;if("SeriesTimer"===item.Type)return'<i class="md-icon timerIndicator indicatorIcon"></i>';if(item.TimerId||item.SeriesTimerId)status=item.Status||"Cancelled";else{if("Timer"!==item.Type)return"";status=item.Status}return item.SeriesTimerId?"Cancelled"!==status?'<i class="md-icon timerIndicator indicatorIcon"></i>':'<i class="md-icon timerIndicator timerIndicator-inactive indicatorIcon"></i>':'<i class="md-icon timerIndicator indicatorIcon"></i>'}function getSyncIndicator(item){return 100===item.SyncPercent?'<div class="syncIndicator indicator fullSyncIndicator"><i class="md-icon indicatorIcon"></i></div>':null!=item.SyncPercent?'<div class="syncIndicator indicator emptySyncIndicator"><i class="md-icon indicatorIcon"></i></div>':""}function getVideoIndicator(item){return"Video"===item.MediaType?'<div class="indicator videoIndicator"><i class="md-icon indicatorIcon"></i></div>':""}function onAutoTimeProgress(){var start=parseInt(this.getAttribute("data-starttime")),end=parseInt(this.getAttribute("data-endtime")),now=(new Date).getTime(),total=end-start,pct=100*((now-start)/total);pct=Math.min(100,pct),pct=Math.max(0,pct);var itemProgressBarForeground=this.querySelector(".itemProgressBarForeground");itemProgressBarForeground.style.width=pct+"%"}var ProgressBarPrototype=Object.create(HTMLDivElement.prototype);return ProgressBarPrototype.attachedCallback=function(){this.timeInterval&&clearInterval(this.timeInterval),"time"===this.getAttribute("data-automode")&&(this.timeInterval=setInterval(onAutoTimeProgress.bind(this),6e4))},ProgressBarPrototype.detachedCallback=function(){this.timeInterval&&(clearInterval(this.timeInterval),this.timeInterval=null)},document.registerElement("emby-progressbar",{prototype:ProgressBarPrototype,extends:"div"}),{getProgressBarHtml:getProgressBarHtml,getPlayedIndicatorHtml:getPlayedIndicator,getChildCountIndicatorHtml:getChildCountIndicatorHtml,enableProgressIndicator:enableProgressIndicator,getTimerIndicator:getTimerIndicator,enablePlayedIndicator:enablePlayedIndicator,getSyncIndicator:getSyncIndicator,getVideoIndicator:getVideoIndicator}});
|
|
@ -1 +1 @@
|
||||||
define(["apphost"],function(appHost){"use strict";function getDisplayName(item,options){if(!item)throw new Error("null item passed into getDisplayName");options=options||{},"Timer"===item.Type&&(item=item.ProgramInfo||item);var name=("Program"!==item.Type&&"Recording"!==item.Type||!item.IsSeries&&!item.EpisodeTitle?item.Name:item.EpisodeTitle)||"";if("TvChannel"===item.Type)return item.Number?item.Number+" "+name:name;if("Episode"===item.Type&&0===item.ParentIndexNumber)name=Globalize.translate("sharedcomponents#ValueSpecialEpisodeName",name);else if(("Episode"===item.Type||"Program"===item.Type)&&null!=item.IndexNumber&&null!=item.ParentIndexNumber&&options.includeIndexNumber!==!1){var displayIndexNumber=item.IndexNumber,number=displayIndexNumber;options.includeParentInfo!==!1&&(number="S"+item.ParentIndexNumber+", E"+number),item.IndexNumberEnd&&(displayIndexNumber=item.IndexNumberEnd,number+="-"+displayIndexNumber),number&&(name=name?number+" - "+name:number)}return name}function supportsAddingToCollection(item){var invalidTypes=["Person","Genre","MusicGenre","Studio","GameGenre","BoxSet","Playlist","UserView","CollectionFolder","Audio","TvChannel","Channel","Program","MusicAlbum","Timer","SeriesTimer"];return("Recording"!==item.Type||"Completed"===item.Status)&&(!item.CollectionType&&invalidTypes.indexOf(item.Type)===-1&&"Photo"!==item.MediaType)}function supportsAddingToPlaylist(item){return"Program"!==item.Type&&("TvChannel"!==item.Type&&("Timer"!==item.Type&&("SeriesTimer"!==item.Type&&("Photo"!==item.MediaType&&(("Recording"!==item.Type||"Completed"===item.Status)&&(item.MediaType||item.IsFolder||"Genre"===item.Type||"MusicGenre"===item.Type||"MusicArtist"===item.Type))))))}function canEdit(user,item){var itemType=item.Type;return"UserRootFolder"!==itemType&&"UserView"!==itemType&&("Program"!==itemType&&(("Recording"!==item.Type||"Completed"===item.Status)&&user.Policy.IsAdministrator))}function isLocalItem(item){return!(!item||!item.Id||0!==item.Id.indexOf("local"))}return{getDisplayName:getDisplayName,supportsAddingToCollection:supportsAddingToCollection,supportsAddingToPlaylist:supportsAddingToPlaylist,isLocalItem:isLocalItem,canIdentify:function(user,itemType){return!("Movie"!==itemType&&"Trailer"!==itemType&&"Series"!==itemType&&"Game"!==itemType&&"BoxSet"!==itemType&&"Person"!==itemType&&"Book"!==itemType&&"MusicAlbum"!==itemType&&"MusicArtist"!==itemType||!user.Policy.IsAdministrator)},canEdit:canEdit,canEditImages:function(user,item){var itemType=item.Type;return"Photo"!==item.MediaType&&("UserView"===itemType?!!user.Policy.IsAdministrator:("Recording"!==item.Type||"Completed"===item.Status)&&("Timer"!==itemType&&"SeriesTimer"!==itemType&&canEdit(user,item)))},canSync:function(user,item){return!(user&&!user.Policy.EnableContentDownloading)&&item.SupportsSync},canShare:function(user,item){return"Program"!==item.Type&&("TvChannel"!==item.Type&&("Timer"!==item.Type&&("SeriesTimer"!==item.Type&&(("Recording"!==item.Type||"Completed"===item.Status)&&(user.Policy.EnablePublicSharing&&appHost.supports("sharing"))))))},enableDateAddedDisplay:function(item){return!item.IsFolder&&item.MediaType&&"Program"!==item.Type&&"TvChannel"!==item.Type&&"Trailer"!==item.Type}}});
|
define(["apphost"],function(appHost){"use strict";function getDisplayName(item,options){if(!item)throw new Error("null item passed into getDisplayName");options=options||{},"Timer"===item.Type&&(item=item.ProgramInfo||item);var name=("Program"!==item.Type&&"Recording"!==item.Type||!item.IsSeries&&!item.EpisodeTitle?item.Name:item.EpisodeTitle)||"";if("TvChannel"===item.Type)return item.Number?item.Number+" "+name:name;if("Episode"===item.Type&&0===item.ParentIndexNumber)name=Globalize.translate("sharedcomponents#ValueSpecialEpisodeName",name);else if(("Episode"===item.Type||"Program"===item.Type)&&null!=item.IndexNumber&&null!=item.ParentIndexNumber&&options.includeIndexNumber!==!1){var displayIndexNumber=item.IndexNumber,number=displayIndexNumber;options.includeParentInfo!==!1&&(number="S"+item.ParentIndexNumber+", E"+number),item.IndexNumberEnd&&(displayIndexNumber=item.IndexNumberEnd,number+="-"+displayIndexNumber),number&&(name=name?number+" - "+name:number)}return name}function supportsAddingToCollection(item){var invalidTypes=["Person","Genre","MusicGenre","Studio","GameGenre","BoxSet","Playlist","UserView","CollectionFolder","Audio","TvChannel","Channel","Program","MusicAlbum","Timer","SeriesTimer"];return("Recording"!==item.Type||"Completed"===item.Status)&&(!item.CollectionType&&invalidTypes.indexOf(item.Type)===-1&&"Photo"!==item.MediaType)}function supportsAddingToPlaylist(item){return"Program"!==item.Type&&("TvChannel"!==item.Type&&("Timer"!==item.Type&&("SeriesTimer"!==item.Type&&("Photo"!==item.MediaType&&(("Recording"!==item.Type||"Completed"===item.Status)&&(item.MediaType||item.IsFolder||"Genre"===item.Type||"MusicGenre"===item.Type||"MusicArtist"===item.Type))))))}function canEdit(user,item){var itemType=item.Type;return"UserRootFolder"!==itemType&&"UserView"!==itemType&&("Program"!==itemType&&(("Recording"!==item.Type||"Completed"===item.Status)&&user.Policy.IsAdministrator))}function isLocalItem(item){return!(!item||!item.Id||0!==item.Id.indexOf("local"))}return{getDisplayName:getDisplayName,supportsAddingToCollection:supportsAddingToCollection,supportsAddingToPlaylist:supportsAddingToPlaylist,isLocalItem:isLocalItem,canIdentify:function(user,itemType){return!("Movie"!==itemType&&"Trailer"!==itemType&&"Series"!==itemType&&"Game"!==itemType&&"BoxSet"!==itemType&&"Person"!==itemType&&"Book"!==itemType&&"MusicAlbum"!==itemType&&"MusicArtist"!==itemType||!user.Policy.IsAdministrator)},canEdit:canEdit,canEditImages:function(user,item){var itemType=item.Type;return"Photo"!==item.MediaType&&("UserView"===itemType?!!user.Policy.IsAdministrator:("Recording"!==item.Type||"Completed"===item.Status)&&("Timer"!==itemType&&"SeriesTimer"!==itemType&&canEdit(user,item)))},canSync:function(user,item){return!(user&&!user.Policy.EnableContentDownloading)&&item.SupportsSync},canShare:function(user,item){return"Program"!==item.Type&&("TvChannel"!==item.Type&&("Timer"!==item.Type&&("SeriesTimer"!==item.Type&&(("Recording"!==item.Type||"Completed"===item.Status)&&(user.Policy.EnablePublicSharing&&appHost.supports("sharing"))))))},enableDateAddedDisplay:function(item){return!item.IsFolder&&item.MediaType&&"Program"!==item.Type&&"TvChannel"!==item.Type&&"Trailer"!==item.Type},canMarkPlayed:function(item){if("Program"===item.Type)return!1;if("Video"===item.MediaType&&"TvChannel"!==item.Type)return!0;if("Audio"===item.MediaType){if("AudioPodcast"===item.Type)return!0;if("AudioBook"===item.Type)return!0}return"Series"===item.Type||"Season"===item.Type||"BoxSet"===item.Type||"Game"===item.MediaType||"Book"===item.MediaType||"Recording"===item.MediaType},canRate:function(item){return"Program"!==item.Type}}});
|
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
|
@ -436,5 +436,6 @@
|
||||||
"No": "No",
|
"No": "No",
|
||||||
"LiveTV": "Live TV",
|
"LiveTV": "Live TV",
|
||||||
"Schedule": "Schedule",
|
"Schedule": "Schedule",
|
||||||
"Recordings": "Recordings"
|
"Recordings": "Recordings",
|
||||||
|
"MarkWatched": "Mark watched"
|
||||||
}
|
}
|
1
dashboard-ui/bower_components/emby-webcomponents/userdatabuttons/emby-playstatebutton.js
vendored
Normal file
1
dashboard-ui/bower_components/emby-webcomponents/userdatabuttons/emby-playstatebutton.js
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
define(["connectionManager","serverNotifications","events","globalize","emby-button"],function(connectionManager,serverNotifications,events,globalize,EmbyButtonPrototype){"use strict";function addNotificationEvent(instance,name,handler){var localHandler=handler.bind(instance);events.on(serverNotifications,name,localHandler),instance[name]=localHandler}function removeNotificationEvent(instance,name){var handler=instance[name];handler&&(events.off(serverNotifications,name,handler),instance[name]=null)}function onClick(e){var button=this,id=button.getAttribute("data-id"),serverId=button.getAttribute("data-serverid"),apiClient=connectionManager.getApiClient(serverId);button.classList.contains("playstatebutton-played")?(apiClient.markUnplayed(apiClient.getCurrentUserId(),id,new Date),setState(button,!1)):(apiClient.markPlayed(apiClient.getCurrentUserId(),id,new Date),setState(button,!0))}function onUserDataChanged(e,apiClient,userData){var button=this;userData.ItemId===button.getAttribute("data-id")&&setState(button,userData.Played)}function setState(button,played,updateAttribute){played?button.classList.add("playstatebutton-played"):button.classList.remove("playstatebutton-played"),updateAttribute!==!1&&button.setAttribute("data-played",played)}function setTitle(button,itemType){"AudioBook"!==itemType&&"AudioPodcast"!==itemType?button.title=globalize.translate("sharedcomponents#MarkWatched"):button.title=globalize.translate("sharedcomponents#MarkPlayed")}function clearEvents(button){button.removeEventListener("click",onClick),removeNotificationEvent(button,"UserDataChanged")}function bindEvents(button){clearEvents(button),button.addEventListener("click",onClick),addNotificationEvent(button,"UserDataChanged",onUserDataChanged)}var EmbyPlaystateButtonPrototype=Object.create(EmbyButtonPrototype);EmbyPlaystateButtonPrototype.createdCallback=function(){EmbyButtonPrototype.createdCallback&&EmbyButtonPrototype.createdCallback.call(this)},EmbyPlaystateButtonPrototype.attachedCallback=function(){EmbyButtonPrototype.attachedCallback&&EmbyButtonPrototype.attachedCallback.call(this);var itemId=this.getAttribute("data-id"),serverId=this.getAttribute("data-serverid");itemId&&serverId&&(setState(this,"true"===this.getAttribute("data-played"),!1),bindEvents(this),setTitle(this,this.getAttribute("data-type")))},EmbyPlaystateButtonPrototype.detachedCallback=function(){EmbyButtonPrototype.detachedCallback&&EmbyButtonPrototype.detachedCallback.call(this),clearEvents(this)},EmbyPlaystateButtonPrototype.setItem=function(item){if(item){this.setAttribute("data-id",item.Id),this.setAttribute("data-serverid",item.ServerId);var played=item.UserData&&item.UserData.Played;setState(this,played),bindEvents(this),setTitle(this,item.Type)}else this.removeAttribute("data-id"),this.removeAttribute("data-serverid"),this.removeAttribute("data-played"),clearEvents(this)},document.registerElement("emby-playstatebutton",{prototype:EmbyPlaystateButtonPrototype,extends:"button"})});
|
1
dashboard-ui/bower_components/emby-webcomponents/userdatabuttons/emby-ratingbutton.js
vendored
Normal file
1
dashboard-ui/bower_components/emby-webcomponents/userdatabuttons/emby-ratingbutton.js
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
define(["connectionManager","serverNotifications","events","globalize","emby-button"],function(connectionManager,serverNotifications,events,globalize,EmbyButtonPrototype){"use strict";function addNotificationEvent(instance,name,handler){var localHandler=handler.bind(instance);events.on(serverNotifications,name,localHandler),instance[name]=localHandler}function removeNotificationEvent(instance,name){var handler=instance[name];handler&&(events.off(serverNotifications,name,handler),instance[name]=null)}function showPicker(button,apiClient,itemId,likes,isFavorite){return apiClient.updateFavoriteStatus(apiClient.getCurrentUserId(),itemId,!isFavorite)}function onClick(e){var button=this,id=button.getAttribute("data-id"),serverId=button.getAttribute("data-serverid"),apiClient=connectionManager.getApiClient(serverId),likes=this.getAttribute("data-likes"),isFavorite="true"===this.getAttribute("data-isfavorite");likes="true"===likes||"false"!==likes&&null,showPicker(button,apiClient,id,likes,isFavorite).then(function(userData){setState(button,userData.Likes,userData.IsFavorite)})}function onUserDataChanged(e,apiClient,userData){var button=this;userData.ItemId===button.getAttribute("data-id")&&setState(button,userData.Likes,userData.IsFavorite)}function setState(button,likes,isFavorite,updateAttribute){var icon=button.querySelector("i");isFavorite?(icon&&(icon.innerHTML=""),button.classList.add("ratingbutton-withrating")):likes?(icon&&(icon.innerHTML=""),button.classList.remove("ratingbutton-withrating")):likes===!1?(icon&&(icon.innerHTML=""),button.classList.remove("ratingbutton-withrating")):(icon&&(icon.innerHTML=""),button.classList.remove("ratingbutton-withrating")),updateAttribute!==!1&&(button.setAttribute("data-isfavorite",isFavorite),button.setAttribute("data-likes",null===likes?"":likes))}function setTitle(button){}function clearEvents(button){button.removeEventListener("click",onClick),removeNotificationEvent(button,"UserDataChanged")}function bindEvents(button){clearEvents(button),button.addEventListener("click",onClick),addNotificationEvent(button,"UserDataChanged",onUserDataChanged)}var EmbyRatingButtonPrototype=Object.create(EmbyButtonPrototype);EmbyRatingButtonPrototype.createdCallback=function(){EmbyButtonPrototype.createdCallback&&EmbyButtonPrototype.createdCallback.call(this)},EmbyRatingButtonPrototype.attachedCallback=function(){EmbyButtonPrototype.attachedCallback&&EmbyButtonPrototype.attachedCallback.call(this);var itemId=this.getAttribute("data-id"),serverId=this.getAttribute("data-serverid");if(itemId&&serverId){var likes=this.getAttribute("data-likes"),isFavorite="true"===this.getAttribute("data-isfavorite");likes="true"===likes||"false"!==likes&&null,setState(this,likes,isFavorite,!1),bindEvents(this)}setTitle(this)},EmbyRatingButtonPrototype.detachedCallback=function(){EmbyButtonPrototype.detachedCallback&&EmbyButtonPrototype.detachedCallback.call(this),clearEvents(this)},EmbyRatingButtonPrototype.setItem=function(item){if(item){this.setAttribute("data-id",item.Id),this.setAttribute("data-serverid",item.ServerId);var userData=item.UserData||{};setState(this,userData.Likes,userData.IsFavorite),bindEvents(this)}else this.removeAttribute("data-id"),this.removeAttribute("data-serverid"),this.removeAttribute("data-likes"),this.removeAttribute("data-isfavorite"),clearEvents(this)},document.registerElement("emby-ratingbutton",{prototype:EmbyRatingButtonPrototype,extends:"button"})});
|
|
@ -1 +1 @@
|
||||||
define(["connectionManager","globalize","dom","itemHelper","paper-icon-button-light","material-icons","emby-button","css!./userdatabuttons"],function(connectionManager,globalize,dom,itemHelper){"use strict";function getUserDataButtonHtml(method,itemId,serverId,buttonCssClass,iconCssClass,icon,tooltip,style){"fab-mini"===style&&(style="fab",buttonCssClass=buttonCssClass?buttonCssClass+" mini":"mini");var is="fab"===style?"emby-button":"paper-icon-button-light",className="fab"===style?"autoSize fab":"autoSize";return buttonCssClass&&(className+=" "+buttonCssClass),iconCssClass?iconCssClass+=" ":iconCssClass="",iconCssClass+="md-icon",'<button title="'+tooltip+'" data-itemid="'+itemId+'" data-serverid="'+serverId+'" is="'+is+'" data-method="'+method+'" class="'+className+'"><i class="'+iconCssClass+'">'+icon+"</i></button>"}function onContainerClick(e){var btnUserData=dom.parentWithClass(e.target,"btnUserData");if(btnUserData){var method=btnUserData.getAttribute("data-method");userDataMethods[method](btnUserData)}}function fill(options){var html=getIconsHtml(options);"insertAdjacent"===options.fillMode?options.element.insertAdjacentHTML(options.insertLocation||"beforeend",html):options.element.innerHTML=html,dom.removeEventListener(options.element,"click",onContainerClick,{passive:!0}),dom.addEventListener(options.element,"click",onContainerClick,{passive:!0})}function destroy(options){options.element.innerHTML="",dom.removeEventListener(options.element,"click",onContainerClick,{passive:!0})}function getIconsHtml(options){var item=options.item,includePlayed=options.includePlayed,cssClass=options.cssClass,style=options.style,html="",userData=item.UserData||{},itemId=item.Id;if(itemHelper.isLocalItem(item))return html;var btnCssClass="btnUserData";cssClass&&(btnCssClass+=" "+cssClass);var iconCssClass=options.iconCssClass,serverId=item.ServerId;if(includePlayed!==!1){var tooltipPlayed=globalize.translate("sharedcomponents#MarkPlayed");"Video"!==item.MediaType&&"Series"!==item.Type&&"Season"!==item.Type&&"BoxSet"!==item.Type&&"Playlist"!==item.Type||"TvChannel"!==item.Type&&(html+=userData.Played?getUserDataButtonHtml("markPlayed",itemId,serverId,btnCssClass+" btnUserDataOn",iconCssClass,"",tooltipPlayed,style):getUserDataButtonHtml("markPlayed",itemId,serverId,btnCssClass,iconCssClass,"",tooltipPlayed,style))}var tooltipFavorite=globalize.translate("sharedcomponents#Favorite");return html+=userData.IsFavorite?getUserDataButtonHtml("markFavorite",itemId,serverId,btnCssClass+" btnUserData btnUserDataOn",iconCssClass,"",tooltipFavorite,style):getUserDataButtonHtml("markFavorite",itemId,serverId,btnCssClass+" btnUserData",iconCssClass,"",tooltipFavorite,style)}function markFavorite(link){var id=link.getAttribute("data-itemid"),serverId=link.getAttribute("data-serverid"),markAsFavorite=!link.classList.contains("btnUserDataOn");favorite(id,serverId,markAsFavorite),markAsFavorite?link.classList.add("btnUserDataOn"):link.classList.remove("btnUserDataOn")}function markLike(link){var id=link.getAttribute("data-itemid"),serverId=link.getAttribute("data-serverid");link.classList.contains("btnUserDataOn")?(clearLike(id,serverId),link.classList.remove("btnUserDataOn")):(likes(id,serverId,!0),link.classList.add("btnUserDataOn")),link.parentNode.querySelector(".btnDislike").classList.remove("btnUserDataOn")}function markDislike(link){var id=link.getAttribute("data-itemid"),serverId=link.getAttribute("data-serverid");link.classList.contains("btnUserDataOn")?(clearLike(id,serverId),link.classList.remove("btnUserDataOn")):(likes(id,serverId,!1),link.classList.add("btnUserDataOn")),link.parentNode.querySelector(".btnLike").classList.remove("btnUserDataOn")}function markPlayed(link){var id=link.getAttribute("data-itemid"),serverId=link.getAttribute("data-serverid");link.classList.contains("btnUserDataOn")?(played(id,serverId,!1),link.classList.remove("btnUserDataOn")):(played(id,serverId,!0),link.classList.add("btnUserDataOn"))}function likes(id,serverId,isLiked){var apiClient=connectionManager.getApiClient(serverId);return apiClient.updateUserItemRating(apiClient.getCurrentUserId(),id,isLiked)}function played(id,serverId,isPlayed){var apiClient=connectionManager.getApiClient(serverId),method=isPlayed?"markPlayed":"markUnplayed";return apiClient[method](apiClient.getCurrentUserId(),id,new Date)}function favorite(id,serverId,isFavorite){var apiClient=connectionManager.getApiClient(serverId);return apiClient.updateFavoriteStatus(apiClient.getCurrentUserId(),id,isFavorite)}function clearLike(id,serverId){var apiClient=connectionManager.getApiClient(serverId);return apiClient.clearUserItemRating(apiClient.getCurrentUserId(),id)}var userDataMethods={markPlayed:markPlayed,markDislike:markDislike,markLike:markLike,markFavorite:markFavorite};return{fill:fill,destroy:destroy,getIconsHtml:getIconsHtml}});
|
define(["connectionManager","globalize","dom","itemHelper","paper-icon-button-light","material-icons","emby-button","css!./userdatabuttons"],function(connectionManager,globalize,dom,itemHelper){"use strict";function getUserDataButtonHtml(method,itemId,serverId,buttonCssClass,iconCssClass,icon,tooltip,style){"fab-mini"===style&&(style="fab",buttonCssClass=buttonCssClass?buttonCssClass+" mini":"mini");var is="fab"===style?"emby-button":"paper-icon-button-light",className="fab"===style?"autoSize fab":"autoSize";return buttonCssClass&&(className+=" "+buttonCssClass),iconCssClass?iconCssClass+=" ":iconCssClass="",iconCssClass+="md-icon",'<button title="'+tooltip+'" data-itemid="'+itemId+'" data-serverid="'+serverId+'" is="'+is+'" data-method="'+method+'" class="'+className+'"><i class="'+iconCssClass+'">'+icon+"</i></button>"}function onContainerClick(e){var btnUserData=dom.parentWithClass(e.target,"btnUserData");if(btnUserData){var method=btnUserData.getAttribute("data-method");userDataMethods[method](btnUserData)}}function fill(options){var html=getIconsHtml(options);"insertAdjacent"===options.fillMode?options.element.insertAdjacentHTML(options.insertLocation||"beforeend",html):options.element.innerHTML=html,dom.removeEventListener(options.element,"click",onContainerClick,{passive:!0}),dom.addEventListener(options.element,"click",onContainerClick,{passive:!0})}function destroy(options){options.element.innerHTML="",dom.removeEventListener(options.element,"click",onContainerClick,{passive:!0})}function getIconsHtml(options){var item=options.item,includePlayed=options.includePlayed,cssClass=options.cssClass,style=options.style,html="",userData=item.UserData||{},itemId=item.Id;if(itemHelper.isLocalItem(item))return html;var btnCssClass="btnUserData";cssClass&&(btnCssClass+=" "+cssClass);var iconCssClass=options.iconCssClass,serverId=item.ServerId;if(includePlayed!==!1){var tooltipPlayed=globalize.translate("sharedcomponents#MarkPlayed");itemHelper.canMarkPlayed(item)&&(html+=userData.Played?getUserDataButtonHtml("markPlayed",itemId,serverId,btnCssClass+" btnUserDataOn",iconCssClass,"",tooltipPlayed,style):getUserDataButtonHtml("markPlayed",itemId,serverId,btnCssClass,iconCssClass,"",tooltipPlayed,style))}var tooltipFavorite=globalize.translate("sharedcomponents#Favorite");return html+=userData.IsFavorite?getUserDataButtonHtml("markFavorite",itemId,serverId,btnCssClass+" btnUserData btnUserDataOn",iconCssClass,"",tooltipFavorite,style):getUserDataButtonHtml("markFavorite",itemId,serverId,btnCssClass+" btnUserData",iconCssClass,"",tooltipFavorite,style)}function markFavorite(link){var id=link.getAttribute("data-itemid"),serverId=link.getAttribute("data-serverid"),markAsFavorite=!link.classList.contains("btnUserDataOn");favorite(id,serverId,markAsFavorite),markAsFavorite?link.classList.add("btnUserDataOn"):link.classList.remove("btnUserDataOn")}function markLike(link){var id=link.getAttribute("data-itemid"),serverId=link.getAttribute("data-serverid");link.classList.contains("btnUserDataOn")?(clearLike(id,serverId),link.classList.remove("btnUserDataOn")):(likes(id,serverId,!0),link.classList.add("btnUserDataOn")),link.parentNode.querySelector(".btnDislike").classList.remove("btnUserDataOn")}function markDislike(link){var id=link.getAttribute("data-itemid"),serverId=link.getAttribute("data-serverid");link.classList.contains("btnUserDataOn")?(clearLike(id,serverId),link.classList.remove("btnUserDataOn")):(likes(id,serverId,!1),link.classList.add("btnUserDataOn")),link.parentNode.querySelector(".btnLike").classList.remove("btnUserDataOn")}function markPlayed(link){var id=link.getAttribute("data-itemid"),serverId=link.getAttribute("data-serverid");link.classList.contains("btnUserDataOn")?(played(id,serverId,!1),link.classList.remove("btnUserDataOn")):(played(id,serverId,!0),link.classList.add("btnUserDataOn"))}function likes(id,serverId,isLiked){var apiClient=connectionManager.getApiClient(serverId);return apiClient.updateUserItemRating(apiClient.getCurrentUserId(),id,isLiked)}function played(id,serverId,isPlayed){var apiClient=connectionManager.getApiClient(serverId),method=isPlayed?"markPlayed":"markUnplayed";return apiClient[method](apiClient.getCurrentUserId(),id,new Date)}function favorite(id,serverId,isFavorite){var apiClient=connectionManager.getApiClient(serverId);return apiClient.updateFavoriteStatus(apiClient.getCurrentUserId(),id,isFavorite)}function clearLike(id,serverId){var apiClient=connectionManager.getApiClient(serverId);return apiClient.clearUserItemRating(apiClient.getCurrentUserId(),id)}var userDataMethods={markPlayed:markPlayed,markDislike:markDislike,markLike:markLike,markFavorite:markFavorite};return{fill:fill,destroy:destroy,getIconsHtml:getIconsHtml}});
|
File diff suppressed because one or more lines are too long
|
@ -1,31 +0,0 @@
|
||||||
<div style="text-align: center;display:flex; align-items: center; flex-wrap: wrap; justify-content: center;margin: 0 0 1em 0;">
|
|
||||||
<div style="margin: 0;">
|
|
||||||
<label for="selectImageProvider" style="display: inline-block;">${LabelSource}</label>
|
|
||||||
<select id="selectImageProvider" style="padding-left:.5em;padding-right:0;display: inline-block;width:auto!important;">
|
|
||||||
<option value="">${OptionAll}</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div style="margin-left:1em;">
|
|
||||||
<label for="selectBrowsableImageType" style="display: inline-block;">${LabelImage}</label>
|
|
||||||
<select id="selectBrowsableImageType" style="padding-left:.5em;padding-right:0;display: inline-block;width:auto!important;">
|
|
||||||
<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>
|
|
||||||
<div class="availableImagesPaging" style="margin-left:1em;"></div>
|
|
||||||
<label style="margin: 0 0 0 1em;width:auto;">
|
|
||||||
<input id="chkAllLanguages" type="checkbox" is="emby-checkbox" />
|
|
||||||
<span>${LabelAllLanguages}</span>
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="availableImagesList" style="text-align:center;"></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
|
@ -12,9 +12,6 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="pageTabContent padded-left padded-right" id="downloadsTab" data-index="1">
|
<div class="pageTabContent padded-left padded-right" id="downloadsTab" data-index="1">
|
||||||
|
|
||||||
<div class="localSyncStatus hide" style="text-align:right;margin:0 0 1em;">
|
|
||||||
<button type="button" is="emby-button" class="btnSyncNow mini button-accent fab autoSize" style="margin-right:.5em;"><i class="md-icon">sync</i></button>
|
|
||||||
</div>
|
|
||||||
<div class="syncActivity">
|
<div class="syncActivity">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<div id="itemBackdrop" class="itemBackdrop noBackdrop">
|
<div id="itemBackdrop" class="itemBackdrop noBackdrop">
|
||||||
<div class="itemBackdropContent">
|
<div class="itemBackdropFader">
|
||||||
</div>
|
</div>
|
||||||
<button is="emby-button" type="button" class="btnPlay detailFloatingButton hide fab autoSize" title="${ButtonPlay}" data-mode="playmenu"><i class="md-icon">play_arrow</i></button>
|
<button is="emby-button" type="button" class="btnPlay detailFloatingButton hide fab autoSize" title="${ButtonPlay}" data-mode="playmenu"><i class="md-icon">play_arrow</i></button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -37,7 +37,81 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mainDetailButtons">
|
<div class="mainDetailButtons mainDetailButtons-mobile">
|
||||||
|
|
||||||
|
<button is="emby-button" type="button" class="button-flat btnResume btnPlaySimple hide detailButton-mobile" data-mode="resume">
|
||||||
|
<div class="detailButton-mobile-content">
|
||||||
|
<i class="md-icon detailButton-mobile-icon">play_arrow</i>
|
||||||
|
<div class="detailButton-mobile-text">${ButtonResume}</div>
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button is="emby-button" type="button" class="button-flat btnPlay btnPlaySimple hide detailButton-mobile" data-mode="play">
|
||||||
|
<div class="detailButton-mobile-content">
|
||||||
|
<i class="md-icon detailButton-mobile-icon">play_arrow</i>
|
||||||
|
<div class="detailButton-mobile-text">${ButtonPlay}</div>
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button is="emby-button" type="button" class="button-flat btnPlayTrailer hide detailButton-mobile">
|
||||||
|
<div class="detailButton-mobile-content">
|
||||||
|
<i class="md-icon detailButton-mobile-icon"></i>
|
||||||
|
<div class="detailButton-mobile-text">${ButtonTrailer}</div>
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button is="emby-button" type="button" class="button-flat btnInstantMix hide detailButton-mobile">
|
||||||
|
<div class="detailButton-mobile-content">
|
||||||
|
<i class="md-icon detailButton-mobile-icon"></i>
|
||||||
|
<div class="detailButton-mobile-text">${HeaderInstantMix}</div>
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button is="emby-button" type="button" class="button-flat btnShuffle hide detailButton-mobile">
|
||||||
|
<div class="detailButton-mobile-content">
|
||||||
|
<i class="md-icon detailButton-mobile-icon"></i>
|
||||||
|
<div class="detailButton-mobile-text">${ButtonShuffle}</div>
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button is="emby-button" type="button" class="button-flat btnMoreCommands hide detailButton-mobile">
|
||||||
|
<div class="detailButton-mobile-content">
|
||||||
|
<i class="md-icon detailButton-mobile-icon">more_vert</i>
|
||||||
|
<div class="detailButton-mobile-text">${ButtonMore}</div>
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button is="emby-button" type="button" class="button-flat btnCancelSeriesTimer hide detailButton-mobile">
|
||||||
|
<div class="detailButton-mobile-content">
|
||||||
|
<i class="md-icon detailButton-mobile-icon"></i>
|
||||||
|
<div class="detailButton-mobile-text">${ButtonCancelSeries}</div>
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button is="emby-button" type="button" class="button-flat btnDeleteItem hide detailButton-mobile">
|
||||||
|
<div class="detailButton-mobile-content">
|
||||||
|
<i class="md-icon detailButton-mobile-icon"></i>
|
||||||
|
<div class="detailButton-mobile-text">${Delete}</div>
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button is="emby-playstatebutton" type="button" class="button-flat btnPlaystate hide detailButton-mobile">
|
||||||
|
<div class="detailButton-mobile-content">
|
||||||
|
<i class="md-icon detailButton-mobile-icon">check</i>
|
||||||
|
<div class="detailButton-mobile-text"></div>
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button is="emby-ratingbutton" type="button" class="button-flat btnUserRating hide detailButton-mobile">
|
||||||
|
<div class="detailButton-mobile-content">
|
||||||
|
<i class="md-icon detailButton-mobile-icon"></i>
|
||||||
|
<div class="detailButton-mobile-text">${Rate}</div>
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mainDetailButtons mainDetailButtons-nonmobile">
|
||||||
|
|
||||||
<button is="emby-button" type="button" class="raised subdued btnPlaySimple btnResume hide" data-mode="resume">
|
<button is="emby-button" type="button" class="raised subdued btnPlaySimple btnResume hide" data-mode="resume">
|
||||||
<span>${ButtonResume}</span>
|
<span>${ButtonResume}</span>
|
||||||
</button>
|
</button>
|
||||||
|
@ -60,7 +134,8 @@
|
||||||
<div style="margin-left:.5em; display: flex; align-items: center;">
|
<div style="margin-left:.5em; display: flex; align-items: center;">
|
||||||
<button is="emby-button" type="button" class="btnMoreCommands fab mini hide" title="${ButtonMore}"><i class="md-icon">more_vert</i></button>
|
<button is="emby-button" type="button" class="btnMoreCommands fab mini hide" title="${ButtonMore}"><i class="md-icon">more_vert</i></button>
|
||||||
<button is="emby-button" type="button" class="btnDeleteItem fab mini hide" title="${DeleteMedia}"><i class="md-icon"></i></button>
|
<button is="emby-button" type="button" class="btnDeleteItem fab mini hide" title="${DeleteMedia}"><i class="md-icon"></i></button>
|
||||||
<div class="detailUserDataIcons userDataIcons"></div>
|
<button is="emby-playstatebutton" type="button" class="btnPlaystate fab mini hide"><i class="md-icon">check</i></button>
|
||||||
|
<button is="emby-ratingbutton" type="button" class="btnUserRating fab mini hide"><i class="md-icon"></i></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -172,16 +247,6 @@
|
||||||
${HeaderAwardsAndReviews}
|
${HeaderAwardsAndReviews}
|
||||||
</h2>
|
</h2>
|
||||||
<div class="padded-left padded-right">
|
<div class="padded-left padded-right">
|
||||||
<div class="paperList" id="criticRatingSummary">
|
|
||||||
<div class="listItem">
|
|
||||||
<button is="emby-button" type="button" class="mini fab" style="flex-shrink: 0; width: 40px; height: 40px; background-color: transparent; background-repeat: no-repeat; background-position: center center; background-size: cover; background-image: url(css/images/fresh.png);"></button>
|
|
||||||
<div class="listItemBody three-line">
|
|
||||||
<h3 class="listItemBodyText">TOMATOMETER®</h3>
|
|
||||||
<div class="listItemBodyText criticRatingScore"></div>
|
|
||||||
<div class="listItemBodyText criticRatingSummaryText secondary" style="white-space: normal;"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="criticReviewsContent"></div>
|
<div id="criticReviewsContent"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
define(["apphost","globalize","syncJobList","events","localsync","emby-button","paper-icon-button-light"],function(appHost,globalize,syncJobList,events,localSync){"use strict";return function(view,params,tabContent){function isLocalSyncManagement(){return appHost.supports("sync")&&"offline"==mode}function refreshSyncStatus(page){if(isLocalSyncManagement()){var status=localSync.getSyncStatus();"Active"==status?page.querySelector(".btnSyncNow").classList.add("hide"):page.querySelector(".btnSyncNow").classList.remove("hide")}}function syncNow(page){localSync.sync(),require(["toast"],function(toast){toast(Globalize.translate("MessageSyncStarted"))}),refreshSyncStatus(page)}var self=this,mode="offline";tabContent.querySelector(".btnSyncNow").addEventListener("click",function(){syncNow(tabContent)});var mySyncJobList=new syncJobList({isLocalSync:"offline"===mode,serverId:ApiClient.serverId(),userId:"offline"===mode?null:ApiClient.getCurrentUserId(),element:tabContent.querySelector(".syncActivity"),mode:mode});self.renderTab=function(){refreshSyncStatus(tabContent)},self.destroy=function(){mySyncJobList&&(mySyncJobList.destroy(),mySyncJobList=null)}}});
|
define(["apphost","globalize","syncJobList","events","localsync","emby-button","paper-icon-button-light"],function(appHost,globalize,syncJobList,events,localSync){"use strict";return function(view,params,tabContent){var self=this,mode="offline",mySyncJobList=new syncJobList({isLocalSync:"offline"===mode,serverId:ApiClient.serverId(),userId:"offline"===mode?null:ApiClient.getCurrentUserId(),element:tabContent.querySelector(".syncActivity"),mode:mode});self.renderTab=function(){},self.destroy=function(){mySyncJobList&&(mySyncJobList.destroy(),mySyncJobList=null)}}});
|
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
|
@ -79,14 +79,6 @@
|
||||||
${HeaderAwardsAndReviews}
|
${HeaderAwardsAndReviews}
|
||||||
</h1>
|
</h1>
|
||||||
<div>
|
<div>
|
||||||
<div id="criticRatingSummary" class="criticReview criticRatingSummary" style="display: none;">
|
|
||||||
<p style="margin: 0 0 .5em -40px; font-weight: bold;">TOMATOMETER®</p>
|
|
||||||
<div class="reviewScore">
|
|
||||||
<img src="css/images/fresh.png">
|
|
||||||
</div>
|
|
||||||
<div class="criticRatingScore"></div>
|
|
||||||
<div class="criticRatingSummaryText"></div>
|
|
||||||
</div>
|
|
||||||
<div id="criticReviewsContent"></div>
|
<div id="criticReviewsContent"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1929,5 +1929,6 @@
|
||||||
"News": "News",
|
"News": "News",
|
||||||
"HeaderDownloadSync": "Download & Sync",
|
"HeaderDownloadSync": "Download & Sync",
|
||||||
"EnableHardwareDecoding": "Enable hardware decoding",
|
"EnableHardwareDecoding": "Enable hardware decoding",
|
||||||
"EnableHardwareEncoding": "Enable hardware encoding"
|
"EnableHardwareEncoding": "Enable hardware encoding",
|
||||||
|
"Rate": "Rate"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue