diff --git a/app/Services/ComputerScienceResourceService.php b/app/Services/ComputerScienceResourceService.php index 22827945..84feb8a4 100644 --- a/app/Services/ComputerScienceResourceService.php +++ b/app/Services/ComputerScienceResourceService.php @@ -5,7 +5,6 @@ use App\Exceptions\Resources\ResourceAlreadyCreatedException; use App\Exceptions\Resources\ResourceInvalidTabException; use App\Models\ComputerScienceResource; -use App\Models\NewsPost; use App\Models\ResourceEdits; use App\Models\ResourceReview; use App\Services\SortingManagers\ResourceSortingManager; @@ -18,6 +17,7 @@ class ComputerScienceResourceService { + // TODO: Make a service for ComputerScienceResources public function __construct( protected CommentService $commentService, protected UpvoteService $upvoteService, @@ -36,19 +36,22 @@ public function __construct( */ public function getIndexData(Request $request): array { - $query = ComputerScienceResource::query(); + $resources_query = ComputerScienceResource::query(); // Apply filters and sorting through the dedicated filter service $filters = $request->query(); - $query = $this->filterService->applyFilters($query, $filters); + $resources_query = $this->filterService->applyFilters($resources_query, $filters); - $resources = $query->paginate(20)->appends($request->query()); + $resources = $resources_query->paginate(20)->appends($request->query()); - $news = NewsPost::limit(10)->get(); + // TODO (TEMP): will replace with user activity or something + + $hot_resources_query = ComputerScienceResource::query()->with(['tags', 'votes', 'upvoteSummary', 'reviewSummary', 'commentsCountRelationship']); + $hot_resources = $this->resourceSortingManager->applySort($hot_resources_query, 'hot')->limit(10)->get(); return [ 'resources' => $resources, - 'news_posts' => $news, + 'hot_resources' => $hot_resources, ]; } @@ -152,7 +155,7 @@ function () use ($computerScienceResource, $sortBy, $request) { function () use ($computerScienceResource, $sortBy, $request) { try { $query = ResourceEdits::whereBelongsTo($computerScienceResource); - $query = $this->resourceSortingManager->applySort($query, $sortBy, ResourceEdits::class); + $query = $this->resourceSortingManager->applySort($query, $sortBy); return $query->with('user')->paginate(10)->appends($request->query()); } catch (Throwable $e) { diff --git a/package-lock.json b/package-lock.json index 9f476072..5d9a23e8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "ComputerScienceResources.com", + "name": "html", "lockfileVersion": 3, "requires": true, "packages": { @@ -2989,9 +2989,9 @@ "license": "MIT" }, "node_modules/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz", + "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==", "dev": true, "license": "BSD-3-Clause", "dependencies": { diff --git a/resources/js/Components/News/NewsDialog.vue b/resources/js/Components/News/NewsDialog.vue index 0738e6a4..371bf689 100644 --- a/resources/js/Components/News/NewsDialog.vue +++ b/resources/js/Components/News/NewsDialog.vue @@ -1,6 +1,6 @@ - + - + - + - - + diff --git a/resources/js/Components/NewsItem.vue b/resources/js/Components/NewsItem.vue deleted file mode 100644 index e29015b1..00000000 --- a/resources/js/Components/NewsItem.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - {{ news.title }} - - - - - - {{ news.excerpt }} - - - diff --git a/resources/js/Components/TrendingResourceItem.vue b/resources/js/Components/TrendingResourceItem.vue new file mode 100644 index 00000000..71335a64 --- /dev/null +++ b/resources/js/Components/TrendingResourceItem.vue @@ -0,0 +1,41 @@ + + + + + + + + + + + {{ resource.upvotes_count || resource.vote_score }} + + + + + {{ resource.name }} + + + + + + {{ resource.excerpt || resource.description }} + + + + + diff --git a/resources/js/Pages/Resources/Index.vue b/resources/js/Pages/Resources/Index.vue index 7718d638..5091aa1d 100644 --- a/resources/js/Pages/Resources/Index.vue +++ b/resources/js/Pages/Resources/Index.vue @@ -7,7 +7,7 @@ import ResourcesTable from "@/Components/Resources/ResourcesTable.vue"; import NewsSection from "@/Components/News/NewsSection.vue"; const props = defineProps({ resources: Object, - news_posts: Array, + hot_resources: Array, }); @@ -36,7 +36,8 @@ const props = defineProps({ - + +
- {{ news.excerpt }} -
+ {{ resource.excerpt || resource.description }} +