Loading modules/cloud_dashboard/cloud_dashboard/src/constant/form_template/openstack/image.ts +48 −5 Changes for modules/cloud_dashboard/cloud_dashboard/src/constant/form_template/openstack/image.ts: 48 added lines, 5 removed lines. Original line number Diff line number Diff line Loading @@ -10,16 +10,59 @@ const OPENSTACK_IMAGE_TEMPLATE: EntityFormTemplate[] = [ type: 'panel', panelName: 'Image', keyValueRecords: [ { type: 'default', labelName: 'Name', name: 'name', defaultValue: '' { type: 'default', labelName: 'Name', name: 'name', defaultValue: '' }, { type: 'radio', labelName: 'Visibility', name: 'visibility', defaultValue: '0', value: [ { labelName: 'Private', name: '0' }, { labelName: 'Public', name: '1' }, ], orientation: 'horizontal' } ] } ] }, { type: 'radio', labelName: 'Visibility', name: 'visibility', defaultValue: '0', cloudServiceProvider: 'openstack', entityName: 'image', actionType: 'edit', entityRecords: [ { type: 'panel', panelName: 'Image', keyValueRecords: [ { type: 'default', labelName: 'Name', name: 'name', defaultValue: '', required: true }, { type: 'default', labelName: 'AMI Name', name: 'ami_name', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'Image ID', name: 'image_id', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'Owner', name: 'account_id', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'Source', name: 'source', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'Status', name: 'status', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'State Reason', name: 'state_reason', defaultValue: '', readOnly: true }, { type: 'datetime', labelName: 'Created', name: 'created' }, { type: 'radio', labelName: 'Visibility', name: 'visibility', defaultValue: '0', value: [ { labelName: 'Private', name: '0' }, { labelName: 'Public', name: '1' }, ], orientation: 'horizontal' } ], orientation: 'horizontal' } ] }, { type: 'panel', panelName: 'Type:', keyValueRecords: [ { type: 'default', labelName: 'Platform', name: 'platform', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'Architecture', name: 'architecture', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'Visualization Type', name: 'visualization_type', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'Product Code', name: 'product_code', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'Image Type', name: 'image_type', defaultValue: '', readOnly: true }, ] }, { type: 'panel', panelName: 'Device:', keyValueRecords: [ { type: 'default', labelName: 'Root Device Name', name: 'root_device_name', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'Root Device Type', name: 'root_device_type', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'Kernel ID', name: 'kernel_id', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'Ramdisk ID', name: 'ramdisk_id', defaultValue: '', readOnly: true }, ] } ] Loading modules/cloud_dashboard/cloud_dashboard/src/model/EntityFormColumn.ts +4 −0 Changes for modules/cloud_dashboard/cloud_dashboard/src/model/EntityFormColumn.ts: 4 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -52,6 +52,10 @@ type EntityFormColumn = (EntityFormColumnBase & EntityFormColumnInfo) | { defaultValue: [string, string], required?: boolean, readOnly?: boolean, } | { type: 'datetime', labelName: string, name: string, }; export default EntityFormColumn; modules/cloud_dashboard/cloud_dashboard/src/molecules/EntityFormBlock.tsx +9 −2 Changes for modules/cloud_dashboard/cloud_dashboard/src/molecules/EntityFormBlock.tsx: 9 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ import StringInputBlock from 'molecules/StringInputBlock'; import TextareaBlock from 'molecules/TextareaBlock'; import TimeSelectBlock from 'molecules/TimeSelectBlock'; import UrlSelectBlock from 'molecules/UrlSelectBlock'; import { convertDateString } from 'service/utility'; const EntityFormBlock = ({ keyValueRecord, cloudContext, formData, setFormData }: { keyValueRecord: EntityFormColumn, Loading Loading @@ -120,12 +121,18 @@ const EntityFormBlock = ({ keyValueRecord, cloudContext, formData, setFormData } case 'radio': return <RadioSelectBlock label={keyValueRecord.labelName} value={value} setValue={setValue} value={value ? '1' : '0'} setValue={(s: string) => { setValue(s === '1'); }} valueList={keyValueRecord.value} orientation={keyValueRecord.orientation} required={!!keyValueRecord.required} readOnly={!!keyValueRecord.readOnly} />; case 'datetime': return <LabelBlock name={keyValueRecord.labelName} value={convertDateString(value)} />; default: return <></>; } Loading modules/cloud_dashboard/cloud_dashboard/src/molecules/LabelBlock.tsx +1 −1 Changes for modules/cloud_dashboard/cloud_dashboard/src/molecules/LabelBlock.tsx: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ import Form from 'bootstrap3-components/Form'; const LabelBlock = ({name, value} : {name: string, value: string}) => { return <Form.Group> <Form.Label>{name}: </Form.Label> {' ' + value} {value === null ? '' : ` ${value}`} </Form.Group>; } Loading modules/cloud_dashboard/cloud_dashboard/src/pages/EntityCreatePage.tsx +2 −0 Changes for modules/cloud_dashboard/cloud_dashboard/src/pages/EntityCreatePage.tsx: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -32,6 +32,8 @@ const EntityCreatePageImpl = ({ cloudContext, entityFormTemplate, entityName }: if (keyValueRecord.type === 'time') { newFormData[keyValueRecord.hourName] = keyValueRecord.defaultValue[0]; newFormData[keyValueRecord.minuteName] = keyValueRecord.defaultValue[1]; } else if (keyValueRecord.type === 'datetime') { // The 'datetime' type is read-only so do not include it in the form data. } else { newFormData[keyValueRecord.name] = keyValueRecord.defaultValue; } Loading Loading
modules/cloud_dashboard/cloud_dashboard/src/constant/form_template/openstack/image.ts +48 −5 Changes for modules/cloud_dashboard/cloud_dashboard/src/constant/form_template/openstack/image.ts: 48 added lines, 5 removed lines. Original line number Diff line number Diff line Loading @@ -10,16 +10,59 @@ const OPENSTACK_IMAGE_TEMPLATE: EntityFormTemplate[] = [ type: 'panel', panelName: 'Image', keyValueRecords: [ { type: 'default', labelName: 'Name', name: 'name', defaultValue: '' { type: 'default', labelName: 'Name', name: 'name', defaultValue: '' }, { type: 'radio', labelName: 'Visibility', name: 'visibility', defaultValue: '0', value: [ { labelName: 'Private', name: '0' }, { labelName: 'Public', name: '1' }, ], orientation: 'horizontal' } ] } ] }, { type: 'radio', labelName: 'Visibility', name: 'visibility', defaultValue: '0', cloudServiceProvider: 'openstack', entityName: 'image', actionType: 'edit', entityRecords: [ { type: 'panel', panelName: 'Image', keyValueRecords: [ { type: 'default', labelName: 'Name', name: 'name', defaultValue: '', required: true }, { type: 'default', labelName: 'AMI Name', name: 'ami_name', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'Image ID', name: 'image_id', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'Owner', name: 'account_id', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'Source', name: 'source', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'Status', name: 'status', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'State Reason', name: 'state_reason', defaultValue: '', readOnly: true }, { type: 'datetime', labelName: 'Created', name: 'created' }, { type: 'radio', labelName: 'Visibility', name: 'visibility', defaultValue: '0', value: [ { labelName: 'Private', name: '0' }, { labelName: 'Public', name: '1' }, ], orientation: 'horizontal' } ], orientation: 'horizontal' } ] }, { type: 'panel', panelName: 'Type:', keyValueRecords: [ { type: 'default', labelName: 'Platform', name: 'platform', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'Architecture', name: 'architecture', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'Visualization Type', name: 'visualization_type', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'Product Code', name: 'product_code', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'Image Type', name: 'image_type', defaultValue: '', readOnly: true }, ] }, { type: 'panel', panelName: 'Device:', keyValueRecords: [ { type: 'default', labelName: 'Root Device Name', name: 'root_device_name', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'Root Device Type', name: 'root_device_type', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'Kernel ID', name: 'kernel_id', defaultValue: '', readOnly: true }, { type: 'default', labelName: 'Ramdisk ID', name: 'ramdisk_id', defaultValue: '', readOnly: true }, ] } ] Loading
modules/cloud_dashboard/cloud_dashboard/src/model/EntityFormColumn.ts +4 −0 Changes for modules/cloud_dashboard/cloud_dashboard/src/model/EntityFormColumn.ts: 4 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -52,6 +52,10 @@ type EntityFormColumn = (EntityFormColumnBase & EntityFormColumnInfo) | { defaultValue: [string, string], required?: boolean, readOnly?: boolean, } | { type: 'datetime', labelName: string, name: string, }; export default EntityFormColumn;
modules/cloud_dashboard/cloud_dashboard/src/molecules/EntityFormBlock.tsx +9 −2 Changes for modules/cloud_dashboard/cloud_dashboard/src/molecules/EntityFormBlock.tsx: 9 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ import StringInputBlock from 'molecules/StringInputBlock'; import TextareaBlock from 'molecules/TextareaBlock'; import TimeSelectBlock from 'molecules/TimeSelectBlock'; import UrlSelectBlock from 'molecules/UrlSelectBlock'; import { convertDateString } from 'service/utility'; const EntityFormBlock = ({ keyValueRecord, cloudContext, formData, setFormData }: { keyValueRecord: EntityFormColumn, Loading Loading @@ -120,12 +121,18 @@ const EntityFormBlock = ({ keyValueRecord, cloudContext, formData, setFormData } case 'radio': return <RadioSelectBlock label={keyValueRecord.labelName} value={value} setValue={setValue} value={value ? '1' : '0'} setValue={(s: string) => { setValue(s === '1'); }} valueList={keyValueRecord.value} orientation={keyValueRecord.orientation} required={!!keyValueRecord.required} readOnly={!!keyValueRecord.readOnly} />; case 'datetime': return <LabelBlock name={keyValueRecord.labelName} value={convertDateString(value)} />; default: return <></>; } Loading
modules/cloud_dashboard/cloud_dashboard/src/molecules/LabelBlock.tsx +1 −1 Changes for modules/cloud_dashboard/cloud_dashboard/src/molecules/LabelBlock.tsx: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ import Form from 'bootstrap3-components/Form'; const LabelBlock = ({name, value} : {name: string, value: string}) => { return <Form.Group> <Form.Label>{name}: </Form.Label> {' ' + value} {value === null ? '' : ` ${value}`} </Form.Group>; } Loading
modules/cloud_dashboard/cloud_dashboard/src/pages/EntityCreatePage.tsx +2 −0 Changes for modules/cloud_dashboard/cloud_dashboard/src/pages/EntityCreatePage.tsx: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -32,6 +32,8 @@ const EntityCreatePageImpl = ({ cloudContext, entityFormTemplate, entityName }: if (keyValueRecord.type === 'time') { newFormData[keyValueRecord.hourName] = keyValueRecord.defaultValue[0]; newFormData[keyValueRecord.minuteName] = keyValueRecord.defaultValue[1]; } else if (keyValueRecord.type === 'datetime') { // The 'datetime' type is read-only so do not include it in the form data. } else { newFormData[keyValueRecord.name] = keyValueRecord.defaultValue; } Loading