159 Commits

Author SHA1 Message Date
f443364721 paginate mods 2024-09-11 09:25:02 -04:00
90aeecc6d8 fix user-stack showing wrong name in dialog title 2024-09-11 09:24:43 -04:00
affb0d11f7 add sections bar to profile page
mods and about sections WIP. Also adjusted user-stack tooltip position
slightly
2024-09-10 13:31:59 -04:00
a07e64ff51 Merge remote-tracking branch 'upstream/develop' into user-profile-info 2024-09-10 11:57:59 -04:00
8211731c32 remove clear filters call 2024-09-10 09:20:53 -04:00
ed2091fb23 remove session properties 2024-09-10 09:10:16 -04:00
75ebc827dc
Carbon dynamicFormat macro
Adds a dynamicFormat macro/method on the Carbon facade to handle the logic of conditionally formatting the dates based on the difference to the current time.

Logic pulled from #48 (Thanks Waffle!)
Issue #45
2024-09-09 23:14:30 -04:00
0a271ff03e add link to sections 2024-09-09 16:20:54 -04:00
164a649cd4
Removes old SPT versions from search results
The global search results are now limited to mods tagged with the last three minor SPT versions, like the mod listing filters.

I'm not 100% sure about this change. Open to suggestions and revisiting this in the future.

