Merge pull request #954 from eikek/fix/920-delete-item

Remove a deleted item from search results
This commit is contained in:
mergify[bot] 2021-07-25 15:46:08 +00:00 committed by GitHub
commit 90f19aec43
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 61 additions and 17 deletions

View File

@ -331,10 +331,18 @@ updateItemDetail lmsg model =
( hm, hc, hs ) =
updateHome (Page.Home.Data.SetLinkTarget result.linkTarget) model_
( hm1, hc1, hs1 ) =
case result.removedItem of
Just removedId ->
updateHome (Page.Home.Data.RemoveItem removedId) hm
Nothing ->
( hm, hc, hs )
in
( hm
, Cmd.batch [ Cmd.map ItemDetailMsg result.cmd, hc ]
, Sub.batch [ Sub.map ItemDetailMsg result.sub, hs ]
( hm1
, Cmd.batch [ Cmd.map ItemDetailMsg result.cmd, hc, hc1 ]
, Sub.batch [ Sub.map ItemDetailMsg result.sub, hs, hs1 ]
)

View File

@ -46,6 +46,7 @@ type Msg
= SetResults ItemLightList
| AddResults ItemLightList
| ItemCardMsg ItemLight Comp.ItemCard.Msg
| RemoveItem String
init : Model
@ -145,6 +146,13 @@ updateDrag dm _ msg model =
result.selection
result.linkTarget
RemoveItem id ->
UpdateResult { model | results = removeItemById id model.results }
Cmd.none
dm
Data.ItemSelection.Inactive
Comp.LinkTarget.LinkNone
--- View2
@ -232,3 +240,15 @@ isMultiSelectMode cfg =
Data.ItemSelection.Inactive ->
False
removeItemById : String -> ItemLightList -> ItemLightList
removeItemById id list =
let
filterItem item =
item.id /= id
filterGroup group =
{ group | items = List.filter filterItem group.items }
in
{ list | groups = List.map filterGroup list.groups }

View File

@ -276,7 +276,7 @@ type Msg
| ItemModalCancelled
| RequestDelete
| SaveResp (Result Http.Error BasicResult)
| DeleteResp (Result Http.Error BasicResult)
| DeleteResp String (Result Http.Error BasicResult)
| GetItemResp (Result Http.Error ItemDetail)
| GetProposalResp (Result Http.Error ItemProposals)
| RemoveDueDate
@ -352,22 +352,23 @@ type alias UpdateResult =
, cmd : Cmd Msg
, sub : Sub Msg
, linkTarget : LinkTarget
, removedItem : Maybe String
}
resultModel : Model -> UpdateResult
resultModel model =
UpdateResult model Cmd.none Sub.none Comp.LinkTarget.LinkNone
UpdateResult model Cmd.none Sub.none Comp.LinkTarget.LinkNone Nothing
resultModelCmd : ( Model, Cmd Msg ) -> UpdateResult
resultModelCmd ( model, cmd ) =
UpdateResult model cmd Sub.none Comp.LinkTarget.LinkNone
UpdateResult model cmd Sub.none Comp.LinkTarget.LinkNone Nothing
resultModelCmdSub : ( Model, Cmd Msg, Sub Msg ) -> UpdateResult
resultModelCmdSub ( model, cmd, sub ) =
UpdateResult model cmd sub Comp.LinkTarget.LinkNone
UpdateResult model cmd sub Comp.LinkTarget.LinkNone Nothing
personMatchesOrg : Model -> Bool

View File

@ -279,6 +279,7 @@ update key flags inav settings msg model =
, res9.sub
]
, linkTarget = Comp.LinkTarget.LinkNone
, removedItem = Nothing
}
SetActiveAttachment pos ->
@ -560,7 +561,7 @@ update key flags inav settings msg model =
DeleteItemConfirmed ->
let
cmd =
Api.deleteItem flags model.item.id DeleteResp
Api.deleteItem flags model.item.id (DeleteResp model.item.id)
in
resultModelCmd ( { model | itemModal = Nothing }, cmd )
@ -677,6 +678,7 @@ update key flags inav settings msg model =
, cmd = Cmd.batch [ res1.cmd, res2.cmd ]
, sub = Sub.batch [ res1.sub, res2.sub ]
, linkTarget = Comp.LinkTarget.LinkNone
, removedItem = Nothing
}
GetPersonResp (Err _) ->
@ -720,19 +722,23 @@ update key flags inav settings msg model =
SaveNameResp (Err _) ->
resultModel { model | nameState = SaveFailed }
DeleteResp (Ok res) ->
DeleteResp removedId (Ok res) ->
if res.success then
case inav.next of
Just id ->
resultModelCmd ( model, Page.set key (ItemDetailPage id) )
let
result_ =
case inav.next of
Just id ->
resultModelCmd ( model, Page.set key (ItemDetailPage id) )
Nothing ->
resultModelCmd ( model, Page.set key HomePage )
Nothing ->
resultModelCmd ( model, Page.set key HomePage )
in
{ result_ | removedItem = Just removedId }
else
resultModel model
DeleteResp (Err _) ->
DeleteResp _ (Err _) ->
resultModel model
GetItemResp (Ok item) ->
@ -1421,6 +1427,7 @@ update key flags inav settings msg model =
, cmd = Cmd.none
, sub = Sub.none
, linkTarget = lt
, removedItem = Nothing
}
CustomFieldMsg lm ->
@ -1747,6 +1754,7 @@ withSub ( m, c ) =
m.customFieldThrottle
]
, linkTarget = Comp.LinkTarget.LinkNone
, removedItem = Nothing
}

View File

@ -201,6 +201,7 @@ type Msg
| RequestReprocessSelected
| ReprocessSelectedConfirmed
| ClientSettingsSaveResp UiSettings (Result Http.Error BasicResult)
| RemoveItem String
type SearchType

View File

@ -652,6 +652,9 @@ update mId key flags settings msg model =
KeyUpPowerSearchbarMsg _ ->
withSub ( model, Cmd.none )
RemoveItem id ->
update mId key flags settings (ItemCardListMsg (Comp.ItemCardList.RemoveItem id)) model
--- Helpers

View File

@ -44,4 +44,5 @@ type alias UpdateResult =
, cmd : Cmd Msg
, sub : Sub Msg
, linkTarget : LinkTarget
, removedItem : Maybe String
}

View File

@ -46,6 +46,7 @@ update key flags inav settings msg model =
]
, sub = Sub.map ItemDetailMsg result.sub
, linkTarget = result.linkTarget
, removedItem = result.removedItem
}
ItemDetailMsg lmsg ->
@ -65,6 +66,7 @@ update key flags inav settings msg model =
, cmd = Cmd.batch [ pageSwitch, Cmd.map ItemDetailMsg result.cmd ]
, sub = Sub.map ItemDetailMsg result.sub
, linkTarget = result.linkTarget
, removedItem = result.removedItem
}
ItemResp (Ok item) ->
@ -75,10 +77,10 @@ update key flags inav settings msg model =
update key flags inav settings (ItemDetailMsg lmsg) model
ItemResp (Err _) ->
UpdateResult model Cmd.none Sub.none Comp.LinkTarget.LinkNone
UpdateResult model Cmd.none Sub.none Comp.LinkTarget.LinkNone Nothing
ScrollResult _ ->
UpdateResult model Cmd.none Sub.none Comp.LinkTarget.LinkNone
UpdateResult model Cmd.none Sub.none Comp.LinkTarget.LinkNone Nothing
UiSettingsUpdated ->
let