mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-04 14:15:59 +00:00
The user is required when searching because of folders (sadly), so the share is connected to the user.
101 lines
2.5 KiB
Elm
101 lines
2.5 KiB
Elm
{-
|
|
Copyright 2020 Eike K. & Contributors
|
|
|
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
|
-}
|
|
|
|
|
|
module Comp.ShareTable exposing
|
|
( Msg(..)
|
|
, SelectAction(..)
|
|
, update
|
|
, view
|
|
)
|
|
|
|
import Api.Model.ShareDetail exposing (ShareDetail)
|
|
import Comp.Basic as B
|
|
import Html exposing (..)
|
|
import Html.Attributes exposing (..)
|
|
import Messages.Comp.ShareTable exposing (Texts)
|
|
import Styles as S
|
|
import Util.Html
|
|
import Util.String
|
|
|
|
|
|
type Msg
|
|
= Select ShareDetail
|
|
|
|
|
|
type SelectAction
|
|
= Edit ShareDetail
|
|
|
|
|
|
update : Msg -> SelectAction
|
|
update msg =
|
|
case msg of
|
|
Select share ->
|
|
Edit share
|
|
|
|
|
|
|
|
--- View
|
|
|
|
|
|
view : Texts -> List ShareDetail -> Html Msg
|
|
view texts shares =
|
|
table [ class S.tableMain ]
|
|
[ thead []
|
|
[ tr []
|
|
[ th [ class "" ] []
|
|
, th [ class "text-left" ]
|
|
[ text texts.basics.id
|
|
]
|
|
, th [ class "text-left" ]
|
|
[ text texts.basics.name
|
|
]
|
|
, th [ class "text-center" ]
|
|
[ text texts.active
|
|
]
|
|
, th [ class "hidden sm:table-cell text-center" ]
|
|
[ text texts.user
|
|
]
|
|
, th [ class "hidden sm:table-cell text-center" ]
|
|
[ text texts.publishUntil
|
|
]
|
|
]
|
|
]
|
|
, tbody []
|
|
(List.map (renderShareLine texts) shares)
|
|
]
|
|
|
|
|
|
renderShareLine : Texts -> ShareDetail -> Html Msg
|
|
renderShareLine texts share =
|
|
tr
|
|
[ class S.tableRow
|
|
]
|
|
[ B.editLinkTableCell texts.basics.edit (Select share)
|
|
, td [ class "text-left py-4 md:py-2" ]
|
|
[ text (Util.String.ellipsis 8 share.id)
|
|
]
|
|
, td [ class "text-left py-4 md:py-2" ]
|
|
[ text (Maybe.withDefault "-" share.name)
|
|
]
|
|
, td [ class "w-px px-2 text-center" ]
|
|
[ if not share.enabled then
|
|
i [ class "fa fa-ban" ] []
|
|
|
|
else if share.expired then
|
|
i [ class "fa fa-bolt text-red-600 dark:text-orange-800" ] []
|
|
|
|
else
|
|
i [ class "fa fa-check" ] []
|
|
]
|
|
, td [ class "hidden sm:table-cell text-center" ]
|
|
[ text share.owner.name
|
|
]
|
|
, td [ class "hidden sm:table-cell text-center" ]
|
|
[ texts.formatDateTime share.publishUntil |> text
|
|
]
|
|
]
|