aboutsummaryrefslogtreecommitdiff
path: root/src/client/elm/LoggedIn/View/Paging.elm
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/elm/LoggedIn/View/Paging.elm')
-rw-r--r--src/client/elm/LoggedIn/View/Paging.elm100
1 files changed, 0 insertions, 100 deletions
diff --git a/src/client/elm/LoggedIn/View/Paging.elm b/src/client/elm/LoggedIn/View/Paging.elm
deleted file mode 100644
index 0a149e9..0000000
--- a/src/client/elm/LoggedIn/View/Paging.elm
+++ /dev/null
@@ -1,100 +0,0 @@
-module LoggedIn.View.Paging
- ( paymentsPaging
- ) where
-
-import Signal exposing (Address)
-
-import Html exposing (..)
-import Html.Attributes exposing (..)
-import Html.Events exposing (..)
-
-import LoggedIn.Action as LoggedInAction
-import LoggedIn.Model as LoggedInModel
-
-import Action exposing (..)
-import Model.Payment exposing (perPage)
-
-import View.Icon exposing (renderIcon)
-
-showedPages : Int
-showedPages = 5
-
-paymentsPaging : Address Action -> LoggedInModel.Model -> Html
-paymentsPaging address loggedInModel =
- let maxPage = ceiling (toFloat loggedInModel.paymentsCount / toFloat perPage)
- pages = truncatePages loggedInModel.currentPage [1..maxPage]
- in if maxPage == 1
- then
- text ""
- else
- div
- [ class "pages" ]
- ( ( if loggedInModel.currentPage > 1
- then [ firstPage address, previousPage address loggedInModel ]
- else []
- )
- ++ ( List.map (paymentsPage address loggedInModel) pages)
- ++ ( if loggedInModel.currentPage < maxPage
- then [ nextPage address loggedInModel, lastPage address maxPage ]
- else []
- )
- )
-
-truncatePages : Int -> List Int -> List Int
-truncatePages currentPage pages =
- let totalPages = List.length pages
- showedLeftPages = ceiling ((toFloat showedPages - 1) / 2)
- showedRightPages = floor ((toFloat showedPages - 1) / 2)
- truncatedPages =
- if currentPage < showedLeftPages then
- [1..showedPages]
- else if currentPage > totalPages - showedRightPages then
- [(totalPages - showedPages)..totalPages]
- else
- [(currentPage - showedLeftPages)..(currentPage + showedRightPages)]
- in List.filter (flip List.member pages) truncatedPages
-
-firstPage : Address Action -> Html
-firstPage address =
- button
- [ class "page"
- , onClick address (UpdateLoggedIn (LoggedInAction.UpdatePage 1))
- ]
- [ renderIcon "fast-backward" ]
-
-previousPage : Address Action -> LoggedInModel.Model -> Html
-previousPage address loggedInModel =
- button
- [ class "page"
- , onClick address (UpdateLoggedIn (LoggedInAction.UpdatePage (loggedInModel.currentPage - 1)))
- ]
- [ renderIcon "backward" ]
-
-nextPage : Address Action -> LoggedInModel.Model -> Html
-nextPage address loggedInModel =
- button
- [ class "page"
- , onClick address (UpdateLoggedIn (LoggedInAction.UpdatePage (loggedInModel.currentPage + 1)))
- ]
- [ renderIcon "forward" ]
-
-lastPage : Address Action -> Int -> Html
-lastPage address maxPage =
- button
- [ class "page"
- , onClick address (UpdateLoggedIn (LoggedInAction.UpdatePage maxPage))
- ]
- [ renderIcon "fast-forward" ]
-
-paymentsPage : Address Action -> LoggedInModel.Model -> Int -> Html
-paymentsPage address loggedInModel page =
- let onCurrentPage = page == loggedInModel.currentPage
- in button
- [ classList
- [ ("page", True)
- , ("current", onCurrentPage)
- ]
- , onClick address <|
- if onCurrentPage then Action.NoOp else UpdateLoggedIn (LoggedInAction.UpdatePage page)
- ]
- [ text (toString page) ]