Allow to confirm/unconfirm multiple items

This commit is contained in:
Eike Kettner
2020-10-29 23:15:38 +01:00
parent ab50792879
commit 6a16d8afc7
3 changed files with 62 additions and 1 deletions

View File

@ -10,6 +10,7 @@ module Api exposing
, changeFolderName , changeFolderName
, changePassword , changePassword
, checkCalEvent , checkCalEvent
, confirmMultiple
, createImapSettings , createImapSettings
, createMailSettings , createMailSettings
, createNewFolder , createNewFolder
@ -107,6 +108,7 @@ module Api exposing
, startReIndex , startReIndex
, submitNotifyDueItems , submitNotifyDueItems
, toggleTags , toggleTags
, unconfirmMultiple
, updateNotifyDueItems , updateNotifyDueItems
, updateScanMailbox , updateScanMailbox
, upload , upload
@ -1284,6 +1286,34 @@ getJobQueueStateTask flags =
--- Item (Mulit Edit) --- Item (Mulit Edit)
confirmMultiple :
Flags
-> Set String
-> (Result Http.Error BasicResult -> msg)
-> Cmd msg
confirmMultiple flags ids receive =
Http2.authPut
{ url = flags.config.baseUrl ++ "/api/v1/sec/items/confirm"
, account = getAccount flags
, body = Http.jsonBody (Api.Model.IdList.encode (IdList (Set.toList ids)))
, expect = Http.expectJson receive Api.Model.BasicResult.decoder
}
unconfirmMultiple :
Flags
-> Set String
-> (Result Http.Error BasicResult -> msg)
-> Cmd msg
unconfirmMultiple flags ids receive =
Http2.authPut
{ url = flags.config.baseUrl ++ "/api/v1/sec/items/unconfirm"
, account = getAccount flags
, body = Http.jsonBody (Api.Model.IdList.encode (IdList (Set.toList ids)))
, expect = Http.expectJson receive Api.Model.BasicResult.decoder
}
setTagsMultiple : setTagsMultiple :
Flags Flags
-> ItemsAndRefs -> ItemsAndRefs

View File

@ -81,6 +81,7 @@ type Msg
| UpdateThrottle | UpdateThrottle
| RemoveDueDate | RemoveDueDate
| RemoveDate | RemoveDate
| ConfirmMsg Bool
| FolderDropdownMsg (Comp.Dropdown.Msg IdName) | FolderDropdownMsg (Comp.Dropdown.Msg IdName)
| TagDropdownMsg (Comp.Dropdown.Msg Tag) | TagDropdownMsg (Comp.Dropdown.Msg Tag)
| DirDropdownMsg (Comp.Dropdown.Msg Direction) | DirDropdownMsg (Comp.Dropdown.Msg Direction)
@ -201,6 +202,9 @@ resultNone model =
update : Flags -> Msg -> Model -> UpdateResult update : Flags -> Msg -> Model -> UpdateResult
update flags msg model = update flags msg model =
case msg of case msg of
ConfirmMsg flag ->
resultNoCmd (ConfirmChange flag) model
TagDropdownMsg m -> TagDropdownMsg m ->
let let
( m2, _ ) = ( m2, _ ) =
@ -553,7 +557,26 @@ renderEditForm cfg settings model =
in in
div [ class cfg.menuClass ] div [ class cfg.menuClass ]
[ div [ class "ui form warning" ] [ div [ class "ui form warning" ]
[ optional [ Data.Fields.Tag ] <| [ div [ class "field" ]
[ div
[ class "ui fluid buttons"
]
[ button
[ class "ui primary button"
, onClick (ConfirmMsg True)
]
[ text "Confirm"
]
, div [ class "or" ] []
, button
[ class "ui secondary button"
, onClick (ConfirmMsg False)
]
[ text "Unconfirm"
]
]
]
, optional [ Data.Fields.Tag ] <|
div [ class "field" ] div [ class "field" ]
[ label [] [ label []
[ Icons.tagsIcon "grey" [ Icons.tagsIcon "grey"

View File

@ -30,6 +30,7 @@ type FormChange
| ItemDateChange (Maybe Int) | ItemDateChange (Maybe Int)
| DueDateChange (Maybe Int) | DueDateChange (Maybe Int)
| NameChange String | NameChange String
| ConfirmChange Bool
multiUpdate : multiUpdate :
@ -114,5 +115,12 @@ multiUpdate flags ids change receive =
in in
Api.setConcEquipmentMultiple flags data receive Api.setConcEquipmentMultiple flags data receive
ConfirmChange flag ->
if flag then
Api.confirmMultiple flags ids receive
else
Api.unconfirmMultiple flags ids receive
NoFormChange -> NoFormChange ->
Cmd.none Cmd.none