Service - FormObjectEdit Config: Difference between revisions

From Izara Wiki
Jump to navigation Jump to search
(Created page with "= Overview = Manages configuration for one form used to display or edit an existing object = Repository = https://bitbucket.org/izara-core-shared/izara-core-shared-formobjectedit-config = DynamoDB tables = == FormObjectEditConfigMain == <syntaxhighlight lang="JavaScript"> { formObjectEditConfigId: "xx", // {random uuid} formObjectEditConfig: "xx", // json encoded object of configuration formObjectEditConfigName: "yy", // user specified name of the config userId...")
 
No edit summary
 
(One intermediate revision by one other user not shown)
Line 6: Line 6:


https://bitbucket.org/izara-core-shared/izara-core-shared-formobjectedit-config
https://bitbucket.org/izara-core-shared/izara-core-shared-formobjectedit-config
= ObjectSchema =
== formObjectEditConfig ==
<syntaxhighlight lang="JavaScript">
[
  {
    objectType: "formObjectEditConfig",
    storageResources: {
      dynamodb: {
        storageType: "dynamoDB",
        tableName: "FormObjectEditConfigMain",
      }
    },
    fieldNames: {
      formObjectEditConfigId: {
        type: "string",
        randomOnCreate: true,
        requiredOnCreate: false,
        optionalOnCreate: false,
        canUpdate: false,
        storageResourceTags: ['dynamodb'],
      },
      formObjectEditConfig: {
        type: "object",
        randomOnCreate: false,
        requiredOnCreate: true,
        optionalOnCreate: false,
        canUpdate: true,
        storageResourceTags: ['dynamodb'],
      },
      formObjectEditConfigName: {
        type: "string",
        randomOnCreate: false,
        requiredOnCreate: true,
        optionalOnCreate: false,
        canUpdate: true,
        storageResourceTags: ['dynamodb'],
      },
      userId: { // before put check with base-user-id or targetId
        type: "string",
        randomOnCreate: false,
        requiredOnCreate: true,
        optionalOnCreate: false,
        canUpdate: false,
        storageResourceTags: ['dynamodb'],
      },
    },
    identifiers: [
      {
        type: "partitionKey",
        fieldName:"formObjectEditConfigId"
      },
    ],
  },
]
</syntaxhighlight>


= DynamoDB tables =
= DynamoDB tables =
Line 63: Line 121:
formElementType: "data{same tableConfig}",
formElementType: "data{same tableConfig}",
fieldName: "fieldName_1",
fieldName: "fieldName_1",
displayOnly: true|false,
displaySetting: "xx", // "input"|"displayOnly" input is not available for calculatedData
},
{
elementType: "calculatedField",
fieldName: "xx"
},
{
elementType: "recalculateDataLink", // links to any calculatedData for th objectType
dataTag: "xx"
},
{
elementType: "submitButton",
text: "xx"
},
},
// want to add way to link to and output other linked to object (table for multiple, or plain fields for single) according to relationshipTypes
// want to add way to link to and output other linked to object (table for multiple, or plain fields for single) according to relationshipTypes

Latest revision as of 02:29, 17 July 2025

Overview

Manages configuration for one form used to display or edit an existing object

Repository

https://bitbucket.org/izara-core-shared/izara-core-shared-formobjectedit-config

ObjectSchema

formObjectEditConfig

[
  {
    objectType: "formObjectEditConfig",
    storageResources: {
      dynamodb: {
        storageType: "dynamoDB",
        tableName: "FormObjectEditConfigMain",
      }
    },
    fieldNames: {
      formObjectEditConfigId: {
        type: "string",
        randomOnCreate: true,
        requiredOnCreate: false,
        optionalOnCreate: false,
        canUpdate: false,
        storageResourceTags: ['dynamodb'],
      },
      formObjectEditConfig: {
        type: "object",
        randomOnCreate: false,
        requiredOnCreate: true,
        optionalOnCreate: false,
        canUpdate: true,
        storageResourceTags: ['dynamodb'],
      },
      formObjectEditConfigName: {
        type: "string",
        randomOnCreate: false,
        requiredOnCreate: true,
        optionalOnCreate: false,
        canUpdate: true,
        storageResourceTags: ['dynamodb'],
      },
      userId: { // before put check with base-user-id or targetId
        type: "string",
        randomOnCreate: false,
        requiredOnCreate: true,
        optionalOnCreate: false,
        canUpdate: false,
        storageResourceTags: ['dynamodb'],
      },
    },
    identifiers: [
      {
        type: "partitionKey",
        fieldName:"formObjectEditConfigId"
      },
    ],
  },
]

DynamoDB tables

FormObjectEditConfigMain

{
	formObjectEditConfigId: "xx", // {random uuid}
	formObjectEditConfig: "xx", // json encoded object of configuration
	formObjectEditConfigName: "yy", // user specified name of the config
	userId: "xx"
}
  • partition key: formObjectEditConfigId
  • sort key: {none}

UsersFormObjectEditConfigs

{
	userId: "xx" // user who owns the config
	formObjectEditConfigId: "xx",
}
  • partition key: userId
  • sort key: formObjectEditConfigId

formObjectEditConfig Object

{
	formName: "xx", // set by the creator of the form, displayed in setup pages
	
	// grouping/row/cell/elements structure same tableConfig
	// add css theme and overwrite settings
	// standardize property names to match tableConfig structure (eg elementTypes)
	rows: {
		rowName: "xx",
		groupings: [
			{
				groupingName: "xx",
				rows: [
					{
						rowName: "xx",
						cells: [
							{
								cellName: "xx",
								elements: [
									{
										formElementType: "freeText", // freeText|data{same tableConfig}
										text: "xxx",
									},
									{
										formElementType: "data{same tableConfig}",
										fieldName: "fieldName_1",
										displaySetting: "xx", // "input"|"displayOnly" input is not available for calculatedData						
									},
									{
										elementType: "calculatedField",
										fieldName: "xx"
									},
									{
										elementType: "recalculateDataLink", // links to any calculatedData for th objectType
										dataTag: "xx"
									},
									{
										elementType: "submitButton",
										text: "xx"
									},
									// want to add way to link to and output other linked to object (table for multiple, or plain fields for single) according to relationshipTypes
								]
							},
							// ..
						]
					},
					//...
				],
			},
			//...
		],
	},
	//...
}

Working documents

FormObjectEdit Config