Browse Source

Merge branch 'staging' of github.com:mbliznikova/pixelfed into staging

mbliznikova 1 year ago
parent
commit
a8f78aa2ab

+ 26 - 0
resources/assets/components/Post.vue

@@ -37,6 +37,8 @@
 						v-on:bookmark="handleBookmark()"
 						v-on:bookmark="handleBookmark()"
 						v-on:share="shareStatus()"
 						v-on:share="shareStatus()"
 						v-on:unshare="unshareStatus()"
 						v-on:unshare="unshareStatus()"
+						v-on:follow="follow()"
+						v-on:unfollow="unfollow()"
 						v-on:counter-change="counterChange"
 						v-on:counter-change="counterChange"
 						/>
 						/>
 				</div>
 				</div>
@@ -333,6 +335,30 @@
 				})
 				})
 			},
 			},
 
 
+			follow() {
+				axios.post('/api/v1/accounts/' + this.post.account.id + '/follow')
+				.then(res => {
+					this.$store.commit('updateRelationship', [res.data]);
+					this.user.following_count++;
+					this.post.account.followers_count++;
+				}).catch(err => {
+					swal('Oops!', 'An error occurred when attempting to follow this account.', 'error');
+					this.post.relationship.following = false;
+				});
+			},
+
+			unfollow() {
+				axios.post('/api/v1/accounts/' + this.post.account.id + '/unfollow')
+				.then(res => {
+					this.$store.commit('updateRelationship', [res.data]);
+					this.user.following_count--;
+					this.post.account.followers_count--;
+				}).catch(err => {
+					swal('Oops!', 'An error occurred when attempting to unfollow this account.', 'error');
+					this.post.relationship.following = true;
+				});
+			},
+
 			openContextMenu() {
 			openContextMenu() {
 				this.$nextTick(() => {
 				this.$nextTick(() => {
 					this.$refs.contextMenu.open();
 					this.$refs.contextMenu.open();

+ 17 - 0
resources/assets/js/components/ComposeModal.vue

@@ -1084,6 +1084,16 @@ export default {
 			return App.util.format.timeAgo(ts);
 			return App.util.format.timeAgo(ts);
 		},
 		},
 
 
+		formatBytes(bytes, decimals = 2) {
+			if (!+bytes) {
+				return '0 Bytes'
+			}
+			const dec = decimals < 0 ? 0 : decimals
+			const units = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
+			const quotient = Math.floor(Math.log(bytes) / Math.log(1024))
+			return `${parseFloat((bytes / Math.pow(1024, quotient)).toFixed(dec))} ${units[quotient]}`
+		},
+
 		fetchProfile() {
 		fetchProfile() {
 			let tags = {
 			let tags = {
 				public: 'Public',
 				public: 'Public',
@@ -1194,6 +1204,13 @@ export default {
 					}, 300);
 					}, 300);
 				}).catch(function(e) {
 				}).catch(function(e) {
 					switch(e.response.status) {
 					switch(e.response.status) {
+						case 413:
+							self.uploading = false;
+							io.value = null;
+							swal('File is too large', 'The file you uploaded has the size of ' + self.formatBytes(io.size) + '. Unfortunately, only images up to ' + self.formatBytes(self.config.uploader.max_photo_size  * 1024) + ' are supported.\nPlease resize the file and try again.', 'error');
+							self.page = 2;
+							break;
+
 						case 451:
 						case 451:
 							self.uploading = false;
 							self.uploading = false;
 							io.value = null;
 							io.value = null;

+ 1 - 1
resources/views/profile/show.blade.php

@@ -20,7 +20,7 @@
 
 
 @endsection
 @endsection
 
 
-@push('meta')<meta property="og:description" content="{{$profile->bio}}">
+@push('meta')<meta property="og:description" content="{{strip_tags($profile->bio)}}">
 	@if(false == $settings['crawlable'] || $profile->remote_url)
 	@if(false == $settings['crawlable'] || $profile->remote_url)
 	<meta name="robots" content="noindex, nofollow">
 	<meta name="robots" content="noindex, nofollow">
 	@else  <meta property="og:image" content="{{$profile->avatarUrl()}}">
 	@else  <meta property="og:image" content="{{$profile->avatarUrl()}}">