Age | Commit message (Collapse) | Author |
|
In the past when more than 50 packages was loaded it'd simply display a
"Maximum packages loaded" message, and it wasn't actually 50, as it just
took the first 50 packages loaded, whether or not they were filtered
out, so now that's fixed and a "Load more..." button has been added.
With that comes some changes to the lang strings for
"gui.browser.endoflist" and a new one "gui.browser.loadmore".
I also fixed the filtered packages issue also occurring in searches.
This will overall allow a user to more easily find the maximum amount of
packages without loading literally over a hundred packages at once, not
good for performance...
|
|
Made the UI slightly bigger, and the mod elements aren't on their own
line, this allows you to see more at once while it being bigger and more
telligble, before it was kind of empty.
|
|
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.
|
|
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.
|
|
Instead of updating the branch it was easier to simply add this, I don't
plan to add the issue/PR support, as it's complicated with no real
benefit, as NS seems to already link the PR's themselves.
|
|
Simplifies the parsing of Markdown, whilst also solving problems that
the previous parser for Markdown caused.
|
|
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.
|
|
sped up some animations, added a few more colors to different places,
overall just a slight spice up to the UI
|
|
Veeeerrryyy tiny improvements:
- titles are now in bold
- reduced the padding between version and author text
- slight blur to images has been added, which looks nice
- the large margin between the close and filter button is now fixed
|
|
|
|
This is for the sake of UX, as a user might be confused about why it
doesn't work as they may not notice that they've to turn off auto-detect
language first.
Because of this Settings.switch() now has a state value, and if you
provide a DOM element as the element arg it now uses that to know what
to toggle, before we used to just provide a number, which made sense for
generating the onclick events, but not for this task...
This whole thing was brought up because of #115
|
|
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.
|
|
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
|
|
This allows someone to have their system in any language, and then have
Viper in a separate language. This is also useful for testing.
|
|
Slightly better UX I guess?
|
|
For testing purposes I had the mod browser auto show on startup, that's
removed now, I also when refactoring some code forgot to change the name
of a function everywhere, leading to an error.
|
|
Fully implemented (I think? Maybe there's an edge case?), albeit it's
missing "Updateable" and "Installed" filters, but they'll be added later
|
|
If a mod has the name of an already existing element some issues may
arise... So now we have all mod elements prefixed with "mod-" and we
also only search for elements inside #browserEntries, that should avoid
all issues...
|
|
|
|
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.
|
|
Some users got confused about the "Change Game Path" label on the
startup page, thinking it was Viper asking the user to change the path,
to clear up that confusion we now just don't show that page on startup.
|
|
I localized all strings for English, then went ahead and made array
options have a wider input and more word spacing, since they're all
space separated.
|
|
When #87 was merged an unnoticed problem slipped in where if Viper was
running in a version that did not support auto-updates we would never
auto-update Northstar. Now that's fixed, and the nsupdate option is
completely implemented.
I also took the liberty of removing the auto-update option in the
settings page if Viper can't auto-update anyway, as it's useless if
that's not possible.
|
|
It actually saves settings, loads them properly and everything...
|
|
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.
|
|
I added descriptions and options for excluding files.
|
|
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
|
|
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.
|
|
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.
|
|
It'll notify of incorrectly formatted mods, it'll also notify on errors
and on success.
|
|
There used to be an error where if you spawned two toasts simultaneously
they'll get the same ID, this fixes that by upping the ID by one if the
ID is already taken.
|
|
No functional toasts yet, just the code for them, I'll add the actual
toasts later...
|
|
It now only does it if there's currently no results in the browser, aka
an empty search or it has yet to be loaded once before. Loading it every
time would cause lag.
|
|
Before this commit, the Thunderstore request would be sent on
application startup, now instead, it only does it when someone actually
clicks the "Find Mods" button, which should intern decrease load on
Thunderstore's end. Not that it mattered in the grand scheme of things,
it was just sort of unneeded.
|
|
|
|
Also fixes section buttons not being able to be clicked.
|
|
We now directly check the manifest file info as well therefore in all
cases even if the folder name for the mod is completely obscure, we
should now finally still get an installed status, both on removal and
install.
|
|
|
|
If a developer for some reason decides to put their mod inside mods/
instead of putting it inside a folder in mods/, it used to fail the
install, now that's fixed.
However since there's no folder to directly copy the name from we take
it from the manifest.json provided by Thunderstore.
It of course also has the proper status in the browser UI
(update/reinstall etc)
|
|
I think? I don't know how it was originally, currently now you can drag
on the top most of the window and in the left most, unfortunately not
inside the various pages.
It would probably be possible to do that, but I've not made it do as
such, and if it needs to be changed it won't be me doing it.
|
|
This should fix the window drag not working, however I cannot test that.
As my WM doesn't support it, a Windows contributor will have to test it.
I also added an info button that opens the mod's page in your web
browser, this button is of course localized, along with that I localized
the placeholder in the search input.
There's also a few general aesthetic changes, like adding a tiny border
around #modsdiv and #browser.
|
|
|
|
I have no clue if 50 packages is too small or too, big, we'll adjust
this the more mods that arrive. I also made the browser auto scroll to
the top when closed, it looks far better.
|
|
If the folder name was different from the mod name it wouldn't properly
update the "Install" text to "Re-Install" albeit it'd work when you
reload the front.
|
|
|
|
I also fixed the archive not being extracted properly for some reason,
the setTimeout() seems to solve it, no clue if it needs to be adjusted
in the future or replaced with something that works 100% of the time,
I'm not even quite sure why it happens in the first place.
|
|
The normalizer function didn't quite account for everything, which, it
still doesn't, however given that I hope most developer don't use
obnoxious characters in their mod names this should be fine.
|
|
-1px should be enough, however to make sure I made it -5px instead.
|
|
|
|
This should be future proof, however I'm not sure how well it'll handle
thousands of mods to search through. It should do it somewhat well, but
idk. We'll see, I'll perhaps implement a simpler search function in the
future instead of using Fuse if it becomes a problem.
|