mirror of
https://github.com/Kareadita/Kavita.git
synced 2026-05-30 11:25:20 -04:00
33db123e81
* Bump versions by dotnet-bump-version.
* Bump versions by dotnet-bump-version.
* Workflow updates (#658)
# Added
- Added: Added automatic character parsing for discord notifier. Now if the PR is over a certain character limit, it will trim and add an appropriate link to the full changelog. (Release for Stable, PR for Dev)
# Removed
- Removed: Removed Sentry map task from the workflow since Sentry is no longer used.
* Bump versions by dotnet-bump-version.
* Misc Updates (#665)
* Do not allow non-admins to change their passwords when authentication is disabled
* Clean up the login page so that input field text is black
* cleanup some resizing when typing a password and having a lot of users
* Changed the LastActive for a user to not just be login, but also when they open an already authenticated session.
* Bump versions by dotnet-bump-version.
* Logging Cleanup (#668)
* Do not allow non-admins to change their passwords when authentication is disabled
* Clean up the login page so that input field text is black
* cleanup some resizing when typing a password and having a lot of users
* Changed the LastActive for a user to not just be login, but also when they open an already authenticated session.
* Removed some verbose debugging statements and moved some debug to information to be more prevelant to logs for default installs.
* In Progress now sends progress information on the Series
* Add ability to add cards to recently added when new series are added in backend
* Implemented the ability to click the glasses icon to turn off incognito mode from within the reader so you can start tracking progress
* Don't warn the user about authentication when they don't touch that control
* Bump versions by dotnet-bump-version.
* Changed the stats that are sent back to stat server from installed server.
* Revert "Changed the stats that are sent back to stat server from installed server."
This reverts commit 644cb6d1f6.
* Bump versions by dotnet-bump-version.
* Bump versions by dotnet-bump-version.
* Bulk Add to Collection (#674)
* Fixed the typeahead not having the same size input box as other inputs
* Implemented the ability to add multiple series to a collection through bulk operations flow. Updated book parser to handle "@import url('...');" syntax as well as @import '...';
* Implemented the ability to create a new Collection tag via bulk operations flow.
* Bump versions by dotnet-bump-version.
* Bulk Operations for In Progress and Recently Added (#677)
* Don't log a message about bad match if the file is a cover image
* Enable bulk operations for In Progress and Recently Added
* Fixed a bad logic case
* Bump versions by dotnet-bump-version.
* Regression Fix (#680)
* Ensure we mount the backups directory for Docker users
* Fixed a huge logic bug that deleted files in users libraries
* Bump versions by dotnet-bump-version.
* Change chunk size to be a fixed 50 to validate if it's causing issue with refresh. Added some try catches to see if exceptions are causing issues. (#681)
* Bump versions by dotnet-bump-version.
* Fixed a bug where searching on localized name would fail to show on the search. Fixed a bug where extra spaces would cause the search results not to show properly. (#682)
* Bump versions by dotnet-bump-version.
* When we have a special marker, ensure we fall back to folder parsing to try and group correctly to the actual series before just accepting what we parsed. (#684)
Fixed a missed parsing case where comic special parsing wasn't being called on comic libraries.
* Bump versions by dotnet-bump-version.
* iOS Admin page dropdown fix (#686)
# Fixed:
- Fixed: Fixed an issue where the dropdown on the admin server page would not work on Safari or other iOS browsers.
* When the DB fails to save, log out all the series the user should look into for constraint issues and push a message to the admins connected to webui. (#687)
* Bump versions by dotnet-bump-version.
* Bump versions by dotnet-bump-version.
* Stat upload will now schedule itself between midnight and 6am in server time for upload. (#688)
* Bump versions by dotnet-bump-version.
* EPUB CSS Parsing Issues (#690)
* WIP. Rewrote some of the Regex to better support css escaping. We now escape background-image, border-image, and list-style-image within css files.
* Added position relative to help with positioning on books that are just absolute positioned elements.
* When there is absolute positioning, like in some epub based comics, supress the bottom action bar since it wont render in the correct location.
* Fixed tests
* Commented out tests
* Bump versions by dotnet-bump-version.
* More EPUB Scoping Fixes (#691)
* Added better handling around when importing css files that are empty. Moved comment removal on css files to before some css whitespace cleanup to get better matches.
* Some enhancements on the checks to see if we need the bottom action bar on reader. Now we don't query DOM and have something that works more reliably.
* Bump versions by dotnet-bump-version.
* Fixed an issue where docker users were not properly backing up the database. Removed an empty File for when covers/ had nothing in it. (#692)
* Bump versions by dotnet-bump-version.
* Fallback to Folder Parsing Issue (#694)
* Fixed a bug in the scanner where we fall back to parsing from folders for poorly named files. The code was exiting early if a chapter or volume could be parsed out.
* Fixed a unit test by tweaking a regex for fallback
* Bump versions by dotnet-bump-version.
* KavitaStats Cleanup (#695)
* Refactored Stats code to be much cleaner and user better naming.
* Cleaned up the actual http code to use Flurl and to return if the upload was successful or not so we can delete the file where appropriate.
* More refactoring for the stats code to clean it up and keep it consistent with our standards.
* Removed a confusing log statement
* Added support for old api key header from original stat server
* Use the correct endpoint, not the new one.
* Code smell
* Bump versions by dotnet-bump-version.
* Bulk Deletion (#697)
* Implemented bulk deletion of series
* Don't show unauthorized exception on UI, just redirect to the login page.
* Bump versions by dotnet-bump-version.
* Cover Image Picking + Forwarding Headers with EPUBs (#700)
* Ensure Kavita knows about forwarding headers (fixes issue with epub urls not going through https with reverse proxy). Fixed a case where cover image selection preferred nested folders vs files in root directory.
* Fixed broken unit test
* Added bug that I fixed to the unit tests
* Cover Image Picking + Forwarding Headers with EPUBs (#702)
* Updating GA Bump version temporarily for fix (#703)
* Bump versions by dotnet-bump-version.
* Cover Image Picking + Forwarding Headers with EPUBs (GA Fix) (#704)
* Bump versions by dotnet-bump-version.
* Vacation Fixes (#709)
* Ignore system and hidden folders when performing directory scan.
* Fixed the comic parser tests not using Comic mode for parsing.
* Accept all forwarded headers and use them.
* Ignore some changes from another branch
* Bump versions by dotnet-bump-version.
* Breaking Changes: Docker Parity (#698)
* Refactored all the config files for Kavita to be loaded from config/. This will allow docker to just mount one folder and for Update functionality to be trivial.
* Cleaned up documentation around new update method.
* Updated docker files to support config directory
* Removed entrypoint, no longer needed
* Update appsettings to point to config directory for logs
* Updated message for docker users that are upgrading
* Ensure that docker users that have not updated their mount points from upgrade cannot start the server
* Code smells
* More cleanup
* Added entrypoint to fix bind mount issues
* Updated README with new folder structure
* Fixed build system for new setup
* Updated string path if user is docker
* Updated the migration flow for docker to work properly and Fixed LogFile configuration updating.
* Migrating docker images is now working 100%
* Fixed config from bad code
* Code cleanup
Co-authored-by: Chris Plaatjes <kizaing@gmail.com>
* Bump versions by dotnet-bump-version.
* Feature/docker parity (#714)
* Refactored all the config files for Kavita to be loaded from config/. This will allow docker to just mount one folder and for Update functionality to be trivial.
* Cleaned up documentation around new update method.
* Updated docker files to support config directory
* Removed entrypoint, no longer needed
* Update appsettings to point to config directory for logs
* Updated message for docker users that are upgrading
* Ensure that docker users that have not updated their mount points from upgrade cannot start the server
* Code smells
* More cleanup
* Added entrypoint to fix bind mount issues
* Updated README with new folder structure
* Fixed build system for new setup
* Updated string path if user is docker
* Updated the migration flow for docker to work properly and Fixed LogFile configuration updating.
* Migrating docker images is now working 100%
* Fixed config from bad code
* Code cleanup
* Fixed monorepo-build.sh
Co-authored-by: Chris Plaatjes <kizaing@gmail.com>
* Breaking Changes: Docker Parity (#715)
* Fixed a bug in the copy directory to directory in the migration
* Somehow GetFiles lost static modifier.
* Bump versions by dotnet-bump-version.
* Build issue (#716)
* Fixed a bug in the copy directory to directory in the migration
* Somehow GetFiles lost static modifier.
* Please work
* Bump versions by dotnet-bump-version.
* Bump versions by dotnet-bump-version.
* Shakeout Changes (#717)
* Make the appsettings public on Configuration and change how we detect when to migrate for non-docker users.
* Fixed up non-docker copy command and removed duplicate check on source directory for a copy.
* Don't delete files unless we know we are successful
* Bump versions by dotnet-bump-version.
* Fixed a migration issue on docker happening too many times or throwing exception when source wasn't there. (#719)
* Bump versions by dotnet-bump-version.
* Version bump for release (#718)
* Bump versions by dotnet-bump-version.
Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
Co-authored-by: YEGCSharpDev <89283498+YEGCSharpDev@users.noreply.github.com>
Co-authored-by: Chris Plaatjes <kizaing@gmail.com>
132 lines
8.7 KiB
HTML
132 lines
8.7 KiB
HTML
<div class="reader">
|
|
<div class="fixed-top overlay" *ngIf="menuOpen" [@slideFromTop]="menuOpen">
|
|
<div style="display: flex; margin-top: 5px;">
|
|
<button class="btn btn-icon" style="height: 100%" title="Back" (click)="closeReader()">
|
|
<i class="fa fa-arrow-left" aria-hidden="true"></i>
|
|
<span class="sr-only">Back</span>
|
|
</button>
|
|
|
|
<div>
|
|
<div style="font-weight: bold;">{{title}} <span class="clickable" *ngIf="incognitoMode" (click)="turnOffIncognito()" role="button" aria-label="Incognito mode is on. Toggle to turn off.">(<i class="fa fa-glasses" aria-hidden="true"></i><span class="sr-only">Incognito Mode:</span>)</span></div>
|
|
<div class="subtitle">
|
|
{{subtitle}}
|
|
</div>
|
|
</div>
|
|
<div style="margin-left: auto; padding-right: 3%;">
|
|
<button class="btn btn-icon btn-small" role="checkbox" [attr.aria-checked]="pageBookmarked" title="{{pageBookmarked ? 'Unbookmark Page' : 'Bookmark Page'}}" (click)="bookmarkPage()"><i class="{{pageBookmarked ? 'fa' : 'far'}} fa-bookmark" aria-hidden="true"></i><span class="sr-only">{{pageBookmarked ? 'Unbookmark Page' : 'Bookmark Page'}}</span></button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<ng-container *ngIf="isLoading">
|
|
<div class="spinner-border text-secondary loading" role="status">
|
|
<span class="invisible">Loading...</span>
|
|
</div>
|
|
</ng-container>
|
|
|
|
<div (click)="toggleMenu()" class="reading-area">
|
|
<canvas #content class="{{getFittingOptionClass()}} {{this.colorMode}} {{readerMode === READER_MODE.MANGA_LR || readerMode === READER_MODE.MANGA_UD ? '' : 'd-none'}}"
|
|
ondragstart="return false;" onselectstart="return false;">
|
|
</canvas>
|
|
<div class="webtoon-images" *ngIf="readerMode === READER_MODE.WEBTOON && !isLoading">
|
|
<app-infinite-scroller [pageNum]="pageNum" [bufferPages]="5" [goToPage]="goToPageEvent" (pageNumberChange)="handleWebtoonPageChange($event)" [totalPages]="maxPages - 1" [urlProvider]="getPageUrl" (loadNextChapter)="loadNextChapter()" (loadPrevChapter)="loadPrevChapter()"></app-infinite-scroller>
|
|
</div>
|
|
<ng-container *ngIf="readerMode === READER_MODE.MANGA_LR || readerMode === READER_MODE.MANGA_UD">
|
|
<div class="{{readerMode === READER_MODE.MANGA_LR ? 'right' : 'bottom'}} {{clickOverlayClass('right')}}" (click)="handlePageChange($event, 'right')"></div>
|
|
<div class="{{readerMode === READER_MODE.MANGA_LR ? 'left' : 'top'}} {{clickOverlayClass('left')}}" (click)="handlePageChange($event, 'left')"></div>
|
|
</ng-container>
|
|
</div>
|
|
|
|
<div class="fixed-bottom overlay" *ngIf="menuOpen" [@slideFromBottom]="menuOpen">
|
|
<div class="form-group" *ngIf="pageOptions != undefined && pageOptions.ceil != undefined">
|
|
<span class="sr-only" id="slider-info"></span>
|
|
<div class="row no-gutters">
|
|
<button class="btn btn-small btn-icon col-1" [disabled]="prevChapterDisabled" (click)="loadPrevChapter();resetMenuCloseTimer();" title="Prev Chapter/Volume"><i class="fa fa-fast-backward" aria-hidden="true"></i></button>
|
|
<button class="btn btn-small btn-icon col-1" [disabled]="prevPageDisabled || pageNum === 0" (click)="goToPage(0);resetMenuCloseTimer();" title="First Page"><i class="fa fa-step-backward" aria-hidden="true"></i></button>
|
|
<div class="col custom-slider" *ngIf="pageOptions.ceil > 0; else noSlider">
|
|
<ngx-slider [options]="pageOptions" [value]="pageNum" aria-describedby="slider-info" [manualRefresh]="refreshSlider" (userChangeEnd)="sliderPageUpdate($event);startMenuCloseTimer()" (userChangeStart)="cancelMenuCloseTimer();"></ngx-slider>
|
|
</div>
|
|
<ng-template #noSlider>
|
|
<div class="col custom-slider">
|
|
<ngx-slider [options]="pageOptions" [value]="pageNum" aria-describedby="slider-info" (userChangeEnd)="startMenuCloseTimer()" (userChangeStart)="cancelMenuCloseTimer();"></ngx-slider>
|
|
</div>
|
|
</ng-template>
|
|
<button class="btn btn-small btn-icon col-2" [disabled]="nextPageDisabled || pageNum >= maxPages - 1" (click)="goToPage(this.maxPages);resetMenuCloseTimer();" title="Last Page"><i class="fa fa-step-forward" aria-hidden="true"></i></button>
|
|
<button class="btn btn-small btn-icon col-1" [disabled]="nextChapterDisabled" (click)="loadNextChapter();resetMenuCloseTimer();" title="Next Chapter/Volume"><i class="fa fa-fast-forward" aria-hidden="true"></i></button>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div class="row pt-4 ml-2 mr-2">
|
|
<div class="col">
|
|
<button class="btn btn-icon" (click)="setReadingDirection();resetMenuCloseTimer();" [disabled]="readerMode === READER_MODE.WEBTOON || readerMode === READER_MODE.MANGA_UD" aria-describedby="reading-direction" title="Reading Direction: {{readingDirection === ReadingDirection.LeftToRight ? 'Left to Right' : 'Right to Left'}}">
|
|
<i class="fa fa-angle-double-{{readingDirection === ReadingDirection.LeftToRight ? 'right' : 'left'}}" aria-hidden="true"></i>
|
|
<span id="reading-direction" class="sr-only">{{readingDirection === ReadingDirection.LeftToRight ? 'Left to Right' : 'Right to Left'}}</span>
|
|
</button>
|
|
</div>
|
|
<div class="col">
|
|
<button class="btn btn-icon" title="Reading Mode" (click)="toggleReaderMode();resetMenuCloseTimer();">
|
|
<i class="fa {{readerModeIcon}}" aria-hidden="true"></i>
|
|
<span class="sr-only">Reading Mode</span>
|
|
</button>
|
|
</div>
|
|
<div class="col">
|
|
<button class="btn btn-icon {{this.colorMode}}" [disabled]="readerMode === READER_MODE.WEBTOON" title="Color Options: {{colorOptionName}}" (click)="toggleColorMode();resetMenuCloseTimer();">
|
|
<i class="fa fa-palette" aria-hidden="true"></i>
|
|
<span class="sr-only"></span>
|
|
</button>
|
|
</div>
|
|
<div class="col">
|
|
<button class="btn btn-icon" title="Settings" (click)="settingsOpen = !settingsOpen;resetMenuCloseTimer();">
|
|
<i class="fa fa-sliders-h" aria-hidden="true"></i>
|
|
<span class="sr-only">Settings</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<div class="bottom-menu" *ngIf="settingsOpen && generalSettingsForm">
|
|
<form [formGroup]="generalSettingsForm">
|
|
<div class="row">
|
|
<div class="col-6">
|
|
<label for="page-splitting">Image Splitting</label>
|
|
<div class="split fa fa-image">
|
|
<div class="{{splitIconClass}}"></div>
|
|
</div>
|
|
</div>
|
|
<div class="col-6">
|
|
<div class="form-group">
|
|
<select class="form-control" id="page-splitting" formControlName="pageSplitOption">
|
|
<option [value]="1">Right to Left</option>
|
|
<option [value]="0">Left to Right</option>
|
|
<option [value]="2">None</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-6">
|
|
<label for="page-fitting">Image Scaling</label> <i class="fa {{getFittingIcon()}}" aria-hidden="true"></i>
|
|
</div>
|
|
<div class="col-6">
|
|
<select class="form-control" id="page-fitting" formControlName="fittingOption">
|
|
<option value="full-height">Height</option>
|
|
<option value="full-width">Width</option>
|
|
<option value="original">Original</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row mt-2 mb-2">
|
|
<div class="col-6">
|
|
<label for="autoCloseMenu" class="form-check-label">Auto Close Menu</label>
|
|
</div>
|
|
<div class="col-6">
|
|
<div class="form-check">
|
|
<input id="autoCloseMenu" type="checkbox" aria-label="Admin" class="form-check-input" formControlName="autoCloseMenu">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
</div> |