diff --git a/hlint.sh b/hlint.sh index 0dbb0fa1b..74a2a9fb7 100755 --- a/hlint.sh +++ b/hlint.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -exec -- ./test.sh uniworx:test:hlint +exec -- stack build --test --fast --flag uniworx:dev --flag uniworx:library-only uniworx:test:hlint diff --git a/messages/frontend/de.msg b/messages/frontend/de.msg new file mode 100644 index 000000000..f01c31640 --- /dev/null +++ b/messages/frontend/de.msg @@ -0,0 +1,4 @@ +FilesSelected: Dateien ausgewählt +SelectFile: Datei auswählen +SelectFiles: Datei(en) auswählen +AsyncFormFailure: Da ist etwas schief gelaufen, das tut uns Leid. Falls das erneut passiert schicke uns gerne eine kurze Beschreibung dieses Ereignisses über das Hilfe-Widget rechts oben. Vielen Dank für deine Hilfe! \ No newline at end of file diff --git a/messages/uniworx/de.msg b/messages/uniworx/de.msg index 06715ee26..fb521065d 100644 --- a/messages/uniworx/de.msg +++ b/messages/uniworx/de.msg @@ -263,7 +263,7 @@ CorByProportionOnly proportion@Rational: #{display proportion} Anteile CorByProportionIncludingTutorial proportion@Rational: #{display proportion} Anteile - Tutorium CorByProportionExcludingTutorial proportion@Rational: #{display proportion} Anteile + Tutorium -RowCount count@Int64: #{display count} #{pluralDE count "Eintrag" "Einträge"} insgesamt +RowCount count@Int64: #{display count} #{pluralDE count "Eintrag" "Einträge"} nach Filter DeleteRow: Zeile entfernen ProportionNegative: Anteile dürfen nicht negativ sein CorrectorUpdated: Korrektor erfolgreich aktualisiert @@ -307,7 +307,10 @@ SettingsUpdate: Einstellungen erfolgreich gespeichert NotificationSettingsUpdate: Benachrichtigungs-Einstellungen erfolgreich gespeichert Never: Nie +PreviouslyUploadedInfo: Bereits hochgeladene Dateien: +PreviouslyUploadedDeletionInfo: (Nicht ausgewählte Dateien werden gelöscht) MultiFileUploadInfo: (Mehrere Dateien mit Shift oder Strg auswählen) +AddMoreFiles: Weitere Dateien hinzufügen: NrColumn: Nr SelectColumn: Auswahl @@ -757,4 +760,4 @@ EmailInvitationWarning: Dem System ist kein Nutzer mit dieser Addresse bekannt. LecturerInvitationAccepted lType@Text csh@CourseShorthand: Sie wurden als #{lType} für #{csh} eingetragen LecturerInvitationDeclined csh@CourseShorthand: Sie haben die Einladung, Kursverwalter für #{csh} zu werden, abgelehnt CourseLecInviteHeading courseName@Text: Einladung zum Kursverwalter für #{courseName} -CourseLecInviteExplanation: Sie wurden eingeladen, Verwalter für einen Kurs zu sein. \ No newline at end of file +CourseLecInviteExplanation: Sie wurden eingeladen, Verwalter für einen Kurs zu sein. diff --git a/src/Foundation.hs b/src/Foundation.hs index 38c2052c9..40dc1246c 100644 --- a/src/Foundation.hs +++ b/src/Foundation.hs @@ -201,6 +201,7 @@ mkMessageVariant "UniWorX" "Campus" "messages/campus" "de" mkMessageVariant "UniWorX" "Dummy" "messages/dummy" "de" mkMessageVariant "UniWorX" "PWHash" "messages/pw-hash" "de" mkMessageVariant "UniWorX" "Button" "messages/button" "de" +mkMessageVariant "UniWorX" "Frontend" "messages/frontend" "de" -- This instance is required to use forms. You can modify renderMessage to -- achieve customized and internationalized form validation messages. @@ -1129,6 +1130,11 @@ siteLayout' headingOverride widget = do hasSecondaryPageActions = any (is _PageActionSecondary) $ toListOf (traverse . _1 . _menuItemType) menuTypes hasPrimaryPageActions = any (is _PageActionPrime) $ toListOf (traverse . _1 . _menuItemType) menuTypes + MsgRenderer mr <- getMsgRenderer + let + -- See Utils.Frontend.I18n and files in messages/frontend for message definitions + frontendI18n = toJSON (mr :: FrontendMessage -> Text) + pc <- widgetToPageContent $ do -- 3rd party addScript $ StaticR js_vendor_flatpickr_js @@ -1140,20 +1146,21 @@ siteLayout' headingOverride widget = do -- polyfills addScript $ StaticR js_polyfills_fetchPolyfill_js addScript $ StaticR js_polyfills_urlPolyfill_js + -- JavaScript services + addScript $ StaticR js_services_utilRegistry_js + addScript $ StaticR js_services_httpClient_js + addScript $ StaticR js_services_i18n_js -- JavaScript utils addScript $ StaticR js_utils_alerts_js addScript $ StaticR js_utils_asidenav_js addScript $ StaticR js_utils_asyncForm_js addScript $ StaticR js_utils_asyncTable_js - addScript $ StaticR js_utils_asyncTableFilter_js addScript $ StaticR js_utils_checkAll_js - addScript $ StaticR js_utils_httpClient_js addScript $ StaticR js_utils_form_js addScript $ StaticR js_utils_inputs_js addScript $ StaticR js_utils_modal_js - addScript $ StaticR js_utils_setup_js addScript $ StaticR js_utils_showHide_js - addScript $ StaticR js_utils_tabber_js + -- addScript $ StaticR js_utils_tabber_js addStylesheet $ StaticR css_utils_alerts_scss addStylesheet $ StaticR css_utils_asidenav_scss addStylesheet $ StaticR css_utils_asyncForm_scss diff --git a/src/Handler/Admin.hs b/src/Handler/Admin.hs index 4d53f5eed..4e4b07eee 100644 --- a/src/Handler/Admin.hs +++ b/src/Handler/Admin.hs @@ -121,7 +121,7 @@ postAdminTestR = do let emailWidget' = wrapForm emailWidget def { formAction = Just . SomeRoute $ AdminTestR , formEncoding = emailEnctype - , formAttrs = [("data-ajax-submit", "")] + , formAttrs = [("uw-async-form", "")] } diff --git a/src/Handler/Home.hs b/src/Handler/Home.hs index dba365b9c..81d9f7066 100644 --- a/src/Handler/Home.hs +++ b/src/Handler/Home.hs @@ -170,4 +170,4 @@ homeUpcomingSheets uid = do , dbtParams = def , dbtIdent = "upcoming-sheets" :: Text } - $(widgetFile "home/upcomingSheets") + $(widgetFile "home/upcomingSheets") \ No newline at end of file diff --git a/src/Handler/Utils/Table.hs b/src/Handler/Utils/Table.hs index 811da9e2f..2acaf2a6a 100644 --- a/src/Handler/Utils/Table.hs +++ b/src/Handler/Utils/Table.hs @@ -63,6 +63,7 @@ headedRowSelector toExternal fromExternal attrs colonnade tdata = do -> return Nothing view _ name attributes val _ = + -- TODO: move this to a *.hamlet file [whamlet|