MultiButton: Term deletion working

This commit is contained in:
SJost 2017-10-08 08:42:59 +02:00
parent 34df734b5e
commit 6d1c3bad06
3 changed files with 37 additions and 12 deletions

View File

@ -69,19 +69,26 @@ getEditTermMaybeR mbTerm= do
let actionurl = EditTermR
defaultLayout $ do
setTitle [shamlet| #{formtitle} |]
$(widgetFile "generic_form")
$(widgetFile "generic_form_delete")
postEditTermR :: Handler Html
postEditTermR = do
aid <- requireAuthId
((result, formWidget), formEnctype) <- runFormPost $ newTermForm Nothing
case result of
FormSuccess res -> do
action <- lookupPostParam "action"
case (result,action) of
(FormSuccess res, Just "delete") -> do
runDB $ delete (TermKey $ termName res)
let tid = termToText $ termName res
let msg = "Semester " `T.append` tid `T.append` " erfolgreich gelöscht."
setMessage [shamlet| #{msg} |]
redirect ShowTermsR
(FormSuccess res, Just "save") -> do
-- term <- runDB $ get $ TermKey termName
runDB $ repsert (TermKey $ termName res) res
let tid = termToText $ termName res
let msg = "Semester " `T.append` tid `T.append` " erfolgreich editiert!"
let msg = "Semester " `T.append` tid `T.append` " erfolgreich editiert."
let okay = termStart res `withinTerm` termName res
let order = termStart res <= termEnd res
setMessage [shamlet| #{msg}
@ -92,16 +99,18 @@ postEditTermR = do
<p .bg-danger>
Ende des Semesters liegt vor dem Start!
|]
redirect ShowTermsR
(FormSuccess res, _) ->
redirect ShowTermsR
FormMissing -> do
(FormMissing,_) -> do
setMessage "Keine Formulardaten erhalten."
let formtitle = "Semester editieren/anlegen" :: Text
let actionurl = EditTermR
defaultLayout $ do
setTitle [shamlet| #{formtitle} |]
$(widgetFile "generic_form")
$(widgetFile "generic_form_delete")
FormFailure errorMsgs -> do
(FormFailure errorMsgs,_) -> do
setMessage [shamlet|
<p .bg-danger>Fehler:
<ul>
@ -112,8 +121,8 @@ postEditTermR = do
let actionurl = EditTermR
defaultLayout $ do
setTitle [shamlet| #{formtitle} |]
$(widgetFile "generic_form")
$(widgetFile "generic_form_delete")
newTermForm :: Maybe Term -> Form Term
newTermForm template =
renderBootstrap3 bsHorizontalDefault $ Term
@ -122,7 +131,7 @@ newTermForm template =
<*> areq dayField (set "Letzer Tag") (termEnd <$> template)
<*> pure [] -- TODO: List of Day field required, must probably be done as its own form and then combined
<*> areq checkBoxField (set "Aktiv") (termActive <$> template)
<* bootstrapSubmit (bsSubmit "Semester bearbeiten")
-- <* bootstrapSubmit (bsSubmit "Semester bearbeiten")
where set txt = FieldSettings
{ fsLabel = txt
, fsTooltip = Nothing

View File

@ -10,5 +10,4 @@
<div .col-lg-6>
<div .bs-callout bs-callout-info well>
<form .form-horizontal method=post action=@{actionurl}#forms enctype=#{formEnctype}>
^{formWidget}
^{formWidget}

View File

@ -0,0 +1,17 @@
<div .container>
<div .bs-docs-section>
<div .row>
<div .col-lg-12>
<div .page-header>
<h1 #forms>
#{formtitle}
<div .row>
<div .col-lg-6>
<div .bs-callout bs-callout-info well>
<form .form-horizontal method=post action=@{actionurl}#forms enctype=#{formEnctype}>
^{formWidget}
<div .btn-group>
<button .btn .btn-warning type=submit name=action value=delete>Löschen
<button .btn .btn-default type=submit name=action value=abort>Abbrechen
<button .btn .btn-primary type=submit name=action value=save>Speichern