In the reader the preloaded page requests were triggered before the actual page got rendered and thus, the image request of the rendered page had to wait for all the preloaded images to finish
* Extract iso language list to new file
* Update iso language list
* Add function to get full iso language object
* Change i18n resource key of "Norwegian Bokmål"
* Optionally prevent deletion and mutation of "MutableListSetting" items
* Save server metadata per device
This makes it possible to e.g. have different settings on a desktop and a smartphone.
Prevent exhausting the available concurrent requests to the same domain by the browser with just image requests.
This prevents e.g. when browsing a slow source from having 6 concurrent image requests and having to wait for the next page request until one of those requests has finished
* Use "fetch" instead of "axios"
Axios does not support prioritizing requests
* Deprioritize image requests
The browser requests images (<img>) with low priority by default.
Due to switching to loading images via axios (f852ce70e7), the image requests had the same priority as other requests and thus blocked e.g. xhr requests
* Create "Categories" util class
* Only show add to library category selection in case categories exist
* Add edit categories button in select categories dialog
* Add option to disable add to library dialog to the dialog
* Use request manager to preload images in DoublePagedPager
Was forgotten to update along with f852ce70e7
The requests for the preload also never got aborted
* Revoke object urls after load
Due to horizontally centering the flex-box items via "alignItems", the items did not stretch anymore, which is the default value for "alignItems" and thus, did not take up the available width.
Regression introduced with ab0ecf4da0
* Add option to stretch small pages
In case "fit page to window" is enabled, small pages can be scaled up to the available width and height, while maintaining the aspect ratio
* Cleanup "imageStyle" function
In case "fit to page" was enabled, the styling got incorrectly applied to horizontal pages. Causing the pages to be small
Regression introduced with 15825fbe53
* Remove unused "downloadAhead" function
* [Codegen] Update generated files
* Add "VUI" as webui flavor
* Add info about changing the webUI channel or flavor
In case the fetch timestamp of a manga changed, it's possible that the thumbnail has changed as well, thus, the currently cached image should be ignored
* Trigger download ahead while reading client side
* Trigger download ahead while reading earlier
Download ahead was only triggered once the chapter got marked as read
* Optionally ignore dupe chapters for download ahead
* Consider current chapters scanlator for dupe check
* Update download ahead related settings
- add new metadata setting for download ahead limit
- previous setting
- rename
- update usage (auto download new chapters limit)
* Select chapter to auto delete while reading depending on ignore dupe setting
Currently, the n-th to last chapter always got deleted ignoring if "ignore dupes" setting was enabled or not.
* Only auto delete chapter while reading if it is read
In case not the last read but the n-th to last read chapter should get auto deleted while reading, it currently just got deleted ignoring if it has been read or not.
Chapters are being fetched sorted by descending source order, thus, the next chapters index is less than the current one
Regression introduced with 7caea4e526
The max-width, which is for a single page, was applied to each page of the double page reader, which resulted in both of them being able to take up 100% of the available width
* Always fetch pages for not downloaded chapter
The pages of non downloaded chapters have to be re-fetched since the local data might be out of date which would result in page fetch failures
* Correctly check for loading state of chapter
For the first render of e.g. the next chapter, the "arePagesLoaded" flag was still true from the previous chapter which caused the loading state to incorrectly be false.
This caused pages to get requested which on server side potentially pointed to invalid urls and thus the requests failed.
* Use updated chapter in case page count changed
In case the webUI is hosted by the server the backup creation caused the app to navigate to the backup url which resulted in an empty page
Regression introduced with db5d3ff7c0
* [Tooling] Switch to github gql api
* [Tooling] Credit all authors
* [Tooling] Add pr info from the commits associated pr
* [Tooling] Log unexpected commit format before throwing error
* [Tooling] Prevent running script without sha of last commit of previous release
After installing/uninstalling/updating an extension all other extension were removed from the list besides the updated extension
Regression introduced with 506e0aa0e3
* Update extension list after installing external extension file
The cache was never updated after the installation
* Make it possible to install external extension while having an empty list
* Show toasts while having an empty extension list
* Use correct extension id
* Update extension action after manual file installation
When installing an external extension the action button did not get updated due to this being an internal state of the ExtensionCard.
By including this in the key, it gets ensured that the component will get correctly updated
In case a manga hadn't been initialized yet, its chapter total count was still 0 after refreshing the manga and its chapter list data.
This was caused because its chapter list hadn't been fetched yet by the time the manga refresh mutation resolved.
* [Codegen] Update to server changes
* Set "dialogTitle" by default to "settingTitle" for "NumberSetting"
* Add FlareSolverr to settings
* [VersionMapping] Require server version "r1477" for preview
* Replace static strings with translation keys
There seems to be cases where the connection is lost without the client being able to reconnect (e.g. active subscription -> system hibernation -> waking up system => not receiving any messages anymore).
* Prevent TypeError when deselecting items from a specific key
This was noticed when changing the categories of a manga to a category without any selected mangas, in this case, when trying to deselect a manga after changing the categories, a TypeError was thrown which resulted in a white screen
* Remove duplicates from the list of all selected ids
* Update state via setter
* Clear selection after disabling the library selection mode
* Remove console log
For a single manga the "mangaId" should be passed while "mangaIds" is empty, however, the "mangaIds" were passed as an empty array which caused an empty array of manga ids to be passed with the mutation
* Refetch categories after updating a manga
After adding/removing a manga to/from the library, the categories did not update.
* Include manga categories int the manga update mutation response