Allow to restore deleted items in webui

This commit is contained in:
eikek
2021-08-14 16:46:04 +02:00
parent f999662905
commit 828e5cf703
8 changed files with 105 additions and 7 deletions

View File

@ -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 =

View File

@ -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 ->

View File

@ -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