aboutsummaryrefslogtreecommitdiff
path: root/src/app/main.js
AgeCommit message (Collapse)Author
2023-09-16made some lang keys far more logical0neGal
Most of these are from back when Viper was originally started, I also removed a few keys as they were no longer in use, but were forgotten about, most of these are from pre-v1.0.0 aka, the old smaller UI
2023-09-16added button to force kill game0neGal
2023-09-13ideally eliminate race condition loading config0neGal
From my testing this works without problems, but further testing will be requested in #211
2023-09-13synchronize changes to settings from main process0neGal
If the main process has changes to the settings, said settings will now also be sent to the renderer, making them synchronized.
2023-09-13fixed gamepath only updating for the renderer0neGal
This would mean if the gamepath cant be found automatically you'll be asked to set your gamepath every time Viper starts, instead of it remembering it, and if it can find it automatically, then you'd never have known this was a problem (hence why this was even a problem)
2023-09-13use json.js for loading settings in the renderer0neGal
2023-07-22mostly support installing packages through GUI0neGal
Install toasts, installing overall, dependencies and so forth, all seem to be fully functional, however more bug testing is probably required to concluce whether that is actually the case or not... This also doesn't break `src/modules/mods.js`, i.e dragging mods in to manually install them still functions the same as always.
2023-07-21rename mods.list() properties to use snake case0neGal
I may or may not have missed some properties or something somewhere, perhaps we'll see if something ends up broken in the future...
2023-05-06change launch button text if game is running0neGal
This should've already been a thing, and was a thing for when the game was currently launching, but this functionality seems to have been broken at some point.
2023-04-29win.alert() now uses Promise, and added .confirm()0neGal
win.alert() now has a Promise return value, which'll allow you to wait until an alert has been closed before continuing code execution. win.confirm() was also added it's the same as win.alert() except it runs confirm() in the renderer instead of alert(), and has a return boolean in the Promise resolve callback. This boolean being whether the user confirmed the action or not.
2023-04-01Fixes broken JSON files on restartLumiChnn
On restart, if the json file was broken supposedly would try to repair but it wouldn't work, it would keep repairing but failing. This should fix it by deleting the json file and creating a new one at the start with the correct settings (hopefully)
2023-03-09download Northstar to <cache_dir>/vipertmp0neGal
"cache_dir" being wherever your OS puts it's cache, it's the same place mods.js uses to download mods. This prevents cluttering up the gamepath with temporary files.
2023-03-05modularized many functions and got rid of utils.js0neGal
Notably, winLog() and winAlert() are now win.log() and win.alert() inside modules/window.js. updateViper(), updateNorthstar and handleNorthstarUpdating() are now update.viper(), update.northstar() and update.northstar_autoupdate(), inside modules/update.js isGameRunning() and isOriginRunning() are now is_running.origin() and is_running.game() inside modules/is_running.js, along with a .titanfall() and .northstar() for more specificity. Not used anywhere right now, but may in the future be used. setpath() and gamepathExists() are now gamepath.set() and gamepath.exists() inside modules/gamepath.js killOrigin() are now kill.origin() inside modules/kill.js setlang() is now just inlined into the only event where it's used.
2023-01-30disable modslist buttons properly0neGal
2023-01-28initial draft for redesign of the mod list0neGal
The current design for the installed mods is not exactly the best. And it has been due for a redesign for quite a while, I'm finally starting work on this.
2023-01-12basically support thunderstore_author.txt0neGal
This doesn't entirely uphold support, as it doesn't use the author file for anything, however it does write it as intended.
2022-11-23added more user friendly error message0neGal
When JavaScript errors occur outside of the renderer, they'll no longer display a big and confusingly detailed error stack, now they'll simply be shown a toast about the fact that an error happened. The user can then click this to get more details, but still without it being as invasive and obtuse as before.
2022-09-14differentiation between update() and updatevp()0neGal
Some functions have been renamed: update() -> updateNorthstar() updatevp() -> updateViper() Overall these are far better function names...
2022-08-07fix: lintAlystrasz
2022-08-06feat: display a toast message if no Internet at launchAlystrasz
2022-08-06feat: prevent Northstar update and update download link text if no InternetAlystrasz
2022-06-07minor changes0neGal
Mostly syntax, but also a few fixes with how the settings system work, and also a change in localization strings.
2022-05-30refactored event names0neGal
Quite a lot of them aren't in the same syntax/style, and it's quite bad to look at, this should fix them all without causing issues.
2022-05-30fixed missing commas and various syntax stuff0neGal
I know, commas aren't needed, however, going in and out of using commas and not using them also looks bad, so generally I try to always use them, with exceptions.
2022-05-16already installed dependencies are now skipped0neGal
If you already have all the dependencies or some dependencies of a package those will be skipped, if there is no dependencies missing it'll just install, and otherwise it'll show the missing and ask whether you want to install them. Meaning if a package has two dependencies and you've one of them only the one you don't have will show up.
2022-05-12initial draft for supporting dependencies0neGal
This should allow you to install packages that have dependencies, however maybe not with the best UI/UX experience, as currently there's only an English localization, and we also install dependencies even if the dependency is already installed.
2022-04-28added: error if config file isn't valid0neGal
Essentially just validates the config file and then prompts you about it, it allows you to reset it directly or just to exit and let yourself fix it. And because the error message appears directly in the renderer we have access to navigator.language, and can therefore still localize the string. However! We can't actually care if the user has disabled auto detection of their language, since... y'know, the config file where that's stored isn't able to be read properly. And so I added an argument to lang(), which allows you to force it to use a specific language if that language is available, if not it defaults back to English.
2022-04-13check to make sure gamepath exists0neGal
When Viper starts up it'll check to make sure the gamepath still exists, and throws errors if not, it also redirects you to the first page (the one where you can set the gamepath), and gives you an informative error. This could happen because the user unmounted the drive the gamepath is on, or it could happen if the user moved their game location.
2022-04-13fixed: console logs not parsed through lang()0neGal
I've known about this bug for a bit but haven't been bothered to fix it, essentially a language key was being logged instead of the string attached to that key :p
2022-04-13the user can now manually select a language0neGal
This allows someone to have their system in any language, and then have Viper in a separate language. This is also useful for testing.
2022-03-10fix nsargs being cleared when edited out of Viper (#93)0neGal
If the nsargs are edited by a third-party program or anything that isn't Viper, the next time you launch Viper it'll reset the nsargs back to what it was when you last opened it.
2022-02-21some functionality is now present0neGal
Albeit only frontend functionality, it doesn't actually save your settings, it simply loads them, and Settings.get(), allows you to convert them to a format that can be used to save settings.
2022-02-20initial work on settings page0neGal
This only has the actual UI for the settings page in place, no actual functionality has been implemented yet. I made several changes not directly related to the settings page, such as changes the CSS color variables to use RGB, as to easily add an alpha channel to colors. I also changed the way the Browser is toggled in some respects and many other changes that makes it easy to re-use the browser code to create the settings UI
2022-02-18basic drag and drop support0neGal
Since apparently dragleave and dragenter don't quite work as intended we have to resort to this obscure method which should work just fine on the user's end.
2022-02-17fixed buttons not re-enabling when closing install0neGal
If you closed the file selection window after clicking the "Install Mod" button it would improperly try to install "nothing", and therefore never re-enable the buttons, this is now fixed.
2022-02-08Merge branch 'main' into thunderstore0neGal
2022-02-03detection for new updates of modsGitExample
2022-02-03detection of installed mods, disabling buttonsGitExample
When a new mod has been installed through the browser UI it's button is changed from "Install" to "Re-Install" instantly. We also now disable modding related buttons when updating NS, or when installing mods. This should prevent issues.
2022-02-03ability to download from browserGitExample
This should work for all mods, assuming that all mods come packages the same, aka, in a Zip, with mods/<mod> in it. Which from what I know they do.
2022-01-26fixed mods not updating after changing path0neGal
This also fixes mods not showing up after first install of NS
2022-01-24no alert when manually changing the game path0neGal
When changing the game path by clicking the button you shouldn't be told it can't find the game and you've to select one manually, as you know that already. More importantly, if it could be found automatically it'll just not do anything. With this change I also changed the "gui.setpath" string to be more logical, and to make it clear what it does.
2022-01-24Edge case in vdf reading (#56)3top1a
* Edge case * Alert user only when automatic detection failed * extra info on not found message * support for [Free/Open]BSD Co-authored-by: 0neGal <mail@0negal.com>
2022-01-19documented the rest of the files0neGal
2022-01-12feat: New UI (#26)Rémy Raes
* [chore] removing setsize mechanism * [feat] adding new html skeleton * [feat] adding games icon buttons * [feat] all icon buttons have same size * [fix] games container width varies between 95 and 120px * [feat] displaying bg image * [feat] each game has its own background image * [feat] adding content skeleton * [feat] window has no frame anymore * [feat] buttons show related content only * [feat] displaying viper release notes * [feat] game icons are vertically centered * [feat] background is a bit grayed out * [feat] adding some items to games menus * [feat] displaying games logos * [feat] adding content menu active item indicator * [fix] centering active item indicator * [feat] not displaying viper credits by default * [feat] viper categories can be browsed through via menu * [feat] adjusting hovering style of menu items * [feat] adding play button styles * [feat] adding missing vp sections * [feat] adding link styles * [fix] scaling down northstar logo * [feat] adding ns sections * [feat] fetching northstar release notes * [fix] release notes containers are scrollable * [feat] removing space between menu and some sections * [feat] loading vp+ns versions into interface * [chore] pushing version to 0.10.0 * [feat] play buttons launch games * [refactor] renaming vp releases fetching method * [feat] displaying an option to update northstar * [feat] message is displayed if ns is up-to-date * [feat] displaying ns download progress * [refactor] removing ns-updating and ns-updated events * [feat] adding UI translations * [fix] correctly displaying vp release notes * [refactor] removing useless code * [feat] adding Imply to credits for viper logo * [feat] loading titanfall version from gameversion.txt file * [feat] centering viper main section * [feat] adding custom scrollbars to release notes sections * [feat] disabling images drag * [feat] all external links are opened in default browser * [feat] formatting release notes with markdown converter * [feat] translating UI items * fixed backgrounds not being same size This would cause weird transitions. * new.css is now main.css, fixed colors and fonts * page indicator is now prettier We no longer use a character to render a circle, and it's no longer a circle, instead it's a line, we also now have a nice transition on it, both for fading in and out. * removed simplebar in favor of ::-webkit-scrollbar Almost everything we did with simplerbar could be done with native WebKit scollbar CSS, hence why we switched to it. * fixed uneven nav button margin * fixed formatting Single quotes to double quotes, spaces to tabs, etc etc... I also removed simplerbar properly... * removed unneeded consts Elements set with ID's can by default be referred to with their ID, aka: const element = document.getElementById("element"); Is useless as "element" will automatically refer to that element if theres no variable that overwrites it. * use release name over tag_name "Release vX.X.X" frankly looks better than "vX.X.X" * playBtn's now look nicer Slight transition on hover and click. * added pointer cursors to nav buttons and playBtn's Along with transitions to the nav buttons, because they look very good. * [fix] viper main section appears correctly on viper logo clicked * different opacity for inactive pages * removed "Roboto Mono", added normal "Roboto" * removed old HTML * fixed formatting in launcher.js * redesigned contentContainer's, and a lot more I also swapped around the Vanilla logo and Northstar logo to have the same size and the "Titanfall 2" text is in the same place on both images, allowing seamless transition when changing pages. I also completely redesigned displayContent(), it's now page() and doesn't revolve around a switch case. I'll likely do a similar thing with showVpSection() and showNsSection(), uniting them into one function that doesn't use switch cases. * added close button * fix game icons not being found * removed excess icons from assets folder * [feat] adding a br to french releases key * [feat] centering menu items * [feat] implementing requests cache for NS release notes * [feat] implementing cache for VP release notes * changed ttf2 to tf2 Along with that, I also renamed the northstar2.jpeg bg to just northstar.jpg, as all other background are .jpg * [fix] adjusting containers * [fix] adding some space between menu and content Since we have lots of space to use now, let's use it! This extra-space does not apply to release notes sections, which already takes all available screen space. * [feat] adding code style * [fix] window is draggable thanks to a drag bar on its top * [fix] drag bar height * [fix] all window is draggable * [fix] not disabling game buttons on ns update * [fix] disabled buttons cannot be clicked * [fix] displaying ns update downloading state on UI * [fix] typos * general improvements to the UI Launch buttons now have a nice gradient, a shadow and a better hover animation. The Titanfall logos are now also centered no matter the window size, so if in the future we decide to allow resizing the window that won't be a problem, or if you force the window to do it through some trickery, it'll also still show correctly. I also changed the default font weight to 500, some pieces of text looked very thin. * unified information and credits section * mods section should more or less look good now Still not complete done, I still wanna implement a drag and drop install, along with selecting whether you're installing a zip or folder. And also a warning when toggling or removing required mods... But generally this is the design I will go with. * added warnings for toggling/removing core mods * [feat] adding missing translations * [fix] typo in gui.mods.disabledtag french translation * re-added download progress * added section transitions * switched to npm module for markdown parsing * correcting some formatting, nothing special * active page button is now more obvious Co-authored-by: 0neGal <mail@0negal.com>
2022-01-10.disabled instead of .[remove/set]Attribute()0neGal
Doing <elem>.disabled = true is the same as <elem>.setAttribute("disabled", ""), same with <elem>.disabled = false, being the same as <elem>.removeAttribute("disabled")
2022-01-10[fix] updating correct buttonsRemy Raes
2022-01-10[feat] translating 'install' optionRemy Raes
2022-01-10[feat] 'Play NS button' text is restored after successfull installRemy Raes
2022-01-10[feat] launch button install Northstar if it's not installedRemy Raes
2022-01-10[feat] Northstar launch button holds 'Install' text when ns is not installedRemy Raes