mirror of
https://github.com/Kareadita/Kavita.git
synced 2025-05-24 00:52:23 -04:00
* Changed language codes in the UI to be a list of all codes we will ever support. * Converted actionables * Fixed the GetLocales not using Intersect, but Union. * Fixed some localization strings in backend when user doesn't exist. Removed AllowAnonymous from reset-password, since it is a protected API * Fixed all instances of anonymous APIs where Claim wouldn't work * Keyed preference options and mixed misc localization issues * Translations update from Hosted Weblate (#2177) * Bump versions by dotnet-bump-version. * Added translation using Weblate (Dutch) * Bump versions by dotnet-bump-version. * Translated using Weblate (Dutch) Currently translated at 20.8% (33 of 158 strings) Translation: Kavita/backend Translate-URL: https://hosted.weblate.org/projects/kavita/backend/nl/ * Translated using Weblate (Spanish) Currently translated at 1.4% (20 of 1371 strings) Translation: Kavita/ui Translate-URL: https://hosted.weblate.org/projects/kavita/ui/es/ * Translated using Weblate (Dutch) Currently translated at 60.1% (95 of 158 strings) Translation: Kavita/backend Translate-URL: https://hosted.weblate.org/projects/kavita/backend/nl/ * Translated using Weblate (Dutch) Currently translated at 60.1% (95 of 158 strings) Translation: Kavita/backend Translate-URL: https://hosted.weblate.org/projects/kavita/backend/nl/ * Added translation using Weblate (Dutch) --------- Co-authored-by: Hans Kalisvaart <hans.kalisvaart@gmail.com> Co-authored-by: Javier Barbero <javier.agustin.barbero@gmail.com> Co-authored-by: Stijn <stijn.biemans@gmail.com> --------- Co-authored-by: Weblate (bot) <hosted@weblate.org> Co-authored-by: Hans Kalisvaart <hans.kalisvaart@gmail.com> Co-authored-by: Javier Barbero <javier.agustin.barbero@gmail.com> Co-authored-by: Stijn <stijn.biemans@gmail.com>
80 lines
2.2 KiB
C#
80 lines
2.2 KiB
C#
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using API.Data;
|
|
using API.DTOs.Theme;
|
|
using API.Extensions;
|
|
using API.Services;
|
|
using API.Services.Tasks;
|
|
using Kavita.Common;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace API.Controllers;
|
|
|
|
public class ThemeController : BaseApiController
|
|
{
|
|
private readonly IUnitOfWork _unitOfWork;
|
|
private readonly IThemeService _themeService;
|
|
private readonly ITaskScheduler _taskScheduler;
|
|
private readonly ILocalizationService _localizationService;
|
|
|
|
public ThemeController(IUnitOfWork unitOfWork, IThemeService themeService, ITaskScheduler taskScheduler,
|
|
ILocalizationService localizationService)
|
|
{
|
|
_unitOfWork = unitOfWork;
|
|
_themeService = themeService;
|
|
_taskScheduler = taskScheduler;
|
|
_localizationService = localizationService;
|
|
}
|
|
|
|
[ResponseCache(CacheProfileName = "10Minute")]
|
|
[AllowAnonymous]
|
|
[HttpGet]
|
|
public async Task<ActionResult<IEnumerable<SiteThemeDto>>> GetThemes()
|
|
{
|
|
return Ok(await _unitOfWork.SiteThemeRepository.GetThemeDtos());
|
|
}
|
|
|
|
[Authorize("RequireAdminRole")]
|
|
[HttpPost("scan")]
|
|
public ActionResult Scan()
|
|
{
|
|
_taskScheduler.ScanSiteThemes();
|
|
return Ok();
|
|
}
|
|
|
|
[Authorize("RequireAdminRole")]
|
|
[HttpPost("update-default")]
|
|
public async Task<ActionResult> UpdateDefault(UpdateDefaultThemeDto dto)
|
|
{
|
|
try
|
|
{
|
|
await _themeService.UpdateDefault(dto.ThemeId);
|
|
}
|
|
catch (KavitaException ex)
|
|
{
|
|
return BadRequest(await _localizationService.Translate(User.GetUserId(), "theme-doesnt-exist"));
|
|
}
|
|
|
|
return Ok();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Returns css content to the UI. UI is expected to escape the content
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[AllowAnonymous]
|
|
[HttpGet("download-content")]
|
|
public async Task<ActionResult<string>> GetThemeContent(int themeId)
|
|
{
|
|
try
|
|
{
|
|
return Ok(await _themeService.GetContent(themeId));
|
|
}
|
|
catch (KavitaException ex)
|
|
{
|
|
return BadRequest(await _localizationService.Get("en", ex.Message));
|
|
}
|
|
}
|
|
}
|