view progression

This commit is contained in:
2022-03-07 21:36:38 +10:00
parent cc7d06e78b
commit a587423d3e
6 changed files with 123 additions and 6 deletions

View File

@@ -36,6 +36,7 @@
<Compile Include="Floorplan\Controller.fs" /> <Compile Include="Floorplan\Controller.fs" />
<Compile Include="Floorplan\Router.fs" /> <Compile Include="Floorplan\Router.fs" />
<Compile Include="OrderScreen\Model.fs" /> <Compile Include="OrderScreen\Model.fs" />
<Compile Include="OrderScreen\View.fs" />
<Compile Include="OrderScreen\Controller.fs" /> <Compile Include="OrderScreen\Controller.fs" />
<Compile Include="OrderScreen\Router.fs" /> <Compile Include="OrderScreen\Router.fs" />
<Compile Include="Reservations\Model.fs" /> <Compile Include="Reservations\Model.fs" />

View File

@@ -8,9 +8,7 @@ open Giraffe.ViewEngine
open DredgeFramework open DredgeFramework
let VisibleInMode (value: string list) = value |> jsonEncode |> (attr "data-visible-in-mode")
let InvisibleInMode (value: string list) = value |> jsonEncode |> (attr "data-invisible-in-mode")
let ActiveInMode (value: string) = value |> (attr "data-active-in-mode")
let pageContainer (clerk: clerk) roomMenu = let pageContainer (clerk: clerk) roomMenu =

View File

