mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-06 07:05:59 +00:00
Store tag category colors in ui settings
This commit is contained in:
parent
f4e37b512f
commit
1cd65b7b7c
@ -139,6 +139,7 @@ view data opts model =
|
|||||||
[ i [ class "add icon" ] []
|
[ i [ class "add icon" ] []
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
, renderFormData opts data
|
||||||
, span
|
, span
|
||||||
[ classList
|
[ classList
|
||||||
[ ( "small-info", True )
|
[ ( "small-info", True )
|
||||||
@ -148,7 +149,6 @@ view data opts model =
|
|||||||
[ Maybe.withDefault "" opts.description
|
[ Maybe.withDefault "" opts.description
|
||||||
|> text
|
|> text
|
||||||
]
|
]
|
||||||
, renderFormData opts data
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,7 +25,6 @@ type alias Model =
|
|||||||
, input : StoredUiSettings
|
, input : StoredUiSettings
|
||||||
, searchPageSizeModel : Comp.IntField.Model
|
, searchPageSizeModel : Comp.IntField.Model
|
||||||
, tagColorModel : Comp.MappingForm.Model
|
, tagColorModel : Comp.MappingForm.Model
|
||||||
, tagColors : Dict String String
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -38,12 +37,11 @@ init flags defaults =
|
|||||||
(Just 10)
|
(Just 10)
|
||||||
(Just 500)
|
(Just 500)
|
||||||
False
|
False
|
||||||
"Item search page"
|
"Page size"
|
||||||
, tagColorModel =
|
, tagColorModel =
|
||||||
Comp.MappingForm.init
|
Comp.MappingForm.init
|
||||||
[]
|
[]
|
||||||
Data.Color.allString
|
Data.Color.allString
|
||||||
, tagColors = Dict.empty
|
|
||||||
}
|
}
|
||||||
, Api.getTags flags "" GetTagsResp
|
, Api.getTags flags "" GetTagsResp
|
||||||
)
|
)
|
||||||
@ -92,12 +90,23 @@ update msg model =
|
|||||||
let
|
let
|
||||||
( m_, d_ ) =
|
( m_, d_ ) =
|
||||||
Comp.MappingForm.update lm model.tagColorModel
|
Comp.MappingForm.update lm model.tagColorModel
|
||||||
|
|
||||||
|
newData =
|
||||||
|
case d_ of
|
||||||
|
Just data ->
|
||||||
|
Dict.toList data
|
||||||
|
|
||||||
|
Nothing ->
|
||||||
|
model.input.tagCategoryColors
|
||||||
|
|
||||||
|
model_ =
|
||||||
|
{ model
|
||||||
|
| tagColorModel = m_
|
||||||
|
, input = changeInput (\s -> { s | tagCategoryColors = newData }) model
|
||||||
|
}
|
||||||
in
|
in
|
||||||
( { model
|
( model_
|
||||||
| tagColorModel = m_
|
, Maybe.map (\_ -> getSettings model_) d_
|
||||||
, tagColors = Maybe.withDefault model.tagColors d_
|
|
||||||
}
|
|
||||||
, Nothing
|
|
||||||
)
|
)
|
||||||
|
|
||||||
GetTagsResp (Ok tl) ->
|
GetTagsResp (Ok tl) ->
|
||||||
@ -111,7 +120,6 @@ update msg model =
|
|||||||
Comp.MappingForm.init
|
Comp.MappingForm.init
|
||||||
categories
|
categories
|
||||||
Data.Color.allString
|
Data.Color.allString
|
||||||
, tagColors = Dict.empty
|
|
||||||
}
|
}
|
||||||
, Nothing
|
, Nothing
|
||||||
)
|
)
|
||||||
@ -138,16 +146,22 @@ tagColorViewOpts =
|
|||||||
view : Model -> Html Msg
|
view : Model -> Html Msg
|
||||||
view model =
|
view model =
|
||||||
div [ class "ui form" ]
|
div [ class "ui form" ]
|
||||||
[ Html.map SearchPageSizeMsg
|
[ div [ class "ui dividing header" ]
|
||||||
|
[ text "Item Search"
|
||||||
|
]
|
||||||
|
, Html.map SearchPageSizeMsg
|
||||||
(Comp.IntField.viewWithInfo
|
(Comp.IntField.viewWithInfo
|
||||||
"Maximum results in one page when searching items."
|
"Maximum results in one page when searching items."
|
||||||
model.input.itemSearchPageSize
|
model.input.itemSearchPageSize
|
||||||
"field"
|
"field"
|
||||||
model.searchPageSizeModel
|
model.searchPageSizeModel
|
||||||
)
|
)
|
||||||
|
, div [ class "ui dividing header" ]
|
||||||
|
[ text "Tag Category Colors"
|
||||||
|
]
|
||||||
, Html.map TagColorMsg
|
, Html.map TagColorMsg
|
||||||
(Comp.MappingForm.view
|
(Comp.MappingForm.view
|
||||||
model.tagColors
|
(Dict.fromList model.input.tagCategoryColors)
|
||||||
tagColorViewOpts
|
tagColorViewOpts
|
||||||
model.tagColorModel
|
model.tagColorModel
|
||||||
)
|
)
|
||||||
|
@ -58,7 +58,12 @@ update flags msg model =
|
|||||||
( { model
|
( { model
|
||||||
| formModel = m_
|
| formModel = m_
|
||||||
, settings = sett
|
, settings = sett
|
||||||
, message = Nothing
|
, message =
|
||||||
|
if sett /= Nothing then
|
||||||
|
Nothing
|
||||||
|
|
||||||
|
else
|
||||||
|
model.message
|
||||||
}
|
}
|
||||||
, Cmd.none
|
, Cmd.none
|
||||||
, Sub.none
|
, Sub.none
|
||||||
|
@ -7,6 +7,9 @@ module Data.UiSettings exposing
|
|||||||
, toStoredUiSettings
|
, toStoredUiSettings
|
||||||
)
|
)
|
||||||
|
|
||||||
|
import Dict exposing (Dict)
|
||||||
|
|
||||||
|
|
||||||
{-| Settings for the web ui. All fields should be optional, since it
|
{-| Settings for the web ui. All fields should be optional, since it
|
||||||
is loaded from local storage.
|
is loaded from local storage.
|
||||||
|
|
||||||
@ -15,10 +18,9 @@ versions. Also if a user is logged out, an empty object is send to
|
|||||||
force default settings.
|
force default settings.
|
||||||
|
|
||||||
-}
|
-}
|
||||||
|
|
||||||
|
|
||||||
type alias StoredUiSettings =
|
type alias StoredUiSettings =
|
||||||
{ itemSearchPageSize : Maybe Int
|
{ itemSearchPageSize : Maybe Int
|
||||||
|
, tagCategoryColors : List ( String, String )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -31,12 +33,14 @@ default value, converting the StoredUiSettings into a UiSettings.
|
|||||||
-}
|
-}
|
||||||
type alias UiSettings =
|
type alias UiSettings =
|
||||||
{ itemSearchPageSize : Int
|
{ itemSearchPageSize : Int
|
||||||
|
, tagCategoryColors : Dict String String
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
defaults : UiSettings
|
defaults : UiSettings
|
||||||
defaults =
|
defaults =
|
||||||
{ itemSearchPageSize = 60
|
{ itemSearchPageSize = 60
|
||||||
|
, tagCategoryColors = Dict.empty
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -44,6 +48,9 @@ merge : StoredUiSettings -> UiSettings -> UiSettings
|
|||||||
merge given fallback =
|
merge given fallback =
|
||||||
{ itemSearchPageSize =
|
{ itemSearchPageSize =
|
||||||
choose given.itemSearchPageSize fallback.itemSearchPageSize
|
choose given.itemSearchPageSize fallback.itemSearchPageSize
|
||||||
|
, tagCategoryColors =
|
||||||
|
Dict.union (Dict.fromList given.tagCategoryColors)
|
||||||
|
fallback.tagCategoryColors
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -55,6 +62,7 @@ mergeDefaults given =
|
|||||||
toStoredUiSettings : UiSettings -> StoredUiSettings
|
toStoredUiSettings : UiSettings -> StoredUiSettings
|
||||||
toStoredUiSettings settings =
|
toStoredUiSettings settings =
|
||||||
{ itemSearchPageSize = Just settings.itemSearchPageSize
|
{ itemSearchPageSize = Just settings.itemSearchPageSize
|
||||||
|
, tagCategoryColors = Dict.toList settings.tagCategoryColors
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -32,13 +32,13 @@ port setAllProgress : ( String, Int ) -> Cmd msg
|
|||||||
port scrollToElem : String -> Cmd msg
|
port scrollToElem : String -> Cmd msg
|
||||||
|
|
||||||
|
|
||||||
port saveUiSettings : ( AuthResult, UiSettings ) -> Cmd msg
|
port saveUiSettings : ( AuthResult, StoredUiSettings ) -> Cmd msg
|
||||||
|
|
||||||
|
|
||||||
port receiveUiSettings : (StoredUiSettings -> msg) -> Sub msg
|
port receiveUiSettings : (StoredUiSettings -> msg) -> Sub msg
|
||||||
|
|
||||||
|
|
||||||
port requestUiSettings : ( AuthResult, UiSettings ) -> Cmd msg
|
port requestUiSettings : ( AuthResult, StoredUiSettings ) -> Cmd msg
|
||||||
|
|
||||||
|
|
||||||
port uiSettingsSaved : (() -> msg) -> Sub msg
|
port uiSettingsSaved : (() -> msg) -> Sub msg
|
||||||
@ -53,7 +53,10 @@ storeUiSettings : Flags -> UiSettings -> Cmd msg
|
|||||||
storeUiSettings flags settings =
|
storeUiSettings flags settings =
|
||||||
case flags.account of
|
case flags.account of
|
||||||
Just ar ->
|
Just ar ->
|
||||||
saveUiSettings ( ar, settings )
|
saveUiSettings
|
||||||
|
( ar
|
||||||
|
, Data.UiSettings.toStoredUiSettings settings
|
||||||
|
)
|
||||||
|
|
||||||
Nothing ->
|
Nothing ->
|
||||||
Cmd.none
|
Cmd.none
|
||||||
@ -68,7 +71,10 @@ getUiSettings : Flags -> Cmd msg
|
|||||||
getUiSettings flags =
|
getUiSettings flags =
|
||||||
case flags.account of
|
case flags.account of
|
||||||
Just ar ->
|
Just ar ->
|
||||||
requestUiSettings ( ar, Data.UiSettings.defaults )
|
requestUiSettings
|
||||||
|
( ar
|
||||||
|
, Data.UiSettings.toStoredUiSettings Data.UiSettings.defaults
|
||||||
|
)
|
||||||
|
|
||||||
Nothing ->
|
Nothing ->
|
||||||
Cmd.none
|
Cmd.none
|
||||||
|
@ -153,7 +153,7 @@ label span.muted {
|
|||||||
margin-left: 0.5em;
|
margin-left: 0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ui.search.dropdown.open {
|
.ui.search.dropdown.open, .ui.selection.dropdown.open {
|
||||||
z-index: 20;
|
z-index: 20;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user