diff options
author | Joris | 2015-09-04 09:52:20 +0200 |
---|---|---|
committer | Joris | 2015-09-04 09:52:20 +0200 |
commit | c1f44a5890fbb26faf6f17c676662ea1bd495f2e (patch) | |
tree | f158bdef5bd985a9b11d46d12878d566268cf6cc /src/server | |
parent | 889df8caf04de5f10a9e623bab3e502e9573159d (diff) |
Adding paging (need some fixes)
Diffstat (limited to 'src/server')
-rw-r--r-- | src/server/Controller/Payment.hs | 6 | ||||
-rw-r--r-- | src/server/Design/Color.hs | 4 | ||||
-rw-r--r-- | src/server/Design/Global.hs | 24 | ||||
-rw-r--r-- | src/server/Main.hs | 6 | ||||
-rw-r--r-- | src/server/Model/Payment.hs | 7 |
5 files changed, 36 insertions, 11 deletions
diff --git a/src/server/Controller/Payment.hs b/src/server/Controller/Payment.hs index dc1083e..271d970 100644 --- a/src/server/Controller/Payment.hs +++ b/src/server/Controller/Payment.hs @@ -25,10 +25,10 @@ import Model.Json.Number import Model.Message import Model.Message.Key (Key(PaymentNotDeleted)) -getPaymentsAction :: ActionM () -getPaymentsAction = +getPaymentsAction :: Int -> Int -> ActionM () +getPaymentsAction page perPage = Secure.loggedAction (\_ -> do - payments <- liftIO $ runDb getPayments + payments <- liftIO $ runDb (getPayments page perPage) json payments ) diff --git a/src/server/Design/Color.hs b/src/server/Design/Color.hs index c1c4057..adbe50f 100644 --- a/src/server/Design/Color.hs +++ b/src/server/Design/Color.hs @@ -23,8 +23,8 @@ blue = C.rgb 108 162 164 paymentFocus :: C.Color paymentFocus = C.rgb 255 223 196 -darkgrey :: C.Color -darkgrey = C.rgb 150 150 150 +darkGrey :: C.Color +darkGrey = C.rgb 150 150 150 grey :: C.Color grey = C.rgb 200 200 200 diff --git a/src/server/Design/Global.hs b/src/server/Design/Global.hs index 4933300..5efb2bf 100644 --- a/src/server/Design/Global.hs +++ b/src/server/Design/Global.hs @@ -78,7 +78,7 @@ global = do display inlineBlock width (px 60) textAlign (alignSide sideCenter) - backgroundColor C.darkgrey + backgroundColor C.darkGrey color C.white height (px inputHeight) lineHeight (px inputHeight) @@ -167,6 +167,26 @@ global = do color C.white visibility hidden + ".pages" ? do + padding (px 30) (px 30) (px 30) (px 30) + clearFix + ".page" ? do + border solid (px 2) C.darkGrey + borderRadius (px 2) (px 2) (px 2) (px 2) + marginRight (px 10) + cursor pointer + let side = 50 + width (px side) + height (px side) + lineHeight (px side) + textAlign (alignSide (sideCenter)) + float floatLeft + fontWeight bold + + ".current" & do + borderColor C.red + color C.red + ".signIn" ? do form ? do @@ -214,6 +234,6 @@ defaultInput inputHeight = do height (px inputHeight) padding (px 10) (px 10) (px 10) (px 10) borderRadius (px 3) (px 3) (px 3) (px 3) - border solid (px 1) C.darkgrey + border solid (px 1) C.darkGrey focus & borderColor C.grey verticalAlign middle diff --git a/src/server/Main.hs b/src/server/Main.hs index ce652d0..8a77598 100644 --- a/src/server/Main.hs +++ b/src/server/Main.hs @@ -42,8 +42,10 @@ main = do get "/userName" $ getUserName - get "/payments" $ - getPaymentsAction + get "/payments" $ do + page <- param "page" :: ActionM Int + perPage <- param "perPage" :: ActionM Int + getPaymentsAction page perPage post "/payment/add" $ do name <- param "name" :: ActionM Text diff --git a/src/server/Model/Payment.hs b/src/server/Model/Payment.hs index db1f36f..ce8c5a1 100644 --- a/src/server/Model/Payment.hs +++ b/src/server/Model/Payment.hs @@ -23,12 +23,15 @@ import Model.Database import qualified Model.Json.Payment as P import qualified Model.Json.TotalPayment as TP -getPayments :: Persist [P.Payment] -getPayments = do +getPayments :: Int -> Int -> Persist [P.Payment] +getPayments page perPage = do xs <- select $ from $ \(payment `InnerJoin` user) -> do on (payment ^. PaymentUserId E.==. user ^. UserId) where_ (isNothing (payment ^. PaymentDeletedAt)) + orderBy [desc (payment ^. PaymentCreation)] + limit . fromIntegral $ perPage + offset . fromIntegral $ (page - 1) * perPage return (payment, user) return (map getJsonPayment xs) |