mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-24 11:28:25 +00:00
Allow to restore deleted items in webui
This commit is contained in:
@ -68,6 +68,7 @@ type alias Model =
|
||||
type ConfirmModalValue
|
||||
= ConfirmReprocessItems
|
||||
| ConfirmDelete
|
||||
| ConfirmRestore
|
||||
|
||||
|
||||
type alias SelectViewModel =
|
||||
@ -185,7 +186,9 @@ type Msg
|
||||
| SelectAllItems
|
||||
| SelectNoItems
|
||||
| RequestDeleteSelected
|
||||
| RequestRestoreSelected
|
||||
| DeleteSelectedConfirmed
|
||||
| RestoreSelectedConfirmed
|
||||
| CloseConfirmModal
|
||||
| EditSelectedItems
|
||||
| EditMenuMsg Comp.ItemDetail.MultiEditMenu.Msg
|
||||
@ -214,6 +217,7 @@ type SelectActionMode
|
||||
| DeleteSelected
|
||||
| EditSelected
|
||||
| ReprocessSelected
|
||||
| RestoreSelected
|
||||
|
||||
|
||||
type alias SearchParam =
|
||||
|
@ -361,6 +361,28 @@ update mId key flags settings msg model =
|
||||
|
||||
_ ->
|
||||
noSub ( model, Cmd.none )
|
||||
RestoreSelectedConfirmed ->
|
||||
case model.viewMode of
|
||||
SelectView svm ->
|
||||
let
|
||||
cmd =
|
||||
Api.restoreAllItems flags svm.ids DeleteAllResp
|
||||
in
|
||||
noSub
|
||||
( { model
|
||||
| viewMode =
|
||||
SelectView
|
||||
{ svm
|
||||
| confirmModal = Nothing
|
||||
, action = RestoreSelected
|
||||
}
|
||||
}
|
||||
, cmd
|
||||
)
|
||||
|
||||
_ ->
|
||||
noSub ( model, Cmd.none )
|
||||
|
||||
|
||||
DeleteAllResp (Ok res) ->
|
||||
if res.success then
|
||||
@ -469,6 +491,29 @@ update mId key flags settings msg model =
|
||||
_ ->
|
||||
noSub ( model, Cmd.none )
|
||||
|
||||
RequestRestoreSelected ->
|
||||
case model.viewMode of
|
||||
SelectView svm ->
|
||||
if svm.ids == Set.empty then
|
||||
noSub ( model, Cmd.none )
|
||||
|
||||
else
|
||||
let
|
||||
model_ =
|
||||
{ model
|
||||
| viewMode =
|
||||
SelectView
|
||||
{ svm
|
||||
| action = RestoreSelected
|
||||
, confirmModal = Just ConfirmRestore
|
||||
}
|
||||
}
|
||||
in
|
||||
noSub ( model_, Cmd.none )
|
||||
|
||||
_ ->
|
||||
noSub ( model, Cmd.none )
|
||||
|
||||
EditSelectedItems ->
|
||||
case model.viewMode of
|
||||
SelectView svm ->
|
||||
|
@ -78,6 +78,14 @@ confirmModal texts model =
|
||||
texts.basics.yes
|
||||
texts.basics.no
|
||||
texts.reallyDeleteQuestion
|
||||
ConfirmRestore ->
|
||||
Comp.ConfirmModal.defaultSettings
|
||||
RestoreSelectedConfirmed
|
||||
CloseConfirmModal
|
||||
texts.basics.yes
|
||||
texts.basics.no
|
||||
texts.reallyRestoreQuestion
|
||||
|
||||
in
|
||||
case model.viewMode of
|
||||
SelectView svm ->
|
||||
@ -264,6 +272,16 @@ editMenuBar texts model svm =
|
||||
, ( "bg-gray-200 dark:bg-bluegray-600", svm.action == DeleteSelected )
|
||||
]
|
||||
}
|
||||
, MB.CustomButton
|
||||
{ tagger = RequestRestoreSelected
|
||||
, label = ""
|
||||
, icon = Just "fa fa-trash-restore"
|
||||
, title = texts.undeleteSelectedItems selectCount
|
||||
, inputClass =
|
||||
[ ( btnStyle, True )
|
||||
, ( "bg-gray-200 dark:bg-bluegray-600", svm.action == RestoreSelected )
|
||||
]
|
||||
}
|
||||
]
|
||||
, end =
|
||||
[ MB.CustomButton
|
||||
|
Reference in New Issue
Block a user