Commit graph

935 commits

Author SHA1 Message Date
Pat Hartl
32e0bfd3b6 Fix state changes when linking to HQ 2026-05-10 21:38:55 -05:00
Pat Hartl
b5e93cbb88 Fix completion rendering 2026-05-10 19:53:41 -05:00
Pat Hartl
885032547b Improve script editor with context-aware completions, validation, and UX
- Filter variable completions and hover by script type so only relevant variables appear (e.g. $AllocatedKey only in KeyChange scripts)
- Add inline validation warnings for package scripts missing New-Package and for variables used outside their valid script type
- Extend debug console to support tools and redistributables, add stop button and elapsed time display
- Disable minimap, enable bracket pair colorization and word wrap
- Add snippet insertion via Monaco snippet controller with selection replacement support
- Add script templates that auto-populate on new script creation
- Add Variables dropdown in editor toolbar based on current script type
- Change Add Script button to type-selection dropdown, auto-populate script name from type, remove Type field from editor dialog
- Move Requires Admin checkbox to toolbar row, move toolbar and editor outside Form to prevent dropdown clicks from closing the modal
- Set MaskClosable=false on script editor modals so Monaco autocomplete clicks don't dismiss the dialog
2026-05-10 19:33:48 -05:00
Pat Hartl
302667e544 Remove hard-coded variable snippets 2026-05-10 19:22:26 -05:00
Pat Hartl
c1f0f4c7db Cleanup import files after completion 2026-05-07 23:40:17 -05:00
Pat Hartl
0e978dabc3 Fix orphaned files tool 2026-05-07 23:39:58 -05:00
Pat Hartl
2ca08fdec5 Fix archives not downloading for redists 2026-05-07 23:39:46 -05:00
Pat Hartl
8d25b20c62 Add LANCommander HQ metadata/media provider 2026-05-07 01:11:41 -05:00
Pat Hartl
63ac3d1361 Automatically convert APNG to video 2026-05-01 01:14:13 -05:00
Pat Hartl
7e72df0651 Fix media grabbing 2026-05-01 01:10:58 -05:00
Pat Hartl
1efbde33d7 Allow multiple uploading for screenshots/videos. Add support for animated covers. 2026-04-30 23:47:15 -05:00
Pat Hartl
f0b85de93f Add multiple select support for media grabber 2026-04-30 02:16:17 -05:00
Pat Hartl
71de97e04f FIx preview page uploader. Add progress when downloading videos. Fix large video downloads. 2026-04-27 17:58:48 -05:00
Pat Hartl
d2da56ad11 Add streaming endpoint for media 2026-04-26 01:19:31 -05:00
Pat Hartl
f05a32c907 Add ffmpeg/yt-dlp checks / installers in settings 2026-04-24 02:26:09 -05:00
Pat Hartl
7d862e5dc5 Ensure yt-dlp and ffmpeg are installed via Docker 2026-04-24 02:06:30 -05:00
Pat Hartl
3fe6bea7e5 Added "Preview" edit view, flesh out media picker
- Added sort order to media for screenshots and videos
- Added new "Preview" pane to game editor. Simulates the game details view in the launcher and allows for in-place media upload / grabbing
- Added abstractions for media grabbing
- Added subtitle to media picker dialog to indicate which services provide which assets
- Added preview for videos
- Made media searching faster overall
2026-04-24 02:05:56 -05:00
Pat Hartl
415c804f7f Add missing method implementation 2026-04-12 20:00:18 -05:00
Pat Hartl
07ec314370 Fix .NET 10 build 2026-04-12 19:59:53 -05:00
Pat Hartl
c48bf31db1 Made allocation method on key nullable, added manual assign key dialog, reworked how the next available key is chosen 2026-04-12 19:58:47 -05:00
Pat Hartl
f9863043d1 Bump to .NET 10 2026-04-10 02:19:50 -05:00
Pat Hartl
afa20bee72 Merge branch 'avalonia-launcher' 2026-04-10 01:52:20 -05:00
Pat Hartl
0ab6ee5262 Basic chat window 2026-04-07 23:10:45 -05:00
akifreak
171c409ccc Pass correct archive ID to OnArchiveUploaded callback
Archive is the local form model used for version/changelog input.
On a new upload Archive.Id is Guid.Empty, so callers received an
empty GUID instead of the real database ID. Pass uploadedArchive.Id,
which is the record fetched from the database after the upload
completes.
2026-04-04 15:05:06 +02:00
akifreak
8254a212c3 Reset Uploading flag in finally block after Start()
If ChunkUploader.Start() threw a JS interop exception Uploading was
left as true permanently, disabling the Upload and Cancel buttons
for the rest of the session without any visible error. Using a
finally block ensures the flag is reset whether the call succeeds,
throws, or is cancelled.
2026-04-04 15:05:06 +02:00
akifreak
d61b8b2ae4 Fix FileMode.Append conflicting with explicit fs.Position seek
FileMode.Append forces all writes to the end of the file, making
fs.Position assignments ineffective. This works by accident on a
fresh sequential upload but will silently corrupt the file on any
retry, since chunks are re-sent from their original offset but land
at the current end instead. Use FileMode.OpenOrCreate so the seek
to chunk.Start is honoured.
2026-04-04 15:05:06 +02:00
akifreak
c37be528ca Require administrator authorization on upload endpoints
/api/Upload/Init and /api/Upload/Chunk had no authorization policy,
meaning any unauthenticated request could create archive database
records and write arbitrary data to server storage. Every other
endpoint group in the application requires authorization; apply
the same administrator role requirement here.
2026-04-04 15:05:06 +02:00
Pat Hartl
7deb435e98 Initial support for grid image, screenshots, video 2026-04-03 19:22:26 -05:00
akifreak
a7bd41ff9d Fix game archive upload in web ui
bundle.js is built by webpack as an ES module (output.library.type:
'module'), ending with named exports such as:

  export { Be as ChunkUploader, s as InfiniteScroll, ... }

