forked from AkkomaGang/akkoma-fe
Merge branch 'feature/notification-improvements' into 'develop'
Feature/notification improvements See merge request !79
This commit is contained in:
commit
9723d7285d
5 changed files with 48 additions and 12 deletions
|
@ -1,3 +1,5 @@
|
||||||
|
import Status from '../status/status.vue'
|
||||||
|
|
||||||
import { sortBy, take, filter } from 'lodash'
|
import { sortBy, take, filter } from 'lodash'
|
||||||
|
|
||||||
const Notifications = {
|
const Notifications = {
|
||||||
|
@ -23,6 +25,9 @@ const Notifications = {
|
||||||
return this.unseenNotifications.length
|
return this.unseenNotifications.length
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
components: {
|
||||||
|
Status
|
||||||
|
},
|
||||||
watch: {
|
watch: {
|
||||||
unseenCount (count) {
|
unseenCount (count) {
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
|
|
|
@ -45,19 +45,23 @@
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
line-height:18px;
|
line-height:18px;
|
||||||
|
|
||||||
.icon-retweet {
|
.icon-retweet.lit {
|
||||||
color: $green;
|
color: $green;
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-reply {
|
.icon-reply.lit {
|
||||||
color: $blue;
|
color: $blue;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
|
word-break: break-all;
|
||||||
margin: 0 0 0.3em;
|
margin: 0 0 0.3em;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
line-height:20px;
|
line-height:20px;
|
||||||
|
small {
|
||||||
|
font-weight: lighter;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
padding: 0.3em 0.8em 0.5em;
|
padding: 0.3em 0.8em 0.5em;
|
||||||
|
|
|
@ -11,19 +11,30 @@
|
||||||
<a :href="notification.action.user.statusnet_profile_url">
|
<a :href="notification.action.user.statusnet_profile_url">
|
||||||
<img class='avatar' :src="notification.action.user.profile_image_url_original">
|
<img class='avatar' :src="notification.action.user.profile_image_url_original">
|
||||||
</a>
|
</a>
|
||||||
<div class='text'>
|
<div class='text' style="width: 100%;">
|
||||||
<timeago :since="notification.action.created_at" :auto-update="240"></timeago>
|
|
||||||
<div v-if="notification.type === 'favorite'">
|
<div v-if="notification.type === 'favorite'">
|
||||||
<h1>{{ notification.action.user.name }}<br><i class="fa icon-star"></i> favorited your <router-link :to="{ name: 'conversation', params: { id: notification.status.id } }">status</router-link></h1>
|
<h1>
|
||||||
<p>{{ notification.status.text }}</p>
|
{{ notification.action.user.name }}
|
||||||
|
<i class="fa icon-star"></i>
|
||||||
|
<small><router-link :to="{ name: 'conversation', params: { id: notification.status.id } }"><timeago :since="notification.action.created_at" :auto-update="240"></timeago></router-link></small>
|
||||||
|
</h1>
|
||||||
|
<div v-html="notification.status.statusnet_html"></div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="notification.type === 'repeat'">
|
<div v-if="notification.type === 'repeat'">
|
||||||
<h1>{{ notification.action.user.name }}<br><i class="fa icon-retweet"></i> repeated your <router-link :to="{ name: 'conversation', params: { id: notification.status.id } }">status</router-link></h1>
|
<h1>
|
||||||
<p>{{ notification.status.text }}</p>
|
{{ notification.action.user.name }}
|
||||||
|
<i class="fa icon-retweet lit"></i>
|
||||||
|
<small><router-link :to="{ name: 'conversation', params: { id: notification.status.id } }"><timeago :since="notification.action.created_at" :auto-update="240"></timeago></router-link></small>
|
||||||
|
</h1>
|
||||||
|
<div v-html="notification.status.statusnet_html"></div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="notification.type === 'mention'">
|
<div v-if="notification.type === 'mention'">
|
||||||
<h1>{{ notification.action.user.name }}<br><i class="fa icon-reply"></i> <router-link :to="{ name: 'conversation', params: { id: notification.status.id } }">mentioned</router-link> you</h1>
|
<h1>
|
||||||
<p>{{ notification.status.text }}</p>
|
{{ notification.action.user.name }}
|
||||||
|
<i class="fa icon-reply lit"></i>
|
||||||
|
<small><router-link :to="{ name: 'conversation', params: { id: notification.status.id } }"><timeago :since="notification.action.created_at" :auto-update="240"></timeago></router-link></small>
|
||||||
|
</h1>
|
||||||
|
<status :compact="true" :statusoid="notification.status"></status>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -12,7 +12,8 @@ const Status = {
|
||||||
'expandable',
|
'expandable',
|
||||||
'inConversation',
|
'inConversation',
|
||||||
'focused',
|
'focused',
|
||||||
'highlight'
|
'highlight',
|
||||||
|
'compact'
|
||||||
],
|
],
|
||||||
data: () => ({
|
data: () => ({
|
||||||
replying: false,
|
replying: false,
|
||||||
|
|
|
@ -1,5 +1,20 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="status-el base00-background base03-border" v-if="!status.deleted" v-bind:class="[{ 'base01-background': isFocused }, { 'status-conversation': inConversation }]" >
|
<div class="status-el base00-background" v-if="compact">
|
||||||
|
<div @click.prevent="linkClicked" class="status-content" v-html="status.statusnet_html"></div>
|
||||||
|
<div v-if="loggedIn">
|
||||||
|
<div class='status-actions'>
|
||||||
|
<div>
|
||||||
|
<a href="#" v-on:click.prevent="toggleReplying">
|
||||||
|
<i class="fa icon-reply" :class="{'icon-reply-active': replying}"></i>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<retweet-button :status=status></retweet-button>
|
||||||
|
<favorite-button :status=status></favorite-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<post-status-form class="reply-body" :reply-to="status.id" :attentions="status.attentions" :repliedUser="status.user" v-on:posted="toggleReplying" v-if="replying"/>
|
||||||
|
</div>
|
||||||
|
<div class="status-el base00-background base03-border" v-else-if="!status.deleted" v-bind:class="[{ 'base01-background': isFocused }, { 'status-conversation': inConversation }]" >
|
||||||
<template v-if="muted">
|
<template v-if="muted">
|
||||||
<div class="media status container muted">
|
<div class="media status container muted">
|
||||||
<small><router-link :to="{ name: 'user-profile', params: { id: status.user.id } }">{{status.user.screen_name}}</router-link></small>
|
<small><router-link :to="{ name: 'user-profile', params: { id: status.user.id } }">{{status.user.screen_name}}</router-link></small>
|
||||||
|
|
Loading…
Reference in a new issue