Loading modules/cloud_dashboard/cloud_dashboard/src/constant/form_template/aws_cloud/security_group.ts +20 −0 Original line number Diff line number Diff line import EntityFormTemplate from 'model/EntityFormTemplate'; const AWS_CLOUD_SECURITY_GROUP_TEMPLATE: EntityFormTemplate[] = [ { cloudServiceProvider: 'aws_cloud', entityName: 'security_group', actionType: 'create', entityRecords: [ { type: 'panel', panelName: 'Security group', keyValueRecords: [ { type: 'default', labelName: 'Security group name', name: 'group_name', defaultValue: '', required: true }, { type: 'default', labelName: 'Description', name: 'description', defaultValue: '', required: true }, { type: 'join', labelName: 'VPC CIDR (ID)', name: 'vpc_id', info: { entityTypeId: 'aws_cloud_vpc', keyColumn: 'vpc_id', label: '{name} ({vpc_id} | {cidr_block})' }, defaultValue: '', required: true }, ] } ] }, { cloudServiceProvider: 'aws_cloud', entityName: 'security_group', Loading modules/cloud_dashboard/cloud_dashboard/src/model/EntityFormColumn.ts +1 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ type EntityFormColumnInfo = { info: { entityTypeId: string, keyColumn: string, label?: string, }, defaultValue: string, } | { Loading modules/cloud_dashboard/cloud_dashboard/src/molecules/EntityFormBlock.tsx +1 −0 Original line number Diff line number Diff line Loading @@ -90,6 +90,7 @@ const EntityFormBlock = ({ keyValueRecord, cloudContext, formData, setFormData } setValue={setValue} entityTypeId={keyValueRecord.info.entityTypeId} keyColumn={keyValueRecord.info.keyColumn} optionLabel={keyValueRecord.info.label ?? '{name}'} required={!!keyValueRecord.required} readOnly={!!keyValueRecord.readOnly} />; case 'select': Loading modules/cloud_dashboard/cloud_dashboard/src/molecules/JoinSelectBlock.tsx +11 −2 Original line number Diff line number Diff line Loading @@ -4,17 +4,26 @@ import LabelBlock from 'molecules/LabelBlock'; import SelectBlock from 'molecules/SelectBlock'; import { useEffect, useState } from 'react'; const convertLabel = (entityData: EntityData, labelFormat: string): string => { let output = labelFormat; for (const key in entityData.attributes) { output = output.replaceAll(`{${key}}`, entityData.attributes[key]); } return output; } /** * Block of select view. * * @param */ const JoinSelectBlock = ({ label, value, setValue, entityTypeId, keyColumn, required, readOnly }: { const JoinSelectBlock = ({ label, value, setValue, entityTypeId, keyColumn, optionLabel, required, readOnly }: { label: string, value: string, setValue: (s: string) => void, entityTypeId: string, keyColumn: string, optionLabel: string, required: boolean, readOnly: boolean, }) => { Loading Loading @@ -49,7 +58,7 @@ const JoinSelectBlock = ({ label, value, setValue, entityTypeId, keyColumn, requ value={value} setValue={setValue} recordList={dataList.map((d) => { return { value: d.attributes[keyColumn], label: d.attributes['name'] }; return { value: d.attributes[keyColumn], label: convertLabel(d, optionLabel) }; })} required={required} />; Loading modules/cloud_service_providers/aws_cloud/src/Controller/Ec2/ApiController.php +12 −0 Original line number Diff line number Diff line Loading @@ -803,6 +803,18 @@ class ApiController extends ControllerBase implements ApiControllerInterface { $method_name = 'createImageFromInstance'; break; case 'create_aws_cloud_security_group': /** @var \Drupal\aws_cloud\Entity\Ec2\SecurityGroupInterface $entity */ $entity->setGroupName($request->get('group_name', '')); $entity->setDescription($request->get('description', '')); $vpc_id = $request->get('vpc_id', ''); if (empty($vpc_id)) { $vpc_id = $entity->getVpcId(); } $form_state->set('vpc_id', $vpc_id); $method_name = 'createSecurityGroup'; break; case 'delete_aws_cloud_instance': $method_name = 'deleteInstance'; break; Loading Loading
modules/cloud_dashboard/cloud_dashboard/src/constant/form_template/aws_cloud/security_group.ts +20 −0 Original line number Diff line number Diff line import EntityFormTemplate from 'model/EntityFormTemplate'; const AWS_CLOUD_SECURITY_GROUP_TEMPLATE: EntityFormTemplate[] = [ { cloudServiceProvider: 'aws_cloud', entityName: 'security_group', actionType: 'create', entityRecords: [ { type: 'panel', panelName: 'Security group', keyValueRecords: [ { type: 'default', labelName: 'Security group name', name: 'group_name', defaultValue: '', required: true }, { type: 'default', labelName: 'Description', name: 'description', defaultValue: '', required: true }, { type: 'join', labelName: 'VPC CIDR (ID)', name: 'vpc_id', info: { entityTypeId: 'aws_cloud_vpc', keyColumn: 'vpc_id', label: '{name} ({vpc_id} | {cidr_block})' }, defaultValue: '', required: true }, ] } ] }, { cloudServiceProvider: 'aws_cloud', entityName: 'security_group', Loading
modules/cloud_dashboard/cloud_dashboard/src/model/EntityFormColumn.ts +1 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ type EntityFormColumnInfo = { info: { entityTypeId: string, keyColumn: string, label?: string, }, defaultValue: string, } | { Loading
modules/cloud_dashboard/cloud_dashboard/src/molecules/EntityFormBlock.tsx +1 −0 Original line number Diff line number Diff line Loading @@ -90,6 +90,7 @@ const EntityFormBlock = ({ keyValueRecord, cloudContext, formData, setFormData } setValue={setValue} entityTypeId={keyValueRecord.info.entityTypeId} keyColumn={keyValueRecord.info.keyColumn} optionLabel={keyValueRecord.info.label ?? '{name}'} required={!!keyValueRecord.required} readOnly={!!keyValueRecord.readOnly} />; case 'select': Loading
modules/cloud_dashboard/cloud_dashboard/src/molecules/JoinSelectBlock.tsx +11 −2 Original line number Diff line number Diff line Loading @@ -4,17 +4,26 @@ import LabelBlock from 'molecules/LabelBlock'; import SelectBlock from 'molecules/SelectBlock'; import { useEffect, useState } from 'react'; const convertLabel = (entityData: EntityData, labelFormat: string): string => { let output = labelFormat; for (const key in entityData.attributes) { output = output.replaceAll(`{${key}}`, entityData.attributes[key]); } return output; } /** * Block of select view. * * @param */ const JoinSelectBlock = ({ label, value, setValue, entityTypeId, keyColumn, required, readOnly }: { const JoinSelectBlock = ({ label, value, setValue, entityTypeId, keyColumn, optionLabel, required, readOnly }: { label: string, value: string, setValue: (s: string) => void, entityTypeId: string, keyColumn: string, optionLabel: string, required: boolean, readOnly: boolean, }) => { Loading Loading @@ -49,7 +58,7 @@ const JoinSelectBlock = ({ label, value, setValue, entityTypeId, keyColumn, requ value={value} setValue={setValue} recordList={dataList.map((d) => { return { value: d.attributes[keyColumn], label: d.attributes['name'] }; return { value: d.attributes[keyColumn], label: convertLabel(d, optionLabel) }; })} required={required} />; Loading
modules/cloud_service_providers/aws_cloud/src/Controller/Ec2/ApiController.php +12 −0 Original line number Diff line number Diff line Loading @@ -803,6 +803,18 @@ class ApiController extends ControllerBase implements ApiControllerInterface { $method_name = 'createImageFromInstance'; break; case 'create_aws_cloud_security_group': /** @var \Drupal\aws_cloud\Entity\Ec2\SecurityGroupInterface $entity */ $entity->setGroupName($request->get('group_name', '')); $entity->setDescription($request->get('description', '')); $vpc_id = $request->get('vpc_id', ''); if (empty($vpc_id)) { $vpc_id = $entity->getVpcId(); } $form_state->set('vpc_id', $vpc_id); $method_name = 'createSecurityGroup'; break; case 'delete_aws_cloud_instance': $method_name = 'deleteInstance'; break; Loading