Age | Commit message (Collapse) | Author |
|
Shows an error message if retrieving release notes failed instead of just doing nothing.
|
|
Instead of passing individual args to `launch_northstar` in the backend, pass a single object.
The idea here being that said object can later easily be extended with more fields such as launch args for Northstar
|
|
instead of a separate dedicated function
|
|
Introduces a notification menu, which hosts notifications fired while the app was not focused.
Notifications can be closed by the user.
|
|
to `_wrapper`
To prepare for moving those functions to modules
|
|
Refetches profiles every time we open the SettingsView. Removes superfluous profile fetch on application launch.
|
|
|
|
Adds a dropdown menu to settings that allows selecting a different profile.
Currently gated behind dev mode being active.
|
|
* chore: Delete leftover type definition file
* feat: Generate InstallType from Rust enum
* fix: Use new generated struct
|
|
Passes the whole `GameInstall` object instead of individual path to functions related to PR installs.
This is done in preparation for #444
|
|
This allows for later extending for installing in the appropriate profile
|
|
We should always pass the whole object instead of just a field for easier expandability in the future
Co-authored-by: Jan200101 <sentrycraft123@gmail.com>
|
|
Add Profile to GameInstall
Replace hardcoded uses of R2Northstar with profile attribute
|
|
Just fixes a single typo in a comment
|
|
We pass the `GameInstall` object to backend on most calls, yet we store the parameters individually in frontend.
This PR resolves that by storing the whole object instead of individual parameters, simplifying a lot of the code that calls the backend.
* chore: Store game_path and install_type as GameInstall in store
* Add missed uses of old attributes
* fix: Update missed attribute in DevView
* fix: Update missed attribute in SettingsView
* refactor: Update functions to use new object
in RepairView
* Initialize game_install as empty object
---------
Co-authored-by: GeckoEidechse <gecko.eidechse+git@pm.me>
|
|
* fix: don't show deprecated mods
* feat: add setting to settings view
* feat: display deprecated mod cards in red
|
|
* refactor: Change error message to mention EA App
instead of Origin
* refactor: Rename function to refer to EA App
* refactor: Rename function to mention EA and Origin
* style: Fix formatting
* refactor: Update translation text to EA App
* refactor: Change emit name to EA App
instead of Origin
* docs: Update comment to mention EA App
|
|
* refactor: Remove caller pattern for `launch_northstar`
* refactor: Remove caller pattern for `check_is_flightcore_outdated`
* refactor: Remove caller pattern for `get_host_os`
* refactor: Remove caller pattern for `find_game_install_location`
* refactor: Remove caller pattern for `launch_northstar_steam`
* fix: Update function call names in frontend
* refactor: Remove caller pattern for `get_northstar_version_number`
* fix: Address clippy issues
* refactor: Rename function to remove `_caller` suffix
|
|
* fix: Do not crash if not able to connect to TS
Removes a bunch of `unwrap`s that would cause the thread to crash if
connection to Thunderstore failed.
* feat: Show failure notification in frontend
|
|
|
|
* feat: store dev mode state in persistent store
* feat: display dev view on app launch if it was previously activated
* refactor: separate debug and developper modes activation
* docs: update debug/dev modes comment
|
|
* feat: wrap ElNotification class in a showNotification method
* refactor: replace notification invocations in mod views
* feat: add 'info' type to showNotification method
* refactor: replace notification invocations in repair view
* refactor: replace notification invocations in settings view
* refactor: replace notification invocations in developer view
* feat: showNotification method now returns a NotificationHandle
* feat: showNotification has a duration argument
* refactor: replace notification invocations in pull requests module
* refactor: replace notification invocation in repair view
* refactor: replace notification invocations in UI store
* refactor: remove unused import from play view
* refactor: use showErrorNotification method to wrap up error display
* fix: add missing showErrorNotification imports
* style: format code
* style: format ThunderstoreModCard.vue
* style: format pull_requests.ts
* style: format SettingsView.vue
* style: format RepairView.vue
* style: format DeveloperView.vue
* refactor: remove useless import
* refactor: add missing showErrorNotification invocation
* feat: showErrorNotification has an optional title argument
* style: format LocalModsView.vue
|
|
* fix: Chanege enum value casing
as suggested by clippy
* fix: Fix forgotten case change
|
|
* feat: Add ability to launch via Steam
* document what get_titanfall_proton() does
* revert explicit use of newly imported Path
* Format source code to pass CI
* Use new steamlocate compat_tool helper
* cargo fmt
* fix: Address various clippy issues
Addresses clippy warnings caused by newly introduced code
* fix: Cargo toml dependency formatting
|
|
* refactor: apply same style to all settings sections
* refactor: only assign developer_mode through store mutation
* refactor: remove useless credit mention
* refactor: remove menu bar background layer
* refactor: use same CSS style for both "no mod" messages
For both local and thunderstore mods views.
* fix: toggleDeveloperMode does not affect menu style by default
* feat: adjust TS mod hint i18n regression
|
|
* build: add vue-i18n dependency
* feat: add i18n plugin to vue project
* feat: use translations in play button
* feat: translate play view
* feat: translate menu items
* feat: translate local mods view
* feat: translate online mods view
* feat: translate mods menu
* feat: translate thunderstore mod card component
* fix: remove useless "this" keyword
* feat: translate settings view
* fix: remove leftover test invocation
* feat: add language selector component
* feat: using language selector updates interface's language
* feat: save language in persistent store on selector change
* feat: initialize lang on app launch
* refactor: move i18n code into App.mounted callback
* feat: update interface language on app launch
* feat: adjust language selection on language selector load
* fix: this.$root can't be null
* feat: translate store notifications
* fix: add missing parameter to english translation
* feat: translate "by" author keyword
* feat: translate repair window
* feat: translate repair window title
* docs: add some documentation regarding localization
* docs: explain how to add a new language
* feat: translate Northstar release canal selector elements
* docs: describe how to inject variable into translations
* feat: translate "info" word
* feat: translate popconfirm buttons
* fix: remove "this" keyword
* fix: save store when updating interface language
|
|
* fix: Pin tauri-plugin-store package to same commit
Pin npm package to same commit as Rust crate
* fix: Attempt using newest plugin store commit
* fix: Perform explicit save to store on each change
This seems to resolve the issue around no longer writing changes to
store on close as now values are written on each change.
* chore: Pin dependencies to specific commit
Instead of tracking a branch, track a specific commit
|
|
* feat: fetch stats every 5 minutes and ping front with received information
* feat: update front on stats reception
* style: format code
* fix: Add comment
---------
Co-authored-by: GeckoEidechse <40122905+GeckoEidechse@users.noreply.github.com>
|
|
* feat: Add button to download Mods PR
Simply opens the browser on the repo download link
* feat: Add button to download Launcher PR
Uses existing function to fetch nightly.link link and opens it in
browser
* refactor: Open Mods PR download link via TS
as opposed to having a link directly
This way it acts the same way as the Launcher PR download button.
Reason behind this change being consistent UI style.
* chore: Revert introduced formatting changes
Those were added by accident, whoops
* fix: Remove introduced unused dependency
* fix: Remove unused dependencies
|
|
feat: Increase time mods PR notification is shown
So as to not destroy it while user is still reading it
|
|
* feat: Initial backend code to get list of PRs
Hardcoded for launcher right now
* refactor: Autogen TS bindings from Rust code
using `ts-rs` as done in #140
* fix: Fix incorrect typing
What is returned is actually an array of `PullsApiResponseElement`
* feat: Prototyping frontend UI for installing PR
* fix: Use right repo
Used Mods instead of Launcher
* feat: Enable installing launcher pull request
* refactor: Rename variables to indicate approp repo
NorthstarLauncher vs NorthstarMods
* style: Formatting fixes
* feat: Initial code for getting mods PRs
* feat: Add backend code for installing mods PRs
* feat: Add note about launching in notification
* fix: Remove commented out code
* refactor: Depduplicate code
* refactor: Remove unnecessary use of anyhow
* refactor: Use already existing function
for checking game path
* feat: Add comment about profile / batch file
* chore: Remove leftover print statements
* feat: Add clickable link for each PR
* refactor: Reduce duplicate code
* refactor: Rename enum
* fix: Use proper type
* fix: Remove leftover `console.log`s
* style: Revert accidental formatting change
* refactor: Remove second API call for mods PRs
* refactor: Rename variable
* refactor: Remove second API call for launcher PRs
* refactor: Move API URL string to `constants.rs`
So that all constants are in a single place
* fix: Restore lines deleted in merge
* style: Formatting fixes
* fix: Print line when done installing PR
* feat: Show notification for install start/done
Displays a notification that PR install has started and upon completion
replaces it with one saying that install has completed.
* fix: Remove left-over console log
* feat: "Install PR" UI (#197)
* refactor: export pull requests selector to dedicated component
* refactor: regroup launcher+mods collapses in one collapse component
* refactor: load pull requests when opening selector collapse item
* refactor: review progress loaders' style
* fix: don't fetch PRs if they've already been loaded
* feat: update collapse style
* refactor: remove fetch success notification
* refactor: both collapses can be opened at the same time
* fix: non-accordion collapse sends an object as event parameter
* fix: Iterate over multiple pages of GitHub CI API
This ensures we can still grab older artifacts.
Max page is capped at 10 as going too high will cause us to hit API rate
limits.
Also refined error message accordingly.
* refactor: Move stored PRs to submodule
as suggested in review
* refactor: Move getPullRequests to store submodule
I order to clean up PullRequestSelector.vue
Other functions will follow in separate commits.
Currently TypeScript compilation fails on undefined type of `state`
* fix: Properly define state type
* refactor: Move installLauncherPR to store submodule
* refactor: Move installModsPR to store submodule
---------
Co-authored-by: Rémy Raes <contact@remyraes.com>
|
|
* refactor: Get TS package API response from backend
Previously Thunderstore package index was done in frontend. Should be
moved to backend instead as backend is reponsible for such tasks while
frontend should just be used to store and display information.
* refactor: Filter TS API response in backend
* refactor: Rename function
Makes it more descriptive what it does
* refactor: Use gen. binds instead of duped struct
Replaces the current TypeScript interface defintions with autogenerated
bindings.
* fix: Properly type variable
* fix: Correct imported path of interface file
* fix: Update struct field types to fix typing issue
i32 should be big enough unless Thunderstore and Northstar suddenly
becomes really huge and we start seeing over 4 million downloads on some
mod
* fix: Correct imported path of interface file
|
|
* feat: Initial trial to auto-generate TS bindings
That way instead of manually duplicating code, we can just run
`cargo test` to generate them.
* fix: Update forgotten imports
* refactor: Move FlightCoreVersion to autogen bind
TypeScript binding autogenerated from Rust code
* refactor: Move ReleaseInfo to autogen binding
TypeScript binding autogenerated from Rust code
* docs: Explain how to generate TS binds from Rust
* feat: Check for binding changes in CI
Checks for uncommitted binding changes in CI and fails if they differ
* style: Formatting fixes
|
|
* feat: add UI skeleton for new mods interface
* fix: only apply app menu style to app menu items
* feat: add menu skeleton
* feat: add thunderstore mods view into mods view
* refactor: remove thunderstore mods view from router + menu bar
* refactor: move search input into mods view
* fix: adjust ts mods container padding
* refactor: center pagination components
* refactor: rework media queries to adapt cards container width
* fix: set mods view navigation min-width
* refactor: compute mods container width with CSS variables
* refactor: remove horizontal padding around ts mods container
This will allow them to take much screen space.
* feat: Thunderstore mods container is larger
* feat: add layouts for 5 to 8 Thunderstore mod columns
* feat: add some space to separate navigation menu subparts
* fix: move search pagination reset in ThunderstoreModsView component
* feat: retrieve Thunderstore mod categories when fetching mods
* feat: add mod categories selector component
* feat: mod categories selector now filters Thunderstore mods
* fix: reset pagination index if needed when selecting mod categories
* fix: first mod does not appear anymore while selecting any mod category
First mod's categories array was used as an accumulator (in a reduce call)
to regroup all mod categories; we now use an empty array as initial value
for the accumulator.
* feat: add a selector component to sort mods
* feat: set sort selector default value on view mount
* fix: set default sorting select value as selected in dropdown list
* feat: add date_updated field to ThunderstoreMod type
* feat: pass sorting value to ThunderstoreModsView as a prop
* feat: mods can be sorted by name and release date
* feat: mods can be sorted by most downloaded and top rated
* fix: don't display sorting select on local mods view
* refactor: remove local mods title
* refactor: export local mods view code in dedicated component
* refactor: export search value in a search-dedicated store
* fix: display "no matching mods" message when no mods match
This message was previously displayed only if no mods matched AND search
input was not empty; now that we have categories selector, we can have no
matching mods with an empty input.
* refactor: remove unused input prop
* fix: mods can be sorted by rating
* refactor: remove unused searchValue computed property
* style: adjust SortOptions import
* refactor: move selected mod categories into search store module
* refactor: move mod sorting into search store module
* refactor: export mods menu component to dedicated file
* fix: remove compare method initialization
* feat: local mods can be filtered with search input
* build: add ES2018 lib to typescript compiler options
* refactor: remove unused variable
* fix: retrieve SortOptions values from string input
* refactor: move Thunderstore mods view into dedicated folder
* style: add missing trailing newline to SortOptions.d.ts
|
|
* feat: Initial backend code to get the playercount
from the Northstar master server together with servercount
* fix: Push correct backend code
* feat: Load playercount on application load
and show on PlayView
* refactor: Store global const in separate file
Moved user agent there for now
* refactor: User user agent from global const
* refactor: Move masterserver URL into global const
* refactor: Remove temporary variable
* fix: Do proper typing for playercount return value
* feat: Change text if unable to load playercount
So instead of showing some wrong value, we just say that we were unable
to load it.
* fix: Remove leftover print statement
* refactor: Move struct to library source file
* fix: Remove break element
* fix: Remove frontend display of playercount
This allows for separate PR for adding backend code early.
* refactor: serverlist endpoint var to global const
|
|
* style: Add missing spaces between curly braces
* style: Fix indentation
|
|
* refactor: Remove unnecessary caller function
Instead call `disable_all_but_core` directly
* refactor: Remove unnecessary caller function
Instead call `get_installed_mods_and_properties` directly
* refactor: Remove unused exposed backend function
* refactor: Remove unnecessary caller function
Instead call `set_mod_enabled_status` directly
* refactor: Remove unnecessary caller function
Instead call `verify_game_files` directly
* refactor: Remove unnecessary caller function
Instead call `get_log_list` directly
|
|
* feat: add basic pagination
* refactor: put paginator inside filters container
* fix: limit filter container width
* refactor: filters container is now responsive
* fix: add missing type to pagination listener parameter
* fix: don't display entire mods list while filtering mods
* refactor: filteredMods is now a computed value
* refactor: store mods per page value on UI store
* feat: user can change modsPerPage count in settings
* fix: limit mods count (min=5, max=100)
* feat: add control on pages value
When leaving settings vue, we check if the pages value is a number and is
included in the interval [5-100].
If that's not the case, we reset it to 20.
* feat: retrieve and save pages value in persistent store
* fix: don't load an empty value from persistent store on boot
* fix: cast modsPerPage to string to check if it's empty
* refactor: remove search debounce
* Update src-vue/src/plugins/store.ts
* style: add trailing comma
* fix: mention impact on TS mods only
* refactor: remove limitations on modsPerPage
* style: explicitly cast mods_per_page to number
* feat: disable pagination with modsPerPage === 0
* feat: add pagination under thunderstore mod cards
* fix: adjust bottom pagination padding
* feat: clicking bottom pagination scrolls to page top
* fix: use same containers for both paginations
* feat: do not display pagination if mods fit on one page
* style: trailing spaces
* style: trailing spaces
* feat: add a button to reset modsPerPage
* feat: add explanation text about disabling pagination
|
|
* refactor: Move getting new FC version to own func
* refactor: Deserialize into object
* refactor: Return whole object instead of 2 strings
More readable
* refactor: Rename variable
* refactor: Use fields of object directly
instead of assigning to variables first
* feat: Expose backend func to get newest FC version
and then call it to get newest version number if current is outdated.
This way we can display to the user how far behind their currently
installed version is.
|
|
* feat: add a button to toggle window maximize status
* fix: attach services container to bottom
Container was fixed, but with no positioning indication,
which fucked its location while going fullscreen.
* refactor: encase menu in navigation container
* fix: remove CSS ID duplication
* refactor: put window controls inside menu bar
* feat: add style to additional submenu
* fix: don't color focused menu items
* fix: restore menu bar debug indicator
|
|
* refactor: set installedMods as a ModsView computed property
* feat: display a message on ModsView instead of cards if no mods were found
* refactor: remove error notification on game path discovery failure
* Revert "refactor: remove error notification on game path discovery failure"
This reverts commit db4af9ff78dc17bda77ce94283e35f9f1e961086.
* fix: don't invoke get_installed_mods_caller with no game path set
|
|
|
|
|
|
* refactor: Move release channel button to settings
* chore: Revert single newline removal
* feat: add basic selector
* feat: add basic selector style (to match button style)
* fix: remove box-shadow on selector
* feat: selector displays release canal from UI store
* refactor: export toggleReleaseCandidate to store, for it to be used by release canal selector
* feat: selector effectively changes release canal
* fix: selector members typing issue
* refactor: adjust selector labels
* refactor: remove channel switching button
Since the channel selector on the play view allows users to switch channels,
this button is now useless.
* feat: add a switch to toggle releases switching
* feat: switch only appears if corresponding flag is enabled
* feat: adjust button corners regarding releases switching state
* feat: switch value is saved in persistent store
* refactor: update release candidate label
* fix: set release canal to RELEASE when switch is toggled off
|
|
* refactor: Remove Origin running check in frontend
We already perform the check in the backend. Frontend does not check for
OS and as such on Linux will just always tell you that Origin is not
running.
* feat: Show notification toast, not alert pop-up
* refactor: Perform OS check before Origin check
|
|
* feat: Option to launch NS bypassing update check
Hidden behind dev view
* refactor: Use existing function to launch NS
Instead of duplicating code
* feat: Adjust button to allow bypassing all checks
|
|
* feat: add ThunderstoreMod type
* feat: add view component to develop mods layout
* feat: mount view component in router
* feat: display thunderstore section in menu
* refactor: create thunderstore package
* feat: add ThunderstoreModVersion type
* feat: add icon field to mod version type
* feat: add basic card layout for mods
* refactor: card button text is computed
In the future, we want the button text to change regarding status of the current
mod (installed, deprecated or not installed at all).
* feat: display mod owners
* feat: display download and like counts
* feat: fetch mods from Thunderstore API
* fix: type issue
* fix: prevent texts from overflowing
* fix: all cards have same height
* feat: add some space between cards
* feat: add basic search bar to filter mods
* fix: convert search string to lowercase to avoid font case issues
* feat: remove some mods from listing
* feat: a button opens mod page on Thunderstore website
* feat: display some text if no mod matched searched words
* fix: description size
* fix: display mod's total downloads count
* docs: add documentation to methods
* refactor: store thunderstore mods in store
* docs: remove TODO notes
* style: add trailing line to ThunderstoreModVersion.d.ts
* feat: cards container is responsive
Mods cards will always appear centered on the screen, and cards container
width adjusts to window width.
* fix: debounce mods filtering
Since filtering mods with search string is costly, we don't do it for each
character entered into search bar, but rather wait (300ms) for the user to
stop typing.
* feat: add full_name field to ThunderstoreModVersion type
* feat: mods can be installed by clicking the card button
* feat: card displays a loader while mod is being installed
* refactor: move installed mods list to frontend store
Installed mods are now stored in the frontend store, so they can be used in
all views.
* feat: card button text varies regarding current mod's status
Button can now tell if current mod is being installed, or if it is already installed
on local file system.
* refactor: export mod status computation in a dedicated method
* feat: color buttons regarding associated mod's state
* fix: set search debounce timeout to 200ms
* refactor: local mods load is done by frontend store
* fix: load locally-installed mods before fetching thunderstore mods
* fix: display mods while typing in search bar
* fix: type issue
* fix: CI doesn't know NodeJS namespace
* fix: adjust NorthstarMod member types (string instead of String)
* feat: tell if a mod is outdated by checking its Thunderstore dependency string prefix
* fix: update mods list after installing one from Thunderstore
This way, after installing a mod, button text will display "Installed" instead
of "Install".
* refactor: export Thunderstore mod card to dedicated component file
* refactor: rename computed variables
* fix: use computed latestVersion member
* feat: display "updating" on button when updating an already-installed mod
* feat: add some background blur on thunderstore mods view
* Update src-vue/src/views/ThunderstoreModsView.vue
* Update src-vue/src/plugins/store.ts
* fix: zoom background container a bit to hide white border on Windows
|
|
* feat: Store gameinstall in persistent store
This includes both path and type (Steam/Origin/EA/UNKNOWN)
* feat: Add method to clear persistent store
* fix: Only check for NS version if installed
Otherwise we incorrectly set the button to `Install`.
* fix: Remove leftover `console.log()`
|
|
Setting install path manually when one exists already will error out on
trying to delete the non-existing "no install found" notification using
its non-existing handle.
|
|
* feat: Show stripped title bar on debug build
Helps with differentiating which window is which when both developing
FlightCore and is using release version at the same time.
* fix: Only show striped menubar for debug builds
|