mirror of https://github.com/portainer/portainer
224 lines
7.1 KiB
TypeScript
224 lines
7.1 KiB
TypeScript
import angular from 'angular';
|
|
|
|
import { r2a } from '@/react-tools/react2angular';
|
|
import { IngressClassDatatableAngular } from '@/react/kubernetes/cluster/ingressClass/IngressClassDatatable/IngressClassDatatableAngular';
|
|
import { NamespacesSelector } from '@/react/kubernetes/cluster/RegistryAccessView/NamespacesSelector';
|
|
import { StorageAccessModeSelector } from '@/react/kubernetes/cluster/ConfigureView/ConfigureForm/StorageAccessModeSelector';
|
|
import { NamespaceAccessUsersSelector } from '@/react/kubernetes/namespaces/AccessView/NamespaceAccessUsersSelector';
|
|
import { RegistriesSelector } from '@/react/kubernetes/namespaces/components/RegistriesFormSection/RegistriesSelector';
|
|
import { DataAccessPolicyFormSection } from '@/react/kubernetes/applications/CreateView/DataAccessPolicyFormSection';
|
|
import { KubeServicesForm } from '@/react/kubernetes/applications/CreateView/application-services/KubeServicesForm';
|
|
import { kubeServicesValidation } from '@/react/kubernetes/applications/CreateView/application-services/kubeServicesValidation';
|
|
import { KubeApplicationDeploymentTypeSelector } from '@/react/kubernetes/applications/CreateView/KubeApplicationDeploymentTypeSelector';
|
|
import { withReactQuery } from '@/react-tools/withReactQuery';
|
|
import { withUIRouter } from '@/react-tools/withUIRouter';
|
|
import {
|
|
ApplicationSummaryWidget,
|
|
ApplicationDetailsWidget,
|
|
ApplicationEventsDatatable,
|
|
} from '@/react/kubernetes/applications/DetailsView';
|
|
import { ApplicationContainersDatatable } from '@/react/kubernetes/applications/DetailsView/ApplicationContainersDatatable';
|
|
import { withFormValidation } from '@/react-tools/withFormValidation';
|
|
import { withCurrentUser } from '@/react-tools/withCurrentUser';
|
|
import { YAMLInspector } from '@/react/kubernetes/components/YAMLInspector';
|
|
import { ApplicationsStacksDatatable } from '@/react/kubernetes/applications/ListView/ApplicationsStacksDatatable';
|
|
import { NodesDatatable } from '@/react/kubernetes/cluster/HomeView/NodesDatatable';
|
|
import { StackName } from '@/react/kubernetes/DeployView/StackName/StackName';
|
|
import { kubeEnvVarValidationSchema } from '@/react/kubernetes/applications/ApplicationForm/kubeEnvVarValidationSchema';
|
|
import { SecretsFormSection } from '@/react/kubernetes/applications/components/ConfigurationsFormSection/SecretsFormSection';
|
|
import { configurationsValidationSchema } from '@/react/kubernetes/applications/components/ConfigurationsFormSection/configurationValidationSchema';
|
|
import { ConfigMapsFormSection } from '@/react/kubernetes/applications/components/ConfigurationsFormSection/ConfigMapsFormSection';
|
|
import { PersistedFoldersFormSection } from '@/react/kubernetes/applications/components/PersistedFoldersFormSection';
|
|
import { persistedFoldersValidation } from '@/react/kubernetes/applications/components/PersistedFoldersFormSection/persistedFoldersValidation';
|
|
|
|
import { EnvironmentVariablesFieldset } from '@@/form-components/EnvironmentVariablesFieldset';
|
|
|
|
export const ngModule = angular
|
|
.module('portainer.kubernetes.react.components', [])
|
|
.component(
|
|
'ingressClassDatatable',
|
|
r2a(IngressClassDatatableAngular, [
|
|
'onChangeControllers',
|
|
'description',
|
|
'ingressControllers',
|
|
'initialIngressControllers',
|
|
'allowNoneIngressClass',
|
|
'isLoading',
|
|
'noIngressControllerLabel',
|
|
'view',
|
|
])
|
|
)
|
|
.component(
|
|
'namespacesSelector',
|
|
r2a(NamespacesSelector, [
|
|
'dataCy',
|
|
'inputId',
|
|
'name',
|
|
'namespaces',
|
|
'onChange',
|
|
'placeholder',
|
|
'value',
|
|
])
|
|
)
|
|
.component(
|
|
'storageAccessModeSelector',
|
|
r2a(StorageAccessModeSelector, [
|
|
'inputId',
|
|
'onChange',
|
|
'options',
|
|
'value',
|
|
'storageClassName',
|
|
])
|
|
)
|
|
.component(
|
|
'namespaceAccessUsersSelector',
|
|
r2a(NamespaceAccessUsersSelector, [
|
|
'inputId',
|
|
'onChange',
|
|
'options',
|
|
'value',
|
|
'dataCy',
|
|
'placeholder',
|
|
'name',
|
|
])
|
|
)
|
|
.component(
|
|
'createNamespaceRegistriesSelector',
|
|
r2a(withUIRouter(withReactQuery(withCurrentUser(RegistriesSelector))), [
|
|
'inputId',
|
|
'onChange',
|
|
'options',
|
|
'value',
|
|
])
|
|
)
|
|
.component(
|
|
'kubeNodesDatatable',
|
|
r2a(withUIRouter(withReactQuery(withCurrentUser(NodesDatatable))), [])
|
|
)
|
|
.component(
|
|
'dataAccessPolicyFormSection',
|
|
r2a(DataAccessPolicyFormSection, [
|
|
'value',
|
|
'onChange',
|
|
'isEdit',
|
|
'persistedFoldersUseExistingVolumes',
|
|
])
|
|
)
|
|
.component(
|
|
'kubeApplicationDeploymentTypeSelector',
|
|
r2a(KubeApplicationDeploymentTypeSelector, [
|
|
'value',
|
|
'onChange',
|
|
'supportGlobalDeployment',
|
|
])
|
|
)
|
|
.component(
|
|
'kubeYamlInspector',
|
|
r2a(withUIRouter(withReactQuery(withCurrentUser(YAMLInspector))), [
|
|
'identifier',
|
|
'data',
|
|
'hideMessage',
|
|
])
|
|
)
|
|
.component(
|
|
'kubeStackName',
|
|
r2a(withUIRouter(withReactQuery(withCurrentUser(StackName))), [
|
|
'setStackName',
|
|
'isAdmin',
|
|
'stackName',
|
|
])
|
|
)
|
|
.component(
|
|
'applicationSummaryWidget',
|
|
r2a(
|
|
withUIRouter(withReactQuery(withCurrentUser(ApplicationSummaryWidget))),
|
|
[]
|
|
)
|
|
)
|
|
.component(
|
|
'applicationContainersDatatable',
|
|
r2a(
|
|
withUIRouter(
|
|
withReactQuery(withCurrentUser(ApplicationContainersDatatable))
|
|
),
|
|
[]
|
|
)
|
|
)
|
|
.component(
|
|
'applicationDetailsWidget',
|
|
r2a(
|
|
withUIRouter(withReactQuery(withCurrentUser(ApplicationDetailsWidget))),
|
|
[]
|
|
)
|
|
)
|
|
.component(
|
|
'applicationEventsDatatable',
|
|
r2a(
|
|
withUIRouter(withReactQuery(withCurrentUser(ApplicationEventsDatatable))),
|
|
[]
|
|
)
|
|
)
|
|
.component(
|
|
'kubernetesApplicationsStacksDatatable',
|
|
r2a(withUIRouter(withCurrentUser(ApplicationsStacksDatatable)), [
|
|
'dataset',
|
|
'onRefresh',
|
|
'onRemove',
|
|
'namespace',
|
|
'namespaces',
|
|
'onNamespaceChange',
|
|
'isLoading',
|
|
'showSystem',
|
|
'setSystemResources',
|
|
])
|
|
);
|
|
|
|
export const componentsModule = ngModule.name;
|
|
|
|
withFormValidation(
|
|
ngModule,
|
|
withUIRouter(withCurrentUser(withReactQuery(KubeServicesForm))),
|
|
'kubeServicesForm',
|
|
['values', 'onChange', 'appName', 'selector', 'isEditMode', 'namespace'],
|
|
kubeServicesValidation
|
|
);
|
|
|
|
withFormValidation(
|
|
ngModule,
|
|
EnvironmentVariablesFieldset,
|
|
'kubeEnvironmentVariablesFieldset',
|
|
['canUndoDelete'],
|
|
// use kubeEnvVarValidationSchema instead of envVarValidation to add a regex matches rule
|
|
kubeEnvVarValidationSchema
|
|
);
|
|
|
|
withFormValidation(
|
|
ngModule,
|
|
withUIRouter(withCurrentUser(withReactQuery(ConfigMapsFormSection))),
|
|
'configMapsFormSection',
|
|
['values', 'onChange', 'namespace'],
|
|
configurationsValidationSchema
|
|
);
|
|
|
|
withFormValidation(
|
|
ngModule,
|
|
withUIRouter(withCurrentUser(withReactQuery(SecretsFormSection))),
|
|
'secretsFormSection',
|
|
['values', 'onChange', 'namespace'],
|
|
configurationsValidationSchema
|
|
);
|
|
|
|
withFormValidation(
|
|
ngModule,
|
|
withUIRouter(withCurrentUser(withReactQuery(PersistedFoldersFormSection))),
|
|
'persistedFoldersFormSection',
|
|
[
|
|
'isEdit',
|
|
'applicationValues',
|
|
'isAddPersistentFolderButtonShown',
|
|
'initialValues',
|
|
'availableVolumes',
|
|
],
|
|
persistedFoldersValidation
|
|
);
|