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

support individual library refreshing

This commit is contained in:
Luke Pulverenti 2017-06-23 12:03:11 -04:00
parent b2b7f8d2d3
commit 5a82c4b0ab
104 changed files with 435 additions and 275 deletions

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
.progressring{position:relative;width:2.6em;height:2.6em;float:left;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-sizing:border-box;box-sizing:border-box}.progressring-bg{width:100%;height:100%;-webkit-border-radius:50%;border-radius:50%;border:.25em solid rgba(0,0,0,1);-webkit-box-sizing:border-box;box-sizing:border-box;background:rgba(0,0,0,.9);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}.spiner-holder-one,.spiner-holder-two{position:absolute;top:0;left:0;overflow:hidden;background:0 0;-webkit-box-sizing:border-box}.progressring-text{text-align:center;color:#ddd;font-size:90%}.spiner-holder-one{width:50%;height:50%;box-sizing:border-box}.spiner-holder-two{width:100%;height:100%;box-sizing:border-box}.progressring-spiner{width:200%;height:200%;-webkit-border-radius:50%;border-radius:50%;border:.25em solid #52B54B;-webkit-box-sizing:border-box;box-sizing:border-box}.animate-0-25-a{-webkit-transform:rotate(90deg);transform:rotate(90deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transition:-webkit-transform 180ms ease-out;-o-transition:transform 180ms ease-out;transition:transform 180ms ease-out}.animate-0-25-b,.animate-25-50-a{-webkit-transition:-webkit-transform 180ms ease-out;-o-transition:transform 180ms ease-out}.animate-0-25-b{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;transition:transform 180ms ease-out}.animate-25-50-a{-webkit-transform:rotate(180deg);transform:rotate(180deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;transition:transform 180ms ease-out}.animate-25-50-b,.animate-50-75-a{-webkit-transition:-webkit-transform 180ms ease-out;-o-transition:transform 180ms ease-out}.animate-25-50-b{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;transition:transform 180ms ease-out}.animate-50-75-a{-webkit-transform:rotate(270deg);transform:rotate(270deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;transition:transform 180ms ease-out}.animate-50-75-b,.animate-75-100-a{-webkit-transition:-webkit-transform 180ms ease-out;-o-transition:transform 180ms ease-out}.animate-50-75-b{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;transition:transform 180ms ease-out}.animate-75-100-a{-webkit-transform:rotate(0);transform:rotate(0);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;transition:transform 180ms ease-out}.animate-75-100-b{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transition:-webkit-transform 180ms ease-out;-o-transition:transform 180ms ease-out;transition:transform 180ms ease-out}

View file

@ -0,0 +1 @@
define(["emby-progressring","dom","serverNotifications","events","registerElement"],function(EmbyProgressRing,dom,serverNotifications,events){"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 onRefreshProgress(e,apiClient,info){var indicator=this;if(indicator.itemId||(indicator.itemId=dom.parentWithAttribute(indicator,"data-id").getAttribute("data-id")),info.ItemId===indicator.itemId){var progress=parseFloat(info.Progress);progress&&progress<100?this.classList.remove("hide"):this.classList.add("hide"),this.setProgress(progress)}}var EmbyItemRefreshIndicatorPrototype=Object.create(EmbyProgressRing);EmbyItemRefreshIndicatorPrototype.createdCallback=function(){EmbyProgressRing.createdCallback&&EmbyProgressRing.createdCallback.call(this),addNotificationEvent(this,"RefreshProgress",onRefreshProgress)},EmbyItemRefreshIndicatorPrototype.attachedCallback=function(){EmbyProgressRing.attachedCallback&&EmbyProgressRing.attachedCallback.call(this)},EmbyItemRefreshIndicatorPrototype.detachedCallback=function(){EmbyProgressRing.detachedCallback&&EmbyProgressRing.detachedCallback.call(this),removeNotificationEvent(this,"RefreshProgress"),this.itemId=null},document.registerElement("emby-itemrefreshindicator",{prototype:EmbyItemRefreshIndicatorPrototype,extends:"div"})});

View file

@ -0,0 +1 @@
.progressring{position:relative;width:2.6em;height:2.6em;float:left;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-sizing:border-box;box-sizing:border-box}.progressring-bg{width:100%;height:100%;-webkit-border-radius:50%;border-radius:50%;border:.25em solid rgba(0,0,0,1);-webkit-box-sizing:border-box;box-sizing:border-box;background:rgba(0,0,0,.9);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}.spiner-holder-one,.spiner-holder-two{position:absolute;top:0;left:0;overflow:hidden;background:0 0;-webkit-box-sizing:border-box}.progressring-text{text-align:center;color:#ddd;font-size:90%}.spiner-holder-one{width:50%;height:50%;box-sizing:border-box}.spiner-holder-two{width:100%;height:100%;box-sizing:border-box}.progressring-spiner{width:200%;height:200%;-webkit-border-radius:50%;border-radius:50%;border:.25em solid #52B54B;-webkit-box-sizing:border-box;box-sizing:border-box}.animate-0-25-a{-webkit-transform:rotate(90deg);transform:rotate(90deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transition:-webkit-transform 180ms ease-out;-o-transition:transform 180ms ease-out;transition:transform 180ms ease-out}.animate-0-25-b,.animate-25-50-a{-webkit-transition:-webkit-transform 180ms ease-out;-o-transition:transform 180ms ease-out}.animate-0-25-b{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;transition:transform 180ms ease-out}.animate-25-50-a{-webkit-transform:rotate(180deg);transform:rotate(180deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;transition:transform 180ms ease-out}.animate-25-50-b,.animate-50-75-a{-webkit-transition:-webkit-transform 180ms ease-out;-o-transition:transform 180ms ease-out}.animate-25-50-b{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;transition:transform 180ms ease-out}.animate-50-75-a{-webkit-transform:rotate(270deg);transform:rotate(270deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;transition:transform 180ms ease-out}.animate-50-75-b,.animate-75-100-a{-webkit-transition:-webkit-transform 180ms ease-out;-o-transition:transform 180ms ease-out}.animate-50-75-b{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;transition:transform 180ms ease-out}.animate-75-100-a{-webkit-transform:rotate(0);transform:rotate(0);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;transition:transform 180ms ease-out}.animate-75-100-b{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transition:-webkit-transform 180ms ease-out;-o-transition:transform 180ms ease-out;transition:transform 180ms ease-out}

View file

@ -0,0 +1 @@
define(["require","css!./emby-progressring","registerElement"],function(require){"use strict";var EmbyProgressRing=Object.create(HTMLDivElement.prototype);return EmbyProgressRing.createdCallback=function(){this.classList.add("progressring");var instance=this;require(["text!./emby-progressring.template.html"],function(template){instance.innerHTML=template,instance.setProgress(parseFloat(instance.getAttribute("data-progress")||"0"))})},EmbyProgressRing.setProgress=function(progress){progress=Math.floor(progress);var angle;progress<25?(angle=-90+progress/100*360,this.querySelector(".animate-0-25-b").style.transform="rotate("+angle+"deg)"):progress>=25&&progress<50?(angle=-90+(progress-25)/100*360,this.querySelector(".animate-0-25-b").style.transform="rotate(0deg)",this.querySelector(".animate-25-50-b").style.transform="rotate("+angle+"deg)"):progress>=50&&progress<75?(angle=-90+(progress-50)/100*360,this.querySelector(".animate-0-25-b").style.transform="rotate(0deg)",this.querySelector(".animate-25-50-b").style.transform="rotate(0deg)",this.querySelector(".animate-50-75-b").style.transform="rotate("+angle+"deg)"):progress>=75&&progress<=100&&(angle=-90+(progress-75)/100*360,this.querySelector(".animate-50-75-b").style.transform="rotate(0deg)",this.querySelector(".animate-25-50-b").style.transform="rotate(0deg)",this.querySelector(".animate-0-25-b").style.transform="rotate(0deg)",this.querySelector(".animate-75-100-b").style.transform="rotate("+angle+"deg)"),this.querySelector(".progressring-text").innerHTML=progress+"%"},EmbyProgressRing.attachedCallback=function(){},EmbyProgressRing.detachedCallback=function(){var observer=this.observer;observer&&(observer.disconnect(),this.observer=null)},document.registerElement("emby-progressring",{prototype:EmbyProgressRing,extends:"div"}),EmbyProgressRing});

View file

@ -0,0 +1,23 @@
<div class="progressring-bg">
<div class="progressring-text"></div>
</div>
<div class="spiner-holder-one animate-0-25-a">
<div class="spiner-holder-two animate-0-25-b">
<div class="progressring-spiner"></div>
</div>
</div>
<div class="spiner-holder-one animate-25-50-a">
<div class="spiner-holder-two animate-25-50-b">
<div class="progressring-spiner"></div>
</div>
</div>
<div class="spiner-holder-one animate-50-75-a">
<div class="spiner-holder-two animate-50-75-b">
<div class="progressring-spiner"></div>
</div>
</div>
<div class="spiner-holder-one animate-75-100-a">
<div class="spiner-holder-two animate-75-100-b">
<div class="progressring-spiner"></div>
</div>
</div>

View file

@ -1 +1 @@
.countIndicator,.indicator{-webkit-border-radius:500px;font-weight:500}.itemProgressBar{background:rgba(0,0,0,.5);position:relative;height:.35em}.itemProgressBarForeground{position:absolute;top:0;left:0;bottom:0;background-color:#52B54B}.indicator{border-radius:500px;display:-webkit-flex;display:-webkit-box;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;width:2em;height:2em}.countIndicator,.playedIndicator{background:rgba(82,181,75,1);display:-webkit-flex;display:-webkit-box;-webkit-box-align:center}.timerIndicator{color:#CB272A}.timerIndicator-inactive{color:#888}.indicator+.indicator{margin-left:.25em}.indicatorIcon{width:auto;height:auto;font-size:1.6em}.countIndicator{border-radius:500px;display:flex;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;color:#fff}.playedIndicator,.videoIndicator{-webkit-border-radius:500px;color:#fff}.playedIndicator{border-radius:500px;display:flex;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.videoIndicator{background:#444;border-radius:500px;display:-webkit-flex;display:-webkit-box;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.syncIndicator{color:#fff;-webkit-border-radius:500px;border-radius:500px}.emptySyncIndicator{background:#ccc;color:#333}.fullSyncIndicator{background:rgba(82,181,75,1)}
.countIndicator,.indicator{-webkit-border-radius:500px;font-weight:500}.itemProgressBar{background:rgba(0,0,0,.5);position:relative;height:.35em}.itemProgressBarForeground{position:absolute;top:0;left:0;bottom:0;background-color:#52B54B}.indicator{border-radius:500px;display:-webkit-flex;display:-webkit-box;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;width:2em;height:2em}.countIndicator,.iconIndicator{background:rgba(82,181,75,1);display:-webkit-flex;display:-webkit-box;-webkit-box-align:center}.timerIndicator{color:#CB272A}.timerIndicator-inactive{color:#888}.indicator+.indicator{margin-left:.25em}.indicatorIcon{width:auto;height:auto;font-size:1.6em}.countIndicator{border-radius:500px;display:flex;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;color:#fff}.iconIndicator,.videoIndicator{-webkit-border-radius:500px;color:#fff}.iconIndicator{border-radius:500px;display:flex;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.videoIndicator{background:#444;border-radius:500px;display:-webkit-flex;display:-webkit-box;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.syncIndicator{color:#fff;-webkit-border-radius:500px;border-radius:500px}.emptySyncIndicator{background:#ccc;color:#333}.fullSyncIndicator{background:rgba(82,181,75,1)}

View file

@ -1 +1 @@
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">&#xE5CA;</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">&#xE062;</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">&#xE062;</i>':'<i class="md-icon timerIndicator timerIndicator-inactive indicatorIcon">&#xE062;</i>':'<i class="md-icon timerIndicator indicatorIcon">&#xE061;</i>'}function getSyncIndicator(item){return 100===item.SyncPercent?'<div class="syncIndicator indicator fullSyncIndicator"><i class="md-icon indicatorIcon">&#xE2C4;</i></div>':null!=item.SyncPercent?'<div class="syncIndicator indicator emptySyncIndicator"><i class="md-icon indicatorIcon">&#xE2C4;</i></div>':""}function getVideoIndicator(item){return"Video"===item.MediaType?'<div class="indicator videoIndicator"><i class="md-icon indicatorIcon">&#xE04B;</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 iconIndicator indicator"><i class="md-icon indicatorIcon">&#xE5CA;</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">&#xE062;</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">&#xE062;</i>':'<i class="md-icon timerIndicator timerIndicator-inactive indicatorIcon">&#xE062;</i>':'<i class="md-icon timerIndicator indicatorIcon">&#xE061;</i>'}function getSyncIndicator(item){return 100===item.SyncPercent?'<div class="syncIndicator indicator fullSyncIndicator"><i class="md-icon indicatorIcon">&#xE2C4;</i></div>':null!=item.SyncPercent?'<div class="syncIndicator indicator emptySyncIndicator"><i class="md-icon indicatorIcon">&#xE2C4;</i></div>':""}function getVideoIndicator(item){return"Video"===item.MediaType?'<div class="indicator videoIndicator"><i class="md-icon indicatorIcon">&#xE04B;</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}});

View file

@ -1 +1 @@
define(["shell","dialogHelper","loading","layoutManager","connectionManager","embyRouter","globalize","emby-input","emby-checkbox","paper-icon-button-light","emby-select","material-icons","css!./../formdialog","emby-button"],function(shell,dialogHelper,loading,layoutManager,connectionManager,embyRouter,globalize){"use strict";function parentWithClass(elem,className){for(;!elem.classList||!elem.classList.contains(className);)if(elem=elem.parentNode,!elem)return null;return elem}function getEditorHtml(){var html="";return html+='<div class="formDialogContent smoothScrollY" style="padding-top:2em;">',html+='<div class="dialogContentInner dialog-content-centered">',html+='<form style="margin:auto;">',html+='<div class="fldSelectPlaylist selectContainer">',html+='<select is="emby-select" id="selectMetadataRefreshMode" label="'+globalize.translate("sharedcomponents#LabelRefreshMode")+'">',html+='<option value="missing">'+globalize.translate("sharedcomponents#SearchForMissingMetadata")+"</option>",html+='<option value="all" selected>'+globalize.translate("sharedcomponents#ReplaceAllMetadata")+"</option>",html+="</select>",html+="</div>",html+='<label class="checkboxContainer">',html+='<input type="checkbox" is="emby-checkbox" class="chkReplaceImages" />',html+="<span>"+globalize.translate("sharedcomponents#ReplaceExistingImages")+"</span>",html+="</label>",html+='<div class="fieldDescription">',html+=globalize.translate("sharedcomponents#RefreshDialogHelp"),html+="</div>",html+='<input type="hidden" class="fldSelectedItemIds" />',html+="<br />",html+='<div class="formDialogFooter">',html+='<button is="emby-button" type="submit" class="raised btnSubmit block formDialogFooterItem button-submit">'+globalize.translate("sharedcomponents#Refresh")+"</button>",html+="</div>",html+="</form>",html+="</div>",html+="</div>"}function centerFocus(elem,horiz,on){require(["scrollHelper"],function(scrollHelper){var fn=on?"on":"off";scrollHelper.centerFocus[fn](elem,horiz)})}function onSubmit(e){loading.show();var instance=this,dlg=parentWithClass(e.target,"dialog"),options=instance.options,apiClient=connectionManager.getApiClient(options.serverId),replaceAllImages=dlg.querySelector(".chkReplaceImages").checked,replaceAllMetadata="all"===dlg.querySelector("#selectMetadataRefreshMode").value;return options.itemIds.forEach(function(itemId){apiClient.refreshItem(itemId,{Recursive:!0,ImageRefreshMode:"FullRefresh",MetadataRefreshMode:"FullRefresh",ReplaceAllImages:replaceAllImages,ReplaceAllMetadata:replaceAllMetadata})}),dialogHelper.close(dlg),require(["toast"],function(toast){toast(globalize.translate("sharedcomponents#RefreshQueued"))}),loading.hide(),e.preventDefault(),!1}function RefreshDialog(options){this.options=options}return RefreshDialog.prototype.show=function(){var dialogOptions={removeOnClose:!0,scrollY:!1};layoutManager.tv?dialogOptions.size="fullscreen":dialogOptions.size="small";var dlg=dialogHelper.createDialog(dialogOptions);dlg.classList.add("formDialog");var html="",title=globalize.translate("sharedcomponents#RefreshMetadata");return html+='<div class="formDialogHeader">',html+='<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button>',html+='<h3 class="formDialogHeaderTitle">',html+=title,html+="</h3>",html+="</div>",html+=getEditorHtml(),dlg.innerHTML=html,dlg.querySelector("form").addEventListener("submit",onSubmit.bind(this)),dlg.querySelector(".btnCancel").addEventListener("click",function(){dialogHelper.close(dlg)}),layoutManager.tv&&centerFocus(dlg.querySelector(".formDialogContent"),!1,!0),new Promise(function(resolve,reject){layoutManager.tv&&centerFocus(dlg.querySelector(".formDialogContent"),!1,!1),dlg.addEventListener("close",resolve),dialogHelper.open(dlg)})},RefreshDialog});
define(["shell","dialogHelper","loading","layoutManager","connectionManager","embyRouter","globalize","emby-input","emby-checkbox","paper-icon-button-light","emby-select","material-icons","css!./../formdialog","emby-button"],function(shell,dialogHelper,loading,layoutManager,connectionManager,embyRouter,globalize){"use strict";function parentWithClass(elem,className){for(;!elem.classList||!elem.classList.contains(className);)if(elem=elem.parentNode,!elem)return null;return elem}function getEditorHtml(){var html="";return html+='<div class="formDialogContent smoothScrollY" style="padding-top:2em;">',html+='<div class="dialogContentInner dialog-content-centered">',html+='<form style="margin:auto;">',html+='<div class="fldSelectPlaylist selectContainer">',html+='<select is="emby-select" id="selectMetadataRefreshMode" label="'+globalize.translate("sharedcomponents#LabelRefreshMode")+'">',html+='<option value="scan">'+globalize.translate("sharedcomponents#ScanForNewAndUpdatedFiles")+"</option>",html+='<option value="missing">'+globalize.translate("sharedcomponents#SearchForMissingMetadata")+"</option>",html+='<option value="all" selected>'+globalize.translate("sharedcomponents#ReplaceAllMetadata")+"</option>",html+="</select>",html+="</div>",html+='<label class="checkboxContainer hide fldReplaceExistingImages">',html+='<input type="checkbox" is="emby-checkbox" class="chkReplaceImages" />',html+="<span>"+globalize.translate("sharedcomponents#ReplaceExistingImages")+"</span>",html+="</label>",html+='<div class="fieldDescription">',html+=globalize.translate("sharedcomponents#RefreshDialogHelp"),html+="</div>",html+='<input type="hidden" class="fldSelectedItemIds" />',html+="<br />",html+='<div class="formDialogFooter">',html+='<button is="emby-button" type="submit" class="raised btnSubmit block formDialogFooterItem button-submit">'+globalize.translate("sharedcomponents#Refresh")+"</button>",html+="</div>",html+="</form>",html+="</div>",html+="</div>"}function centerFocus(elem,horiz,on){require(["scrollHelper"],function(scrollHelper){var fn=on?"on":"off";scrollHelper.centerFocus[fn](elem,horiz)})}function onSubmit(e){loading.show();var instance=this,dlg=parentWithClass(e.target,"dialog"),options=instance.options,apiClient=connectionManager.getApiClient(options.serverId),replaceAllMetadata="all"===dlg.querySelector("#selectMetadataRefreshMode").value,mode="scan"===dlg.querySelector("#selectMetadataRefreshMode").value?"Default":"FullRefresh",replaceAllImages="FullRefresh"===mode&&dlg.querySelector(".chkReplaceImages").checked;return options.itemIds.forEach(function(itemId){apiClient.refreshItem(itemId,{Recursive:!0,ImageRefreshMode:mode,MetadataRefreshMode:mode,ReplaceAllImages:replaceAllImages,ReplaceAllMetadata:replaceAllMetadata})}),dialogHelper.close(dlg),require(["toast"],function(toast){toast(globalize.translate("sharedcomponents#RefreshQueued"))}),loading.hide(),e.preventDefault(),!1}function RefreshDialog(options){this.options=options}return RefreshDialog.prototype.show=function(){var dialogOptions={removeOnClose:!0,scrollY:!1};layoutManager.tv?dialogOptions.size="fullscreen":dialogOptions.size="small";var dlg=dialogHelper.createDialog(dialogOptions);dlg.classList.add("formDialog");var html="",title=globalize.translate("sharedcomponents#RefreshMetadata");return html+='<div class="formDialogHeader">',html+='<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button>',html+='<h3 class="formDialogHeaderTitle">',html+=title,html+="</h3>",html+="</div>",html+=getEditorHtml(),dlg.innerHTML=html,dlg.querySelector("form").addEventListener("submit",onSubmit.bind(this)),dlg.querySelector("#selectMetadataRefreshMode").addEventListener("change",function(){"scan"===this.value?dlg.querySelector(".fldReplaceExistingImages").classList.add("hide"):dlg.querySelector(".fldReplaceExistingImages").classList.remove("hide")}),this.options.mode&&(dlg.querySelector("#selectMetadataRefreshMode").value=this.options.mode),dlg.querySelector("#selectMetadataRefreshMode").dispatchEvent(new CustomEvent("change")),dlg.querySelector(".btnCancel").addEventListener("click",function(){dialogHelper.close(dlg)}),layoutManager.tv&&centerFocus(dlg.querySelector(".formDialogContent"),!1,!0),new Promise(function(resolve,reject){layoutManager.tv&&centerFocus(dlg.querySelector(".formDialogContent"),!1,!1),dlg.addEventListener("close",resolve),dialogHelper.open(dlg)})},RefreshDialog});

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -1,29 +1,29 @@
{
"MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.",
"MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.",
"MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.",
"MessageUnlockAppWithPurchaseOrSupporter": "Activa aquesta funcionalitat amb un \u00fanic pagament, o amb una subscripci\u00f3 activa d'Emby Premiere.",
"MessageUnlockAppWithSupporter": "Activa aquesta funcionalitat amb una subscripci\u00f3 activa d'Emby Premiere.",
"MessageToValidateSupporter": "Si tens una subscripci\u00f3 activa d'Emby Premiere assegura't que l'has configurat al teu tauler de control de l'Emby Server, on pots accedir clicant a l'opci\u00f3 d'Emby Premiere al men\u00fa principal.",
"ValueSpecialEpisodeName": "Especial - {0}",
"Share": "Comparteix",
"Add": "Afegeix",
"ServerUpdateNeeded": "El Servidor Emby necessita ser actualitzat. Per descarregar la darrera versi\u00f3, si et plau, visita {0}",
"LiveTvGuideRequiresUnlock": "The Live TV Guide is currently limited to {0} channels. Click the unlock button to learn how to enjoy the full experience.",
"LiveTvGuideRequiresUnlock": "La gu\u00eda de TV en directe est\u00e0 actualment limitada a {0} canals. Fes clic al bot\u00f3 d'activar per descobrir com gaudir d'una experi\u00e8ncia completa.",
"AttributeNew": "Nou",
"Premiere": "Premi\u00e8re",
"Live": "Live",
"Live": "Directe",
"Repeat": "Repeteix",
"TrackCount": "{0} pistes",
"ItemCount": "{0} \u00edtems",
"OriginalAirDateValue": "Original air date: {0}",
"EndsAtValue": "Ends at {0}",
"OriginalAirDateValue": "Data original d'emissi\u00f3: {0}",
"EndsAtValue": "Acaba a {0}",
"HeaderSelectDate": "Seleccionar Data",
"ButtonOk": "D'acord",
"ButtonCancel": "Cancel\u00b7la",
"ButtonGotIt": "Entesos",
"ButtonRestart": "Reiniciar",
"RecordingCancelled": "Enregistrament cancel\u00b7lat.",
"SeriesCancelled": "Series cancelled.",
"RecordingScheduled": "Recording scheduled.",
"SeriesRecordingScheduled": "Series recording scheduled.",
"SeriesCancelled": "S\u00e8rie cancel\u00b7lada.",
"RecordingScheduled": "Enregistrament programat.",
"SeriesRecordingScheduled": "Enregistrament de la s\u00e8rie programat.",
"HeaderNewRecording": "Nou Enregistrament",
"Sunday": "Diumenge",
"Monday": "Dilluns",
@ -33,14 +33,14 @@
"Friday": "Divendres",
"Saturday": "Dissabte",
"Days": "Dies",
"RecordSeries": "Record series",
"HeaderCinemaMode": "Cinema Mode",
"HeaderCloudSync": "Cloud Sync",
"HeaderDownloadedMedia": "Downloaded Media",
"Downloads": "Downloads",
"HeaderOfflineDownloads": "Offline Media",
"HeaderOfflineDownloadsDescription": "Download media to your devices for easy offline use.",
"CloudSyncFeatureDescription": "Sync your media to the cloud for easy backup, archiving, and converting.",
"RecordSeries": "Enregistra la s\u00e8rie",
"HeaderCinemaMode": "Mode Cinema",
"HeaderCloudSync": "Sincronitzar amb el N\u00favol",
"HeaderDownloadedMedia": "Mitjans Descarregats",
"Downloads": "Desc\u00e0rregues",
"HeaderOfflineDownloads": "Mitjans Sense Connexi\u00f3",
"HeaderOfflineDownloadsDescription": "Descarrega mitjans als teus dispositius per a un f\u00e0cil \u00fas fora de l\u00ednia.",
"CloudSyncFeatureDescription": "Sincronitza els teus mitjans amb el n\u00favol per a copiar, arxivar i convertir f\u00e0cilment.",
"DvrFeatureDescription": "Schedule individual Live TV recordings, series recordings, and more with Emby DVR.",
"ButtonCancelSyncJob": "Cancel download",
"CancelSyncJobConfirmation": "Cancelling the download job will remove downloaded media from the device during the next background sync process. Are you sure you wish to proceed?",
@ -270,7 +270,7 @@
"LearnMore": "Learn more",
"LabelProfile": "Perfil:",
"LabelBitrateMbps": "Bitrate (Mbps):",
"SyncUnwatchedVideosOnly": "Sincronitza nom\u00e9s els v\u00eddeos no vists",
"SyncUnwatchedVideosOnly": "Descarrega nom\u00e9s els v\u00eddeos no vists",
"SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be downloaded, and videos will be removed from the device as they are watched.",
"AutomaticallySyncNewContent": "Automatically download new content",
"AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically downloaded to the device.",
@ -286,8 +286,8 @@
"ShowIndicatorsFor": "Show indicators for:",
"NewEpisodes": "New episodes",
"Episodes": "Episodes",
"HDPrograms": "HD programs",
"Programs": "Programs",
"HDPrograms": "Programes HD",
"Programs": "Programes",
"LiveBroadcasts": "Live broadcasts",
"Premieres": "Premieres",
"RepeatEpisodes": "Repeat episodes",
@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Zeitplan",
"Recordings": "Aufnahmen",
"MarkWatched": "Als gesehen markieren"
"MarkWatched": "Als gesehen markieren",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "TV en Vivo",
"Schedule": "Programacion",
"Recordings": "Grabaciones",
"MarkWatched": "Marcar como Visto"
"MarkWatched": "Marcar como Visto",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "TV en Direct",
"Schedule": "Programmer",
"Recordings": "Enregistrements",
"MarkWatched": "Marquer comme vu"
"MarkWatched": "Marquer comme vu",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Diretta TV",
"Schedule": "Programmazione",
"Recordings": "Registrazioni",
"MarkWatched": "Segna come visto"
"MarkWatched": "Segna come visto",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "\u042d\u0444\u0438\u0440",
"Schedule": "\u0406\u0441 \u043a\u0435\u0441\u0442\u0435\u0441\u0456",
"Recordings": "\u0416\u0430\u0437\u0431\u0430\u043b\u0430\u0440",
"MarkWatched": "\u049a\u0430\u0440\u0430\u043f \u0448\u044b\u049b\u049b\u0430\u043d"
"MarkWatched": "\u049a\u0430\u0440\u0430\u043f \u0448\u044b\u049b\u049b\u0430\u043d",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -57,8 +57,8 @@
"Save": "Lagre",
"Edit": "Rediger",
"Download": "Nedlasting",
"Downloaded": "Downloaded",
"Downloading": "Downloading",
"Downloaded": "Nedlastet",
"Downloading": "Laster ned",
"Advanced": "Avansert",
"Delete": "Slett",
"HeaderDeleteItem": "Slett element",
@ -356,7 +356,7 @@
"OneChannel": "En kanal",
"ConfirmRemoveDownload": "Fjern nedlastet?",
"RemoveDownload": "Fjern nedlastet",
"KeepDownload": "Keep download",
"KeepDownload": "Behold nedlasting",
"AddedOnValue": "Lagt til {0}",
"RemovingFromDevice": "Fjerner fra enheten",
"KeepOnDevice": "Behold p\u00e5 enhet",
@ -440,5 +440,6 @@
"LiveTV": "Direkte TV",
"Schedule": "Planlegg",
"Recordings": "Opptak",
"MarkWatched": "Mark watched"
"MarkWatched": "Marker som sett",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "TV ao Vivo",
"Schedule": "Agendar",
"Recordings": "Grava\u00e7\u00f5es",
"MarkWatched": "Marcar como assisitido"
"MarkWatched": "Marcar como assisitido",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "\u042d\u0444\u0438\u0440",
"Schedule": "\u0420\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435",
"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"
"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": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}

View file

@ -440,5 +440,6 @@
"LiveTV": "Live TV",
"Schedule": "Schedule",
"Recordings": "Recordings",
"MarkWatched": "Mark watched"
"MarkWatched": "Mark watched",
"ScanForNewAndUpdatedFiles": "Scan for new and updated files"
}