Submit
Path:
~
/
/
opt
/
psa
/
admin
/
cp
/
public
/
javascript
/
views
/
admin
/
server
/
File Content:
tools.js.map
{"version":3,"file":"javascript/views/admin/server/tools.js?8508b0163fb586663c48","mappings":"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","sources":["webpack:///./views/admin/server/tools/PanelAccess.js","webpack:///./views/admin/server/tools/Tools.js","webpack:///./icons/32/colored-icons-sprite.svg"],"sourcesContent":["// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Drawer,\n ContentLoader,\n Paragraph,\n FormFieldRadioButtons,\n FormFieldText,\n StatusMessage,\n} from '@plesk/ui-library';\nimport { api, Locale } from 'jsw';\nimport { useModal } from 'hooks';\nimport { addToast } from 'helpers/toasts';\n\nconst PROXY_ENABLED = 'enabled';\nconst PROXY_DISABLED = 'disabled';\nconst PROXY_DOMAIN = 'domain';\n\nconst Translate = Locale.getTranslate('components.forms.panel-access');\n\nconst PanelAccess = ({ getAccessUrl, setAccessUrl, helpUrl, httpsPort }) => {\n const [isOpen, setIsOpen] = useModal('customize-panel-access');\n const [loading, setIsLoading] = useState(true);\n const [values, setValues] = useState(null);\n const [formErrors, setFormErrors] = useState(null);\n const [formState, setFormState] = useState(null);\n const [errors, setErrors] = useState(null);\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n setIsLoading(true);\n api.get(getAccessUrl)\n .then(data => {\n setValues({\n proxy: getProxyState(data),\n domainName: data.domainName,\n });\n if (data.status === 'error') {\n throw data;\n }\n })\n .catch(({ message }) => {\n addToast({ intent: 'danger', message });\n setIsOpen(false);\n })\n .finally(() => setIsLoading(false));\n }, [isOpen, getAccessUrl, setIsOpen]);\n\n const getProxyState = data => {\n if (!data.proxy) {\n return PROXY_DISABLED;\n }\n return data.domainName ? PROXY_DOMAIN : PROXY_ENABLED;\n };\n\n const onSubmit = async ({ proxy, domainName }) => {\n setFormErrors(null);\n setFormState(null);\n setErrors(null);\n if (proxy === PROXY_DOMAIN && !domainName) {\n setFormErrors({\n domainName: {\n isEmpty: <Translate content=\"domainNameIsRequired\" />,\n },\n });\n return;\n }\n\n setFormState('submit');\n const response = await api.post(setAccessUrl, {\n proxy: proxy !== PROXY_DISABLED,\n domainName: proxy === PROXY_DOMAIN ? domainName : '',\n });\n setFormState(null);\n\n if (!response || response.status !== 'error') {\n addToast({\n intent: 'success',\n message: <Translate content=\"successMessage\" />,\n });\n setIsOpen(false);\n return;\n }\n\n response.formMessages && Object.keys(response.formMessages).forEach(fieldName => setFormErrors({\n [fieldName]: response.formMessages[fieldName],\n }));\n\n if (response.messages) {\n setErrors(response.messages);\n }\n };\n\n const renderErrors = () => errors\n ? errors.map(error => (<StatusMessage intent=\"danger\" key={error}>{error}</StatusMessage>))\n : null;\n\n const renderContent = () => {\n if (loading) {\n return (\n <ContentLoader />\n );\n }\n\n return (\n <>\n {renderErrors()}\n <FormFieldRadioButtons\n name=\"proxy\"\n options={[\n {\n value: PROXY_ENABLED,\n label: <Translate content=\"proxyEnabled\" />,\n }, {\n value: PROXY_DOMAIN,\n label: <Translate content=\"proxyDomain\" />,\n indentFields: [\n <FormFieldText\n key=\"domainName\"\n name=\"domainName\"\n placeholder=\"www.example.com\"\n size=\"lg\"\n />,\n ],\n }, {\n value: PROXY_DISABLED,\n label: <Translate content=\"proxyDisabled\" params={{ httpsPort }} />,\n },\n ]}\n />\n </>\n );\n };\n\n return (\n <Drawer\n title={<Translate content=\"title\" />}\n size=\"sm\"\n isOpen={isOpen}\n onClose={() => setIsOpen(false)}\n form={{\n values,\n vertical: true,\n state: formState,\n applyButton: false,\n hideRequiredLegend: true,\n submitButton: { disabled: loading },\n onSubmit,\n errors: formErrors,\n }}\n data-type=\"customize-panel-access\"\n >\n <Paragraph>\n <Translate\n content=\"hint\"\n params={{\n httpsPort,\n link: helpUrl ?\n <a href={helpUrl} target=\"_blank\" id=\"linkOpenHelp\" rel=\"noopener noreferrer\">\n <Translate content=\"details\" />\n </a>\n : '',\n }}\n />\n </Paragraph>\n {renderContent()}\n </Drawer>\n );\n};\n\nPanelAccess.propTypes = {\n getAccessUrl: PropTypes.string.isRequired,\n setAccessUrl: PropTypes.string.isRequired,\n helpUrl: PropTypes.string.isRequired,\n httpsPort: PropTypes.string.isRequired,\n};\n\nexport { PanelAccess };\n\nconst PanelAccessWrapper = props => {\n const [isOpen] = useModal('customize-panel-access');\n const [isReady, setIsReady] = useState(false);\n\n useEffect(() => {\n if (isOpen) {\n setIsReady(true);\n }\n }, [isOpen]);\n\n if (isReady) {\n return (\n <PanelAccess {...props} />\n );\n }\n return null;\n};\n\nPanelAccessWrapper.propTypes = PanelAccess.propTypes;\n\nexport default PanelAccessWrapper;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport PropTypes from 'prop-types';\nimport { gql, useMutation } from '@apollo/client';\nimport { Paragraph, Tooltip, Grid, GridCol, Item, Icon, Label } from '@plesk/ui-library';\nimport { messageBox, clearStatusMessages, addStatusMessage, ReporterPopup, Locale } from 'jsw';\nimport Link from 'components/common/Link';\nimport { withPageLayout } from 'components/layouts/PageLayout';\nimport PanelAccess from './PanelAccess';\nimport coloredIcons from 'icons/32/colored-icons-sprite.svg';\n\nconst sectionsConfig = [\n {\n name: 'securityButtons',\n id: 'securityPanel',\n icon: 'protect',\n },\n {\n name: 'troubleshootingButtons',\n id: 'troubleshootingPanel',\n icon: 'support',\n },\n {\n name: 'serviceInstallationsButtons',\n id: 'servicesPanel',\n icon: 'manage',\n },\n {\n name: 'toolsAndResourcesButtons',\n id: 'resourcesPanel',\n icon: 'manage',\n },\n {\n name: 'generalButtons',\n id: 'generalPanel',\n icon: 'preferences',\n },\n {\n name: 'serverManagementButtons',\n id: 'serverManagementPanel',\n icon: 'server',\n },\n {\n name: 'statisticsButtons',\n id: 'statisticsPanel',\n icon: 'statistics',\n },\n {\n name: 'mailButtons',\n id: 'mailPanel',\n icon: 'mail',\n },\n {\n name: 'applicationsAndDatabasesButtons',\n id: 'applicationsAndDatabasesPanel',\n icon: 'applications-and-databases',\n },\n {\n name: 'panelButtons',\n id: 'panelPanel',\n icon: 'panel',\n },\n {\n name: 'uiButtons',\n id: 'uiPanel',\n icon: 'branding',\n },\n {\n name: 'myPleskButtons',\n id: 'myPleskPanel',\n icon: 'external-services',\n },\n {\n name: 'customButtons',\n id: 'customButtons',\n title: 'additionalServices',\n icon: 'custom-buttons',\n },\n];\n\nconst REBOOT_SERVER = gql`\n mutation RebootServer {\n rebootServer\n }\n`;\n\nconst SHUTDOWN_SERVER = gql`\n mutation ShutdownServer {\n shutdownServer\n }\n`;\n\nconst cls = 'admin-server-tools';\nconst Translate = Locale.getTranslate('admin.controllers.server.tools');\n\nconst Tools = props => {\n const { sections, panelAccess } = props;\n\n const [rebootServer] = useMutation(REBOOT_SERVER, { errorPolicy: 'all' });\n const [shutdownServer] = useMutation(SHUTDOWN_SERVER, { errorPolicy: 'all' });\n\n const handlers = {\n rebootServer() {\n const locale = Locale.getSection('admin.controllers.server.tools');\n const buttonsLocale = Locale.getSection('components.buttons');\n messageBox.show({\n type: messageBox.TYPE_YESNO,\n subtype: 'reboot',\n text: locale.lmsg('buttonServerRebootConfirmationTitle'),\n description: locale.lmsg('buttonServerRebootConfirmationDescription'),\n async onYesClick() {\n clearStatusMessages();\n try {\n const { errors } = await rebootServer();\n (errors || []).forEach(({ message }) => addStatusMessage('warning', message));\n } catch {}\n },\n buttonTitles: {\n yes: buttonsLocale.lmsg('yes'),\n no: buttonsLocale.lmsg('no'),\n },\n });\n },\n shutdownServer() {\n const locale = Locale.getSection('admin.controllers.server.tools');\n const buttonsLocale = Locale.getSection('components.buttons');\n messageBox.show({\n type: messageBox.TYPE_YESNO,\n subtype: 'shutdown',\n text: locale.lmsg('buttonShutdownConfirmationTitle'),\n description: locale.lmsg('buttonShutdownConfirmationDescription'),\n async onYesClick() {\n clearStatusMessages();\n try {\n const { errors } = await shutdownServer();\n (errors || []).forEach(({ message }) => addStatusMessage('warning', message));\n } catch {}\n },\n buttonTitles: {\n yes: buttonsLocale.lmsg('yes'),\n no: buttonsLocale.lmsg('no'),\n },\n });\n },\n 'AdminPanel.ServerTools.showReporterPopup'({ props: { supportUrl } }) {\n new ReporterPopup({\n supportUrl,\n cls: 'popup-panel',\n locale: Locale.getSection('components.issue-reporter'),\n });\n },\n };\n\n const getHandler = name => {\n if (handlers[name]) {\n return e => {\n e.preventDefault();\n handlers[name]({ props });\n };\n }\n return null;\n };\n const maxColumnsNumber = ({ width }) => {\n if (width > 1800) {\n return 5;\n }\n\n if (width > 1100) {\n return 4;\n }\n\n if (width > 600) {\n return 3;\n }\n\n return 2;\n };\n\n return (\n <div data-id=\"tools-list\">\n <Paragraph>\n <Translate content=\"pageHint\" />\n </Paragraph>\n <Grid\n minColumnWidth={150}\n maxColumnsNumber={maxColumnsNumber}\n sm={null}\n className={`${cls}__sections`}\n gap=\"md\"\n >\n {sectionsConfig.filter(({ name }) => sections[name]).map(({ name, id, icon, title }) => (\n <GridCol key={id}>\n <Item\n id={id}\n icon={\n <Icon size=\"32\">\n <svg focusable=\"false\" aria-hidden=\"true\">\n <use href={`${coloredIcons}#${icon}`} />\n </svg>\n </Icon>\n }\n title={\n <span className={`${cls}__section-title`}>\n <Translate content={title || id} />\n </span>\n }\n >\n <ul\n className={`${cls}__section-content`}\n id={`${id}-tools-list`}\n data-type=\"tools-section-content\"\n >\n {sections[name].map(({ id, description, href, target, title, handler, attention, isNew }) => {\n const link = (\n <Link\n to={href}\n target={target}\n onClick={getHandler(handler)}\n >\n {attention\n ? <span className=\"hint-attention\">{title}</span>\n : title}\n </Link>\n );\n\n return (\n <li key={id} id={id} className={`${cls}__section-item`}>\n {description ? (\n <Tooltip title={description}>\n <>\n {link}\n {isNew && (\n <>\n {' '}\n <Label intent=\"success\"><Translate content=\"isNew\" /></Label>\n </>\n )}\n </>\n </Tooltip>\n ) : link}\n </li>\n );\n })}\n </ul>\n </Item>\n </GridCol>\n ))}\n </Grid>\n <PanelAccess {...panelAccess} />\n </div>\n );\n};\n\nTools.propTypes = {\n sections: PropTypes.object.isRequired,\n panelAccess: PropTypes.object.isRequired,\n};\n\nexport default withPageLayout(Tools);\n","module.exports = Jsw.skinUrl + \"/icons/32/colored-icons-sprite.svg?40813ba53ee2156938a4d03eebb2e367\";"],"names":["PROXY_ENABLED","PROXY_DISABLED","PROXY_DOMAIN","Translate","Locale","getTranslate","PanelAccess","getAccessUrl","setAccessUrl","helpUrl","httpsPort","isOpen","setIsOpen","useModal","loading","setIsLoading","useState","values","setValues","formErrors","setFormErrors","formState","setFormState","errors","setErrors","useEffect","api","get","then","data","proxy","getProxyState","domainName","status","catch","message","addToast","intent","finally","_jsxs","Drawer","title","_jsx","content","size","onClose","form","vertical","state","applyButton","hideRequiredLegend","submitButton","disabled","onSubmit","async","isEmpty","response","post","formMessages","Object","keys","forEach","fieldName","messages","children","Paragraph","params","link","href","target","id","rel","ContentLoader","_Fragment","map","error","StatusMessage","FormFieldRadioButtons","name","options","value","label","indentFields","FormFieldText","placeholder","propTypes","PropTypes","isRequired","PanelAccessWrapper","props","isReady","setIsReady","sectionsConfig","icon","REBOOT_SERVER","gql","SHUTDOWN_SERVER","cls","Tools","sections","panelAccess","rebootServer","useMutation","errorPolicy","shutdownServer","handlers","locale","getSection","buttonsLocale","messageBox","show","type","TYPE_YESNO","subtype","text","lmsg","description","onYesClick","clearStatusMessages","addStatusMessage","buttonTitles","yes","no","supportUrl","ReporterPopup","getHandler","e","preventDefault","Grid","minColumnWidth","maxColumnsNumber","width","sm","className","gap","filter","GridCol","Item","Icon","focusable","coloredIcons","handler","attention","isNew","Link","to","onClick","Tooltip","Label","withPageLayout","module","exports","Jsw","skinUrl"],"sourceRoot":""}
Edit
Rename
Chmod
Delete
FILE
FOLDER
INFO
Name
Size
Permission
Action
preview-domain-settings.js
10404 bytes
0644
preview-domain-settings.js.map
31985 bytes
0644
tools.js
6976 bytes
0644
tools.js.map
24006 bytes
0644
N4ST4R_ID | Naxtarrr