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
, changePassword
, checkCalEvent
, confirmMultiple
, createImapSettings
, createMailSettings
, createNewFolder
@ -107,6 +108,7 @@ module Api exposing
, startReIndex
, submitNotifyDueItems
, toggleTags
, unconfirmMultiple
, updateNotifyDueItems
, updateScanMailbox
, upload
@ -1284,6 +1286,34 @@ getJobQueueStateTask flags =
--- 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 :
Flags
-> ItemsAndRefs

View File

@ -81,6 +81,7 @@ type Msg
| UpdateThrottle
| RemoveDueDate
| RemoveDate
| ConfirmMsg Bool
| FolderDropdownMsg (Comp.Dropdown.Msg IdName)
| TagDropdownMsg (Comp.Dropdown.Msg Tag)
| DirDropdownMsg (Comp.Dropdown.Msg Direction)
@ -201,6 +202,9 @@ resultNone model =
update : Flags -> Msg -> Model -> UpdateResult
update flags msg model =
case msg of
ConfirmMsg flag ->
resultNoCmd (ConfirmChange flag) model
TagDropdownMsg m ->
let
( m2, _ ) =
@ -553,7 +557,26 @@ renderEditForm cfg settings model =
in
div [ class cfg.menuClass ]
[ 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" ]
[ label []
[ Icons.tagsIcon "grey"

View File

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