All three inclusion sites (App.razor, _Layout.cshtml,
ScriptLoader.razor) loaded it via a plain <script> tag, which is for
classic scripts only and does not support the 'export' keyword.

Edge throws a visible SyntaxError and uploading does not work.

Fixed by adding type="module" to the bundle.js script tag in all three
locations.
2026-04-03 21:21:40 +02:00
Pat Hartl
bcfa9768fc Add ratings to DB. Add popular/backlog games to depot. 2026-04-01 23:13:33 -05:00
Pat Hartl
7cc857bcc8 Fix script editor bindings, update BlazorMonaco 2026-03-20 00:01:12 -05:00
Pat Hartl
7a7c154d49 Increased web socket message size. Fixes issue where changes in script editor for large scripts wouldn't take. 2026-03-19 23:58:06 -05:00
Pat Hartl
6276823f86 Fix variables on action run, populate server variables when retrieving actions 2026-03-15 17:15:50 -05:00
Pat Hartl
4a0e0115ec Fix saving scripts on Games, Tools, Redistributables 2026-03-13 00:45:21 -05:00
Pat Hartl
4fc488d90a Refresh tracked servers per engine on update/add 2026-03-11 23:27:33 -05:00
Pat Hartl
9ad5a236af Fix script downloading, code cleanup
Scripts are now grabbed from a separate request. This ensures that the contents of the scripts themselves don't muddy up the manifest model. This also opens up the potential to allow clients to redownload scripts without redownloading the entire game/tool/redist.
2026-03-11 19:36:24 -05:00
Pat Hartl
85e707b7a3 Fix form rendering logic for remote server credentials 2026-03-11 01:44:08 -05:00
Pat Hartl
8914da3d28 Fix form for adding remote server 2026-03-10 19:10:14 -05:00
Pat Hartl
2e46c6ecc5 Launcher: Only import games since last import 2026-03-09 22:12:57 -05:00
Pat Hartl
4817c00939 Update SharpCompress, move to async extraction, add logging per entry on fail 2026-03-09 22:12:09 -05:00
Pat Hartl
06a787bb78 Fix binding for default role 2026-03-08 15:39:37 -05:00
Pat Hartl
2e3d999eba Fix use of alert param 2026-03-08 15:12:12 -05:00
Pat Hartl
7cfaeb1255 Fix use of color 2026-03-08 14:59:11 -05:00
Pat Hartl
53b9064418 Fix saving of new server scripts 2026-03-08 14:10:41 -05:00
Pat Hartl
115c9b02f3 Fix media thumbnails not loading after new media added 2026-03-08 13:56:51 -05:00
Pat Hartl
de38e609a5 Add remote LANCommander server installs as viable server engine 2026-03-08 13:49:30 -05:00
Pat Hartl
2a604eec74 Add snippets path input to settings 2026-03-04 23:49:57 -06:00
Pat Hartl
f318348438 Fix setting duplication 2026-03-04 23:46:17 -06:00
Pat Hartl
99eeb4193f Rework metadata lookup to support multiple providers, merging 2026-03-03 22:29:41 -06:00
Pat Hartl
ab300587c5 Increase buffer size for downloads, avoid throttling large responses via kestrel
Some checks failed
LANCommander Release / prep (push) Failing after 19s
LANCommander Release / build_server_linux_arm64 (push) Has been skipped
LANCommander Release / build_server_linux_x64 (push) Has been skipped
LANCommander Release / build_server_osx_arm64 (push) Has been skipped
LANCommander Release / build_server_osx_x64 (push) Has been skipped
LANCommander Release / build_server_win_arm64 (push) Has been skipped
LANCommander Release / build_server_win_x64 (push) Has been skipped
LANCommander Release / build_launcher_linux_arm64 (push) Has been skipped
LANCommander Release / build_launcher_linux_x64 (push) Has been skipped
LANCommander Release / build_launcher_osx_arm64 (push) Has been skipped
LANCommander Release / build_launcher_osx_x64 (push) Has been skipped
LANCommander Release / build_launcher_win_arm64 (push) Has been skipped
LANCommander Release / build_launcher_win_x64 (push) Has been skipped
LANCommander Release / build_release (push) Has been skipped
2026-02-17 00:30:27 -06:00