📁 Showcase
AssetMaster

AssetSheet

Backend

1. AssetSheet

// fields ending with "*" suffix are required
ensure spreadsheet: AssetSheet 
withFields: [
    "CurrentUser*",
    "NetAsset*"
  ]
ofTypes: [userId, logDecimal]
label: "Food Item Master" 
modules: ["Expense"] 
readRoleSet: [Member] 
insertRoleSet: [Member] 
updateRoleSet: [Member] 
removeRoleSet: [Member] 
clearRoleSet: [Member]

ensrue spreadsheet AssetSheet
  searchables: [Details.CurrentUser] 
  queryables: [Details.CurrentUser] 
  uniques: [Details.CurrentUser] 

ensure layoutSpreadsheet ListLayout kind: list 
  firstLine.first.lineFields: [Details.CurrentUser] 
  firstLine.middle.lineFields: [Details.NetAsset]

ensure form EntityAsset
  modules: ["Expense"]
ensure section: Details
ensure field CurrentUser 
  permissionMatrix: {
      'defaultPermission': 'writeOnInsert'
    } 
  required: true 
  defaultValue: createdBy
ensure field NetAsset 
  permissionMatrix: {
      'defaultPermission': 'writeOnce'
    } 
  required: true 
  logReadRoleSet: [Member]

Frontend

1. Actions

a. SetAsset

Implement an SetAsset action to add a net asset to the AssetSheet spreadsheet.

ensure action SetAsset kind: rowInsert 
  label: "Set Net Asset" 
  modules: ["Expense"] 
  icon: "AddCardRounded" 
  spreadsheet: AssetSheet 
  sendMessageToInbox: true

b. Assets

Implement an Assets action to view existing assets in the AssetSheet spreadsheet.

ensure action Assets kind: spreadsheetEditor 
  label: "Net Assets" 
  modules: ["Expense"] 
  icon: "ListRounded" 
  spreadsheet: AssetSheet 
  layoutSpreadsheet: ListLayout

2. Group actions

Group these actions under a section named QuickBooks for easy access.

ensure group QuickBooks 
  actionPermission: {
      'SetAsset': {
        'menuGroup': '1',
        'roles': [
          'Member'
        ]
      },
      'Assets': {
        'menuGroup': '1',
        'roles': [
          'Member'
        ]
      }
    }