Submit
Path:
~
/
/
opt
/
psa
/
admin
/
cp
/
public
/
javascript
/
components
/
pages
/
VirtualDirectoryPage
/
File Content:
Browse.js.map
{"version":3,"file":"javascript/components/pages/VirtualDirectoryPage/Browse.js?7b78c13181f742fad09e","mappings":"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","sources":["webpack:///./components/lists/VirtualDirectoryContentList.js","webpack:///./components/pages/VirtualDirectoryPage/Browse/Browse.js","webpack:///./icons/16/plesk/file-virtdir.png","webpack:///./components/pages/VirtualDirectoryPage/DeleteVirtualDirectory.graphql"],"sourcesContent":["// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useState, useMemo, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Locale } from 'jsw';\nimport Link from 'components/common/Link';\nimport {\n ListAction, ListActions, ListOperation, ListEmptyView,\n Toolbar, ToolbarExpander, ToolbarGroup,\n Icon, Action, Tooltip, Status, Checkbox, Button,\n} from '@plesk/ui-library';\nimport { GraphQlList, useGraphQlList } from 'components/common/GraphQlList';\nimport { buildUrl } from 'helpers/buildUrl';\nimport { useMutation } from '@apollo/client';\nimport { addToast } from 'helpers/toasts';\nimport { getTypeIcon } from 'helpers/fileManager';\nimport VIRTUAL_DIRECTORY_CONTENT_LIST from 'queries/VirtualDirectoryContentList.graphql';\nimport DELETE_VIRTUAL_DIRECTORY from '../pages/VirtualDirectoryPage/DeleteVirtualDirectory.graphql';\n\nconst Translate = Locale.getTranslate('smb.components.lists.virtualdirectories');\nconst locale = Locale.getSection('smb.components.lists.virtualdirectories');\nconst ButtonsTranslate = Locale.getTranslate('components.buttons');\n\nconst UP_LEVEL = '..';\n\nconst TYPE_UP_LEVEL = 'UP_LEVEL';\nconst TYPE_FILE = 'FILE';\nconst TYPE_DIR = 'DIRECTORY';\nconst TYPE_VIRT_DIR = 'VIRTUAL_DIRECTORY';\n\nconst isUpLevel = ({ type }) => type === TYPE_UP_LEVEL;\nconst isFile = ({ type }) => type === TYPE_FILE;\nconst isDirectory = ({ type }) => [TYPE_DIR, TYPE_VIRT_DIR].includes(type);\nconst isVirtualDirectory = ({ type }) => type === TYPE_VIRT_DIR;\n\nconst getIcon = ({ type, fileType, name }) => isVirtualDirectory({ type })\n ? require('icons/16/plesk/file-virtdir.png')\n : getTypeIcon({ type: fileType, isDirectory: isDirectory({ type }) || isUpLevel({ type }), name });\n\n\nconst getUpLevelElement = path => {\n if (!path) {\n return null;\n }\n const upLevelPath = path.split('/').slice(0, -1).join('/');\n return {\n key: UP_LEVEL,\n type: TYPE_UP_LEVEL,\n name: UP_LEVEL,\n relativePath: upLevelPath || '/',\n doesExist: true,\n };\n};\n\nconst VirtualDirectoryContentList = ({\n path,\n domainId,\n domainName,\n canCreateDir = false,\n canCreateVirtualDir = false,\n showProtection = false,\n}) => {\n const [selection, setSelection] = useState([]);\n const [loadingRows, setLoadingRows] = useState([]);\n\n useEffect(() => {\n setSelection([]);\n setLoadingRows([]);\n }, [path]);\n\n const { queryResult: { refetch }, listProps: { data, ...listProps }, listInput } = useGraphQlList({\n key: `VirtualDirectoryPage${domainId}`,\n onListInputChange: () => setSelection([]),\n query: VIRTUAL_DIRECTORY_CONTENT_LIST,\n variables: { domainId: btoa(`Domain:${domainId}`), path },\n extractList: data => data.domain.hosting.virtualDirectory.content,\n });\n\n const [deleteDirectories] = useMutation(DELETE_VIRTUAL_DIRECTORY, {\n refetchQueries: [VIRTUAL_DIRECTORY_CONTENT_LIST],\n awaitRefetchQueries: true,\n onCompleted() {\n addToast({ intent: 'success', message: locale.lmsg('removeSuccess') });\n },\n onError({ message }) {\n addToast({ intent: 'danger', message });\n refetch();\n },\n });\n\n const handleRemove = async () => {\n setLoadingRows(selection);\n await deleteDirectories({\n variables: {\n domainId: btoa(`Domain:${domainId}`),\n path,\n names: selection,\n } });\n setLoadingRows([]);\n };\n\n const normalizedPath = useMemo(() => path.endsWith('/') || path.endsWith('\\\\') ? path.slice(0, -1) : path, [path]);\n\n const displayData = useMemo(() => [\n getUpLevelElement(normalizedPath),\n ...data.map(item => ({ ...item, relativePath: `${normalizedPath}/${item.name}` })),\n ].filter(Boolean), [data, normalizedPath]);\n\n const notReservedItems = useMemo(() => displayData.filter(item => !item.isReserved && !isUpLevel(item)).map(({ name }) => name), [displayData]);\n\n const createButtons = [\n canCreateVirtualDir && (\n <Button\n key=\"createVirtualDir\"\n id=\"createVirtualDir\"\n intent=\"primary\"\n component={Link}\n to={buildUrl('create-virtual-directory', { path })}\n tooltip={<Translate content=\"buttonCreateVirtualDirHint\" />}\n >\n <Translate content=\"buttonCreateVirtualDir\" />\n </Button>\n ),\n canCreateDir && (\n <Button\n key=\"createDir\"\n id=\"createDir\"\n intent={canCreateVirtualDir ? undefined : 'primary'}\n component={Link}\n to={buildUrl('create-directory', { path })}\n tooltip={<Translate content=\"buttonCreateDirHint\" />}\n >\n <Translate content=\"buttonCreateDir\" />\n </Button>\n ),\n ].filter(Boolean);\n\n return (\n <GraphQlList\n rowKey=\"name\"\n filtered={!!listInput.searchFilters?.name}\n loadingRows={loadingRows}\n selection={selection}\n onSelectionChange={notReservedItems.length ? selection => setSelection(selection.filter(name => notReservedItems.includes(name))) : null}\n renderSelectionCheckbox={(props, row) => (\n <Checkbox\n {...props}\n disabled={row && row.isReserved}\n checked={!row ? selection.length === notReservedItems.length : selection.includes(row.name)}\n />\n )}\n columns={[\n showProtection && {\n key: 'isProtected',\n width: '1%',\n title: <Translate content=\"protection\" />,\n sortable: true,\n render: ({ type, isProtected, relativePath }) => isDirectory({ type }) && (\n <Tooltip\n title={<Translate content={isProtected ? 'protectionOn' : 'protectionOff'} />}\n >\n <Link to={{ pathname: '../protection', search: `?path=${relativePath}` }}>\n <Icon\n name={isProtected ? 'shield-filled' : 'cross-mark-circle-filled'}\n intent={isProtected ? 'success' : 'inactive'}\n />\n </Link>\n </Tooltip>\n ),\n },\n {\n key: 'name',\n title: <Translate content=\"name\" />,\n sortable: true,\n type: 'title',\n render: item => (\n <Tooltip title={<Translate content={`${item.type.toLowerCase()}Type`} />}>\n <Action\n icon={<Icon src={getIcon(item)} />}\n component={isFile(item) ? 'span' : Link}\n to={buildUrl(`/cp/domains/${domainId}/virtual-directory`, { path: item.relativePath })}\n bottomAddon={!item.doesExist && <Status intent=\"danger\"><Translate content=\"isMissing\" /></Status>}\n >\n {item.name}\n </Action>\n </Tooltip>\n ),\n },\n {\n key: 'actions',\n type: 'actions',\n render: ({ type, name, relativePath, canManagePermissions, baseName, dirName, fileType }) => !isUpLevel({ type }) && (\n <ListActions>\n <ListAction\n primary\n icon=\"web\"\n component=\"a\"\n href={`http://${domainName}${relativePath}`}\n target=\"_blank\"\n data-type=\"buttonOpen\"\n >\n <Translate content=\"actionOpen\" />\n </ListAction>\n <ListAction\n primary\n icon=\"pencil\"\n component={Link}\n to={buildUrl(`./${name}/edit-virtual-directory`, { path })}\n hidden={!isVirtualDirectory({ type })}\n data-type=\"buttonEdit\"\n >\n <Translate content=\"actionEdit\" />\n </ListAction>\n <ListAction\n primary\n icon=\"lock-closed-check\"\n component={Link}\n to={buildUrl(`/cp/domains/${domainId}/virtual-directory/browse/permissions`, {\n file: baseName,\n currentDir: dirName,\n isDirectory: !isFile(({ type })),\n fileType,\n path,\n })}\n hidden={!canManagePermissions}\n data-type=\"buttonPermissions\"\n >\n <Translate content=\"actionPermissions\" />\n </ListAction>\n </ListActions>\n ),\n },\n ].filter(Boolean)}\n toolbar={\n <Toolbar>\n {createButtons.length > 0 && (\n <ToolbarGroup title=\"\">\n {createButtons}\n </ToolbarGroup>\n )}\n <ToolbarGroup title=\"\">\n <ListOperation\n critical\n noSelectionText={locale.lmsg('noSelectionText')}\n confirmationText={() => locale.formatMessage('removeConfirmation', {\n name: <b>{selection[0]}</b>,\n count: selection.length,\n })}\n actionButtonText={<ButtonsTranslate content=\"yesRemove\" />}\n cancelButtonText={<ButtonsTranslate content=\"cancel\" />}\n >\n <Button\n id=\"removeVirtualDirectory\"\n onClick={handleRemove}\n >\n <Translate content=\"buttonRemove\" />\n </Button>\n </ListOperation>\n </ToolbarGroup>\n <ToolbarExpander />\n <ToolbarGroup groupable={false} title=\"\">\n <GraphQlList.SearchBar name=\"name\" />\n </ToolbarGroup>\n </Toolbar>\n }\n rowProps={row => ({ virtual: isUpLevel(row) })}\n data={displayData}\n emptyView={<ListEmptyView actions={createButtons} />}\n {...listProps}\n />\n );\n};\n\nVirtualDirectoryContentList.propTypes = {\n domainId: PropTypes.number.isRequired,\n domainName: PropTypes.string.isRequired,\n path: PropTypes.string.isRequired,\n canCreateVirtualDir: PropTypes.bool,\n canCreateDir: PropTypes.bool,\n showProtection: PropTypes.bool,\n};\n\nexport default VirtualDirectoryContentList;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport PropTypes from 'prop-types';\nimport { useSearchParams, Outlet } from 'react-router-dom';\nimport { useQuery } from '@apollo/client';\nimport VirtualDirectoryContentList from 'components/lists/VirtualDirectoryContentList';\n\nimport VIRTUAL_DIRECTORY_BROWSE_PAGE from 'queries/VirtualDirectoryBrowsePage.graphql';\n\nconst Browse = ({ params: { domainId } }) => {\n const [searchParams] = useSearchParams();\n const path = searchParams.get('path') || '/';\n\n const { data: {\n domain: {\n name: domainName,\n hosting: { virtualDirectory: { isVirtual, doesExist, isWritable, isAccessible } },\n subscription: { permissions: { manageProtectedDirectories } },\n },\n } } = useQuery(\n VIRTUAL_DIRECTORY_BROWSE_PAGE,\n { variables: { domainId: btoa(`Domain:${domainId}`), path } },\n );\n\n return (\n <>\n <VirtualDirectoryContentList\n domainId={+domainId}\n domainName={domainName}\n path={path}\n canCreateDir={isWritable}\n canCreateVirtualDir={isVirtual && doesExist && isAccessible}\n showProtection={manageProtectedDirectories}\n />\n <Outlet />\n </>\n );\n};\n\nBrowse.propTypes = {\n params: PropTypes.object.isRequired,\n};\n\nexport default Browse;\n","module.exports = Jsw.skinUrl + \"/icons/16/plesk/file-virtdir.png?89bae94000675d3836b903cb2747d16e\";","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"DeleteVirtualDirectory\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"domainId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"names\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"deleteVirtualDirectory\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"domainId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"domainId\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"names\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"names\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"names\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":197}};\n doc.loc.source = {\"body\":\"mutation DeleteVirtualDirectory($domainId: ID!, $path: String!, $names: [String!]!) {\\n deleteVirtualDirectory(input: { domainId: $domainId, path: $path, names: $names} ) {\\n names\\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[\"DeleteVirtualDirectory\"] = oneQuery(doc, \"DeleteVirtualDirectory\");\n \n"],"names":["Translate","Locale","getTranslate","locale","getSection","ButtonsTranslate","TYPE_UP_LEVEL","TYPE_DIR","TYPE_VIRT_DIR","isUpLevel","type","isFile","isDirectory","includes","isVirtualDirectory","getIcon","fileType","name","require","getTypeIcon","getUpLevelElement","path","upLevelPath","split","slice","join","key","relativePath","doesExist","VirtualDirectoryContentList","domainId","domainName","canCreateDir","canCreateVirtualDir","showProtection","selection","setSelection","useState","loadingRows","setLoadingRows","useEffect","queryResult","refetch","listProps","data","listInput","useGraphQlList","onListInputChange","query","VIRTUAL_DIRECTORY_CONTENT_LIST","variables","btoa","extractList","domain","hosting","virtualDirectory","content","deleteDirectories","useMutation","DELETE_VIRTUAL_DIRECTORY","refetchQueries","awaitRefetchQueries","onCompleted","addToast","intent","message","lmsg","onError","normalizedPath","useMemo","endsWith","displayData","map","item","filter","Boolean","notReservedItems","isReserved","createButtons","_jsx","Button","id","component","Link","to","buildUrl","tooltip","children","undefined","GraphQlList","rowKey","filtered","searchFilters","onSelectionChange","length","renderSelectionCheckbox","props","row","Checkbox","disabled","checked","columns","width","title","sortable","render","isProtected","Tooltip","pathname","search","Icon","toLowerCase","Action","icon","src","bottomAddon","Status","canManagePermissions","baseName","dirName","_jsxs","ListActions","ListAction","primary","href","target","hidden","file","currentDir","toolbar","Toolbar","ToolbarGroup","ListOperation","critical","noSelectionText","confirmationText","formatMessage","count","actionButtonText","cancelButtonText","onClick","async","names","ToolbarExpander","groupable","SearchBar","rowProps","virtual","emptyView","ListEmptyView","actions","propTypes","PropTypes","isRequired","Browse","params","searchParams","useSearchParams","get","isVirtual","isWritable","isAccessible","subscription","permissions","manageProtectedDirectories","useQuery","VIRTUAL_DIRECTORY_BROWSE_PAGE","_Fragment","Outlet","module","exports","Jsw","skinUrl","doc","loc","source","collectFragmentReferences","node","refs","kind","add","value","selectionSet","selections","forEach","variableDefinitions","def","definitions","definitionRefs","findOperation","i","element","Set","operationName","newDoc","hasOwnProperty","opRefs","allRefs","newRefs","refName","size","prevRefs","has","childRef","op","push","oneQuery"],"sourceRoot":""}
Submit
FILE
FOLDER
INFO
Name
Size
Permission
Action
AspDotNetSettingsPage.js
17088 bytes
0644
AspDotNetSettingsPage.js.map
57578 bytes
0644
Browse.js
9323 bytes
0644
Browse.js.map
31280 bytes
0644
CreateDirectoryPage.js
4957 bytes
0644
CreateDirectoryPage.js.map
17256 bytes
0644
CreateMimeTypePage.js
8528 bytes
0644
CreateMimeTypePage.js.map
27034 bytes
0644
CreateVirtualDirectoryPage.js
22472 bytes
0644
CreateVirtualDirectoryPage.js.map
71903 bytes
0644
EditErrorDocPage.js
8271 bytes
0644
EditErrorDocPage.js.map
25716 bytes
0644
EditMimeTypePage.js
8959 bytes
0644
EditMimeTypePage.js.map
27964 bytes
0644
EditVirtualDirectoryPage.js
25600 bytes
0644
EditVirtualDirectoryPage.js.map
80217 bytes
0644
ErrorDocList.js
1777 bytes
0644
ErrorDocList.js.map
5830 bytes
0644
MimeTypeList.js
7765 bytes
0644
MimeTypeList.js.map
24584 bytes
0644
PermissionsPage.js
28464 bytes
0644
PermissionsPage.js.map
97083 bytes
0644
PhpVersionPage.js
5373 bytes
0644
PhpVersionPage.js.map
18823 bytes
0644
Protection.js
18244 bytes
0644
Protection.js.map
56034 bytes
0644
ProtectionSettingsPage.js
8753 bytes
0644
ProtectionSettingsPage.js.map
27906 bytes
0644
N4ST4R_ID | Naxtarrr