emby 4.8
This commit is contained in:
1
modules/indicators/indicators.css
Normal file
1
modules/indicators/indicators.css
Normal file
@@ -0,0 +1 @@
|
||||
.indicator{border-radius:100em;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;font-weight:600;width:2em;height:2em}.timerIndicator{color:#cb272a}.timerIndicator-inactive{color:#888}.indicatorIcon{width:auto;height:auto;font-size:1.6em}.countIndicator{border-radius:100em;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;font-weight:600;width:2em;height:2em;color:#fff;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);font-size:88%}.playedIndicator{border-radius:100em;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;color:#fff;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2)}.syncIndicator{border-radius:100em;font-size:1.28em;height:1.25em;width:1.25em;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center}.emptySyncIndicator{background:#ccc;color:#333}.missingIndicator,.unairedIndicator{background:#c33;padding:.25em .5em;border-radius:100em;color:#fff;font-size:84%;font-weight:600;margin:0 .25em}.itemProgressBarRound{border-radius:100em}.itemProgressBarForegroundRound{border-top-left-radius:100em;border-bottom-left-radius:100em;border-start-start-radius:100em;border-start-end-radius:100em}.itemProgressBarForeground-animated{-webkit-animation:itemProgressBarForeground-slidein 1s ease-out normal;animation:itemProgressBarForeground-slidein 1s ease-out normal;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transform-origin:left center;transform-origin:left center}[dir=rtl] .itemProgressBarForeground-animated{-webkit-transform-origin:right center;transform-origin:right center}@-webkit-keyframes itemProgressBarForeground-slidein{from{-webkit-transform:scaleX(.1);transform:scaleX(.1)}to{-webkit-transform:none;transform:none}}@keyframes itemProgressBarForeground-slidein{from{-webkit-transform:scaleX(.1);transform:scaleX(.1)}to{-webkit-transform:none;transform:none}}
|
||||
1
modules/indicators/indicators.js
Normal file
1
modules/indicators/indicators.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../common/itemmanager/itemmanager.js"],function(_exports,_itemmanager){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>'}var progressBarRequired;Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["css!modules/indicators/indicators.css","material-icons"]),_exports.default={getProgressBarHtml:function(item,options){var itemType=item.Type;switch(itemType){case"Program":case"Timer":case"Recording":case"TvChannel":if((item=item.CurrentProgram||item).StartDate&&item.EndDate){var startDate=0,endDate=1;try{startDate=Date.parse(item.StartDate)}catch(err){}try{endDate=Date.parse(item.EndDate)}catch(err){}var pct=(Date.now()-startDate)/(endDate-startDate)*100;if(0<pct&&pct<100)return function(pct,options,isRecording,start,end){progressBarRequired||(progressBarRequired=!0,require(["emby-progressbar"]));var containerClass="itemProgressBar",foregroundClass="itemProgressBarForeground";return options&&options.containerClass&&(containerClass+=" "+options.containerClass),isRecording&&(foregroundClass+=" itemProgressBarForeground-recording"),'<div is="emby-progressbar" data-automode="time" data-starttime="'+start+'" data-endtime="'+end+'" class="'+containerClass+'"><div class="'+foregroundClass+'" style="width:'+pct+'%;"></div></div>'}(pct,options,"Timer"===itemType||"Recording"===itemType||item.TimerId,startDate,endDate)}break;case"ActiveSession":pct=item.PlayState,startDate=item.NowPlayingItem;if(pct&&startDate&&startDate.RunTimeTicks)return endDate=getProgressHtml(100*(pct.PositionTicks||0)/startDate.RunTimeTicks,{}),item.TranscodingInfo&&item.TranscodingInfo.CompletionPercentage&&(endDate+=getProgressHtml(item.TranscodingInfo.CompletionPercentage,{containerClass:"sessionTranscodingProgress"})),endDate;break;default:if(!item.IsFolder){pct=options&&options.userData||item.UserData;if(pct){startDate=pct.PlayedPercentage;if(startDate&&startDate<100)return getProgressHtml(startDate,options)}}}return""},getPlayedIndicatorHtml:function(item,classNamePrefix){var userData=item.UserData;if(userData){if(userData.Played)return item.IsFolder&&"MusicAlbum"!==item.Type||!_itemmanager.default.canMarkPlayed(item)?"":'<i class="'+(classNamePrefix?classNamePrefix+"PlayedIndicator ":"")+'playedIndicator md-icon"></i>';if(userData.UnplayedItemCount)return _itemmanager.default.canMarkPlayed(item)?'<div class="'+(classNamePrefix?classNamePrefix+"CountIndicator ":"")+'CountIndicator countIndicator">'+userData.UnplayedItemCount+"</div>":""}return""},getTimerIndicator:function(item,classNamePrefix){var status,itemType=(item=item.CurrentProgram||item).Type,classNamePrefix=classNamePrefix?classNamePrefix+"TimerIndicator ":"";if("SeriesTimer"===itemType)return'<i class="'+classNamePrefix+'md-icon timerIndicator seriesTimerIndicator indicatorIcon"></i>';if(item.TimerId||item.SeriesTimerId)status=item.Status||"Cancelled";else{if("Timer"!==itemType)return"";status=item.Status}return item.SeriesTimerId?"Cancelled"!==status?'<i class="'+classNamePrefix+'md-icon timerIndicator seriesTimerIndicator indicatorIcon"></i>':'<i class="'+classNamePrefix+'md-icon timerIndicator seriesTimerIndicator timerIndicator-inactive indicatorIcon"></i>':'<i class="'+classNamePrefix+'md-icon timerIndicator indicatorIcon"></i>'},getMissingIndicator:function(item,className){if("Episode"===item.Type&&"Virtual"===item.LocationType&&item.PremiereDate)try{return className&&(className+=" "),Date.parse(item.PremiereDate)>Date.now()?'<div class="'+className+'unairedIndicator">Unaired</div>':'<div class="'+className+'missingIndicator">Missing</div>'}catch(err){}return""}}});
|
||||
Reference in New Issue
Block a user