mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-03-31 21:55:06 +00:00
Add ui-settings flag for side menus
This commit is contained in:
parent
83b41b027f
commit
183bcf5bec
@ -66,12 +66,19 @@ init key url flags_ settings =
|
|||||||
|
|
||||||
( csm, csc ) =
|
( csm, csc ) =
|
||||||
Page.CollectiveSettings.Data.init flags
|
Page.CollectiveSettings.Data.init flags
|
||||||
|
|
||||||
|
homeViewMode =
|
||||||
|
if settings.searchMenuVisible then
|
||||||
|
Page.Home.Data.SearchView
|
||||||
|
|
||||||
|
else
|
||||||
|
Page.Home.Data.SimpleView
|
||||||
in
|
in
|
||||||
( { flags = flags
|
( { flags = flags
|
||||||
, key = key
|
, key = key
|
||||||
, page = page
|
, page = page
|
||||||
, version = Api.Model.VersionInfo.empty
|
, version = Api.Model.VersionInfo.empty
|
||||||
, homeModel = Page.Home.Data.init flags
|
, homeModel = Page.Home.Data.init flags homeViewMode
|
||||||
, loginModel = Page.Login.Data.emptyModel
|
, loginModel = Page.Login.Data.emptyModel
|
||||||
, manageDataModel = mdm
|
, manageDataModel = mdm
|
||||||
, collSettingsModel = csm
|
, collSettingsModel = csm
|
||||||
|
@ -181,7 +181,8 @@ updateWithSub msg model =
|
|||||||
GetUiSettings settings ->
|
GetUiSettings settings ->
|
||||||
Util.Update.andThen2
|
Util.Update.andThen2
|
||||||
[ updateUserSettings Page.UserSettings.Data.UpdateSettings
|
[ updateUserSettings Page.UserSettings.Data.UpdateSettings
|
||||||
, updateHome Page.Home.Data.DoSearch
|
, updateHome Page.Home.Data.UiSettingsUpdated
|
||||||
|
, updateItemDetail Page.ItemDetail.Data.UiSettingsUpdated
|
||||||
]
|
]
|
||||||
{ model | uiSettings = settings }
|
{ model | uiSettings = settings }
|
||||||
|
|
||||||
|
@ -272,6 +272,7 @@ type Msg
|
|||||||
| UpdateThrottle
|
| UpdateThrottle
|
||||||
| KeyInputMsg Comp.KeyInput.Msg
|
| KeyInputMsg Comp.KeyInput.Msg
|
||||||
| ToggleAttachMenu
|
| ToggleAttachMenu
|
||||||
|
| UiSettingsUpdated
|
||||||
|
|
||||||
|
|
||||||
type SaveNameState
|
type SaveNameState
|
||||||
|
@ -1269,6 +1269,15 @@ update key flags inav settings msg model =
|
|||||||
ToggleAttachMenu ->
|
ToggleAttachMenu ->
|
||||||
noSub ( { model | attachMenuOpen = not model.attachMenuOpen }, Cmd.none )
|
noSub ( { model | attachMenuOpen = not model.attachMenuOpen }, Cmd.none )
|
||||||
|
|
||||||
|
UiSettingsUpdated ->
|
||||||
|
let
|
||||||
|
model_ =
|
||||||
|
{ model
|
||||||
|
| menuOpen = settings.editMenuVisible
|
||||||
|
}
|
||||||
|
in
|
||||||
|
noSub ( model_, Cmd.none )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--- Helper
|
--- Helper
|
||||||
|
@ -40,6 +40,8 @@ type alias Model =
|
|||||||
, searchMenuTagCatCountModel : Comp.IntField.Model
|
, searchMenuTagCatCountModel : Comp.IntField.Model
|
||||||
, formFields : List Field
|
, formFields : List Field
|
||||||
, itemDetailShortcuts : Bool
|
, itemDetailShortcuts : Bool
|
||||||
|
, searchMenuVisible : Bool
|
||||||
|
, editMenuVisible : Bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -89,6 +91,8 @@ init flags settings =
|
|||||||
"Number of categories in search menu"
|
"Number of categories in search menu"
|
||||||
, formFields = settings.formFields
|
, formFields = settings.formFields
|
||||||
, itemDetailShortcuts = settings.itemDetailShortcuts
|
, itemDetailShortcuts = settings.itemDetailShortcuts
|
||||||
|
, searchMenuVisible = settings.searchMenuVisible
|
||||||
|
, editMenuVisible = settings.editMenuVisible
|
||||||
}
|
}
|
||||||
, Api.getTags flags "" GetTagsResp
|
, Api.getTags flags "" GetTagsResp
|
||||||
)
|
)
|
||||||
@ -106,6 +110,8 @@ type Msg
|
|||||||
| SearchMenuTagCatMsg Comp.IntField.Msg
|
| SearchMenuTagCatMsg Comp.IntField.Msg
|
||||||
| FieldListMsg Comp.FieldListSelect.Msg
|
| FieldListMsg Comp.FieldListSelect.Msg
|
||||||
| ToggleItemDetailShortcuts
|
| ToggleItemDetailShortcuts
|
||||||
|
| ToggleSearchMenuVisible
|
||||||
|
| ToggleEditMenuVisible
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -273,6 +279,24 @@ update sett msg model =
|
|||||||
, Just { sett | itemDetailShortcuts = flag }
|
, Just { sett | itemDetailShortcuts = flag }
|
||||||
)
|
)
|
||||||
|
|
||||||
|
ToggleSearchMenuVisible ->
|
||||||
|
let
|
||||||
|
flag =
|
||||||
|
not model.searchMenuVisible
|
||||||
|
in
|
||||||
|
( { model | searchMenuVisible = flag }
|
||||||
|
, Just { sett | searchMenuVisible = flag }
|
||||||
|
)
|
||||||
|
|
||||||
|
ToggleEditMenuVisible ->
|
||||||
|
let
|
||||||
|
flag =
|
||||||
|
not model.editMenuVisible
|
||||||
|
in
|
||||||
|
( { model | editMenuVisible = flag }
|
||||||
|
, Just { sett | editMenuVisible = flag }
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--- View
|
--- View
|
||||||
@ -317,6 +341,19 @@ view flags _ model =
|
|||||||
)
|
)
|
||||||
, div [ class "ui dividing header" ]
|
, div [ class "ui dividing header" ]
|
||||||
[ text "Search Menu" ]
|
[ text "Search Menu" ]
|
||||||
|
, div [ class "field" ]
|
||||||
|
[ div [ class "ui checkbox" ]
|
||||||
|
[ input
|
||||||
|
[ type_ "checkbox"
|
||||||
|
, onCheck (\_ -> ToggleSearchMenuVisible)
|
||||||
|
, checked model.searchMenuVisible
|
||||||
|
]
|
||||||
|
[]
|
||||||
|
, label []
|
||||||
|
[ text "Show search side menu by default"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
, Html.map SearchMenuTagMsg
|
, Html.map SearchMenuTagMsg
|
||||||
(Comp.IntField.viewWithInfo
|
(Comp.IntField.viewWithInfo
|
||||||
"How many tags to display in search menu at once. Others can be expanded. Use 0 to always show all."
|
"How many tags to display in search menu at once. Others can be expanded. Use 0 to always show all."
|
||||||
@ -367,6 +404,19 @@ view flags _ model =
|
|||||||
]
|
]
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
, div [ class "field" ]
|
||||||
|
[ div [ class "ui checkbox" ]
|
||||||
|
[ input
|
||||||
|
[ type_ "checkbox"
|
||||||
|
, onCheck (\_ -> ToggleEditMenuVisible)
|
||||||
|
, checked model.editMenuVisible
|
||||||
|
]
|
||||||
|
[]
|
||||||
|
, label []
|
||||||
|
[ text "Show edit side menu by default"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
, div [ class "grouped fields" ]
|
, div [ class "grouped fields" ]
|
||||||
[ label [] [ text "Position of item notes" ]
|
[ label [] [ text "Position of item notes" ]
|
||||||
, div [ class "field" ]
|
, div [ class "field" ]
|
||||||
|
@ -41,6 +41,8 @@ type alias StoredUiSettings =
|
|||||||
, searchMenuTagCatCount : Maybe Int
|
, searchMenuTagCatCount : Maybe Int
|
||||||
, formFields : Maybe (List String)
|
, formFields : Maybe (List String)
|
||||||
, itemDetailShortcuts : Bool
|
, itemDetailShortcuts : Bool
|
||||||
|
, searchMenuVisible : Bool
|
||||||
|
, editMenuVisible : Bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -62,6 +64,8 @@ type alias UiSettings =
|
|||||||
, searchMenuTagCatCount : Int
|
, searchMenuTagCatCount : Int
|
||||||
, formFields : List Field
|
, formFields : List Field
|
||||||
, itemDetailShortcuts : Bool
|
, itemDetailShortcuts : Bool
|
||||||
|
, searchMenuVisible : Bool
|
||||||
|
, editMenuVisible : Bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -105,6 +109,8 @@ defaults =
|
|||||||
, searchMenuTagCatCount = 3
|
, searchMenuTagCatCount = 3
|
||||||
, formFields = Data.Fields.all
|
, formFields = Data.Fields.all
|
||||||
, itemDetailShortcuts = False
|
, itemDetailShortcuts = False
|
||||||
|
, searchMenuVisible = False
|
||||||
|
, editMenuVisible = False
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -138,6 +144,8 @@ merge given fallback =
|
|||||||
(Maybe.map Data.Fields.fromList given.formFields)
|
(Maybe.map Data.Fields.fromList given.formFields)
|
||||||
fallback.formFields
|
fallback.formFields
|
||||||
, itemDetailShortcuts = given.itemDetailShortcuts
|
, itemDetailShortcuts = given.itemDetailShortcuts
|
||||||
|
, searchMenuVisible = given.searchMenuVisible
|
||||||
|
, editMenuVisible = given.editMenuVisible
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -162,6 +170,8 @@ toStoredUiSettings settings =
|
|||||||
List.map Data.Fields.toString settings.formFields
|
List.map Data.Fields.toString settings.formFields
|
||||||
|> Just
|
|> Just
|
||||||
, itemDetailShortcuts = settings.itemDetailShortcuts
|
, itemDetailShortcuts = settings.itemDetailShortcuts
|
||||||
|
, searchMenuVisible = settings.searchMenuVisible
|
||||||
|
, editMenuVisible = settings.editMenuVisible
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -81,8 +81,8 @@ type ViewMode
|
|||||||
| SelectView SelectViewModel
|
| SelectView SelectViewModel
|
||||||
|
|
||||||
|
|
||||||
init : Flags -> Model
|
init : Flags -> ViewMode -> Model
|
||||||
init flags =
|
init flags viewMode =
|
||||||
let
|
let
|
||||||
searchTypeOptions =
|
searchTypeOptions =
|
||||||
if flags.config.fullTextSearchEnabled then
|
if flags.config.fullTextSearchEnabled then
|
||||||
@ -107,7 +107,7 @@ init flags =
|
|||||||
, dragDropData =
|
, dragDropData =
|
||||||
DD.DragDropData DD.init Nothing
|
DD.DragDropData DD.init Nothing
|
||||||
, scrollToCard = Nothing
|
, scrollToCard = Nothing
|
||||||
, viewMode = SimpleView
|
, viewMode = viewMode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -173,6 +173,7 @@ type Msg
|
|||||||
| MultiUpdateResp FormChange (Result Http.Error BasicResult)
|
| MultiUpdateResp FormChange (Result Http.Error BasicResult)
|
||||||
| ReplaceChangedItemsResp (Result Http.Error ItemLightList)
|
| ReplaceChangedItemsResp (Result Http.Error ItemLightList)
|
||||||
| DeleteAllResp (Result Http.Error BasicResult)
|
| DeleteAllResp (Result Http.Error BasicResult)
|
||||||
|
| UiSettingsUpdated
|
||||||
|
|
||||||
|
|
||||||
type SearchType
|
type SearchType
|
||||||
|
@ -495,6 +495,31 @@ update mId key flags settings msg model =
|
|||||||
ReplaceChangedItemsResp (Err _) ->
|
ReplaceChangedItemsResp (Err _) ->
|
||||||
noSub ( model, Cmd.none )
|
noSub ( model, Cmd.none )
|
||||||
|
|
||||||
|
UiSettingsUpdated ->
|
||||||
|
let
|
||||||
|
defaultViewMode =
|
||||||
|
if settings.searchMenuVisible then
|
||||||
|
SearchView
|
||||||
|
|
||||||
|
else
|
||||||
|
SimpleView
|
||||||
|
|
||||||
|
viewMode =
|
||||||
|
case model.viewMode of
|
||||||
|
SimpleView ->
|
||||||
|
defaultViewMode
|
||||||
|
|
||||||
|
SearchView ->
|
||||||
|
defaultViewMode
|
||||||
|
|
||||||
|
sv ->
|
||||||
|
sv
|
||||||
|
|
||||||
|
model_ =
|
||||||
|
{ model | viewMode = viewMode }
|
||||||
|
in
|
||||||
|
update mId key flags settings DoSearch model_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--- Helpers
|
--- Helpers
|
||||||
|
@ -23,3 +23,4 @@ type Msg
|
|||||||
| ItemDetailMsg Comp.ItemDetail.Model.Msg
|
| ItemDetailMsg Comp.ItemDetail.Model.Msg
|
||||||
| ItemResp (Result Http.Error ItemDetail)
|
| ItemResp (Result Http.Error ItemDetail)
|
||||||
| ScrollResult (Result Dom.Error ())
|
| ScrollResult (Result Dom.Error ())
|
||||||
|
| UiSettingsUpdated
|
||||||
|
@ -59,3 +59,10 @@ update key flags inav settings msg model =
|
|||||||
|
|
||||||
ScrollResult _ ->
|
ScrollResult _ ->
|
||||||
( model, Cmd.none, Sub.none )
|
( model, Cmd.none, Sub.none )
|
||||||
|
|
||||||
|
UiSettingsUpdated ->
|
||||||
|
let
|
||||||
|
lmsg =
|
||||||
|
ItemDetailMsg Comp.ItemDetail.Model.UiSettingsUpdated
|
||||||
|
in
|
||||||
|
update key flags inav settings lmsg model
|
||||||
|
Loading…
x
Reference in New Issue
Block a user