Updated to F# 6 arrays

This commit is contained in:
2022-01-02 15:17:36 +10:00
parent bb5e613382
commit cbd157d2c9
12 changed files with 35 additions and 36 deletions

View File

@@ -17,15 +17,13 @@ let getLanguageVars = ajaxSuccess languageVars
let getActiveTables venue = Floorplan.getActiveTables venue |> ajaxSuccess |> json
let getRoomData roomId = Floorplan.getRoom roomId |> ajaxSuccess |> json
let mergeTables (tables: floorplan_table[]) =
let status =
if mergeTables tables.[0].table_number tables.[1].table_number then
if mergeTables tables[0].table_number tables[1].table_number then
let outputTables = map [
"parent", tables.[0];
"child", tables.[1];
"merged", getTable tables.[0].table_number;
"parent", tables[0];
"child", tables[1];
"merged", getTable tables[0].table_number;
]
ajaxSuccess outputTables
else ajaxFail "Could Not Merge Tables"
@@ -64,7 +62,8 @@ let getOrderScreenData (id: int) =
|> json
let getKeyboardLayout (language: string) =
let layout = $"""wwwroot/languages/{language}/keyboardLayout.json""" |> GetFileContents
let layout = $"""wwwroot/languages/{language}/keyboardLayout.json"""
|> GetFileContents
map [
"status", "success"
"data", layout

View File

@@ -17,7 +17,7 @@ let deleteCookie name (context: HttpContext) =
if cookieExists name context then context.Response.Cookies.Delete(name)
let getCookie cookieName (context: HttpContext) =
context.Request.Cookies.[cookieName] |? ""
context.Request.Cookies[cookieName] |? ""
let setCookie name value (expiry: DateTimeOffset) (context: HttpContext) =
deleteCookie name context

View File

@@ -37,8 +37,8 @@ let GetFileContents (file: string) = File.ReadAllText file
let GetFileName (file: string) = Path.GetFileName file
let length (variable: 'T[]) = variable.Length
let first (array: 'a[]) = array.[0]
let last (array: 'a[]) = array.[array.Length-1]
let first (array: 'a[]) = array[0]
let last (array: 'a[]) = array[array.Length-1]
let removeFalseValues (variable: bool[]) = variable |> Array.filter id

View File

@@ -14,6 +14,7 @@
<Compile Include="Theme.module.fs" />
<Compile Include="Reservations.module.fs" />
<Compile Include="Floorplan.module.fs" />
<Compile Include="Printer.module.fs" />
<Compile Include="OrderScreen.module.fs" />
<Compile Include="Decorations.module.fs" />
<Compile Include="Clerk.module.fs" />
@@ -42,6 +43,7 @@
<PackageReference Include="Dapper.Contrib" Version="2.0.78" />
<PackageReference Include="Dapper.FSharp" Version="2.4.1" />
<PackageReference Include="FSharp.Data" Version="4.0.1" />
<PackageReference Include="Giraffe" Version="6.0.0-alpha-2" />
<PackageReference Include="Npgsql" Version="6.0.0" />
<PackageReference Include="Pluralize.NET.Core" Version="1.0.0" />
<PackageReference Include="Saturn" Version="0.15.0-preview03" />

View File

@@ -27,8 +27,8 @@ let tableIsOpen (table: floorplan_table) = tableNumberIsOpen table.table_number
let fileNameToTableNumber (fileName: string) = //Takes a file name for a floorplan table and returns the table number
if fileName.Contains ".table" then
let fileName = (fileName.Split ".").[0]
(fileName.Split "/table").[1] |> int
let fileName = (fileName.Split ".")[0]
(fileName.Split "/table")[1] |> int
else 0
let openTables () = //Get a list of all open tables.
@@ -121,7 +121,7 @@ let updateTablePosition (floorplanTable: floorplan_table) = Entity.updateInDatab
let createEmptyReservation (reservation: reservation) =
update {
table "floorplan_tables"
set {| status = 2 |}Target
set {| status = 2 |}
where(eq "id" reservation.reservation_table_id)
} |> db.Update |> ignore
@@ -173,7 +173,7 @@ let tableExists (tableNumber: int) =
match allTables.Length with
| 0 -> false |> string //Table does not exist
| _ ->
let parentTableData = getTable allTables.[0]
let parentTableData = getTable allTables[0]
let parentRoom = getRoom parentTableData.room_id
let parentRoomName = parentRoom.room_name
language.getAndReplace "error_table_exists_merged" [parentRoomName; parentTableData.table_number.ToString()]

View File

@@ -19,7 +19,7 @@ let languageVars =
//Gets a value of a language variable
let get var =
if languageVars.ContainsKey var then
languageVars.[var]
languageVars[var]
else
"Missing language variable: " + var

2
Printer.module.fs Normal file
View File

@@ -0,0 +1,2 @@
module Printer

View File

@@ -17,7 +17,6 @@ module Program =
use_warbler
}
let floorplanRouter = router {
pipe_through browser
post "/authenticateClerk" (bindJson<int> (handlePostRoute AjaxController.loginWithLoginCode) )
@@ -32,7 +31,6 @@ module Program =
post "/updateReservation" (bindJson<reservation> AjaxController.updateReservation)
post "/getReservation" (bindJson<int> (fun reservation -> json <| GetReservationById reservation) )
post "/unreserveTable" (bindJson<floorplan_table> AjaxController.unreserveTable )
getf "/getRoomData/%i" AjaxController.getRoomData
getf "/getKeyboardLayout/%s" AjaxController.getKeyboardLayout
get "/languageVars" (json <| AjaxController.getLanguageVars)
get "/getOpenTables" (json <| Floorplan.getActiveTables (DredgeFramework.getCurrentVenue()))

View File

@@ -43,11 +43,11 @@ let ParseVariables (varArray: Map<string, string>) (html:string) =
Regex.Replace(html, "<!--\[var\:(.*?)\]-->",
MatchEvaluator(
fun matchedVar ->
let varName = matchedVar.Groups.[1] |> string |> StringTrim
let varName = matchedVar.Groups[1] |> string |> StringTrim
if varArray.ContainsKey varName then
if varName |> ToLowerCase = "title" then titlePrefix varArray.[varName]
else varArray.[varName]
if varName |> ToLowerCase = "title" then titlePrefix varArray[varName]
else varArray[varName]
else
"<!--[Undefined Variable: " + varName + "]-->"
))
@@ -56,11 +56,11 @@ let ParseArrays (arrayArray: Map<string, Map<string, string>>) (string:string) =
Regex.Replace(string, "<!--\[arr\:(.*?)\|(.*?)\]-->",
MatchEvaluator(
fun matchedVar ->
let arrayName = matchedVar.Groups.[1].ToString() |> StringTrim
let keyName = matchedVar.Groups.[2].ToString()
let arrayName = matchedVar.Groups[1].ToString() |> StringTrim
let keyName = matchedVar.Groups[2].ToString()
if arrayArray.ContainsKey arrayName && arrayArray.[arrayName].ContainsKey keyName then
arrayArray.[arrayName].[keyName]
if arrayArray.ContainsKey arrayName && arrayArray[arrayName].ContainsKey keyName then
arrayArray[arrayName][keyName]
else
"<!--[Undefined Array: " + arrayName + "]-->"
)
@@ -70,7 +70,7 @@ let ParseSimpleLanguageVariables (string:string) =
Regex.Replace(string, "<!--\[lang\:(.*?)\]-->",
new MatchEvaluator(
fun matchedVar ->
let varName = matchedVar.Groups.[1].ToString()
let varName = matchedVar.Groups[1].ToString()
|> StringTrim
language.get varName
@@ -80,8 +80,8 @@ let ParseLanguageVariablesWithReplacements (string: string) =
Regex.Replace(string, "<!--\[lang\:(.*?)\|(.*?)\]-->",
new MatchEvaluator(
fun matchedVar ->
let varName = matchedVar.Groups.[1].ToString()
let replacements = matchedVar.Groups.[2].ToString()
let varName = matchedVar.Groups[1].ToString()
let replacements = matchedVar.Groups[2].ToString()
|> StringSplit ","
|> Array.toList
@@ -115,7 +115,7 @@ let rec loadTemplateWithVarsArraysScriptsAndStyles templateName vars arrays scri
and ParseTemplates vars arrays scripts styles (string: string) =
Regex.Replace(string, "<!--\[template\:(.*?)\]-->",
new MatchEvaluator( fun template ->
let templateName = template.Groups.[1].ToString() |> StringTrim
let templateName = template.Groups[1].ToString() |> StringTrim
loadTemplateWithVarsArraysScriptsAndStyles templateName vars arrays scripts styles
))

View File

@@ -216,7 +216,6 @@ let showVirtualNumpad = (heading: string, maxlength = 4, isPassword: boolean, al
}
let setKeyboardLayout = (layout: string, modifier = '') => {
if (modifier != '') modifier = `_${modifier}`
Application.keyboard.currentLayout = layout
let layoutToLoad = Application.keyboard.layouts[layout]
@@ -226,9 +225,8 @@ let showVirtualNumpad = (heading: string, maxlength = 4, isPassword: boolean, al
We start at 1 instead of 0. Makes it easier for non-programmers
and translators making their own language packs
*/
index = index + 1;
index = index + 1
// @ts-ignore
let currentRow : string[] = layoutToLoad[`row${index}${modifier}`]
$(row).children('a').each((keyIndex, button) => {