aboutsummaryrefslogtreecommitdiff
path: root/src-vue
AgeCommit message (Collapse)Author
2022-11-25feat: Thunderstore mods listing (#54)Rémy Raes
* 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
2022-11-23feat: Store game path in persistent store (#61)GeckoEidechse
* 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()`
2022-11-21fix: Catch error for missing handle (#60)GeckoEidechse
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.
2022-11-19feat: Return Thunderstore mod string of installed mods. (#56)GeckoEidechse
* 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
2022-11-19feat: Initial support for installing mods from TS (#32)GeckoEidechse
* feat: Initial support for installing mods from TS This is the basic code needed to install a mod from Thunderstore * refactor: Remove console log, show msg in notif Instead of console logging result message, show it in notification instead. * refactor: Rename function to indicate behaviour Function not only installs but also downloads mod first. Although it does remove downloaded zip post installation. * refactor: Move install logic to dedicated module `mod_management` module didn't exist when this PR was created * chore: Trim single leftover newline * fix: Update code for newer `libthermite` version * feat: Allow installing older versions of mods Installs the given version number instead of only allowing latest. * fix: Explicit error msg for installing NS as mod While it would fail during install anyway, having explicit error message is nicer * feat: Write TS mod string to mod.json Write Thunderstore mod string of installed mod to its `mod.json` This way we can later check whether a mod is outdated based on the Thunderstore mod string * fix: Early return on empty string Prevent trying to install the first mod that matches an early string. We should never pass an empty string in the first place but better safe then sorry. * build: Add dependency for recursive async Needed for recursive mod dependency install * feat: Recursively install mod dependencies * fix: Early catch installing R2modman as mod Just in case to prevent someone trying to install R2modman as a mod. * refactor: Remove debug prints * fix: Allow installing mods having NS as dependency They would previously error out as Northstar cannot be installed as dependency. We now catch that specific error and return Ok(()) * fix: Delete download folder after mod install Deletes download folder after mod install if non-empty. * fix: Do not early leave when dependency is NS Logic error, instead of skipping installing Northstar as dependency it would previously just return early with success. * chore: Remove leftover commented out code
2022-11-14feat: Add element-plus scrollbar to mods view (#53)Rémy Raes
* feat: add element-plus scrollbar to mods view * refactor: remove unused style
2022-11-13feat: Show stripped title bar on debug build (#48)GeckoEidechse
* 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
2022-11-11feat: Add categories for dev mode buttons (#45)GeckoEidechse
2022-11-11refactor: Return Result<> for getting NS version (#46)GeckoEidechse
as opposed to using an empty string to indicate an error.
2022-11-11refactor: Clicking FC version activates dev (#44)GeckoEidechse
instead of clicking Northstar version. Makes dev mode a bit more "hidden" (i.e. less likely to be accidentally opened by end-user) and it's more logical to click FlightCore version to open **FlightCore** dev mode as opposed to clicking Northstar version.
2022-11-09feat: Patch notes (#18)Rémy Raes
* feat: add Rust method to fetch Northstar release notes * feat: fetch release notes on changelog view mount * feat: only transmit some info to frontend GitHub API gives much information about releases, we only need some: name, publication date and content of such release; so other information is not transmitted to UI. * feat: add ReleaseInfo Typescript interface matching Rust struct * feat: display release notes on a timeline * refactor: remove old releases external link * build: add marked dependency * build: add marked types dev dependency * feat: format release notes' markdown * fix: member typo in ReleaseInfo interface * fix: type releases array * fix: open github links in external browser * fix: adjust marked import * refactor: store release notes in store Release notes are now stored in the app store, so we don't have to fetch them multiple times. * fix: notes fetching method is now async * feat: display a loading bar while release notes are being fetched * feat: display dates in white * feat: release notes' dates are human-readable * fix: make menu bar appear on top of release notes view when scrolled * feat: add custom scrollbar * refactor: format releases creation to please reviewer * Update src-tauri/src/github/mod.rs * Update src-tauri/src/github/release_notes.rs * Update src-vue/src/utils/ReleaseInfo.d.ts * fix: augment scrollbar opacity * fix: only display releases' release date (no more time of the day) * fix: adjust Github request user agent * style: add missing end line in src-vue/src/style.css * fix: link formatting only targets GitHub PR links (whose name begins with a #) * fix: timeline element children cannot be bigger than container card
2022-10-30feat: Enable toggling enabled mods (#29)GeckoEidechse
* feat: Enable toggling enabled mods Co-authored-by: pg9182 <96569817+pg9182@users.noreply.github.com> * chore: Update leftover comment Co-authored-by: pg9182 <96569817+pg9182@users.noreply.github.com>
2022-10-25feat: Show installed mods (#28)GeckoEidechse
Simply parses `enabledmods.json`. In the future we should also opt to check individual mods and compare with the JSON file.
2022-10-25chore: Update vue-tsc (#30)GeckoEidechse
2022-10-21feat: Add initial skeleton for ModsView (#27)GeckoEidechse
* feat: Backend code to get list of installed mods For now simply parses `enabledmods.json`. Note that this file will not be up-to-date if the user just installed a mod but hasn't launched Northstar yet. * feat: Empty skeleton page for ModsView Will be populated later with list of installed mods * chore: Remove leftover print statement
2022-10-20refactor: Various formatting and fixes (#23)GeckoEidechse
* refactor: Add error return type * style: Auto-format Only minor changes, did not take over all changes from auto-format. * refactor: Rename function to get FC version number To make it more clear which version number we're getting (FlightCore vs Northstar)
2022-10-20Merge branch 'GeckoEidechse:main' into refactor/router-viewRémy Raes
2022-10-20feat: apply same height to all menu componentsRemy Raes
2022-10-20fix: restore native bar drag regionRemy Raes
2022-10-20fix: adjust focus styleRemy Raes
2022-10-20refactor: remove unused current_tab variable from storeRemy Raes
2022-10-20fix: restore updateCurrentTab method with routerRemy Raes
2022-10-20fix: display dev button only when dev mode is enabledRemy Raes
2022-10-20refactor: remove useless CSS classesRemy Raes
2022-10-20refactor: use el-menu router configuration directlyRemy Raes
2022-10-20fix: adjust containers positionRemy Raes
2022-10-20refactor: apply style to new app menuRemy Raes
2022-10-20refactor: replace tabs with app menu + router viewRemy Raes
2022-10-20fix: all routes must give a FutureRemy Raes
2022-10-20feat: push PlayView as default view on launchRemy Raes
2022-10-20feat: add router configRemy Raes
2022-10-20build: add vue-router dependencyRemy Raes
2022-10-19refactor: Use `Result<>` return type for Linux checks (#21)GeckoEidechse
* refactor: Use result return type for Linux checks * refactor: Store min required ldd version in const This way we only need to update a single variable in case min required version changes.
2022-10-19feat: Manually find game if needed (#7)Rémy Raes
* refactor: move updateGamePath method in store mutations * feat: play button allows game path update If game path was not found automatically and the user clicks the play button, FlightCore will ask him to point out his Titanfall2 installation folder. * refactor: change button text * feat: display a notification on successful game folder selection * feat: close permanent notification on successful game folder selection * fix: allow game launch with UNKNOWN install type on Windows * feat: set install type to UNKNOWN on manual folder pick * refactor: update omni-button text when game folder wasn't found
2022-10-18feat: Add persistent store (#16)GeckoEidechse
* refactor: Rename object field So that is specifically references Northstar * chore: Add plugin-store as npm dependency * feat: Persistent storing selected NS release canal * docs: Add explanation about persistent store
2022-10-18Add ldd --version check for Linux (#10)Salmon
2022-10-12fix: App bar drag (#13)Rémy Raes
* feat: dragging app bar drags the whole app The data-tauri-drag-region attribute cannot be put on menu bar directly because it contains elements, so we emulate its behavior with a mousedown listener. * fix: app cannot be dragged by background container * fix: type issues
2022-10-08feat: Show own version number in settings view (#11)GeckoEidechse
* feat: Show own version number in settings view Adds a new field to state that stores FlightCore version number. Version number is pulled from backend on application launch. * style: Reorder so that FC version is shown first * chore: Remove leftover TODO comment
2022-10-06Merge pull request #9 from GeckoEidechse/feat/enable-dev-mode-on-debugRémy Raes
feat: Enable dev mode directly if in debug mode
2022-10-06feat: Enable dev mode directly if in debug modeGeckoEidechse
Allows skipping clicking version number 5 times when working on FlightCore. Release builds are not in debug mode, so dev mode is still disabled by default for end-users.
2022-10-06refactor: Use string variable value directlyGeckoEidechse
instead of encapsulating in template literal
2022-10-06fix: Remove console logsGeckoEidechse
As requested in review
2022-10-06feat: Initial logic to disable all but core modsGeckoEidechse
In the future, this button should be moved to a "Repair" view. For now I'm putting it into Dev view for testing.
2022-10-05refactor: Use Element+ notif. instead of `alert()`GeckoEidechse
Less jarring then receiving an `alert()` as the first thing when opening FlightCore
2022-10-05feat: Allow switching between release channels (#3)GeckoEidechse
* feat: Allow switching between release channels Right now it's a single toggle button. In the future it should be a dropdown menu * fix: Use proper way to perform a change in state * refactor: Call right function to update state * fix: Use proper message type * refactor: Use ternary operator for release channel selection
2022-10-04fix: Install selected release canalGeckoEidechse
Use selected release canal for install/update instead of hardcoding to main release.
2022-10-04refactor: Give NorthstarState enum mapped stringGeckoEidechse
So that when printing out the value for debug purposes it is clear which value it is.
2022-10-04feat: Show notification if FlightCore is outdatedGeckoEidechse
2022-10-04refactor: Remove unused copied codeGeckoEidechse
2022-10-04Merge branch 'feat/new-ui' of github.com:Alystrasz/FlightCore into feat/new-uiAlystrasz