浏览代码

Update Collections, add custom limit

Daniel Supernault 4 年之前
父节点
当前提交
048642bead

+ 4 - 3
app/Http/Controllers/CollectionController.php

@@ -121,8 +121,9 @@ class CollectionController extends Controller
         $collection = Collection::whereProfileId($profileId)->findOrFail($collectionId);
         $count = $collection->items()->count();
 
-        if($count >= 50) {
-            abort(400, 'You can only add 50 posts per collection');
+        $max = config('pixelfed.max_collection_length');
+        if($count >= $max) {
+            abort(400, 'You can only add '.$max.' posts per collection');
         }
 
         $status = Status::whereScope('public')
@@ -165,7 +166,7 @@ class CollectionController extends Controller
         if($collection->visibility !== 'public') {
             abort_if(!Auth::check() || Auth::user()->profile_id != $collection->profile_id, 404);
         }
-        $posts = $collection->posts()->orderBy('order', 'asc')->paginate(18);
+        $posts = $collection->posts()->orderBy('order', 'asc')->get();
 
         $fractal = new Fractal\Manager();
         $fractal->setSerializer(new ArraySerializer());

+ 3 - 1
app/Util/Site/Config.php

@@ -8,7 +8,7 @@ use Illuminate\Support\Str;
 class Config {
 
 	public static function get() {
-		return Cache::remember('api:site:configuration', now()->addMinutes(30), function() {
+		return Cache::remember('api:site:configuration:_v0', now()->addHours(30), function() {
 			return [
 				'open_registration' => config('pixelfed.open_registration'),
 				'uploader' => [
@@ -17,6 +17,8 @@ class Config {
 					'album_limit' => config('pixelfed.max_album_length'),
 					'image_quality' => config('pixelfed.image_quality'),
 
+					'max_collection_length' => config('pixelfed.max_collection_length', 18),
+
 					'optimize_image' => config('pixelfed.optimize_image'),
 					'optimize_video' => config('pixelfed.optimize_video'),
 

+ 1 - 0
config/pixelfed.php

@@ -239,6 +239,7 @@ return [
         ]
     ],
 
+    'max_collection_length' => (int) env('PF_MAX_COLLECTION_LENGTH', 18),
 
     'media_types' => env('MEDIA_TYPES', 'image/jpeg,image/png,image/gif'),
 

+ 2 - 1
resources/assets/js/components/CollectionComponent.vue

@@ -161,6 +161,7 @@ export default {
 
 	data() {
 		return {
+			config: window.App.config,
 			loaded: false,
 			posts: [],
 			ids: [],
@@ -243,7 +244,7 @@ export default {
 		},
 
 		pushId() {
-			let max = 18;
+			let max = this.config.uploader.max_collection_length;
 			let addingPostToCollection = true;
 			let self = this;
 			if(this.posts.length >= max) {

+ 2 - 1
resources/assets/js/components/CollectionCompose.vue

@@ -113,6 +113,7 @@ export default {
 	props: ['collection-id', 'profile-id'],
 	data() {
 		return {
+			config: window.App.config,
 			loaded: false,
 			limit: 8,
 			step: 1,
@@ -175,7 +176,7 @@ export default {
 		},
 
 		addId() {
-			let max = 18;
+			let max = this.config.uploader.max_collection_length;
 			if(this.posts.length >= max) {
 				swal('Error', 'You can only add ' + max + ' posts per collection', 'error');
 				return;

+ 1 - 1
resources/assets/js/components/Timeline.vue

@@ -345,7 +345,7 @@
 				<footer>
 					<div class="container pb-5">
 						<p class="mb-0 text-uppercase font-weight-bold text-muted small">
-							<a href="/site/about" class="text-dark pr-2">About Us</a>
+							<a href="/site/about" class="text-dark pr-2">About</a>
 							<a href="/site/help" class="text-dark pr-2">Help</a>
 							<a href="/site/language" class="text-dark pr-2">Language</a>
 							<a href="/discover/profiles" class="text-dark pr-2">Profiles</a>