Submit
Path:
~
/
/
opt
/
psa
/
admin
/
cp
/
public
/
javascript
/
views
/
admin
/
subscription
/
File Content:
list.js.map
{"version":3,"file":"javascript/views/admin/subscription/list.js?88411796cc56c60b5b06","mappings":"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","sources":["webpack:///./components/common/ApplicationWizard/ApplicationWizard.js","webpack:///./components/common/ApplicationWizard/ChooseApplicationStep.js","webpack:///./components/common/ApplicationWizard/MultistepForm.js","webpack:///./components/common/ApplicationWizard/SelectedApplicationInfo.js","webpack:///./components/common/IpSelectDropdowns/IpSelectDropdown.js","webpack:///./components/common/IpSelectDropdowns/IpSelectDropdowns.js","webpack:///./components/common/IpSelectDropdowns/index.js","webpack:///./components/common/SubscriptionSection.js","webpack:///./components/common/TechDomainName.js","webpack:///./components/formFields/FormFieldDomainName.js","webpack:///./components/forms/CreateSubscriptionForm.js","webpack:///./components/jsw/JswList.js","webpack:///./components/jsw/convertToReactComponent.js","webpack:///./components/lists/SubscriptionsList.js","webpack:///./components/pages/SubscriptionsPage.js","webpack:///./helpers/description.js","webpack:///./helpers/generateUserName.ts","webpack:///./icons/16/plesk/subscription-status-locked.png","webpack:///./icons/16/plesk/subscription-status-ok.png","webpack:///./icons/16/plesk/subscription-status-suspended.png","webpack:///./icons/16/plesk/subscription-status-unsynchronized.png","webpack:///./icons/16/plesk/webserver-domain-error.png","webpack:///./images/code.svg","webpack:///./images/mail.svg","webpack:///./images/upload-files.svg"],"sourcesContent":["// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Locale } from 'jsw';\nimport { useLocation } from 'react-router-dom';\nimport ChooseApplicationStep from './ChooseApplicationStep';\nimport MultistepForm from './MultistepForm';\nimport SelectedApplicationInfo from './SelectedApplicationInfo';\n\nimport './ApplicationWizard.less';\n\nconst ApplicationsTranslate = Locale.getTranslate('components.domain-applications.applications');\n\nconst getExtensionAppName = extensionId => `ext-${extensionId}`;\n\nconst ApplicationWizard = ({\n onFieldChange,\n onStepChange = undefined,\n formPrefix = '',\n wizardConfig = {\n enabled: true,\n blankSite: true,\n uploadFiles: true,\n mailHosting: true,\n },\n isMailServiceSupported,\n embeddedForms = [],\n extensionButtons = [],\n values,\n children = null,\n entity = undefined,\n className = undefined,\n ...props\n}) => {\n const location = useLocation();\n const [preselectedAppName, setPreselectedAppName] = useState(() => new URLSearchParams(location.search).get('appName'));\n const handleApplicationChange = applicationName => {\n onFieldChange('applicationName', applicationName);\n };\n\n const handleStepChange = (prev, step) => {\n if (step === 0 && steps.length > 1) {\n onFieldChange('applicationName', null);\n if (preselectedAppName) {\n setPreselectedAppName(null);\n window.history.replaceState(null, '', location.pathname);\n }\n return prev;\n }\n return step;\n };\n\n const applicationsList = [\n wizardConfig.blankSite && {\n name: 'blank-site',\n icon: require('images/code.svg'),\n title: <ApplicationsTranslate content=\"blank-site.title\" />,\n description: <ApplicationsTranslate content=\"blank-site.description\" />,\n },\n wizardConfig.uploadFiles && {\n name: 'upload-files',\n icon: require('images/upload-files.svg'),\n title: <ApplicationsTranslate content=\"upload-files.title\" />,\n description: <ApplicationsTranslate content=\"upload-files.description\" />,\n },\n ...extensionButtons.map(({ id, extensionId, title, icon, description }) => ({\n name: getExtensionAppName(extensionId),\n id,\n icon,\n title,\n description,\n })),\n (wizardConfig.mailHosting && isMailServiceSupported) && {\n name: 'mail-hosting',\n icon: require('images/mail.svg'),\n title: <ApplicationsTranslate content=\"mail-hosting.title\" />,\n description: <ApplicationsTranslate content=\"mail-hosting.description\" />,\n },\n ].filter(Boolean);\n\n const selectedApplication = values.applicationName\n ? applicationsList.find(({ name }) => name === values.applicationName)\n : null;\n\n const showSelectedApplicationInfo = selectedApplication && applicationsList.length > 1;\n\n const steps = [\n applicationsList.length > 1 && {\n key: 'chooseApplicationStep',\n children: (\n <ChooseApplicationStep\n onApplicationSelect={handleApplicationChange}\n applicationsList={applicationsList}\n />\n ),\n nextButton: false,\n },\n {\n key: 'addDomainStep',\n formPrefix,\n children: (\n <>\n {showSelectedApplicationInfo && (\n <SelectedApplicationInfo\n icon={selectedApplication.icon}\n applicationTitle={selectedApplication.title}\n entity={entity}\n />\n )}\n {children}\n </>\n ),\n embeddedForms,\n },\n ].filter(Boolean);\n\n useEffect(() => {\n if (applicationsList.length === 0) {\n handleApplicationChange('blank-site');\n }\n if (applicationsList.length === 1) {\n const [{ name }] = applicationsList;\n handleApplicationChange(name);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (preselectedAppName && !values.applicationName && applicationsList.length > 1) {\n const preselectedApplication = applicationsList.find(\n ({ name }) => name === preselectedAppName || name === getExtensionAppName(preselectedAppName),\n );\n preselectedApplication && handleApplicationChange(preselectedApplication.name);\n }\n\n const step = !values.applicationName || steps.length === 1 ? 0 : 1;\n useEffect(() => {\n onStepChange?.(steps[step].key);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [step]);\n\n return (\n <MultistepForm\n {...props}\n className={classNames(className, {\n 'application-wizard-form__with-selected-info': showSelectedApplicationInfo,\n })}\n values={values}\n onFieldChange={onFieldChange}\n onStepChange={handleStepChange}\n step={step}\n steps={steps}\n />\n );\n};\n\nApplicationWizard.propTypes = {\n values: PropTypes.object.isRequired,\n className: PropTypes.string,\n onFieldChange: PropTypes.func.isRequired,\n onStepChange: PropTypes.func,\n children: PropTypes.node,\n formPrefix: PropTypes.string,\n wizardConfig: PropTypes.shape({\n enabled: PropTypes.bool,\n blankSite: PropTypes.bool,\n uploadFiles: PropTypes.bool,\n }),\n isMailServiceSupported: PropTypes.bool.isRequired,\n embeddedForms: PropTypes.array,\n extensionButtons: PropTypes.array,\n entity: PropTypes.oneOf(['domain', 'subscription']),\n};\n\nexport default ApplicationWizard;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { Heading, Item, ItemList, Paragraph, Icon } from '@plesk/ui-library';\nimport PropTypes from 'prop-types';\nimport { Locale } from 'jsw';\n\nimport './ChooseApplicationStep.less';\n\nconst ApplicationsListTranslate = Locale.getTranslate('components.domain-applications');\n\nconst ChooseApplicationStep = ({ onApplicationSelect, applicationsList = [] }) => (\n <>\n <Heading level=\"3\">\n <ApplicationsListTranslate content=\"title\" />\n </Heading>\n <ItemList\n minColumnWidth={220}\n gap=\"xs\"\n selectable\n stretchable\n >\n {applicationsList.map(({ id, name, icon, title, description }) => (\n <Item\n data-action={name}\n key={name}\n role=\"button\"\n icon={(\n <Icon\n src={icon}\n intent=\"info\"\n size=\"48\"\n className=\"choose-application-step__icon\"\n />\n )}\n data-testid=\"listItem\"\n data-cy={id ?? name}\n title={<Heading level=\"4\">{title}</Heading>}\n onClick={() => onApplicationSelect(name)}\n >\n <Paragraph>{description}</Paragraph>\n </Item>\n ))}\n </ItemList>\n </>\n);\n\nChooseApplicationStep.propTypes = {\n onApplicationSelect: PropTypes.func.isRequired,\n applicationsList: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string.isRequired,\n icon: PropTypes.string.isRequired,\n title: PropTypes.node,\n description: PropTypes.node,\n })),\n};\n\nexport default ChooseApplicationStep;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { Button } from '@plesk/ui-library';\nimport { cloneElement, isValidElement, useRef, useState } from 'react';\nimport Form from 'components/Form';\nimport { Locale } from 'jsw';\nimport PropTypes from 'prop-types';\n\nconst ButtonsTranslate = Locale.getTranslate('components.buttons');\n\nconst MultistepForm = ({\n step = 0,\n steps = [],\n onStepChange = (prev, step) => step,\n onSubmit = undefined,\n submitButton = {},\n cancelButton = {},\n ...props\n}) => {\n const formRef = useRef();\n const [stateStep, setStep] = useState(0);\n const currentStep = stateStep + step;\n const { children, formPrefix, embeddedForms, backButton, nextButton } = {\n backButton: {},\n nextButton: {},\n ...steps[currentStep],\n };\n\n const isLastStep = currentStep === steps.length - 1;\n const isFirstStep = currentStep === 0;\n const stepKey = steps[currentStep]?.key ?? currentStep;\n\n const handleErrors = errors => {\n const baseFormStep = steps.findIndex(({ formPrefix }) => formPrefix === '');\n\n const errorSteps = Object.keys(errors).map(errorSection => {\n const errorStep = steps.findIndex(({ formPrefix, embeddedForms = [] }) => (\n formPrefix === errorSection || embeddedForms.some(({ name }) => name === errorSection)\n ));\n return errorStep >= 0 ? errorStep : baseFormStep;\n });\n\n setStep(onStepChange(currentStep, errorSteps.length > 0 ? Math.min(...errorSteps) : step) - step);\n };\n\n const handleBack = () => {\n formRef.current.handleEmbeddedFormValues();\n setStep(prevState => onStepChange(prevState + step, prevState + step - 1) - step);\n };\n\n const handleNext = () => {\n formRef.current.handleEmbeddedFormValues();\n setStep(prevState => onStepChange(prevState + step, prevState + step + 1) - step);\n };\n\n const handleSubmit = () => formRef.current.submit();\n\n const getAdditionalButtons = () => {\n const additionalButtons = [\n isFirstStep && cancelButton && (\n <Button\n key=\"cancel\"\n id=\"btn-cancel\"\n data-type={stepKey}\n // eslint-disable-next-line react/no-children-prop\n children={<ButtonsTranslate content=\"cancel\" />}\n {...cancelButton}\n />\n ),\n !isFirstStep && backButton && (\n <Button\n key=\"back\"\n id=\"btn-back\"\n data-type={stepKey}\n arrow=\"backward\"\n onClick={handleBack}\n // eslint-disable-next-line react/no-children-prop\n children={<ButtonsTranslate content=\"back\" />}\n {...backButton}\n />\n ),\n !isLastStep && nextButton && (\n <Button\n key=\"next\"\n id=\"btn-next\"\n data-type={stepKey}\n intent=\"primary\"\n onClick={handleNext}\n arrow=\"forward\"\n // eslint-disable-next-line react/no-children-prop\n children={<ButtonsTranslate content=\"nextWithoutArrow\" />}\n {...nextButton}\n />\n ),\n ];\n\n if (isLastStep && submitButton) {\n additionalButtons.push(isValidElement(submitButton) ?\n cloneElement(submitButton, { handleSubmit })\n :\n <Button\n key=\"submit\"\n id=\"btn-submit\"\n data-type={stepKey}\n intent=\"primary\"\n arrow=\"forward\"\n onClick={handleSubmit}\n // eslint-disable-next-line react/no-children-prop\n children={<ButtonsTranslate content=\"ok\" />}\n {...submitButton}\n />,\n );\n }\n\n return additionalButtons;\n };\n\n return (\n <Form\n {...props}\n ref={formRef}\n additionalButtons={getAdditionalButtons()}\n submitButton={false}\n onSubmit={isLastStep ? onSubmit : handleNext}\n onError={handleErrors}\n applyButton={false}\n cancelButton={false}\n formPrefix={formPrefix}\n embeddedForms={embeddedForms}\n >\n {children}\n </Form>\n );\n};\n\nMultistepForm.propTypes = {\n step: PropTypes.number,\n steps: PropTypes.arrayOf(PropTypes.shape({\n formPrefix: PropTypes.string,\n embeddedForms: PropTypes.array,\n children: PropTypes.node,\n nextButton: PropTypes.bool,\n backButton: PropTypes.bool,\n key: PropTypes.string,\n })),\n onStepChange: PropTypes.func,\n onSubmit: PropTypes.func,\n submitButton: PropTypes.object,\n cancelButton: PropTypes.object,\n};\n\nexport default MultistepForm;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport PropTypes from 'prop-types';\nimport { Locale } from 'jsw';\nimport { Icon, Text } from '@plesk/ui-library';\n\nimport './SelectedApplicationInfo.less';\n\nconst Translate = Locale.getTranslate('components.domain-applications.applications');\nconst locale = Locale.getSection('components.domain-applications.applications');\n\nconst SelectedApplicationInfo = ({ icon, entity = 'domain', applicationTitle }) => (\n <div className=\"application-wizard-selected-application-info\">\n <Icon src={icon} size=\"32\" alt={locale.lmsg('selectedOptionIcon')} />\n <Translate\n component=\"div\"\n content=\"selectedOption\"\n params={{\n optionName: <Text bold>{applicationTitle}</Text>,\n entity: locale.lmsg(`${entity}Entity`),\n }}\n />\n </div>\n);\n\nSelectedApplicationInfo.propTypes = {\n icon: PropTypes.string.isRequired,\n applicationTitle: PropTypes.node.isRequired,\n entity: PropTypes.oneOf(['domain', 'subscription']),\n};\n\nexport default SelectedApplicationInfo;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { FormFieldSelect, SelectOption, useTranslate } from '@plesk/ui-library';\nimport PropTypes from 'prop-types';\nimport { Locale } from 'jsw';\n\nconst IpAddressTranslate = Locale.getTranslate('components.forms.ip-addresses-selector');\n\nconst IpSelectDropdown = ({ ipAddresses, namePrefix, type, isOtherTypeAvailable, getIpAddressType, ...props }) => {\n const translate = useTranslate('components.forms.ip-addresses-selector');\n\n return !!ipAddresses.length && (\n <FormFieldSelect\n key={type}\n label={<IpAddressTranslate content={isOtherTypeAvailable ? `${type}Address` : 'ipAddress'} />}\n name={`${namePrefix}[${type}]`}\n {...props}\n >\n {ipAddresses.map(({ id, ipAddress, publicIpAddress, type }) => (\n <SelectOption key={id} value={id}>{`${publicIpAddress || ipAddress}${getIpAddressType(type)}`}</SelectOption>\n ))}\n {isOtherTypeAvailable && (\n <SelectOption value=\"none\">{translate('noIpAddressHint')}</SelectOption>\n )}\n </FormFieldSelect>\n );\n};\n\nIpSelectDropdown.propTypes = {\n ipAddresses: PropTypes.array.isRequired,\n namePrefix: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n isOtherTypeAvailable: PropTypes.bool.isRequired,\n getIpAddressType: PropTypes.func.isRequired,\n};\nexport default IpSelectDropdown;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useTranslate } from '@plesk/ui-library';\nimport PropTypes from 'prop-types';\nimport { useMemo, useCallback } from 'react';\nimport IpSelectDropdown from './IpSelectDropdown';\n\nexport const TYPE_IPV4 = 'ipv4';\nexport const TYPE_IPV6 = 'ipv6';\n\nexport const TYPE_SHARED = 'SHARED';\nexport const TYPE_EXCLUSIVE = 'EXCLUSIVE';\n\nconst IpSelectDropdowns = ({ ipAddresses, namePrefix, isIPv6Supported = true, ...props }) => {\n const translate = useTranslate('components.forms.ip-addresses-selector');\n\n const ipv4Addresses = useMemo(() => ipAddresses.filter(({ isIPv6, isBroken }) => !isIPv6 && !isBroken), [ipAddresses]);\n const ipv6Addresses = useMemo(() => ipAddresses.filter(({ isIPv6, isBroken }) => isIPv6 && !isBroken), [ipAddresses]);\n\n const getIpAddressType = useCallback(type => {\n switch (type) {\n case TYPE_SHARED: return ` (${translate('shared')})`;\n case TYPE_EXCLUSIVE: return ` (${translate('exclusive')})`;\n default: return '';\n }\n }, [translate]);\n\n return (\n <>\n <IpSelectDropdown\n ipAddresses={ipv4Addresses}\n namePrefix={namePrefix}\n type={TYPE_IPV4}\n isOtherTypeAvailable={isIPv6Supported && !!ipv6Addresses.length}\n getIpAddressType={getIpAddressType}\n {...props}\n />\n {isIPv6Supported && (\n <IpSelectDropdown\n ipAddresses={ipv6Addresses}\n namePrefix={namePrefix}\n type={TYPE_IPV6}\n isOtherTypeAvailable={!!ipv4Addresses.length}\n getIpAddressType={getIpAddressType}\n {...props}\n />\n )}\n </>\n );\n};\n\nIpSelectDropdowns.propTypes = {\n ipAddresses: PropTypes.array.isRequired,\n namePrefix: PropTypes.string.isRequired,\n isIPv6Supported: PropTypes.bool,\n};\n\nexport default IpSelectDropdowns;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { TYPE_IPV6 } from './IpSelectDropdowns';\n\nexport const prepareBackendData = ipAddresses => {\n const ips = [];\n Object.keys(ipAddresses).forEach(type => {\n Object.keys(ipAddresses[type]).forEach(id => {\n if (id !== 'none') {\n ips.push({\n id,\n ipAddress: ipAddresses[type][id],\n isIPv6: type === TYPE_IPV6,\n });\n }\n });\n });\n return ips;\n};\n\nexport { default, TYPE_SHARED, TYPE_EXCLUSIVE } from './IpSelectDropdowns';\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useEffect, useMemo, useState } from 'react';\nimport {\n FormField, FormFieldCheckbox, FormFieldPassword, FormFieldSelect, FormFieldText, getIn,\n Heading, Section, Select, SelectOption, Text,\n} from '@plesk/ui-library';\nimport TechDomainName, { TYPE_TECH } from './TechDomainName';\nimport { Locale } from 'jsw';\nimport PropTypes from 'prop-types';\nimport IpSelectDropdowns, { prepareBackendData } from './IpSelectDropdowns';\n\nconst DomainTranslate = Locale.getTranslate('admin.components.forms.admin-panel.form.domain-info-section');\nconst SubscriptionTranslate = Locale.getTranslate('admin.components.forms.admin-panel.form.subscription-info-section');\nconst AdminTranslate = Locale.getTranslate('components.forms.admin-info');\n\nconst SubscriptionSection = ({\n values,\n servicePlans,\n ipAddresses,\n addonPlans,\n handleFieldChange,\n techDomainUrl,\n techDomainVendor,\n maxDomainLength,\n settingsEnabled = false,\n settingsCollapsed = false,\n withCustomer = false,\n isWindows = false,\n onToggleDomainSettings = undefined,\n}) => {\n const [selectedAddonPlans, setSelectedAddonPlans] = useState(addonPlans.filter(({ selected }) => selected).map(({ id }) => id));\n const servicePlan = getIn(values, 'subscription[subscriptionInfo][servicePlan]');\n const isCustomServicePlan = () => '0' === servicePlan;\n const isMailOnly = useMemo(() => values.applicationName === 'mail-hosting', [values.applicationName]);\n\n useEffect(() => {\n const addonPlanSelector = {};\n addonPlans.forEach(({ id }) => {\n addonPlanSelector[id] = selectedAddonPlans.includes(id);\n });\n handleFieldChange('subscription[subscriptionInfo][addonPlanSelector]', JSON.stringify(addonPlanSelector));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedAddonPlans]);\n\n useEffect(() => {\n handleFieldChange('subscription[subscriptionInfo][customize]', isCustomServicePlan() ? '1' : '0');\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [servicePlan]);\n\n const ipAddress = Object.keys(ipAddresses).map(type => {\n const id = values.subscription.domainInfo.ipSelector[type];\n return id === 'none' ? null : ipAddresses[type][id].split(' ')[0];\n }).filter(Boolean)[0];\n\n return (\n <>\n <TechDomainName\n isEnabled={values.subscription.domainInfo.type !== undefined}\n isDefault={values.subscription.domainInfo.type === TYPE_TECH}\n url={techDomainUrl}\n vendor={techDomainVendor}\n maxDomainLength={maxDomainLength}\n typeName=\"subscription[domainInfo][type]\"\n name=\"subscription[domainInfo][domainName]\"\n ipAddress={ipAddress}\n onTypeChange={value => handleFieldChange('subscription[domainInfo][type]', value)}\n onDomainNameChange={value => handleFieldChange('subscription[domainInfo][domainName]', value)}\n />\n <FormFieldSelect\n label={<SubscriptionTranslate content=\"servicePlan\" />}\n name=\"subscription[subscriptionInfo][servicePlan]\"\n size=\"lg\"\n >\n {Object.keys(servicePlans).filter(id => id !== '0').map(id => (\n <SelectOption key={id} value={id}>{servicePlans[id]}</SelectOption>\n ))}\n <SelectOption key=\"0\" value=\"0\">{servicePlans['0']}</SelectOption>\n </FormFieldSelect>\n {!isCustomServicePlan() && addonPlans.length ? (\n <FormField\n label={<SubscriptionTranslate content=\"addonPlans\" />}\n >\n {({ isDisabled }) => (\n <Select\n multiple\n searchable\n size=\"lg\"\n name=\"subscription[subscriptionInfo][addonPlanSelector]\"\n id=\"subscription-subscriptionInfo-addonPlanSelector\"\n defaultValue={selectedAddonPlans}\n onChange={value => setSelectedAddonPlans(value)}\n disabled={isDisabled()}\n >\n {addonPlans.map(({ id, title }) => (\n <SelectOption key={id} value={id}>{title}</SelectOption>\n ))}\n </Select>\n )}\n </FormField>\n ) : null}\n <FormFieldCheckbox\n label={<SubscriptionTranslate content={withCustomer ? 'customizeSubscriptionForCustomer' : 'customizeSubscriptionOnCreateSubscription'} />}\n name=\"subscription[subscriptionInfo][customize]\"\n description={<SubscriptionTranslate content=\"customizeSubscriptionHint\" />}\n checkedValue=\"1\"\n uncheckedValue=\"0\"\n />\n {settingsEnabled ? (\n <Section\n id=\"subscription-additionalSettings\"\n title={<DomainTranslate content=\"subscriptionSettings\" />}\n collapsible\n collapsed={settingsCollapsed}\n onToggle={onToggleDomainSettings}\n >\n <IpSelectDropdowns ipAddresses={prepareBackendData(ipAddresses)} namePrefix={'subscription[domainInfo][ipSelector]'} />\n {!isMailOnly && (\n <>\n <br />\n <Heading level=\"4\"><DomainTranslate content=\"credentials\" /></Heading>\n <Text component=\"p\" intent=\"muted\">\n <DomainTranslate\n content={isWindows ? 'credentialsHintWin' : 'credentialsHint'}\n />\n </Text>\n <FormFieldText\n label={<DomainTranslate content=\"userName\" />}\n name=\"subscription[domainInfo][userName]\"\n required\n autoComplete=\"off\"\n />\n <FormFieldPassword\n label={<DomainTranslate content=\"password\" />}\n name=\"subscription[domainInfo][password]\"\n required\n autoComplete=\"new-password\"\n />\n </>\n )}\n <FormFieldText\n label={<AdminTranslate content=\"description\" />}\n multiline\n size=\"xl\"\n name=\"subscription[adminInfo][subscriptionDescription]\"\n description={<AdminTranslate content=\"subscriptionDescriptionHint\" />}\n />\n </Section>\n ) : null}\n </>\n );\n};\n\nSubscriptionSection.propTypes = {\n values: PropTypes.object.isRequired,\n servicePlans: PropTypes.object.isRequired,\n addonPlans: PropTypes.array.isRequired,\n ipAddresses: PropTypes.object.isRequired,\n handleFieldChange: PropTypes.func.isRequired,\n techDomainUrl: PropTypes.string.isRequired,\n techDomainVendor: PropTypes.string.isRequired,\n maxDomainLength: PropTypes.number.isRequired,\n settingsEnabled: PropTypes.bool,\n settingsCollapsed: PropTypes.bool,\n withCustomer: PropTypes.bool,\n isWindows: PropTypes.bool,\n onToggleDomainSettings: PropTypes.func,\n};\n\nexport default SubscriptionSection;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport {\n Alert,\n Section,\n ItemList,\n Item,\n Icon,\n Text,\n FormField,\n Cuttable,\n Status,\n Heading,\n Paragraph,\n} from '@plesk/ui-library';\nimport { useState, useEffect, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { Locale } from 'jsw';\nimport FormFieldDomainName from 'components/formFields/FormFieldDomainName';\n\nexport const TYPE_TECH = 'tech';\nexport const TYPE_CUSTOM = 'custom';\n\nconst Translate = Locale.getTranslate('components.forms.domain.tech-domain-name');\n\nconst TechDomainName = ({\n isEnabled,\n isDefault,\n url,\n vendor,\n maxDomainLength,\n typeName,\n name,\n ipAddress = null,\n onDomainNameChange,\n onTypeChange,\n}) => {\n const [type, setType] = useState(isEnabled && isDefault ? TYPE_TECH : TYPE_CUSTOM);\n\n const handleTypeChange = value => {\n setType(value);\n onTypeChange(value);\n onDomainNameChange('');\n };\n\n if (!isEnabled) {\n return (\n <DomainNameSection\n name={name}\n isEnabled={false}\n onDomainNameChange={onDomainNameChange}\n />\n );\n }\n\n const types = [\n { key: TYPE_CUSTOM, icon: <Icon name=\"ribbon\" intent=\"success\" /> },\n { key: TYPE_TECH, icon: <Icon name=\"rocket\" intent=\"info\" /> },\n ];\n\n return (\n <>\n <Section title={<Translate content=\"title\" />} vertical>\n <FormField name={typeName} onChange={value => handleTypeChange(value)}>\n {({ getId, getName, getValue, setValue, isDisabled }) => (\n <>\n <ItemList\n stretchable\n selectable\n minColumnWidth={270}\n gap=\"sm\"\n value={getValue()}\n onSelect={value => {\n if (value !== type) {\n setValue(value);\n }\n }}\n >\n {types.map(({ key, icon }) => (\n <Item\n icon={icon}\n key={key}\n role=\"button\"\n value={key}\n data-action={`use-${key}-domain`}\n title={(\n <Heading level=\"4\">\n <Paragraph>\n <Translate content={`${key}DomainTitle`} />\n </Paragraph>\n </Heading>\n )}\n disabled={isDisabled()}\n >\n <Text fontSize=\"md\">\n <Translate content={`${key}DomainText`} />\n </Text>\n </Item>\n ))}\n </ItemList>\n <input\n hidden\n id={getId()}\n name={getName()}\n value={getValue()}\n readOnly\n />\n </>\n )}\n </FormField>\n </Section>\n {type === TYPE_TECH ? (\n <TechDomainSection\n name={name}\n ipAddress={ipAddress}\n url={url}\n vendor={vendor}\n maxDomainLength={maxDomainLength}\n onDomainNameChange={onDomainNameChange}\n />\n ) : (\n <DomainNameSection\n name={name}\n isEnabled\n onDomainNameChange={onDomainNameChange}\n />\n )}\n </>\n );\n};\n\nconst DomainNameSection = ({ name, isEnabled, onDomainNameChange }) => (\n <Section vertical>\n <FormFieldDomainName\n name={name}\n label={isEnabled ? <Translate content=\"customDomain\" /> : <Translate content=\"domainName\" />}\n onChange={onDomainNameChange}\n required\n />\n </Section>\n);\nDomainNameSection.propTypes = {\n name: PropTypes.string.isRequired,\n isEnabled: PropTypes.bool.isRequired,\n onDomainNameChange: PropTypes.func.isRequired,\n};\n\nconst TechDomainSection = ({ name, onDomainNameChange, ...props }) => (\n <Section vertical>\n <>\n <FormField\n label={<Translate content=\"techDomain\" />}\n name={name}\n onChange={value => onDomainNameChange(value)}\n >\n {({ getId, getName, ...fieldApi }) => (\n <TechDomainSelector\n id={getId()}\n name={getName()}\n {...fieldApi}\n {...props}\n />\n )}\n </FormField>\n <Cuttable maxHeight={24}>\n <Paragraph>\n <Translate content=\"techDomainDesc\" />\n </Paragraph>\n <ul>\n <li><Translate content=\"techDomainRandom\" /></li>\n <li><Translate content=\"techDomainDns\" /></li>\n </ul>\n <Paragraph>\n <Translate content=\"techDomainSwitch\" />\n </Paragraph>\n </Cuttable>\n </>\n </Section>\n);\n\nTechDomainSection.propTypes = {\n name: PropTypes.string.isRequired,\n onDomainNameChange: PropTypes.func.isRequired,\n};\n\nconst getSubdomainName = async ({ url, ipAddress, vendor, maxDomainLength }) => {\n const response = await fetch(url, {\n method: 'POST',\n body: JSON.stringify({ ip_address: ipAddress, vendor, max_length: maxDomainLength }),\n });\n\n const { subdomain } = await response.json();\n if (!subdomain) {\n throw new Error('subdomain is empty');\n }\n\n return subdomain;\n};\n\nconst TechDomainSelector = ({ id, name, ipAddress = null, url, vendor, getValue, setValue, maxDomainLength }) => {\n const [loading, setLoading] = useState(false);\n const [requestedIpAddress, setRequestedIpAddress] = useState(ipAddress);\n const [errors, setErrors] = useState({});\n\n const requestDomainName = useCallback(async () => {\n setErrors({});\n\n if (getValue() && ipAddress === requestedIpAddress) {\n return;\n }\n if (!ipAddress) {\n setErrors({ noIpAddress: <Translate content=\"errorNoIpAddress\" /> });\n return;\n }\n\n setLoading(true);\n try {\n const subdomain = await getSubdomainName({ url, ipAddress, vendor, maxDomainLength });\n setValue(subdomain);\n setRequestedIpAddress(ipAddress);\n } catch {\n setErrors({ error: <Translate content=\"error\" /> });\n } finally {\n setLoading(false);\n }\n }, [getValue, setValue, ipAddress, requestedIpAddress, url, vendor, maxDomainLength]);\n\n useEffect(() => {\n requestDomainName();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ipAddress]);\n\n return (\n <>\n {loading ? (\n <Status progress><Translate content=\"generating\" /></Status>\n ) : (\n <Text bold>{getValue()}</Text>\n )}\n <input\n hidden\n id={id}\n name={name}\n value={getValue()}\n readOnly\n />\n {Object.keys(errors).map(key => (\n <Alert key={key} intent=\"danger\">\n <Icon name=\"exclamation-mark-circle-filled\" intent=\"danger\" />\n {' '}\n {errors[key]}\n </Alert>\n ))}\n </>\n );\n};\n\nTechDomainSelector.propTypes = {\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n ipAddress: PropTypes.string,\n url: PropTypes.string.isRequired,\n vendor: PropTypes.string.isRequired,\n maxDomainLength: PropTypes.number.isRequired,\n getValue: PropTypes.func.isRequired,\n setValue: PropTypes.func.isRequired,\n};\n\nTechDomainName.propTypes = {\n isEnabled: PropTypes.bool.isRequired,\n isDefault: PropTypes.bool.isRequired,\n url: PropTypes.string.isRequired,\n vendor: PropTypes.string.isRequired,\n maxDomainLength: PropTypes.number.isRequired,\n typeName: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n ipAddress: PropTypes.string,\n onDomainNameChange: PropTypes.func.isRequired,\n onTypeChange: PropTypes.func.isRequired,\n};\n\nexport default TechDomainName;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { FormField, Input, Text } from '@plesk/ui-library';\nimport PropTypes from 'prop-types';\n\nconst FormFieldDomainName = ({ size = 'lg', ...props }) => (\n <FormField {...props}>\n {({ getId, getName, getValue, setValue, isDisabled }) => (\n <div className=\"composite-field\">\n <Text className=\"composite-field__prefix\">\n {'www. '}\n </Text>\n <Input\n id={getId()}\n name={getName()}\n value={getValue()}\n placeholder=\"domain.name\"\n size={size}\n onChange={e => setValue(e.target.value)}\n disabled={isDisabled()}\n />\n </div>\n )}\n </FormField>\n);\n\nFormFieldDomainName.propTypes = {\n size: PropTypes.string,\n};\n\nexport default FormFieldDomainName;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Locale, UAT } from 'jsw';\nimport { Section, Paragraph, setIn, StatusMessage } from '@plesk/ui-library';\nimport { useCreateFormInDrawer } from 'hooks';\nimport { generateUserName } from 'helpers/generateUserName';\nimport { TYPE_TECH } from '../common/TechDomainName';\nimport Form from 'components/Form';\nimport SubscriptionSection from '../common/SubscriptionSection';\nimport ApplicationWizard from '../common/ApplicationWizard';\n\nconst DomainTranslate = Locale.getTranslate('admin.components.forms.admin-panel.form.domain-info-section');\nconst SubscriptionTranslate = Locale.getTranslate('admin.components.forms.admin-panel.form.subscription-info-section');\nconst ButtonsTranslate = Locale.getTranslate('components.buttons');\n\nconst CreateSubscriptionForm = ({\n onCancel,\n onProcess = undefined,\n id,\n values: initialValues,\n action,\n servicePlans,\n ipAddresses,\n addonPlans,\n maxSysnameSize,\n isWindows,\n techDomain: { url: techDomainUrl, vendor: techDomainVendor, maxDomainLength },\n settingsEnabled = false,\n settingsCollapsed = false,\n applicationWizardConfig = {},\n isMailServiceSupported = false,\n embeddedForms = undefined,\n extensionButtons = [],\n className = undefined,\n render = undefined,\n onToggleDomainSettings = undefined,\n status = undefined,\n}) => {\n const [values, setValues] = useState(initialValues);\n const [userNameChanged, setUserNameChanged] = useState(!initialValues.subscription.domainInfo);\n const isMailOnly = useMemo(() => values.applicationName === 'mail-hosting', [values.applicationName]);\n\n useEffect(() => {\n if (isMailOnly) {\n setValues(setIn(values, 'hostingType[hosting]', 'none'));\n setUserNameChanged(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isMailOnly]);\n\n const handleFieldChange = (name, value) => {\n setValues(values => {\n values = setIn(values, name, value);\n\n if (name === 'subscription[domainInfo][domainName]' && !userNameChanged) {\n const userName = generateUserName({\n domainName: value,\n maxUserNameSize: maxSysnameSize,\n isTechDomain: values.subscription.domainInfo.type === TYPE_TECH,\n isWindows,\n });\n\n values = setIn(values, 'subscription[domainInfo][userName]', userName || initialValues.subscription.domainInfo.userName);\n }\n\n return values;\n });\n\n if ([\n 'subscription[domainInfo][ipSelector][ipv4]', 'subscription[domainInfo][ipSelector][ipv6]',\n 'subscription[domainInfo][userName]', 'subscription[domainInfo][password]',\n ].includes(name)) {\n UAT.dispatchAction('CUSTOM-VALUE', { name });\n }\n\n if (name === 'subscription[domainInfo][userName]') {\n setUserNameChanged(true);\n }\n };\n\n const RenderComponent = applicationWizardConfig.enabled ? ApplicationWizard : Form;\n\n return (\n <RenderComponent\n id={id}\n className={className}\n render={render}\n action={action}\n applyButton={false}\n values={values}\n vertical\n onLongTask={onProcess}\n onFieldChange={handleFieldChange}\n formPrefix=\"subscription\"\n wizardConfig={applicationWizardConfig}\n isMailServiceSupported={isMailServiceSupported}\n embeddedForms={embeddedForms}\n extensionButtons={extensionButtons}\n submitButton={{\n id: 'btn-send',\n children: <SubscriptionTranslate content=\"buttonOk\" />,\n }}\n cancelButton={{\n id: 'btn-cancel',\n children: <ButtonsTranslate content=\"cancel\" />,\n onClick: onCancel,\n }}\n entity=\"subscription\"\n >\n {(status || []).filter(({ status }) => 'warning' === status).map(({ content }) => (\n <StatusMessage\n intent=\"warning\"\n key={content}\n >\n <div\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{ __html: content }}\n />\n </StatusMessage>\n ))}\n <Section title={<DomainTranslate content=\"domainInfoSection\" />}>\n <Paragraph>\n <DomainTranslate content=\"domainInfoSectionOwnHint\" />\n </Paragraph>\n </Section>\n <SubscriptionSection\n values={values}\n servicePlans={servicePlans}\n ipAddresses={ipAddresses}\n addonPlans={addonPlans}\n handleFieldChange={handleFieldChange}\n techDomainUrl={techDomainUrl}\n techDomainVendor={techDomainVendor}\n maxDomainLength={maxDomainLength}\n settingsEnabled={settingsEnabled}\n settingsCollapsed={settingsCollapsed}\n isWindows={isWindows}\n onToggleDomainSettings={onToggleDomainSettings}\n />\n </RenderComponent>\n );\n};\n\nCreateSubscriptionForm.propTypes = {\n onCancel: PropTypes.func.isRequired,\n onToggleDomainSettings: PropTypes.func,\n onProcess: PropTypes.func,\n id: PropTypes.string.isRequired,\n values: PropTypes.object.isRequired,\n action: PropTypes.string.isRequired,\n servicePlans: PropTypes.object.isRequired,\n ipAddresses: PropTypes.object.isRequired,\n addonPlans: PropTypes.array.isRequired,\n maxSysnameSize: PropTypes.number.isRequired,\n isWindows: PropTypes.bool.isRequired,\n techDomain: PropTypes.object.isRequired,\n settingsEnabled: PropTypes.bool,\n settingsCollapsed: PropTypes.bool,\n applicationWizardConfig: PropTypes.object,\n isMailServiceSupported: PropTypes.bool,\n embeddedForms: PropTypes.array,\n extensionButtons: PropTypes.array,\n className: PropTypes.string,\n render: PropTypes.func,\n status: PropTypes.array,\n};\n\nexport const useCreateSubscriptionFormInDrawer = (pageUrl, drawerUrl) => useCreateFormInDrawer(CreateSubscriptionForm, 'create-subscription', pageUrl, drawerUrl);\n\nexport default CreateSubscriptionForm;\n","// 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 { 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 { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useNavigate } from 'react-router-dom';\nimport {\n createElement as ce,\n prepareUrl,\n escapeHtml,\n getComponent,\n redirectPost,\n list,\n bar,\n messageBox,\n DynamicPopupHint,\n SmallButton,\n Locale,\n api,\n addStatusMessage,\n} from 'jsw';\nimport { useNavigateCallback } from 'components/common/Link';\nimport { createSiteDescription } from 'helpers/description';\nimport JswList from '../jsw/JswList';\n\nconst locale = Locale.getSection('admin.components.lists.subscriptions');\n\nconst getErrorMessage = ({ ipStatus, webserverConfigurationStatus }, isAdmin) => {\n if (ipStatus) {\n return locale.lmsg('unlinkedDomainHint');\n }\n if (!webserverConfigurationStatus) {\n return locale.lmsg(isAdmin ? 'webserverConfigurationDomainHintAdmin' : 'webserverConfigurationDomainHintReseller');\n }\n return '';\n};\n\nconst SubscriptionsList = ({\n data,\n searchFilters,\n allowCreateSubscription = false,\n customersSupport = false,\n isHomonymSearchEnabled = false,\n showSubscriberName = false,\n isAdmin = false,\n currentUserId,\n dataUrl,\n createUrl,\n changeUrl,\n redirectUrl,\n showExpirationDate = false,\n}) => {\n const navigate = useNavigate();\n const navigateHandler = useNavigateCallback();\n\n const operations = useMemo(() => [\n allowCreateSubscription ? {\n componentType: SmallButton,\n id: 'buttonAddNewOwnSubscription',\n title: locale.lmsg('buttonAddNewSubscription'),\n description: locale.lmsg('hintAddNewSubscription'),\n addCls: 'sb-add-new-subscription btn-primary',\n href: createUrl,\n handler: navigateHandler,\n } : null,\n allowCreateSubscription ? {\n componentType: bar.Separator,\n } : null,\n {\n componentType: SmallButton,\n id: 'buttonChangeSubscription',\n title: locale.lmsg('buttonChangeSubscription'),\n description: locale.lmsg('hintChangeSubscription'),\n addCls: 'sb-change-subscription',\n handler() {\n const listControl = getComponent('subscriptions-list');\n if (!listControl.checkNonEmptySelection()) {\n return;\n }\n\n redirectPost(`${changeUrl}?redirect=${redirectUrl}`, {\n ids: listControl.getSelectedItemsIds(),\n });\n },\n },\n customersSupport ? {\n componentType: bar.Separator,\n } : null,\n customersSupport ? {\n componentType: SmallButton,\n id: 'buttonChangeOwner',\n title: locale.lmsg('buttonChangeOwner'),\n description: locale.lmsg('hintChangeOwner'),\n addCls: 'sb-assign-new-owner',\n handler() {\n getComponent('subscriptions-list').execGroupOperation({\n submitHandler: (url, payload) => {\n navigate(`${url}?${Object.entries(payload).map(([key, value]) => `${key}=${value}`).join('&')}`);\n },\n url: 'change-owner',\n skipConfirmation: true,\n });\n },\n } : null,\n {\n componentType: bar.Separator,\n }, {\n componentType: list.AdditionalActions,\n title: locale.lmsg('buttonSetStatus'),\n description: locale.lmsg('hintSetStatus'),\n operations: [\n {\n componentType: SmallButton,\n id: 'buttonSuspendSubscriptions',\n title: locale.lmsg('buttonSuspendSubscriptions'),\n description: locale.lmsg('hintSuspendSubscriptions'),\n addCls: 'sb-suspend',\n cls: 'sb-btn',\n handler() {\n const locale = Locale.getSection('components.sites.Card');\n getComponent('subscriptions-list').execGroupOperation({\n url: `/subscription/suspend/?redirect=${redirectUrl}`,\n subtype: messageBox.SUBTYPE_CONFIRM,\n text: locale.lmsg('suspendHint'),\n });\n },\n }, {\n componentType: SmallButton,\n id: 'buttonActivateSubscriptions',\n title: locale.lmsg('buttonActivateSubscriptions'),\n description: locale.lmsg('hintActivateSubscriptions'),\n addCls: 'sb-activate',\n cls: 'sb-btn',\n handler() {\n getComponent('subscriptions-list').execGroupOperation({\n url: `/subscription/activate/?redirect=${redirectUrl}`,\n skipConfirmation: true,\n });\n },\n },\n ],\n },\n allowCreateSubscription ? {\n componentType: bar.Separator,\n } : null,\n allowCreateSubscription ? {\n componentType: SmallButton,\n id: 'buttonRemoveSubscription',\n title: locale.lmsg('buttonRemove'),\n description: locale.lmsg('hintRemove'),\n addCls: 'sb-remove-selected',\n handler(event) {\n const list = getComponent('subscriptions-list');\n const subscriptions = list.getSelectedItems();\n const relatedDomains = subscriptions\n .reduce((domains, { relatedDomains }) => domains.concat(relatedDomains), []);\n\n list.execGroupOperation({\n url: `/subscription/delete/?redirect=${redirectUrl}`,\n subtype: messageBox.SUBTYPE_DELETE,\n mouseEvent: event,\n text: locale.formatMessage('confirmOnDelete', {\n name: `<b>${escapeHtml(subscriptions[0]?.domainDisplayName)}</b>`,\n count: subscriptions.length,\n }),\n description: relatedDomains.length ? locale.lmsg('removeConfirmationSubscription', {\n domains: relatedDomains.join(', '),\n }).replace(/\\n/gm, '<br>') : '',\n isAjax: !!isHomonymSearchEnabled,\n requestUrl: '/subscription/search-homonym-data/',\n toJsonPayload: true,\n submitHandler: async (url, payload) => {\n const { task, error } = await api.post(prepareUrl('/subscription/delete-async/'), {\n ids: payload.ids,\n redirectUrl,\n });\n\n if (error) {\n addStatusMessage('error', error);\n } else if (task && task.componentType === 'Jsw.Task.ProgressBar.Item') {\n getComponent('asyncProgressBarWrapper').progressDialog(task);\n }\n },\n });\n },\n } : null,\n ], [allowCreateSubscription, changeUrl, createUrl, customersSupport, isHomonymSearchEnabled, navigate, navigateHandler, redirectUrl]);\n\n const columns = useMemo(() => [\n list.COLUMN_SELECTION,\n {\n header: locale.lmsg('subscriptionName'),\n sortable: true,\n dataIndex: 'domainName',\n renderer(item) {\n if (0 == item.id) {\n return ce('a', { href: prepareUrl(item.link) }, escapeHtml(item.name));\n }\n\n let subscriptionStatus = 'ok';\n let subscriptionStatusIcon = require('icons/16/plesk/subscription-status-ok.png');\n let subscriptionStatusDescription = locale.lmsg('statusOk');\n\n if (!item.subscriptionActive) {\n subscriptionStatus = 'suspended';\n subscriptionStatusIcon = require('icons/16/plesk/subscription-status-suspended.png');\n subscriptionStatusDescription = locale.lmsg(item.subscriptionExpired ? 'statusSuspendedReasonExpired' : 'statusSuspended');\n } else if (item.subscriptionLocked) {\n subscriptionStatus = 'locked';\n subscriptionStatusIcon = require('icons/16/plesk/subscription-status-locked.png');\n subscriptionStatusDescription = locale.lmsg('statusLocked');\n } else if (!item.subscriptionSynchronized) {\n subscriptionStatus = 'unsynchronized';\n subscriptionStatusIcon = require('icons/16/plesk/subscription-status-unsynchronized.png');\n subscriptionStatusDescription = locale.lmsg('statusUnsynchronized');\n }\n\n const subscriptionName = `${escapeHtml(item.domainDisplayName)} (${escapeHtml(item.planName)})`;\n const errorMessage = getErrorMessage(item, isAdmin);\n\n return ce(`${errorMessage ? '.b-indent-x2' : '.b-indent'}${item.subscriptionOveruse ? '.status-overused' : '.status-ok'}`, [\n ce('span.b-indent-icon', [\n ce('span', [\n ce('span.tooltipData', escapeHtml(subscriptionStatusDescription)),\n ce('img', { src: subscriptionStatusIcon, alt: subscriptionStatus, title: '' }),\n ]),\n errorMessage ? ce('span', [\n ce('span.tooltipData', errorMessage),\n ce('img', { src: require('icons/16/plesk/webserver-domain-error.png'), alt: '', title: '' }),\n ]) : '',\n ]),\n item.overviewUrl ? ce('a', { href: prepareUrl(item.overviewUrl), onclick: navigateHandler }, subscriptionName) : subscriptionName,\n ' ',\n ce('span.hint.hint-info', { id: `hint-item-${item.id}` }, locale.lmsg('hintInfo')),\n ...createSiteDescription(item, locale),\n ]);\n },\n },\n showSubscriberName ? {\n header: locale.lmsg('subscriberName'),\n sortable: true,\n dataIndex: 'subscriberName',\n renderer({ subscriberId, subscriberType, subscriberName, subscriberCompanyName }) {\n let href = null;\n switch (subscriberType) {\n case 'client':\n href = `/admin/customer/overview/id/${subscriberId}`;\n break;\n case 'reseller':\n href = isAdmin ? `/admin/reseller/overview/id/${subscriberId}` : '/admin/reseller-self/subscription-overview';\n break;\n }\n\n return [\n href ? ce('a', { href, onclick: navigateHandler }, escapeHtml(subscriberName)) : escapeHtml(subscriberName),\n subscriberCompanyName ? `, ${escapeHtml(subscriberCompanyName)}` : null,\n ];\n },\n } : '',\n {\n header: locale.lmsg('setupDate'),\n sortable: true,\n dataIndex: 'setupDate',\n renderer(item) {\n return (0 == item.id) ? '-' : escapeHtml(item.setupDateString);\n },\n }, showExpirationDate ? {\n header: locale.lmsg('expirationDate'),\n sortable: true,\n dataIndex: 'expirationDate',\n renderer(item) {\n return (item.id === 0) ? '-' : escapeHtml(item.expirationDateString);\n },\n } : null, {\n header: '',\n sortable: false,\n renderer(item) {\n if (!item.manageUrl || parseInt(item.subscriberId) === currentUserId) {\n return '';\n }\n\n const href = `/admin${item.subscriberType === 'reseller' ? '/reseller' : '/customer'}/login/id/${item.subscriberId}` +\n `?pageUrl=${encodeURIComponent(item.manageUrl)}`;\n\n return (\n `<a href=\"${href}\" class=\"s-btn sb-login\"><span>${\n locale.lmsg(item.subscriberType === 'reseller' ? 'manageInResellerPanel' : 'manageInCustomerPanel')\n }</span></a>`\n );\n },\n },\n ], [currentUserId, isAdmin, navigateHandler, showExpirationDate, showSubscriberName]);\n\n const isDisabledItem = useCallback(({ id }) => id == 0, []);\n const onRedraw = useCallback(() => {\n document.querySelectorAll('span.hint.hint-info').forEach(hintElement => {\n new DynamicPopupHint.Instance({\n title: locale.lmsg('hintTitle'),\n waitMsg: locale.lmsg('hintWaitMessage'),\n url: `/subscription/stats-hint/domainId/${hintElement.id.replace('hint-item-', '')}`,\n placement: 'right',\n target: hintElement.id,\n });\n });\n }, []);\n\n return (\n <JswList\n id=\"subscriptions-list\"\n data={data}\n dataUrl={dataUrl}\n searchFilters={searchFilters}\n searchOveral=\"domainName\"\n disabledSelectHint={locale.lmsg('disabledSelectHint')}\n operations={operations}\n columns={columns}\n isDisabledItem={isDisabledItem}\n onRedraw={onRedraw}\n />\n );\n};\n\nSubscriptionsList.propTypes = {\n data: JswList.propTypes.data.isRequired,\n searchFilters: JswList.propTypes.searchFilters.isRequired,\n allowCreateSubscription: PropTypes.bool,\n customersSupport: PropTypes.bool,\n isHomonymSearchEnabled: PropTypes.bool,\n showSubscriberName: PropTypes.bool,\n isAdmin: PropTypes.bool,\n currentUserId: PropTypes.number.isRequired,\n dataUrl: PropTypes.string.isRequired,\n createUrl: PropTypes.string.isRequired,\n changeUrl: PropTypes.string.isRequired,\n redirectUrl: PropTypes.string.isRequired,\n showExpirationDate: PropTypes.bool,\n};\n\nexport default SubscriptionsList;\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { Outlet } from 'react-router-dom';\nimport { Locale } from 'jsw';\nimport { useCreateSubscriptionFormInDrawer } from '../forms/CreateSubscriptionForm';\nimport { withPageLayout } from '../layouts/PageLayout';\nimport SubscriptionsList from '../lists/SubscriptionsList';\n\nconst Translate = Locale.getTranslate('components.pages.subscriptions');\n\nconst SubscriptionsPage = props => {\n const [createSubscriptionDrawer] = useCreateSubscriptionFormInDrawer('/admin/subscription/list', '/admin/subscription/create');\n return (\n <>\n {createSubscriptionDrawer}\n <p><Translate content=\"hint\" /></p>\n <SubscriptionsList\n dataUrl=\"/admin/subscription/list-data\"\n createUrl=\"/admin/subscription/create\"\n changeUrl=\"/admin/subscription/change\"\n redirectUrl=\"/admin/subscription/list\"\n showSubscriberName\n showExpirationDate\n {...props}\n />\n <Outlet />\n </>\n );\n};\n\nexport default withPageLayout(SubscriptionsPage);\n\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nimport { createElement as ce, escapeHtml } from 'jsw';\n\nexport const truncate = (str, count = 50) => str.length < count ? str : `${str.slice(0, count - 3)}...`;\n\nexport const createDescription = (selector, description, prefix) => ce(selector, [\n (prefix ? `${prefix}: ` : '') + escapeHtml(truncate(description, 50)),\n ce('span.tooltipData', escapeHtml(description)),\n]);\n\nexport const createSiteDescription = (\n { adminDescription, resellerDescription, ownerDescription, hideResellerTitleDescription, hideOwnerTitleDescription },\n locale,\n className = 'hint',\n) => [\n adminDescription ? createDescription(`.${className}`, adminDescription) : '',\n resellerDescription ? createDescription(\n `.${className}`,\n resellerDescription,\n !hideResellerTitleDescription && locale.lmsg('resellerDescription'),\n ) : '',\n ownerDescription ? createDescription(\n `.${className}`,\n ownerDescription,\n !hideOwnerTitleDescription && locale.lmsg('ownerDescription'),\n ) : '',\n];\n","// Copyright 1999-2025. WebPros International GmbH. All rights reserved.\n\nexport const randomString = (): string => Math.random().toString(36).slice(2);\n\nconst defaultPostfix = (): string => `_${randomString()}`;\n\ntype GenerateUserNameParams = {\n domainName: string;\n maxUserNameSize?: number;\n isTechDomain: boolean;\n isWindows: boolean;\n postfix?: string;\n};\n\nexport const generateUserName = ({\n domainName,\n maxUserNameSize,\n isTechDomain,\n isWindows,\n postfix = defaultPostfix(),\n}: GenerateUserNameParams): string => {\n let userName = domainName;\n\n const isUnix = !isWindows;\n const hasNotAllowedSymbols = !/^[a-zA-Z0-9_.\\-]+$/.test(domainName);\n const startsWithDigit = /^[0-9]+/.test(domainName);\n\n if (typeof domainName !== 'string' || typeof postfix !== 'string') {\n return '';\n }\n\n if (hasNotAllowedSymbols) {\n return '';\n }\n\n if (isUnix && startsWithDigit) {\n return '';\n }\n\n if (typeof maxUserNameSize !== 'number' && maxUserNameSize !== undefined) {\n return '';\n }\n\n if (maxUserNameSize) {\n if (postfix.length > maxUserNameSize) {\n return '';\n }\n\n maxUserNameSize = maxUserNameSize - postfix.length;\n }\n\n if (isTechDomain) {\n userName = userName.split('.')[0];\n }\n\n userName = userName.toLowerCase().substr(0, maxUserNameSize) + postfix;\n\n if (isWindows) {\n userName = userName.replace(/\\.+$/, '');\n }\n\n return userName;\n};\n","module.exports = Jsw.skinUrl + \"/icons/16/plesk/subscription-status-locked.png?791d616dde33b19ebd4b7fbf3b305ffe\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/subscription-status-ok.png?6d52f91c87cbdc73b4ef0b5ded92c441\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/subscription-status-suspended.png?7968ea094f0aa3fdced5d59b0c7f3196\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/subscription-status-unsynchronized.png?c075e72041171bb35d0a9b6542518ccf\";","module.exports = Jsw.skinUrl + \"/icons/16/plesk/webserver-domain-error.png?8ada2989a2d00386c7f59b862eb7fa9e\";","module.exports = Jsw.skinUrl + \"/images/code.svg?d9dcc332aeb03168d77f5fbcc97e7bcb\";","module.exports = Jsw.skinUrl + \"/images/mail.svg?e19a5f99ea85bc24608c0601bfe29fcc\";","module.exports = Jsw.skinUrl + \"/images/upload-files.svg?3659f9de736ae2576023d51cbfb48963\";"],"names":["ApplicationsTranslate","Locale","getTranslate","getExtensionAppName","extensionId","ApplicationWizard","onFieldChange","onStepChange","formPrefix","wizardConfig","enabled","blankSite","uploadFiles","mailHosting","isMailServiceSupported","embeddedForms","extensionButtons","values","children","entity","className","props","location","useLocation","preselectedAppName","setPreselectedAppName","useState","URLSearchParams","search","get","handleApplicationChange","applicationName","applicationsList","name","icon","require","title","_jsx","content","description","map","id","filter","Boolean","selectedApplication","find","showSelectedApplicationInfo","length","steps","key","ChooseApplicationStep","onApplicationSelect","nextButton","_jsxs","_Fragment","SelectedApplicationInfo","applicationTitle","useEffect","preselectedApplication","step","MultistepForm","classNames","handleStepChange","prev","window","history","replaceState","pathname","propTypes","PropTypes","isRequired","ApplicationsListTranslate","Heading","level","ItemList","minColumnWidth","gap","selectable","stretchable","Item","role","Icon","src","intent","size","onClick","Paragraph","ButtonsTranslate","onSubmit","submitButton","cancelButton","formRef","useRef","stateStep","setStep","currentStep","backButton","isLastStep","isFirstStep","stepKey","handleBack","current","handleEmbeddedFormValues","prevState","handleNext","handleSubmit","submit","Form","ref","additionalButtons","getAdditionalButtons","Button","arrow","push","isValidElement","cloneElement","onError","errors","baseFormStep","findIndex","errorSteps","Object","keys","errorSection","errorStep","some","Math","min","applyButton","Translate","locale","getSection","alt","lmsg","component","params","optionName","Text","bold","IpAddressTranslate","IpSelectDropdown","ipAddresses","namePrefix","type","isOtherTypeAvailable","getIpAddressType","translate","useTranslate","FormFieldSelect","label","ipAddress","publicIpAddress","SelectOption","value","TYPE_IPV4","TYPE_IPV6","TYPE_SHARED","TYPE_EXCLUSIVE","IpSelectDropdowns","isIPv6Supported","ipv4Addresses","useMemo","isIPv6","isBroken","ipv6Addresses","useCallback","prepareBackendData","ips","forEach","DomainTranslate","SubscriptionTranslate","AdminTranslate","SubscriptionSection","servicePlans","addonPlans","handleFieldChange","techDomainUrl","techDomainVendor","maxDomainLength","settingsEnabled","settingsCollapsed","withCustomer","isWindows","onToggleDomainSettings","selectedAddonPlans","setSelectedAddonPlans","selected","servicePlan","getIn","isCustomServicePlan","isMailOnly","addonPlanSelector","includes","JSON","stringify","subscription","domainInfo","ipSelector","split","TechDomainName","isEnabled","undefined","isDefault","TYPE_TECH","url","vendor","typeName","onTypeChange","onDomainNameChange","FormField","isDisabled","Select","multiple","searchable","defaultValue","onChange","disabled","FormFieldCheckbox","checkedValue","uncheckedValue","Section","collapsible","collapsed","onToggle","FormFieldText","required","autoComplete","FormFieldPassword","multiline","TYPE_CUSTOM","setType","DomainNameSection","types","vertical","handleTypeChange","getId","getName","getValue","setValue","onSelect","fontSize","hidden","readOnly","TechDomainSection","FormFieldDomainName","fieldApi","TechDomainSelector","Cuttable","maxHeight","loading","setLoading","requestedIpAddress","setRequestedIpAddress","setErrors","requestDomainName","async","subdomain","response","fetch","method","body","ip_address","max_length","json","Error","getSubdomainName","error","noIpAddress","Status","progress","Alert","Input","placeholder","e","target","CreateSubscriptionForm","onCancel","onProcess","initialValues","action","maxSysnameSize","techDomain","applicationWizardConfig","render","status","setValues","userNameChanged","setUserNameChanged","setIn","userName","generateUserName","domainName","maxUserNameSize","isTechDomain","UAT","dispatchAction","RenderComponent","onLongTask","StatusMessage","dangerouslySetInnerHTML","__html","useCreateSubscriptionFormInDrawer","pageUrl","drawerUrl","useCreateFormInDrawer","dataUrl","operations","itemActions","columns","data","state","pager","additional","pathbar","searchFilters","searchOveral","disabledSelectHint","isDisabledItem","onRedraw","emptyViewMode","emptyView","defaultProps","JswList","convertToReactComponent","List","propsList","displayName","JswComponent","setters","containerRef","componentRef","componentProps","containerProps","entries","reduce","res","deps","useLayoutEffect","remove","SubscriptionsList","allowCreateSubscription","customersSupport","isHomonymSearchEnabled","showSubscriberName","isAdmin","currentUserId","createUrl","changeUrl","redirectUrl","showExpirationDate","navigate","useNavigate","navigateHandler","useNavigateCallback","componentType","SmallButton","addCls","href","handler","bar","Separator","listControl","getComponent","checkNonEmptySelection","redirectPost","ids","getSelectedItemsIds","execGroupOperation","submitHandler","payload","join","skipConfirmation","list","AdditionalActions","cls","subtype","messageBox","SUBTYPE_CONFIRM","text","event","subscriptions","getSelectedItems","relatedDomains","domains","concat","SUBTYPE_DELETE","mouseEvent","formatMessage","escapeHtml","domainDisplayName","count","replace","isAjax","requestUrl","toJsonPayload","task","api","post","prepareUrl","addStatusMessage","progressDialog","COLUMN_SELECTION","header","sortable","dataIndex","renderer","item","ce","link","subscriptionStatus","subscriptionStatusIcon","subscriptionStatusDescription","subscriptionActive","subscriptionLocked","subscriptionSynchronized","subscriptionExpired","subscriptionName","planName","errorMessage","getErrorMessage","ipStatus","webserverConfigurationStatus","subscriptionOveruse","overviewUrl","onclick","createSiteDescription","subscriberId","subscriberType","subscriberName","subscriberCompanyName","setupDateString","expirationDateString","manageUrl","parseInt","encodeURIComponent","document","querySelectorAll","hintElement","DynamicPopupHint","Instance","waitMsg","placement","withPageLayout","createSubscriptionDrawer","Outlet","truncate","str","slice","createDescription","selector","prefix","adminDescription","resellerDescription","ownerDescription","hideResellerTitleDescription","hideOwnerTitleDescription","randomString","random","toString","defaultPostfix","postfix","isUnix","hasNotAllowedSymbols","test","startsWithDigit","toLowerCase","substr","module","exports","Jsw","skinUrl"],"sourceRoot":""}
Submit
FILE
FOLDER
INFO
Name
Size
Permission
Action
list.js
32350 bytes
0644
list.js.map
103567 bytes
0644
N4ST4R_ID | Naxtarrr