@@ -1,12 +1,18 @@
module DredgePos.Global.View module DredgePos.Global.View
open Giraffe.ViewEngine
open DredgeFramework open DredgeFramework
open Giraffe.ViewEngine
let Value = attr "data-value" let Value = attr "data-value"
let VisibleInMode (value: string list) = value |> jsonEncode |> (attr "data-visible-in-mode")
let InvisibleInMode (value: string list) = value |> jsonEncode |> (attr "data-invisible-in-mode")
let ActiveInMode (value: string) = value |> (attr "data-active-in-mode")
let innerText = str let innerText = str
let lang key = language.get key |> str let lang key = language.get key |> str
let template = tag "template"
let scriptToHTML (scriptFile: string) = let scriptToHTML (scriptFile: string) =
let scriptPath = $"/scripts/{scriptFile}" let scriptPath = $"/scripts/{scriptFile}"
match FileExists ("wwwroot" + scriptPath) with match FileExists ("wwwroot" + scriptPath) with
@@ -89,6 +95,10 @@ let keyboards = [|
alert alert
|] |]
let posButton (extraClasses: string) attrs content =
let allAttrs = [_class $"posButton {extraClasses}"] |> List.append attrs
a allAttrs content
let HtmlPage pageTitle scripts styles tags content = let HtmlPage pageTitle scripts styles tags content =
html [] [ html [] [
head [] [ head [] [

View File

@@ -11,7 +11,7 @@ let getOrderScreenData (tableNumber: int) =
order_screen_pages = Entity.GetAllInVenue<order_screen_page_group> order_screen_pages = Entity.GetAllInVenue<order_screen_page_group>
sales_categories = Entity.GetAllInVenue<sales_category> sales_categories = Entity.GetAllInVenue<sales_category>
print_groups = Entity.GetAllInVenue<print_group> print_groups = Entity.GetAllInVenue<print_group>
custom_item = Entity.GetAllByColumn<item> "item_code" "OPEN000" |> first custom_item = Entity.GetAllByColumn<item> "code" "OPEN000" |> first
table = Floorplan.Model.getTable tableNumber table = Floorplan.Model.getTable tableNumber
|} |}
|> ajaxSuccess |> ajaxSuccess

View File

@@ -17,7 +17,7 @@ let getImageButtonData (button: button) =
if button.primary_action = "item" then button.primary_action_value if button.primary_action = "item" then button.primary_action_value
else button.secondary_action_value else button.secondary_action_value
let item = Entity.GetAllByColumn<item> "item_code" itemCode let item = Entity.GetAllByColumn<item> "code" itemCode
|> first |> first
let extraData = let extraData =

108
OrderScreen/View.fs Normal file
View File

@@ -0,0 +1,108 @@
module DredgePos.OrderScreen.View
open DredgePos.Types
open DredgePos.Global.View
open DredgePos.Global.Controller
open Giraffe.ViewEngine
open language
let pageContainer orderNumber (clerk: clerk) =
div [_id "pageContainer"] [
div [_id "leftColumn"] [
h1 [_class "tableHeading"] [str (string orderNumber)]
div [_class "tableInfo"] [
(* Cover Change Button *)
posButton "" [] [str (getAndReplace "logged_in_as" [clerk.name])]
]
div [_class "orderBox"] [
table [_class "orderBoxTable"] [
thead [] [
tr [] [
th [_class "orderBoxCell qtyCell"] [str (get "qty_header")]
th [_class "orderBoxCell itemIdCell"] [str (get "id_header")]
th [_class "orderBoxCell itemCell"] [str (get "item_header")]
th [_class "orderBoxCell unitPriceCell"] [str (get "price_header")]
th [_class "orderBoxCell totalPriceCell"] [str (get "total_price_header")]
th [_class "orderBoxCell printGroupCell"] [str (get "printgroup_header")]
]
]
tbody [] []
]
]
div [_class "orderBoxInfo"] [
span [_class "voidModeWarning"; VisibleInMode ["void"]] [str (get "void_mode")]
]
div [_class "orderBoxFooter"] [
span [_class "totalPrice"] [str (getAndReplace "totalPrice" ["0.00"])]
small [_class "selectedPrice"] [str (getAndReplace "selectedPrice" ["0.00"])]
]
]
div [_id "rightColumn"] [
div [_id "topHalf"] [
div [_class "functionButtons"] [
div [_class "printGroupButtons toggleGroup"] [
input [_type "hidden"; _class "value"]
(* Sales category override buttons *)
]
div [_class "functionColumn"] [
posButton "accumulateButton" [ActiveInMode "accumulate"] [str (get "accumulate_function")]
posButton "showCoverSelectorButton" [] [str (get "select_covers")]
]
div [_class "functionColumn"] [
posButton "voidButton" [ActiveInMode "void"] [str (get "void")]
posButton "open_item_button" [] [str (get "custom_item_button")]
posButton "freetextButton" [] [str (get "freetext_button")]
posButton "numpadButton" [] [str (get "numpad_button")]
]
div [_class "functionColumn"] [
posButton "" [] ["pay_function" |> get |> str]
posButton "" [] ["print_function" |> get |> str]
]
]
div [_id "pageList"] [
(* Category List *)
]
div [_id "pageGroupContainer"] [
(* Page Groups *)
]
div [_class "pagNavigation"] [
posButton "prevButton" [] ["prev_page" |> get |> str]
posButton "nextButton" [] ["next_page" |> get |> str]
]
]
]
]
(* Grid Container, Cover Selector *)
let posButtonTemplate =
template [_id "posButtonTemplate"] [
posButton "" [] []
]
let gridContainer =
div [_class "gridContainer"] [
div [_class "gridContainerHeader"] [
span [] []
div [_class "posButton closeGrid"] [str "×"]
]
div [_class "gridContainerGrid"] [
div [_class "pageGroup"] []
]
div [_class "pageNavigation"] [
posButton "prevButton" [] ["prev_page" |> get |> str]
posButton "nextButton" [] ["next_page" |> get |> str]
]
]
let coverSelector =
div [_class "coverSelector"] []
let index orderNumber clerk styles scripts tags =
[|
pageContainer orderNumber clerk
posButtonTemplate
gridContainer
coverSelector
|]
|> HtmlPage "Order" (GetScripts scripts) (GetStyles styles) (GetMetaTags tags)