First version of new ui based on tailwind

This drops fomantic-ui as css toolkit and introduces tailwindcss. With
tailwind there are no predefined components, but it's very easy to
create those. So customizing the look&feel is much simpler, most of
the time no additional css is needed.

This requires a complete rewrite of the markup + styles. Luckily all
logic can be kept as is. The now old ui is not removed, it is still
available by using a request header `Docspell-Ui` with a value of `1`
for the old ui and `2` for the new ui.

Another addition is "dev mode", where docspell serves assets with a
no-cache header, to disable browser caching. This makes developing a
lot easier.
This commit is contained in:
Eike Kettner
2021-01-29 20:48:27 +01:00
parent 442b76c5af
commit dd935454c9
140 changed files with 15077 additions and 214 deletions

View File

@@ -1,4 +1,9 @@
module Util.CustomField exposing (nameOrLabel, renderValue, renderValue1)
module Util.CustomField exposing
( nameOrLabel
, renderValue
, renderValue1
, renderValue2
)
import Api.Model.ItemFieldValue exposing (ItemFieldValue)
import Data.CustomFieldType
@@ -52,3 +57,41 @@ renderValue1 classes tagger cv =
text cv.value
]
]
renderValue2 : List ( String, Bool ) -> Maybe msg -> ItemFieldValue -> Html msg
renderValue2 classes tagger cv =
let
renderBool =
if cv.value == "true" then
i [ class "fa fa-check" ] []
else
i [ class "fa fa-minus" ] []
el : List (Html msg) -> Html msg
el =
case tagger of
Just t ->
a
[ classList classes
, onClick t
, href "#"
]
Nothing ->
div [ classList classes ]
in
el
[ Icons.customFieldTypeIconString2 "" cv.ftype
, span [ class "ml-1 mr-2" ]
[ nameOrLabel cv |> text
]
, div [ class "detail" ]
[ if Data.CustomFieldType.fromString cv.ftype == Just Data.CustomFieldType.Boolean then
renderBool
else
text cv.value
]
]