emby 4.8
This commit is contained in:
1
components/accessschedule/accessschedule.js
Normal file
1
components/accessschedule/accessschedule.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../../modules/common/globalize.js","./../../modules/dialoghelper/dialoghelper.js","./../../modules/common/datetime.js","./../../modules/emby-elements/emby-button/paper-icon-button-light.js","./../../modules/emby-elements/emby-select/emby-select.js"],function(_exports,_globalize,_dialoghelper,_datetime,_paperIconButtonLight,_embySelect){function getDisplayTime(hours){var minutes=0,pct=hours%1;return pct&&(minutes=parseInt(60*pct)),_datetime.default.getDisplayTime(new Date(2e3,1,1,hours,minutes,0,0))}function submitSchedule(context,options){var updatedSchedule={DayOfWeek:context.querySelector("#selectDay").value,StartHour:context.querySelector("#selectStart").value,EndHour:context.querySelector("#selectEnd").value};parseFloat(updatedSchedule.StartHour)>=parseFloat(updatedSchedule.EndHour)?function(options){Emby.importModule("./modules/common/dialogs/alert.js").then(function(alert){return alert(options)})}(_globalize.default.translate("ErrorMessageStartHourGreaterThanEnd")):(context.submitted=!0,options.schedule=Object.assign(options.schedule,updatedSchedule),_dialoghelper.default.close(context))}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,require(["formDialogStyle"]),_exports.default={show:function(options){return new Promise(function(resolve,reject){var xhr=new XMLHttpRequest;xhr.open("GET","components/accessschedule/accessschedule.template.html",!0),xhr.onload=function(e){var template=this.response,dlg=_dialoghelper.default.createDialog({removeOnClose:!0,size:"small"}),html=(dlg.classList.add("formDialog"),"");html+=_globalize.default.translateDocument(template),dlg.innerHTML=html,function(context){for(var html="",i=0;i<24;i++)html+='<option value="'+i+'">'+getDisplayTime(i)+"</option>";html+='<option value="24">'+getDisplayTime(0)+"</option>",context.querySelector("#selectStart").innerHTML=html,context.querySelector("#selectEnd").innerHTML=html}(dlg),template=dlg,html=options.schedule,template.querySelector("#selectDay").value=html.DayOfWeek||"Sunday",template.querySelector("#selectStart").value=html.StartHour||0,template.querySelector("#selectEnd").value=html.EndHour||0,_dialoghelper.default.open(dlg),dlg.addEventListener("close",function(){dlg.submitted?resolve(options.schedule):reject()}),dlg.querySelector(".btnCancel").addEventListener("click",function(e){_dialoghelper.default.close(dlg)}),dlg.querySelector("form").addEventListener("submit",function(e){return submitSchedule(dlg,options),e.preventDefault(),!1})},xhr.send()})}}});
|
||||
36
components/accessschedule/accessschedule.template.html
Normal file
36
components/accessschedule/accessschedule.template.html
Normal file
@@ -0,0 +1,36 @@
|
||||
<div class="formDialogHeader">
|
||||
<button is="paper-icon-button-light" class="btnCancel hide-mouse-idle-tv" tabindex="-1"><i class="md-icon autortl"></i></button>
|
||||
<h3 class="formDialogHeaderTitle">
|
||||
${HeaderAccessSchedule}
|
||||
</h3>
|
||||
</div>
|
||||
<div class="formDialogContent scrollY">
|
||||
<div class="dialogContentInner dialog-content-centered padded-left padded-right">
|
||||
<form class="scheduleForm" style="margin:auto;">
|
||||
|
||||
<div class="selectContainer">
|
||||
<select is="emby-select" id="selectDay" label="${LabelAccessDay}">
|
||||
<option value="Sunday">Sunday</option>
|
||||
<option value="Monday">Monday</option>
|
||||
<option value="Tuesday">Tuesday</option>
|
||||
<option value="Wednesday">Wednesday</option>
|
||||
<option value="Thursday">Thursday</option>
|
||||
<option value="Friday">Friday</option>
|
||||
<option value="Saturday">Saturday</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="selectContainer">
|
||||
<select is="emby-select" class="selectHour" id="selectStart" label="${LabelAccessStart}"></select>
|
||||
</div>
|
||||
<div class="selectContainer">
|
||||
<select is="emby-select" class="selectHour" id="selectEnd" label="${LabelAccessEnd}"></select>
|
||||
</div>
|
||||
|
||||
<div class="formDialogFooter">
|
||||
<button is="emby-button" type="submit" class="raised button-submit block formDialogFooterItem">
|
||||
<span>${ButtonAdd}</span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
1
components/activitylog.js
Normal file
1
components/activitylog.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../modules/listview/listview.js","./../modules/common/input/api.js","./../modules/emby-apiclient/events.js","./../modules/emby-apiclient/connectionmanager.js","./../modules/emby-elements/emby-button/emby-button.js"],function(_exports,_listview,_api,_events,_connectionmanager,_embyButton){function getActivityListViewOptions(items){var options={moreButton:!1,action:"none",enableDefaultIcon:!0,overviewButton:!0,roundImage:!0,multiSelect:!1,contextMenu:!1,draggable:!1,fields:["Name","ShortOverview","Date"]};return _listview.default.setListOptions(items,options),{renderer:_listview.default,options:options,virtualScrollLayout:"vertical-list"}}function ActivityLog(options){var element=(this.options=options).element,options=(element.fetchData=function(){var limit=parseInt(this.getAttribute("data-activitylimit")||"7"),minDate=new Date,hasUserId=(minDate.setTime(minDate.getTime()-6048e5),"false"!==this.getAttribute("data-useractivity"));return ApiClient.getActivityLog({StartIndex:0,Limit:limit,MinDate:minDate.toISOString(),hasUserId:hasUserId})}.bind(element),element.getListOptions=getActivityListViewOptions,element.parentContainer=element.closest(".activityContainer"),element.setAttribute("data-alwaysshowseeall","true"),_connectionmanager.default.getApiClient(options.serverId)),onUpdate=function(e,apiClient,data){var options=this.options;options&&options.serverId===apiClient.serverId()&&options.element.notifyRefreshNeeded()}.bind(this);this.updateFn=onUpdate,_events.default.on(_api.default,"ActivityLogEntry",onUpdate),options.startMessageListener("ActivityLogEntry","0,1500"),element.resume({refresh:!0})}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,ActivityLog.prototype.pause=function(){},ActivityLog.prototype.resume=function(options){},ActivityLog.prototype.destroy=function(){var options=this.options,options=(options&&_connectionmanager.default.getApiClient(options.serverId).stopMessageListener("ActivityLogEntry"),this.updateFn);options&&_events.default.off(_api.default,"ActivityLogEntry",options),this.items=null,this.options=null},_exports.default=ActivityLog});
|
||||
1
components/imageoptionseditor/imageoptionseditor.js
Normal file
1
components/imageoptionseditor/imageoptionseditor.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../../modules/common/globalize.js","./../../modules/dialoghelper/dialoghelper.js","./../../modules/emby-elements/emby-checkbox/emby-checkbox.js","./../../modules/emby-elements/emby-button/emby-button.js","./../../modules/emby-elements/emby-button/paper-icon-button-light.js","./../../modules/emby-elements/emby-select/emby-select.js","./../../modules/emby-elements/emby-input/emby-input.js"],function(_exports,_globalize,_dialoghelper,_embyCheckbox,_embyButton,_paperIconButtonLight,_embySelect,_embyInput){function findImageOptions(imageOptions,type){return imageOptions.filter(function(i){return i.Type===type})[0]}function getImageConfig(options,availableOptions,imageType){return findImageOptions(options.ImageOptions||[],imageType)||findImageOptions(availableOptions.DefaultImageOptions||[],imageType)||{Type:imageType,MinWidth:0,Limit:"Primary"===imageType?1:0}}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,_exports.default=function(){this.show=function(itemType,options,availableOptions){return new Promise(function(resolve,reject){var xhr=new XMLHttpRequest;xhr.open("GET","components/imageoptionseditor/imageoptionseditor.template.html",!0),xhr.onload=function(e){var template=this.response,dlg=_dialoghelper.default.createDialog({size:"medium-tall",removeOnClose:!0,scrollY:!1});dlg.classList.add("formDialog"),dlg.innerHTML=_globalize.default.translateDocument(template),dlg.addEventListener("close",function(){!function(context,options){options.ImageOptions=Array.prototype.map.call(context.querySelectorAll(".imageType:not(.hide)"),function(c){return{Type:c.getAttribute("data-imagetype"),Limit:c.checked?1:0,MinWidth:0}}),options.ImageOptions.push({Type:"Backdrop",Limit:context.querySelector("#txtMaxBackdrops").value,MinWidth:context.querySelector("#txtMinBackdropDownloadWidth").value})}(dlg,options)}),function(context,options,availableOptions){var supportedImageTypes=availableOptions.SupportedImageTypes||[],elem=(elem=context.querySelector(".backdropFields"),-1!==supportedImageTypes.indexOf("Backdrop")?(elem.classList.remove("hide"),elem.querySelector("input").setAttribute("required","required")):(elem.classList.add("hide"),elem.querySelector("input").setAttribute("required",""),elem.querySelector("input").removeAttribute("required")),Array.prototype.forEach.call(context.querySelectorAll(".imageType"),function(i){var imageType=i.getAttribute("data-imagetype"),container=i.closest("LABEL");-1===supportedImageTypes.indexOf(imageType)?container.classList.add("hide"):container.classList.remove("hide"),getImageConfig(options,availableOptions,imageType).Limit?i.checked=!0:i.checked=!1}),getImageConfig(options,availableOptions,"Backdrop"));context.querySelector("#txtMaxBackdrops").value=elem.Limit,context.querySelector("#txtMinBackdropDownloadWidth").value=elem.MinWidth}(dlg,options,availableOptions),_dialoghelper.default.open(dlg).then(resolve,resolve),dlg.querySelector(".btnCancel").addEventListener("click",function(){_dialoghelper.default.close(dlg)})},xhr.send()})}}});
|
||||
@@ -0,0 +1,68 @@
|
||||
<div class="formDialogHeader">
|
||||
<button type="button" is="paper-icon-button-light" class="btnCancel hide-mouse-idle-tv" tabindex="-1"><i class="md-icon autortl"></i></button>
|
||||
<h3 class="formDialogHeaderTitle">
|
||||
${HeaderImageOptions}
|
||||
</h3>
|
||||
</div>
|
||||
|
||||
<div class="formDialogContent scrollY">
|
||||
<div class="dialogContentInner dialog-content-centered padded-left padded-right">
|
||||
<form style="0 auto;">
|
||||
|
||||
<div class="verticalSection">
|
||||
<h3 class="checkboxListLabel">${HeaderFetchImages}</h3>
|
||||
<div class="imageSelections checkboxList">
|
||||
|
||||
<label>
|
||||
<input type="checkbox" is="emby-checkbox" class="imageType" data-imagetype="Primary" />
|
||||
<span>${Primary}</span>
|
||||
</label>
|
||||
|
||||
<label>
|
||||
<input type="checkbox" is="emby-checkbox" class="imageType" data-imagetype="Art" />
|
||||
<span>${Art}</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" is="emby-checkbox" class="imageType" data-imagetype="Banner" />
|
||||
<span>${Banner}</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" is="emby-checkbox" class="imageType" data-imagetype="Box" />
|
||||
<span>${Box}</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" is="emby-checkbox" class="imageType" data-imagetype="BoxRear" />
|
||||
<span>${BoxRear}</span>
|
||||
</label>
|
||||
|
||||
<label>
|
||||
<input type="checkbox" is="emby-checkbox" class="imageType" data-imagetype="Disc" />
|
||||
<span>${Disc}</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" is="emby-checkbox" class="imageType" data-imagetype="Logo" />
|
||||
<span>${Logo}</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" is="emby-checkbox" class="imageType" data-imagetype="Menu" />
|
||||
<span>${Menu}</span>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" is="emby-checkbox" class="imageType" data-imagetype="Thumb" />
|
||||
<span>${Thumb}</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="backdropFields">
|
||||
<div class="inputContainer">
|
||||
<input is="emby-input" type="number" id="txtMaxBackdrops" pattern="[0-9]*" required="required" min="0" label="${LabelMaxBackdropsPerItem}" />
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<input is="emby-input" type="number" id="txtMinBackdropDownloadWidth" pattern="[0-9]*" required="required" min="0" label="${LabelMinBackdropDownloadWidth}" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
1
components/libraryoptionseditor/libraryoptionseditor.js
Normal file
1
components/libraryoptionseditor/libraryoptionseditor.js
Normal file
File diff suppressed because one or more lines are too long
@@ -0,0 +1,304 @@
|
||||
<style>
|
||||
.advancedHide {
|
||||
display: none !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<div class="musicFolderStructureSection hide">
|
||||
<div class="selectContainer">
|
||||
<select is="emby-select" class="selectMusicFolderStructure" label="${LabelMusicFolderStructure}">
|
||||
<option value="">${OtherOrUnstructured}</option>
|
||||
<option value="artist_album_track">${PerfectArtistAlbumTrack}</option>
|
||||
<option value="album_track">${PerfectAlbumTrack}</option>
|
||||
</select>
|
||||
<div class="fieldDescription">${LabelMusicFolderStructureHelp}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2>${HeaderLibrarySettings}</h2>
|
||||
<div class="selectContainer fldMetadataLanguage hide">
|
||||
<select is="emby-select" id="selectLanguage" label="${LabelMetadataDownloadLanguage}"></select>
|
||||
</div>
|
||||
<div class="selectContainer fldMetadataCountry hide">
|
||||
<select is="emby-select" id="selectCountry" label="${LabelCountry}"></select>
|
||||
</div>
|
||||
<div class="selectContainer fldImageLanguage hide">
|
||||
<select is="emby-select" id="selectImageLanguage" label="${LabelImageDownloadLanguage}"></select>
|
||||
</div>
|
||||
<div class="checkboxContainer checkboxContainer-withDescription chkEnablePhotosContainer">
|
||||
<label>
|
||||
<input type="checkbox" is="emby-checkbox" class="chkEnablePhotos" checked />
|
||||
<span>${EnablePhotos}</span>
|
||||
</label>
|
||||
<div class="fieldDescription checkboxFieldDescription">${EnablePhotosHelp}</div>
|
||||
</div>
|
||||
<div class="checkboxContainer checkboxContainer-withDescription fldImportPlaylists">
|
||||
<label>
|
||||
<input type="checkbox" is="emby-checkbox" class="chkImportPlaylists" checked />
|
||||
<span>${ImportPlaylists}</span>
|
||||
</label>
|
||||
<div class="fieldDescription checkboxFieldDescription">${ImportPlaylistsHelp}</div>
|
||||
</div>
|
||||
|
||||
<div class="inputContainer fldSeasonZeroDisplayName hide advanced">
|
||||
<input is="emby-input" type="text" id="txtSeasonZeroName" label="${LabelSpecialSeasonsDisplayName}" value="Specials" required />
|
||||
</div>
|
||||
<div class="checkboxContainer checkboxContainer-withDescription chkEnableEmbeddedTitlesContainer hide advanced">
|
||||
<label>
|
||||
<input is="emby-checkbox" type="checkbox" id="chkEnableEmbeddedTitles" />
|
||||
<span>${PreferEmbeddedTitlesOverFileNames}</span>
|
||||
</label>
|
||||
<div class="fieldDescription checkboxFieldDescription">${PreferEmbeddedTitlesOverFileNamesHelp}</div>
|
||||
</div>
|
||||
|
||||
<div class="checkboxContainer checkboxContainer-withDescription">
|
||||
<label>
|
||||
<input type="checkbox" is="emby-checkbox" class="chkEnableRealtimeMonitor" checked />
|
||||
<span>${LabelEnableRealtimeMonitor}</span>
|
||||
</label>
|
||||
<div class="fieldDescription checkboxFieldDescription">${LabelEnableRealtimeMonitorHelp}</div>
|
||||
</div>
|
||||
|
||||
<div class="checkboxContainer checkboxContainer-withDescription hide">
|
||||
<label>
|
||||
<input type="checkbox" is="emby-checkbox" class="chkEnableAudioResume" />
|
||||
<span>${LabelEnableRealtimeMonitor}</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="metadataReaders hide" style="margin-bottom: 2em;">
|
||||
</div>
|
||||
<div class="metadataFetchers hide">
|
||||
</div>
|
||||
|
||||
<div class="importCollectionsSection">
|
||||
<div class="checkboxContainer checkboxContainer-withDescription fldImportCollections hide">
|
||||
<label>
|
||||
<input type="checkbox" is="emby-checkbox" class="chkImportCollections" />
|
||||
<span>${LabelImportCollections}</span>
|
||||
</label>
|
||||
<div class="fieldDescription checkboxFieldDescription">${LabelImportCollectionsHelp}</div>
|
||||
</div>
|
||||
|
||||
<div class="selectContainer fldMinCollectionSize hide">
|
||||
<select is="emby-select" class="selectMinCollectionSize" label="${LabelMinCollectionSize}">
|
||||
<option value="1">1</option>
|
||||
<option value="2" selected>2</option>
|
||||
<option value="3">3</option>
|
||||
<option value="4">4</option>
|
||||
</select>
|
||||
<div class="fieldDescription">${MinCollectionSizeHelp}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="checkboxContainer checkboxContainer-withDescription fldAdult hide">
|
||||
<label>
|
||||
<input type="checkbox" is="emby-checkbox" class="chkAdult" />
|
||||
<span>${LabelAllowAdultMetadata}</span>
|
||||
</label>
|
||||
<div class="fieldDescription checkboxFieldDescription">${LabelAllowAdultMetadataHelp}</div>
|
||||
</div>
|
||||
|
||||
<div class="selectContainer fldAutoRefreshInterval hide" style="margin: 2em 0;">
|
||||
<select is="emby-select" id="selectAutoRefreshInterval" label="${LabelAutomaticallyRefreshInternetMetadataEvery}"></select>
|
||||
<div class="fieldDescription">${MessageEnablingOptionLongerScans}</div>
|
||||
</div>
|
||||
<div class="selectContainer fldPlaceholderMetadataRefreshInterval hide" style="margin: 2em 0;">
|
||||
<select is="emby-select" id="selectPlaceholderMetadataRefreshInterval" label="${LabelPlaceholderMetadataRefreshInternetMetadataEvery}"></select>
|
||||
<div class="fieldDescription">${MessageEnablingOptionLongerScans}</div>
|
||||
</div>
|
||||
<div class="metadataSavers hide" style="margin-bottom: 2em;">
|
||||
</div>
|
||||
<div class="imageFetchers hide">
|
||||
</div>
|
||||
<div class="checkboxContainer checkboxContainer-withDescription chkSaveLocalContainer hide">
|
||||
<label>
|
||||
<input is="emby-checkbox" type="checkbox" id="chkSaveLocal" />
|
||||
<span>${LabelSaveLocalMetadata}</span>
|
||||
</label>
|
||||
<div class="fieldDescription checkboxFieldDescription">${LabelSaveLocalMetadataHelp}</div>
|
||||
</div>
|
||||
|
||||
<div class="checkboxContainer checkboxContainer-withDescription fldSaveMetadataHidden hide advanced">
|
||||
<label>
|
||||
<input type="checkbox" is="emby-checkbox" class="chkSaveMetadataHidden" />
|
||||
<span>${OptionSaveMetadataAsHidden}</span>
|
||||
</label>
|
||||
<div class="fieldDescription checkboxFieldDescription">${OptionSaveMetadataAsHiddenHelp}</div>
|
||||
</div>
|
||||
|
||||
<div class="checkboxContainer checkboxContainer-withDescription hide chkDownloadImagesInAdvanceContainer advanced">
|
||||
<label>
|
||||
<input is="emby-checkbox" type="checkbox" id="chkDownloadImagesInAdvance" />
|
||||
<span>${OptionDownloadImagesInAdvance}</span>
|
||||
</label>
|
||||
<div class="fieldDescription checkboxFieldDescription">${OptionDownloadImagesInAdvanceHelp}</div>
|
||||
</div>
|
||||
|
||||
<div class="checkboxContainer checkboxContainer-withDescription chkAutomaticallyGroupSeriesContainer hide">
|
||||
<label>
|
||||
<input type="checkbox" is="emby-checkbox" class="chkAutomaticallyGroupSeries" checked />
|
||||
<span>${OptionAutomaticallyGroupSeries}</span>
|
||||
</label>
|
||||
<div class="fieldDescription checkboxFieldDescription">${OptionAutomaticallyGroupSeriesHelp}</div>
|
||||
</div>
|
||||
|
||||
<div class="checkboxContainer checkboxContainer-withDescription hide chkImportMissingEpisodesContainer advanced">
|
||||
<label>
|
||||
<input is="emby-checkbox" type="checkbox" id="chkImportMissingEpisodes" />
|
||||
<span>${LabelDisplayMissingEpisodesWithinSeasons}</span>
|
||||
</label>
|
||||
<div class="fieldDescription checkboxFieldDescription">${ImportMissingEpisodesHelp}</div>
|
||||
</div>
|
||||
|
||||
<div class="thumbnailSettingsSection hide">
|
||||
<h2>${HeaderVideoPreviewThumbnails}</h2>
|
||||
<div class="selectContainer">
|
||||
<select is="emby-select" class="selectThumbnailImages" label="${LabelGenerateVideoPreviewThumbnails}">
|
||||
<option value="">${Never}</option>
|
||||
<option value="task">${AsAScheduledTask}</option>
|
||||
<option value="scanandtask">${AsAScheduledTaskAndMediaAdded}</option>
|
||||
</select>
|
||||
<div class="fieldDescription">${GenerateVideoPreviewThumbnailsHelp}</div>
|
||||
</div>
|
||||
|
||||
<div class="selectContainer fldThumbnailInterval hide">
|
||||
<label>
|
||||
<select is="emby-select" class="selectThumbnailInterval" label="${LabelThumbnailImagesInterval}"></select>
|
||||
</label>
|
||||
<div class="fieldDescription">${ThumbnailImagesIntervalHelp}</div>
|
||||
</div>
|
||||
|
||||
<div class="checkboxContainer checkboxContainer-withDescription fldSaveThumbnailSetsLocally hide">
|
||||
<label>
|
||||
<input type="checkbox" is="emby-checkbox" class="chkLocalThumbnailSets" />
|
||||
<span>${SaveThumbnailImagesIntoMediaFolders}</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="introDetectionSection hide">
|
||||
<h2>${Markers}</h2>
|
||||
<div class="selectContainer">
|
||||
<select is="emby-select" class="selectIntroDetection" label="${LabelGenerateIntroVideoMarkers}">
|
||||
<option value="">${Never}</option>
|
||||
<option value="task">${AsAScheduledTask}</option>
|
||||
<option value="scanandtask">${AsAScheduledTaskAndMediaAdded}</option>
|
||||
</select>
|
||||
<div class="fieldDescription">${GenerateIntroVideoMarkersHelp}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="subtitleDownloadSettings hide">
|
||||
<h2>${HeaderSubtitleDownloads}</h2>
|
||||
|
||||
<div>
|
||||
<h3 class="checkboxListLabel">${HeaderDownloadLanguages}</h3>
|
||||
<div class="subtitleDownloadLanguages listItems-border checkboxList" style="max-height: 10.5em; overflow-y: auto; padding: .5em 1em;">
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<div class="subtitleFetchers" style="margin-bottom: 2em;">
|
||||
</div>
|
||||
|
||||
<div class="checkboxContainer checkboxContainer-withDescription">
|
||||
<label>
|
||||
<input is="emby-checkbox" type="checkbox" class="chkRequireHashMatch" checked />
|
||||
<span>${RequireHashMatch}</span>
|
||||
</label>
|
||||
<div class="fieldDescription checkboxFieldDescription">${RequireHashMatchHelp}</div>
|
||||
</div>
|
||||
|
||||
<div class="checkboxContainer checkboxContainer-withDescription">
|
||||
<label>
|
||||
<input is="emby-checkbox" type="checkbox" class="chkForcedSubtitlesOnly" checked />
|
||||
<span>${SearchForForcedSubtitlesOnly}</span>
|
||||
</label>
|
||||
<div class="fieldDescription checkboxFieldDescription">${SearchForForcedSubtitlesOnlyHelp}</div>
|
||||
</div>
|
||||
|
||||
<div class="selectContainer fldSubtitleDownloadMaxAge">
|
||||
<label>
|
||||
<select is="emby-select" class="selectSubtitleDownloadMaxAge" label="${LabelSubtitleDownloadMaxAge}"></select>
|
||||
</label>
|
||||
<div class="fieldDescription">${SubtitleDownloadMaxAgeHelp}</div>
|
||||
</div>
|
||||
|
||||
<div class="checkboxContainer checkboxContainer-withDescription">
|
||||
<label>
|
||||
<input is="emby-checkbox" type="checkbox" id="chkSkipIfAudioTrackPresent" />
|
||||
<span>${LabelSkipIfAudioTrackPresent}</span>
|
||||
</label>
|
||||
<div class="fieldDescription checkboxFieldDescription">${LabelSkipIfAudioTrackPresentHelp}</div>
|
||||
</div>
|
||||
<div class="checkboxContainer checkboxContainer-withDescription">
|
||||
<label>
|
||||
<input is="emby-checkbox" type="checkbox" id="chkSkipIfGraphicalSubsPresent" />
|
||||
<span>${LabelSkipIfGraphicalSubsPresent}</span>
|
||||
</label>
|
||||
<div class="fieldDescription checkboxFieldDescription">${LabelSkipIfGraphicalSubsPresentHelp}</div>
|
||||
</div>
|
||||
|
||||
<div class="checkboxContainer checkboxContainer-withDescription">
|
||||
<label>
|
||||
<input type="checkbox" is="emby-checkbox" id="chkSaveSubtitlesLocally" checked />
|
||||
<span>${SaveSubtitlesIntoMediaFolders}</span>
|
||||
</label>
|
||||
<div class="fieldDescription checkboxFieldDescription">${SaveSubtitlesIntoMediaFoldersHelp}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="lyricsDownloadSettings hide">
|
||||
<h2>${Lyrics}</h2>
|
||||
|
||||
<div>
|
||||
<h3 class="checkboxListLabel">${HeaderDownloadLanguages}</h3>
|
||||
<div class="lyricsDownloadLanguages listItems-border checkboxList" style="max-height: 10.5em; overflow-y: auto; padding: .5em 1em;">
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<div class="lyricsFetchers" style="margin-bottom: 2em;">
|
||||
</div>
|
||||
|
||||
<div class="selectContainer fldLyricsDownloadMaxAge">
|
||||
<label>
|
||||
<select is="emby-select" class="selectLyricsDownloadMaxAge" label="${LabelLyricsDownloadMaxAge}"></select>
|
||||
</label>
|
||||
<div class="fieldDescription">${LyricsDownloadMaxAgeHelp}</div>
|
||||
</div>
|
||||
|
||||
<div class="checkboxContainer checkboxContainer-withDescription">
|
||||
<label>
|
||||
<input type="checkbox" is="emby-checkbox" id="chkSaveLyricsLocally" checked />
|
||||
<span>${SaveLyricsIntoMediaFolders}</span>
|
||||
</label>
|
||||
<div class="fieldDescription checkboxFieldDescription">${SaveLyricsIntoMediaFoldersHelp}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="playbackSettings hide">
|
||||
|
||||
<h2>${Playback}</h2>
|
||||
|
||||
<div class="inputContainer">
|
||||
<input is="emby-input" type="number" id="txtMinResumePct" name="txtMinResumePct" pattern="[0-9]*" required min="0" max="100" label="${LabelMinResumePercentage}" value="3" />
|
||||
<div class="fieldDescription">
|
||||
${LabelMinResumePercentageHelp}
|
||||
</div>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<input is="emby-input" type="number" id="txtMaxResumePct" name="txtMaxResumePct" pattern="[0-9]*" required min="1" max="100" label="${LabelMaxResumePercentage}" value="90" />
|
||||
<div class="fieldDescription">
|
||||
${LabelMaxResumePercentageHelp}
|
||||
</div>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<input is="emby-input" type="number" id="txtMinResumeDuration" name="txtMinResumeDuration" pattern="[0-9]*" required min="0" label="${LabelMinResumeDuration}" value="120" />
|
||||
<div class="fieldDescription">
|
||||
${LabelMinResumeDurationHelp}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
1
components/medialibrarycreator/medialibrarycreator.js
Normal file
1
components/medialibrarycreator/medialibrarycreator.js
Normal file
File diff suppressed because one or more lines are too long
@@ -0,0 +1,49 @@
|
||||
<div class="formDialogHeader">
|
||||
<button type="button" is="paper-icon-button-light" class="btnCancel hide-mouse-idle-tv" tabindex="-1"><i class="md-icon autortl"></i></button>
|
||||
<h3 class="formDialogHeaderTitle">
|
||||
${HeaderNewLibrary}
|
||||
</h3>
|
||||
</div>
|
||||
|
||||
<div is="emby-scroller" data-horizontal="false" data-forcescrollbar="true" data-focusscroll="true" class="formDialogContent">
|
||||
<div class="scrollSlider dialogContentInner dialog-content-centered padded-left padded-right">
|
||||
<form style="margin:auto;">
|
||||
|
||||
<div class="inputContainer" style="text-align:right;">
|
||||
<label style="width:auto;">
|
||||
<input is="emby-toggle" type="checkbox" class="chkAdvanced noautofocus" />
|
||||
<span>${ShowAdvancedSettings}</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div id="fldCollectionType" class="selectContainer">
|
||||
<select is="emby-select" id="selectCollectionType" data-mini="true" required="required" label="${LabelContentType}"></select>
|
||||
<div class="collectionTypeFieldDescription fieldDescription">
|
||||
</div>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<input is="emby-input" type="text" id="txtValue" required="required" label="${LabelDisplayName}" />
|
||||
</div>
|
||||
|
||||
<div class="folders verticalSection">
|
||||
<div class="sectionTitleContainer flex align-items-center flex-wrap-wrap focusable" data-focusabletype="nearest">
|
||||
<h2 class="sectionTitle">${Folders}</h2>
|
||||
<button is="emby-button" type="button" class="raised raised-mini btnAddFolder submit sectionTitleButton">
|
||||
<i class="md-icon button-icon button-icon button-icon-left"></i>
|
||||
<span>${Add}</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="folderList sectionContent" style="margin-bottom:1em;"></div>
|
||||
</div>
|
||||
|
||||
<div class="libraryOptions hide"></div>
|
||||
<br />
|
||||
|
||||
<div class="formDialogFooter">
|
||||
<button is="emby-button" type="submit" class="raised button-submit block formDialogFooterItem">
|
||||
<span>${ButtonOk}</span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
1
components/medialibraryeditor/medialibraryeditor.js
Normal file
1
components/medialibraryeditor/medialibraryeditor.js
Normal file
File diff suppressed because one or more lines are too long
@@ -0,0 +1,32 @@
|
||||
<div class="formDialogHeader">
|
||||
<button type="button" is="paper-icon-button-light" class="btnCancel hide-mouse-idle-tv" tabindex="-1"><i class="md-icon autortl"></i></button>
|
||||
<h3 class="formDialogHeaderTitle"></h3>
|
||||
</div>
|
||||
|
||||
<div is="emby-scroller" data-horizontal="false" data-forcescrollbar="true" data-focusscroll="true" class="formDialogContent">
|
||||
<div class="scrollSlider dialogContentInner dialog-content-centered padded-left padded-right">
|
||||
|
||||
<div class="infoBanner" style="margin-bottom:1.8em;">
|
||||
${ChangingMetadataImageSettingsNewContent}
|
||||
</div>
|
||||
|
||||
<div class="inputContainer" style="text-align:right;">
|
||||
<label style="width:auto;">
|
||||
<input is="emby-toggle" type="checkbox" class="chkAdvanced noautofocus" />
|
||||
<span>${ShowAdvancedSettings}</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="folders hide verticalSection">
|
||||
<div class="sectionTitleContainer flex align-items-center flex-wrap-wrap focusable" data-focusabletype="nearest">
|
||||
<h2 class="sectionTitle">${Folders}</h2>
|
||||
<button is="emby-button" type="button" class="raised raised-mini btnAddFolder submit sectionTitleButton">
|
||||
<i class="md-icon button-icon button-icon button-icon-left"></i>
|
||||
<span>${Add}</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="folderList sectionContent" style="margin-bottom:1em;"></div>
|
||||
</div>
|
||||
<div class="libraryOptions"></div>
|
||||
</div>
|
||||
</div>
|
||||
1
components/taskbutton.js
Normal file
1
components/taskbutton.js
Normal file
@@ -0,0 +1 @@
|
||||
define(["exports","./../modules/emby-apiclient/connectionmanager.js","./../modules/common/globalize.js","./../modules/emby-apiclient/events.js","./../modules/common/input/api.js","./../modules/common/methodtimer.js","./../modules/emby-elements/emby-button/emby-button.js"],function(_exports,_connectionmanager,_globalize,_events,_api,_methodtimer,_embyButton){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=function(options){var pollInterval,button=options.button,serverId=ApiClient.serverId();function pollTasks(){_connectionmanager.default.getApiClient(serverId).getScheduledTasks({IsEnabled:!0}).then(updateTasks)}function updateTasks(tasks){var progress,tasks=tasks.filter(function(t){return t.Key===options.taskKey})[0];options.panel&&(tasks?options.panel.classList.remove("hide"):options.panel.classList.add("hide")),tasks&&("Idle"===tasks.State?button.removeAttribute("disabled"):button.setAttribute("disabled","disabled"),button.setAttribute("data-taskid",tasks.Id),progress=(tasks.CurrentProgressPercentage||0).toFixed(1),options.progressElem&&(options.progressElem.innerHTML='<div class="itemProgressBarForeground itemProgressBarForegroundRound" style="width:'+progress+'%;"></div>',"Running"===tasks.State?options.progressElem.classList.remove("hide"):options.progressElem.classList.add("hide")),options.lastResultElem)&&("Failed"===(progress=tasks.LastExecutionResult?tasks.LastExecutionResult.Status:"")?options.lastResultElem.html('<span style="color:#FF0000;">('+_globalize.default.translate("LabelFailed")+")</span>"):"Cancelled"===progress?options.lastResultElem.html('<span style="color:#0026FF;">('+_globalize.default.translate("LabelCancelled")+")</span>"):"Aborted"===progress?options.lastResultElem.html('<span style="color:#FF0000;">'+_globalize.default.translate("LabelAbortedByServerShutdown")+"</span>"):options.lastResultElem.html(progress))}function onButtonClick(){var taskId=this.getAttribute("data-taskid");taskId=taskId,_connectionmanager.default.getApiClient(serverId).startScheduledTask(taskId).then(pollTasks)}function onScheduledTasksUpdate(e,apiClient,info){apiClient.serverId()===serverId&&updateTasks(info)}function onPollIntervalFired(){_connectionmanager.default.getApiClient(serverId).isMessageChannelOpen()||pollTasks()}function stopInterval(){pollInterval&&pollInterval.destroy(),pollInterval=null}options.panel&&options.panel.classList.add("hide");"off"===options.mode?(button.removeEventListener("click",onButtonClick),_events.default.off(_api.default,"ScheduledTasksInfo",onScheduledTasksUpdate),_connectionmanager.default.getApiClient(serverId).stopMessageListener("ScheduledTasksInfo"),stopInterval()):(button.addEventListener("click",onButtonClick),pollTasks(),function(){var apiClient=_connectionmanager.default.getApiClient(serverId);stopInterval(),apiClient.startMessageListener("ScheduledTasksInfo","1000,1000"),pollInterval=new _methodtimer.default({onInterval:onPollIntervalFired,timeoutMs:1e4,type:"interval"})}(),_events.default.on(_api.default,"ScheduledTasksInfo",onScheduledTasksUpdate))}});
|
||||
1
components/tunerpicker.js
Normal file
1
components/tunerpicker.js
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user