📁 Showcase
AssetMaster

AssetSheet

Backend

1. NetAssetSheet

// fields ending with "*" suffix are required
ensure spreadsheet: NetAssetSheet 
  withFields: ["CurrentUser*", "NetAsset*"]
  ofTypes: [userId, logDecimal]
  modules: ["QuickBooks"] 
  readRoleSet: [Member] 
  insertRoleSet: [Member] 
  updateRoleSet: [Member] 
  removeRoleSet: [Member] 
  clearRoleSet: [Member]

ensure spreadsheet NetAssetSheet
  searchables: [CurrentUser] 
  queryables: [CurrentUser] 
  uniques: [CurrentUser] 

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

ensure form EntityNetAs
ctx rename EntityNetAsset
ensure form EntityNetAsset
  modules: ["QuickBooks"]
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 NetAssetSheet spreadsheet.

ensure action SetAsset kind: rowInsert 
  modules: ["QuickBooks"] 
  icon: "AddCardRounded" 
  spreadsheet: NetAssetSheet 
  sendMessageToInbox: true

b. Assets

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

ensure action Assets kind: spreadsheetEditor 
  modules: ["QuickBooks"] 
  icon: "ListRounded" 
  spreadsheet: NetAssetSheet 
  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'
        ]
      }
    }