From 2140c21560794aca8a84bbb7e8ea81be9704d078 Mon Sep 17 00:00:00 2001 From: SJost Date: Fri, 28 Sep 2018 19:14:27 +0200 Subject: [PATCH] Delete Data via Modal; stub. --- messages/uniworx/de.msg | 2 +- routes | 2 +- src/Handler/Admin.hs | 4 ++-- src/Handler/Profile.hs | 26 ++++++++++++++++++++++++-- src/Handler/Utils/Templates.hs | 9 +++++++++ templates/adminTest.hamlet | 2 +- templates/profileData.hamlet | 10 +--------- templates/widgets/modalWidget.hamlet | 2 ++ 8 files changed, 41 insertions(+), 16 deletions(-) create mode 100644 templates/widgets/modalWidget.hamlet diff --git a/messages/uniworx/de.msg b/messages/uniworx/de.msg index 9e4e1b8fd..563d3227c 100644 --- a/messages/uniworx/de.msg +++ b/messages/uniworx/de.msg @@ -223,7 +223,7 @@ NoCorrector: Kein Korrektor RemovedCorrections num@Int64: Korrektur-Daten wurden von #{display num} Abgaben entfernt. UpdatedAssignedCorrectorsAuto num@Int64: #{display num} Abgaben wurden unter den Korrektoren aufgeteilt. CouldNotAssignCorrectorsAuto num@Int64: #{display num} Abgaben konnten nicht automatisch zugewiesen werden: -SelfCorrectors num@Int64: #{display num} Abgaben haben Abgebenden als eigenen Korrektor zugeteilt +SelfCorrectors num@Int64: #{display num} Abgaben wurden Abgebenden als eigenem Korrektor zugeteilt! CorrectionsUploaded num@Int64: #{display num} Korrekturen wurden gespeichert: diff --git a/routes b/routes index 393582a02..6116665dc 100644 --- a/routes +++ b/routes @@ -39,7 +39,7 @@ /info VersionR GET !free /profile ProfileR GET POST !free !free -/profile/data ProfileDataR GET !free !free +/profile/data ProfileDataR GET POST !free !free /term TermShowR GET !free /term/current TermCurrentR GET !free diff --git a/src/Handler/Admin.hs b/src/Handler/Admin.hs index 1999adb49..156961629 100644 --- a/src/Handler/Admin.hs +++ b/src/Handler/Admin.hs @@ -53,9 +53,9 @@ postAdminTestR :: Handler Html postAdminTestR = do ((btnResult,_), _) <- runFormPost $ buttonForm case btnResult of - (FormSuccess CreateInf) -> setMessage "Informatik-Knopf gedrückt" + (FormSuccess CreateInf) -> addMessage Info "Informatik-Knopf gedrückt" (FormSuccess CreateMath) -> addMessage Warning "Knopf Mathematik erkannt" - _other -> return () + _other -> addMessage Warning "KEIN Knopf erkannt" getAdminTestR diff --git a/src/Handler/Profile.hs b/src/Handler/Profile.hs index d23328925..29918fe82 100644 --- a/src/Handler/Profile.hs +++ b/src/Handler/Profile.hs @@ -140,13 +140,21 @@ postProfileR = do -- TODO getProfileR - +postProfileDataR :: Handler Html +postProfileDataR = do + (uid, User{..}) <- requireAuthPair + ((btnResult,_), _) <- runFormPost $ buttonForm + case btnResult of + (FormSuccess BtnDelete) -> addMessage Warning "Delete-Knopf gedrückt" + (FormSuccess BtnAbort ) -> addMessage Warning "Knopf Abort erkannt" + _other -> addMessage Warning "KEIN Knopf erkannt" + addMessage Error "Löschen der Daten wurde noch nicht implementiert." + getProfileDataR getProfileDataR :: Handler Html getProfileDataR = do (uid, User{..}) <- requireAuthPair -- mr <- getMessageRender - -- Tabelle mit eigenen Kursen (hasRows, ownedCoursesTable) <- mkOwnedCoursesTable uid -- Tabelle mit allen Teilnehmer: Kurs (link), Datum @@ -163,6 +171,20 @@ getProfileDataR = do ownTutorialTable <- return [whamlet| Übungsgruppen werden momentan leider noch nicht unterstützt.|] -- Tabelle mit allen Tutorials tutorialTable <- return [whamlet| Übungsgruppen werden momentan leider noch nicht unterstützt.|] + -- Delete Button + (btnWdgt, btnEnctype) <- generateFormPost (buttonForm :: Form BtnDelete) + -- TODO: move this into a Message and/or Widget-File + let delWdgt = [whamlet| +
+
Sind Sie sich absolut sicher, alle gespeicherten Daten zu löschen? + Abgegebene Hausaufgaben werden dadurch rückwirkend gelöscht, + wodurch eventuell ein Klausurbonus nicht mehr anerkannt wird. +
+ Gilt nicht in der Testphase von Uni2work: + Klausurnoten können Sie hiermit nicht löschen. + Da diese 5 Jahre bis nach Ihrer Exmatrikulation aufbewahrt werden müssen. +
^{btnWdgt} + |] defaultLayout $ do $(widgetFile "profileData") $(widgetFile "dsgvDisclaimer") diff --git a/src/Handler/Utils/Templates.hs b/src/Handler/Utils/Templates.hs index e29d9e3f9..810ea8472 100644 --- a/src/Handler/Utils/Templates.hs +++ b/src/Handler/Utils/Templates.hs @@ -16,6 +16,15 @@ modalStatic modalContent = do $(widgetFile "widgets/modalStatic") [whamlet|
?|] -- SJ: confused why ## is needed here either? +modalWidget :: Html -> WidgetT site IO () -> WidgetT site IO () +modalWidget modalTrigger modalContent = do + uniqueId <- newIdent + let modalTriggerId = cons '#' uniqueId -- SJ: I am confused why this is needed here? + modalId :: Int32 + modalId = 13 + $(widgetFile "widgets/modalWidget") + [whamlet|
#{modalTrigger}|] -- SJ: confused why ## is needed here either? + modal :: Text -> Maybe [Char] -> WidgetT site IO () modal modalTrigger (Just modalContent) = do -- WARNING: ModalContent should not have length 11. SJ: This is possibly bad. See Template! let diff --git a/templates/adminTest.hamlet b/templates/adminTest.hamlet index 6afe2d43d..ea27a3906 100644 --- a/templates/adminTest.hamlet +++ b/templates/adminTest.hamlet @@ -34,7 +34,7 @@

  • Modals: ^{modal ".toggler1" Nothing} - Klick mich für Ajax-Test + Klick mich für Ajax-Test ^{modal ".toggler2" (Just "Test Inhalt für Modal")}
    Klick mich für Content-Test diff --git a/templates/profileData.hamlet b/templates/profileData.hamlet index afe2c4a6b..5b6726cf1 100644 --- a/templates/profileData.hamlet +++ b/templates/profileData.hamlet @@ -1,11 +1,4 @@
    -
    -
    -
    - TODO: Alle Benutzerbezogenen Daten sollen hier angezeigt - und verlinkt werden - (alle Abgaben, Klausurnoten, etc.) - $if hasRows

    Eigene Kurse @@ -58,8 +51,7 @@ .

    - TODO: Knopf zum Löschen aller Daten erstellen - + ^{modalWidget "Alle Benutzerbezogenen Daten löschen" delWdgt}

    Hinweise:
      diff --git a/templates/widgets/modalWidget.hamlet b/templates/widgets/modalWidget.hamlet new file mode 100644 index 000000000..e80516d1f --- /dev/null +++ b/templates/widgets/modalWidget.hamlet @@ -0,0 +1,2 @@ +
      + ^{modalContent}