Resolves #26
2024-09-08 22:06:52 -04:00
ffd5117028
Renames $availableSptVersions to $activeSptVersions in Mod Listing 2024-09-08 22:00:26 -04:00
4ba181900e add test 2024-09-01 23:42:44 -04:00
aabf5a1b44 improve user stack auth user following checks
and some UI tweaks
2024-08-31 22:40:36 -04:00
73cb9a9ccf Merge remote-tracking branch 'upstream/develop' into user-profile-info 2024-08-31 15:17:26 -04:00
16e3a67efd
Query Optimization
- Download counts were taking too long to calculate dynamically, so we're keeping track of a total count with observers and queued job.
- Optimized the SQL used to order a mod listing by mod version update times.
2024-08-31 01:19:22 -04:00
09771d233a
Mod Filter Page - SPT Versions
Updated the mod filter page to only show SPT versions that have been tagged by mod versions.
2024-08-30 23:13:46 -04:00
6c86d6b370 Merge remote-tracking branch 'upstream/develop' into user-profile-info 2024-08-30 10:36:41 -04:00
97ed77dad7 use livewire for profile
also following is in but needs a little more work (future problems)
2024-08-30 10:32:09 -04:00
239b10ca9d user stack and follows WIP 2024-08-29 21:50:59 -04:00
4b3d04ff54
Mod Filter - Redirect To Last Page
If the page you're on doesn't have any results, then redirect to the last page that does.
2024-08-29 16:45:11 -04:00
05f2dfc258 work dump WIP 2024-08-29 16:25:55 -04:00
1783a683ed
Semvar & Automatic Resolution - Remix
- Updated the SptVersion and ModVersion dependancies to resolve *all* compatible versions and introduced new relationships to pull just the latest compatible version. Had to rewrite a *bunch*, but it should be much more capable now. It can be expensive to resolve these properties when iterated over, so *make sure they're eager loaded using the `with` method when you're building the queries*.
- Updated the mod listing Livewire component to save the filter options within the PHP session instead of in browser local storage. *Much* cleaner.
- Removed caching from homepage queries to see how they preform on production. Will add back later.
- Updated ModVersion factory to create SptVersions if there are none specified.
- Probably lots of other changes too... I need to make smaller commits. :(
2024-08-29 15:46:10 -04:00
a7cd60a164 add user follows 2024-08-28 16:59:28 -04:00
db578071e4
SPT Semvar & Automatic Resolution
This update gives mod versions a supported SPT version field that accepts a semantic version. The latest supported SPT version will be automatically resolved based on the semvar.

Next up: I need to update the ModVersion to SptVersion relationship to be a many-to-many and expand the resolution to resolve multiple versions.
2024-08-22 17:04:07 -04:00
e3d1e74901
Featured Ribbon
Adds a featured ribbon to featured mods so that they can be visually distinct within the listing.
2024-08-16 00:11:47 -04:00
189275fb0c
Saves Filters to Local Storage
The filters on the mod listing page are now also saved to the browser's local storage system. This means you can set a bunch of filters and a sort order, browse away (or close the browser), and the next time you visit the page the site will remember the filters that you had set.
2024-08-15 23:45:17 -04:00
41714f337f
Filter Count
A count of the number of filters currently applied is now displayed.
2024-08-15 23:05:48 -04:00
7fe1fad01b
Mod Listing Page Changes
- Updated visual look of the listing to include all filters at the top of the page
- Updated SPT version filter to be able to filter more than one version at a time (defaults to current minor version)
- Moved location of Livewire components into subfolder
- Moved query building methods for the listing into a `ModFilter` class
- Adds a `isLatestMinor` method on the SptVersion model that checks if the current version number is of the latest minor version release
- Livewire filter properties are now saved to the URL when changed
- Updated the top navigation link to include a "Mods" menu item.

TODO:
- Search codebase for "TODO". I've left notes. :|
2024-08-15 17:57:35 -04:00
cc3cdddce3 display filtered spt version 2024-08-12 11:20:03 -04:00
651979ccea Merge remote-tracking branch 'upstream/develop' into impl/mod-listing-page 2024-08-10 14:15:11 -04:00
a679cec98d wire up spt version filter
this isn't working correctly from what I can tell, but it's a start.
2024-08-10 14:04:00 -04:00
3d5697e04b
Mod Teaser Updates
- Updates the import script to import the full mod teaser text, up to 255 characters.
- Updates mod detail page to show teaser in the main detail card.
- Updates mod listing component to show the first 100 characters of the teaser.
- Adjusts padding on the mod listing component.

Resolves #22
2024-08-09 15:22:42 -04:00
593b44150c
Resolves Mod Detail Page Version Issue
The latest version on the mod detail page was being selected by created date instead of highest version number. This has been resolved. Also adds a test for this issue.
2024-08-09 12:35:46 -04:00
5c02d237e3 add featured section filter 2024-08-09 11:45:53 -04:00
c1e73dc73b Merge remote-tracking branch 'upstream/develop' into impl/mod-listing-page 2024-08-09 11:31:00 -04:00
9244d48713 wire up search and section filters 2024-08-09 11:21:46 -04:00
7acdee1b6c switch to using livewire 2024-08-09 10:15:05 -04:00
713ea7e076
Download Number Macro
Adds a `Number:downloads()` macro to format the number of downloads depending on how many there are. Example: 1259000 is converted into 1.25M, 125900 is converted into 125.9K.

Updated the views to use this macro. Also included a title tag with the exact number so they can be viewed on hover.
2024-08-09 00:35:18 -04:00
23a9cabf99
Implements API Sorting
You can now sort mod and user data by whitelisted attributes.
2024-08-08 18:18:05 -04:00
3a334033fe
API Updates
Brings the API in close sync to the rest of the site.
- Adds resources for License, UserRole, and ModVersion models
- Adds filtering on attribute data
- The `includes` data is now disabled by default and available conditionally
2024-08-08 16:11:50 -04:00
0ed25fec03
User API Updates
Adds user profile links to the user API resource.
Fixes structure of relationship data and link sections.
Adds parameter to include related user data when requesting mod data.
2024-08-07 23:30:09 -04:00
35cd00e39d
Adds Cover Photo Field
Adds the cover photo field to the Jetstream edit profile form.
2024-08-07 16:23:55 -04:00
b868b5a75c setup mod index pagination 2024-08-07 14:33:11 -04:00
632799cb44 Merge remote-tracking branch 'upstream/develop' into impl/mod-listing-page 2024-08-05 09:31:20 -04:00
55273e5a90
Hub Imports of User Avatars and Cover Photos
TODO: Cover photos need to be added to the profile page so users can edit them.
2024-08-03 17:36:33 -04:00
11453db596
Model Comments, Yay! 2024-08-03 17:36:33 -04:00
115f81fe96
Basic structure to load user profile view 2024-08-03 17:34:41 -04:00
2680e21325
Import Script - Temp Table Charset/Collation
Sets the charset to `utf8mb4` and the collation to `utf8mb4_0900_ai_ci` when the temporary tables are created in the import script. Prevents conversion errors when the MySQL defaults are not set to match the expected charset and collation.
2024-08-03 12:06:01 -04:00
5d6dcd4a2c setup mod index page 2024-08-02 12:23:05 -04:00
c6f252ace7
Mod Version Dependency Updates
- Handles circular mod version dependencies
- Optimizes mod show query to only pull the versions relationship
- Adds a mod dependency factory
- Refactored tests to use mod dependency factory
- Adds mod dependency generation into the default seeder
- Adds unique index on mod dependencies table
- Adds mod dependencies on the mod show view
2024-08-01 17:15:02 -04:00
20e1ab2dae
Import Script, Published Date
Updates the import script to ignore any scopes on the Mod and ModVersion models when making inserts. Adds the `published_at` field.
2024-08-01 17:03:03 -04:00