CBL Import (#1834)

* Wrote my own step tracker and added a prev button. Works up to first conflict flow.

* Everything but final import is hooked up in the UI. Polish still needed, but getting there.

* Making more progress in the CBL import flow.

* Ready for the last step

* Cleaned up some logic to prepare for the last step and reset

* Users like order to be starting at 1

* Fixed a few bugs around cbl import

* CBL import is ready for some basic testing

* Added a reading list hook on side nav

* Fixed up unit tests

* Added icons and color to the import flow

* Tweaked some phrasing

* Hooked up a loading variable but disabled the component as it didn't look good.

* Styling it up

* changed an icon to better fit

---------

Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
This commit is contained in:
Joe Milazzo 2023-03-03 16:51:11 -06:00 committed by GitHub
parent 57de661d71
commit d88a4d5d0c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
26 changed files with 1125 additions and 466 deletions

View file

@ -1,8 +1,7 @@
using System.Collections.Generic;
using System.ComponentModel;
using API.DTOs.ReadingLists.CBL;
namespace API.DTOs.ReadingLists;
namespace API.DTOs.ReadingLists.CBL;
public enum CblImportResult {
/// <summary>
@ -64,10 +63,19 @@ public enum CblImportReason
/// </summary>
[Description("All Chapters Missing")]
AllChapterMissing = 7,
/// <summary>
/// The Chapter was imported
/// </summary>
[Description("Success")]
Success = 8,
}
public class CblBookResult
{
/// <summary>
/// Order in the CBL
/// </summary>
public int Order { get; set; }
public string Series { get; set; }
public string Volume { get; set; }
public string Number { get; set; }
@ -95,10 +103,5 @@ public class CblImportSummaryDto
public ICollection<CblBookResult> Results { get; set; }
public CblImportResult Success { get; set; }
public ICollection<CblBookResult> SuccessfulInserts { get; set; }
/// <summary>
/// A list of Series that are within the CBL but map to multiple libraries within Kavita
/// </summary>
public IList<SeriesDto> Conflicts { get; set; }
public IList<CblConflictQuestion> Conflicts2 { get; set; }
}