From fc86308b21663f334b5c2a6b5f13a6a293b7ac3a Mon Sep 17 00:00:00 2001 From: Dani Palou Date: Tue, 4 Aug 2020 11:14:36 +0200 Subject: [PATCH] MOBILE-3509 notifications: Display forum digest notification html --- src/addon/notifications/pages/list/list.html | 2 +- src/addon/notifications/pages/list/list.scss | 64 +++++++++++++++++-- src/addon/notifications/pages/list/list.ts | 17 ++++- .../notifications/providers/notifications.ts | 1 + src/assets/lang/en.json | 1 + 5 files changed, 78 insertions(+), 7 deletions(-) diff --git a/src/addon/notifications/pages/list/list.html b/src/addon/notifications/pages/list/list.html index 951c63659..1bb618eaa 100644 --- a/src/addon/notifications/pages/list/list.html +++ b/src/addon/notifications/pages/list/list.html @@ -30,7 +30,7 @@

{{ notification.userfromfullname }}

-

+

diff --git a/src/addon/notifications/pages/list/list.scss b/src/addon/notifications/pages/list/list.scss index 122b8e4dc..9a476511c 100644 --- a/src/addon/notifications/pages/list/list.scss +++ b/src/addon/notifications/pages/list/list.scss @@ -1,5 +1,61 @@ -page-addon-notifications-list .core-notification-icon { - width: 34px; - height: 34px; - margin: 10px !important; +page-addon-notifications-list { + .core-notification-icon { + width: 34px; + height: 34px; + margin: 10px !important; + } + + .item core-format-text { + .forumpost { + border: 1px solid #dee2e6; + display: block; + padding: 6px; + margin: 0 0 1em 0; + + td { + padding: 3px; + } + + .header { + padding: 5px; + border-bottom: 1px solid #e3e3e3; + margin-bottom: 3px; + } + + .picture { + width: auto; + + img { + margin: 3px; + + &.userpicture { + margin-left: 3px; + margin-right: 10px; + } + } + } + + .subject { + font-weight: 700; + } + } + + a { + text-decoration: none; + } + + .userpicture { + border-radius: 50%; + } + + .mdl-right { + text-align: right; + } + + hr { + margin-top: 1.5rem; + margin-bottom: 1.5rem; + background-color: #e3e3e3; + } + } } \ No newline at end of file diff --git a/src/addon/notifications/pages/list/list.ts b/src/addon/notifications/pages/list/list.ts index 2046b00bc..49fbdb209 100644 --- a/src/addon/notifications/pages/list/list.ts +++ b/src/addon/notifications/pages/list/list.ts @@ -204,8 +204,21 @@ export class AddonNotificationsListPage { * @param notification The notification object. */ protected formatText(notification: AddonNotificationsAnyNotification): void { - const text = notification.mobiletext.replace(/-{4,}/ig, ''); - notification.mobiletext = this.textUtils.replaceNewLines(text, '
'); + notification.displayfullhtml = this.shouldDisplayFullHtml(notification); + + notification.mobiletext = notification.displayfullhtml ? + notification.fullmessagehtml : + this.textUtils.replaceNewLines(notification.mobiletext.replace(/-{4,}/ig, ''), '
'); + } + + /** + * Check whether we should display full HTML of the notification. + * + * @param notification Notification. + * @return Whether to display full HTML. + */ + protected shouldDisplayFullHtml(notification: AddonNotificationsAnyNotification): boolean { + return notification.component == 'mod_forum' && notification.eventtype == 'digests'; } /** diff --git a/src/addon/notifications/providers/notifications.ts b/src/addon/notifications/providers/notifications.ts index 3a2234ada..8a96d1f68 100644 --- a/src/addon/notifications/providers/notifications.ts +++ b/src/addon/notifications/providers/notifications.ts @@ -616,4 +616,5 @@ export type AddonNotificationsNotificationCalculatedData = { courseid?: number; // Calculated in the app. Course the notification belongs to. profileimageurlfrom?: string; // Calculated in the app. Avatar of user that sent the notification. userfromfullname?: string; // Calculated in the app in some cases. User from full name. + displayfullhtml?: boolean; // Whether to display the full HTML of the notification. }; diff --git a/src/assets/lang/en.json b/src/assets/lang/en.json index ec064e2dd..93dcadfc1 100644 --- a/src/assets/lang/en.json +++ b/src/assets/lang/en.json @@ -1914,6 +1914,7 @@ "core.openmodinbrowser": "Open {{$a}} in browser", "core.othergroups": "Other groups", "core.pagea": "Page {{$a}}", + "core.parentlanguage": "", "core.paymentinstant": "Use the button below to pay and be enrolled within minutes!", "core.percentagenumber": "{{$a}}%", "core.phone": "Phone",