1
0
Fork 0
mirror of synced 2024-09-13 07:53:31 +12:00
budibase/packages/server/appPackages/testApp2/public/main/clientAppDefinition.js
Michael Shanks b7d9e05641
Work on Components API & bugfixes (#102)
* typo - screens not being sent to page save

* removed children arg from hydrateChildren (n/a)

* initialiseChildren does not rerender unless forced

* removed derivatives of initialiseChildren

* renamed initialiseChildren > attachChildren

* standard-components - refactoring

div now container
H1, h2... etc now Heading with type
Select now takes option as _children

* loads of bug fixing

* safe props creation
anytime props are loaded,
we make sure they conform to the components props definition
2020-02-14 11:51:45 +00:00

1039 lines
40 KiB
JavaScript

window["##BUDIBASE_APPDEFINITION##"] = {
hierarchy: {
name: "root",
type: "root",
children: [
{
name: "customer",
type: "record",
fields: [
{
name: "name",
type: "string",
typeOptions: {
maxLength: null,
values: null,
allowDeclaredValuesOnly: false,
},
label: "Name",
getInitialValue: "default",
getUndefinedValue: "default",
},
{
name: "enquiry",
type: "string",
typeOptions: {
maxLength: null,
values: ["Google", "Facebook", "Word of Mouth"],
allowDeclaredValuesOnly: true,
},
label: "Enquiry Source",
getInitialValue: "default",
getUndefinedValue: "default",
},
],
children: [],
validationRules: [],
nodeId: 1,
indexes: [],
allidsShardFactor: 64,
collectionName: "customers",
isSingle: false,
},
{
name: "Contact",
type: "record",
fields: [
{
name: "name",
type: "string",
typeOptions: {
maxLength: null,
values: null,
allowDeclaredValuesOnly: false,
},
label: "Name",
getInitialValue: "default",
getUndefinedValue: "default",
},
{
name: "contacted",
type: "bool",
typeOptions: { allowNulls: false },
label: "Has Been Contacted",
getInitialValue: "default",
getUndefinedValue: "default",
},
],
children: [],
validationRules: [],
nodeId: 3,
indexes: [],
allidsShardFactor: 64,
collectionName: "contacts",
isSingle: false,
},
{
name: "naw",
type: "record",
fields: [
{
name: "s",
type: "string",
typeOptions: {
maxLength: null,
values: null,
allowDeclaredValuesOnly: false,
},
label: "s",
getInitialValue: "default",
getUndefinedValue: "default",
},
],
children: [],
validationRules: [],
nodeId: 5,
indexes: [],
allidsShardFactor: 64,
collectionName: "nas",
isSingle: false,
},
{
name: "jon",
type: "record",
fields: [
{
name: "j",
type: "string",
typeOptions: {
maxLength: null,
values: null,
allowDeclaredValuesOnly: false,
},
label: "j",
getInitialValue: "default",
getUndefinedValue: "default",
},
],
children: [],
validationRules: [],
nodeId: 6,
indexes: [],
allidsShardFactor: 64,
collectionName: "jos",
isSingle: false,
},
{
name: "Hello",
type: "record",
fields: [
{
name: "yes",
type: "string",
typeOptions: {
maxLength: null,
values: null,
allowDeclaredValuesOnly: false,
},
label: "Yea",
getInitialValue: "default",
getUndefinedValue: "default",
},
],
children: [],
validationRules: [],
nodeId: 7,
indexes: [],
allidsShardFactor: 64,
collectionName: "",
isSingle: false,
},
],
pathMaps: [],
indexes: [
{
name: "all_customers",
type: "index",
map: "return {...record};",
filter: "",
indexType: "ancestor",
getShardName: "",
getSortKey: "record.id",
aggregateGroups: [],
allowedRecordNodeIds: [1],
nodeId: 2,
},
{
name: "all_contacts",
type: "index",
map: "return {...record};",
filter: "",
indexType: "ancestor",
getShardName: "",
getSortKey: "record.id",
aggregateGroups: [],
allowedRecordNodeIds: [3],
nodeId: 4,
},
{
name: "all_",
type: "index",
map: "return {...record};",
filter: "",
indexType: "ancestor",
getShardName: "",
getSortKey: "record.id",
aggregateGroups: [],
allowedRecordNodeIds: [7],
nodeId: 8,
},
],
nodeId: 0,
},
componentLibraries: [
{
importPath:
"/lib/node_modules/@budibase/standard-components/dist/index.js",
libName: "@budibase/standard-components",
},
{
importPath:
"/lib/node_modules/@budibase/bootstrap-components/dist/index.js",
libName: "@budibase/bootstrap-components",
},
],
appRootPath: "/testApp2",
props: {
_component: "@budibase/bootstrap-components/nav",
items: [
{
_component: "items#array_element#",
title: "customers",
component: {
_component: "@budibase/standard-components/if",
condition: "$store.isEditingcustomer",
thenComponent: {
_component: "@budibase/standard-components/container",
children: [
{
_component: "children#array_element#",
component: {
_component: "@budibase/standard-components/h3",
text: "Edit customer",
className: "",
},
className: "",
},
{
_component: "children#array_element#",
component: {
_component: "@budibase/standard-components/form",
containerClass: "",
formControls: [
{
_component: "formControls#array_element#",
label: "Name",
control: {
_component: "@budibase/standard-components/input",
value: {
"##bbstate": "customer.name",
"##bbsource": "store",
},
type: "text",
className: "form-control",
},
},
{
_component: "formControls#array_element#",
label: "Enquiry Source",
control: {
_component: "@budibase/standard-components/select",
value: {
"##bbstate": "customer.enquiry",
"##bbsource": "store",
},
options: [
{
_component: "options#array_element#",
id: "Google",
value: "Google",
},
{
_component: "options#array_element#",
id: "Facebook",
value: "Facebook",
},
{
_component: "options#array_element#",
id: "Word of Mouth",
value: "Word of Mouth",
},
],
className: "form-control",
},
},
],
},
className: "",
},
{
_component: "children#array_element#",
component: {
_component: "@budibase/standard-components/stackpanel",
direction: "horizontal",
children: [
{
_component: "children#array_element#",
control: {
_component: "@budibase/standard-components/container",
children: [
{
_component: "children#array_element#",
component: {
_component:
"@budibase/standard-components/button",
contentText: "Save customer",
contentComponent: { _component: "" },
className: "btn btn-primary",
disabled: false,
onClick: [
{
"##eventHandlerType": "Save Record",
parameters: { statePath: "customer" },
},
{
"##eventHandlerType": "Set State",
parameters: {
path: "isEditingcustomer",
value: "",
},
},
],
background: "",
color: "",
border: "",
padding: "",
hoverColor: "",
hoverBackground: "",
hoverBorder: "",
},
className: "",
},
],
className: "btn-group",
data: { "##bbstate": "" },
dataItemComponent: { _component: "" },
onLoad: [],
},
},
{
_component: "children#array_element#",
control: {
_component: "@budibase/standard-components/container",
children: [
{
_component: "children#array_element#",
component: {
_component:
"@budibase/standard-components/button",
contentText: "Cancel",
contentComponent: { _component: "" },
className: "btn btn-secondary",
disabled: false,
onClick: [
{
"##eventHandlerType": "Set State",
parameters: {
path: "isEditingcustomer",
value: "",
},
},
],
background: "",
color: "",
border: "",
padding: "",
hoverColor: "",
hoverBackground: "",
hoverBorder: "",
},
className: "",
},
],
className: "btn-group",
data: { "##bbstate": "" },
dataItemComponent: { _component: "" },
onLoad: [],
},
},
],
width: "auto",
height: "auto",
containerClass: "",
itemContainerClass: "",
data: { "##bbstate": "" },
dataItemComponent: { _component: "" },
onLoad: [],
},
className: "",
},
],
className: "p-1",
data: { "##bbstate": "" },
dataItemComponent: { _component: "" },
onLoad: [],
},
elseComponent: {
_component: "@budibase/standard-components/container",
children: [
{
_component: "children#array_element#",
component: {
_component: "@budibase/standard-components/container",
children: [
{
_component: "children#array_element#",
component: {
_component: "@budibase/standard-components/container",
children: [
{
_component: "children#array_element#",
component: {
_component:
"@budibase/standard-components/button",
contentText: "Create customer",
contentComponent: { _component: "" },
className: "btn btn-secondary",
disabled: false,
onClick: [
{
"##eventHandlerType": "Get New Record",
parameters: {
statePath: "customer",
collectionKey: "/customers",
childRecordType: "customer",
},
},
{
"##eventHandlerType": "Set State",
parameters: {
path: "isEditingcustomer",
value: "true",
},
},
],
background: "",
color: "",
border: "",
padding: "",
hoverColor: "",
hoverBackground: "",
hoverBorder: "",
},
className: "",
},
{
_component: "children#array_element#",
component: {
_component:
"@budibase/standard-components/button",
contentText: "Refresh",
contentComponent: { _component: "" },
className: "btn btn-secondary",
disabled: false,
onClick: [
{
"##eventHandlerType": "List Records",
parameters: {
statePath: "/all_customers",
indexKey: "/all_customers",
},
},
],
background: "",
color: "",
border: "",
padding: "",
hoverColor: "",
hoverBackground: "",
hoverBorder: "",
},
className: "",
},
],
className: "btn-group mr-3",
data: { "##bbstate": "" },
dataItemComponent: { _component: "" },
onLoad: [],
},
className: "",
},
{
_component: "children#array_element#",
component: {
_component: "@budibase/standard-components/if",
condition:
"$store.selectedrow_all_customers && $store.selectedrow_all_customers.length > 0",
thenComponent: {
_component: "@budibase/standard-components/container",
children: [
{
_component: "children#array_element#",
component: {
_component:
"@budibase/standard-components/button",
contentText: "Edit customer",
contentComponent: { _component: "" },
className: "btn btn-secondary",
disabled: false,
onClick: [
{
"##eventHandlerType": "Load Record",
parameters: {
statePath: "customer",
recordKey: {
"##bbstate":
"selectedrow_all_customers",
"##source": "store",
},
},
},
{
"##eventHandlerType": "Set State",
parameters: {
path: "isEditingcustomer",
value: "true",
},
},
],
background: "",
color: "",
border: "",
padding: "",
hoverColor: "",
hoverBackground: "",
hoverBorder: "",
},
className: "",
},
{
_component: "children#array_element#",
component: {
_component:
"@budibase/standard-components/button",
contentText: "Delete customer",
contentComponent: { _component: "" },
className: "btn btn-secondary",
disabled: false,
onClick: [
{
"##eventHandlerType": "Delete Record",
parameters: {
recordKey: {
"##bbstate":
"selectedrow_all_customers",
"##source": "store",
},
},
},
],
background: "",
color: "",
border: "",
padding: "",
hoverColor: "",
hoverBackground: "",
hoverBorder: "",
},
className: "",
},
],
className: "btn-group",
data: { "##bbstate": "" },
dataItemComponent: { _component: "" },
onLoad: [],
},
elseComponent: { _component: "" },
},
className: "",
},
],
className: "btn-toolbar mt-4 mb-2",
data: { "##bbstate": "" },
dataItemComponent: { _component: "" },
onLoad: [],
},
className: "",
},
{
_component: "children#array_element#",
component: {
_component: "@budibase/standard-components/table",
data: {
"##bbstate": "/all_customers",
"##bbsource": "store",
},
columns: [
{
_component: "columns#array_element#",
title: "enquiry",
value: {
"##bbstate": "enquiry",
"##bbsource": "context",
},
},
{
_component: "columns#array_element#",
title: "name",
value: { "##bbstate": "name", "##bbsource": "context" },
},
],
onRowClick: [
{
"##eventHandlerType": "Set State",
parameters: {
path: "selectedrow_all_customers",
value: { "##bbstate": "key", "##bbsource": "event" },
},
},
],
tableClass: "table table-hover",
theadClass: "thead-dark",
tbodyClass: "tbody-default",
trClass: "tr-default",
thClass: "th-default",
},
className: "flex-gow-1 overflow-auto",
},
],
className: "d-flex flex-column h-100",
data: { "##bbstate": "" },
dataItemComponent: { _component: "" },
onLoad: [
{
"##eventHandlerType": "Set State",
parameters: { path: "isEditingcustomer", value: "" },
},
{
"##eventHandlerType": "List Records",
parameters: {
statePath: "/all_customers",
indexKey: "/all_customers",
},
},
],
},
},
},
{
_component: "items#array_element#",
title: "contacts",
component: {
_component: "@budibase/standard-components/if",
condition: "$store.isEditingContact",
thenComponent: {
_component: "@budibase/standard-components/container",
children: [
{
_component: "children#array_element#",
component: {
_component: "@budibase/standard-components/h3",
text: "Edit Contact",
className: "",
},
className: "",
},
{
_component: "children#array_element#",
component: {
_component: "@budibase/standard-components/form",
containerClass: "",
formControls: [
{
_component: "formControls#array_element#",
label: "Name",
control: {
_component: "@budibase/standard-components/input",
value: {
"##bbstate": "Contact.name",
"##bbsource": "store",
},
type: "text",
className: "form-control",
},
},
{
_component: "formControls#array_element#",
label: "Has Been Contacted",
control: {
_component: "@budibase/standard-components/input",
value: {
"##bbstate": "Contact.contacted",
"##bbsource": "store",
},
type: "text",
className: "form-control",
},
},
],
},
className: "",
},
{
_component: "children#array_element#",
component: {
_component: "@budibase/standard-components/stackpanel",
direction: "horizontal",
children: [
{
_component: "children#array_element#",
control: {
_component: "@budibase/standard-components/container",
children: [
{
_component: "children#array_element#",
component: {
_component:
"@budibase/standard-components/button",
contentText: "Save Contact",
contentComponent: { _component: "" },
className: "btn btn-primary",
disabled: false,
onClick: [
{
"##eventHandlerType": "Save Record",
parameters: { statePath: "Contact" },
},
{
"##eventHandlerType": "Set State",
parameters: {
path: "isEditingContact",
value: "",
},
},
],
background: "",
color: "",
border: "",
padding: "",
hoverColor: "",
hoverBackground: "",
hoverBorder: "",
},
className: "",
},
],
className: "btn-group",
data: { "##bbstate": "" },
dataItemComponent: { _component: "" },
onLoad: [],
},
},
{
_component: "children#array_element#",
control: {
_component: "@budibase/standard-components/container",
children: [
{
_component: "children#array_element#",
component: {
_component:
"@budibase/standard-components/button",
contentText: "Cancel",
contentComponent: { _component: "" },
className: "btn btn-secondary",
disabled: false,
onClick: [
{
"##eventHandlerType": "Set State",
parameters: {
path: "isEditingContact",
value: "",
},
},
],
background: "",
color: "",
border: "",
padding: "",
hoverColor: "",
hoverBackground: "",
hoverBorder: "",
},
className: "",
},
],
className: "btn-group",
data: { "##bbstate": "" },
dataItemComponent: { _component: "" },
onLoad: [],
},
},
],
width: "auto",
height: "auto",
containerClass: "",
itemContainerClass: "",
data: { "##bbstate": "" },
dataItemComponent: { _component: "" },
onLoad: [],
},
className: "",
},
],
className: "p-1",
data: { "##bbstate": "" },
dataItemComponent: { _component: "" },
onLoad: [],
},
elseComponent: {
_component: "@budibase/standard-components/container",
children: [
{
_component: "children#array_element#",
component: {
_component: "@budibase/standard-components/container",
children: [
{
_component: "children#array_element#",
component: {
_component: "@budibase/standard-components/container",
children: [
{
_component: "children#array_element#",
component: {
_component:
"@budibase/standard-components/button",
contentText: "Create Contact",
contentComponent: { _component: "" },
className: "btn btn-secondary",
disabled: false,
onClick: [
{
"##eventHandlerType": "Get New Record",
parameters: {
statePath: "Contact",
collectionKey: "/contacts",
childRecordType: "Contact",
},
},
{
"##eventHandlerType": "Set State",
parameters: {
path: "isEditingContact",
value: "true",
},
},
],
background: "",
color: "",
border: "",
padding: "",
hoverColor: "",
hoverBackground: "",
hoverBorder: "",
},
className: "",
},
{
_component: "children#array_element#",
component: {
_component:
"@budibase/standard-components/button",
contentText: "Refresh",
contentComponent: { _component: "" },
className: "btn btn-secondary",
disabled: false,
onClick: [
{
"##eventHandlerType": "List Records",
parameters: {
statePath: "/all_contacts",
indexKey: "/all_contacts",
},
},
],
background: "",
color: "",
border: "",
padding: "",
hoverColor: "",
hoverBackground: "",
hoverBorder: "",
},
className: "",
},
],
className: "btn-group mr-3",
data: { "##bbstate": "" },
dataItemComponent: { _component: "" },
onLoad: [],
},
className: "",
},
{
_component: "children#array_element#",
component: {
_component: "@budibase/standard-components/if",
condition:
"$store.selectedrow_all_contacts && $store.selectedrow_all_contacts.length > 0",
thenComponent: {
_component: "@budibase/standard-components/container",
children: [
{
_component: "children#array_element#",
component: {
_component:
"@budibase/standard-components/button",
contentText: "Edit Contact",
contentComponent: { _component: "" },
className: "btn btn-secondary",
disabled: false,
onClick: [
{
"##eventHandlerType": "Load Record",
parameters: {
statePath: "Contact",
recordKey: {
"##bbstate": "selectedrow_all_contacts",
"##source": "store",
},
},
},
{
"##eventHandlerType": "Set State",
parameters: {
path: "isEditingContact",
value: "true",
},
},
],
background: "",
color: "",
border: "",
padding: "",
hoverColor: "",
hoverBackground: "",
hoverBorder: "",
},
className: "",
},
{
_component: "children#array_element#",
component: {
_component:
"@budibase/standard-components/button",
contentText: "Delete Contact",
contentComponent: { _component: "" },
className: "btn btn-secondary",
disabled: false,
onClick: [
{
"##eventHandlerType": "Delete Record",
parameters: {
recordKey: {
"##bbstate": "selectedrow_all_contacts",
"##source": "store",
},
},
},
],
background: "",
color: "",
border: "",
padding: "",
hoverColor: "",
hoverBackground: "",
hoverBorder: "",
},
className: "",
},
],
className: "btn-group",
data: { "##bbstate": "" },
dataItemComponent: { _component: "" },
onLoad: [],
},
elseComponent: { _component: "" },
},
className: "",
},
],
className: "btn-toolbar mt-4 mb-2",
data: { "##bbstate": "" },
dataItemComponent: { _component: "" },
onLoad: [],
},
className: "",
},
{
_component: "children#array_element#",
component: {
_component: "@budibase/standard-components/table",
data: { "##bbstate": "/all_contacts", "##bbsource": "store" },
columns: [
{
_component: "columns#array_element#",
title: "contacted",
value: {
"##bbstate": "contacted",
"##bbsource": "context",
},
},
{
_component: "columns#array_element#",
title: "name",
value: { "##bbstate": "name", "##bbsource": "context" },
},
],
onRowClick: [
{
"##eventHandlerType": "Set State",
parameters: {
path: "selectedrow_all_contacts",
value: { "##bbstate": "key", "##bbsource": "event" },
},
},
],
tableClass: "table table-hover",
theadClass: "thead-dark",
tbodyClass: "tbody-default",
trClass: "tr-default",
thClass: "th-default",
},
className: "flex-gow-1 overflow-auto",
},
],
className: "d-flex flex-column h-100",
data: { "##bbstate": "" },
dataItemComponent: { _component: "" },
onLoad: [
{
"##eventHandlerType": "Set State",
parameters: { path: "isEditingContact", value: "" },
},
{
"##eventHandlerType": "List Records",
parameters: {
statePath: "/all_contacts",
indexKey: "/all_contacts",
},
},
],
},
},
},
],
selectedItem: {
"##bbstate": "selectedNav",
"##bbstatefallback": "customers",
"##bbsource": "store",
},
pills: false,
orientation: "horizontal",
alignment: "end",
fill: false,
hideNavBar: false,
className: "p-3",
},
}