Track HiveGrid Cloud planning reference
This commit is contained in:
1 parent
b3d5ea6764
commit
e341c5938a
5784 files changed
+1104929
-3
No files matched your search
@@ -0,0 +1,184 @@
|
||||
import FormHelper from "~/utils/helpers/FormHelper";
|
||||
import { JsonPropertiesValuesDto } from "../dtos/JsonPropertiesValuesDto";
|
||||
import { JsonPropertyDto } from "../dtos/JsonPropertyTypeDto";
|
||||
import { t as i18nT } from "i18next";
|
||||
|
||||
function getValuesFromForm({
|
||||
properties,
|
||||
form,
|
||||
prefix = "attributes",
|
||||
}: {
|
||||
properties: JsonPropertyDto[] | undefined;
|
||||
form: FormData;
|
||||
prefix?: string;
|
||||
}): JsonPropertiesValuesDto {
|
||||
const propertiesValues: JsonPropertiesValuesDto = {};
|
||||
if (!properties || properties.length === 0) {
|
||||
return propertiesValues;
|
||||
}
|
||||
properties.forEach((prop) => {
|
||||
propertiesValues[prop.name] = getValueFromForm({ property: prop, form, prefix });
|
||||
});
|
||||
|
||||
return propertiesValues;
|
||||
}
|
||||
|
||||
function getValueFromForm({ property, form, prefix = "properties" }: { property: JsonPropertyDto; form: FormData; prefix?: string }): any {
|
||||
switch (property.type) {
|
||||
case "string":
|
||||
case "wysiwyg":
|
||||
case "monaco":
|
||||
case "content": {
|
||||
const value = FormHelper.getText(form, `${prefix}[${property.name}]`);
|
||||
return value;
|
||||
}
|
||||
case "number": {
|
||||
const value = FormHelper.getNumber(form, `${prefix}[${property.name}]`);
|
||||
return value;
|
||||
}
|
||||
case "boolean": {
|
||||
const value = FormHelper.getBoolean(form, `${prefix}[${property.name}]`);
|
||||
return value;
|
||||
}
|
||||
case "date": {
|
||||
const value = FormHelper.getDate(form, `${prefix}[${property.name}]`);
|
||||
return value;
|
||||
}
|
||||
case "image": {
|
||||
const value = FormHelper.getText(form, `${prefix}[${property.name}]`);
|
||||
return value;
|
||||
}
|
||||
case "select": {
|
||||
const value = FormHelper.getText(form, `${prefix}[${property.name}]`);
|
||||
return value;
|
||||
}
|
||||
case "multiselect": {
|
||||
const value = FormHelper.getJsonArray(form, `${prefix}[${property.name}]`);
|
||||
return value;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
const allProperties: JsonPropertyDto[] = [
|
||||
{
|
||||
type: "string",
|
||||
name: "string",
|
||||
title: i18nT("models.jsonProperty.samples.string"),
|
||||
required: true,
|
||||
defaultValue: "test",
|
||||
},
|
||||
{
|
||||
type: "string",
|
||||
name: "stringNotRequired",
|
||||
title: i18nT("models.jsonProperty.samples.stringNotRequired"),
|
||||
required: false,
|
||||
defaultValue: "test2",
|
||||
},
|
||||
{
|
||||
type: "number",
|
||||
name: "number",
|
||||
title: i18nT("models.jsonProperty.samples.number"),
|
||||
required: true,
|
||||
defaultValue: 10,
|
||||
},
|
||||
{
|
||||
type: "number",
|
||||
name: "numberNotRequired",
|
||||
title: i18nT("models.jsonProperty.samples.numberNotRequired"),
|
||||
required: false,
|
||||
defaultValue: 20,
|
||||
},
|
||||
{
|
||||
type: "boolean",
|
||||
name: "boolean",
|
||||
title: i18nT("models.jsonProperty.samples.boolean"),
|
||||
required: true,
|
||||
defaultValue: true,
|
||||
},
|
||||
{
|
||||
type: "boolean",
|
||||
name: "booleanNotRequired",
|
||||
title: i18nT("models.jsonProperty.samples.booleanNotRequired"),
|
||||
required: false,
|
||||
defaultValue: false,
|
||||
},
|
||||
{
|
||||
type: "date",
|
||||
name: "date",
|
||||
title: i18nT("models.jsonProperty.samples.date"),
|
||||
required: true,
|
||||
defaultValue: new Date().toISOString(),
|
||||
},
|
||||
{
|
||||
type: "date",
|
||||
name: "dateNotRequired",
|
||||
title: i18nT("models.jsonProperty.samples.dateNotRequired"),
|
||||
required: false,
|
||||
defaultValue: new Date(new Date().setDate(new Date().getDate() + 1)).toISOString(),
|
||||
},
|
||||
{
|
||||
type: "image",
|
||||
name: "image",
|
||||
title: i18nT("models.jsonProperty.samples.image"),
|
||||
required: true,
|
||||
defaultValue: "https://placehold.co/150",
|
||||
},
|
||||
{
|
||||
type: "image",
|
||||
name: "imageNotRequired",
|
||||
title: i18nT("models.jsonProperty.samples.imageNotRequired"),
|
||||
required: false,
|
||||
defaultValue: "https://placehold.co/250",
|
||||
},
|
||||
{
|
||||
type: "select",
|
||||
name: "select",
|
||||
title: i18nT("models.jsonProperty.samples.select"),
|
||||
required: true,
|
||||
defaultValue: "option1",
|
||||
options: [
|
||||
{ name: i18nT("models.jsonProperty.samples.option1"), value: "option1" },
|
||||
{ name: i18nT("models.jsonProperty.samples.option2"), value: "option2" },
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "select",
|
||||
name: "selectNotRequired",
|
||||
title: i18nT("models.jsonProperty.samples.selectNotRequired"),
|
||||
required: false,
|
||||
defaultValue: "option2",
|
||||
options: [
|
||||
{ name: i18nT("models.jsonProperty.samples.option1"), value: "option1" },
|
||||
{ name: i18nT("models.jsonProperty.samples.option2"), value: "option2" },
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "multiselect",
|
||||
name: "multiselect",
|
||||
title: i18nT("models.jsonProperty.samples.multiselect"),
|
||||
required: true,
|
||||
defaultValue: ["option1"],
|
||||
options: [
|
||||
{ name: i18nT("models.jsonProperty.samples.option1"), value: "option1" },
|
||||
{ name: i18nT("models.jsonProperty.samples.option2"), value: "option2" },
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "multiselect",
|
||||
name: "multiselectNotRequired",
|
||||
title: i18nT("models.jsonProperty.samples.multiselectNotRequired"),
|
||||
required: false,
|
||||
defaultValue: ["option1", "option2"],
|
||||
options: [
|
||||
{ name: i18nT("models.jsonProperty.samples.option1"), value: "option1" },
|
||||
{ name: i18nT("models.jsonProperty.samples.option2"), value: "option2" },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
export default {
|
||||
getValuesFromForm,
|
||||
allProperties,
|
||||
};
|
||||
Reference in new issue
Block a user