Age | Commit message (Collapse) | Author |
|
|
|
* 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
|
|
* feat: Generate FlightCore release notes
* fix: Remove leftover comment
* fix: Add missing semantic commit type
* fix: Re-add newlines accidentally removed in merge
* refactor: Remove contributors section
Will re-add a proper implementation in a later PR.
* fix: Revert accidentally modified line
* docs: Update comments
* fix: Use correct user-agent
* fix: Put unknown commits into "Other" section
Previously they were just dropped
* refactor: Move constant string array to right file
* fix: Remove debug prints
* refactor: Move lib import to start of file
* refactor: Use wrapper type
kinda needed by selector in frontend.
Allows for still passing full object to backend for future extensability
* fix: Generate missing wrapper TS interface
* fix: Add title and message to notification
* refactor: Move constant to consts file
* fix: Fix formatting
* fix: Remove unnecessary property declaration
|
|
* 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
|
|
This makes it now "publicly" available
|
|
|
|
* feat: Initial code for spawning repair window
* refactor: Move disable all but core mods button
to repair window
* refactor: Rename function
* refactor: Move button location
Still in DeveloperView for now, will be moved to settings page later
* feat: Add info banner
* feat: Set repair window title
* fix: Stop thread crash on duplicate window open
Instead of calling an unwrap, handle failure to create window which is
usually caused by spawning a second repair window although one already
exists.
* fix: Re-add accidentally removed lines from merge
* fix: Set top padding to zero px
As there's no menu bar in this view
* feat: Close all windows when close bttn is clicked
|
|
|
|
* 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>
|
|
* feat: Add button to force reinstall Northstar
Useful for reinstalling Northstar after installing a developer version.
* fix: Remove leftover `console.log()`
* fix: Properly update which NS is installed
* feat: Show notification when done
Sends a notification to indicate that reinstall process has started and
sends a second one once the process has finished/failed while also
clearing the old notification.
|
|
* 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 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
* refactor: serverlist endpoint var to global const
* fix: Remove unused import
* fix: add some space to stats container top
* fix: Change text to lowercase
---------
Co-authored-by: Alystrasz <contact@remyraes.com>
|
|
* refactor: Parse using serde deserialisation
* refactor: Parse using serde deserial. (TS mod str)
Reduce code by making use of serde deserialisation.
Still supports legacy method
* chore: Remove commented out fields
While useful, it just made the code messy...
* feat: Show mod version in LocalMods view
* refactor: Move mod version to new line
in source code
Makes diffing in git easier
* fix: Hide version number if not available
|
|
in LocalModsView
|
|
In LocalModsView, show the Thunderstore icon for Northstar mods that
have been installed from a Thunderstore mod.
|
|
* 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
|
|
fix: set current route as menu active item
|
|
Typo and referencing wrong functionality
|
|
* 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
|
|
* feat: Expose installed NS mod directory
This allows other functions to get a mod directory directly which is
useful for e.g. deleting a mod.
* feat: Add button to delete Northstar mod
* refactor: Return vector of NorthstarMod
instead of unnamed Tuples
* feat: Delete given Thunderstore mod
* refactor: replace information button by a dropdown menu with remove item
* refactor: only display removal mod option if said mod is installed
* feat: only display dropdown menu for installed mods
* refactor: Remove leftover print statement
* chore: Remove leftover todo comment
* feat: Show confirm warning before deleting mod
* refactor: Call func directly instead of proxy
Removes the `func_caller` pattern
* fix: Call reloading mods after attempted delete
* feat: Hook up deleting mod backend function
Now clicking "Remove Mod" calls the appropriate backend function that
removes the corresponding mod.
* refactor: Call func directly instead of proxy
Removes the `func_caller` pattern
* style: Autoformat
* feat: Support removing outdated mods
No longer include the version number in the comparison check
* fix: Rephrase error message
* feat: Show pop-up confirmation before deleting mod
for Thunderstore mod in ThunderstoreView
Co-authored-by: Alystrasz <contact@remyraes.com>
Co-authored-by: Remy Raes <raes.remy@gmail.com>
|
|
* style: Add missing spaces between curly braces
* style: Fix indentation
|
|
* feat: Expose installed NS mod directory
This allows other functions to get a mod directory directly which is
useful for e.g. deleting a mod.
* feat: Add button to delete Northstar mod
* refactor: Return vector of NorthstarMod
instead of unnamed Tuples
* refactor: Remove leftover print statement
* chore: Remove leftover todo comment
* feat: Show confirm warning before deleting mod
* refactor: Call func directly instead of proxy
Removes the `func_caller` pattern
* fix: Call reloading mods after attempted delete
|
|
* 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
|
|
* feat: Expose installed NS mod directory
This allows other functions to get a mod directory directly which is
useful for e.g. deleting a mod.
* refactor: Return vector of NorthstarMod
instead of unnamed Tuples
|
|
|
|
* feat: Show warning banner on DevView
* feat: Show icon in banner
* fix: Switch banner type to warning
* fix: Use light theme for warning
|
|
|
|
|
|
|
|
|
|
|
|
* 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: add new CSS class for UI containers
* feat: add a scrollbar to developer view
* refactor: use CSS class in all views
* feat: put a scrollbar in settings view
|
|
Co-authored-by: Jack <66967891+ASpoonPlaysGames@users.noreply.github.com>
Co-authored-by: Jack <66967891+ASpoonPlaysGames@users.noreply.github.com>
|
|
* 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
|
|
ThunderstoreView was further below
|
|
* 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.
|
|
* refactor: Rename function
to better differentiate what it does
* refactor: Add TS mod string field to NS mod struct
This allows us to expose to frontend which Thunderstore mod a Northstar
mod may belong to. Field is optional as not all mods may contain a
Thunderstore mod string for example when they were installed manually.
* feat: Add TS mod string field to NS mod interace
* feat: Parse TS mod string and expose to frontend
* fix: Mark unused variable as such
|