Slight refactoring to button action attributes

This commit is contained in:
dredgy
2022-07-07 15:42:40 +10:00
parent ac30d8147e
commit 9558074c4f
4 changed files with 18 additions and 14 deletions

View File

@@ -7,12 +7,11 @@ let attr = Giraffe.ViewEngine.HtmlElements.attr
let getItemActionAttributes (itemCode: string) = let getItemActionAttributes (itemCode: string) =
let item = Entity.GetFirstByColumn<item> "code" (StringTrim itemCode) let item = Entity.GetFirstByColumn<item> "code" (StringTrim itemCode)
[(attr "data-item") <| jsonEncode item] [item |> jsonEncode |> attr "data-item"]
let getGridActionAttributes (gridId: int) = [(attr "data-grid") <| jsonEncode gridId] let getGridActionAttributes (gridId: int) = [(attr "data-grid") <| jsonEncode gridId]
let getActionAttributes (action: string) (actionValue: string) = let getActionAttributes (action: string) (actionValue: string) =
match action with match action with
| "item" -> getItemActionAttributes actionValue | "item" -> getItemActionAttributes actionValue
| "grid" -> actionValue |> int |> getGridActionAttributes | "grid" -> actionValue |> int |> getGridActionAttributes

View File

@@ -116,6 +116,9 @@ let itemButtonImage (button: button) =
_style $"background-image:url(\"/images/items/{button.image}\");" _style $"background-image:url(\"/images/items/{button.image}\");"
] [] ] []
let _data_primary_action = attr "data-primary-action"
let _data_secondary_action = attr "data-secondary-action"
let itemButton (button: button) = let itemButton (button: button) =
let extraClasses = let extraClasses =
if button.image.Length > 0 then button.extra_classes + " hasImage" if button.image.Length > 0 then button.extra_classes + " hasImage"
@@ -128,8 +131,8 @@ let itemButton (button: button) =
yield! primaryAttributes yield! primaryAttributes
yield! secondaryAttributes yield! secondaryAttributes
_style button.extra_styles _style button.extra_styles
(attr "data-primary-action") button.primary_action _data_primary_action button.primary_action
(attr "data-secondary-action") button.secondary_action _data_secondary_action button.secondary_action
] [ ] [
if button.image.Length > 0 then itemButtonImage button if button.image.Length > 0 then itemButtonImage button
span [_class "text "] [str button.text] span [_class "text "] [str button.text]

View File

@@ -69,8 +69,8 @@ const setupOrderScreen = (data: OrderScreenData) => {
doc.on('click', '.nextButton', goToNextPage) doc.on('click', '.nextButton', goToNextPage)
doc.on('click', '.prevButton', goToPrevPage) doc.on('click', '.prevButton', goToPrevPage)
doc.on('click', '.loadPageGroup', loadPageGroup) doc.on('click', '.loadPageGroup', loadPageGroup)
doc.on('click', '[data-primary-action=item]', itemButtonClicked) doc.on('click', getElementsByAction('item'), itemButtonClicked)
doc.on('click', '[data-primary-action=grid],[data-secondary-action=grid]', gridButtonClicked) doc.on('click', getElementsByAction('grid'), gridButtonClicked)
doc.on('click', '.closeGrid', hideGrids) doc.on('click', '.closeGrid', hideGrids)
doc.on('click', '.freetextButton', freetext) doc.on('click', '.freetextButton', freetext)
doc.on('click', '.openItemButton', customItem) doc.on('click', '.openItemButton', customItem)
@@ -98,6 +98,8 @@ const setupOrderScreen = (data: OrderScreenData) => {
} }
const getElementsByAction = (action: string) => `[data-primary-action=${action}], [data-secondary-action=${action}]`
/** /**
* @param direction 1 for forward, -1 for backwards. * @param direction 1 for forward, -1 for backwards.
* @param button * @param button
@@ -325,7 +327,7 @@ const gridHtmlGenerated = (gridData: {gridHtml:string, grid: grid}) => {
.html(gridHtml) .html(gridHtml)
.show() .show()
.parent() .parent()
.height(cellDimensions.width * grid.rows) .height(cellDimensions.height * grid.rows)
.closest('.gridContainer') .closest('.gridContainer')
.find('.pageNavigation') .find('.pageNavigation')
.toggle(gridContainer.find('.gridPage').length > 1) .toggle(gridContainer.find('.gridPage').length > 1)

View File

@@ -25,9 +25,9 @@ let showVirtualNumpad = (heading: string, maxlength = 4, isPassword: boolean, al
inputBox.text(''); inputBox.text('');
numpad.data('maxlength', maxlength) numpad.data('maxlength', maxlength)
numpad.data('submitfunction', submitFunction) numpad.data('submit-function', submitFunction)
numpad.data('password', isPassword); numpad.data('password', isPassword);
numpad.data('allowdecimals', allowDecimals); numpad.data('allow-decimals', allowDecimals);
$(document).off('keyup'); $(document).off('keyup');
$(document).on('keyup', e => { $(document).on('keyup', e => {
@@ -64,9 +64,9 @@ let showVirtualNumpad = (heading: string, maxlength = 4, isPassword: boolean, al
let virtualNumpadInput = (input: string) => { let virtualNumpadInput = (input: string) => {
let inputBox = $('#virtualNumpadInput') let inputBox = $('#virtualNumpadInput')
let numpad = $('#virtualNumpad') let numpad = $('#virtualNumpad')
let maxlength = numpad.data('maxlength') let maxlength : number = numpad.data('maxlength')
let allowDecimals = numpad.data('allowdecimals') let allowDecimals: boolean = numpad.data('allow-decimals')
let submitFunction = numpad.data('submitfunction') let submitFunction : Function = numpad.data('submit-function')
let allowedValues = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'submit', 'clear'] let allowedValues = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'submit', 'clear']
let currentValue = numpad.data('value').toString() let currentValue = numpad.data('value').toString()
@@ -144,7 +144,7 @@ let showVirtualNumpad = (heading: string, maxlength = 4, isPassword: boolean, al
inputBox.val('') inputBox.val('')
keyboard.data('maxlength', maxlength) keyboard.data('maxlength', maxlength)
keyboard.data('password', isPassword) keyboard.data('password', isPassword)
keyboard.data('submitfunction', submitFunction) keyboard.data('submit-function', submitFunction)
inputBox.attr('autofocus', 'autofocus'); inputBox.attr('autofocus', 'autofocus');
inputBox.trigger('focus') inputBox.trigger('focus')
inputBox.trigger('click') inputBox.trigger('click')
@@ -175,7 +175,7 @@ let showVirtualNumpad = (heading: string, maxlength = 4, isPassword: boolean, al
break; break;
case 'submit': case 'submit':
hideVirtualKeyboard(); hideVirtualKeyboard();
let submitFunction = keyboard.data('submitfunction') let submitFunction = keyboard.data('submit-function')
submitFunction(inputBox.val()); submitFunction(inputBox.val());
break; break;
case 'shift': case 'shift':