📁 Showcase
Frontend

Frontend

1. ShowDashboard

a. OutputDashboard layouts

// layouts of OutputDashboard form

ensure form OutputDashboard
ensure grid: TeaVsCoffee

ensure layoutGrid Calendar kind: calendar
  fromDateField: TeaVsCoffee.Date
  titleField: TeaVsCoffee.Month
  showFields: [Date, TotalSales, MonthInNumber, TotalTea, TotalCoffee, Month]

ensure layoutGrid LineChart kind: xyChartBarGraph
  xAxis: TeaVsCoffee.Month
ensure xAxis AxisX
ensure yAxis AxisY
  color.value: red
  color.shade: s500
  field: TeaVsCoffee.TotalSales

ensure layoutGrid BarGraph kind: xyChartBarGraph
  xAxis: TeaVsCoffee.Month
ensure xAxis AxisX
ensure yAxis AxisY1
  field: TeaVsCoffee.TotalTea
ensure yAxis AxisY2
  field: TeaVsCoffee.TotalCoffee
ensure yAxis AxisY3
  field: TeaVsCoffee.TotalSales

ensure layoutGrid XYChart kind: xyChartBarGraph
  xAxis: TeaVsCoffee.Month
ensure yAxis AxisY
  field: TeaVsCoffee.TotalSales

ensure grid: PendingPayments
ensure layoutGrid Table kind: table 
  columnSizeSet: ["Flex"] 
  renderingMode: flex
  showComps: [InvoiceId, InvoiceDate, OfficeName, OfficeNo, PendingPayments.Amount]

ensure grid: TopCustomerSet
ensure layoutGrid TableLayout kind: table 
  columnSizeSet: ["AutoSize"]
  showComps: [Name, TopCustomerSet.Amount]

ensure form OutputDashboard
ensure layout Header kind: content
  direction: horizontal
  contentPadding: thick
  showPaddingSet: ["top"]
  end.fields: [ShowAggregatedReport]

ensure layout TeaVsCoffeeChart kind: content
  displayLabel: "Tea vs Coffee"
  direction: vertical
  showBorderSet: ["bottom"]
  contentPadding: thin
  showPaddingSet: ["top", "bottom"]
  flexCenter.gridLayouts: [TeaVsCoffee.BarGraph]

ensure layout PendingPayments kind: content
  displayLabel: "Pending Payments"
  direction: vertical
  showBorderSet: ["bottom"]
  contentPadding: thick
  showPaddingSet: ["top", "bottom"]
  flexCenter.gridLayouts: [PendingPayments.Table]

ensure layout TopCustomers kind: content
  flexCenter.gridLayouts: [TopCustomerSet.TableLayout]
  displayLabel: "Top 5 Customers"
  direction: vertical
  contentPadding: thin
  showPaddingSet: ["top", "bottom"]

ensure layout Dashboard kind: content
  direction: vertical
  start.formLayouts: [Header]
  flexCenter.formLayouts: [TeaVsCoffeeChart, PendingPayments, TopCustomers]

ensure layout DashboardTemplate kind: template
  paperSize: a4Size

b. Action

// this action runs the Dashboard report

ensure action ShowDashboard kind: report
  icon: "AnalyticsRounded"
  report: Dashboard
  outputFormContentLayout: Dashboard

2. ShowAggregatedReport

a. OutputAggregated layouts

// layouts for OutputAggregated form

ensure form OutputAggregated
ensure grid: SalesByCustomer
ensure layoutGrid Table kind: table
  columnSizeSet: ["Flex", "AutoSize"]
  showComps: [Office, SalesByCustomer.TotalCoffee, SalesByCustomer.TotalTea, SalesByCustomer.TotalAmount]

ensure form OutputAggregated
ensure layout ReportSection1 kind: content
  direction: vertical
  contentPadding: thick
  start.fields: [Summary.Date, Summary.FromDate, Summary.ToDate]

ensure layout ReportSection2 kind: content
  direction: vertical
  contentPadding: thick
  start.fields: [Summary.TotalTea, Summary.TotalCoffee, Summary.TotalSales]

ensure layout ReportSection kind: content
  direction: horizontal
  contentPadding: thick
  start.formLayouts: [ReportSection1]
  end.formLayouts: [ReportSection2]

ensure layout Report kind: content
  direction: vertical
  start.padding: thick
  start.showBorderSet: ["bottom"]
  start.formLayouts: [ReportSection]
  flexCenter.gridLayouts: [SalesByCustomer.Table]

ensure layout Template kind: template 
  paperSize: a4Size

b. Action

// this action runs the AggregatedReport

ensure action ShowAggregatedReport kind: report
  icon: "AnalyticsRounded"
  report: AggregatedReport
  outputFormContentLayout: Report
  outputFormTemplateLayout: Template
  sendMessageToInbox: false

c. Button action

ensure form OutputDashboard
ensure section: Details
ensure field ShowAggregatedReport
  action: ShowAggregatedReport

3. DeeplinkDashboard

// deeplink for external user for dashboard

ensure deeplink DeeplinkDashboard kind: report 
  visibilityConstraint: allowPublicSharing 
  creationRoles: [Owner] 
  expiry: withinOneWeek 
  showHeader: true 
  showEnterprise: true 
  report: Dashboard 
  outputFormContentLayout: Dashboard 
  outputFormTemplateLayout: DashboardTemplate

4. Group actions

// this group has all the actions those can be performed for dashboard

ensure group Dashboard
  allowPromptAssistant: false
  hideActionMenu: true
  pinnedActions: [ShowDashboard, ShowAggregatedReport]
  defaultAction: ShowDashboard
  actionPermission: {
      'ShowDashboard': {
        'menuGroup': 'Report',
        'roles': [
          'Owner'
        ]
      },
      'ShowAggregatedReport': {
        'roles': [
          'Owner'
        ]
      }
    }