EmbyCrackedClient/web/logs/log.js
2025-06-25 11:46:04 +08:00

1 line
No EOL
5.6 KiB
JavaScript

import ListPage from"./../list/list.js";import globalize from"./../modules/common/globalize.js";import{appHost,appLogger}from"./../modules/common/servicelocator.js";import"./../modules/emby-elements/emby-scroller/emby-scroller.js";import"./../modules/emby-elements/emby-button/emby-button.js";import"./../modules/emby-elements/emby-toggle/emby-toggle.js";import textEncoding from"./../modules/common/textencoding.js";import commandProcessor from"./../modules/commandprocessor.js";import itemManager from"./../modules/common/itemmanager/itemmanager.js";function onDownloadClick(){commandProcessor.executeCommand("download",[this.getParentItem()],{Sanitize:this.view.querySelector(".chkSanitize")?.checked})}function onShareClick(){commandProcessor.executeCommand("share",[this.getParentItem()],{Sanitize:this.view.querySelector(".chkSanitize")?.checked})}function onSanitizeChange(){this.setNewWindowHref(),this.itemsContainer.refreshItems()}function LogPage(view,params){this.supportsViewSettings=!1,this.enableTotalRecordCountDisplay=!1,this.enableAlphaNumericShortcuts=!1;let html="";html=(html=(html+="<div>")+'<h2 style="margin-top:0;">'+textEncoding.htmlEncode(params.name)+"</h2>")+'<div class="readOnlyContent"><div class="buttonItems focuscontainer-x" style="margin-bottom:1.5em;">',params.logType=params.serverId?"server":"app","server"===params.logType&&(html=(html=(html+='<div class="buttonItems-item toggleContainer fldSanitize" style="margin-top:0;margin-bottom:0;margin-inline-end:1em;"><label style="width:auto;">')+'<input type="checkbox" is="emby-toggle" class="chkSanitize" label="'+globalize.translate("AnonymizeLogContents")+'" checked />')+"</label></div>"),html=(html+='<button is="emby-button" type="button" class="buttonItems-item raised raised-mini btnDownload hide"><i class="md-icon button-icon button-icon-left">&#xe5db;</i>'+globalize.translate("Download")+"</button>")+'<button is="emby-button" type="button" class="buttonItems-item raised raised-mini btnShare hide"><i class="md-icon button-icon button-icon-left">share</i>'+globalize.translate("Share")+"</button>","server"===params.logType&&appHost.supports("targetblank")&&(html+='<a is="emby-linkbutton" href="#" target="_blank" class="buttonItems-item raised raised-mini btnOpen"><i class="md-icon button-icon button-icon-left autortl">&#xe89e;</i>'+globalize.translate("HeaderOpenInNewWindow")+"</a>"),html=(html+="</div>")+"</div></div>",view.querySelector(".itemsViewSettingsContainer").insertAdjacentHTML("beforebegin",html);var btnDownload=view.querySelector(".btnDownload"),btnDownload=(btnDownload&&btnDownload.addEventListener("click",onDownloadClick.bind(this)),view.querySelector(".btnShare"));btnDownload&&btnDownload.addEventListener("click",onShareClick.bind(this)),view.querySelector(".chkSanitize")?.addEventListener("change",onSanitizeChange.bind(this)),view.classList.add("logView"),ListPage.call(this,view,params),this.scroller.classList.add("logViewScroller"),this.setNewWindowHref()}require(["flexStyles","css!logs/log.css"]),Object.assign(LogPage.prototype,ListPage.prototype),LogPage.prototype.fetchItem=function(){let defaultItem={Name:this.params.name,Type:"Log",ServerId:this.params.serverId},logsPromise;return(logsPromise=this.params.serverId?this.getApiClient().getLogs({}):appLogger.getLogFiles({})).then(function(result){var items=result.Items;for(let i=0,length=items.length;i<length;i++)if(items[i].Name===defaultItem.Name)return items[i];return defaultItem})},LogPage.prototype.onItemRefreshed=function(item){return itemManager.canDownload(item)?this.view.querySelector(".btnDownload").classList.remove("hide"):this.view.querySelector(".btnDownload").classList.add("hide"),item.CanShare?this.view.querySelector(".btnShare").classList.remove("hide"):this.view.querySelector(".btnShare").classList.add("hide"),ListPage.prototype.onItemRefreshed.apply(this,arguments)},LogPage.prototype.getBaseQuery=function(item){var query=ListPage.prototype.getBaseQuery.apply(this,arguments),chkSanitize=(query.name=this.params.name,this.view.querySelector(".chkSanitize"));return chkSanitize&&(query.Sanitize=chkSanitize.checked),query},LogPage.prototype.setNewWindowHref=function(){var params=this.params,btnOpen=this.view.querySelector(".btnOpen");btnOpen&&(btnOpen.href=this.getApiClient().getLogDownloadUrl({Name:params.name,Sanitize:this.view.querySelector(".chkSanitize").checked}))},LogPage.prototype.virtualChunkSize=function(){return 100},LogPage.prototype.getApiClientQueryMethodName=function(){return"getLogLines"},LogPage.prototype.getItemTypes=function(){return["LogLine"]},LogPage.prototype.getItems=function(query){return"server"===this.params.logType?ListPage.prototype.getItems.apply(this,arguments):(query=Object.assign(this.getBaseQuery(),query),appLogger.getLogLines(query))},LogPage.prototype.getBaseListRendererOptions=function(){var options=ListPage.prototype.getBaseListRendererOptions.apply(this,arguments);return options.draggable=!1,options.draggableXActions=!1,options.action="none",options.contextMenu=!1,options.multiSelect=!1,options},LogPage.prototype.getListViewOptions=function(items,settings){var options=ListPage.prototype.getListViewOptions.apply(this,arguments);return options.image=!1,options.moreButton=!1,options.fields=["LogLine"],options.highlight=!1,options.verticalPadding=!1,options.code=!0,options},LogPage.prototype.getSettingsKey=function(){return"log"},LogPage.prototype.setTitle=function(){},LogPage.prototype.getSortMenuOptions=function(){return[]},LogPage.prototype.getViewSettingDefaults=function(){var viewSettings=ListPage.prototype.getViewSettingDefaults.apply(this,arguments);return viewSettings.imageType="list",viewSettings};export default LogPage;