Browse Source

Update Activity component, add at (@) symbol for remote profiles and local urls for remote posts and profile

Daniel Supernault 4 năm trước cách đây
mục cha
commit
a2211815d4

+ 28 - 12
resources/assets/js/components/Activity.vue

@@ -19,42 +19,42 @@
 						<div class="media-body font-weight-light">
 						<div class="media-body font-weight-light">
 							<div v-if="n.type == 'favourite'">
 							<div v-if="n.type == 'favourite'">
 								<p class="my-0">
 								<p class="my-0">
-									<a :href="n.account.url" class="font-weight-bold text-dark word-break" data-placement="bottom" data-toggle="tooltip" :title="n.account.username">{{truncate(n.account.username)}}</a> liked your <a class="font-weight-bold" v-bind:href="n.status.url">post</a>.
+									<a :href="getProfileUrl(n.account)" class="font-weight-bold text-dark word-break" data-placement="bottom" data-toggle="tooltip" :title="n.account.username">{{n.account.local == false ? '@':''}}{{truncate(n.account.username)}}</a> liked your <a class="font-weight-bold" v-bind:href="getPostUrl(n.status)">post</a>.
 								</p>
 								</p>
 							</div>
 							</div>
 							<div v-else-if="n.type == 'comment'">
 							<div v-else-if="n.type == 'comment'">
 								<p class="my-0">
 								<p class="my-0">
-									<a :href="n.account.url" class="font-weight-bold text-dark word-break" data-placement="bottom" data-toggle="tooltip" :title="n.account.username">{{truncate(n.account.username)}}</a> commented on your <a class="font-weight-bold" v-bind:href="n.status.url">post</a>.
+									<a :href="getProfileUrl(n.account)" class="font-weight-bold text-dark word-break" data-placement="bottom" data-toggle="tooltip" :title="n.account.username">{{n.account.local == false ? '@':''}}{{truncate(n.account.username)}}</a> commented on your <a class="font-weight-bold" v-bind:href="getPostUrl(n.status)">post</a>.
 								</p>
 								</p>
 							</div>
 							</div>
 							<div v-else-if="n.type == 'mention'">
 							<div v-else-if="n.type == 'mention'">
 								<p class="my-0">
 								<p class="my-0">
-									<a :href="n.account.url" class="font-weight-bold text-dark word-break" data-placement="bottom" data-toggle="tooltip" :title="n.account.username">{{truncate(n.account.username)}}</a> <a class="font-weight-bold" v-bind:href="mentionUrl(n.status)">mentioned</a> you.
+									<a :href="getProfileUrl(n.account)" class="font-weight-bold text-dark word-break" data-placement="bottom" data-toggle="tooltip" :title="n.account.username">{{n.account.local == false ? '@':''}}{{truncate(n.account.username)}}</a> <a class="font-weight-bold" v-bind:href="mentionUrl(n.status)">mentioned</a> you.
 								</p>
 								</p>
 							</div>
 							</div>
 							<div v-else-if="n.type == 'follow'">
 							<div v-else-if="n.type == 'follow'">
 								<p class="my-0">
 								<p class="my-0">
-									<a :href="n.account.url" class="font-weight-bold text-dark word-break" data-placement="bottom" data-toggle="tooltip" :title="n.account.username">{{truncate(n.account.username)}}</a> followed you.
+									<a :href="getProfileUrl(n.account)" class="font-weight-bold text-dark word-break" data-placement="bottom" data-toggle="tooltip" :title="n.account.username">{{n.account.local == false ? '@':''}}{{truncate(n.account.username)}}</a> followed you.
 								</p>
 								</p>
 							</div>
 							</div>
 							<div v-else-if="n.type == 'share'">
 							<div v-else-if="n.type == 'share'">
 								<p class="my-0">
 								<p class="my-0">
-									<a :href="n.account.url" class="font-weight-bold text-dark word-break" data-placement="bottom" data-toggle="tooltip" :title="n.account.username">{{truncate(n.account.username)}}</a> shared your <a class="font-weight-bold" v-bind:href="n.status.reblog.url">post</a>.
+									<a :href="getProfileUrl(n.account)" class="font-weight-bold text-dark word-break" data-placement="bottom" data-toggle="tooltip" :title="n.account.username">{{n.account.local == false ? '@':''}}{{truncate(n.account.username)}}</a> shared your <a class="font-weight-bold" v-bind:href="getPostUrl(n.status)">post</a>.
 								</p>
 								</p>
 							</div>
 							</div>
 							<div v-else-if="n.type == 'modlog'">
 							<div v-else-if="n.type == 'modlog'">
 								<p class="my-0">
 								<p class="my-0">
