diff options
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | .tmuxinator.yml | 5 | ||||
-rw-r--r-- | Makefile | 56 | ||||
-rw-r--r-- | elm-package.json | 2 | ||||
-rw-r--r-- | public/javascripts/main.js (renamed from src/client/js/main.js) | 0 | ||||
-rw-r--r-- | src/client/Dialog.elm (renamed from src/client/elm/Dialog.elm) | 0 | ||||
-rw-r--r-- | src/client/Dialog/AddCategory/Model.elm (renamed from src/client/elm/Dialog/AddCategory/Model.elm) | 1 | ||||
-rw-r--r-- | src/client/Dialog/AddCategory/View.elm (renamed from src/client/elm/Dialog/AddCategory/View.elm) | 0 | ||||
-rw-r--r-- | src/client/Dialog/AddIncome/Model.elm (renamed from src/client/elm/Dialog/AddIncome/Model.elm) | 0 | ||||
-rw-r--r-- | src/client/Dialog/AddIncome/View.elm (renamed from src/client/elm/Dialog/AddIncome/View.elm) | 0 | ||||
-rw-r--r-- | src/client/Dialog/AddPayment/Model.elm (renamed from src/client/elm/Dialog/AddPayment/Model.elm) | 2 | ||||
-rw-r--r-- | src/client/Dialog/AddPayment/View.elm (renamed from src/client/elm/Dialog/AddPayment/View.elm) | 0 | ||||
-rw-r--r-- | src/client/Dialog/Model.elm (renamed from src/client/elm/Dialog/Model.elm) | 9 | ||||
-rw-r--r-- | src/client/Dialog/Msg.elm (renamed from src/client/elm/Dialog/Msg.elm) | 0 | ||||
-rw-r--r-- | src/client/Dialog/Update.elm (renamed from src/client/elm/Dialog/Update.elm) | 0 | ||||
-rw-r--r-- | src/client/Init.elm (renamed from src/client/elm/Init.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedData.elm (renamed from src/client/elm/LoggedData.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/Category/Model.elm (renamed from src/client/elm/LoggedIn/Category/Model.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/Category/Msg.elm (renamed from src/client/elm/LoggedIn/Category/Msg.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/Category/Table/View.elm (renamed from src/client/elm/LoggedIn/Category/Table/View.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/Category/Update.elm (renamed from src/client/elm/LoggedIn/Category/Update.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/Category/View.elm (renamed from src/client/elm/LoggedIn/Category/View.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/Home/Header/View.elm (renamed from src/client/elm/LoggedIn/Home/Header/View.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/Home/Model.elm (renamed from src/client/elm/LoggedIn/Home/Model.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/Home/Msg.elm (renamed from src/client/elm/LoggedIn/Home/Msg.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/Home/Update.elm (renamed from src/client/elm/LoggedIn/Home/Update.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/Home/View.elm (renamed from src/client/elm/LoggedIn/Home/View.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/Home/View/ExceedingPayers.elm (renamed from src/client/elm/LoggedIn/Home/View/ExceedingPayers.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/Home/View/Paging.elm (renamed from src/client/elm/LoggedIn/Home/View/Paging.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/Home/View/Table.elm (renamed from src/client/elm/LoggedIn/Home/View/Table.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/Income/Model.elm (renamed from src/client/elm/LoggedIn/Income/Model.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/Income/Msg.elm (renamed from src/client/elm/LoggedIn/Income/Msg.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/Income/Update.elm (renamed from src/client/elm/LoggedIn/Income/Update.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/Income/View.elm (renamed from src/client/elm/LoggedIn/Income/View.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/Income/View/Table.elm (renamed from src/client/elm/LoggedIn/Income/View/Table.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/Model.elm (renamed from src/client/elm/LoggedIn/Model.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/Msg.elm (renamed from src/client/elm/LoggedIn/Msg.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/Stat/View.elm (renamed from src/client/elm/LoggedIn/Stat/View.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/Update.elm (renamed from src/client/elm/LoggedIn/Update.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/View.elm (renamed from src/client/elm/LoggedIn/View.elm) | 0 | ||||
-rw-r--r-- | src/client/LoggedIn/View/Format.elm (renamed from src/client/elm/LoggedIn/View/Format.elm) | 0 | ||||
-rw-r--r-- | src/client/Main.elm (renamed from src/client/elm/Main.elm) | 0 | ||||
-rw-r--r-- | src/client/Model.elm (renamed from src/client/elm/Model.elm) | 0 | ||||
-rw-r--r-- | src/client/Model/Category.elm (renamed from src/client/elm/Model/Category.elm) | 0 | ||||
-rw-r--r-- | src/client/Model/Conf.elm (renamed from src/client/elm/Model/Conf.elm) | 0 | ||||
-rw-r--r-- | src/client/Model/Date.elm (renamed from src/client/elm/Model/Date.elm) | 0 | ||||
-rw-r--r-- | src/client/Model/Income.elm (renamed from src/client/elm/Model/Income.elm) | 0 | ||||
-rw-r--r-- | src/client/Model/Init.elm (renamed from src/client/elm/Model/Init.elm) | 0 | ||||
-rw-r--r-- | src/client/Model/InitResult.elm (renamed from src/client/elm/Model/InitResult.elm) | 0 | ||||
-rw-r--r-- | src/client/Model/Payer.elm (renamed from src/client/elm/Model/Payer.elm) | 0 | ||||
-rw-r--r-- | src/client/Model/Payment.elm (renamed from src/client/elm/Model/Payment.elm) | 0 | ||||
-rw-r--r-- | src/client/Model/PaymentCategory.elm (renamed from src/client/elm/Model/PaymentCategory.elm) | 0 | ||||
-rw-r--r-- | src/client/Model/Size.elm (renamed from src/client/elm/Model/Size.elm) | 0 | ||||
-rw-r--r-- | src/client/Model/Translations.elm (renamed from src/client/elm/Model/Translations.elm) | 0 | ||||
-rw-r--r-- | src/client/Model/User.elm (renamed from src/client/elm/Model/User.elm) | 0 | ||||
-rw-r--r-- | src/client/Model/View.elm (renamed from src/client/elm/Model/View.elm) | 0 | ||||
-rw-r--r-- | src/client/Msg.elm (renamed from src/client/elm/Msg.elm) | 0 | ||||
-rw-r--r-- | src/client/Page.elm (renamed from src/client/elm/Page.elm) | 0 | ||||
-rw-r--r-- | src/client/Server.elm (renamed from src/client/elm/Server.elm) | 0 | ||||
-rw-r--r-- | src/client/SignIn/Model.elm (renamed from src/client/elm/SignIn/Model.elm) | 0 | ||||
-rw-r--r-- | src/client/SignIn/Msg.elm (renamed from src/client/elm/SignIn/Msg.elm) | 0 | ||||
-rw-r--r-- | src/client/SignIn/Update.elm (renamed from src/client/elm/SignIn/Update.elm) | 0 | ||||
-rw-r--r-- | src/client/SignIn/View.elm (renamed from src/client/elm/SignIn/View.elm) | 0 | ||||
-rw-r--r-- | src/client/Tooltip.elm (renamed from src/client/elm/Tooltip.elm) | 0 | ||||
-rw-r--r-- | src/client/Update.elm (renamed from src/client/elm/Update.elm) | 0 | ||||
-rw-r--r-- | src/client/Utils/Cmd.elm (renamed from src/client/elm/Utils/Cmd.elm) | 0 | ||||
-rw-r--r-- | src/client/Utils/Dict.elm (renamed from src/client/elm/Utils/Dict.elm) | 0 | ||||
-rw-r--r-- | src/client/Utils/Either.elm (renamed from src/client/elm/Utils/Either.elm) | 0 | ||||
-rw-r--r-- | src/client/Utils/Form.elm (renamed from src/client/elm/Utils/Form.elm) | 0 | ||||
-rw-r--r-- | src/client/Utils/Http.elm (renamed from src/client/elm/Utils/Http.elm) | 0 | ||||
-rw-r--r-- | src/client/Utils/Json.elm (renamed from src/client/elm/Utils/Json.elm) | 0 | ||||
-rw-r--r-- | src/client/Utils/List.elm (renamed from src/client/elm/Utils/List.elm) | 0 | ||||
-rw-r--r-- | src/client/Utils/Maybe.elm (renamed from src/client/elm/Utils/Maybe.elm) | 0 | ||||
-rw-r--r-- | src/client/Utils/Search.elm (renamed from src/client/elm/Utils/Search.elm) | 0 | ||||
-rw-r--r-- | src/client/Utils/String.elm (renamed from src/client/elm/Utils/String.elm) | 0 | ||||
-rw-r--r-- | src/client/Validation.elm (renamed from src/client/elm/Validation.elm) | 25 | ||||
-rw-r--r-- | src/client/View.elm (renamed from src/client/elm/View.elm) | 0 | ||||
-rw-r--r-- | src/client/View/Color.elm (renamed from src/client/elm/View/Color.elm) | 0 | ||||
-rw-r--r-- | src/client/View/Date.elm (renamed from src/client/elm/View/Date.elm) | 0 | ||||
-rw-r--r-- | src/client/View/Errors.elm (renamed from src/client/elm/View/Errors.elm) | 0 | ||||
-rw-r--r-- | src/client/View/Events.elm (renamed from src/client/elm/View/Events.elm) | 0 | ||||
-rw-r--r-- | src/client/View/Form.elm (renamed from src/client/elm/View/Form.elm) | 0 | ||||
-rw-r--r-- | src/client/View/Header.elm (renamed from src/client/elm/View/Header.elm) | 0 | ||||
-rw-r--r-- | src/client/View/Plural.elm (renamed from src/client/elm/View/Plural.elm) | 0 | ||||
-rw-r--r-- | src/server/Main.hs | 19 | ||||
-rw-r--r-- | src/server/Model/Message/Key.hs | 1 | ||||
-rw-r--r-- | src/server/Model/Message/Translations.hs | 5 |
87 files changed, 55 insertions, 72 deletions
@@ -3,6 +3,6 @@ database-shm database-wal elm-stuff/ .stack-work -public/javascripts +public/javascripts/client.js sessionKey local.conf diff --git a/.tmuxinator.yml b/.tmuxinator.yml index 1f3a804..d8b97c5 100644 --- a/.tmuxinator.yml +++ b/.tmuxinator.yml @@ -2,9 +2,10 @@ name: sharedCost windows: - main: - layout: fff4,119x58,0,0{94x58,0,0,0,24x58,95,0,1} + layout: 3747,239x59,0,0{144x59,0,0,0,94x59,145,0[94x30,145,0,1,94x28,145,31,2]} panes: - # Empty - - make install build watch + - make install-client watch-client + - make install-server watch-server - db: - sqlite3 database @@ -1,50 +1,32 @@ -all: build +# Server +# ------ -clean: +clean-server: @stack clean > /dev/null - @rm -r elm-stuff >/dev/null 2>&1 || true -install: +install-server: @stack setup - @elm package install --yes - -# Watch -# ----- - -watch: watch-server watch-elm watch-js - -watch-server: - @nodemon -e hs,conf --exec 'clear && make build-and-launch-server --silent' & - -watch-elm: - @nodemon -e elm --exec 'clear && make build-elm --silent' & - -watch-js: - @nodemon --watch src/client/js --exec 'make build-js --silent' -# Build and launch -# ---------------- - -build-and-launch-server: build-server kill-server launch-server +build-server: + @stack build || : launch-server: - @stack exec sharedCost & - -kill-server: - @killall sharedCost || : + @(killall sharedCost || :) && stack exec sharedCost +watch-server: + @nodemon -e hs,conf --exec 'clear && make build-server --silent && make launch-server' -# Build -# ----- +# Client +# ------ -.PHONY: build -build: build-server build-elm build-js +clean-client: + @rm -r elm-stuff >/dev/null 2>&1 || true -build-server: - @stack build || true +install-client: + @elm package install --yes -build-elm: - @elm make src/client/elm/Main.elm --output public/javascripts/client.js || true +build-client: + @elm make src/client/Main.elm --output public/javascripts/client.js || true -build-js: - @cp src/client/js/main.js public/javascripts/main.js || true +watch-client: + @nodemon -e elm --exec 'clear && make build-client --silent' diff --git a/elm-package.json b/elm-package.json index 19674fe..5f76d18 100644 --- a/elm-package.json +++ b/elm-package.json @@ -3,7 +3,7 @@ "summary": "SharedCost", "repository": "https://github.com/guyonvarch/sharedcost.git", "license": "GPL-3", - "source-directories": [ "src/client/elm" ], + "source-directories": [ "src/client" ], "exposed-modules": [], "elm-version": "0.18.0 <= v < 0.19.0", "dependencies": { diff --git a/src/client/js/main.js b/public/javascripts/main.js index 3c3d797..3c3d797 100644 --- a/src/client/js/main.js +++ b/public/javascripts/main.js diff --git a/src/client/elm/Dialog.elm b/src/client/Dialog.elm index a7e059a..a7e059a 100644 --- a/src/client/elm/Dialog.elm +++ b/src/client/Dialog.elm diff --git a/src/client/elm/Dialog/AddCategory/Model.elm b/src/client/Dialog/AddCategory/Model.elm index 8aeec1a..7496c2b 100644 --- a/src/client/elm/Dialog/AddCategory/Model.elm +++ b/src/client/Dialog/AddCategory/Model.elm @@ -13,7 +13,6 @@ import View.Date as Date import Form exposing (Form) import Form.Field as Field exposing (Field) import Form.Validate as Validate exposing (Validation) -import Validation import Model.Translations exposing (Translations) import Model.Category exposing (Category, CategoryId) diff --git a/src/client/elm/Dialog/AddCategory/View.elm b/src/client/Dialog/AddCategory/View.elm index 6c02351..6c02351 100644 --- a/src/client/elm/Dialog/AddCategory/View.elm +++ b/src/client/Dialog/AddCategory/View.elm diff --git a/src/client/elm/Dialog/AddIncome/Model.elm b/src/client/Dialog/AddIncome/Model.elm index ad7b25a..ad7b25a 100644 --- a/src/client/elm/Dialog/AddIncome/Model.elm +++ b/src/client/Dialog/AddIncome/Model.elm diff --git a/src/client/elm/Dialog/AddIncome/View.elm b/src/client/Dialog/AddIncome/View.elm index b413308..b413308 100644 --- a/src/client/elm/Dialog/AddIncome/View.elm +++ b/src/client/Dialog/AddIncome/View.elm diff --git a/src/client/elm/Dialog/AddPayment/Model.elm b/src/client/Dialog/AddPayment/Model.elm index a287d37..11d59b1 100644 --- a/src/client/elm/Dialog/AddPayment/Model.elm +++ b/src/client/Dialog/AddPayment/Model.elm @@ -64,7 +64,7 @@ validation categories = Validate.map6 Model (Validate.field "id" (Validate.maybe Validate.int)) (Validate.field "name" (Validate.string |> Validate.andThen Validate.nonEmpty)) - (Validate.field "cost" (Validate.int |> Validate.andThen (Validate.minInt 1))) + (Validate.field "cost" Validation.cost) (Validate.field "date" Validation.date) (Validate.field "category" (Validation.category categories)) (Validate.field "frequency" Payment.validateFrequency) diff --git a/src/client/elm/Dialog/AddPayment/View.elm b/src/client/Dialog/AddPayment/View.elm index 078d5b7..078d5b7 100644 --- a/src/client/elm/Dialog/AddPayment/View.elm +++ b/src/client/Dialog/AddPayment/View.elm diff --git a/src/client/elm/Dialog/Model.elm b/src/client/Dialog/Model.elm index d4fd484..ff8bc57 100644 --- a/src/client/elm/Dialog/Model.elm +++ b/src/client/Dialog/Model.elm @@ -3,16 +3,7 @@ module Dialog.Model exposing , init ) -import Date exposing (Date) -import View.Date as Date - import Form exposing (Form) -import Form.Field as Field exposing (Field) -import Form.Validate as Validate exposing (Validation) -import Validation - -import Model.Payment as Payment exposing (Payment, Frequency, PaymentId) -import Model.Translations exposing (Translations) import Dialog.AddPayment.Model as AddPayment import Dialog.AddIncome.Model as AddIncome diff --git a/src/client/elm/Dialog/Msg.elm b/src/client/Dialog/Msg.elm index 68ed146..68ed146 100644 --- a/src/client/elm/Dialog/Msg.elm +++ b/src/client/Dialog/Msg.elm diff --git a/src/client/elm/Dialog/Update.elm b/src/client/Dialog/Update.elm index 3915548..3915548 100644 --- a/src/client/elm/Dialog/Update.elm +++ b/src/client/Dialog/Update.elm diff --git a/src/client/elm/Init.elm b/src/client/Init.elm index d87e870..d87e870 100644 --- a/src/client/elm/Init.elm +++ b/src/client/Init.elm diff --git a/src/client/elm/LoggedData.elm b/src/client/LoggedData.elm index 9bb0a7f..9bb0a7f 100644 --- a/src/client/elm/LoggedData.elm +++ b/src/client/LoggedData.elm diff --git a/src/client/elm/LoggedIn/Category/Model.elm b/src/client/LoggedIn/Category/Model.elm index 7092fc4..7092fc4 100644 --- a/src/client/elm/LoggedIn/Category/Model.elm +++ b/src/client/LoggedIn/Category/Model.elm diff --git a/src/client/elm/LoggedIn/Category/Msg.elm b/src/client/LoggedIn/Category/Msg.elm index 3184297..3184297 100644 --- a/src/client/elm/LoggedIn/Category/Msg.elm +++ b/src/client/LoggedIn/Category/Msg.elm diff --git a/src/client/elm/LoggedIn/Category/Table/View.elm b/src/client/LoggedIn/Category/Table/View.elm index fa7a7b1..fa7a7b1 100644 --- a/src/client/elm/LoggedIn/Category/Table/View.elm +++ b/src/client/LoggedIn/Category/Table/View.elm diff --git a/src/client/elm/LoggedIn/Category/Update.elm b/src/client/LoggedIn/Category/Update.elm index 1072ef0..1072ef0 100644 --- a/src/client/elm/LoggedIn/Category/Update.elm +++ b/src/client/LoggedIn/Category/Update.elm diff --git a/src/client/elm/LoggedIn/Category/View.elm b/src/client/LoggedIn/Category/View.elm index 4e04fa2..4e04fa2 100644 --- a/src/client/elm/LoggedIn/Category/View.elm +++ b/src/client/LoggedIn/Category/View.elm diff --git a/src/client/elm/LoggedIn/Home/Header/View.elm b/src/client/LoggedIn/Home/Header/View.elm index 3f8a320..3f8a320 100644 --- a/src/client/elm/LoggedIn/Home/Header/View.elm +++ b/src/client/LoggedIn/Home/Header/View.elm diff --git a/src/client/elm/LoggedIn/Home/Model.elm b/src/client/LoggedIn/Home/Model.elm index ace1593..ace1593 100644 --- a/src/client/elm/LoggedIn/Home/Model.elm +++ b/src/client/LoggedIn/Home/Model.elm diff --git a/src/client/elm/LoggedIn/Home/Msg.elm b/src/client/LoggedIn/Home/Msg.elm index b5f2566..b5f2566 100644 --- a/src/client/elm/LoggedIn/Home/Msg.elm +++ b/src/client/LoggedIn/Home/Msg.elm diff --git a/src/client/elm/LoggedIn/Home/Update.elm b/src/client/LoggedIn/Home/Update.elm index b0ce256..b0ce256 100644 --- a/src/client/elm/LoggedIn/Home/Update.elm +++ b/src/client/LoggedIn/Home/Update.elm diff --git a/src/client/elm/LoggedIn/Home/View.elm b/src/client/LoggedIn/Home/View.elm index 0b90e67..0b90e67 100644 --- a/src/client/elm/LoggedIn/Home/View.elm +++ b/src/client/LoggedIn/Home/View.elm diff --git a/src/client/elm/LoggedIn/Home/View/ExceedingPayers.elm b/src/client/LoggedIn/Home/View/ExceedingPayers.elm index 6f2439c..6f2439c 100644 --- a/src/client/elm/LoggedIn/Home/View/ExceedingPayers.elm +++ b/src/client/LoggedIn/Home/View/ExceedingPayers.elm diff --git a/src/client/elm/LoggedIn/Home/View/Paging.elm b/src/client/LoggedIn/Home/View/Paging.elm index dffe061..dffe061 100644 --- a/src/client/elm/LoggedIn/Home/View/Paging.elm +++ b/src/client/LoggedIn/Home/View/Paging.elm diff --git a/src/client/elm/LoggedIn/Home/View/Table.elm b/src/client/LoggedIn/Home/View/Table.elm index 8828488..8828488 100644 --- a/src/client/elm/LoggedIn/Home/View/Table.elm +++ b/src/client/LoggedIn/Home/View/Table.elm diff --git a/src/client/elm/LoggedIn/Income/Model.elm b/src/client/LoggedIn/Income/Model.elm index 7d852b9..7d852b9 100644 --- a/src/client/elm/LoggedIn/Income/Model.elm +++ b/src/client/LoggedIn/Income/Model.elm diff --git a/src/client/elm/LoggedIn/Income/Msg.elm b/src/client/LoggedIn/Income/Msg.elm index 0a09dad..0a09dad 100644 --- a/src/client/elm/LoggedIn/Income/Msg.elm +++ b/src/client/LoggedIn/Income/Msg.elm diff --git a/src/client/elm/LoggedIn/Income/Update.elm b/src/client/LoggedIn/Income/Update.elm index 0023c76..0023c76 100644 --- a/src/client/elm/LoggedIn/Income/Update.elm +++ b/src/client/LoggedIn/Income/Update.elm diff --git a/src/client/elm/LoggedIn/Income/View.elm b/src/client/LoggedIn/Income/View.elm index 00a1646..00a1646 100644 --- a/src/client/elm/LoggedIn/Income/View.elm +++ b/src/client/LoggedIn/Income/View.elm diff --git a/src/client/elm/LoggedIn/Income/View/Table.elm b/src/client/LoggedIn/Income/View/Table.elm index aa5e392..aa5e392 100644 --- a/src/client/elm/LoggedIn/Income/View/Table.elm +++ b/src/client/LoggedIn/Income/View/Table.elm diff --git a/src/client/elm/LoggedIn/Model.elm b/src/client/LoggedIn/Model.elm index 6bcb0b2..6bcb0b2 100644 --- a/src/client/elm/LoggedIn/Model.elm +++ b/src/client/LoggedIn/Model.elm diff --git a/src/client/elm/LoggedIn/Msg.elm b/src/client/LoggedIn/Msg.elm index a1379a6..a1379a6 100644 --- a/src/client/elm/LoggedIn/Msg.elm +++ b/src/client/LoggedIn/Msg.elm diff --git a/src/client/elm/LoggedIn/Stat/View.elm b/src/client/LoggedIn/Stat/View.elm index f57316a..f57316a 100644 --- a/src/client/elm/LoggedIn/Stat/View.elm +++ b/src/client/LoggedIn/Stat/View.elm diff --git a/src/client/elm/LoggedIn/Update.elm b/src/client/LoggedIn/Update.elm index 9e6d6ee..9e6d6ee 100644 --- a/src/client/elm/LoggedIn/Update.elm +++ b/src/client/LoggedIn/Update.elm diff --git a/src/client/elm/LoggedIn/View.elm b/src/client/LoggedIn/View.elm index 2e42a73..2e42a73 100644 --- a/src/client/elm/LoggedIn/View.elm +++ b/src/client/LoggedIn/View.elm diff --git a/src/client/elm/LoggedIn/View/Format.elm b/src/client/LoggedIn/View/Format.elm index f41e2cd..f41e2cd 100644 --- a/src/client/elm/LoggedIn/View/Format.elm +++ b/src/client/LoggedIn/View/Format.elm diff --git a/src/client/elm/Main.elm b/src/client/Main.elm index 9674b66..9674b66 100644 --- a/src/client/elm/Main.elm +++ b/src/client/Main.elm diff --git a/src/client/elm/Model.elm b/src/client/Model.elm index 5167e42..5167e42 100644 --- a/src/client/elm/Model.elm +++ b/src/client/Model.elm diff --git a/src/client/elm/Model/Category.elm b/src/client/Model/Category.elm index 8b653a7..8b653a7 100644 --- a/src/client/elm/Model/Category.elm +++ b/src/client/Model/Category.elm diff --git a/src/client/elm/Model/Conf.elm b/src/client/Model/Conf.elm index 308fa04..308fa04 100644 --- a/src/client/elm/Model/Conf.elm +++ b/src/client/Model/Conf.elm diff --git a/src/client/elm/Model/Date.elm b/src/client/Model/Date.elm index bfba02f..bfba02f 100644 --- a/src/client/elm/Model/Date.elm +++ b/src/client/Model/Date.elm diff --git a/src/client/elm/Model/Income.elm b/src/client/Model/Income.elm index 34578c6..34578c6 100644 --- a/src/client/elm/Model/Income.elm +++ b/src/client/Model/Income.elm diff --git a/src/client/elm/Model/Init.elm b/src/client/Model/Init.elm index db7069f..db7069f 100644 --- a/src/client/elm/Model/Init.elm +++ b/src/client/Model/Init.elm diff --git a/src/client/elm/Model/InitResult.elm b/src/client/Model/InitResult.elm index 7ce0be2..7ce0be2 100644 --- a/src/client/elm/Model/InitResult.elm +++ b/src/client/Model/InitResult.elm diff --git a/src/client/elm/Model/Payer.elm b/src/client/Model/Payer.elm index 1663273..1663273 100644 --- a/src/client/elm/Model/Payer.elm +++ b/src/client/Model/Payer.elm diff --git a/src/client/elm/Model/Payment.elm b/src/client/Model/Payment.elm index f61ded8..f61ded8 100644 --- a/src/client/elm/Model/Payment.elm +++ b/src/client/Model/Payment.elm diff --git a/src/client/elm/Model/PaymentCategory.elm b/src/client/Model/PaymentCategory.elm index 87678fe..87678fe 100644 --- a/src/client/elm/Model/PaymentCategory.elm +++ b/src/client/Model/PaymentCategory.elm diff --git a/src/client/elm/Model/Size.elm b/src/client/Model/Size.elm index f40fb01..f40fb01 100644 --- a/src/client/elm/Model/Size.elm +++ b/src/client/Model/Size.elm diff --git a/src/client/elm/Model/Translations.elm b/src/client/Model/Translations.elm index 9b314e1..9b314e1 100644 --- a/src/client/elm/Model/Translations.elm +++ b/src/client/Model/Translations.elm diff --git a/src/client/elm/Model/User.elm b/src/client/Model/User.elm index f6e8147..f6e8147 100644 --- a/src/client/elm/Model/User.elm +++ b/src/client/Model/User.elm diff --git a/src/client/elm/Model/View.elm b/src/client/Model/View.elm index 61d42a7..61d42a7 100644 --- a/src/client/elm/Model/View.elm +++ b/src/client/Model/View.elm diff --git a/src/client/elm/Msg.elm b/src/client/Msg.elm index cf592aa..cf592aa 100644 --- a/src/client/elm/Msg.elm +++ b/src/client/Msg.elm diff --git a/src/client/elm/Page.elm b/src/client/Page.elm index 39232e0..39232e0 100644 --- a/src/client/elm/Page.elm +++ b/src/client/Page.elm diff --git a/src/client/elm/Server.elm b/src/client/Server.elm index 7f25876..7f25876 100644 --- a/src/client/elm/Server.elm +++ b/src/client/Server.elm diff --git a/src/client/elm/SignIn/Model.elm b/src/client/SignIn/Model.elm index 19d4305..19d4305 100644 --- a/src/client/elm/SignIn/Model.elm +++ b/src/client/SignIn/Model.elm diff --git a/src/client/elm/SignIn/Msg.elm b/src/client/SignIn/Msg.elm index f753ebd..f753ebd 100644 --- a/src/client/elm/SignIn/Msg.elm +++ b/src/client/SignIn/Msg.elm diff --git a/src/client/elm/SignIn/Update.elm b/src/client/SignIn/Update.elm index 98de777..98de777 100644 --- a/src/client/elm/SignIn/Update.elm +++ b/src/client/SignIn/Update.elm diff --git a/src/client/elm/SignIn/View.elm b/src/client/SignIn/View.elm index 88f74b0..88f74b0 100644 --- a/src/client/elm/SignIn/View.elm +++ b/src/client/SignIn/View.elm diff --git a/src/client/elm/Tooltip.elm b/src/client/Tooltip.elm index 4f70cda..4f70cda 100644 --- a/src/client/elm/Tooltip.elm +++ b/src/client/Tooltip.elm diff --git a/src/client/elm/Update.elm b/src/client/Update.elm index 7006d5a..7006d5a 100644 --- a/src/client/elm/Update.elm +++ b/src/client/Update.elm diff --git a/src/client/elm/Utils/Cmd.elm b/src/client/Utils/Cmd.elm index 5f41cbe..5f41cbe 100644 --- a/src/client/elm/Utils/Cmd.elm +++ b/src/client/Utils/Cmd.elm diff --git a/src/client/elm/Utils/Dict.elm b/src/client/Utils/Dict.elm index 7d708e2..7d708e2 100644 --- a/src/client/elm/Utils/Dict.elm +++ b/src/client/Utils/Dict.elm diff --git a/src/client/elm/Utils/Either.elm b/src/client/Utils/Either.elm index 275fc8c..275fc8c 100644 --- a/src/client/elm/Utils/Either.elm +++ b/src/client/Utils/Either.elm diff --git a/src/client/elm/Utils/Form.elm b/src/client/Utils/Form.elm index 8d75a32..8d75a32 100644 --- a/src/client/elm/Utils/Form.elm +++ b/src/client/Utils/Form.elm diff --git a/src/client/elm/Utils/Http.elm b/src/client/Utils/Http.elm index dd3870a..dd3870a 100644 --- a/src/client/elm/Utils/Http.elm +++ b/src/client/Utils/Http.elm diff --git a/src/client/elm/Utils/Json.elm b/src/client/Utils/Json.elm index 29e815b..29e815b 100644 --- a/src/client/elm/Utils/Json.elm +++ b/src/client/Utils/Json.elm diff --git a/src/client/elm/Utils/List.elm b/src/client/Utils/List.elm index cc57d9f..cc57d9f 100644 --- a/src/client/elm/Utils/List.elm +++ b/src/client/Utils/List.elm diff --git a/src/client/elm/Utils/Maybe.elm b/src/client/Utils/Maybe.elm index 46456e1..46456e1 100644 --- a/src/client/elm/Utils/Maybe.elm +++ b/src/client/Utils/Maybe.elm diff --git a/src/client/elm/Utils/Search.elm b/src/client/Utils/Search.elm index 1b70387..1b70387 100644 --- a/src/client/elm/Utils/Search.elm +++ b/src/client/Utils/Search.elm diff --git a/src/client/elm/Utils/String.elm b/src/client/Utils/String.elm index 90fe68e..90fe68e 100644 --- a/src/client/elm/Utils/String.elm +++ b/src/client/Utils/String.elm diff --git a/src/client/elm/Validation.elm b/src/client/Validation.elm index 18b3934..4781c3d 100644 --- a/src/client/elm/Validation.elm +++ b/src/client/Validation.elm @@ -1,5 +1,6 @@ module Validation exposing - ( date + ( cost + , date , category ) @@ -9,30 +10,38 @@ import Date.Extra.Create exposing (dateFromFields) import Dict import String exposing (toInt, split) -import Form.Validate as Validate exposing (..) +import Form.Validate as Validate exposing (Validation) import Model.Category exposing (Categories, CategoryId) +cost : Validation String Int +cost = + Validate.customValidation Validate.int (\n -> + if n == 0 + then Err (Validate.customError "CostMustNotBeNull") + else Ok n + ) + date : Validation String Date date = - customValidation string (\str -> + Validate.customValidation Validate.string (\str -> case split "/" str of [day, month, year] -> case (toInt day, toInt month, toInt year) of (Ok dayNum, Ok monthNum, Ok yearNum) -> Ok (dateFromFields yearNum (intToMonth monthNum) dayNum 0 0 0 0) - _ -> Err (customError "InvalidDate") - _ -> Err (customError "InvalidDate") + _ -> Err (Validate.customError "InvalidDate") + _ -> Err (Validate.customError "InvalidDate") ) category : Categories -> Validation String CategoryId category categories = - customValidation string (\str -> + Validate.customValidation Validate.string (\str -> case toInt str of Ok category -> if List.member category (Dict.keys categories) then Ok category - else Err (customError "InvalidCategory") + else Err (Validate.customError "InvalidCategory") Err _ -> - Err (customError "InvalidCategory") + Err (Validate.customError "InvalidCategory") ) diff --git a/src/client/elm/View.elm b/src/client/View.elm index 66c498a..66c498a 100644 --- a/src/client/elm/View.elm +++ b/src/client/View.elm diff --git a/src/client/elm/View/Color.elm b/src/client/View/Color.elm index a2a20c7..a2a20c7 100644 --- a/src/client/elm/View/Color.elm +++ b/src/client/View/Color.elm diff --git a/src/client/elm/View/Date.elm b/src/client/View/Date.elm index 35806ba..35806ba 100644 --- a/src/client/elm/View/Date.elm +++ b/src/client/View/Date.elm diff --git a/src/client/elm/View/Errors.elm b/src/client/View/Errors.elm index 3e25c99..3e25c99 100644 --- a/src/client/elm/View/Errors.elm +++ b/src/client/View/Errors.elm diff --git a/src/client/elm/View/Events.elm b/src/client/View/Events.elm index d71d67d..d71d67d 100644 --- a/src/client/elm/View/Events.elm +++ b/src/client/View/Events.elm diff --git a/src/client/elm/View/Form.elm b/src/client/View/Form.elm index 7a4965d..7a4965d 100644 --- a/src/client/elm/View/Form.elm +++ b/src/client/View/Form.elm diff --git a/src/client/elm/View/Header.elm b/src/client/View/Header.elm index 12fb87c..12fb87c 100644 --- a/src/client/elm/View/Header.elm +++ b/src/client/View/Header.elm diff --git a/src/client/elm/View/Plural.elm b/src/client/View/Plural.elm index c36eaca..c36eaca 100644 --- a/src/client/elm/View/Plural.elm +++ b/src/client/View/Plural.elm diff --git a/src/server/Main.hs b/src/server/Main.hs index b7764c9..7ae8c1c 100644 --- a/src/server/Main.hs +++ b/src/server/Main.hs @@ -1,22 +1,17 @@ {-# LANGUAGE OverloadedStrings #-} -import Web.Scotty - import Network.Wai.Middleware.Static - -import Job.Daemon (runDaemons) - import qualified Data.Text.Lazy as LT +import Web.Scotty -import qualified Controller.Index as Index -import qualified Controller.SignIn as SignIn -import qualified Controller.Payment as Payment -import qualified Controller.Income as Income -import qualified Controller.Category as Category - +import Job.Daemon (runDaemons) import Model.Database (runMigrations) - import qualified Conf +import qualified Controller.Category as Category +import qualified Controller.Income as Income +import qualified Controller.Index as Index +import qualified Controller.Payment as Payment +import qualified Controller.SignIn as SignIn main :: IO () main = do diff --git a/src/server/Model/Message/Key.hs b/src/server/Model/Message/Key.hs index 36b3ba0..79ccf39 100644 --- a/src/server/Model/Message/Key.hs +++ b/src/server/Model/Message/Key.hs @@ -127,6 +127,7 @@ data Key = | Empty | InvalidString | InvalidDate + | CostMustNotBeNull | InvalidInt | InvalidCategory | SmallerIntThan diff --git a/src/server/Model/Message/Translations.hs b/src/server/Model/Message/Translations.hs index 6565344..16fc3fd 100644 --- a/src/server/Model/Message/Translations.hs +++ b/src/server/Model/Message/Translations.hs @@ -498,6 +498,11 @@ m l InvalidDate = English -> "day/month/year required" French -> "jour/mois/année requis" +m l CostMustNotBeNull = + case l of + English -> "Cost must not be zero" + French -> "Le coût ne doît pas être nul" + m l InvalidInt = case l of English -> "Integer required" |