Updates
This commit is contained in:
@@ -2,6 +2,7 @@ namespace WebApplication
|
|||||||
|
|
||||||
|
|
||||||
open DredgePos
|
open DredgePos
|
||||||
|
open Microsoft.AspNetCore.Server.Kestrel.Core
|
||||||
open Reservations
|
open Reservations
|
||||||
open Saturn
|
open Saturn
|
||||||
open Giraffe
|
open Giraffe
|
||||||
@@ -47,7 +48,7 @@ module Program =
|
|||||||
let pageRouter = router {
|
let pageRouter = router {
|
||||||
pipe_through browser
|
pipe_through browser
|
||||||
not_found_handler (setStatusCode 404 >=> text "404")
|
not_found_handler (setStatusCode 404 >=> text "404")
|
||||||
get "/" (redirectTo false "/login")
|
get "/" (redirectTo true "/login")
|
||||||
get "/login" (warbler (fun _ -> PageController.loadHomePage() ))
|
get "/login" (warbler (fun _ -> PageController.loadHomePage() ))
|
||||||
get "/floorplan" (warbler (fun ctx -> PageController.loadFloorplan (snd ctx)))
|
get "/floorplan" (warbler (fun ctx -> PageController.loadFloorplan (snd ctx)))
|
||||||
forward "/ajax" ajaxRouter
|
forward "/ajax" ajaxRouter
|
||||||
@@ -56,7 +57,7 @@ module Program =
|
|||||||
let app = application {
|
let app = application {
|
||||||
use_static "wwwroot"
|
use_static "wwwroot"
|
||||||
use_router pageRouter
|
use_router pageRouter
|
||||||
|
url "http://0.0.0.0:5001"
|
||||||
}
|
}
|
||||||
|
|
||||||
run app
|
run app
|
||||||
|
|||||||
@@ -1,847 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<table openedby="1" number="1">
|
|
||||||
<order clerk="Josh">
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>CRAFTBEER010</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Colonial Harzy</name>
|
|
||||||
<unitprice>10.00</unitprice>
|
|
||||||
<totalprice>10.00</totalprice>
|
|
||||||
<printgroup>Drinks</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Beer</category>
|
|
||||||
<department>Drinks</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>10.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>CRAFTBEER009</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Hemingway XPA</name>
|
|
||||||
<unitprice>8.00</unitprice>
|
|
||||||
<totalprice>8.00</totalprice>
|
|
||||||
<printgroup>Drinks</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Beer</category>
|
|
||||||
<department>Drinks</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>8.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
</order>
|
|
||||||
<order clerk="Josh">
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>STARTER001</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Bruschetta</name>
|
|
||||||
<unitprice>12.00</unitprice>
|
|
||||||
<totalprice>12.00</totalprice>
|
|
||||||
<printgroup>Starters</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Starters</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>12.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>STARTER002</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Pita & Dips</name>
|
|
||||||
<unitprice>8.00</unitprice>
|
|
||||||
<totalprice>8.00</totalprice>
|
|
||||||
<printgroup>Starters</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Starters</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>8.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>STARTER003</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Scallops</name>
|
|
||||||
<unitprice>20.00</unitprice>
|
|
||||||
<totalprice>20.00</totalprice>
|
|
||||||
<printgroup>Starters</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Starters</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>20.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>CRAFTBEER003</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Galactopus</name>
|
|
||||||
<unitprice>18.00</unitprice>
|
|
||||||
<totalprice>18.00</totalprice>
|
|
||||||
<printgroup>Drinks</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Beer</category>
|
|
||||||
<department>Drinks</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>18.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>CRAFTBEER009</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Hemingway XPA</name>
|
|
||||||
<unitprice>8.00</unitprice>
|
|
||||||
<totalprice>8.00</totalprice>
|
|
||||||
<printgroup>Drinks</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Beer</category>
|
|
||||||
<department>Drinks</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>8.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN001</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Burger</name>
|
|
||||||
<unitprice>15.00</unitprice>
|
|
||||||
<totalprice>15.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>15.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN005</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Laotian Green Curry</name>
|
|
||||||
<unitprice>30.00</unitprice>
|
|
||||||
<totalprice>30.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>30.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN003</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Whole Sweetlip</name>
|
|
||||||
<unitprice>55.00</unitprice>
|
|
||||||
<totalprice>55.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>55.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN004</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Venison Wellington</name>
|
|
||||||
<unitprice>35.00</unitprice>
|
|
||||||
<totalprice>35.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>35.00</originaltotalprice>
|
|
||||||
<instruction split="0">
|
|
||||||
<id>STEAKTEMP5</id>
|
|
||||||
<name>Medium Well</name>
|
|
||||||
<unitprice>0.00</unitprice>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>0.00</originaltotalprice>
|
|
||||||
</instruction>
|
|
||||||
</item>
|
|
||||||
</order>
|
|
||||||
<order clerk="Josh">
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>CRAFTBEER012</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Corona</name>
|
|
||||||
<unitprice>7.00</unitprice>
|
|
||||||
<totalprice>7.00</totalprice>
|
|
||||||
<printgroup>Drinks</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Beer</category>
|
|
||||||
<department>Drinks</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>7.00</originaltotalprice>
|
|
||||||
<instruction split="0">
|
|
||||||
<id>INSTRUCTION005</id>
|
|
||||||
<name>With Lime</name>
|
|
||||||
<unitprice>0.50</unitprice>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>0.50</originaltotalprice>
|
|
||||||
</instruction>
|
|
||||||
</item>
|
|
||||||
</order>
|
|
||||||
<order clerk="Josh">
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN003</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Whole Sweetlip</name>
|
|
||||||
<unitprice>55.00</unitprice>
|
|
||||||
<totalprice>55.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>55.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN004</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Venison Wellington</name>
|
|
||||||
<unitprice>35.00</unitprice>
|
|
||||||
<totalprice>35.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>35.00</originaltotalprice>
|
|
||||||
<instruction split="0">
|
|
||||||
<id>STEAKTEMP2</id>
|
|
||||||
<name>Rare</name>
|
|
||||||
<unitprice>0.00</unitprice>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>0.00</originaltotalprice>
|
|
||||||
</instruction>
|
|
||||||
</item>
|
|
||||||
</order>
|
|
||||||
<order clerk="Josh">
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>CRAFTBEER010</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Colonial Hazy</name>
|
|
||||||
<unitprice>10.00</unitprice>
|
|
||||||
<totalprice>10.00</totalprice>
|
|
||||||
<printgroup>Drinks</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Beer</category>
|
|
||||||
<department>Drinks</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>10.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>CRAFTBEER009</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Hemingway XPA</name>
|
|
||||||
<unitprice>8.00</unitprice>
|
|
||||||
<totalprice>8.00</totalprice>
|
|
||||||
<printgroup>Drinks</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Beer</category>
|
|
||||||
<department>Drinks</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>8.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
</order>
|
|
||||||
<order clerk="Josh">
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>STARTER001</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Bruschetta</name>
|
|
||||||
<unitprice>12.00</unitprice>
|
|
||||||
<totalprice>12.00</totalprice>
|
|
||||||
<printgroup>Starters</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Starters</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>12.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>STARTER002</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Pita & Dips</name>
|
|
||||||
<unitprice>8.00</unitprice>
|
|
||||||
<totalprice>8.00</totalprice>
|
|
||||||
<printgroup>Starters</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Starters</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>8.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>STARTER003</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Scallops</name>
|
|
||||||
<unitprice>20.00</unitprice>
|
|
||||||
<totalprice>20.00</totalprice>
|
|
||||||
<printgroup>Starters</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Starters</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>20.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>CRAFTBEER003</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Galactopus</name>
|
|
||||||
<unitprice>18.00</unitprice>
|
|
||||||
<totalprice>18.00</totalprice>
|
|
||||||
<printgroup>Drinks</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Beer</category>
|
|
||||||
<department>Drinks</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>18.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>CRAFTBEER009</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Hemingway XPA</name>
|
|
||||||
<unitprice>8.00</unitprice>
|
|
||||||
<totalprice>8.00</totalprice>
|
|
||||||
<printgroup>Drinks</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Beer</category>
|
|
||||||
<department>Drinks</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>8.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN001</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Burger</name>
|
|
||||||
<unitprice>15.00</unitprice>
|
|
||||||
<totalprice>15.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>15.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN005</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Laotian Green Curry</name>
|
|
||||||
<unitprice>30.00</unitprice>
|
|
||||||
<totalprice>30.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>30.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN003</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Whole Sweetlip</name>
|
|
||||||
<unitprice>55.00</unitprice>
|
|
||||||
<totalprice>55.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>55.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN004</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Venison Wellington</name>
|
|
||||||
<unitprice>35.00</unitprice>
|
|
||||||
<totalprice>35.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>35.00</originaltotalprice>
|
|
||||||
<instruction split="0">
|
|
||||||
<id>STEAKTEMP5</id>
|
|
||||||
<name>Medium Well</name>
|
|
||||||
<unitprice>0.00</unitprice>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>0.00</originaltotalprice>
|
|
||||||
</instruction>
|
|
||||||
</item>
|
|
||||||
</order>
|
|
||||||
<order clerk="Josh">
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>CRAFTBEER012</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Corona</name>
|
|
||||||
<unitprice>7.00</unitprice>
|
|
||||||
<totalprice>7.00</totalprice>
|
|
||||||
<printgroup>Drinks</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Beer</category>
|
|
||||||
<department>Drinks</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>7.00</originaltotalprice>
|
|
||||||
<instruction split="0">
|
|
||||||
<id>INSTRUCTION005</id>
|
|
||||||
<name>With Lime</name>
|
|
||||||
<unitprice>0.50</unitprice>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>0.50</originaltotalprice>
|
|
||||||
</instruction>
|
|
||||||
</item>
|
|
||||||
</order>
|
|
||||||
<order clerk="Josh">
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN003</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Whole Sweetlip</name>
|
|
||||||
<unitprice>55.00</unitprice>
|
|
||||||
<totalprice>55.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>55.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN004</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Venison Wellington</name>
|
|
||||||
<unitprice>35.00</unitprice>
|
|
||||||
<totalprice>35.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>35.00</originaltotalprice>
|
|
||||||
<instruction split="0">
|
|
||||||
<id>STEAKTEMP2</id>
|
|
||||||
<name>Rare</name>
|
|
||||||
<unitprice>0.00</unitprice>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>0.00</originaltotalprice>
|
|
||||||
</instruction>
|
|
||||||
</item>
|
|
||||||
</order>
|
|
||||||
<order clerk="Josh">
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>CRAFTBEER010</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Colonial Harzy</name>
|
|
||||||
<unitprice>10.00</unitprice>
|
|
||||||
<totalprice>10.00</totalprice>
|
|
||||||
<printgroup>Drinks</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Beer</category>
|
|
||||||
<department>Drinks</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>10.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>CRAFTBEER009</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Hemingway XPA</name>
|
|
||||||
<unitprice>8.00</unitprice>
|
|
||||||
<totalprice>8.00</totalprice>
|
|
||||||
<printgroup>Drinks</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Beer</category>
|
|
||||||
<department>Drinks</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>8.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
</order>
|
|
||||||
<order clerk="Josh">
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>STARTER001</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Bruschetta</name>
|
|
||||||
<unitprice>12.00</unitprice>
|
|
||||||
<totalprice>12.00</totalprice>
|
|
||||||
<printgroup>Starters</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Starters</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>12.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>STARTER002</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Pita & Dips</name>
|
|
||||||
<unitprice>8.00</unitprice>
|
|
||||||
<totalprice>8.00</totalprice>
|
|
||||||
<printgroup>Starters</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Starters</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>8.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>STARTER003</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Scallops</name>
|
|
||||||
<unitprice>20.00</unitprice>
|
|
||||||
<totalprice>20.00</totalprice>
|
|
||||||
<printgroup>Starters</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Starters</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>20.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>CRAFTBEER003</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Galactopus</name>
|
|
||||||
<unitprice>18.00</unitprice>
|
|
||||||
<totalprice>18.00</totalprice>
|
|
||||||
<printgroup>Drinks</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Beer</category>
|
|
||||||
<department>Drinks</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>18.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>CRAFTBEER009</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Hemingway XPA</name>
|
|
||||||
<unitprice>8.00</unitprice>
|
|
||||||
<totalprice>8.00</totalprice>
|
|
||||||
<printgroup>Drinks</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Beer</category>
|
|
||||||
<department>Drinks</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>8.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN001</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Burger</name>
|
|
||||||
<unitprice>15.00</unitprice>
|
|
||||||
<totalprice>15.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>15.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN005</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Laotian Green Curry</name>
|
|
||||||
<unitprice>30.00</unitprice>
|
|
||||||
<totalprice>30.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>30.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN003</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Whole Sweetlip</name>
|
|
||||||
<unitprice>55.00</unitprice>
|
|
||||||
<totalprice>55.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>55.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN004</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Venison Wellington</name>
|
|
||||||
<unitprice>35.00</unitprice>
|
|
||||||
<totalprice>35.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>35.00</originaltotalprice>
|
|
||||||
<instruction split="0">
|
|
||||||
<id>STEAKTEMP5</id>
|
|
||||||
<name>Medium Well</name>
|
|
||||||
<unitprice>0.00</unitprice>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>0.00</originaltotalprice>
|
|
||||||
</instruction>
|
|
||||||
</item>
|
|
||||||
</order>
|
|
||||||
<order clerk="Josh">
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>CRAFTBEER012</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Corona</name>
|
|
||||||
<unitprice>7.00</unitprice>
|
|
||||||
<totalprice>7.00</totalprice>
|
|
||||||
<printgroup>Drinks</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Beer</category>
|
|
||||||
<department>Drinks</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>7.00</originaltotalprice>
|
|
||||||
<instruction split="0">
|
|
||||||
<id>INSTRUCTION005</id>
|
|
||||||
<name>With Lime</name>
|
|
||||||
<unitprice>0.50</unitprice>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>0.50</originaltotalprice>
|
|
||||||
</instruction>
|
|
||||||
</item>
|
|
||||||
</order>
|
|
||||||
<order clerk="Josh">
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN003</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Whole Sweetlip</name>
|
|
||||||
<unitprice>55.00</unitprice>
|
|
||||||
<totalprice>55.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>55.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN004</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Venison Wellington</name>
|
|
||||||
<unitprice>35.00</unitprice>
|
|
||||||
<totalprice>35.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>35.00</originaltotalprice>
|
|
||||||
<instruction split="0">
|
|
||||||
<id>STEAKTEMP2</id>
|
|
||||||
<name>Rare</name>
|
|
||||||
<unitprice>0.00</unitprice>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>0.00</originaltotalprice>
|
|
||||||
</instruction>
|
|
||||||
</item>
|
|
||||||
</order>
|
|
||||||
<order clerk="Josh">
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>CRAFTBEER010</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Colonial Harzy</name>
|
|
||||||
<unitprice>10.00</unitprice>
|
|
||||||
<totalprice>10.00</totalprice>
|
|
||||||
<printgroup>Drinks</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Beer</category>
|
|
||||||
<department>Drinks</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>10.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>CRAFTBEER009</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Hemingway XPA</name>
|
|
||||||
<unitprice>8.00</unitprice>
|
|
||||||
<totalprice>8.00</totalprice>
|
|
||||||
<printgroup>Drinks</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Beer</category>
|
|
||||||
<department>Drinks</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>8.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
</order>
|
|
||||||
<order clerk="Josh">
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>STARTER001</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Bruschetta</name>
|
|
||||||
<unitprice>12.00</unitprice>
|
|
||||||
<totalprice>12.00</totalprice>
|
|
||||||
<printgroup>Starters</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Starters</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>12.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>STARTER002</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Pita & Dips</name>
|
|
||||||
<unitprice>8.00</unitprice>
|
|
||||||
<totalprice>8.00</totalprice>
|
|
||||||
<printgroup>Starters</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Starters</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>8.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>STARTER003</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Scallops</name>
|
|
||||||
<unitprice>20.00</unitprice>
|
|
||||||
<totalprice>20.00</totalprice>
|
|
||||||
<printgroup>Starters</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Starters</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>20.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>CRAFTBEER003</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Galactopus</name>
|
|
||||||
<unitprice>18.00</unitprice>
|
|
||||||
<totalprice>18.00</totalprice>
|
|
||||||
<printgroup>Drinks</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Beer</category>
|
|
||||||
<department>Drinks</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>18.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>CRAFTBEER009</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Hemingway XPA</name>
|
|
||||||
<unitprice>8.00</unitprice>
|
|
||||||
<totalprice>8.00</totalprice>
|
|
||||||
<printgroup>Drinks</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Beer</category>
|
|
||||||
<department>Drinks</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>8.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN001</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Burger</name>
|
|
||||||
<unitprice>15.00</unitprice>
|
|
||||||
<totalprice>15.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>15.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN005</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Laotian Green Curry</name>
|
|
||||||
<unitprice>30.00</unitprice>
|
|
||||||
<totalprice>30.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>30.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN003</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Whole Sweetlip</name>
|
|
||||||
<unitprice>55.00</unitprice>
|
|
||||||
<totalprice>55.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>55.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN004</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Venison Wellington</name>
|
|
||||||
<unitprice>35.00</unitprice>
|
|
||||||
<totalprice>35.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>35.00</originaltotalprice>
|
|
||||||
<instruction split="0">
|
|
||||||
<id>STEAKTEMP5</id>
|
|
||||||
<name>Medium Well</name>
|
|
||||||
<unitprice>0.00</unitprice>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>0.00</originaltotalprice>
|
|
||||||
</instruction>
|
|
||||||
</item>
|
|
||||||
</order>
|
|
||||||
<order clerk="Josh">
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>CRAFTBEER012</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Corona</name>
|
|
||||||
<unitprice>7.00</unitprice>
|
|
||||||
<totalprice>7.00</totalprice>
|
|
||||||
<printgroup>Drinks</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Beer</category>
|
|
||||||
<department>Drinks</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>7.00</originaltotalprice>
|
|
||||||
<instruction split="0">
|
|
||||||
<id>INSTRUCTION005</id>
|
|
||||||
<name>With Lime</name>
|
|
||||||
<unitprice>0.50</unitprice>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>0.50</originaltotalprice>
|
|
||||||
</instruction>
|
|
||||||
</item>
|
|
||||||
</order>
|
|
||||||
<order clerk="Josh">
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN003</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Whole Sweetlip</name>
|
|
||||||
<unitprice>55.00</unitprice>
|
|
||||||
<totalprice>55.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>55.00</originaltotalprice>
|
|
||||||
</item>
|
|
||||||
<item type="item" split="0">
|
|
||||||
<id>MAIN004</id>
|
|
||||||
<quantity>1</quantity>
|
|
||||||
<name>Venison Wellington</name>
|
|
||||||
<unitprice>35.00</unitprice>
|
|
||||||
<totalprice>35.00</totalprice>
|
|
||||||
<printgroup>Mains</printgroup>
|
|
||||||
<cover>0</cover>
|
|
||||||
<category>Mains</category>
|
|
||||||
<department>Food</department>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>35.00</originaltotalprice>
|
|
||||||
<instruction split="0">
|
|
||||||
<id>STEAKTEMP2</id>
|
|
||||||
<name>Rare</name>
|
|
||||||
<unitprice>0.00</unitprice>
|
|
||||||
<originalqty>1</originalqty>
|
|
||||||
<originaltotalprice>0.00</originaltotalprice>
|
|
||||||
</instruction>
|
|
||||||
</item>
|
|
||||||
</order>
|
|
||||||
</table>
|
|
||||||
7
wwwroot/manifest.webmanifest
Normal file
7
wwwroot/manifest.webmanifest
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"short_name":"DredgePos",
|
||||||
|
"name":"F# Point of Sale System",
|
||||||
|
"start_url":"/",
|
||||||
|
"display":"fullscreen",
|
||||||
|
"scope":"/"
|
||||||
|
}
|
||||||
@@ -1,8 +1,9 @@
|
|||||||
let showLoginBox = () => showVirtualNumpad('Enter Login Code', 6, true, false, false, authenticate);
|
let showLoginBox = () => showVirtualNumpad('Enter Login Code', 6, true, false, false, authenticate);
|
||||||
let authenticate = (input) => {
|
let authenticate = (input) => {
|
||||||
let login = ajaxSync('/ajax/authenticateClerk', input);
|
let login = ajaxSync('/ajax/authenticateClerk', input);
|
||||||
if (login === 'success')
|
if (login === 'success') {
|
||||||
redirect('/floorplan');
|
location.assign('/floorplan');
|
||||||
|
}
|
||||||
else
|
else
|
||||||
showLoginBox();
|
showLoginBox();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"dredgepos.authenticate.js","sourceRoot":"","sources":["../ts/dredgepos.authenticate.ts"],"names":[],"mappings":"AAAA,IAAI,YAAY,GAAG,GAAG,EAAE,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,CAAA;AAEnG,IAAK,YAAY,GAAG,CAAC,KAAc,EAAE,EAAE;IACnC,IAAI,KAAK,GAAG,QAAQ,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAA;IACtD,IAAG,KAAK,KAAK,SAAS;QAClB,QAAQ,CAAC,YAAY,CAAC,CAAA;;QAEtB,YAAY,EAAE,CAAA;AACtB,CAAC,CAAA;AAED,CAAC,CAAC,GAAG,EAAE;IACH,YAAY,EAAE,CAAA;AAClB,CAAC,CAAC,CAAA"}
|
{"version":3,"file":"dredgepos.authenticate.js","sourceRoot":"","sources":["../ts/dredgepos.authenticate.ts"],"names":[],"mappings":"AAAA,IAAI,YAAY,GAAG,GAAG,EAAE,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,CAAA;AAEnG,IAAK,YAAY,GAAG,CAAC,KAAc,EAAE,EAAE;IACnC,IAAI,KAAK,GAAG,QAAQ,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAA;IACtD,IAAG,KAAK,KAAK,SAAS,EAAC;QACnB,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;KAChC;;QAEG,YAAY,EAAE,CAAA;AACtB,CAAC,CAAA;AAED,CAAC,CAAC,GAAG,EAAE;IACH,YAAY,EAAE,CAAA;AAClB,CAAC,CAAC,CAAA"}
|
||||||
@@ -56,13 +56,16 @@ let ajaxSync = (endpoint, data, method = 'POST') => {
|
|||||||
return response;
|
return response;
|
||||||
};
|
};
|
||||||
/* Redirect to a specific URL */
|
/* Redirect to a specific URL */
|
||||||
let redirect = (url) => {
|
let redirect = (url) => location.assign(url);
|
||||||
window.location.href = url;
|
const resize = () => {
|
||||||
|
$('#pageContainer').height(window.innerHeight + "px");
|
||||||
};
|
};
|
||||||
let setupCore = (languageVars) => {
|
let setupCore = (languageVars) => {
|
||||||
Application.languageVars = languageVars;
|
Application.languageVars = languageVars;
|
||||||
const doc = $(document);
|
const doc = $(document);
|
||||||
doc.on('click', '#alertNo, #alertOk', hideAlerts);
|
doc.on('click', '#alertNo, #alertOk', hideAlerts);
|
||||||
|
window.addEventListener('resize', resize);
|
||||||
|
resize();
|
||||||
setElementVisibilityByMode();
|
setElementVisibilityByMode();
|
||||||
};
|
};
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
@@ -130,7 +133,7 @@ let setElementVisibilityByMode = () => {
|
|||||||
invisibleElements.each((index, elem) => {
|
invisibleElements.each((index, elem) => {
|
||||||
let element = $(elem);
|
let element = $(elem);
|
||||||
let inVisibleInModes = element.data('invisible-in-mode');
|
let inVisibleInModes = element.data('invisible-in-mode');
|
||||||
let hideElement = inVisibleInModes.every(invisibleMode => {
|
let hideElement = inVisibleInModes.some(invisibleMode => {
|
||||||
return mode.includes(invisibleMode);
|
return mode.includes(invisibleMode);
|
||||||
});
|
});
|
||||||
element.toggle(!hideElement);
|
element.toggle(!hideElement);
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -149,16 +149,21 @@ const createTableShape = (table) => {
|
|||||||
};
|
};
|
||||||
const setupTableEvents = (tableGroup) => {
|
const setupTableEvents = (tableGroup) => {
|
||||||
const tableShape = getTableShapeFromGroup(tableGroup);
|
const tableShape = getTableShapeFromGroup(tableGroup);
|
||||||
tableGroup.on('click', (e) => tableClicked(e.target));
|
tableGroup.on('click', tableClicked);
|
||||||
tableGroup.on('tap', (e) => tableClicked(e.target));
|
tableGroup.on('tap', tableClicked);
|
||||||
tableGroup.on('dragend', (e) => saveTableTransformation(e.target));
|
tableGroup.on('dragend', tableGroupTransformed);
|
||||||
tableShape.on('transformend', (e) => {
|
tableShape.on('transformend', tableShapeTransformed);
|
||||||
const group = getTableGroupFromShape(e.target);
|
|
||||||
saveTableTransformation(group);
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
const getTableShapeFromGroup = (group) => group.getChildren()[0];
|
const getTableShapeFromGroup = (group) => group.getChildren()[0];
|
||||||
const getTableGroupFromShape = (shape) => shape.parent;
|
const getTableGroupFromShape = (shape) => shape.parent;
|
||||||
|
const tableGroupTransformed = (e) => {
|
||||||
|
saveTableTransformation(e.target);
|
||||||
|
};
|
||||||
|
const tableShapeTransformed = (e) => {
|
||||||
|
let shape = e.target;
|
||||||
|
let group = getTableGroupFromShape(shape);
|
||||||
|
saveTableTransformation(group);
|
||||||
|
};
|
||||||
const saveTableTransformation = (tableGroup) => {
|
const saveTableTransformation = (tableGroup) => {
|
||||||
const originalTable = getTableDataFromGroup(tableGroup);
|
const originalTable = getTableDataFromGroup(tableGroup);
|
||||||
const tableShape = getTableShapeFromGroup(tableGroup);
|
const tableShape = getTableShapeFromGroup(tableGroup);
|
||||||
@@ -321,7 +326,8 @@ const selectTable = (tableShape) => {
|
|||||||
turnOnMode('tableSelected');
|
turnOnMode('tableSelected');
|
||||||
};
|
};
|
||||||
const updateCoverText = (table) => $('.selectedTableCovers').text(lang('covers', table.default_covers.toString()));
|
const updateCoverText = (table) => $('.selectedTableCovers').text(lang('covers', table.default_covers.toString()));
|
||||||
const tableClicked = (tableShape) => {
|
const tableClicked = (event) => {
|
||||||
|
let tableShape = getTableShapeFromGroup(event.currentTarget);
|
||||||
const table = getTableDataFromShape(tableShape);
|
const table = getTableDataFromShape(tableShape);
|
||||||
if (isInMode('merge')) {
|
if (isInMode('merge')) {
|
||||||
mergeTables(getTableDataFromTableNumber(Floorplan.selectedTableNumber), table);
|
mergeTables(getTableDataFromTableNumber(Floorplan.selectedTableNumber), table);
|
||||||
@@ -365,17 +371,13 @@ const createDecorationShape = (decoration, select) => {
|
|||||||
decorationShape.src = 'images/decorations/' + decoration.decoration_image;
|
decorationShape.src = 'images/decorations/' + decoration.decoration_image;
|
||||||
};
|
};
|
||||||
const setupDecorationEvents = (decorationShape) => {
|
const setupDecorationEvents = (decorationShape) => {
|
||||||
decorationShape.on('click', e => {
|
decorationShape.on('click', decorationClicked);
|
||||||
decorationClicked(e.target);
|
decorationShape.on('tap', decorationClicked);
|
||||||
});
|
decorationShape.on('transformend', decorationTransformed);
|
||||||
decorationShape.on('transformend', e => {
|
decorationShape.on('dragend', decorationTransformed);
|
||||||
decorationTransformed(e.target);
|
|
||||||
});
|
|
||||||
decorationShape.on('dragend', e => {
|
|
||||||
decorationTransformed(e.target);
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
const decorationClicked = (decorationShape) => {
|
const decorationClicked = (event) => {
|
||||||
|
let decorationShape = event.target;
|
||||||
if (isInMode('edit')) {
|
if (isInMode('edit')) {
|
||||||
turnOffMode('tableSelected');
|
turnOffMode('tableSelected');
|
||||||
if ((Floorplan.transformer.nodes().length > 0 && Floorplan.transformer.nodes()[0] != decorationShape) || Floorplan.transformer.nodes().length == 0) {
|
if ((Floorplan.transformer.nodes().length > 0 && Floorplan.transformer.nodes()[0] != decorationShape) || Floorplan.transformer.nodes().length == 0) {
|
||||||
@@ -398,7 +400,8 @@ const selectDecorationShape = (decorationShape) => {
|
|||||||
const getDecorationDataById = (id) => {
|
const getDecorationDataById = (id) => {
|
||||||
return Floorplan.decorations.find(decoration => id == decoration.id);
|
return Floorplan.decorations.find(decoration => id == decoration.id);
|
||||||
};
|
};
|
||||||
const decorationTransformed = (decorationShape) => {
|
const decorationTransformed = (event) => {
|
||||||
|
let decorationShape = event.currentTarget;
|
||||||
const oldDecorationData = getDecorationDataById(Number(decorationShape.id()));
|
const oldDecorationData = getDecorationDataById(Number(decorationShape.id()));
|
||||||
const newDecoration = {
|
const newDecoration = {
|
||||||
id: oldDecorationData.id,
|
id: oldDecorationData.id,
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -100,6 +100,9 @@ let setupVirtualKeyboard = (keyboardLayouts) => {
|
|||||||
$(document).on('click', '.virtualKeyboardButton', e => {
|
$(document).on('click', '.virtualKeyboardButton', e => {
|
||||||
virtualKeyboardInput($(e.target).data('value'));
|
virtualKeyboardInput($(e.target).data('value'));
|
||||||
});
|
});
|
||||||
|
$(document).on('click', '.forceFocus', (e) => {
|
||||||
|
$('#virtualKeyboardInput').trigger('focus');
|
||||||
|
});
|
||||||
setKeyboardLayout('default');
|
setKeyboardLayout('default');
|
||||||
};
|
};
|
||||||
let showVirtualKeyboard = (heading, maxlength = 32, isPassword = false, submitFunction = () => { hideVirtualKeyboard(); }) => {
|
let showVirtualKeyboard = (heading, maxlength = 32, isPassword = false, submitFunction = () => { hideVirtualKeyboard(); }) => {
|
||||||
@@ -107,12 +110,16 @@ let showVirtualKeyboard = (heading, maxlength = 32, isPassword = false, submitFu
|
|||||||
let inputBox = $('#virtualKeyboardInput');
|
let inputBox = $('#virtualKeyboardInput');
|
||||||
keyboard.css('display', 'flex');
|
keyboard.css('display', 'flex');
|
||||||
$('#virtualKeyboardHeading').html(heading);
|
$('#virtualKeyboardHeading').html(heading);
|
||||||
|
$('.forceFocus').trigger('click');
|
||||||
keyboard.data('value', '');
|
keyboard.data('value', '');
|
||||||
inputBox.text('');
|
inputBox.val('');
|
||||||
keyboard.data('maxlength', maxlength);
|
keyboard.data('maxlength', maxlength);
|
||||||
keyboard.data('password', isPassword);
|
keyboard.data('password', isPassword);
|
||||||
keyboard.data('submitfunction', submitFunction);
|
keyboard.data('submitfunction', submitFunction);
|
||||||
|
inputBox.attr('autofocus', 'autofocus');
|
||||||
inputBox.trigger('focus');
|
inputBox.trigger('focus');
|
||||||
|
inputBox.trigger('click');
|
||||||
|
inputBox.trigger('select');
|
||||||
$(document).on('keyup', e => {
|
$(document).on('keyup', e => {
|
||||||
let key = e.key;
|
let key = e.key;
|
||||||
if (key == 'Enter' && inputBox.val().toString().length > 0) {
|
if (key == 'Enter' && inputBox.val().toString().length > 0) {
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -2,8 +2,9 @@
|
|||||||
|
|
||||||
let authenticate = (input : string) => {
|
let authenticate = (input : string) => {
|
||||||
let login = ajaxSync('/ajax/authenticateClerk', input)
|
let login = ajaxSync('/ajax/authenticateClerk', input)
|
||||||
if(login === 'success')
|
if(login === 'success'){
|
||||||
redirect('/floorplan')
|
location.assign('/floorplan')
|
||||||
|
}
|
||||||
else
|
else
|
||||||
showLoginBox()
|
showLoginBox()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,15 +67,20 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Redirect to a specific URL */
|
/* Redirect to a specific URL */
|
||||||
let redirect = (url: string) : void => {
|
let redirect = (url: string) : void => location.assign(url)
|
||||||
window.location.href = url
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const resize = () => {
|
||||||
|
$('#pageContainer').height(window.innerHeight + "px");
|
||||||
|
}
|
||||||
|
|
||||||
let setupCore = (languageVars: Record<string, string>) => {
|
let setupCore = (languageVars: Record<string, string>) => {
|
||||||
Application.languageVars = languageVars
|
Application.languageVars = languageVars
|
||||||
const doc = $(document)
|
const doc = $(document)
|
||||||
doc.on('click', '#alertNo, #alertOk', hideAlerts)
|
doc.on('click', '#alertNo, #alertOk', hideAlerts)
|
||||||
|
window.addEventListener('resize', resize)
|
||||||
|
resize()
|
||||||
|
|
||||||
setElementVisibilityByMode()
|
setElementVisibilityByMode()
|
||||||
}
|
}
|
||||||
@@ -159,7 +164,7 @@
|
|||||||
invisibleElements.each((index, elem) => {
|
invisibleElements.each((index, elem) => {
|
||||||
let element = $(elem)
|
let element = $(elem)
|
||||||
let inVisibleInModes: PosModes = element.data('invisible-in-mode')
|
let inVisibleInModes: PosModes = element.data('invisible-in-mode')
|
||||||
let hideElement = inVisibleInModes.every(invisibleMode => {
|
let hideElement = inVisibleInModes.some(invisibleMode => {
|
||||||
return mode.includes(invisibleMode)
|
return mode.includes(invisibleMode)
|
||||||
})
|
})
|
||||||
element.toggle(!hideElement)
|
element.toggle(!hideElement)
|
||||||
|
|||||||
@@ -212,18 +212,24 @@ const createTableShape = (table: table) => {
|
|||||||
const setupTableEvents = (tableGroup: Konva.Group) => {
|
const setupTableEvents = (tableGroup: Konva.Group) => {
|
||||||
const tableShape = getTableShapeFromGroup(tableGroup)
|
const tableShape = getTableShapeFromGroup(tableGroup)
|
||||||
|
|
||||||
tableGroup.on('click', (e) => tableClicked(e.target as Konva.Shape))
|
tableGroup.on('click', tableClicked)
|
||||||
tableGroup.on('tap', (e) => tableClicked(e.target as Konva.Shape))
|
tableGroup.on('tap', tableClicked)
|
||||||
tableGroup.on('dragend', (e) => saveTableTransformation(e.target as Konva.Group))
|
tableGroup.on('dragend', tableGroupTransformed)
|
||||||
tableShape.on('transformend', (e) => {
|
tableShape.on('transformend', tableShapeTransformed)
|
||||||
const group = getTableGroupFromShape(e.target as Konva.Shape)
|
|
||||||
saveTableTransformation(group)
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const getTableShapeFromGroup = (group: Konva.Group) => group.getChildren()[0] as Konva.Shape
|
const getTableShapeFromGroup = (group: Konva.Group) => group.getChildren()[0] as Konva.Shape
|
||||||
const getTableGroupFromShape = (shape: Konva.Shape) => shape.parent as Konva.Group
|
const getTableGroupFromShape = (shape: Konva.Shape) => shape.parent as Konva.Group
|
||||||
|
|
||||||
|
const tableGroupTransformed = (e: Konva.KonvaEventObject<any>) => {
|
||||||
|
saveTableTransformation(e.target as Konva.Group)
|
||||||
|
}
|
||||||
|
const tableShapeTransformed = (e: Konva.KonvaEventObject<any>) => {
|
||||||
|
let shape = e.target as Konva.Shape
|
||||||
|
let group = getTableGroupFromShape(shape)
|
||||||
|
saveTableTransformation(group)
|
||||||
|
}
|
||||||
|
|
||||||
const saveTableTransformation = (tableGroup: Konva.Group) => {
|
const saveTableTransformation = (tableGroup: Konva.Group) => {
|
||||||
const originalTable = getTableDataFromGroup(tableGroup)
|
const originalTable = getTableDataFromGroup(tableGroup)
|
||||||
const tableShape = getTableShapeFromGroup(tableGroup)
|
const tableShape = getTableShapeFromGroup(tableGroup)
|
||||||
@@ -425,7 +431,8 @@ const selectTable = (tableShape: Konva.Shape) => {
|
|||||||
|
|
||||||
const updateCoverText = (table:table) => $('.selectedTableCovers').text(lang('covers', table.default_covers.toString()))
|
const updateCoverText = (table:table) => $('.selectedTableCovers').text(lang('covers', table.default_covers.toString()))
|
||||||
|
|
||||||
const tableClicked = (tableShape: Konva.Shape) => {
|
const tableClicked = (event: Konva.KonvaEventObject<any>) => {
|
||||||
|
let tableShape = getTableShapeFromGroup(event.currentTarget as Konva.Group)
|
||||||
const table = getTableDataFromShape(tableShape)
|
const table = getTableDataFromShape(tableShape)
|
||||||
|
|
||||||
if(isInMode('merge')) {
|
if(isInMode('merge')) {
|
||||||
@@ -481,20 +488,14 @@ const createDecorationShape = (decoration:decoration, select?: boolean) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const setupDecorationEvents = (decorationShape: Konva.Image) => {
|
const setupDecorationEvents = (decorationShape: Konva.Image) => {
|
||||||
decorationShape.on('click', e => {
|
decorationShape.on('click', decorationClicked)
|
||||||
decorationClicked(e.target as Konva.Image)
|
decorationShape.on('tap', decorationClicked)
|
||||||
})
|
decorationShape.on('transformend', decorationTransformed)
|
||||||
|
decorationShape.on('dragend', decorationTransformed)
|
||||||
decorationShape.on('transformend', e => {
|
|
||||||
decorationTransformed(e.target as Konva.Image)
|
|
||||||
})
|
|
||||||
|
|
||||||
decorationShape.on('dragend', e => {
|
|
||||||
decorationTransformed(e.target as Konva.Image)
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const decorationClicked = (decorationShape: Konva.Image) => {
|
const decorationClicked = (event: Konva.KonvaEventObject<any>) => {
|
||||||
|
let decorationShape = event.target as Konva.Image
|
||||||
if(isInMode('edit')){
|
if(isInMode('edit')){
|
||||||
turnOffMode('tableSelected')
|
turnOffMode('tableSelected')
|
||||||
if ((Floorplan.transformer.nodes().length > 0 && Floorplan.transformer.nodes()[0] != decorationShape) || Floorplan.transformer.nodes().length == 0) {
|
if ((Floorplan.transformer.nodes().length > 0 && Floorplan.transformer.nodes()[0] != decorationShape) || Floorplan.transformer.nodes().length == 0) {
|
||||||
@@ -519,8 +520,8 @@ const getDecorationDataById = (id: number) => {
|
|||||||
return Floorplan.decorations.find(decoration => id == decoration.id)
|
return Floorplan.decorations.find(decoration => id == decoration.id)
|
||||||
}
|
}
|
||||||
|
|
||||||
const decorationTransformed = (decorationShape: Konva.Image) => {
|
const decorationTransformed = (event: Konva.KonvaEventObject<MouseEvent>|Konva.KonvaEventObject<TouchEvent|DragEvent|MouseEvent>) => {
|
||||||
|
let decorationShape = event.currentTarget as Konva.Image
|
||||||
const oldDecorationData = getDecorationDataById(Number(decorationShape.id()))
|
const oldDecorationData = getDecorationDataById(Number(decorationShape.id()))
|
||||||
const newDecoration: decoration = {
|
const newDecoration: decoration = {
|
||||||
id: oldDecorationData.id,
|
id: oldDecorationData.id,
|
||||||
|
|||||||
@@ -126,6 +126,9 @@ let showVirtualNumpad = (heading: string, maxlength = 4, isPassword: boolean, al
|
|||||||
virtualKeyboardInput($(e.target).data('value'));
|
virtualKeyboardInput($(e.target).data('value'));
|
||||||
})
|
})
|
||||||
|
|
||||||
|
$(document).on('click', '.forceFocus', (e) => {
|
||||||
|
$('#virtualKeyboardInput').trigger('focus')
|
||||||
|
})
|
||||||
setKeyboardLayout('default')
|
setKeyboardLayout('default')
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -135,13 +138,17 @@ let showVirtualNumpad = (heading: string, maxlength = 4, isPassword: boolean, al
|
|||||||
|
|
||||||
keyboard.css('display', 'flex')
|
keyboard.css('display', 'flex')
|
||||||
$('#virtualKeyboardHeading').html(heading)
|
$('#virtualKeyboardHeading').html(heading)
|
||||||
|
$('.forceFocus').trigger('click')
|
||||||
|
|
||||||
keyboard.data('value', '')
|
keyboard.data('value', '')
|
||||||
inputBox.text('')
|
inputBox.val('')
|
||||||
keyboard.data('maxlength', maxlength)
|
keyboard.data('maxlength', maxlength)
|
||||||
keyboard.data('password', isPassword)
|
keyboard.data('password', isPassword)
|
||||||
keyboard.data('submitfunction', submitFunction)
|
keyboard.data('submitfunction', submitFunction)
|
||||||
|
inputBox.attr('autofocus', 'autofocus');
|
||||||
inputBox.trigger('focus')
|
inputBox.trigger('focus')
|
||||||
|
inputBox.trigger('click')
|
||||||
|
inputBox.trigger('select')
|
||||||
$(document).on('keyup', e => {
|
$(document).on('keyup', e => {
|
||||||
let key = e.key
|
let key = e.key
|
||||||
if (key == 'Enter' && inputBox.val().toString().length > 0) {
|
if (key == 'Enter' && inputBox.val().toString().length > 0) {
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ body
|
|||||||
color: var(--pos-header-text-color)
|
color: var(--pos-header-text-color)
|
||||||
background: var(--pos-header-background)
|
background: var(--pos-header-background)
|
||||||
|
|
||||||
.posButton.active,.posButton:active
|
.posButton.active,.posButton:active, .posButton:focus
|
||||||
border-color: var(--posbutton-border-color-active)
|
border-color: var(--posbutton-border-color-active)
|
||||||
color: var(--posbutton-text-color-active)
|
color: var(--posbutton-text-color-active)
|
||||||
background: var(--posbutton-background-active) /* webkit */
|
background: var(--posbutton-background-active) /* webkit */
|
||||||
@@ -64,7 +64,7 @@ body
|
|||||||
|
|
||||||
#pageContainer
|
#pageContainer
|
||||||
@include flex
|
@include flex
|
||||||
height: 100vh !important
|
height: 100vh
|
||||||
|
|
||||||
.posButton, .posHeader
|
.posButton, .posHeader
|
||||||
@include flex
|
@include flex
|
||||||
|
|||||||
@@ -79,8 +79,8 @@
|
|||||||
display: none
|
display: none
|
||||||
border: solid 3px var(--global-border-color)
|
border: solid 3px var(--global-border-color)
|
||||||
background-color: var(--global-bgcolor)
|
background-color: var(--global-bgcolor)
|
||||||
width: 30vw
|
width: 30%
|
||||||
height: 50vh
|
height: 50%
|
||||||
|
|
||||||
> *
|
> *
|
||||||
@include flex-column-item
|
@include flex-column-item
|
||||||
|
|||||||
@@ -28,13 +28,13 @@
|
|||||||
#virtualNumpad
|
#virtualNumpad
|
||||||
@include absoluteCenter
|
@include absoluteCenter
|
||||||
flex-direction: column
|
flex-direction: column
|
||||||
height: 70vh
|
height: 70%
|
||||||
width: 30vw
|
width: 25%
|
||||||
border: solid 2px var(--global-border-color)
|
border: solid 2px var(--global-border-color)
|
||||||
|
|
||||||
@include mobile
|
@include mobile
|
||||||
height: 100vh
|
height: 100%
|
||||||
width: 100vw
|
width: 100%
|
||||||
|
|
||||||
#virtualNumpadInput
|
#virtualNumpadInput
|
||||||
background-color: var(--global-secondary-bgcolor)
|
background-color: var(--global-secondary-bgcolor)
|
||||||
@@ -63,14 +63,14 @@
|
|||||||
#virtualKeyboard
|
#virtualKeyboard
|
||||||
@include absoluteCenter
|
@include absoluteCenter
|
||||||
flex-direction: column
|
flex-direction: column
|
||||||
width: 80vw
|
width: 80%
|
||||||
height: 40vh
|
height: 40%
|
||||||
background-color: var(--global-bgcolor)
|
background-color: var(--global-bgcolor)
|
||||||
border: solid 2px var(--global-border-color)
|
border: solid 2px var(--global-border-color)
|
||||||
|
|
||||||
@include mobile
|
@include mobile
|
||||||
width: 100vw
|
width: 100%
|
||||||
height: 10vh
|
height: 10%
|
||||||
top: 0
|
top: 0
|
||||||
bottom: auto
|
bottom: auto
|
||||||
|
|
||||||
@@ -118,14 +118,14 @@
|
|||||||
@include flex-column
|
@include flex-column
|
||||||
@include absoluteCenter
|
@include absoluteCenter
|
||||||
display: none
|
display: none
|
||||||
width: 60vw
|
width: 60%
|
||||||
height: 40vh
|
height: 40%
|
||||||
background-color: var(--global-bgcolor)
|
background-color: var(--global-bgcolor)
|
||||||
border: solid 2px var(--global-border-color)
|
border: solid 2px var(--global-border-color)
|
||||||
|
|
||||||
@include mobile
|
@include mobile
|
||||||
width: 100vw
|
width: 100%
|
||||||
height: 100vh
|
height: 100%
|
||||||
|
|
||||||
> *
|
> *
|
||||||
@include flex
|
@include flex
|
||||||
|
|||||||
@@ -4,8 +4,9 @@
|
|||||||
<title><!--[var:title]--></title>
|
<title><!--[var:title]--></title>
|
||||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||||
<meta name = "viewport" content = "user-scalable = no, initial-scale=0.8,maximum-scale=0.8 ,shrink-to-fit=yes" />
|
<meta name = "viewport" content = "user-scalable = no, initial-scale=0.8,maximum-scale=0.8 ,shrink-to-fit=yes" />
|
||||||
|
<link rel="manifest" href="/manifest.webmanifest">
|
||||||
</head>
|
</head>
|
||||||
<body class="darkMode">
|
<body ontouchstart="" class="darkMode">
|
||||||
<div id="authenticator">
|
<div id="authenticator">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
<script src="https://unpkg.com/current-device/umd/current-device.min.js"></script>
|
<script src="https://unpkg.com/current-device/umd/current-device.min.js"></script>
|
||||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||||
<meta name = "viewport" content = "user-scalable = no, initial-scale=0.8,maximum-scale=0.8 ,shrink-to-fit=yes" />
|
<meta name = "viewport" content = "user-scalable = no, initial-scale=0.8,maximum-scale=0.8 ,shrink-to-fit=yes" />
|
||||||
|
<link rel="manifest" href="/manifest.webmanifest">
|
||||||
</head>
|
</head>
|
||||||
<body class="darkMode">
|
<body class="darkMode">
|
||||||
<div id="pageContainer">
|
<div id="pageContainer">
|
||||||
@@ -34,10 +35,10 @@
|
|||||||
<small class="selectedTableCovers"></small>
|
<small class="selectedTableCovers"></small>
|
||||||
</div>
|
</div>
|
||||||
<a class="posButton"><!--[lang:order_table]--></a>
|
<a class="posButton"><!--[lang:order_table]--></a>
|
||||||
<a class="posButton reserveTableButton" data-invisible-in-mode='["reservedTableSelected"]'><!--[lang:reserve_table]--></a>
|
<a class="posButton reserveTableButton" data-invisible-in-mode='["reservedTableSelected", "activeTableSelected"]'><!--[lang:reserve_table]--></a>
|
||||||
<a class="posButton unreserveTableButton" data-visible-in-mode='["reservedTableSelected"]'><!--[lang:unreserve_table]--></a>
|
<a class="posButton unreserveTableButton" data-visible-in-mode='["reservedTableSelected"]'><!--[lang:unreserve_table]--></a>
|
||||||
<a class="posButton payTableButton"><!--[lang:pay_table]--></a>
|
<a class="posButton payTableButton" data-visible-in-mode='["activeTableSelected"]'><!--[lang:pay_table]--></a>
|
||||||
<a class="posButton viewTableButton"><!--[lang:view_table]--></a>
|
<a class="posButton viewTableButton" data-visible-in-mode='["activeTableSelected"]'><!--[lang:view_table]--></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -66,5 +66,6 @@
|
|||||||
<div class="virtualKeyboardRow">
|
<div class="virtualKeyboardRow">
|
||||||
<a></a>
|
<a></a>
|
||||||
</div>
|
</div>
|
||||||
|
<span class="forceFocus"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
Reference in New Issue
Block a user