module DredgePos.OrderScreen.Model open DredgeFramework open DredgePos open DredgePos.Types open FSharp.Collections open Thoth.Json.Net open Theme let getAllPageGrids () = Entity.GetAllInVenue |> Array.filter(fun pageGroup -> pageGroup.grid_id <> 0) |> Array.map(fun pageGroup -> (Entity.GetById pageGroup.grid_id), pageGroup) let getImageButtonData (button: button) = let itemCode = if button.primary_action = "item" then button.primary_action_value else button.secondary_action_value let item = Entity.GetAllByColumn "code" itemCode |> first let extraData = map [ "data-item", jsonEncode item ] |> htmlAttributes {| extra_data = extraData text = item.name |} let getGridButtonData (button: button) = let gridId = if button.primary_action = "grid" then button.primary_action_value else button.secondary_action_value |> int let grid = Entity.GetById gridId {| extra_data = map ["data-grid", jsonEncode gridId] |> htmlAttributes text = grid.name |} let getActionData (button: button) (action: string) = let actionValue = if action = "primary" then button.primary_action else button.secondary_action match actionValue with | "item" -> getImageButtonData button | "grid" -> getGridButtonData button | "spacer" -> {|extra_data=""; text=""|} | _ -> {|extra_data=""; text=""|} let renderButton (buttonId: int) = let button = Entity.GetById