logo

pleroma-fe

My custom branche(s) on git.pleroma.social/pleroma/pleroma-fe git clone https://hacktivis.me/git/pleroma-fe.git
commit: a4e3cccf1cba238e5bfd96ea8c60f0d12bc6b7aa
parent ab2c2c66bfe96571d14cff4b8c69fe0c90d5a3c7
Author: Shpuld Shpuldson <shp@cock.li>
Date:   Wed,  6 Jan 2021 18:31:34 +0200

somewhat workign version still with fixture

Diffstat:

Msrc/components/notification/notification.js3+++
Msrc/components/notification/notification.scss28++++++++++++++++++++++++++++
Msrc/components/notification/notification.vue34++++++++++++++++++++++++++++++++++
Msrc/components/notifications/notifications.js1+
Msrc/components/notifications/notifications.scss6++++--
Msrc/i18n/en.json3++-
Msrc/modules/config.js3++-
Msrc/services/api/api.service.js197+++++++++++++++++++++++++++++++++++++++++--------------------------------------
Msrc/services/entity_normalizer/entity_normalizer.service.js1-
9 files changed, 177 insertions(+), 99 deletions(-)

diff --git a/src/components/notification/notification.js b/src/components/notification/notification.js @@ -76,6 +76,9 @@ const Notification = { this.$store.dispatch('dismissNotificationLocal', { id: this.notification.id }) this.$store.dispatch('removeFollowRequest', this.user) }) + }, + testlog (a) { + console.log(a) } }, computed: { diff --git a/src/components/notification/notification.scss b/src/components/notification/notification.scss @@ -56,6 +56,34 @@ margin: 0 0.1em; } + .report-content { + margin: 0.5em 0; + } + + .reported-status { + border: 1px solid $fallback--faint; + border-color: var(--faint, $fallback--faint); + border-radius: $fallback--inputRadius; + border-radius: var(--inputRadius, $fallback--inputRadius); + color: $fallback--text; + color: var(--text, $fallback--text); + display: block; + padding: 0.5em; + margin: 0.5em 0; + + .status-content { + pointer-events: none; + } + + .reported-status-name { + font-weight: bold; + } + + .reported-status-timeago { + float: right; + } + } + &.-type--repeat .type-icon { color: $fallback--cGreen; color: var(--cGreen, $fallback--cGreen); diff --git a/src/components/notification/notification.vue b/src/components/notification/notification.vue @@ -106,6 +106,9 @@ </i18n> </small> </span> + <span v-if="notification.type === 'pleroma:report'"> + <small>{{ $t('notifications.submitted_report') }}</small> + </span> </div> <div v-if="isStatusNotification" @@ -180,6 +183,37 @@ @{{ notification.target.screen_name }} </router-link> </div> + <div + v-else-if="notification.type === 'pleroma:report'" + > + <small>Reported user:</small> + <router-link :to="generateUserProfileLink(notification.report.acct)"> + @{{ notification.report.acct.screen_name }} + </router-link> + <!-- eslint-disable vue/no-v-html --> + <div + class="report-content" + v-html="notification.report.content" + /> + <div v-if="notification.report.statuses.length"> + <small>Reported statuses:</small> + <!-- eslint-enable vue/no-v-html --> + <router-link + v-for="status in notification.report.statuses" + :key="status.id" + :to="{ name: 'conversation', params: { id: status.id } }" + class="reported-status" + > + <span class="reported-status-name">{{ status.user.name }}</span> + <Timeago + :time="status.created_at" + :auto-update="240" + class="reported-status-timeago faint" + /> + <status-content :status="status" /> + </router-link> + </div> + </div> <template v-else> <status-content class="faint" diff --git a/src/components/notifications/notifications.js b/src/components/notifications/notifications.js @@ -66,6 +66,7 @@ const Notifications = { return this.$store.state.statuses.notifications.loading }, notificationsToDisplay () { + console.log(this.notifications) return this.filteredNotifications.slice(0, this.unseenCount + this.seenToDisplayCount) }, ...mapGetters(['unreadChatCount']) diff --git a/src/components/notifications/notifications.scss b/src/components/notifications/notifications.scss @@ -60,8 +60,10 @@ height: 32px; } - --link: var(--faintLink); - --text: var(--faint); + .faint { + --link: var(--faintLink); + --text: var(--faint); + } } .follow-request-accept { diff --git a/src/i18n/en.json b/src/i18n/en.json @@ -141,7 +141,8 @@ "repeated_you": "repeated your status", "no_more_notifications": "No more notifications", "migrated_to": "migrated to", - "reacted_with": "reacted with {0}" + "reacted_with": "reacted with {0}", + "submitted_report": "submitted a report" }, "polls": { "add_poll": "Add Poll", diff --git a/src/modules/config.js b/src/modules/config.js @@ -44,8 +44,9 @@ export const defaultState = { likes: true, repeats: true, moves: true, - emojiReactions: false, + emojiReactions: true, followRequest: true, + reports: true, chatMention: true }, webPushNotifications: false, diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js @@ -488,8 +488,103 @@ const deleteUser = ({ credentials, user }) => { headers: headers }) } - /* eslint-disable */ +const mockStatus = { + "account": { + "acct": "reported_account", + "avatar": "https://develop.ilja.space/images/avi.png", + "avatar_static": "https://develop.ilja.space/images/avi.png", + "bot": false, + "created_at": "2020-09-03T14:18:21.000Z", + "display_name": "Reported Account", + "emojis": [], + "fields": [], + "followers_count": 0, + "following_count": 0, + "header": "https://develop.ilja.space/images/banner.png", + "header_static": "https://develop.ilja.space/images/banner.png", + "id": "A2xvLMMFLmqUQiZSqG", + "locked": false, + "note": "I&#39;m an account made for an example report notification. I&#39;m the one that will be reported.", + "pleroma": { + "accepts_chat_messages": true, + "ap_id": "https://develop.ilja.space/users/reported_account", + "background_image": null, + "confirmation_pending": false, + "favicon": null, + "hide_favorites": true, + "hide_followers": false, + "hide_followers_count": false, + "hide_follows": false, + "hide_follows_count": false, + "is_admin": false, + "is_moderator": false, + "relationship": {}, + "skip_thread_containment": false, + "tags": [] + }, + "source": { + "fields": [], + "note": "", + "pleroma": { + "actor_type": "Person", + "discoverable": false + }, + "sensitive": false + }, + "statuses_count": 1, + "url": "https://develop.ilja.space/users/reported_account", + "username": "reported_account" + }, + "application": { + "name": "Web", + "website": null + }, + "bookmarked": false, + "card": null, + "content": "A post I made that will be included in the report", + "created_at": "2020-09-03T14:18:51.000Z", + "emojis": [], + "favourited": false, + "favourites_count": 0, + "id": "A2xvLMMFLmqUQiZSqG", + "in_reply_to_account_id": null, + "in_reply_to_id": null, + "language": null, + "media_attachments": [], + "mentions": [], + "muted": false, + "pinned": false, + "pleroma": { + "content": { + "text/plain": "A post I made that will be included in the report" + }, + "conversation_id": 7, + "direct_conversation_id": null, + "emoji_reactions": [], + "expires_at": null, + "in_reply_to_account_acct": null, + "local": true, + "parent_visible": false, + "spoiler_text": { + "text/plain": "" + }, + "thread_muted": false + }, + "poll": null, + "reblog": null, + "reblogged": false, + "reblogs_count": 0, + "replies_count": 0, + "sensitive": false, + "spoiler_text": "", + "tags": [], + "text": null, + "uri": "https://develop.ilja.space/objects/8fe7611a-07e7-403a-ae08-f74580b6cc53", + "url": "https://develop.ilja.space/notice/9ymgJaQxAbTzDDZMJs", + "visibility": "public" +} + const report = { "account": { "acct": "reporting_account", @@ -668,99 +763,12 @@ const report = { "state": "open", "statuses": [ { - "account": { - "acct": "reported_account", - "avatar": "https://develop.ilja.space/images/avi.png", - "avatar_static": "https://develop.ilja.space/images/avi.png", - "bot": false, - "created_at": "2020-09-03T14:18:21.000Z", - "display_name": "Reported Account", - "emojis": [], - "fields": [], - "followers_count": 0, - "following_count": 0, - "header": "https://develop.ilja.space/images/banner.png", - "header_static": "https://develop.ilja.space/images/banner.png", - "id": "9ymgGklmHjZ2OpxVLM", - "locked": false, - "note": "I&#39;m an account made for an example report notification. I&#39;m the one that will be reported.", - "pleroma": { - "accepts_chat_messages": true, - "ap_id": "https://develop.ilja.space/users/reported_account", - "background_image": null, - "confirmation_pending": false, - "favicon": null, - "hide_favorites": true, - "hide_followers": false, - "hide_followers_count": false, - "hide_follows": false, - "hide_follows_count": false, - "is_admin": false, - "is_moderator": false, - "relationship": {}, - "skip_thread_containment": false, - "tags": [] - }, - "source": { - "fields": [], - "note": "", - "pleroma": { - "actor_type": "Person", - "discoverable": false - }, - "sensitive": false - }, - "statuses_count": 1, - "url": "https://develop.ilja.space/users/reported_account", - "username": "reported_account" - }, - "application": { - "name": "Web", - "website": null - }, - "bookmarked": false, - "card": null, - "content": "A post I made that will be included in the report", - "created_at": "2020-09-03T14:18:51.000Z", - "emojis": [], - "favourited": false, - "favourites_count": 0, - "id": "9ymgJaQxAbTzDDZMJs", - "in_reply_to_account_id": null, - "in_reply_to_id": null, - "language": null, - "media_attachments": [], - "mentions": [], - "muted": false, - "pinned": false, - "pleroma": { - "content": { - "text/plain": "A post I made that will be included in the report" - }, - "conversation_id": 7, - "direct_conversation_id": null, - "emoji_reactions": [], - "expires_at": null, - "in_reply_to_account_acct": null, - "local": true, - "parent_visible": false, - "spoiler_text": { - "text/plain": "" - }, - "thread_muted": false - }, - "poll": null, - "reblog": null, - "reblogged": false, - "reblogs_count": 0, - "replies_count": 0, - "sensitive": false, - "spoiler_text": "", - "tags": [], - "text": null, - "uri": "https://develop.ilja.space/objects/8fe7611a-07e7-403a-ae08-f74580b6cc53", - "url": "https://develop.ilja.space/notice/9ymgJaQxAbTzDDZMJs", - "visibility": "public" + ...mockStatus, + }, + { + ...mockStatus, + content: 'This is another status that I created to be included in the report to test multiple statuses.', + id: '123' } ] }, @@ -848,6 +856,7 @@ const fetchTimeline = ({ if (isNotifications) { return { data: [parseNotification(report)], pagination } } + return { data: data.map(isNotifications ? parseNotification : parseStatus), pagination } } else { data.status = status diff --git a/src/services/entity_normalizer/entity_normalizer.service.js b/src/services/entity_normalizer/entity_normalizer.service.js @@ -201,7 +201,6 @@ export const parseUser = (data) => { // Convert punycode to unicode if (output.screen_name.includes('@')) { const parts = output.screen_name.split('@') - console.log(parts) let unicodeDomain = punycode.toUnicode(parts[1]) if (unicodeDomain !== parts[1]) { // Add some identifier so users can potentially spot spoofing attempts: