Files
Umbraco-CMS/src/Umbraco.Web.BackOffice/Controllers/BackOfficeAssetsController.cs

52 lines
1.8 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using System.IO;
2018-03-15 10:02:20 +01:00
using System.Linq;
2020-09-17 11:35:29 +02:00
using Microsoft.Extensions.Logging;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
using Umbraco.Core;
using Umbraco.Core.Configuration;
using Umbraco.Core.Configuration.Models;
using Umbraco.Core.Hosting;
2018-03-15 10:02:20 +01:00
using Umbraco.Core.IO;
using Umbraco.Web.Common.Attributes;
2018-03-15 10:02:20 +01:00
namespace Umbraco.Web.BackOffice.Controllers
2018-03-15 10:02:20 +01:00
{
[PluginController(Constants.Web.Mvc.BackOfficeApiArea)]
2018-03-15 10:02:20 +01:00
public class BackOfficeAssetsController : UmbracoAuthorizedJsonController
{
private readonly IFileSystem _jsLibFileSystem;
2020-09-18 12:53:06 +02:00
public BackOfficeAssetsController(IIOHelper ioHelper, IHostingEnvironment hostingEnvironment, ILoggerFactory loggerFactory, IOptions<GlobalSettings> globalSettings)
{
2020-09-18 12:53:06 +02:00
_jsLibFileSystem = new PhysicalFileSystem(ioHelper, hostingEnvironment, loggerFactory.CreateLogger<PhysicalFileSystem>(), globalSettings.Value.UmbracoPath + Path.DirectorySeparatorChar + "lib");
}
2018-03-15 10:02:20 +01:00
[HttpGet]
2019-01-23 22:56:00 +01:00
public object GetSupportedLocales()
2018-03-15 10:02:20 +01:00
{
const string momentLocaleFolder = "moment";
2019-01-23 22:56:00 +01:00
const string flatpickrLocaleFolder = "flatpickr/l10n";
return new
{
moment = GetLocales(momentLocaleFolder),
flatpickr = GetLocales(flatpickrLocaleFolder)
};
}
private IEnumerable<string> GetLocales(string path)
{
var cultures = _jsLibFileSystem.GetFiles(path, "*.js").ToList();
for (var i = 0; i < cultures.Count; i++)
2018-03-15 10:02:20 +01:00
{
cultures[i] = cultures[i]
2019-01-23 22:56:00 +01:00
.Substring(cultures[i].IndexOf(path, StringComparison.Ordinal) + path.Length + 1);
2018-03-15 10:02:20 +01:00
}
return cultures;
}
}
}