commit: 0e1ab69c33f155865adc27d940a2542ffdcec30a
parent: 9778d4cfc04450a4fd9f1330c35df8487c8993bf
Author: Roger Braun <roger@rogerbraun.net>
Date:   Wed, 22 Feb 2017 23:37:12 +0100
Show actual status in notifications when mentioned.
Diffstat:
5 files changed, 61 insertions(+), 53 deletions(-)
diff --git a/src/components/conversation/conversation.vue b/src/components/conversation/conversation.vue
@@ -1,5 +1,5 @@
 <template>
-  <div class="timeline panel panel-default base00-background">
+  <div class="timeline panel panel-default base00-background conversation">
     <div class="panel-heading base01-background base04">
       Conversation
       <div v-if="collapsable">
@@ -8,7 +8,7 @@
     </div>
     <div class="panel-body">
       <div class="timeline">
-        <status v-for="status in conversation" :key="status.id" v-bind:statusoid="status":expandable='false'></status>
+        <status v-for="status in conversation" :key="status.id" v-bind:statusoid="status" :expandable='false'></status>
       </div>
     </div>
   </div>
diff --git a/src/components/notifications/notifications.js b/src/components/notifications/notifications.js
@@ -1,4 +1,5 @@
 import { sortBy, take, filter } from 'lodash'
+import Status from '../status/status.vue'
 
 const Notifications = {
   data () {
@@ -6,6 +7,9 @@ const Notifications = {
       visibleNotificationCount: 10
     }
   },
+  components: {
+    Status
+  },
   computed: {
     notifications () {
       return this.$store.state.statuses.notifications
diff --git a/src/components/notifications/notifications.scss b/src/components/notifications/notifications.scss
@@ -1,42 +1,44 @@
 @import '../../_variables.scss';
 .notification {
-  padding: 0.4em 0 0 0.7em;
-  display: flex;
   border-bottom: 1px solid silver;
 
-  .text {
-    min-width: 0px;
-    word-wrap: break-word;
-    line-height:18px;
+  .notification-base {
+      padding: 0.4em 0 0 0.7em;
+      display: flex;
+      .avatar {
+          padding-top: 0.3em;
+          width: 32px;
+          height: 32px;
+          border-radius: 50%;
+      }
 
-    .icon-retweet {
-      color: $green;
-    }
+      .text {
+          min-width: 0px;
+          word-wrap: break-word;
+          line-height:18px;
 
-    .icon-reply {
-      color: $blue;
-    }
+          .icon-retweet {
+              color: $green;
+          }
 
-    h1 {
-      margin: 0 0 0.3em;
-      padding: 0;
-      font-size: 1em;
-      line-height:20px;
-    }
+          .icon-reply {
+              color: $blue;
+          }
 
-    padding: 0.3em 0.8em 0.5em;
-    p {
-      margin: 0;
-      margin-top: 0;
-      margin-bottom: 0.3em;
-    }
-  }
+          h1 {
+              margin: 0 0 0.3em;
+              padding: 0;
+              font-size: 1em;
+              line-height:20px;
+          }
 
-  .avatar {
-    padding-top: 0.3em;
-    width: 32px;
-    height: 32px;
-    border-radius: 50%;
+          padding: 0.3em 0.8em 0.5em;
+          p {
+              margin: 0;
+              margin-top: 0;
+              margin-bottom: 0.3em;
+          }
+      }
   }
 
   &:last-child {
diff --git a/src/components/notifications/notifications.vue b/src/components/notifications/notifications.vue
@@ -4,24 +4,26 @@
       <div class="panel-heading base01-background base04">Notifications ({{unseenCount}}) <button @click.prevent="markAsSeen">Read!</button></div>
       <div class="panel-body">
         <div v-for="notification in visibleNotifications" class="notification" :class='{"base01-background": notification.seen}'>
-          <a :href="notification.action.user.statusnet_profile_url">
-            <img class='avatar' :src="notification.action.user.profile_image_url_original">
-          </a>
-          <div class='text'>
-            <timeago :since="notification.action.created_at" :auto-update="240"></timeago>
-            <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</h1>
-              <p>{{ notification.status.text }}</p>
-            </div>
-            <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</h1>
-              <p>{{ notification.status.text }}</p>
-            </div>
-            <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>
-              <p>{{ notification.status.text }}</p>
+          <div class="notification-base">
+            <a :href="notification.action.user.statusnet_profile_url">
+              <img class='avatar' :src="notification.action.user.profile_image_url_original">
+            </a>
+            <div class='text'>
+              <timeago :since="notification.action.created_at" :auto-update="240"></timeago>
+              <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</h1>
+                  <p>{{ notification.status.text }}</p>
+              </div>
+              <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</h1>
+                  <p>{{ notification.status.text }}</p>
+              </div>
+              <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>
+              </div>
             </div>
           </div>
+          <status v-if="notification.type === 'mention'" :statusoid="notification.action" :expandable="false"></status>
         </div>
       </div>
     </div>
diff --git a/src/components/status/status.vue b/src/components/status/status.vue
@@ -1,5 +1,5 @@
 <template>
-  <div class="status-el base00-background" v-if="!status.deleted" v-bind:class="{ 'expanded-status': !expandable }">
+  <div class="status-el base00-background" v-if="!status.deleted">
     <template v-if="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>
@@ -121,10 +121,6 @@
      }
  }
 
- .expanded-status {
-   border-left: 4px solid rgba(255, 48, 16, 0.65);
- }
-
  .status-actions {
      padding-top: 5px;
  }
@@ -160,4 +156,8 @@
    border-radius: 1em;
    margin-bottom: 1em;
  }
+
+ .conversation .status-el {
+   border-left: 4px solid rgba(255, 48, 16, 0.65);
+ }
 </style>