Skip to content
Snippets Groups Projects
Commit ed3f8234 authored by Simon Künzel's avatar Simon Künzel
Browse files

#98 Improve Announcement UX

parent 33628bee
No related branches found
No related tags found
No related merge requests found
...@@ -157,6 +157,9 @@ setting.entry.notifications_responsible_courses_chapter_submitted = "... ein Kap ...@@ -157,6 +157,9 @@ setting.entry.notifications_responsible_courses_chapter_submitted = "... ein Kap
setting.entry.notifications_responsible_courses_changes = "... ein anderer Benutzer Felder (z.B. Titel oder Kommentar) geändert hat" setting.entry.notifications_responsible_courses_changes = "... ein anderer Benutzer Felder (z.B. Titel oder Kommentar) geändert hat"
ui.announcement.info_static_not_editable = "Dies ist eine dynamische Ankündigung, welche vom Server kommt und nicht bearbeitet werden kann" ui.announcement.info_static_not_editable = "Dies ist eine dynamische Ankündigung, welche vom Server kommt und nicht bearbeitet werden kann"
ui.announcement.info_hide_disabled_in_edit_mode = """
Du kannst aktuell alle Ankündigungen sehen um diese zu bearbeiten, daher kannst du diese Ankündigung nicht verstecken.
"""
ui.announcement.create_new = "Neue Ankündigung" ui.announcement.create_new = "Neue Ankündigung"
ui.object.field_supports_markdown = """ ui.object.field_supports_markdown = """
......
...@@ -157,6 +157,9 @@ setting.entry.notifications_responsible_courses_chapter_submitted = "... a chapt ...@@ -157,6 +157,9 @@ setting.entry.notifications_responsible_courses_chapter_submitted = "... a chapt
setting.entry.notifications_responsible_courses_changes = "... another user fields (e.g. title, comment) changed" setting.entry.notifications_responsible_courses_changes = "... another user fields (e.g. title, comment) changed"
ui.announcement.info_static_not_editable = "This is a dynamic announcement provided by the server, which can not be edited" ui.announcement.info_static_not_editable = "This is a dynamic announcement provided by the server, which can not be edited"
ui.announcement.info_hide_disabled_in_edit_mode = """
You can currently see all announcements to edit them, and therefore you can't hide this announcement.
"""
ui.announcement.create_new = "New announcement" ui.announcement.create_new = "New announcement"
ui.object.field_supports_markdown = """ ui.object.field_supports_markdown = """
......
...@@ -46,6 +46,7 @@ export default function AnnouncementComponent({ ...@@ -46,6 +46,7 @@ export default function AnnouncementComponent({
); );
const isHome = router.asPath === "/"; const isHome = router.asPath === "/";
const allowEditing = editMode && isHome;
const hideAnnouncement = (announcement: announcement) => const hideAnnouncement = (announcement: announcement) =>
setHiddenAnnouncements((oldHidden: string[]) => { setHiddenAnnouncements((oldHidden: string[]) => {
...@@ -70,7 +71,7 @@ export default function AnnouncementComponent({ ...@@ -70,7 +71,7 @@ export default function AnnouncementComponent({
return ( return (
<div> <div>
{editMode && ( {allowEditing && (
<div className=""> <div className="">
<OMCreate object_type="announcement"> <OMCreate object_type="announcement">
<button className="btn btn-secondary mb-3 w-100" type="button"> <button className="btn btn-secondary mb-3 w-100" type="button">
...@@ -88,7 +89,7 @@ export default function AnnouncementComponent({ ...@@ -88,7 +89,7 @@ export default function AnnouncementComponent({
if (announcement.page_visibility == "only_main_page" && !isHome) return null; if (announcement.page_visibility == "only_main_page" && !isHome) return null;
if (!forceShowHidden && !editMode && hiddenAnnouncements.includes(hash)) if (!forceShowHidden && !allowEditing && hiddenAnnouncements.includes(hash))
return null; return null;
return ( return (
...@@ -97,7 +98,7 @@ export default function AnnouncementComponent({ ...@@ -97,7 +98,7 @@ export default function AnnouncementComponent({
key={hash + "#" + ind} key={hash + "#" + ind}
role="alert" role="alert"
> >
{announcement.id ? ( {announcement.id && allowEditing ? (
<EmbeddedOMFieldComponent <EmbeddedOMFieldComponent
object_type="announcement" object_type="announcement"
object_id={announcement.id} object_id={announcement.id}
...@@ -114,7 +115,7 @@ export default function AnnouncementComponent({ ...@@ -114,7 +115,7 @@ export default function AnnouncementComponent({
)} )}
<div className="flex-grow-1" /> <div className="flex-grow-1" />
{editMode && {allowEditing &&
(announcement.id ? ( (announcement.id ? (
<> <>
<OMEdit <OMEdit
...@@ -134,13 +135,19 @@ export default function AnnouncementComponent({ ...@@ -134,13 +135,19 @@ export default function AnnouncementComponent({
)} )}
</TooltipButton> </TooltipButton>
))} ))}
{!forceShowHidden && !editMode && ( {!forceShowHidden && (
<span
className="d-flex align-items-center"
title={allowEditing ? language.get("ui.announcement.info_hide_disabled_in_edit_mode") : ""}
>
<button <button
type="button" type="button"
className="btn-close " className="btn-close ms-1"
aria-label="Close" aria-label="Close"
disabled={allowEditing}
onClick={() => hideAnnouncement(announcement)} onClick={() => hideAnnouncement(announcement)}
/> />
</span>
)} )}
</div> </div>
); );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment