mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-22 02:18:26 +00:00
Apply tag colors from settings
This commit is contained in:
@ -27,13 +27,12 @@ type alias Model =
|
||||
, searchOffset : Int
|
||||
, moreAvailable : Bool
|
||||
, moreInProgress : Bool
|
||||
, uiSettings : UiSettings
|
||||
}
|
||||
|
||||
|
||||
init : Flags -> Model
|
||||
init _ =
|
||||
{ searchMenuModel = Comp.SearchMenu.emptyModel
|
||||
{ searchMenuModel = Comp.SearchMenu.init
|
||||
, itemListModel = Comp.ItemCardList.init
|
||||
, searchInProgress = False
|
||||
, viewMode = Listing
|
||||
@ -41,7 +40,6 @@ init _ =
|
||||
, searchOffset = 0
|
||||
, moreAvailable = True
|
||||
, moreInProgress = False
|
||||
, uiSettings = Data.UiSettings.defaults
|
||||
}
|
||||
|
||||
|
||||
@ -55,7 +53,6 @@ type Msg
|
||||
| DoSearch
|
||||
| ToggleSearchMenu
|
||||
| LoadMore
|
||||
| GetUiSettings UiSettings
|
||||
|
||||
|
||||
type ViewMode
|
||||
@ -77,15 +74,15 @@ itemNav id model =
|
||||
}
|
||||
|
||||
|
||||
doSearchCmd : Flags -> Int -> Model -> Cmd Msg
|
||||
doSearchCmd flags offset model =
|
||||
doSearchCmd : Flags -> UiSettings -> Int -> Model -> Cmd Msg
|
||||
doSearchCmd flags settings offset model =
|
||||
let
|
||||
smask =
|
||||
Comp.SearchMenu.getItemSearch model.searchMenuModel
|
||||
|
||||
mask =
|
||||
{ smask
|
||||
| limit = model.uiSettings.itemSearchPageSize
|
||||
| limit = settings.itemSearchPageSize
|
||||
, offset = offset
|
||||
}
|
||||
in
|
||||
@ -96,10 +93,10 @@ doSearchCmd flags offset model =
|
||||
Api.itemSearch flags mask ItemSearchAddResp
|
||||
|
||||
|
||||
resultsBelowLimit : Model -> Bool
|
||||
resultsBelowLimit model =
|
||||
resultsBelowLimit : UiSettings -> Model -> Bool
|
||||
resultsBelowLimit settings model =
|
||||
let
|
||||
len =
|
||||
Data.Items.length model.itemListModel.results
|
||||
in
|
||||
len < model.uiSettings.itemSearchPageSize
|
||||
len < settings.itemSearchPageSize
|
||||
|
@ -4,17 +4,18 @@ import Browser.Navigation as Nav
|
||||
import Comp.ItemCardList
|
||||
import Comp.SearchMenu
|
||||
import Data.Flags exposing (Flags)
|
||||
import Data.UiSettings exposing (UiSettings)
|
||||
import Page exposing (Page(..))
|
||||
import Page.Home.Data exposing (..)
|
||||
import Util.Update
|
||||
|
||||
|
||||
update : Nav.Key -> Flags -> Msg -> Model -> ( Model, Cmd Msg )
|
||||
update key flags msg model =
|
||||
update : Nav.Key -> Flags -> UiSettings -> Msg -> Model -> ( Model, Cmd Msg )
|
||||
update key flags settings msg model =
|
||||
case msg of
|
||||
Init ->
|
||||
Util.Update.andThen1
|
||||
[ update key flags (SearchMenuMsg Comp.SearchMenu.Init)
|
||||
[ update key flags settings (SearchMenuMsg Comp.SearchMenu.Init)
|
||||
]
|
||||
model
|
||||
|
||||
@ -23,19 +24,19 @@ update key flags msg model =
|
||||
nm =
|
||||
{ model | searchOffset = 0 }
|
||||
in
|
||||
update key flags (SearchMenuMsg Comp.SearchMenu.ResetForm) nm
|
||||
update key flags settings (SearchMenuMsg Comp.SearchMenu.ResetForm) nm
|
||||
|
||||
SearchMenuMsg m ->
|
||||
let
|
||||
nextState =
|
||||
Comp.SearchMenu.update flags m model.searchMenuModel
|
||||
Comp.SearchMenu.update flags settings m model.searchMenuModel
|
||||
|
||||
newModel =
|
||||
{ model | searchMenuModel = Tuple.first nextState.modelCmd }
|
||||
|
||||
( m2, c2 ) =
|
||||
if nextState.stateChange then
|
||||
doSearch flags newModel
|
||||
doSearch flags settings newModel
|
||||
|
||||
else
|
||||
( newModel, Cmd.none )
|
||||
@ -62,7 +63,7 @@ update key flags msg model =
|
||||
ItemSearchResp (Ok list) ->
|
||||
let
|
||||
noff =
|
||||
model.uiSettings.itemSearchPageSize
|
||||
settings.itemSearchPageSize
|
||||
|
||||
m =
|
||||
{ model
|
||||
@ -72,12 +73,12 @@ update key flags msg model =
|
||||
, moreAvailable = list.groups /= []
|
||||
}
|
||||
in
|
||||
update key flags (ItemCardListMsg (Comp.ItemCardList.SetResults list)) m
|
||||
update key flags settings (ItemCardListMsg (Comp.ItemCardList.SetResults list)) m
|
||||
|
||||
ItemSearchAddResp (Ok list) ->
|
||||
let
|
||||
noff =
|
||||
model.searchOffset + model.uiSettings.itemSearchPageSize
|
||||
model.searchOffset + settings.itemSearchPageSize
|
||||
|
||||
m =
|
||||
{ model
|
||||
@ -88,7 +89,7 @@ update key flags msg model =
|
||||
, moreAvailable = list.groups /= []
|
||||
}
|
||||
in
|
||||
update key flags (ItemCardListMsg (Comp.ItemCardList.AddResults list)) m
|
||||
update key flags settings (ItemCardListMsg (Comp.ItemCardList.AddResults list)) m
|
||||
|
||||
ItemSearchAddResp (Err _) ->
|
||||
( { model
|
||||
@ -109,7 +110,7 @@ update key flags msg model =
|
||||
nm =
|
||||
{ model | searchOffset = 0 }
|
||||
in
|
||||
doSearch flags nm
|
||||
doSearch flags settings nm
|
||||
|
||||
ToggleSearchMenu ->
|
||||
( { model | menuCollapsed = not model.menuCollapsed }
|
||||
@ -118,24 +119,17 @@ update key flags msg model =
|
||||
|
||||
LoadMore ->
|
||||
if model.moreAvailable then
|
||||
doSearchMore flags model
|
||||
doSearchMore flags settings model
|
||||
|
||||
else
|
||||
( model, Cmd.none )
|
||||
|
||||
GetUiSettings settings ->
|
||||
let
|
||||
m_ =
|
||||
{ model | uiSettings = settings }
|
||||
in
|
||||
doSearch flags m_
|
||||
|
||||
|
||||
doSearch : Flags -> Model -> ( Model, Cmd Msg )
|
||||
doSearch flags model =
|
||||
doSearch : Flags -> UiSettings -> Model -> ( Model, Cmd Msg )
|
||||
doSearch flags settings model =
|
||||
let
|
||||
cmd =
|
||||
doSearchCmd flags 0 model
|
||||
doSearchCmd flags settings 0 model
|
||||
in
|
||||
( { model
|
||||
| searchInProgress = True
|
||||
@ -146,11 +140,11 @@ doSearch flags model =
|
||||
)
|
||||
|
||||
|
||||
doSearchMore : Flags -> Model -> ( Model, Cmd Msg )
|
||||
doSearchMore flags model =
|
||||
doSearchMore : Flags -> UiSettings -> Model -> ( Model, Cmd Msg )
|
||||
doSearchMore flags settings model =
|
||||
let
|
||||
cmd =
|
||||
doSearchCmd flags model.searchOffset model
|
||||
doSearchCmd flags settings model.searchOffset model
|
||||
in
|
||||
( { model | moreInProgress = True, viewMode = Listing }
|
||||
, cmd
|
||||
|
@ -2,6 +2,7 @@ module Page.Home.View exposing (view)
|
||||
|
||||
import Comp.ItemCardList
|
||||
import Comp.SearchMenu
|
||||
import Data.UiSettings exposing (UiSettings)
|
||||
import Html exposing (..)
|
||||
import Html.Attributes exposing (..)
|
||||
import Html.Events exposing (onClick)
|
||||
@ -9,8 +10,8 @@ import Page exposing (Page(..))
|
||||
import Page.Home.Data exposing (..)
|
||||
|
||||
|
||||
view : Model -> Html Msg
|
||||
view model =
|
||||
view : UiSettings -> Model -> Html Msg
|
||||
view settings model =
|
||||
div [ class "home-page ui padded grid" ]
|
||||
[ div
|
||||
[ classList
|
||||
@ -52,7 +53,7 @@ view model =
|
||||
]
|
||||
]
|
||||
, div [ class "ui attached fluid segment" ]
|
||||
[ Html.map SearchMenuMsg (Comp.SearchMenu.view model.searchMenuModel)
|
||||
[ Html.map SearchMenuMsg (Comp.SearchMenu.view settings model.searchMenuModel)
|
||||
]
|
||||
]
|
||||
, div
|
||||
@ -86,7 +87,7 @@ view model =
|
||||
|
||||
else
|
||||
Html.map ItemCardListMsg
|
||||
(Comp.ItemCardList.view model.itemListModel)
|
||||
(Comp.ItemCardList.view settings model.itemListModel)
|
||||
|
||||
Detail ->
|
||||
div [] []
|
||||
@ -101,7 +102,7 @@ view model =
|
||||
[ classList
|
||||
[ ( "ui basic tiny button", True )
|
||||
, ( "disabled", not model.moreAvailable )
|
||||
, ( "hidden invisible", resultsBelowLimit model )
|
||||
, ( "hidden invisible", resultsBelowLimit settings model )
|
||||
]
|
||||
, disabled (not model.moreAvailable || model.moreInProgress || model.searchInProgress)
|
||||
, title "Load more items"
|
||||
|
Reference in New Issue
Block a user