Submit
Path:
~
/
/
opt
/
psa
/
admin
/
cp
/
public
/
javascript
/
components
/
pages
/
File Content:
DatabasesPage.js.map
{"version":3,"file":"javascript/components/pages/DatabasesPage.js?30c12c3972a6e532b441","mappings":"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","sources":["webpack:///./icons/24/ sync ^\\.\\/.*\\.svg$","webpack:///./components/common/ButtonWithConfirmation.tsx","webpack:///./components/common/DatabasePasswordPromptDrawer/DatabasePasswordPromptDrawer.tsx","webpack:///./components/pages/DatabasesPage/CustomToolbarButtons.tsx","webpack:///./components/pages/DatabasesPage/DatabaseButtons.tsx","webpack:///./components/pages/DatabasesPage/DatabaseList.js","webpack:///./components/pages/DatabasesPage/DatabaseSummary.js","webpack:///./components/pages/DatabasesPage/DatabasesPage.js","webpack:///./components/pages/DatabasesPage/InPlaceSelect.tsx","webpack:///./components/pages/DatabasesPage/openWebAdmin.ts","webpack:///./components/pages/DatabasesPage/usePasswordPrompt.ts","webpack:///./components/tabs/DatabasesTabs.tsx","webpack:///./helpers/getGraphQlErrorMessage.ts","webpack:///./helpers/graphql/assertNodeTypename.ts","webpack:///./hooks/useCallbackRegistry.ts","webpack:///./icons/24/colored-icons-sprite.svg","webpack:///./icons/24/mariadb.svg","webpack:///./icons/24/mssql.svg","webpack:///./icons/24/mysql.svg","webpack:///./icons/24/percona.svg","webpack:///./icons/24/postgresql.svg","webpack:///./icons/24/sitejet-ai.svg","webpack:///./queries/DatabasesTabs.graphql"],"sourcesContent":["var map = {\n\t\"./colored-icons-sprite.svg\": 1876,\n\t\"./mariadb.svg\": 2607,\n\t\"./mssql.svg\": 2608,\n\t\"./mysql.svg\": 2609,\n\t\"./percona.svg\": 2610,\n\t\"./postgresql.svg\": 2611,\n\t\"./sitejet-ai.svg\": 1889\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 2606;","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { Popover, Button, ButtonProps, Paragraph, PopoverProps } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\nimport { useState, ReactNode, cloneElement } from 'react';\n\nconst ButtonsTranslate = Locale.getTranslate('components.buttons');\n\ntype ButtonWithConfirmationProps = ButtonProps &{\n children?: ReactNode;\n confirmationText: ReactNode;\n onClick: () => void;\n isCritical?: boolean;\n isProcessing?: boolean;\n target?: PopoverProps['target'];\n};\n\nconst ButtonWithConfirmation = ({\n children,\n confirmationText,\n onClick,\n isCritical = false,\n isProcessing = false,\n target,\n ...props\n}: ButtonWithConfirmationProps) => {\n const [visible, setVisible] = useState(false);\n\n const button = (\n <Button\n onClick={() => setVisible(true)}\n state={isProcessing ? 'loading' : undefined}\n {...props}\n >\n {isProcessing ? <ButtonsTranslate content=\"wait\" /> : children}\n </Button>\n );\n\n return (\n <Popover\n target={target ? cloneElement(target as React.ReactElement, { onClick: () => setVisible(true) }) : button}\n placement=\"top\"\n visible={visible}\n onClose={() => setVisible(false)}\n >\n <Paragraph>{confirmationText}</Paragraph>\n <Button\n id=\"buttonYes\"\n intent={isCritical ? 'danger' : 'primary'}\n onClick={() => {\n setVisible(false);\n onClick();\n }}\n >\n <ButtonsTranslate content=\"yes\" />\n </Button>\n {' '}\n <Button id=\"buttonCancel\" onClick={() => setVisible(false)} ghost>\n <ButtonsTranslate content=\"cancel\" />\n </Button>\n </Popover>\n );\n};\n\nexport default ButtonWithConfirmation;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useState } from 'react';\nimport { Drawer, DrawerProps, Form, FormFieldPassword } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\n\nconst Translate = Locale.getTranslate('components.common.DatabasePasswordPrompt');\nconst ButtonsTranslate = Locale.getTranslate('components.buttons');\n\ntype MultistepProps = {\n isMultistep: true;\n title: DrawerProps['title'];\n} | {\n isMultistep?: false;\n}\n\nexport type DatabasePasswordPromptDrawerProps = {\n onPasswordSubmit?: (password: string) => void;\n userLogin: string;\n} & MultistepProps & Omit<DrawerProps, 'title'>;\n\nconst DatabasePasswordPromptDrawer = ({\n isMultistep = false,\n onPasswordSubmit,\n userLogin,\n isOpen,\n onClose,\n size = 'sm',\n ...props\n}: DatabasePasswordPromptDrawerProps) => {\n const [isPasswordSubmitted, setIsPasswordSubmitted] = useState(false);\n const [password, setPassword] = useState('');\n\n let drawerProps: DrawerProps = {\n title: <Translate content=\"title\" />,\n subtitle: <Translate content=\"description\" params={{ login: <b>{userLogin}</b> }} />,\n form: (\n <Form\n key=\"passwordForm\"\n onSubmit={({ password }) => {\n if (!password) {\n return;\n }\n onPasswordSubmit?.(password);\n setIsPasswordSubmitted(true);\n }}\n submitButton={{\n children: <ButtonsTranslate content=\"ok\" />,\n disabled: !password.length,\n }}\n cancelButton={{ children: <ButtonsTranslate content=\"cancel\" /> }}\n applyButton={false}\n onFieldChange={(name, value) => {\n if (name === 'password') {\n setPassword(value);\n }\n }}\n >\n <FormFieldPassword\n name=\"password\"\n label={<Translate content=\"password\" />}\n autoFocus\n size=\"fill\"\n hideGenerateButton\n hidePasswordMeter\n />\n </Form>\n ),\n };\n\n if (isMultistep && isPasswordSubmitted) {\n drawerProps = props as DrawerProps;\n }\n\n return (\n // eslint-disable-next-line @plesk/plesk/data-type-required\n <Drawer\n isOpen={isOpen}\n onClose={onClose}\n size={size}\n {...drawerProps}\n />\n );\n};\n\nexport default DatabasePasswordPromptDrawer;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { Button, ToolbarGroup } from '@plesk/ui-library';\nimport { useNavigateCallback } from 'components/common/Link';\n\ntype Button = {\n id: string,\n title: string;\n description?: string;\n href: string;\n};\n\ntype CustomToolbarButtonsProps = {\n buttons: Button[],\n};\n\nconst CustomToolbarButtons = ({ buttons }: CustomToolbarButtonsProps) => {\n const navigate = useNavigateCallback();\n\n return (\n <ToolbarGroup title=\"\">\n {buttons.map(({ id, title, href, description }) => (\n <Button\n key={id}\n id={id}\n component=\"a\"\n role=\"link\"\n href={href}\n tooltip={description}\n onClick={navigate}\n >\n {title}\n </Button>\n ))}\n </ToolbarGroup>\n );\n};\n\nexport default CustomToolbarButtons;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { AnchorHTMLAttributes } from 'react';\nimport { Link } from 'react-router-dom';\nimport { ItemList, Item, Icon, IconProps, ItemProps } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\nimport coloredIcons from 'icons/24/colored-icons-sprite.svg';\nimport { useNavigateCallback } from 'components/common/Link';\nimport { addToast } from 'helpers/toasts';\n\nconst Translate = Locale.getTranslate('components.pages.Databases.List');\nconst locale = Locale.getSection('components.pages.Databases.List');\n\nconst ListIcon = (props: IconProps) => (\n <Icon\n size=\"24\"\n className=\"smb-web-view-dynamic-list-actions__item-icon smb-web-view-dynamic-list-actions__item-icon--colored\"\n {...props}\n />\n);\n\nconst ColoredIcon = ({ icon }: { icon: string }) => (\n <svg focusable=\"false\">\n <use href={`${coloredIcons}#${icon}`} />\n </svg>\n);\n\nconst CustomButton = (props: AnchorHTMLAttributes<HTMLAnchorElement>) => (\n <a onClick={useNavigateCallback()} {...props} />\n);\n\ntype RegularButton = {\n name: string;\n};\n\ntype CustomButton = {\n id: string,\n name: string,\n title: string;\n hint: string;\n icon: string;\n href: string;\n};\n\ntype ButtonConfig = RegularButton | CustomButton;\n\ninterface DatabaseButtonsProps {\n databaseId: number;\n buttons: ButtonConfig[];\n subscriptionStatus: boolean;\n urlPrefix: string;\n onCheckAndRepair: () => void;\n onWebAdmin: () => void;\n}\n\nconst DatabaseButtons = ({\n databaseId,\n buttons,\n urlPrefix,\n subscriptionStatus,\n onCheckAndRepair,\n onWebAdmin,\n}: DatabaseButtonsProps) => {\n const buttonsProps: Record<\n string,\n {\n icon: string;\n props: (ItemProps | ItemProps<typeof Link>) & { 'data-action-name'?: string };\n }\n > = {\n openWebAdmin: {\n icon: 'phpmyadmin',\n props: { 'data-action-name': 'openWebAdmin', onClick: onWebAdmin },\n },\n connectionInfo: {\n icon: 'connection',\n props: {\n component: Link,\n 'data-action-name': 'connectionInfo',\n to: `${urlPrefix}${databaseId}/connection-info`,\n },\n },\n downloadDump: {\n icon: 'export',\n props: {\n component: Link,\n 'data-action-name': 'downloadDump',\n to: subscriptionStatus ? `${urlPrefix}${databaseId}/dump` : '',\n onClick: () => {\n if (!subscriptionStatus) {\n addToast({\n intent: 'danger',\n message: (\n <Translate\n content=\"dumpSubscriptionIsTurnedOff\"\n params={{ action: locale.lmsg('dumpExport') }}\n />\n ),\n });\n }\n },\n },\n },\n uploadDump: {\n icon: 'import',\n props: {\n component: Link,\n 'data-action-name': 'uploadDump',\n to: subscriptionStatus ? `${urlPrefix}${databaseId}/import` : '',\n onClick: () => {\n if (!subscriptionStatus) {\n addToast({\n intent: 'danger',\n message: (\n <Translate\n content=\"dumpSubscriptionIsTurnedOff\"\n params={{ action: locale.lmsg('dumpImport') }}\n />\n ),\n });\n }\n },\n },\n },\n copy: {\n icon: 'copy',\n props: {\n component: Link,\n 'data-action-name': 'copyDb',\n to: `${urlPrefix}${databaseId}/copy`,\n },\n },\n checkDatabase: {\n icon: 'repair',\n props: { 'data-action-name': 'checkDatabase', onClick: () => onCheckAndRepair() },\n },\n assignToSubscription: {\n icon: 'globe',\n props: {\n component: Link,\n 'data-action-name': 'assignToSubscription',\n to: `${urlPrefix}${databaseId}/assign`,\n },\n },\n };\n\n return (\n <div className=\"smb-web-view-dynamic-list-actions\" data-cy={`database-actions-${databaseId}`}>\n <ItemList minColumnWidth={220} gap=\"xs\" className=\"smb-web-view-dynamic-list-item-list\">\n {buttons.map(button => {\n if (button.name in buttonsProps) {\n const buttonProps = buttonsProps[button.name as keyof typeof buttonsProps];\n const { component, ...restButtonProps } = buttonProps.props;\n\n return (\n <Item\n key={button.name}\n className=\"smb-web-view-dynamic-list-actions__item\"\n title={<Translate content={button.name} />}\n icon={\n <ListIcon>\n <ColoredIcon icon={buttonProps.icon} />\n </ListIcon>\n }\n component={component}\n {...restButtonProps}\n />\n );\n }\n\n const { name, title, icon, href, hint } = button as CustomButton;\n\n return (\n <Item\n key={name}\n className=\"smb-web-view-dynamic-list-actions__item\"\n title={title}\n icon={<ListIcon src={icon} />}\n component={CustomButton}\n href={href}\n tooltip={hint}\n />\n );\n\n return null;\n })}\n </ItemList>\n </div>\n );\n};\n\nexport default DatabaseButtons;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useMutation, gql } from '@apollo/client';\nimport { useParams, Link } from 'react-router-dom';\nimport { useState, useEffect, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n ListActions,\n ListAction,\n Status,\n ToolbarExpander,\n ToolbarGroup,\n SearchBar,\n Button,\n List,\n ListEmptyView,\n Toolbar,\n Tooltip,\n Action,\n copyToClipboard,\n Text,\n} from '@plesk/ui-library';\nimport { Locale, api } from 'jsw';\nimport ButtonWithConfirmation from 'components/common/ButtonWithConfirmation';\nimport DatabasePasswordPromptDrawer from 'components/common/DatabasePasswordPromptDrawer';\nimport { addToast } from 'helpers/toasts';\nimport CustomToolbarButtons from './CustomToolbarButtons';\nimport InPlaceSelect from './InPlaceSelect';\nimport DatabaseButtons from './DatabaseButtons';\nimport DatabaseSummary from './DatabaseSummary';\nimport { usePasswordPrompt } from './usePasswordPrompt';\nimport { openWebAdmin } from './openWebAdmin';\nimport { useList } from 'hooks';\nimport { buildUrl } from 'helpers/buildUrl';\nimport { getGraphQlErrorMessage } from 'helpers/getGraphQlErrorMessage';\n\nimport './DatabaseList.less';\n\nconst Translate = Locale.getTranslate('components.pages.Databases.List');\nconst locale = Locale.getSection('components.pages.Databases.List');\n\nconst DELETE_DATABASE_MUTATION = gql`\n mutation DeleteDatabase($input: DeleteDatabaseInput!) {\n deleteDatabase(input: $input) {\n ids\n }\n }\n`;\n\nconst DatabaseList = ({\n domainId,\n data: initialData = {},\n subscriptionStatus = false,\n allowCreateDatabase: initialAllowCreateDatabase = false,\n assignableDomains: initialAssignableDomains = [],\n registerListReloader,\n}) => {\n const params = useParams();\n const isDomainRoute = params.domainId !== undefined;\n\n const domainUrlPrefix = isDomainRoute ? '' : `${domainId}/`;\n const dataUrl = `/smb/database/list-data/domainId/${domainId}`;\n\n const [data, setData] = useState(initialData);\n const [allowCreateDatabase, setAllowCreateDatabase] = useState(initialAllowCreateDatabase);\n const [assignableDomains, setAssignableDomains] = useState(initialAssignableDomains);\n const [sizes, setSizes] = useState([]);\n\n const passwordPrompt = usePasswordPrompt();\n\n const requestSizes = useCallback(async () => {\n try {\n const data = await api.get(`/smb/database/list-size-data/domainId/${domainId}`);\n setSizes(data);\n } catch (error) {\n if (Array.isArray(error.statusMessages)) {\n return error.statusMessages.forEach(\n ({ content }) => addToast({ intent: 'danger', message: content }),\n );\n }\n addToast({ intent: 'danger', message: error.message });\n }\n }, [domainId]);\n\n useEffect(() => {\n requestSizes();\n }, [requestSizes]);\n\n const handleRequest = async ({ url = dataUrl, params } = {}) => {\n if (params) {\n url = buildUrl(url, params);\n }\n const { data, assignableDomains, allowCreateDatabase } = await api.get(url);\n setData(data);\n setAssignableDomains(assignableDomains);\n setAllowCreateDatabase(allowCreateDatabase);\n };\n\n const {\n renderPagination,\n sortParams,\n loading,\n filter,\n handleFilter,\n handleReload,\n } = useList({\n initialFilter: Object.entries(data.state.searchFilters ?? {})\n .reduce((acc, [key, { searchText }]) => ({ ...acc, [key]: searchText }), {}),\n pagination: {\n current: data.pager.current,\n totalPage: data.pager.pageCount,\n itemsPerPage: data.pager.itemCountPerPage,\n async onSort() {},\n async onPageChange(page) {\n await handleRequest({ params: { page } });\n },\n async onChangeItemsPerPage(itemPerPage) {\n await handleRequest({ params: { 'items-per-page': itemPerPage } });\n },\n },\n sort: {\n direction: data.state.sortDirection === 'up' ? 'ASC' : 'DESC',\n column: data.state.sortField,\n async onChange({ sortColumn, sortDirection }) {\n const url = `${dataUrl}/sort-field/${sortColumn}/sort-dir/${sortDirection === 'ASC' ? 'up' : 'down'}`;\n await handleRequest({ url });\n },\n },\n async onFilter(params) {\n await handleRequest({ params: Object.entries(params).reduce((acc, [key, value]) => ({ ...acc, [`searchFilter[${key}][searchText]`]: value }), {}) });\n },\n async onReload() {\n requestSizes();\n await handleRequest();\n },\n });\n registerListReloader(() => handleReload());\n\n const hasFilter = !!filter.name;\n\n const [deleteDatabase] = useMutation(DELETE_DATABASE_MUTATION, {\n awaitRefetchQueries: true,\n onCompleted: () => {\n addToast({\n intent: 'success',\n message: <Translate content=\"databaseRemoved\" />,\n });\n handleReload();\n },\n onError: error => {\n addToast({ intent: 'danger', message: getGraphQlErrorMessage(error) });\n },\n });\n\n const handleDelete = async id => {\n await deleteDatabase({ variables: { input: { ids: [btoa(`Database:${id}`)] } } });\n };\n\n const handleAssignToDomain = async (databaseId, domainId) => {\n await api.post('/smb/database/set-related-domain', {\n id: databaseId,\n domainId,\n });\n handleReload();\n };\n\n const handleCheckAndRepair = async databaseId => {\n try {\n await api.post(`/smb/database/check/id/${databaseId}`);\n handleReload();\n } catch ({ message }) {\n addToast({\n intent: 'danger',\n message,\n });\n }\n };\n\n const handleWebAdmin = ({ id, askPasswordForWebadmin, webadminUserLogin }) => passwordPrompt.getButtonClickHandler({\n isPasswordRequired: askPasswordForWebadmin,\n userLogin: webadminUserLogin,\n onPasswordlessClick: () => openWebAdmin(id),\n onPasswordSubmit: dbPassword => openWebAdmin(id, { dbPassword }),\n });\n\n const renderRowBody = row => (\n <>\n <DatabaseButtons\n databaseId={row.id}\n urlPrefix={domainUrlPrefix}\n subscriptionStatus={subscriptionStatus}\n buttons={row.actions.filter(action => action !== 'separator')}\n onCheckAndRepair={() => handleCheckAndRepair(row.id)}\n onWebAdmin={handleWebAdmin(row)}\n />\n <DatabaseSummary\n domainId={domainId}\n database={row}\n sizeData={sizes.find(({ id }) => id === row.id)}\n />\n </>\n );\n\n const addButton = (\n <Button component={Link} to={`${domainUrlPrefix}add`} intent=\"primary\" icon=\"plus\" data-action-name=\"btn-add\">\n <Translate content=\"add\" />\n </Button>\n );\n const { additional: { operations: customToolbarButtons } } = data;\n\n const list = (\n <List\n loading={loading}\n data={data.data}\n data-test-id=\"databases-list\"\n rowKey=\"id\"\n filtered={hasFilter}\n renderRowBody={renderRowBody}\n totalRows={data.pager.totalItemCount}\n {...sortParams}\n pagination={renderPagination()}\n toolbar={\n <Toolbar>\n {allowCreateDatabase && (\n <ToolbarGroup title=\"\">\n {addButton}\n </ToolbarGroup>\n )}\n {customToolbarButtons.length > 0 && (\n <CustomToolbarButtons buttons={customToolbarButtons} />\n )}\n <ToolbarExpander />\n <ToolbarGroup groupable={false} title=\"\">\n <SearchBar name=\"search\" inputProps={{ value: filter.name, placeholder: locale.lmsg('find') }} onSearch={name => handleFilter({ name })} />\n </ToolbarGroup>\n </Toolbar>\n }\n columns={[\n {\n type: 'title',\n title: <Translate content=\"databaseColumn\" />,\n sortable: true,\n key: 'name',\n width: '28%',\n render: ({ name, fork, type }) => {\n const realType = (fork || type).toLowerCase();\n\n return (\n <Status\n icon={{\n size: '24',\n src: require(`icons/24/${realType}.svg`),\n }}\n >\n {name}\n <div className=\"database-page-title-actions\">\n <Tooltip title={<Translate content=\"copyDatabaseName\" />}>\n <Action\n icon={{ name: 'copy', size: 12 }}\n className=\"database-page-title-actions__action\"\n onClick={() => {\n copyToClipboard(name);\n addToast({\n intent: 'success',\n message: (\n <Translate\n content=\"copySuccess\"\n params={{ name: <Text bold>{name}</Text> }}\n />\n ),\n });\n }}\n data-action-name=\"copyDatabaseName\"\n />\n </Tooltip>\n </div>\n </Status>\n );\n },\n },\n {\n type: 'title',\n title: <Translate content=\"relatedToColumn\" />,\n key: 'relatedTo',\n render: ({ isUsedByApp, assignedDomainName, id }) => {\n if (isUsedByApp) {\n return assignedDomainName && <Translate content=\"relatedToDomains\" params={{ domains: assignedDomainName }} />;\n }\n\n const relatedDomains = assignableDomains\n .filter(({ lastDatabaseSelectedId }) => id === lastDatabaseSelectedId);\n const relatedDomainNames = relatedDomains.map(({ name }) => name);\n\n let label = <Translate content=\"relatedToDomains\" params={{ domains: relatedDomainNames.join(', ') }} />;\n let editButtonProps = {};\n\n if (relatedDomains.length === 0) {\n label = null;\n editButtonProps = {\n icon: null,\n children: <Translate content={'noRelatedDomains'} />,\n 'data-action-name': 'assign',\n };\n }\n\n return (\n <InPlaceSelect\n value={relatedDomains[0]?.id ?? ''}\n onChange={domainId => handleAssignToDomain(id, domainId)}\n label={label}\n editButtonProps={editButtonProps}\n >\n <option value=\"\">{locale.lmsg('noDomainRelations')}</option>\n {assignableDomains.map(({ id, name }) => (<option key={id} value={id}>{name}</option>))}\n </InPlaceSelect>\n );\n },\n },\n {\n type: 'actions',\n render: ({\n id,\n name,\n allowWebadmin,\n askPasswordForWebadmin,\n webadminUserLogin,\n hasConnectionError,\n isUsedByApp,\n type,\n MSSQLClientInstruction,\n MSSQLClientInstructionLink,\n }) => (\n <ListActions>\n {type.toLowerCase() === 'mssql' ?\n <ListAction\n primary\n icon=\"my-little-admin\"\n component=\"a\"\n href={MSSQLClientInstructionLink}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n hidden={!MSSQLClientInstruction}\n tooltip={locale.lmsg('downloadMsSqlClientHint')}\n tooltipAsLabel\n >\n {locale.lmsg('downloadMsSqlClient')}\n </ListAction>\n :\n <ListAction\n primary\n icon=\"phpmyadmin\"\n data-cy=\"phpmyadmin\"\n hidden={!allowWebadmin}\n disabled={hasConnectionError}\n tooltip={locale.lmsg('webadminHint')}\n tooltipAsLabel\n onClick={handleWebAdmin({ id, askPasswordForWebadmin, webadminUserLogin })}\n >\n {locale.lmsg('webadmin')}\n </ListAction>}\n <ListAction\n primary\n icon=\"recycle\"\n data-action-name=\"deleteConfirmation\"\n disabled={isUsedByApp}\n tooltip={isUsedByApp ? <Translate content=\"removeButtonDisabledHint\" /> : null}\n tooltipAsLabel\n >\n {({ wrap }) => (\n <ButtonWithConfirmation\n target={wrap(locale.lmsg('remove'))}\n confirmationText={<Translate content=\"removeConfirmation\" params={{ name: (<b>{name}</b>) }} />}\n isCritical\n onClick={() => handleDelete(id)}\n />\n )}\n </ListAction>\n </ListActions>\n ),\n },\n ]}\n emptyView={(\n <ListEmptyView\n actions={!hasFilter && allowCreateDatabase && addButton}\n />\n )}\n />\n );\n\n return (\n <>\n {list}\n <DatabasePasswordPromptDrawer {...passwordPrompt.drawerProps} />\n </>\n );\n};\n\nDatabaseList.propTypes = {\n allowCreateDatabase: PropTypes.bool,\n subscriptionStatus: PropTypes.bool,\n domainId: PropTypes.number.isRequired,\n assignableDomains: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired,\n lastDatabaseSelectedId: PropTypes.number,\n }).isRequired),\n data: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.number.isRequired,\n name: PropTypes.string.isRequired,\n fork: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n serverHost: PropTypes.string.isRequired,\n serverPort: PropTypes.string.isRequired,\n typeTitle: PropTypes.string.isRequired,\n serverId: PropTypes.number.isRequired,\n allowWebadmin: PropTypes.bool.isRequired,\n hasConnectionError: PropTypes.bool.isRequired,\n isUsedByApp: PropTypes.bool.isRequired,\n assignedDomainName: PropTypes.string,\n actions: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string.isRequired,\n })),\n users: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.number.isRequired,\n login: PropTypes.string.isRequired,\n })),\n }).isRequired),\n registerListReloader: PropTypes.func.isRequired,\n};\n\nexport default DatabaseList;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport PropTypes from 'prop-types';\nimport { Status, Text } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\nimport Link from 'components/common/Link';\n\nconst Translate = Locale.getTranslate('components.pages.Databases.DatabaseSummary');\n\nconst DatabaseSummary = ({\n domainId,\n database: {\n id: databaseId,\n serverHost,\n serverPort,\n typeTitle,\n hasConnectionError,\n users,\n },\n sizeData = null,\n}) => {\n const renderUserInfo = () => {\n if (users.length > 0) {\n const usersToDisplay = users.slice(0, 4);\n\n return (\n <>\n <Text intent=\"muted\"><Translate content={users.length === 1 ? 'user' : 'users'} /></Text>{' '}\n {usersToDisplay.map(({ id, login }, index) => (\n <span key={id}>\n <Link to={`/smb/database/edit-user/id/${id}`}>{login}</Link>\n {index < usersToDisplay.length - 1 ? ', ' : ''}\n </span>\n ))}\n {usersToDisplay.length < users.length && (\n <span>\n {'... '}\n <Link\n to={`/smb/database/users-list/domainId/${domainId}`}\n className=\"smb-web-view-dynamic-list-item-summary__item-static-link\"\n >\n <Translate content=\"seeAll\" />\n </Link>\n </span>\n )}\n </>\n );\n }\n\n return (\n <>\n <Text intent=\"danger\"><Translate content=\"noUser\" /></Text>{' '}\n {!hasConnectionError && (\n <Link to={`/smb/database/create-user/domainId/${domainId}/database/${databaseId}`}>\n <Translate content=\"createUser\" />\n </Link>\n )}\n </>\n );\n };\n\n const renderSize = () => {\n if (hasConnectionError) {\n return null;\n }\n\n if (!sizeData) {\n return (\n <div className=\"smb-web-view-dynamic-list-item-summary__item\">\n <Status progress>\n <Translate content=\"calculatingSize\" />\n </Status>\n </div>\n );\n }\n\n return (\n <>\n <div className=\"smb-web-view-dynamic-list-item-summary__item\">\n <Text intent=\"muted\"><Translate content=\"tablesCount\" /></Text>{' '}\n {sizeData.tables}\n </div>\n <div className=\"smb-web-view-dynamic-list-item-summary__item\">\n <Text intent=\"muted\"><Translate content=\"size\" /></Text>{' '}\n {sizeData.size}\n </div>\n </>\n );\n };\n\n return (\n <div className=\"smb-web-view-dynamic-list-item-summary\">\n <div className=\"smb-web-view-dynamic-list-item-summary__list\">\n <div className=\"smb-web-view-dynamic-list-item-summary__item\">\n <Text intent=\"muted\"><Translate content=\"host\" /></Text>{' '}\n {serverHost}{':'}{serverPort} {`(${typeTitle})`}\n {hasConnectionError && <Text intent=\"danger\">{' '}{<Translate content=\"serverUnavailable\" />}</Text>}\n </div>\n <div className=\"smb-web-view-dynamic-list-item-summary__item\">\n {renderUserInfo()}\n </div>\n {renderSize()}\n </div>\n </div>\n );\n};\n\nDatabaseSummary.propTypes = {\n domainId: PropTypes.number.isRequired,\n database: PropTypes.shape({\n id: PropTypes.number.isRequired,\n serverHost: PropTypes.string.isRequired,\n serverPort: PropTypes.string.isRequired,\n typeTitle: PropTypes.string.isRequired,\n hasConnectionError: PropTypes.bool.isRequired,\n users: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.number.isRequired,\n login: PropTypes.string.isRequired,\n })),\n }).isRequired,\n sizeData: PropTypes.shape({\n tables: PropTypes.number.isRequired,\n size: PropTypes.string.isRequired,\n }),\n};\n\nexport default DatabaseSummary;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { Outlet } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport DatabaseList from './DatabaseList';\nimport useCallbackRegistry from 'hooks/useCallbackRegistry';\nimport DatabasesTabs from 'components/tabs/DatabasesTabs';\nimport { withPageLayout } from 'components/layouts/PageLayout';\n\nconst DatabasesPage = ({\n data,\n domainId,\n assignableDomains,\n subscriptionStatus = false,\n allowCreateDatabase = false,\n}) => {\n const reloadListRegistry = useCallbackRegistry();\n\n return (\n <>\n <DatabasesTabs domainId={domainId} />\n <DatabaseList\n key={domainId}\n allowCreateDatabase={allowCreateDatabase}\n subscriptionStatus={subscriptionStatus}\n domainId={domainId}\n data={data}\n assignableDomains={assignableDomains}\n registerListReloader={reloadListRegistry.setCallback}\n />\n <Outlet\n context={{\n reloadDatabaseList: reloadListRegistry.callback,\n }}\n />\n </>\n );\n};\n\nDatabasesPage.propTypes = {\n allowCreateDatabase: PropTypes.bool,\n subscriptionStatus: PropTypes.bool,\n data: PropTypes.object.isRequired,\n domainId: PropTypes.string.isRequired,\n assignableDomains: PropTypes.array.isRequired,\n};\n\nexport default withPageLayout(DatabasesPage);\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { Select, Button, type ButtonProps, type SelectProps } from '@plesk/ui-library';\nimport { useState, type ReactNode } from 'react';\nimport { Locale } from 'jsw';\n\nconst Translate = Locale.getTranslate('components.pages.Databases.InPlaceSelect');\n\ntype InPlaceEditProps = {\n onChange: (newValue: string) => Promise<void>;\n value: string;\n label: string;\n children: ReactNode;\n editButtonProps?: ButtonProps;\n}\n\nconst InPlaceSelect = ({ onChange, value, label, children, editButtonProps = {}, ...props }: InPlaceEditProps) => {\n const [isEditing, setIsEditing] = useState(false);\n const [loading, setLoading] = useState(false);\n const [newValue, setNewValue] = useState(value);\n\n const toggleEditing = () => setIsEditing(current => !current);\n\n const handleSave = async () => {\n setLoading(true);\n toggleEditing();\n await onChange?.(newValue);\n setLoading(false);\n };\n\n const handleChange = (newValue: SelectProps['value']) => {\n setNewValue(newValue as string);\n };\n\n const handleCancel = () => {\n setNewValue(value);\n toggleEditing();\n };\n\n return (\n <div>\n {!isEditing && label}\n {!isEditing && (\n <Button\n ghost\n state={loading ? 'loading' : undefined}\n onClick={toggleEditing}\n icon={{ name: 'pencil' }}\n tooltip={<Translate content=\"editButtonHint\" />}\n {...editButtonProps}\n />\n )}\n {isEditing && (\n <>\n <Select\n onClick={e => {\n e.preventDefault();\n e.stopPropagation();\n }}\n {...props}\n searchable\n defaultValue={value}\n onChange={handleChange}\n >{children}\n </Select>\n <Button\n ghost\n data-action-name=\"assign-confirm\"\n onClick={handleSave}\n icon={{ name: 'check-mark' }}\n tooltip={<Translate content=\"saveButtonHint\" />}\n />\n <Button\n ghost\n data-action-name=\"assign-cancel\"\n onClick={handleCancel}\n icon={{ name: 'cross-mark' }}\n tooltip={<Translate content=\"closeButtonHint\" />}\n />\n </>\n )}\n </div>\n );\n};\n\nexport default InPlaceSelect;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { redirect } from 'jsw';\n\nexport const openWebAdmin = (\n databaseId: number,\n data: { dbPassword?: string } = {},\n) => redirect({\n url: `/database/webadmin/id/${databaseId}`,\n method: data.dbPassword ? 'post' : 'get',\n data,\n target: 'dbedit',\n});\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useState } from 'react';\nimport { DatabasePasswordPromptDrawerProps } from 'components/common/DatabasePasswordPromptDrawer';\n\ntype AdditionalDrawerProps = Pick<DatabasePasswordPromptDrawerProps, 'userLogin' | 'onPasswordSubmit'>;\n\nexport const usePasswordPrompt = (defaultIsOpen: boolean = false) => {\n const [isPromptOpen, setIsPromptOpen] = useState(defaultIsOpen);\n const [additionalDrawerProps, setAdditionalDrawerProps] = useState<AdditionalDrawerProps | null>(null);\n\n const getButtonClickHandler = ({\n isPasswordRequired,\n userLogin,\n onPasswordlessClick,\n onPasswordSubmit,\n }: {\n isPasswordRequired: boolean;\n userLogin: string;\n onPasswordlessClick: () => void;\n onPasswordSubmit: (dbPassword: string) => void;\n }) => {\n if (!isPasswordRequired) {\n return () => onPasswordlessClick();\n }\n\n return () => {\n setAdditionalDrawerProps({\n userLogin,\n onPasswordSubmit: (dbPassword: string) => {\n onPasswordSubmit(dbPassword);\n setIsPromptOpen(false);\n },\n });\n\n setIsPromptOpen(true);\n };\n };\n\n return {\n getButtonClickHandler,\n drawerProps: {\n isOpen: isPromptOpen,\n onClose: () => setIsPromptOpen(false),\n ...additionalDrawerProps,\n },\n } as const;\n};\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useMemo } from 'react';\nimport { useQuery } from '@apollo/client';\nimport { matchPath, useLocation } from 'react-router-dom';\nimport { Tabs, Tab, ButtonGroup, Button } from '@plesk/ui-library';\nimport { Locale } from 'jsw';\nimport Link from 'components/common/Link';\nimport { assertNodeTypename } from 'helpers/graphql/assertNodeTypename';\n\nimport DATABASES_TABS_QUERY from 'queries/DatabasesTabs.graphql';\n\nconst Translate = Locale.getTranslate('components.pages.Databases.Page');\n\ntype DatabasesTabsProps = {\n domainId: string;\n}\n\nconst DatabasesTabs = ({ domainId }: DatabasesTabsProps) => {\n const { data } = useQuery(DATABASES_TABS_QUERY, { variables: { domainId: btoa(`Domain:${domainId}`) } });\n\n const { type, permissions: { manageServerDb } } = data!.viewer;\n const { packages: { isBackupManagerInstalled } } = data!.capability;\n assertNodeTypename(data!.domain, 'Domain');\n const { subscription: { permissions: { manageBackupRestore } } } = data!.domain;\n\n const canManageServerDb = useMemo(() => type === 'ADMIN' && manageServerDb, [type, manageServerDb]);\n const canManageBackup = useMemo(() => isBackupManagerInstalled && manageBackupRestore, [isBackupManagerInstalled, manageBackupRestore]);\n\n const tabs = useMemo(() => [\n {\n 'data-id': 'databaseTab',\n title: <Translate content=\"databaseTab\" />,\n url: `/smb/database/list/domainId/${domainId}`,\n },\n {\n 'data-id': 'userTab',\n title: <Translate content=\"userTab\" />,\n url: `/smb/database/users-list/domainId/${domainId}`,\n },\n ], [domainId]);\n\n const { pathname } = useLocation();\n const active = useMemo(() => tabs.findIndex(({ url }) => matchPath(url, pathname)) + 1, [tabs, pathname]);\n\n return (\n <Tabs\n active={active}\n addon={\n [canManageServerDb, canManageBackup].some(Boolean) ? (\n <ButtonGroup>\n {canManageServerDb && (\n <Button\n component={Link}\n ghost\n icon=\"server\"\n to=\"/cp/server/db\"\n data-id=\"databaseServers\"\n >\n <Translate content=\"serversLink\" />\n </Button>\n )}\n {canManageBackup && (\n <Button\n component={Link}\n ghost\n icon=\"backup\"\n to={`/smb/account/switch/id/${domainId}?hideNotice=1&returnUrl=/smb/web/backup`}\n data-id=\"backup\"\n >\n <Translate content=\"backupLink\" />\n </Button>\n )}\n </ButtonGroup>\n ) : undefined\n }\n >\n {tabs.map(({ url, ...props }) => (\n <Tab\n key={url}\n component={Link}\n to={url}\n {...props}\n />\n ))}\n </Tabs>\n );\n};\n\nexport default DatabasesTabs;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { ApolloError } from '@apollo/client';\n\nexport const getGraphQlErrorMessage = ({ graphQLErrors, message }: ApolloError): string => {\n if (graphQLErrors.length) {\n const { message, extensions } = graphQLErrors[0];\n return `${extensions?.debugMessage || message}`;\n }\n\n return message;\n};\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\n// eslint-disable-next-line func-style\nexport function assertNodeTypename<\n Node extends { __typename: string },\n TypeName extends Node['__typename'],\n>(node: Node, typename: TypeName): asserts node is Extract<Node, { __typename: TypeName }> {\n if (node.__typename !== typename) {\n throw new Error(`GraphQL type assertion failed: expected ${typename} but received ${node.__typename}`);\n }\n}\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useRef } from 'react';\n\nconst useCallbackRegistry = <Callback extends (...args: unknown[]) => unknown> () => {\n const callbackRef = useRef<Callback>();\n\n return {\n setCallback(callback: Callback) {\n callbackRef.current = callback;\n },\n callback: callbackRef.current,\n };\n};\n\nexport default useCallbackRegistry;\n","module.exports = Jsw.skinUrl + \"/icons/24/colored-icons-sprite.svg?0ca73947c3035a4461b4dd5d57894f2b\";","module.exports = Jsw.skinUrl + \"/icons/24/mariadb.svg?40e885b924e68121f8e5ebe315f9a4f1\";","module.exports = Jsw.skinUrl + \"/icons/24/mssql.svg?407cb3501d66a7aa259aa515b6db8824\";","module.exports = Jsw.skinUrl + \"/icons/24/mysql.svg?43a445498b746b73c066fee852ddcbbd\";","module.exports = Jsw.skinUrl + \"/icons/24/percona.svg?7314a1db507b6a928dbd363c10716377\";","module.exports = Jsw.skinUrl + \"/icons/24/postgresql.svg?f6ecc0a25ee74459478cdf93d345a51b\";","module.exports = Jsw.skinUrl + \"/icons/24/sitejet-ai.svg?3587ccb60b06bb3c63bb204f4f0b224e\";","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"DatabasesTabs\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"domainId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"viewer\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"login\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"permissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageServerDb\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"capability\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"packages\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isBackupManagerInstalled\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"domain\"},\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"domainId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Domain\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"subscription\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"permissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manageBackupRestore\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":452}};\n doc.loc.source = {\"body\":\"query DatabasesTabs($domainId: ID!) {\\n viewer {\\n login\\n type\\n permissions {\\n manageServerDb\\n }\\n }\\n capability {\\n packages {\\n isBackupManagerInstalled\\n }\\n }\\n domain: node(id: $domainId) {\\n ... on Domain {\\n id\\n subscription {\\n permissions {\\n manageBackupRestore\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"DatabasesTabs\"] = oneQuery(doc, \"DatabasesTabs\");\n \n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","ButtonsTranslate","Locale","getTranslate","ButtonWithConfirmation","children","confirmationText","onClick","isCritical","isProcessing","target","props","visible","setVisible","useState","button","_jsx","Button","state","undefined","content","_jsxs","Popover","cloneElement","placement","onClose","Paragraph","intent","ghost","Translate","DatabasePasswordPromptDrawer","isMultistep","onPasswordSubmit","userLogin","isOpen","size","isPasswordSubmitted","setIsPasswordSubmitted","password","setPassword","drawerProps","title","subtitle","params","login","form","Form","onSubmit","submitButton","disabled","length","cancelButton","applyButton","onFieldChange","name","value","FormFieldPassword","label","autoFocus","hideGenerateButton","hidePasswordMeter","Drawer","CustomToolbarButtons","buttons","navigate","useNavigateCallback","ToolbarGroup","href","description","component","role","tooltip","locale","getSection","ListIcon","Icon","className","ColoredIcon","icon","focusable","coloredIcons","CustomButton","DatabaseButtons","databaseId","urlPrefix","subscriptionStatus","onCheckAndRepair","onWebAdmin","buttonsProps","openWebAdmin","connectionInfo","Link","to","downloadDump","addToast","message","action","lmsg","uploadDump","copy","checkDatabase","assignToSubscription","ItemList","minColumnWidth","gap","buttonProps","restButtonProps","Item","hint","src","DELETE_DATABASE_MUTATION","gql","DatabaseList","domainId","data","initialData","allowCreateDatabase","initialAllowCreateDatabase","assignableDomains","initialAssignableDomains","registerListReloader","domainUrlPrefix","useParams","dataUrl","setData","setAllowCreateDatabase","setAssignableDomains","sizes","setSizes","passwordPrompt","usePasswordPrompt","requestSizes","useCallback","async","api","get","error","Array","isArray","statusMessages","forEach","useEffect","handleRequest","url","buildUrl","renderPagination","sortParams","loading","filter","handleFilter","handleReload","useList","initialFilter","entries","searchFilters","reduce","acc","key","searchText","pagination","current","pager","totalPage","pageCount","itemsPerPage","itemCountPerPage","onSort","onPageChange","page","onChangeItemsPerPage","itemPerPage","sort","direction","sortDirection","column","sortField","onChange","sortColumn","onFilter","onReload","hasFilter","deleteDatabase","useMutation","awaitRefetchQueries","onCompleted","onError","getGraphQlErrorMessage","handleWebAdmin","askPasswordForWebadmin","webadminUserLogin","getButtonClickHandler","isPasswordRequired","onPasswordlessClick","dbPassword","addButton","additional","operations","customToolbarButtons","list","List","rowKey","filtered","renderRowBody","row","_Fragment","actions","post","handleCheckAndRepair","DatabaseSummary","database","sizeData","find","totalRows","totalItemCount","toolbar","Toolbar","ToolbarExpander","groupable","SearchBar","inputProps","placeholder","onSearch","columns","type","sortable","width","render","fork","realType","toLowerCase","Status","require","Tooltip","Action","copyToClipboard","Text","bold","isUsedByApp","assignedDomainName","domains","relatedDomains","lastDatabaseSelectedId","relatedDomainNames","join","editButtonProps","InPlaceSelect","handleAssignToDomain","allowWebadmin","hasConnectionError","MSSQLClientInstruction","MSSQLClientInstructionLink","ListActions","ListAction","primary","rel","hidden","tooltipAsLabel","wrap","variables","input","ids","btoa","handleDelete","emptyView","ListEmptyView","propTypes","PropTypes","isRequired","serverHost","serverPort","typeTitle","serverId","users","renderUserInfo","usersToDisplay","slice","index","tables","progress","DatabasesPage","reloadListRegistry","useCallbackRegistry","DatabasesTabs","setCallback","Outlet","context","reloadDatabaseList","callback","withPageLayout","isEditing","setIsEditing","setLoading","newValue","setNewValue","toggleEditing","Select","preventDefault","stopPropagation","searchable","defaultValue","handleCancel","redirect","method","defaultIsOpen","isPromptOpen","setIsPromptOpen","additionalDrawerProps","setAdditionalDrawerProps","useQuery","DATABASES_TABS_QUERY","permissions","manageServerDb","viewer","packages","isBackupManagerInstalled","capability","assertNodeTypename","domain","subscription","manageBackupRestore","canManageServerDb","useMemo","canManageBackup","tabs","pathname","useLocation","active","findIndex","matchPath","Tabs","addon","some","Boolean","ButtonGroup","Tab","graphQLErrors","extensions","debugMessage","node","typename","__typename","callbackRef","useRef","Jsw","skinUrl","doc","loc","source","collectFragmentReferences","refs","kind","add","selectionSet","selections","selection","variableDefinitions","def","definitions","definitionRefs","findOperation","i","element","Set","operationName","newDoc","hasOwnProperty","opRefs","allRefs","newRefs","refName","prevRefs","has","childRef","op","push","oneQuery"],"sourceRoot":""}
Submit
FILE
FOLDER
INFO
Name
Size
Permission
Action
AspDotNetSettingsPage
---
0755
DatabasesPage
---
0755
InfoAndStatisticsPage
---
0755
OdbcPage
---
0755
SummaryReportLayoutsPage
---
0755
VirtualDirectoryPage
---
0755
ActionLogPage.js
13088 bytes
0644
ActionLogPage.js.map
47064 bytes
0644
AssignIpAddressToResellerForm.js
6725 bytes
0644
AssignIpAddressToResellerForm.js.map
21526 bytes
0644
BandwidthLimitingPage.js
6881 bytes
0644
BandwidthLimitingPage.js.map
20714 bytes
0644
BrandingPage.js
12229 bytes
0644
BrandingPage.js.map
40616 bytes
0644
ChangeSubscriptionsOwnerPage.js
20015 bytes
0644
ChangeSubscriptionsOwnerPage.js.map
68681 bytes
0644
ConfigureMailClientPage.js
19148 bytes
0644
ConfigureMailClientPage.js.map
54780 bytes
0644
ConnectionInfo.js
19482 bytes
0644
ConnectionInfo.js.map
60127 bytes
0644
CreateMassMailTemplatePage.js
7938 bytes
0644
CreateMassMailTemplatePage.js.map
25649 bytes
0644
DatabasesPage.js
24239 bytes
0644
DatabasesPage.js.map
82958 bytes
0644
DomainsResourceUsagePage.js
2519 bytes
0644
DomainsResourceUsagePage.js.map
7223 bytes
0644
EditMassMailTemplatePage.js
6276 bytes
0644
EditMassMailTemplatePage.js.map
19693 bytes
0644
FirewallGeneralPage.js
13911 bytes
0644
FirewallGeneralPage.js.map
45778 bytes
0644
FirewallIcmpPage.js
7583 bytes
0644
FirewallIcmpPage.js.map
26718 bytes
0644
FirewallRulesPage.js
14054 bytes
0644
FirewallRulesPage.js.map
49533 bytes
0644
HomeCustomizationPage.js
7699 bytes
0644
HomeCustomizationPage.js.map
26789 bytes
0644
HomePage.js
108563 bytes
0644
HomePage.js.map
343571 bytes
0644
HostingSettingsPage.js
58717 bytes
0644
HostingSettingsPage.js.map
182095 bytes
0644
HotlinkProtectionPage.js
5459 bytes
0644
HotlinkProtectionPage.js.map
16592 bytes
0644
InfoAndStatisticsPage.js
1517 bytes
0644
InfoAndStatisticsPage.js.map
4468 bytes
0644
IpAddressDomainsPage.js
2527 bytes
0644
IpAddressDomainsPage.js.map
9631 bytes
0644
MassMailPage.js
3803 bytes
0644
MassMailPage.js.map
11880 bytes
0644
MoveDatabasePage.js
2348 bytes
0644
MoveDatabasePage.js.map
9743 bytes
0644
OdbcAddPage.js
5856 bytes
0644
OdbcAddPage.js.map
19713 bytes
0644
OdbcEditPage.js
8922 bytes
0644
OdbcEditPage.js.map
32573 bytes
0644
PanelNotificationsSettings.js
8676 bytes
0644
PanelNotificationsSettings.js.map
30239 bytes
0644
ProtectedDirectoryAddPage.js
7824 bytes
0644
ProtectedDirectoryAddPage.js.map
25902 bytes
0644
ProtectedDirectoryEditPage.js
8522 bytes
0644
ProtectedDirectoryEditPage.js.map
27389 bytes
0644
ProtectedDirectoryListPage.js
7523 bytes
0644
ProtectedDirectoryListPage.js.map
23418 bytes
0644
ProtectedDirectoryUserAddPage.js
5359 bytes
0644
ProtectedDirectoryUserAddPage.js.map
19045 bytes
0644
ProtectedDirectoryUserListPage.js
6399 bytes
0644
ProtectedDirectoryUserListPage.js.map
21441 bytes
0644
ProtectedDirectoryUserPasswordPage.js
4683 bytes
0644
ProtectedDirectoryUserPasswordPage.js.map
16610 bytes
0644
ScheduledBackupListPage.js
32356 bytes
0644
ScheduledBackupListPage.js.map
106674 bytes
0644
ScheduledBackupPage.js
23406 bytes
0644
ScheduledBackupPage.js.map
73098 bytes
0644
SendMassMailPage.js
14172 bytes
0644
SendMassMailPage.js.map
42796 bytes
0644
ServerAboutPage.js
4471 bytes
0644
ServerAboutPage.js.map
12644 bytes
0644
ServerComponentsPage.js
34358 bytes
0644
ServerComponentsPage.js.map
113247 bytes
0644
ServerInformationPage.js
5907 bytes
0644
ServerInformationPage.js.map
17780 bytes
0644
ServerSettingsPage.js
10390 bytes
0644
ServerSettingsPage.js.map
31759 bytes
0644
SpamFilterBlackListPage.js
9240 bytes
0644
SpamFilterBlackListPage.js.map
35310 bytes
0644
SpamFilterSettingsPage.js
6210 bytes
0644
SpamFilterSettingsPage.js.map
22487 bytes
0644
SpamFilterWhiteListPage.js
9240 bytes
0644
SpamFilterWhiteListPage.js.map
35318 bytes
0644
SummaryReportLayoutsPage.js
10170 bytes
0644
SummaryReportLayoutsPage.js.map
36379 bytes
0644
SummaryReportPage.js
20200 bytes
0644
SummaryReportPage.js.map
60542 bytes
0644
SummaryReportSchedulesPage.js
18905 bytes
0644
SummaryReportSchedulesPage.js.map
65098 bytes
0644
SystemTimePage.js
12937 bytes
0644
SystemTimePage.js.map
42357 bytes
0644
TrafficHistoryReportPage.js
4937 bytes
0644
TrafficHistoryReportPage.js.map
18836 bytes
0644
TrafficUsageByClientsPage.js
6100 bytes
0644
TrafficUsageByClientsPage.js.map
18770 bytes
0644
TrafficUsageByDomainPage.js
9382 bytes
0644
TrafficUsageByDomainPage.js.map
32899 bytes
0644
TrafficUsageByDomainsPage.js
8416 bytes
0644
TrafficUsageByDomainsPage.js.map
26009 bytes
0644
TrafficUsageByResellerPage.js
5505 bytes
0644
TrafficUsageByResellerPage.js.map
16280 bytes
0644
TsSessionPage.js
7464 bytes
0644
TsSessionPage.js.map
25275 bytes
0644
TsSessionsPage.js
11824 bytes
0644
TsSessionsPage.js.map
43136 bytes
0644
VirtualDirectoryPage.js
1938 bytes
0644
VirtualDirectoryPage.js.map
5771 bytes
0644
VirtualHostTemplatePage.js
11914 bytes
0644
VirtualHostTemplatePage.js.map
44898 bytes
0644
N4ST4R_ID | Naxtarrr