in web/frontend/src/app/pages/streams/modules/schema-editor/components/diff/grid-components/data-lost/resolution.component.ts [182:275]
private getInputControl(disabled?: boolean): FieldModel {
const CONTROL: FieldModel = {
type: 'text',
name: 'setVal',
label: this.ifDataLoss()
? this.storeData.messages.setVal
: this.ifDefaultValueRequired()
? this.storeData.messages.defVal
: this.storeData.messages.val,
value: '',
required: false,
default: '',
},
CURRENT_TYPE_NAME = this.data._props.dataType.name,
CURRENT_ENUM = this.storeData.enums.find((_enum) => _enum.name === CURRENT_TYPE_NAME);
if (disabled) {
CONTROL.disabled = disabled;
}
this.last_field_data = {
setVal: '',
};
switch (CURRENT_TYPE_NAME) {
case 'BOOLEAN':
CONTROL.type = 'dropdown';
CONTROL.values = [
...(this.data && this.data._props && this.data._props.nullable
? [
{
value: null,
label: 'null',
},
]
: []),
{
value: true,
label: 'true',
},
{
value: false,
label: 'false',
},
];
break;
case 'CHAR': //
case 'VARCHAR': //
case 'TIMEOFDAY': //
case 'FLOAT': //
case 'INTEGER': //
break;
// case 'TIMESTAMP':
// TODO: need to create data time picker control
// break;
// case 'BINARY':
// TODO: need to create binary control or use file uploader?
// break;
// case 'OBJECT':
// TODO: need to support OBJECT data type
// break;
// case 'ARRAY':
// TODO: need to create ARRAY data type
// break;
default:
if (CURRENT_ENUM) {
CONTROL.type = 'dropdown';
CONTROL.values = [
...(this.data && this.data._props && this.data._props.nullable
? [
{
value: null,
label: 'null',
},
]
: []),
...CURRENT_ENUM.fields.map((field) => ({
value: field.name,
label: field.name,
})),
];
}
break;
}
if (this.data && this.data._props && this.data._props.nullable) {
CONTROL.value = null;
this.last_field_data = {
setVal: null,
};
}
return CONTROL;
}