aboutsummaryrefslogtreecommitdiff
path: root/src-vue/src/views
AgeCommit message (Collapse)Author
2023-08-04style: Add trailing commaGeckoEidechse
Helps with diff when adding more values later
2023-08-03feat: Copy release notes to clipboard (#464)GeckoEidechse
* feat: Add button to copy release note to clipboard Adds a button to dev view to copy the generated release notes to clip board * feat: Copy to clipboard after generating release notes This saves an extra step when doing releases
2023-07-31refactor: Migrate install related functions to `GameInstall` (#457)Jan
This allows for later extending for installing in the appropriate profile
2023-07-30feat: Add button to forcefully terminate Northstar (#451)Jan
to DevView Kills `NorthstarLauncher.exe` and `Titanfall2.exe` processes.
2023-07-24chore: Store `game_path` and `install_type` as `GameInstall` in store (#445)Jan
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>
2023-07-18feat: Add basic Proton management (#383)Jan
Adds logic to install, remove, and check existing install of NorthstarProton.
2023-07-02feat: Run `compareTags()` directly after fetching (#405)GeckoEidechse
In most cases after fetching tags one wants to generate release notes for the two newest. This change saves another click by just running the function directly afterwards.
2023-07-02feat: Add button to disable ModSettings mod (#393)GeckoEidechse
In preparation for Northstar releasing merged Mod Settings mod
2023-07-02fix: delay scrolling the Mods View to prevent it stopping prematurely (#403)Jan
2023-06-12fix: Hide deprecated mods in vanilla mods list (#390)Rémy Raes
2023-06-12feat: Select most recent release tags after fetch (#389)GeckoEidechse
2023-06-11feat: Show outdated Thunderstore mods first (#385)Rémy Raes
* feat: add isThunderstoreModOutdated method to utils * feat: display a badge on menu if there are some outdated thunderstore mods * feat: always display outdated mods first * feat: fetch Thunderstore mods on mods view mount To display the count of outdated Thunderstore mods on mods main page, we need to fetch them. * style: Update src-vue/src/components/ModsMenu.vue * style: Update src-vue/src/utils/thunderstore/version.ts * style: Update src-vue/src/views/mods/ThunderstoreModsView.vue * docs: improve outdated mods comment * docs: add comment regarding versions ordering
2023-06-08fix: Don't show deprecated mods (#382)Rémy Raes
* fix: don't show deprecated mods * feat: add setting to settings view * feat: display deprecated mod cards in red
2023-05-22refactor: Change error messages and function names to EA App (#362)GeckoEidechse
* 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
2023-05-16refactor: Move LocalModCard into own Vue component (#359)GeckoEidechse
* refactor: Move LocalModCard into own Vue component This is in preparation of overhauling the local mods interface * style: Fix indentation * fix: Remove unused property
2023-05-16fix: Add missing fuzzy filter for local mods search (#360)GeckoEidechse
2023-05-15feat: Button to install NorthstarLauncher from git main branch (#314)GeckoEidechse
* feat: WIP code to install launcher from git main Works but needs some more cleanup still * fix: Formatting * fix: Address clippy errors * refactor: Move `install_git_main` to own source file * fix: Remove unnecessary `pub` * docs: Update comments * refactor: Move API URL to constants
2023-05-15feat: Make search fuzzy (#342)GeckoEidechse
* feat: Enable fuzzy search for Thunderstore mods * feat: Enable fuzzy search for pull requests * refactor: Move filter into own util file * docs: Add comment explaining function in detail
2023-05-10feat: Add button to install older Northstar version in DevView (#325)GeckoEidechse
Adds a button to DevView that allows installing older Northstar versions from Thunderstore
2023-05-09style: Partially autoformat Vue source files (#326)GeckoEidechse
* style: Add/remove spaces where applicable * style: Add missing newlines * style: Fix indentation * style: Add newlines between CSS classes
2023-05-08feat: Button to open game folder (#302)GeckoEidechse
* feat: Add button to open Titanfall2 folder * feat: Add English localisation * feat: Add German localisation * chore: Add placeholder French translation while waiting for translators * feat: add French localization * fix: Use append slot for button This way there input field has a consistent size --------- Co-authored-by: Remy Raes <contact@remyraes.com>
2023-05-08feat: Show Thunderstore mod string in alt text (#310)GeckoEidechse
This way it's a bit easier to tell which Thunderstore mod a local mod is from
2023-05-08feat: Generate Northstar release notes (#277)GeckoEidechse
* feat: Allow selecting project to generate release notes for * fix: Add missing TypeScript bindings * feat: Pass project to backend on tag compare * fix: Check for unsupported project * feat: Allow fetching tags from Northstar repo * fix: Formatting and fixing typo * feat: Copy over Northstar release note generation from previous PR * refactor: Use Tag struct instead of string Allows for extendability in the future * fix: Use proper user-agent for web request * fix: Remove debug log prints * refactor: Use separete function for FlightCore release note generation One function for each FlightCore and Northstar * feat: Make CommitAuthor optional to deal with rebase commits that don't have a PR linked * fix: Address clippy issues * fix: Remove debug prints * docs: Add comments * refactor: Move import to top of source file
2023-04-21refactor: Reorder DevView elements (#276)GeckoEidechse
* refactor: Move release note generator to bottom It takes up a lot of space and generally isn't used as often as other buttons * refactor: Move mod install further down Generally isn't used as often as other buttons
2023-04-17fix: Update regex to match new release notes format (#274)Rémy Raes
Update regex to match new release notes format to open PR links in external browser
2023-04-17fix: Repair view add missing i18n (#271)Rémy Raes
* feat: Translate repair view notifications * feat: Add missing localization entries * feat: Add missing German localization entries * fix: Wording in German translation
2023-04-10feat: Show download progress for installing Northstar (#200)GeckoEidechse
* chore: Bump libthermite to 0.5.3 This adds a change needed for making progressbar work on dowload * wip: First attempt at showing download progress Simply prints it to JavaScript console for now * feat: Emit download progress at most every 250ms If we spam emit too much we use a lot of extra resources, slowing down the actual download * feat: Initial messages for extracting * feat: Add install state enum * refactor: Change payload to current + total size downloaded * fix: Remove extra emit * fix: Remove extra emit * refactor: Rename struct * refactor: Move struct to top of file * feat: Add TypeScript bindings * feat: Add console logs for printing state for now * fix: Remove duplicate identifier * feat: Initial progressbar in frontend * fix: Remove event listener added for debugging * feat: Display status and downloaded bytes * feat: Set loading bar to indeterminate on extract * fix: Phrasing in comment * feat: Add i18n for progress state * refactor: Adjust control flow do not show downloaded size anymore during extraction * fix: Manually specify progressbar size * fix: Update download progress every 100ms instead of 250ms Gives impression of faster / more fluent download. * feat: layout does not move when progress bar is hidden * feat: fix progress bar width to 200px * refactor: put services container in a flex container, for it not to overlap play button * refactor: export progress bar to dedicated component file * refactor: Update status first outside of branch * fix: Proper typing of event payload * fix: Do not assign to unused variable --------- Co-authored-by: Rémy Raes <contact@remyraes.com>
2023-04-10refactor: Notifications (#259)Rémy Raes
* 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
2023-04-06feat: Add ability to launch via Steam to DevView (#178)Jan
* 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
2023-03-30refactor: Style (#247)Rémy Raes
* 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
2023-03-28feat: i18n (#182)Rémy Raes
* 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
2023-03-27feat: Generate FlightCore release notes (#188)GeckoEidechse
* 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
2023-03-27fix: Address regression around persistent store (#227)GeckoEidechse
* 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
2023-03-12feat: Move open repair window button to settings (#208)GeckoEidechse
This makes it now "publicly" available
2023-03-12refactor: Move buttons to repair window (#207)GeckoEidechse
2023-03-12feat: Allow opening a window with various repair features (#129)GeckoEidechse
* 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
2023-03-02feat: Allow installing PRs from DeveloperView (#139)GeckoEidechse
* 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>
2023-02-25feat: Add button to force reinstall Northstar (#154)GeckoEidechse
* 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.
2023-02-14refactor: Get TS package API response from backend (#168)GeckoEidechse
* 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
2023-02-12feat: Display Northstar playercount and servercount in frontend (#130)GeckoEidechse
* 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>
2023-02-07feat: Show mod version in LocalMods View (#159)GeckoEidechse
* 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
2023-02-06feat: Show text when hovering Thunderstore icon (#167)GeckoEidechse
in LocalModsView
2023-02-06feat: Show TS icon for TS mods (#160)GeckoEidechse
In LocalModsView, show the Thunderstore icon for Northstar mods that have been installed from a Thunderstore mod.
2023-02-05feat: Auto-generate TS bindings (#140)GeckoEidechse
* 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
2023-01-19fix: Fix wrong comments (#138)GeckoEidechse
Typo and referencing wrong functionality
2023-01-14refactor: Mods view (#134)Rémy Raes
* 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
2023-01-04feat: Add button to delete Northstar mod (#110)GeckoEidechse
* 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
2023-01-04refactor: Remove unnecessary caller function pattern (#128)GeckoEidechse
* 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
2023-01-04feat: Thunderstore mods pagination (#122)Rémy Raes
* 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
2022-12-22feat: Maximize button + clean menubar layout (#119)Rémy Raes
* 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