Submit
Path:
~
/
/
opt
/
psa
/
admin
/
cp
/
public
/
javascript
/
views
/
admin
/
app
/
File Content:
usage.js.map
{"version":3,"file":"javascript/views/admin/app/usage.js?085790ff7d6a15baee3e","mappings":"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","sources":["webpack:///./components/jsw/JswList.js","webpack:///./components/jsw/JswTabs.js","webpack:///./components/jsw/convertToReactComponent.js","webpack:///./views/admin/app/usage/AppUsagePage.js"],"sourcesContent":["// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport PropTypes from 'prop-types';\nimport { List } from 'jsw';\nimport convertToReactComponent from './convertToReactComponent';\n\nconst propTypes = {\n id: PropTypes.string,\n dataUrl: PropTypes.string,\n operations: PropTypes.array,\n itemActions: PropTypes.object,\n columns: PropTypes.array,\n data: PropTypes.shape({\n data: PropTypes.array,\n state: PropTypes.object,\n pager: PropTypes.object,\n locale: PropTypes.object,\n additional: PropTypes.object,\n pathbar: PropTypes.any,\n }),\n searchFilters: PropTypes.object,\n searchOveral: PropTypes.string,\n disabledSelectHint: PropTypes.string,\n isDisabledItem: PropTypes.func,\n onRedraw: PropTypes.func,\n emptyViewMode: PropTypes.oneOf(['all', 'items']),\n emptyView: PropTypes.any,\n};\n\nconst defaultProps = {\n id: undefined,\n dataUrl: undefined,\n operations: undefined,\n itemActions: undefined,\n columns: undefined,\n data: undefined,\n searchFilters: undefined,\n searchOveral: undefined,\n disabledSelectHint: undefined,\n isDisabledItem: undefined,\n onRedraw: undefined,\n emptyViewMode: undefined,\n emptyView: undefined,\n};\n\nconst JswList = convertToReactComponent(List, {\n propsList: Object.keys(propTypes),\n defaultProps,\n});\nJswList.displayName = 'JswList';\nJswList.propTypes = propTypes;\n\nexport default JswList;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport PropTypes from 'prop-types';\nimport { Tabs, Tab } from '@plesk/ui-library';\nimport { prepareUrl } from 'jsw';\nimport Link from 'components/common/Link';\n\nconst JswTabs = ({ items = undefined }) => items && items.length > 1 ? (\n <Tabs active={items.findIndex(({ containerCls }) => containerCls === 'active') + 1}>\n {items.map(({ title, href }, index) => (\n <Tab\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n title={title}\n component={Link}\n to={prepareUrl(href)}\n />\n ))}\n </Tabs>\n) : null;\n\nJswTabs.propTypes = {\n items: PropTypes.arrayOf(PropTypes.shape({\n title: PropTypes.string.isRequired,\n href: PropTypes.string.isRequired,\n containerCls: PropTypes.string,\n })),\n};\n\nexport default JswTabs;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useRef, useLayoutEffect } from 'react';\nimport { render } from 'jsw';\n\n// eslint-disable-next-line react/display-name\nconst convertToReactComponent = (JswComponent, { propsList = [], setters = {}, defaultProps = {} }) => props => {\n const containerRef = useRef();\n const componentRef = useRef();\n\n const [componentProps, containerProps] = Object.entries({ ...defaultProps, ...props }).reduce((res, [name, value]) => {\n res[propsList.includes(name) ? 0 : 1][name] = value;\n return res;\n }, [{}, {}]);\n\n const deps = propsList.map(name => {\n const value = componentProps[name];\n\n if (setters[name]) {\n componentRef.current?.[setters[name]](value);\n return null;\n }\n\n return value;\n });\n\n useLayoutEffect(() => {\n componentRef.current = new JswComponent(componentProps);\n render(containerRef.current, componentRef.current);\n\n return () => {\n componentRef.current.remove();\n componentRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [containerProps.key, ...deps]);\n\n return <div ref={containerRef} {...containerProps} />;\n};\n\nexport default convertToReactComponent;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { escapeHtml, prepareUrl, addStatusMessage, clearStatusMessages, bar, Locale, SmallButton, createElement as ce, api } from 'jsw';\nimport JswList from 'components/jsw/JswList';\nimport JswTabs from 'components/jsw/JswTabs';\nimport { withPageLayout } from 'components/layouts/PageLayout';\nimport { useNavigateCallback } from 'components/common/Link';\n\nconst Translate = Locale.getTranslate('admin.controllers.app.usage');\nconst listLocale = Locale.getSection('admin.components.lists.appusage');\n\nconst AppUsagePage = ({ isAdmin, tabs = [], data, searchFilters }) => {\n const navigate = useNavigateCallback();\n\n const operations = useMemo(() => isAdmin ? [\n {\n componentType: SmallButton,\n id: 'buttonCleanApplicationCache',\n attrs: { 'data-method': 'post' },\n title: listLocale.lmsg('buttonCleanApplicationCache'),\n description: listLocale.lmsg('buttonCleanApplicationCacheDescription'),\n addCls: 'sb-clean-app-cache',\n href: '/app/clear-cache',\n },\n data.data.length ? {\n componentType: SmallButton,\n id: 'buttonCheckForUpdates',\n title: listLocale.lmsg('buttonCheckForUpdates'),\n description: listLocale.lmsg('buttonCheckForUpdatesDescription'),\n addCls: 'sb-upload-new-app',\n handler() {\n api.post(prepareUrl('/app/get-updates-data/'))\n .then(result => {\n clearStatusMessages();\n let message = listLocale.lmsg(result.length ? 'foundUpdates' : 'noUpdates');\n result.forEach(({ name, version }) => {\n message += `<br>${name} ${version}`;\n });\n\n addStatusMessage('info', message);\n })\n .catch(() => addStatusMessage('error', listLocale.lmsg('updateFailed')));\n },\n } : null,\n {\n componentType: bar.Separator,\n },\n {\n componentType: SmallButton,\n id: 'buttonUpdateSettings',\n title: listLocale.lmsg('buttonUpdateSettings'),\n description: listLocale.lmsg('buttonUpdateSettingsDescription'),\n addCls: 'sb-app-configure',\n href: '/app/update-settings',\n },\n ] : null, [data.data.length, isAdmin]);\n\n const columns = useMemo(() => [\n {\n header: listLocale.lmsg('name'),\n sortable: true,\n dataIndex: 'name',\n renderer({ id, name, version, release }) {\n return ce(\n 'a',\n { href: prepareUrl(`/app/info/id/${id}`), onclick: navigate },\n `${escapeHtml(name)} (${escapeHtml(version)}-${escapeHtml(release)})`,\n );\n },\n },\n {\n header: listLocale.lmsg('numberOfInstances'),\n sortable: true,\n dataIndex: 'numberOfInstances',\n renderer({ numberOfInstances }) {\n return escapeHtml(numberOfInstances);\n },\n },\n ], [navigate]);\n\n return (\n <>\n <JswTabs items={tabs} />\n <p>{isAdmin ? <Translate content=\"hint\" /> : <Translate content=\"hintReseller\" />}</p>\n <JswList\n id=\"admin-app-usage-list\"\n data={data}\n dataUrl=\"/admin/app/usage-data\"\n searchFilters={searchFilters}\n operations={operations}\n columns={columns}\n />\n </>\n );\n};\n\nAppUsagePage.propTypes = {\n isAdmin: PropTypes.bool.isRequired,\n tabs: JswTabs.propTypes.items,\n data: JswList.propTypes.data.isRequired,\n searchFilters: JswList.propTypes.searchFilters.isRequired,\n};\n\nexport default withPageLayout(AppUsagePage);\n"],"names":["propTypes","id","PropTypes","dataUrl","operations","itemActions","columns","data","state","pager","locale","additional","pathbar","searchFilters","searchOveral","disabledSelectHint","isDisabledItem","onRedraw","emptyViewMode","emptyView","defaultProps","undefined","JswList","convertToReactComponent","List","propsList","Object","keys","displayName","JswTabs","items","length","_jsx","Tabs","active","findIndex","containerCls","children","map","title","href","index","Tab","component","Link","to","prepareUrl","isRequired","JswComponent","setters","props","containerRef","useRef","componentRef","componentProps","containerProps","entries","reduce","res","name","value","includes","deps","current","useLayoutEffect","render","remove","key","ref","Translate","Locale","getTranslate","listLocale","getSection","AppUsagePage","isAdmin","tabs","navigate","useNavigateCallback","useMemo","componentType","SmallButton","attrs","lmsg","description","addCls","handler","api","post","then","result","clearStatusMessages","message","forEach","version","addStatusMessage","catch","bar","Separator","header","sortable","dataIndex","renderer","release","ce","onclick","escapeHtml","numberOfInstances","_jsxs","_Fragment","content","withPageLayout"],"sourceRoot":""}
Submit
FILE
FOLDER
INFO
Name
Size
Permission
Action
info.js
5423 bytes
0644
info.js.map
16694 bytes
0644
uploaded.js
6334 bytes
0644
uploaded.js.map
18746 bytes
0644
usage.js
4331 bytes
0644
usage.js.map
13256 bytes
0644
N4ST4R_ID | Naxtarrr