Commit Graph

120 Commits

Author SHA1 Message Date
schroda
00d6350cee Optionally include client data during manga migration 2026-03-08 22:42:39 +01:00
schroda
0c12427020 Remove old metadata mutations 2026-03-08 22:42:37 +01:00
schroda
64df9a9489 Add new single multipurpose metadata update mutation 2026-03-08 22:40:47 +01:00
schroda
474b98abb5 Use new "metas" mutations 2026-03-08 22:40:45 +01:00
schroda
5def0ea818 Add new image processing settings on serve 2025-12-23 02:10:06 +01:00
schroda
1b0d907708 Add new "external image processing" settings for downloaded images 2025-12-23 02:07:56 +01:00
schroda
083586c567 Update graphql files structure 2025-12-22 14:00:44 +01:00
schroda
162b477032 Add "auto backup flags" settings 2025-12-22 12:31:48 +01:00
schroda
3ff6f2ec5f Add "opds cbz mime-type" setting 2025-12-13 17:50:29 +01:00
schroda
064dc9041b Add "hikari connection pool" setting 2025-12-06 20:01:31 +01:00
schroda
e914c04c88 Fix force page reload decision after a webui update 2025-12-06 20:01:09 +01:00
Zeedif
84cfa6bea5 Update KOReader Sync settings (#1030)
* feat(settings): refactor and implement KOReader Sync settings page

Refactors the KOReader Sync settings section into its own dedicated page and implements the full connection and configuration flow.

The previous implementation in the main server settings was outdated and incomplete. This change aligns the frontend with the latest backend logic and provides a complete user experience.

Key changes include:
- Separated the UI into two states: a login form for initial connection and a configuration panel for existing connections.
- Implemented `connectKoSyncAccount` and `logoutKoSyncAccount` mutations to handle authentication with the KOReader Sync server.
- Updated the `SERVER_SETTINGS` GraphQL fragment to use the new `koreaderSyncStrategyForward` and `koreaderSyncStrategyBackward` fields, removing the deprecated `koreaderSyncStrategy`.
- Moved all KOReader Sync settings from the generic Server Settings page to a dedicated route at `/settings/koreader-sync`.
- Restructured and improved i18n keys for better clarity and consistency.

Ran `yarn gql:codegen` to regenerate GraphQL types and helpers.

* Extract credentials login into component

* Update to server changes and cleanup

---------

Co-authored-by: schroda <50052685+schroda@users.noreply.github.com>
2025-12-06 19:59:39 +01:00
schroda
8358a2f51e Include "last update timestamp" in chapter updates query 2025-11-30 18:48:12 +01:00
schroda
f0c6e789cd Add backup flags to backup import 2025-10-07 22:27:07 +02:00
schroda
7d71780fbc Properly type scalar "Duration" 2025-09-18 22:28:08 +02:00
schroda
80a576db63 Include chapter info in continue reading button tooltip 2025-09-18 22:28:07 +02:00
schroda
8745101c8a Add "open in webview" button in "SourceMangas"
closes #991
2025-09-08 00:59:14 +02:00
schroda
47e93c774f Add "database" settings 2025-09-08 00:37:02 +02:00
schroda
7d81e1106f Add "koreader sync" settings 2025-09-08 00:36:23 +02:00
schroda
4aad410957 Add "ui login" support 2025-08-26 23:06:44 +02:00
schroda
2b1c2a0b6c Add "download conversion" setting support 2025-07-20 23:01:34 +02:00
schroda
0d23d8077f Add private tracking support 2025-07-19 21:33:12 +02:00
schroda
13a7d21e60 Show new tracker search result data
- score
- totalChapters
2025-07-19 16:40:29 +02:00
Constantin Piber
0d288afe74 [skip ci] Update server settings for Authentication modes (#984)
* Update GQL interface

* Update queried server settings

* package.json: Fix GQL script

* Basic AuthMode setting

* Setting disable, disclaimer on login page

* Update gql generated files

* Alphabetical sort en.json

* Fix constants name typos

* Move settings types and constants to corresponding files

* Rename setting constants

* Update required server version

---------

Co-authored-by: schroda <50052685+schroda@users.noreply.github.com>
2025-07-12 01:08:40 +02:00
Shirish
cdee6f4efa [skip ci] Feat: Add OPDS Configs to Server Settings tab (#945)
* Add OPDS config settings

* Address PR comments

* Update serverVersion for PREVIEW

* Add "opdsUseBinaryFileSizes" setting

---------

Co-authored-by: schroda <50052685+schroda@users.noreply.github.com>
2025-07-12 00:41:59 +02:00
schroda
914262dfac Revert unwanted generated graphql type changes
Accidentally updated some generated graphql types 2e105a0539
2025-06-23 02:01:28 +02:00
schroda
2e105a0539 Introduce "Extension info" screen 2025-06-23 00:05:16 +02:00
schroda
822e47084e Add functionality to pin sources 2025-05-17 22:17:15 +02:00
schroda
0733c930d4 Save chapter list options on server 2025-04-20 21:45:26 +02:00
schroda
ecbc0e3be2 Support different languages for auto webtoon detection 2025-04-18 00:34:26 +02:00
schroda
791ccf1f6a Handle server version changes
Server version now contains the "revision" as the "patch" number
2025-04-07 00:01:54 +02:00
Constantin Piber
8079cadae5 Basic modal for switching extension settings (#907)
* Basic modal for switching extension settings

* Improve network usage by including field in query directly

Requesting individually is stupid, when it's a field that is already
available on the server

* Improve extension slider usability

- Always render the element, fixes animations
- Store the selected item in state, allows the back-button to re-open
  dialog

* Update src/modules/extension/components/ExtensionOptions.tsx

Co-authored-by: schroda <50052685+schroda@users.noreply.github.com>

* Update src/modules/extension/components/ExtensionOptions.tsx

Co-authored-by: schroda <50052685+schroda@users.noreply.github.com>

* Fix suggestions

* Use dialog instead of optionsPanel

* Extension options remove redundant NSFW info

* Apply suggestions from code review

Co-authored-by: schroda <50052685+schroda@users.noreply.github.com>

* Use proper dialog title and content for settings dialog

* Use `string | undefined` instead of `string | null` to satisfy `tsc`

---------

Co-authored-by: schroda <50052685+schroda@users.noreply.github.com>
2025-03-24 23:24:12 +01:00
schroda
b673047517 Update to server gql library update changes 2025-03-23 04:04:08 +01:00
Jack
9e5fa7d81a Add history page (#897)
* Add History module and integrate it into the app

Introduce the History module with components for displaying chapter updates, including UI for grouped updates by date. Update routing and constants to incorporate the new /history path.

* Replace "Updates" and "History" with unified "Recent" module

Merged the "Updates" and "History" screens into a single unified "Recent" module with corresponding navigation updates. Adjusted GraphQL types and localization files to reflect the changes. This simplifies navigation and improves user experience.

* Refactor History screen to remove unused components.

Removed unused states, layout effects, and props related to last update timestamp. Renamed variables for better clarity and updated labels and error messages to align with the history context. Simplified component structure for improved maintainability.

* ```
Refactor tab handling and integrate dynamic height adjustments.

Renamed enums for better clarity and consistency. Implemented a `tabsMenuHeight` prop to dynamically adjust component layouts based on observed height changes using `useResizeObserver`. Updated the `Updates` component to consider the calculated heights for improved rendering.
```

* Refactor `groupByDate` parameter and add `lastReadAt` field

Renamed `updates` to `histories` in `groupByDate` for clarity and added a debugging log for input data. Updated GraphQL fragment to include the `lastReadAt` field to support additional functionality.

* Refactor `groupByDate` parameter and add `lastReadAt` field

Renamed `updates` to `histories` in `groupByDate` for clarity and added a debugging log for input data. Updated GraphQL fragment to include the `lastReadAt` field to support additional functionality.

* Refactor `groupByDate` parameter and add `lastReadAt` field

Renamed `updates` to `histories` in `groupByDate` for clarity and added a debugging log for input data. Updated GraphQL fragment to include the `lastReadAt` field to support additional functionality.

* Refactor `groupByDate` parameter and add `lastReadAt` field

Renamed `updates` to `histories` in `groupByDate` for clarity and added a debugging log for input data. Updated GraphQL fragment to include the `lastReadAt` field to support additional functionality.

* "Optimize GraphQL type definition formatting in generated file

Condensed the formatting of the GetChaptersHistoryQuery type to a single line for improved readability and consistency. This change does not affect functionality but enhances maintainability of the generated code."

* Remove UpdateChecker component from History screen

The UpdateChecker component and its related navbar action have been removed from the History screen. This simplifies the navbar setup and eliminates unused functionality in this context.

* Refactor chapter fragment and type references

Updated `ChapterRecentListFieldsFragment` to `ChapterUpdateListFieldsFragment` for better alignment with naming conventions. Adjusted type imports and query structures to maintain consistency across files. No functional changes introduced.

* Refactor padding calculation logic in Updates screen.

Renamed state variable and refactored its logic for clarity and consistency. The updated logic now uses a more descriptive name, `listPadding`, to enhance code readability and maintainability.

* Pass `tabsMenuHeight` prop to History component

Added `tabsMenuHeight` prop to the `History` component to properly calculate the height for the `StyledGroupedVirtuoso` element. This ensures consistency with other components and improves layout rendering.

* Revert package.json

* Add last page read tracking to chapter history

Introduced "lastPageRead" and "pageCount" fields to track progress in chapter history. Updated UI to display the last page read along with total pages for chapters. Adjusted localization files to support the new "page" label.

* Remove last page read display from ChapterHistoryCard

The "last page read" information was removed from the ChapterHistoryCard component for a cleaner UI. This change simplifies the card's design by showing only the chapter name and relevant download state.

* Forcing an empty commit.

* Replace "Recent" screen with separate "Updates" and "History".

The "Recent" feature has been split into two distinct screens, "Updates" and "History", for improved clarity and functionality. Routes, icons, and components have been updated accordingly, and redundant code related to "Recent" has been removed.

* Clean

* Revert vi.json

* Remove unnecessary `useLocation` hook and update state logic.

The `useLocation` hook was removed as it was not used elsewhere in the component. The state property for the routing logic was updated to use `Chapters.getReaderOpenChapterLocationState` for better encapsulation and clarity.

* Update history localization by removing unused "page" key

Removed the "page" key from the "history" section in the localization file as it is no longer in use. This cleanup helps keep the translation file consistent and easier to maintain.

---------

Co-authored-by: NamNH <namitonguyen@gmail.com>
2025-03-10 21:53:40 +01:00
schroda
33e184ba18 Add "auto webtoon mode" option to reader 2024-12-27 02:51:35 +01:00
schroda
916abd3bb1 Resume chapter at specific page
- open from outside reader
 - is read
  - yes: 1st page
  - no : last read page
- inside reader via
 - chapter selection: first page
 - previous chapter : last page
 - next chapter     : first page
2024-12-09 02:38:37 +01:00
schroda
7434ed0152 Reader progress bars 2024-12-09 02:38:37 +01:00
schroda
1e109e7d32 Remove deprecated "gqlDebugLogsEnabled" setting 2024-11-28 12:22:17 +01:00
schroda
0c02de5b92 Correctly get total library size
The total size was the sum of all categories, which could include duplicates, since manga can be in multiple categories.

This still will show an incorrect number, because server side there is the same issue with the "mangas" query including duplicates in the total count, however, once this is fixed, the correct count will be displayed
2024-11-28 12:20:36 +01:00
schroda
a819d45489 Update to server download subscription changes 2024-11-28 12:17:55 +01:00
schroda
e71c4b7ef1 Cleanup deprecated metadata after migration
- delete deprecated metadata
- save applied migration id per metadata holder
2024-11-04 00:11:01 +01:00
schroda
a06e170d78 Handle cache update when creating new metadata
In case the metadata didn't exist yet, it was never added to the meta array because the objects meta field was never updated
2024-09-22 02:50:14 +02:00
schroda
20eaa90c10 Add optimistic response to metadata mutations 2024-09-21 22:20:41 +02:00
schroda
a1131bf85b Save library options per category 2024-09-21 22:20:38 +02:00
schroda
1708d5daff Add "status" library filter 2024-09-15 14:22:55 +02:00
schroda
274c4c6489 Add server log file rotation settings 2024-09-03 16:30:31 +02:00
schroda
5bbde0edc6 Include artist, author and source name in library search 2024-08-14 22:58:22 +02:00
schroda
66e2bd47ea Include description in library search 2024-08-14 15:21:19 +02:00
schroda
4a01b1873c Change order of update manga migration
This prevents issues of manga having a specific library state while they are incorrectly in or not in categories.

E.g. a manga was removed from the library but the category update mutation failed, which now causes it to still be in the set categories while not being in the library anymore
2024-08-05 16:07:17 +02:00
schroda
e99ed3eec5 Add "has duplicate chapters" library filter
closes #777
2024-07-28 23:15:11 +02:00