Updates to Order Screen
This commit is contained in:
@@ -8,4 +8,11 @@ let htmlViewWithContext func =
|
|||||||
func (snd ctx)
|
func (snd ctx)
|
||||||
|> htmlView
|
|> htmlView
|
||||||
)
|
)
|
||||||
|
|> warbler
|
||||||
|
|
||||||
|
let htmlViewWithContextAndId (id: int) func =
|
||||||
|
(fun ctx ->
|
||||||
|
func (snd ctx) id
|
||||||
|
|> htmlView
|
||||||
|
)
|
||||||
|> warbler
|
|> warbler
|
||||||
@@ -1,9 +1,11 @@
|
|||||||
module DredgePos.Global.View
|
module DredgePos.Global.View
|
||||||
|
|
||||||
open DredgeFramework
|
open DredgeFramework
|
||||||
|
open DredgePos.Types
|
||||||
open Giraffe.ViewEngine
|
open Giraffe.ViewEngine
|
||||||
|
|
||||||
let Value = attr "data-value"
|
let Value = attr "data-value"
|
||||||
|
let _table (value: floorplan_table) = value |> jsonEncode |> (attr "data-table")
|
||||||
|
|
||||||
let VisibleInMode (value: string list) = value |> jsonEncode |> (attr "data-visible-in-mode")
|
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 InvisibleInMode (value: string list) = value |> jsonEncode |> (attr "data-invisible-in-mode")
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
open DredgePos
|
open DredgePos
|
||||||
open DredgeFramework
|
open DredgeFramework
|
||||||
open DredgePos.Types
|
open DredgePos.Types
|
||||||
|
open DredgePos.Global.Controller
|
||||||
open Giraffe
|
open Giraffe
|
||||||
open Microsoft.AspNetCore.Http
|
open Microsoft.AspNetCore.Http
|
||||||
|
|
||||||
@@ -24,6 +25,20 @@ let loadGrid (gridId: int) =
|
|||||||
else ajaxSuccess {|grid=grid;gridHtml=gridHtml|}
|
else ajaxSuccess {|grid=grid;gridHtml=gridHtml|}
|
||||||
|> json
|
|> json
|
||||||
|
|
||||||
|
let loadOrderScreenView (ctx: HttpContext) (tableNumber: int) =
|
||||||
|
Authenticate.Model.RequireClerkAuthentication ctx
|
||||||
|
let currentClerk = Authenticate.Model.getCurrentClerk ctx
|
||||||
|
let styles = [|"dredgepos.orderScreen.css"|] |> addDefaultStyles
|
||||||
|
let scripts = [|"dredgepos.tables.js";"./external/currency.min.js";"dredgepos.orderScreen.js"; |] |> addDefaultScripts
|
||||||
|
let metaTags = [|"viewport", "user-scalable = no, initial-scale=0.8,maximum-scale=0.8 ,shrink-to-fit=yes"|] |> addDefaultMetaTags
|
||||||
|
|
||||||
|
let orderScreenPageGroups =
|
||||||
|
Entity.GetAllInVenue<order_screen_page_group>
|
||||||
|
|> Array.filter (fun page_group -> page_group.id <> 0)
|
||||||
|
|> Array.sortBy (fun {order=order} -> order)
|
||||||
|
|
||||||
|
View.index tableNumber styles scripts metaTags currentClerk orderScreenPageGroups
|
||||||
|
|
||||||
let loadOrderScreen (ctx: HttpContext) (tableNumber: int) : HttpHandler =
|
let loadOrderScreen (ctx: HttpContext) (tableNumber: int) : HttpHandler =
|
||||||
Authenticate.Model.RequireClerkAuthentication ctx
|
Authenticate.Model.RequireClerkAuthentication ctx
|
||||||
|
|
||||||
|
|||||||
@@ -128,7 +128,6 @@ let renderGrid (grid: grid) =
|
|||||||
|
|
||||||
let loadGrid gridId = renderGrid (Entity.GetById<grid> gridId)
|
let loadGrid gridId = renderGrid (Entity.GetById<grid> gridId)
|
||||||
|
|
||||||
|
|
||||||
let getPagesHTML (gridInfo: grid * order_screen_page_group) =
|
let getPagesHTML (gridInfo: grid * order_screen_page_group) =
|
||||||
let grid, pageGroup = gridInfo
|
let grid, pageGroup = gridInfo
|
||||||
|
|
||||||
|
|||||||
@@ -11,5 +11,5 @@ let router = router {
|
|||||||
getf "/getGridHtml/%i" Controller.loadGrid
|
getf "/getGridHtml/%i" Controller.loadGrid
|
||||||
post "/updateCovers" (bindJson<floorplan_table> (fun table -> Entity.Update table |> Array.head |> DredgeFramework.ajaxSuccess |> json))
|
post "/updateCovers" (bindJson<floorplan_table> (fun table -> Entity.Update table |> Array.head |> DredgeFramework.ajaxSuccess |> json))
|
||||||
get "/" (warbler (fun ctx -> Controller.loadOrderScreen (snd ctx) 0))
|
get "/" (warbler (fun ctx -> Controller.loadOrderScreen (snd ctx) 0))
|
||||||
getf "/%i" (fun number -> (warbler (fun ctx -> Controller.loadOrderScreen (snd ctx) number)))
|
getf "/%i" (fun number -> (warbler (fun ctx -> htmlView <| Controller.loadOrderScreenView (snd ctx) number)))
|
||||||
}
|
}
|
||||||
@@ -6,12 +6,14 @@ open DredgePos.Global.Controller
|
|||||||
open Giraffe.ViewEngine
|
open Giraffe.ViewEngine
|
||||||
open language
|
open language
|
||||||
|
|
||||||
let pageContainer orderNumber (clerk: clerk) =
|
let coverSelector = div [_class "coverSelector"] []
|
||||||
div [_id "pageContainer"] [
|
|
||||||
|
let pageContainer floorplanTable (clerk: clerk) orderScreenPageGroups =
|
||||||
|
div [_id "pageContainer" ; _table floorplanTable] [
|
||||||
div [_id "leftColumn"] [
|
div [_id "leftColumn"] [
|
||||||
h1 [_class "tableHeading"] [str (string orderNumber)]
|
h1 [_class "tableHeading"] [str (getAndReplace "active_table" [floorplanTable.table_number])]
|
||||||
div [_class "tableInfo"] [
|
div [_class "tableInfo"] [
|
||||||
(* Cover Change Button *)
|
coverSelector
|
||||||
posButton "" [] [str (getAndReplace "logged_in_as" [clerk.name])]
|
posButton "" [] [str (getAndReplace "logged_in_as" [clerk.name])]
|
||||||
]
|
]
|
||||||
div [_class "orderBox"] [
|
div [_class "orderBox"] [
|
||||||
@@ -61,7 +63,7 @@ let pageContainer orderNumber (clerk: clerk) =
|
|||||||
]
|
]
|
||||||
]
|
]
|
||||||
div [_id "pageList"] [
|
div [_id "pageList"] [
|
||||||
(* Category List *)
|
yield! orderScreenPageGroups
|
||||||
]
|
]
|
||||||
div [_id "pageGroupContainer"] [
|
div [_id "pageGroupContainer"] [
|
||||||
(* Page Groups *)
|
(* Page Groups *)
|
||||||
@@ -95,12 +97,16 @@ let gridContainer =
|
|||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
let coverSelector =
|
let pageGroupButton (pageGroup: order_screen_page_group) = posButton "loadPageGroup" [] [str pageGroup.label]
|
||||||
div [_class "coverSelector"] []
|
|
||||||
|
let index orderNumber styles scripts tags clerk (orderScreenPageGroups: order_screen_page_group[]) =
|
||||||
|
|
||||||
|
let orderScreenPageGroupButtons =
|
||||||
|
orderScreenPageGroups
|
||||||
|
|> Array.map pageGroupButton
|
||||||
|
|
||||||
let index orderNumber clerk styles scripts tags =
|
|
||||||
[|
|
[|
|
||||||
pageContainer orderNumber clerk
|
pageContainer (DredgePos.Floorplan.Model.getTable orderNumber) clerk orderScreenPageGroupButtons
|
||||||
posButtonTemplate
|
posButtonTemplate
|
||||||
gridContainer
|
gridContainer
|
||||||
coverSelector
|
coverSelector
|
||||||
|
|||||||
@@ -59,7 +59,6 @@ const loadPageGroup = (e: Event) => {
|
|||||||
|
|
||||||
const setupOrderScreen = (data: OrderScreenData) => {
|
const setupOrderScreen = (data: OrderScreenData) => {
|
||||||
|
|
||||||
$('.coverSelector, .gridContainer').hide()
|
|
||||||
|
|
||||||
OrderScreen.order_screen_pages = data.order_screen_pages
|
OrderScreen.order_screen_pages = data.order_screen_pages
|
||||||
OrderScreen.sales_categories = data.sales_categories
|
OrderScreen.sales_categories = data.sales_categories
|
||||||
@@ -426,6 +425,7 @@ const getTotalOfRows = (rows: JQuery) => {
|
|||||||
|
|
||||||
const getQty = (row: JQuery) => Number(row.getColumnValue(lang('qty_header')))
|
const getQty = (row: JQuery) => Number(row.getColumnValue(lang('qty_header')))
|
||||||
const getUnitPrice = (row: JQuery) => moneyFromString(row.getColumnValue(lang('price_header')))
|
const getUnitPrice = (row: JQuery) => moneyFromString(row.getColumnValue(lang('price_header')))
|
||||||
|
|
||||||
const calculateRowTotal = (row: JQuery) => {
|
const calculateRowTotal = (row: JQuery) => {
|
||||||
let price = getUnitPrice(row)
|
let price = getUnitPrice(row)
|
||||||
let qty = getQty(row)
|
let qty = getQty(row)
|
||||||
@@ -600,5 +600,7 @@ const generateCoverSelector = () => {
|
|||||||
|
|
||||||
$(() => {
|
$(() => {
|
||||||
OrderScreen.table = $('#pageContainer').data('table') || null
|
OrderScreen.table = $('#pageContainer').data('table') || null
|
||||||
ajax('/order/getOrderScreenData/1', null, 'get', setupOrderScreen, null, null)
|
$('.coverSelector, .gridContainer').hide()
|
||||||
|
if(OrderScreen.table)
|
||||||
|
ajax(`/order/getOrderScreenData/${OrderScreen.table.table_number}`, null, 'get', setupOrderScreen, null, null)
|
||||||
})
|
})
|
||||||
Reference in New Issue
Block a user