1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
jellyfin-web/dashboard-ui/bower_components/emby-webcomponents/imagedownloader/imagedownloader.js

1 line
9 KiB
JavaScript
Raw Normal View History

2018-09-12 19:26:21 +02:00
define(["loading","apphost","dialogHelper","connectionManager","imageLoader","browser","layoutManager","scrollHelper","globalize","require","emby-checkbox","emby-button","paper-icon-button-light","emby-linkbutton","formDialogStyle","cardStyle"],function(loading,appHost,dialogHelper,connectionManager,imageLoader,browser,layoutManager,scrollHelper,globalize,require){"use strict";function getBaseRemoteOptions(){var options={};return options.itemId=currentItemId,options}function reloadBrowsableImages(page,apiClient){loading.show();var options=getBaseRemoteOptions();options.type=browsableImageType,options.startIndex=browsableImageStartIndex,options.limit=browsableImagePageSize,options.IncludeAllLanguages=page.querySelector("#chkAllLanguages").checked;var provider=selectedProvider||"";provider&&(options.ProviderName=provider),apiClient.getAvailableRemoteImages(options).then(function(result){renderRemoteImages(page,apiClient,result,browsableImageType,options.startIndex,options.limit),page.querySelector("#selectBrowsableImageType").value=browsableImageType;var providersHtml=result.Providers.map(function(p){return'<option value="'+p+'">'+p+"</option>"}),selectImageProvider=page.querySelector("#selectImageProvider");selectImageProvider.innerHTML='<option value="">'+globalize.translate("sharedcomponents#All")+"</option>"+providersHtml,selectImageProvider.value=provider,loading.hide()})}function renderRemoteImages(page,apiClient,imagesResult,imageType,startIndex,limit){page.querySelector(".availableImagesPaging").innerHTML=getPagingHtml(startIndex,limit,imagesResult.TotalRecordCount);for(var html="",i=0,length=imagesResult.Images.length;i<length;i++)html+=getRemoteImageHtml(imagesResult.Images[i],imageType,apiClient);var availableImagesList=page.querySelector(".availableImagesList");availableImagesList.innerHTML=html,imageLoader.lazyChildren(availableImagesList);var btnNextPage=page.querySelector(".btnNextPage"),btnPreviousPage=page.querySelector(".btnPreviousPage");btnNextPage&&btnNextPage.addEventListener("click",function(){browsableImageStartIndex+=browsableImagePageSize,reloadBrowsableImages(page,apiClient)}),btnPreviousPage&&btnPreviousPage.addEventListener("click",function(){browsableImageStartIndex-=browsableImagePageSize,reloadBrowsableImages(page,apiClient)})}function getPagingHtml(startIndex,limit,totalRecordCount){var html="",recordsEnd=Math.min(startIndex+limit,totalRecordCount),showControls=totalRecordCount>limit;return html+='<div class="listPaging">',html+='<span style="margin-right: 10px;">',html+=(totalRecordCount?startIndex+1:0)+"-"+recordsEnd+" of "+totalRecordCount,html+="</span>",showControls&&(html+='<div data-role="controlgroup" data-type="horizontal" style="display:inline-block;">',html+='<button is="paper-icon-button-light" title="'+globalize.translate("sharedcomponents#Previous")+'" class="btnPreviousPage autoSize" '+(startIndex?"":"disabled")+'><i class="md-icon">&#xE5C4;</i></button>',html+='<button is="paper-icon-button-light" title="'+globalize.translate("sharedcomponents#Next")+'" class="btnNextPage autoSize" '+(startIndex+limit>=totalRecordCount?"disabled":"")+'><i class="md-icon">arrow_forward</i></button>',html+="</div>"),html+="</div>"}function parentWithClass(elem,className){for(;!elem.classList||!elem.classList.contains(className);)if(!(elem=elem.parentNode))return null;return elem}function downloadRemoteImage(page,apiClient,url,type,provider){var options=getBaseRemoteOptions();options.Type=type,options.ImageUrl=url,options.ProviderName=provider,loading.show(),apiClient.downloadRemoteImage(options).then(function(){hasChanges=!0;var dlg=parentWithClass(page,"dialog");dialogHelper.close(dlg)})}function getDisplayUrl(url,apiClient){return apiClient.getUrl("Images/Remote",{imageUrl:url})}function getRemoteImageHtml(image,imageType,apiClient){var tagName=layoutManager.tv?"button":"div",enableFooterButtons=!layoutManager.tv,html="",cssClass="card scalableCard imageEditorCard",cardBoxCssClass="cardBox visualCardBox",shape="backdrop";return shape="Backdrop"===imageType||"Art"===imageType||"Thumb"===imag