-									<a :href="n.account.url" class="font-weight-bold text-dark word-break" :title="n.account.username">{{truncate(n.account.username)}}</a> updated a <a class="font-weight-bold" v-bind:href="n.modlog.url">modlog</a>.
+									<a :href="getProfileUrl(n.account)" class="font-weight-bold text-dark word-break" :title="n.account.username">{{truncate(n.account.username)}}</a> updated a <a class="font-weight-bold" v-bind:href="n.modlog.url">modlog</a>.
 								</p>
 								</p>
 							</div>
 							</div>
 							<div v-else-if="n.type == 'tagged'">
 							<div v-else-if="n.type == 'tagged'">
 								<p class="my-0">
 								<p class="my-0">
-									<a :href="n.account.url" class="font-weight-bold text-dark word-break" :title="n.account.username">{{truncate(n.account.username)}}</a> tagged you in a <a class="font-weight-bold" v-bind:href="n.tagged.post_url">post</a>.
+									<a :href="getProfileUrl(n.account)" class="font-weight-bold text-dark word-break" :title="n.account.username">{{n.account.local == false ? '@':''}}{{truncate(n.account.username)}}</a> tagged you in a <a class="font-weight-bold" v-bind:href="n.tagged.post_url">post</a>.
 								</p>
 								</p>
 							</div>
 							</div>
 							<div v-else-if="n.type == 'direct'">
 							<div v-else-if="n.type == 'direct'">
 							<p class="my-0">
 							<p class="my-0">
-								<a :href="n.account.url" class="font-weight-bold text-dark word-break" :title="n.account.username">{{truncate(n.account.username)}}</a> sent a <a class="font-weight-bold" v-bind:href="'/account/direct/t/'+n.account.id">dm</a>.
+								<a :href="getProfileUrl(n.account)" class="font-weight-bold text-dark word-break" :title="n.account.username">{{n.account.local == false ? '@':''}}{{truncate(n.account.username)}}</a> sent a <a class="font-weight-bold" v-bind:href="'/account/direct/t/'+n.account.id">dm</a>.
 							</p>
 							</p>
 						</div>
 						</div>
 							<div class="align-items-center">
 							<div class="align-items-center">
@@ -63,7 +63,7 @@
 						</div>
 						</div>
 						<div>
 						<div>
 							<div v-if="n.status && n.status && n.status.media_attachments && n.status.media_attachments.length">
 							<div v-if="n.status && n.status && n.status.media_attachments && n.status.media_attachments.length">
-								<a :href="n.status.url">
+								<a :href="getPostUrl(n.status)">
 									<img :src="n.status.media_attachments[0].preview_url" width="32px" height="32px">
 									<img :src="n.status.media_attachments[0].preview_url" width="32px" height="32px">
 								</a>
 								</a>
 							</div>
 							</div>
@@ -83,7 +83,7 @@
 									Follow
 									Follow
 								</a>
 								</a>
 							</div> -->
 							</div> -->
-							
+
 							<!-- <div v-else-if="n.status && n.status.parent && !n.status.parent.media_attachments && n.type == 'like' && n.relationship.following == false">
 							<!-- <div v-else-if="n.status && n.status.parent && !n.status.parent.media_attachments && n.type == 'like' && n.relationship.following == false">
 								<a href="#" class="btn btn-primary py-0 font-weight-bold">
 								<a href="#" class="btn btn-primary py-0 font-weight-bold">
 									Follow
 									Follow
@@ -226,7 +226,7 @@ export default {
 
 
 		followProfile(n) {
 		followProfile(n) {
 			let self = this;
 			let self = this;
-			let id = n.account.id; 
+			let id = n.account.id;
 			axios.post('/i/follow', {
 			axios.post('/i/follow', {
 					item: id
 					item: id
 			}).then(res => {
 			}).then(res => {
@@ -264,6 +264,22 @@ export default {
 			}
 			}
 			return '/';
 			return '/';
 		},
 		},
+
+		getProfileUrl(account) {
+			if(account.local == true) {
+				return account.url;
+			}
+
+			return '/i/web/profile/_/' + account.id;
+		},
+
+		getPostUrl(status) {
+			if(status.local == true) {
+				return status.url;
+			}
+
+			return '/i/web/post/_/' + status.account.id + '/' + status.id;
+		}
 	}
 	}
 }
 }
-</script>
+</script>