Submit
Path:
~
/
/
usr
/
local
/
psa
/
admin
/
cp
/
public
/
javascript
/
app
/
log-browser
/
File Content:
browser.js.map
{"version":3,"file":"javascript/app/log-browser/browser.js?304dd0a8996d01573b9c","mappings":"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","sources":["webpack:///./app/log-browser/browser/LogsProblemPanel.js","webpack:///./app/log-browser/browser/ProblemPanelWrapper.js","webpack:///./app/log-browser/browser/index.js","webpack:///./app/log-browser/browser/sources.js"],"sourcesContent":["// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { Icon, Translate } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\n\nimport { ProblemPanelWrapper } from './ProblemPanelWrapper';\nimport PropTypes from 'prop-types';\n\nconst locale = Locale.getSection('components.lists.logbrowser');\n\nconst ReportTypes = {\n manual: locale.formatMessage('manual'),\n regular: locale.formatMessage('regular'),\n};\n\nexport const LogsProblemPanel = ({\n domainId,\n isDiagnosticEnabled = false,\n isRegularCheckEnabled = undefined,\n problemsCount = undefined,\n checkType = undefined,\n olderThanDay = undefined,\n}) => {\n if (!isDiagnosticEnabled) {\n return null;\n }\n\n if (!isRegularCheckEnabled && (!problemsCount || olderThanDay)) {\n return (\n <ProblemPanelWrapper\n title={<Translate content=\"learnAboutProblemsFaster\" />}\n label={{\n content: <Translate content=\"new\" />,\n intent: 'success',\n dataCy: 'sucess-alert',\n }}\n panelContent={<Translate content=\"enableRegularCheck\" />}\n image={<Icon name=\"info-circle-filled\" intent=\"info\" size=\"24\" />}\n actionButton={<Translate content=\"openCheckSettings\" />}\n />\n );\n }\n\n if (!problemsCount) {\n return (\n <ProblemPanelWrapper\n title={<Translate content=\"noProblemsFound\" />}\n image={\n <Icon\n name=\"check-mark-circle-filled\"\n intent=\"success\"\n size=\"24\"\n />\n }\n panelContent={\n checkType ?\n <Translate\n content=\"lastCheckDetectsNoProblems\"\n params={{\n checkType: ReportTypes[checkType],\n }}\n /> :\n <Translate content=\"noChecksResults\" />\n }\n />\n );\n }\n\n return (\n <ProblemPanelWrapper\n domainId={domainId}\n title={<Translate content=\"issuesFoundInTheLogs\" />}\n label={{\n content: problemsCount,\n intent: 'danger',\n dataCy: 'problem-alert',\n }}\n image={\n <Icon\n name=\"exclamation-mark-circle-filled\"\n intent=\"danger\"\n size=\"24\"\n />\n }\n panelContent={\n <Translate\n content=\"lastCheckDetectsProblems\"\n params={{\n checkType: ReportTypes[checkType],\n }}\n />\n }\n />\n );\n};\n\nLogsProblemPanel.propTypes = {\n domainId: PropTypes.number.isRequired,\n isDiagnosticEnabled: PropTypes.bool,\n isRegularCheckEnabled: PropTypes.bool,\n problemsCount: PropTypes.number,\n checkType: PropTypes.string,\n olderThanDay: PropTypes.bool,\n};\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, Heading, Media, Panel, Translate, Label } from '@plesk/ui-library';\n\nexport const ProblemPanelWrapper = ({\n title,\n label = undefined,\n image,\n panelContent,\n actionButton = undefined,\n domainId = undefined,\n}) => {\n const [collapsed, setCollapsed] = useState(false);\n const buttonTitle = actionButton ?? <Translate content=\"openCheckReport\" />;\n const linkToDiagnosticPage = domainId ? `/cp/websites-diagnostic/id/${domainId}` : '/cp/websites-diagnostic';\n\n return (\n <Panel\n title={\n <div className=\"problem-panel-wrapper__heading\">\n <div>\n <Heading level={4}>\n <span className=\"problem-panel-wrapper__title\">\n {title}\n </span>\n {label && (\n <Label\n className=\"problem-panel-wrapper__label\"\n intent={label.intent}\n >\n <span data-cy={label.dataCy}>{label.content}</span>\n </Label>\n )}\n </Heading>\n </div>\n {collapsed && (\n <Button\n ghost\n icon=\"projects\"\n key=\"button\"\n component=\"a\"\n href={linkToDiagnosticPage}\n data-cy=\"open-diagnostic\"\n >\n {buttonTitle}\n </Button>\n )}\n </div>\n }\n collapsible\n collapsed={collapsed}\n onToggle={setCollapsed}\n >\n <Media\n image={\n <div className=\"problem-panel-wrapper__image\">\n {image}\n </div>\n }\n imageSpacing=\"xl\"\n >\n <div className=\"problem-panel-wrapper__content\">\n <p>{panelContent}</p>\n <Button\n icon=\"projects\"\n component=\"a\"\n href={linkToDiagnosticPage}\n data-cy=\"open-diagnostic\"\n >\n {buttonTitle}\n </Button>\n </div>\n </Media>\n </Panel>\n );\n};\n\nProblemPanelWrapper.propTypes = {\n title: PropTypes.node.isRequired,\n image: PropTypes.node.isRequired,\n panelContent: PropTypes.node.isRequired,\n label: PropTypes.shape({\n content: PropTypes.oneOfType([PropTypes.node, PropTypes.number]),\n intent: PropTypes.string,\n dataCy: PropTypes.string,\n }),\n actionButton: PropTypes.node,\n domainId: PropTypes.number,\n};\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport {\n addStatusMessage,\n clearStatusMessages,\n getComponent,\n ScrollableList,\n Locale,\n escapeHtml,\n render,\n bar,\n AjaxPopupForm,\n SmallButton,\n api,\n} from 'jsw';\nimport { LocaleProvider } from '@plesk/ui-library';\n\nimport { LogsProblemPanel } from './LogsProblemPanel';\nimport Sources from './sources';\n\nclass LogBrowser extends ScrollableList {\n onSourceSearchFilterChange() {\n let selector = getComponent('log-browser-files');\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const list = this;\n this._sourcesSelected = selector.getSelected();\n selector.updateTextValue();\n const { realTimeEnabled } = list;\n if (realTimeEnabled) {\n this.disableRealTime();\n }\n list._dataUrl = this.getDataUrl(true);\n const onReloadSuccess = list._onReloadSuccess;\n list._onReloadSuccess = function (...args) {\n const isOpened = selector.isOpened();\n list._onReloadSuccess = onReloadSuccess;\n onReloadSuccess.apply(list, args);\n selector = getComponent('log-browser-files');\n selector.setOpened(isOpened);\n if (realTimeEnabled) {\n list.toggleControls(true);\n list.enableRealTime();\n }\n };\n list.reload();\n }\n\n getDataUrl(withSources) {\n let dataUrl = this._defaultDataUrl;\n const value = this._sourcesSelected;\n if (this._logFile && !withSources) {\n dataUrl += `?file=${encodeURIComponent(this._logFile)}${this._isCustomLog ? '&custom=true' : ''}`;\n } else if (value) {\n dataUrl += `?sources=${encodeURIComponent(JSON.stringify(value))}`;\n }\n return dataUrl;\n }\n\n toggleControls(realTimeEnabled = getComponent('log-browser').realTimeEnabled) {\n const enabledHidden = realTimeEnabled ? 'hide' : 'show';\n const enabledShown = realTimeEnabled ? 'show' : 'hide';\n getComponent('log-browser-start-realtime')[enabledHidden]();\n getComponent('log-browser-stop-realtime')[enabledShown]();\n getComponent('log-browser-refresh')[enabledHidden]();\n getComponent('log-browser-clear')[enabledShown]();\n\n getComponent('log-browser-add-custom')[this._isCustomLog ? 'show' : 'hide']();\n getComponent('log-browser-files')[this._isCustomLog ? 'hide' : 'show']();\n }\n\n realTimeUpdate() {\n if (this.realTimeInProgress) {\n return;\n }\n const onReloadCreate = this._onReloadCreate;\n this._onReloadCreate = function () {\n this.realTimeInProgress = true;\n };\n const onReloadComplete = this._onReloadComplete;\n this._onReloadComplete = function () {\n this.realTimeRequest = null;\n this.realTimeInProgress = false;\n this._onReloadCreate = onReloadCreate;\n this._onReloadComplete = onReloadComplete;\n };\n\n const params = `?showAfter=${encodeURIComponent(JSON.stringify(this._additionalData.updateAfter))}&short=true`;\n this.realTimeRequest = this.reload(params, 'after');\n }\n\n enableRealTime() {\n this.realTimeInterval = setInterval(this.realTimeUpdate.bind(this), 1000);\n this.realTimeEnabled = true;\n }\n\n disableRealTime() {\n clearInterval(this.realTimeInterval);\n this.realTimeEnabled = false;\n this.realTimeInProgress = false;\n if (this.realTimeRequest) {\n this.realTimeRequest.abort();\n }\n }\n\n makeLinks({ message }, returnOnlyPath) {\n try {\n decodeURIComponent(message);\n } catch {\n return escapeHtml(message);\n }\n\n const linkRe = /(^|.)(\\/|[a-zA-Z]?:?\\\\)([^\\?\\s]+)\\.([^\\s?'/:\\.\\(\\)=\"]+)($|.)/gm;\n const links = [];\n\n const text = message.replace(linkRe, (match, trailingStart, pathStart, path, extension, trailingEnd) => {\n const fullPath = `${pathStart + path}.${extension}`;\n const sTrailingStart = trailingStart.trim();\n const sTrailingEnd = trailingEnd.trim();\n if (\n (sTrailingStart !== '' && !/^['\\(\\[\"]$/.test(sTrailingStart))\n || (sTrailingEnd !== '' && !/^['\\(\\)\\[\\]\\?=:\"]$/.test(sTrailingEnd))\n ) {\n return match;\n }\n let unsafePath = decodeURIComponent(path);\n const unsafeExtension = decodeURIComponent(extension);\n const unsafeFullPath = `${pathStart + unsafePath}.${unsafeExtension}`;\n\n const splittedPath = unsafePath.split(/[\\\\/]/);\n const filename = `${splittedPath.pop()}.${unsafeExtension}`;\n let dirname = `/${this._domainRootDir}`;\n const homeDir = this._domainHomeDir;\n\n unsafePath = pathStart + splittedPath.join('/');\n\n if (unsafeFullPath.indexOf(homeDir) > -1) {\n const tempFullPath = unsafeFullPath.replace(homeDir, '');\n if (/^[\\\\/]$/.test(tempFullPath.trim()) || tempFullPath.trim() === '') {\n return match;\n }\n\n const splittedFullPath = tempFullPath.split(/[\\\\/]/);\n splittedFullPath.pop();\n dirname = splittedFullPath.join('/');\n } else {\n dirname += unsafePath;\n }\n\n if (returnOnlyPath) {\n return fullPath.trim();\n }\n\n const linkUrl = `${this._urls.codeEditor}?currentDir=${encodeURIComponent(dirname)}` +\n `&subscriptionId=${this._webspaceId}` +\n `&file=${encodeURIComponent(filename)}` +\n `&redirect=${encodeURIComponent(this._urls.returnUrl)}`;\n links.push(`<a href=\"${escapeHtml(linkUrl)}\" title=\"${escapeHtml(this.lmsg('linkInMessageToViewFile'))}\">${escapeHtml(fullPath)}</a>`);\n return `${trailingStart}%%linkUrl${links.length - 1}%%${trailingEnd}`;\n });\n\n return links.reduce((acc, link, index) => acc.replaceAll(`%%linkUrl${index}%%`, link), escapeHtml(text));\n }\n\n getRowClass({ type }) {\n const result = ['log-browser-row'];\n\n switch (type) {\n case 'error':\n result.push('state-error');\n break;\n case 'warning':\n result.push('state-warning');\n break;\n }\n\n return result.join(' ');\n }\n\n _initConfiguration(config) {\n super._initConfiguration({\n id: 'log-browser',\n cls: 'log-browser',\n locale: Locale.getSection('components.lists.logbrowser'),\n pageable: false,\n getRowClass: this.getRowClass,\n onRedraw: this.onRedraw,\n ...config,\n });\n\n this._logFile = this._getConfigParam('logFile', null);\n this._isCustomLog = this._getConfigParam('isCustomLog', false);\n this._sources = this._getConfigParam('sources', {});\n this._sourcesSelected = this._getConfigParam('sourcesSelected', []);\n this._domainRootDir = this._getConfigParam('domainRootDir', '');\n this._domainHomeDir = this._getConfigParam('domainHomeDir', '');\n this._webspaceId = this._getConfigParam('webspaceId', '');\n this._urls = this._getConfigParam('urls', {});\n this._serverDateTime = this._getConfigParam('serverDateTime', new Date().toISOString());\n\n this._defaultDataUrl = this._dataUrl;\n this._dataUrl = this.getDataUrl();\n\n this._initColumns();\n this._initOperations();\n }\n\n _isColumnVisible(index) {\n return !!this._getConfigParam('isColumnAvailable', {})[index];\n }\n\n _initColumns() {\n this._columns.push({\n header: this.lmsg('date'),\n dataIndex: 'date',\n filter: {\n type: 'date',\n placeholder: this.lmsg('dateFilterPlaceholder'),\n date: new Date(this._serverDateTime),\n },\n cls: 'number state-default',\n });\n this._columns.push({\n header: this.lmsg('type'),\n dataIndex: 'type',\n filter: {\n type: 'text',\n multi: true,\n placeholder: this.lmsg('any'),\n options: [{\n type: 'value',\n value: 'access',\n label: 'Access',\n }, {\n type: 'value',\n value: 'warning',\n label: 'Warning',\n }, {\n type: 'value',\n value: 'error',\n label: 'Error',\n }],\n },\n cls: 'number',\n renderer({ type }) {\n if (!type) {\n return '';\n }\n return type[0].toUpperCase() + type.substr(1);\n },\n isVisible: this._isColumnVisible.bind(this, 'type'),\n });\n this._columns.push({\n header: this.lmsg('ip'),\n dataIndex: 'ip',\n filter: {\n type: 'text',\n live: true,\n placeholder: this.lmsg('ipFilterPlaceholder'),\n },\n cls: 'number',\n isVisible: this._isColumnVisible.bind(this, 'ip'),\n });\n this._columns.push({\n header: this.lmsg('code'),\n dataIndex: 'code',\n filter: {\n type: 'text',\n live: true,\n startsWith: true,\n placeholder: this.lmsg('codeFilterPlaceholder'),\n },\n cls: 'number',\n isVisible: this._isColumnVisible.bind(this, 'code'),\n });\n this._columns.push({\n header: this.lmsg('message'),\n dataIndex: 'message',\n filter: {\n type: 'text',\n live: true,\n placeholder: this.lmsg('messageFilterPlaceholder'),\n },\n renderer: item => {\n const text = this.makeLinks(item);\n\n const rows = text.split('\\n');\n const visibleNumber = 10;\n if (rows.length <= visibleNumber) {\n return text.replace(/\\n/g, '<br/>');\n }\n const firstRows = rows.slice(0, visibleNumber);\n const lastRows = rows.slice(visibleNumber);\n const more = `<a class=\"toggler js-more-link\" href=\"#\"><span>${this.lmsg('more')}>></span></a>`;\n const less = `<a class=\"toggler js-more-link\" href=\"#\" style=\"display: none;\"><span><<${this.lmsg('less')}</span></a>`;\n return (\n `${firstRows.join('<br/>')}<div class=\"js-more\" style=\"display: none;\">${lastRows.join('<br/>')}</div>` +\n `<div>${more}${less}</div>`\n );\n },\n });\n this._columns.push({\n header: `${this.lmsg('referer')}<span class=\"tooltipData\">${this.lmsg('refererHint')}</span>`,\n dataIndex: 'referer',\n cls: 'min',\n renderer: ({ referer }) => {\n if (referer === '-' || referer === '') {\n return '';\n }\n const viewTitle = escapeHtml(referer);\n const viewButton = (\n '<span>' +\n `<span class=\"tooltipData\">${viewTitle}</span>` +\n `<img src=\"${this._urls.iconReferer}\" alt=\"${viewTitle.replace(/\"/g, '"')}\" title=\"\" />` +\n '</span>'\n );\n return viewButton;\n },\n isVisible: this._isColumnVisible.bind(this, 'referer'),\n });\n this._columns.push({\n header: `${this.lmsg('agent')}<span class=\"tooltipData\">${this.lmsg('agentHint')}</span>`,\n dataIndex: 'agent',\n cls: 'min',\n renderer: ({ agent }) => {\n let icon;\n let viewTitle = escapeHtml(agent);\n if (agent === '') {\n return '';\n } else if (agent === '-') {\n icon = this._urls.iconUnknown;\n viewTitle = this.lmsg('unknown');\n } else if (agent.match(/bot/i)) {\n icon = this._urls.iconRobot;\n } else {\n icon = this._urls.iconClient;\n }\n\n const viewButton = (\n '<span>' +\n `<span class=\"tooltipData\">${viewTitle}</span>` +\n `<img src=\"${icon}\" alt=\"${viewTitle.replace(/\"/g, '"')}\" title=\"\" />` +\n '</span>'\n );\n return viewButton;\n },\n isVisible: this._isColumnVisible.bind(this, 'agent'),\n });\n this._columns.push({\n header: this.lmsg('size'),\n dataIndex: 'size',\n cls: 'state-default nowrap',\n isVisible: this._isColumnVisible.bind(this, 'size'),\n });\n this._columns.push({\n header: this.lmsg('source'),\n dataIndex: 'source',\n renderer: ({ source }) => this._sources[source],\n cls: 'min nowrap state-default',\n isVisible: () => this._sourcesSelected.length > 1,\n });\n }\n\n _initOperations() {\n this._operations = [\n {\n id: 'log-browser-start-realtime',\n componentType: SmallButton,\n title: this.lmsg('buttonStartRealtime'),\n description: this.lmsg('buttonStartRealtimeHint'),\n addCls: 'sb-start',\n handler: () => {\n this._componentElement.querySelectorAll('tr.list-divider').forEach(el => {\n el.classList.remove('list-divider');\n });\n const rows = document.getElementById('log-browser').querySelectorAll('tr.odd,tr.even');\n if (rows.length > 0) {\n rows[rows.length - 1].classList.add('list-divider');\n }\n this.scrollToBottom();\n this.toggleControls(true);\n this.enableRealTime();\n },\n }, {\n id: 'log-browser-stop-realtime',\n componentType: SmallButton,\n title: this.lmsg('buttonStopRealtime'),\n description: this.lmsg('buttonStopRealtimeHint'),\n addCls: 'sb-stop',\n hidden: true,\n handler: () => {\n this.toggleControls(false);\n this.disableRealTime();\n },\n }, {\n id: 'log-browser-refresh',\n componentType: SmallButton,\n title: this.lmsg('buttonRefresh'),\n description: this.lmsg('buttonRefreshHint'),\n addCls: 'sb-refresh',\n handler: () => {\n this.reload();\n },\n }, {\n id: 'log-browser-clear',\n componentType: SmallButton,\n title: this.lmsg('buttonClear'),\n description: this.lmsg('buttonClearHint'),\n addCls: 'sb-clean',\n hidden: true,\n handler: () => {\n this._additionalData.showMoreBefore = null;\n this._data = [];\n this.redraw();\n },\n }, {\n componentType: bar.Separator,\n }, {\n id: 'log-browser-manage-log-files',\n componentType: SmallButton,\n title: this.lmsg('manageLogFiles'),\n addCls: 'sb-settings',\n href: this._urls.manageLogs,\n }, {\n id: 'log-browser-log-rotation',\n componentType: SmallButton,\n title: this.lmsg('logRotation'),\n description: this.lmsg('logRotationHint'),\n addCls: 'sb-log-rotation',\n hidden: !this._urls.logRotation,\n handler: () => {\n new AjaxPopupForm({\n cls: 'popup-panel',\n title: this.lmsg('logRotationTitle'),\n url: `${this._urls.logRotation}?redirectUrl=${encodeURIComponent(this._urls.returnUrl)}`,\n locale: {\n waitMsg: this.lmsg('loadingTitle'),\n },\n });\n },\n }, {\n componentType: bar.Separator,\n }, {\n id: 'log-browser-add-custom',\n componentType: SmallButton,\n title: this.lmsg('buttonAddCustom'),\n description: this.lmsg('buttonAddCustomHint'),\n addCls: 'sb-add-new',\n hidden: !this._isCustomLog,\n handler: () => {\n this._isCustomLog = false;\n api.post(this._urls.addCustomLog, { file: this._logFile })\n .then(response => {\n clearStatusMessages();\n\n if (response.isUnsupportedLog) {\n addStatusMessage('warning', this.lmsg('invalidLogFormat'));\n }\n });\n\n getComponent('log-browser-add-custom').hide();\n getComponent('log-browser-files').show();\n },\n }, new Sources({\n logBrowser: this,\n hidden: this._isCustomLog,\n webspaceId: this._webspaceId,\n urls: this._urls,\n locale: this.getLocale(),\n id: 'log-browser-files',\n }),\n ].filter(Boolean);\n }\n\n onRedraw() {\n this.toggleControls();\n const table = document.getElementById(this._tableId);\n if (!table) {\n return;\n }\n table.querySelectorAll('.alert-container').forEach(el => {\n el.parentNode.removeChild(el);\n });\n\n if (!this._additionalData.showMoreBefore) {\n return;\n }\n\n const moreRowLinkAttrs = 'class=\"log-browser-load-more\" data-action-name=\"logBrowserLoadMore\"';\n const moreRowHtml = (\n '<tr class=\"alert-container\">' +\n `<td colspan=\"${this._columns.length}\">` +\n '<div class=\"alert-wrapper\">' +\n `<div class=\"alert\">${\n this.lmsg('loadMoreOrUseFilters', {\n loadMore: `<a href=\"#\" ${moreRowLinkAttrs}>${this.lmsg('loadMore')}</a>`,\n })\n }</div>` +\n '</div>' +\n '</td>' +\n '</tr>'\n );\n\n render(table.querySelector('thead'), moreRowHtml, 'after');\n table.querySelector('.log-browser-load-more').addEventListener('click', event => {\n event.preventDefault();\n event.target.closest('.alert-wrapper').innerHTML = `<div class=\"ajax-loading\">${this.lmsg('loadingTitle')}</div>`;\n\n const params = `?showBefore=${encodeURIComponent(JSON.stringify(this._additionalData.showMoreBefore))}&short=true`;\n this.reload(params, 'before');\n });\n }\n\n _addEvents() {\n super._addEvents();\n this._componentElement.addEventListener('click', event => {\n const element = event.target.closest('a.js-more-link');\n if (!element) {\n return;\n }\n event.preventDefault();\n [element.closest('td').querySelector('.js-more'), ...element.closest('div').querySelectorAll('a')].forEach(el => {\n el.style.display = el.style.display === 'none' ? '' : 'none';\n });\n });\n }\n\n remove() {\n this.disableRealTime();\n super.remove();\n }\n}\n\nexport default {\n LogBrowser,\n createLogsProblemPanel: props => (\n <LocaleProvider messages={Locale.getSection('components.lists.logbrowser').messages}>\n <LogsProblemPanel {...props} />\n </LocaleProvider>\n ),\n};\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { addStatusMessage, escapeHtml, createElement, messageBox, render, Component, DirectoryBrowser, Locale, api } from 'jsw';\nimport { FTYPE_TEXT, FTYPE_UNKNOWN_TEXT } from '../../../helpers/fileManager';\n\nexport default class Sources extends Component {\n _initConfiguration(config) {\n super._initConfiguration({\n cls: 'log-browser-options',\n ...config,\n });\n\n this._logBrowser = this._getConfigParam('logBrowser');\n this._urls = this._getConfigParam('urls', {});\n this._webspaceId = this._getConfigParam('webspaceId');\n }\n\n isOpened() {\n return this._componentElement.querySelector('.dropdown').classList.contains('open');\n }\n\n setOpened(isOpened) {\n this._componentElement.querySelector('.dropdown').classList[isOpened ? 'add' : 'remove']('open');\n }\n\n getSelected() {\n return [...this._componentElement.querySelector('.dropdown-menu').querySelectorAll('input[type=\"checkbox\"]:checked')]\n .map(({ value }) => value);\n }\n\n getTextValue() {\n const filterValue = this._logBrowser._sourcesSelected;\n if (!Object.keys(this._logBrowser._sources).length || (filterValue && !filterValue.length)) {\n return this.lmsg('sourceFilterNoLogs');\n }\n if (filterValue && filterValue.length === 1) {\n return this._logBrowser._sources[filterValue[0]];\n }\n if (!filterValue || filterValue.length === Object.keys(this._logBrowser._sources).length) {\n return this.lmsg('sourceFilterAllLogs');\n }\n return this.lmsg('sourceFilterFiles', { count: filterValue.length });\n }\n\n updateTextValue() {\n this._componentElement.querySelector('input[type=text]').value = this.getTextValue();\n }\n\n addCustomLog(path) {\n api.post(this._urls.addCustomLog, { file: path })\n .then(response => {\n this._logBrowser._sources[path] = path.split('/').pop();\n this._logBrowser._sourcesSelected.push(path);\n this._initComponentElement();\n this._logBrowser.onSourceSearchFilterChange();\n\n if (response.isUnsupportedLog) {\n addStatusMessage('warning', this.lmsg('invalidLogFormat'));\n }\n });\n }\n\n unlinkCustomLog(path) {\n api.post(this._urls.unlinkCustomLog, { file: path })\n .then(() => {\n delete this._logBrowser._sources[path];\n this._initComponentElement();\n this._logBrowser.onSourceSearchFilterChange();\n });\n }\n\n _initComponentElement() {\n super._initComponentElement();\n\n const filterValue = this._logBrowser._sourcesSelected;\n const dropdownElement = document.createElement('div');\n dropdownElement.className = 'dropdown';\n dropdownElement.innerHTML = (\n '<div class=\"input-group\">' +\n `<input type=\"text\" readonly class=\"form-control\" value=\"${this.getTextValue()}\">` +\n '<span class=\"input-group-btn\">' +\n '<button class=\"btn dropdown-toggle\" type=\"button\" data-action-name=\"logBrowserFilesOpen\">' +\n '<span class=\"caret\"></span>' +\n '</button>' +\n '</span>' +\n '</div>'\n );\n const dropdownMenu = document.createElement('ul');\n dropdownMenu.className = 'dropdown-menu dropdown-menu-flip';\n dropdownMenu.addEventListener('click', event => {\n event.stopPropagation();\n });\n render(dropdownElement, dropdownMenu);\n\n const regularFiles = {};\n const customFiles = {};\n Object.keys(this._logBrowser._sources).forEach(name => {\n if (name.startsWith('/')) {\n customFiles[name] = this._logBrowser._sources[name];\n } else {\n regularFiles[name] = this._logBrowser._sources[name];\n }\n });\n\n const dropdownMenuAddItem = (...props) => {\n render(dropdownMenu, createElement('li', ...props));\n };\n\n const renderGroup = (group, withTooltip) => {\n const items = Object.keys(group).map(name => {\n let item = createElement('label', [\n createElement('input', {\n type: 'checkbox',\n checked: !filterValue || filterValue.indexOf(name) !== -1 ? 'checked' : null,\n value: escapeHtml(name),\n onclick: event => {\n event.stopPropagation();\n this._logBrowser.onSourceSearchFilterChange();\n },\n 'data-input-name': 'logBrowserFileCheckbox',\n }),\n withTooltip ? createElement('span.tooltipData', escapeHtml(name)) : '',\n escapeHtml(group[name]),\n ]);\n\n if (name.startsWith('/')) {\n item = createElement('.b-indent.b-indent-flip', [\n createElement('span.b-indent-icon', [\n createElement('a', {\n onclick: event => {\n event.preventDefault();\n this.setOpened(false);\n messageBox.show({\n subtype: 'unlink',\n text: this.lmsg('buttonUnlinkConfirmationDescription'),\n type: messageBox.TYPE_YESNO,\n buttonTitles: {\n yes: this.lmsg('buttonUnlinkConfirmationYes'),\n no: this.lmsg('buttonUnlinkConfirmationNo'),\n },\n onYesClick: () => {\n this.unlinkCustomLog(name);\n },\n });\n },\n }, [\n createElement('span.tooltipData', this.lmsg('buttonUnlinkHint')),\n createElement('i.icon-unlink'),\n ]),\n ]),\n item,\n ]);\n }\n\n return item;\n });\n\n return createElement('.dropdown-menu-content.checkbox-group', items);\n };\n\n if (Object.keys(regularFiles).length) {\n dropdownMenuAddItem(renderGroup(regularFiles));\n dropdownMenuAddItem({ class: 'divider' });\n }\n if (Object.keys(customFiles).length) {\n dropdownMenuAddItem(renderGroup(customFiles, true));\n dropdownMenuAddItem({ class: 'divider' });\n }\n\n dropdownMenuAddItem(\n createElement('a.s-btn.sb-add-new', {\n onclick: event => {\n event.preventDefault();\n this.setOpened(false);\n new DirectoryBrowser({\n subscriptionId: this._webspaceId,\n showFiles: true,\n treeConfig: {\n filterNodes(item) {\n return item.isDirectory || FTYPE_TEXT === item.type || FTYPE_UNKNOWN_TEXT === item.type;\n },\n },\n locale: {\n title: this.lmsg('customLogPopupTitle'),\n buttonOk: Locale.getSection('components.buttons').lmsg('ok'),\n buttonCancel: Locale.getSection('components.buttons').lmsg('cancel'),\n },\n onSubmit: path => {\n this.addCustomLog(`/${path}`);\n },\n });\n },\n }, createElement('span', this.lmsg('addCustomLogFile'))),\n );\n\n render(this._componentElement, dropdownElement, 'inner');\n }\n}\n"],"names":["locale","Locale","getSection","ReportTypes","manual","formatMessage","regular","LogsProblemPanel","domainId","isDiagnosticEnabled","isRegularCheckEnabled","problemsCount","checkType","olderThanDay","_jsx","ProblemPanelWrapper","title","Translate","content","label","intent","dataCy","image","Icon","name","size","panelContent","params","actionButton","propTypes","PropTypes","isRequired","collapsed","setCollapsed","useState","buttonTitle","linkToDiagnosticPage","Panel","_jsxs","className","children","Heading","level","Label","Button","ghost","icon","component","href","collapsible","onToggle","Media","imageSpacing","LogBrowser","ScrollableList","onSourceSearchFilterChange","selector","getComponent","list","this","_sourcesSelected","getSelected","updateTextValue","realTimeEnabled","disableRealTime","_dataUrl","getDataUrl","onReloadSuccess","_onReloadSuccess","args","isOpened","apply","setOpened","toggleControls","enableRealTime","reload","withSources","dataUrl","_defaultDataUrl","value","_logFile","encodeURIComponent","_isCustomLog","JSON","stringify","enabledHidden","enabledShown","realTimeUpdate","realTimeInProgress","onReloadCreate","_onReloadCreate","onReloadComplete","_onReloadComplete","realTimeRequest","_additionalData","updateAfter","realTimeInterval","setInterval","bind","clearInterval","abort","makeLinks","message","returnOnlyPath","decodeURIComponent","escapeHtml","links","text","replace","match","trailingStart","pathStart","path","extension","trailingEnd","fullPath","sTrailingStart","trim","sTrailingEnd","test","unsafePath","unsafeExtension","unsafeFullPath","splittedPath","split","filename","pop","dirname","_domainRootDir","homeDir","_domainHomeDir","join","indexOf","tempFullPath","splittedFullPath","linkUrl","_urls","codeEditor","_webspaceId","returnUrl","push","lmsg","length","reduce","acc","link","index","replaceAll","getRowClass","type","result","_initConfiguration","config","super","id","cls","pageable","onRedraw","_getConfigParam","_sources","_serverDateTime","Date","toISOString","_initColumns","_initOperations","_isColumnVisible","_columns","header","dataIndex","filter","placeholder","date","multi","options","renderer","toUpperCase","substr","isVisible","live","startsWith","item","rows","firstRows","slice","lastRows","more","less","referer","viewTitle","iconReferer","agent","iconUnknown","iconRobot","iconClient","source","_operations","componentType","SmallButton","description","addCls","handler","_componentElement","querySelectorAll","forEach","el","classList","remove","document","getElementById","add","scrollToBottom","hidden","showMoreBefore","_data","redraw","bar","Separator","manageLogs","logRotation","AjaxPopupForm","url","waitMsg","api","post","addCustomLog","file","then","response","clearStatusMessages","isUnsupportedLog","addStatusMessage","hide","show","Sources","logBrowser","webspaceId","urls","getLocale","Boolean","table","_tableId","parentNode","removeChild","moreRowHtml","loadMore","render","querySelector","addEventListener","event","preventDefault","target","closest","innerHTML","_addEvents","element","style","display","createLogsProblemPanel","props","LocaleProvider","messages","Component","_logBrowser","contains","map","getTextValue","filterValue","Object","keys","count","_initComponentElement","unlinkCustomLog","dropdownElement","createElement","dropdownMenu","stopPropagation","regularFiles","customFiles","dropdownMenuAddItem","renderGroup","group","withTooltip","items","checked","onclick","messageBox","subtype","TYPE_YESNO","buttonTitles","yes","no","onYesClick","class","DirectoryBrowser","subscriptionId","showFiles","treeConfig","filterNodes","isDirectory","FTYPE_TEXT","FTYPE_UNKNOWN_TEXT","buttonOk","buttonCancel","onSubmit"],"sourceRoot":""}
Edit
Rename
Chmod
Delete
FILE
FOLDER
INFO
Name
Size
Permission
Action
browser.js
18482 bytes
0644
browser.js.map
55502 bytes
0644
files.js
4332 bytes
0644
files.js.map
12588 bytes
0644
N4ST4R_ID | Naxtarrr