Merge branch 'develop' into release/1.0.0
This commit is contained in:
commit
fa204303f5
Binary file not shown.
BIN
.nuget/packages/WebSocketSharpNetStandart.1.0.3-rc12.nupkg
Normal file
BIN
.nuget/packages/WebSocketSharpNetStandart.1.0.3-rc12.nupkg
Normal file
Binary file not shown.
@ -79,7 +79,6 @@ namespace ASC.Core.Data
|
||||
MaxFileSize = GetInBytes(r.MaxFileSize),
|
||||
MaxTotalSize = GetInBytes(r.MaxTotalSize),
|
||||
Price = r.Price,
|
||||
Price2 = r.Price2,
|
||||
Visible = r.Visible
|
||||
};
|
||||
|
||||
@ -127,7 +126,6 @@ namespace ASC.Core.Data
|
||||
ActiveUsers = quota.ActiveUsers,
|
||||
Features = quota.Features,
|
||||
Price = quota.Price,
|
||||
Price2 = quota.Price2,
|
||||
AvangateId = quota.AvangateId,
|
||||
Visible = quota.Visible
|
||||
};
|
||||
|
@ -14,7 +14,6 @@ namespace ASC.Core.Common.EF
|
||||
public int ActiveUsers { get; set; }
|
||||
public string Features { get; set; }
|
||||
public decimal Price { get; set; }
|
||||
public decimal Price2 { get; set; }
|
||||
public string AvangateId { get; set; }
|
||||
public bool Visible { get; set; }
|
||||
public override object[] GetKeys()
|
||||
@ -30,7 +29,7 @@ namespace ASC.Core.Common.EF
|
||||
.Add(MySqlAddDbQuota, Provider.MySql)
|
||||
.Add(PgSqlAddDbQuota, Provider.Postgre)
|
||||
.HasData(
|
||||
new DbQuota { Tenant = -1, Name = "default", Description = null, MaxFileSize = 102400, MaxTotalSize = 10995116277760, ActiveUsers = 10000, Features = "domain,audit,controlpanel,healthcheck,ldap,sso,whitelabel,branding,ssbranding,update,support,portals:10000,discencryption,privacyroom,restore", Price = decimal.Parse("0,00"), Price2 = decimal.Parse("0,00"), AvangateId = "0", Visible = false }
|
||||
new DbQuota { Tenant = -1, Name = "default", Description = null, MaxFileSize = 102400, MaxTotalSize = 10995116277760, ActiveUsers = 10000, Features = "domain,audit,controlpanel,healthcheck,ldap,sso,whitelabel,branding,ssbranding,update,support,portals:10000,discencryption,privacyroom,restore", Price = decimal.Parse("0,00"), AvangateId = "0", Visible = false }
|
||||
);
|
||||
|
||||
return modelBuilder;
|
||||
@ -81,10 +80,6 @@ namespace ASC.Core.Common.EF
|
||||
.HasColumnName("price")
|
||||
.HasColumnType("decimal(10,2)");
|
||||
|
||||
entity.Property(e => e.Price2)
|
||||
.HasColumnName("price2")
|
||||
.HasColumnType("decimal(10,2)");
|
||||
|
||||
entity.Property(e => e.Visible).HasColumnName("visible");
|
||||
});
|
||||
}
|
||||
@ -131,11 +126,6 @@ namespace ASC.Core.Common.EF
|
||||
.HasColumnType("numeric(10,2)")
|
||||
.HasDefaultValueSql("0.00");
|
||||
|
||||
entity.Property(e => e.Price2)
|
||||
.HasColumnName("price2")
|
||||
.HasColumnType("numeric(10,2)")
|
||||
.HasDefaultValueSql("0.00");
|
||||
|
||||
entity.Property(e => e.Visible).HasColumnName("visible");
|
||||
});
|
||||
}
|
||||
|
@ -657,10 +657,6 @@ namespace ASC.Core.Common.Migrations.MySql.CoreDbContextMySql
|
||||
.HasColumnType("decimal(10,2)")
|
||||
.HasColumnName("price");
|
||||
|
||||
b.Property<decimal>("Price2")
|
||||
.HasColumnType("decimal(10,2)")
|
||||
.HasColumnName("price2");
|
||||
|
||||
b.Property<bool>("Visible")
|
||||
.HasColumnType("tinyint(1)")
|
||||
.HasColumnName("visible");
|
||||
@ -681,7 +677,6 @@ namespace ASC.Core.Common.Migrations.MySql.CoreDbContextMySql
|
||||
MaxTotalSize = 10995116277760L,
|
||||
Name = "default",
|
||||
Price = 0.00m,
|
||||
Price2 = 0.00m,
|
||||
Visible = false
|
||||
});
|
||||
});
|
||||
|
@ -58,7 +58,6 @@ namespace ASC.Core.Common.Migrations.MySql.CoreDbContextMySql
|
||||
features = table.Column<string>(type: "text", nullable: true, collation: "utf8_general_ci")
|
||||
.Annotation("MySql:CharSet", "utf8"),
|
||||
price = table.Column<decimal>(type: "decimal(10,2)", nullable: false),
|
||||
price2 = table.Column<decimal>(type: "decimal(10,2)", nullable: false),
|
||||
avangate_id = table.Column<string>(type: "varchar(128)", nullable: true, collation: "utf8_general_ci")
|
||||
.Annotation("MySql:CharSet", "utf8"),
|
||||
visible = table.Column<bool>(type: "tinyint(1)", nullable: false)
|
||||
@ -181,8 +180,8 @@ namespace ASC.Core.Common.Migrations.MySql.CoreDbContextMySql
|
||||
|
||||
migrationBuilder.InsertData(
|
||||
table: "tenants_quota",
|
||||
columns: new[] { "tenant", "active_users", "avangate_id", "description", "features", "max_file_size", "max_total_size", "name", "price", "price2", "visible" },
|
||||
values: new object[] { -1, 10000, "0", null, "domain,audit,controlpanel,healthcheck,ldap,sso,whitelabel,branding,ssbranding,update,support,portals:10000,discencryption,privacyroom,restore", 102400L, 10995116277760L, "default", 0.00m, 0.00m, false });
|
||||
columns: new[] { "tenant", "active_users", "avangate_id", "description", "features", "max_file_size", "max_total_size", "name", "price", "visible" },
|
||||
values: new object[] { -1, 10000, "0", null, "domain,audit,controlpanel,healthcheck,ldap,sso,whitelabel,branding,ssbranding,update,support,portals:10000,discencryption,privacyroom,restore", 102400L, 10995116277760L, "default", 0.00m, false });
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "last_modified",
|
||||
|
@ -655,10 +655,6 @@ namespace ASC.Core.Common.Migrations.MySql.CoreDbContextMySql
|
||||
.HasColumnType("decimal(10,2)")
|
||||
.HasColumnName("price");
|
||||
|
||||
b.Property<decimal>("Price2")
|
||||
.HasColumnType("decimal(10,2)")
|
||||
.HasColumnName("price2");
|
||||
|
||||
b.Property<bool>("Visible")
|
||||
.HasColumnType("tinyint(1)")
|
||||
.HasColumnName("visible");
|
||||
@ -679,7 +675,6 @@ namespace ASC.Core.Common.Migrations.MySql.CoreDbContextMySql
|
||||
MaxTotalSize = 10995116277760L,
|
||||
Name = "default",
|
||||
Price = 0.00m,
|
||||
Price2 = 0.00m,
|
||||
Visible = false
|
||||
});
|
||||
});
|
||||
|
@ -652,12 +652,6 @@ namespace ASC.Core.Common.Migrations.Npgsql.CoreDbContextNpgsql
|
||||
.HasColumnType("numeric(10,2)")
|
||||
.HasDefaultValueSql("0.00");
|
||||
|
||||
b.Property<decimal>("Price2")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnName("price2")
|
||||
.HasColumnType("numeric(10,2)")
|
||||
.HasDefaultValueSql("0.00");
|
||||
|
||||
b.Property<bool>("Visible")
|
||||
.HasColumnName("visible")
|
||||
.HasColumnType("boolean");
|
||||
|
@ -56,7 +56,6 @@ namespace ASC.Core.Common.Migrations.Npgsql.CoreDbContextNpgsql
|
||||
active_users = table.Column<int>(nullable: false),
|
||||
features = table.Column<string>(nullable: true),
|
||||
price = table.Column<decimal>(type: "numeric(10,2)", nullable: false, defaultValueSql: "0.00"),
|
||||
price2 = table.Column<decimal>(type: "numeric(10,2)", nullable: false, defaultValueSql: "0.00"),
|
||||
avangate_id = table.Column<string>(maxLength: 128, nullable: true, defaultValueSql: "NULL"),
|
||||
visible = table.Column<bool>(nullable: false)
|
||||
},
|
||||
|
@ -650,12 +650,6 @@ namespace ASC.Core.Common.Migrations.Npgsql.CoreDbContextNpgsql
|
||||
.HasColumnType("numeric(10,2)")
|
||||
.HasDefaultValueSql("0.00");
|
||||
|
||||
b.Property<decimal>("Price2")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnName("price2")
|
||||
.HasColumnType("numeric(10,2)")
|
||||
.HasDefaultValueSql("0.00");
|
||||
|
||||
b.Property<bool>("Visible")
|
||||
.HasColumnName("visible")
|
||||
.HasColumnType("boolean");
|
||||
@ -676,7 +670,6 @@ namespace ASC.Core.Common.Migrations.Npgsql.CoreDbContextNpgsql
|
||||
MaxTotalSize = 10995116277760L,
|
||||
Name = "default",
|
||||
Price = 0.00m,
|
||||
Price2 = 0.00m,
|
||||
Visible = false
|
||||
});
|
||||
});
|
||||
|
@ -55,8 +55,6 @@ namespace ASC.Core.Tenants
|
||||
|
||||
public decimal Price { get; set; }
|
||||
|
||||
public decimal Price2 { get; set; }
|
||||
|
||||
public string AvangateId { get; set; }
|
||||
|
||||
public bool Visible { get; set; }
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<ProduceReferenceAssembly>false</ProduceReferenceAssembly>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<ProduceReferenceAssembly>false</ProduceReferenceAssembly>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
||||
|
@ -5,13 +5,11 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\ASC.Core.Common\ASC.Core.Common.csproj" />
|
||||
<PackageReference Include="NUnit" Version="3.12.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="nunit.framework">
|
||||
<HintPath>..\..\..\..\..\Program Files (x86)\Microsoft\Xamarin\NuGet\nunit\3.12.0\lib\netstandard2.0\nunit.framework.dll</HintPath>
|
||||
</Reference>
|
||||
<ProjectReference Include="..\..\ASC.Core.Common\ASC.Core.Common.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
@ -4,15 +4,13 @@
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="NUnit" Version="3.12.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\ASC.Core.Common\ASC.Core.Common.csproj" />
|
||||
<ProjectReference Include="..\..\ASC.Notify.Textile\ASC.Notify.Textile.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="nunit.framework">
|
||||
<HintPath>..\..\..\..\..\Program Files (x86)\Microsoft\Xamarin\NuGet\nunit\3.12.0\lib\netstandard2.0\nunit.framework.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
@ -21,7 +21,7 @@
|
||||
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="7.1.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Hosting.Systemd" Version="5.0.1" />
|
||||
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="5.0.1" />
|
||||
<PackageReference Include="WebSocketSharpNetStandart" Version="1.0.3-rc11" />
|
||||
<PackageReference Include="WebSocketSharpNetStandart" Version="1.0.3-rc12" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
@ -38,7 +38,7 @@ server {
|
||||
etag on;
|
||||
|
||||
large_client_header_buffers 4 16k;
|
||||
|
||||
client_max_body_size 4G;
|
||||
set $X_REWRITER_URL $the_scheme://$the_host;
|
||||
|
||||
if ($http_x_rewriter_url != '') {
|
||||
|
@ -23,6 +23,7 @@ class SettingsStore {
|
||||
favoritesSection = null;
|
||||
recentSection = null;
|
||||
hideConfirmConvertSave = null;
|
||||
chunkUploadSize = 1024 * 1023; // 1024 * 1023; //~0.999mb
|
||||
|
||||
settingsIsLoaded = false;
|
||||
|
||||
|
@ -18,8 +18,6 @@ import {
|
||||
moveToFolder,
|
||||
} from "@appserver/common/api/files";
|
||||
|
||||
const chunkSize = 1024 * 1023; //~0.999mb
|
||||
|
||||
class UploadDataStore {
|
||||
formatsStore;
|
||||
treeFoldersStore;
|
||||
@ -513,7 +511,9 @@ class UploadDataStore {
|
||||
|
||||
const { uploaded } = res.data.data;
|
||||
|
||||
const uploadedSize = uploaded ? fileSize : index * chunkSize;
|
||||
const uploadedSize = uploaded
|
||||
? fileSize
|
||||
: index * this.settingsStore.chunkUploadSize;
|
||||
|
||||
const newPercent = this.getNewPercent(uploadedSize, indexOfFile);
|
||||
|
||||
@ -626,8 +626,10 @@ class UploadDataStore {
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
||||
const { chunkUploadSize } = this.settingsStore;
|
||||
|
||||
const { file, toFolderId /*, action*/ } = item;
|
||||
const chunks = Math.ceil(file.size / chunkSize, chunkSize);
|
||||
const chunks = Math.ceil(file.size / chunkUploadSize, chunkUploadSize);
|
||||
const fileName = file.name;
|
||||
const fileSize = file.size;
|
||||
const relativePath = file.path
|
||||
@ -651,9 +653,9 @@ class UploadDataStore {
|
||||
let chunk = 0;
|
||||
|
||||
while (chunk < chunks) {
|
||||
const offset = chunk * chunkSize;
|
||||
const offset = chunk * chunkUploadSize;
|
||||
const formData = new FormData();
|
||||
formData.append("file", file.slice(offset, offset + chunkSize));
|
||||
formData.append("file", file.slice(offset, offset + chunkUploadSize));
|
||||
requestsDataArray.push(formData);
|
||||
chunk++;
|
||||
}
|
||||
|
@ -31,7 +31,8 @@ using ASC.Common;
|
||||
using ASC.Core;
|
||||
using ASC.Core.Common.Settings;
|
||||
using ASC.Files.Core;
|
||||
|
||||
using ASC.Web.Studio.Core;
|
||||
|
||||
namespace ASC.Web.Files.Classes
|
||||
{
|
||||
[Serializable]
|
||||
@ -114,12 +115,14 @@ namespace ASC.Web.Files.Classes
|
||||
public class FilesSettingsHelper
|
||||
{
|
||||
private SettingsManager SettingsManager { get; }
|
||||
private CoreBaseSettings CoreBaseSettings { get; }
|
||||
|
||||
public FilesSettingsHelper(SettingsManager settingsManager, CoreBaseSettings coreBaseSettings)
|
||||
private CoreBaseSettings CoreBaseSettings { get; }
|
||||
private SetupInfo SetupInfo { get; }
|
||||
|
||||
public FilesSettingsHelper(SettingsManager settingsManager, CoreBaseSettings coreBaseSettings, SetupInfo setupInfo)
|
||||
{
|
||||
SettingsManager = settingsManager;
|
||||
CoreBaseSettings = coreBaseSettings;
|
||||
CoreBaseSettings = coreBaseSettings;
|
||||
SetupInfo = setupInfo;
|
||||
}
|
||||
|
||||
public bool ConfirmDelete
|
||||
@ -285,6 +288,11 @@ namespace ASC.Web.Files.Classes
|
||||
get => LoadForCurrentUser().DownloadTarGzSetting;
|
||||
}
|
||||
|
||||
public long ChunkUploadSize
|
||||
{
|
||||
get => SetupInfo.ChunkUploadSize;
|
||||
}
|
||||
|
||||
private FilesSettings LoadForCurrentUser()
|
||||
{
|
||||
return SettingsManager.LoadForCurrentUser<FilesSettings>();
|
||||
|
@ -322,8 +322,8 @@ namespace ASC.Files.Core.Data
|
||||
|
||||
if (folder.FolderType == FolderType.DEFAULT || folder.FolderType == FolderType.BUNCH)
|
||||
{
|
||||
FactoryIndexer.IndexAsync(toUpdate);
|
||||
}
|
||||
FactoryIndexer.IndexAsync(toUpdate);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -345,7 +345,7 @@ namespace ASC.Files.Core.Data
|
||||
FilesDbContext.SaveChanges();
|
||||
if (folder.FolderType == FolderType.DEFAULT || folder.FolderType == FolderType.BUNCH)
|
||||
{
|
||||
FactoryIndexer.IndexAsync(newFolder);
|
||||
FactoryIndexer.IndexAsync(newFolder);
|
||||
}
|
||||
folder.ID = newFolder.Id;
|
||||
|
||||
@ -703,10 +703,7 @@ namespace ASC.Files.Core.Data
|
||||
private int GetFoldersCount(int parentId)
|
||||
{
|
||||
var count = FilesDbContext.Tree
|
||||
.AsNoTracking()
|
||||
.Where(r => r.ParentId == parentId)
|
||||
.Where(r => r.Level > 0)
|
||||
.Count();
|
||||
.Count(r => r.ParentId == parentId && r.Level > 0);
|
||||
|
||||
return count;
|
||||
}
|
||||
@ -714,9 +711,8 @@ namespace ASC.Files.Core.Data
|
||||
private int GetFilesCount(int folderId)
|
||||
{
|
||||
var count = Query(FilesDbContext.Files)
|
||||
.AsNoTracking()
|
||||
.Distinct()
|
||||
.Count(r => FilesDbContext.Tree.Where(r => r.ParentId == folderId).Select(r => r.FolderId).Contains(r.FolderId));
|
||||
.Count(r => FilesDbContext.Tree.Any(t => t.ParentId == folderId && t.FolderId == r.FolderId));
|
||||
|
||||
return count;
|
||||
}
|
||||
@ -764,9 +760,9 @@ namespace ASC.Files.Core.Data
|
||||
private void RecalculateFoldersCount(int id)
|
||||
{
|
||||
var toUpdate = Query(FilesDbContext.Folders)
|
||||
.Join(FilesDbContext.Tree, r=> r.Id, r=> r.ParentId,(file, tree) => new { file, tree })
|
||||
.Join(FilesDbContext.Tree, r => r.Id, r => r.ParentId, (file, tree) => new { file, tree })
|
||||
.Where(r => r.tree.FolderId == id)
|
||||
.Select(r=> r.file)
|
||||
.Select(r => r.file)
|
||||
.ToList();
|
||||
|
||||
foreach (var f in toUpdate)
|
||||
|
@ -24,7 +24,7 @@ namespace ASC.Files
|
||||
await host.RunAsync();
|
||||
}
|
||||
|
||||
public static IHostBuilder CreateHostBuilder(string[] args) =>
|
||||
public static IHostBuilder CreateHostBuilder(string[] args) =>
|
||||
Host.CreateDefaultBuilder(args)
|
||||
.UseSystemd()
|
||||
.UseWindowsService()
|
||||
@ -35,6 +35,11 @@ namespace ASC.Files
|
||||
|
||||
builder.ConfigureKestrel((hostingContext, serverOptions) =>
|
||||
{
|
||||
serverOptions.Limits.MaxRequestBodySize = 100 * 1024 * 1024;
|
||||
serverOptions.Limits.MaxRequestBufferSize = 100 * 1024 * 1024;
|
||||
serverOptions.Limits.MinRequestBodyDataRate = null;
|
||||
serverOptions.Limits.MinResponseDataRate = null;
|
||||
|
||||
var kestrelConfig = hostingContext.Configuration.GetSection("Kestrel");
|
||||
|
||||
if (!kestrelConfig.Exists()) return;
|
||||
|
@ -24,7 +24,7 @@
|
||||
<PackageProjectUrl>http://sta.github.io/websocket-sharp</PackageProjectUrl>
|
||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
|
||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
||||
<Version>1.0.3-rc11</Version>
|
||||
<Version>1.0.3-rc12</Version>
|
||||
<AssemblyVersion>1.0.2.59611</AssemblyVersion>
|
||||
<FileVersion>1.0.2.59611</FileVersion>
|
||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||
|
@ -153,7 +153,7 @@ namespace ASC.Web.Studio.Core
|
||||
AvailableFileSize = GetAppSettings("web.available-file-size", 100L * 1024L * 1024L);
|
||||
|
||||
TeamlabSiteRedirect = GetAppSettings("web.teamlab-site", string.Empty);
|
||||
ChunkUploadSize = GetAppSettings("files.uploader.chunk-size", 5 * 1024 * 1024);
|
||||
ChunkUploadSize = GetAppSettings("files:uploader:chunk-size", 10 * 1024 * 1024);
|
||||
ThirdPartyAuthEnabled = string.Equals(GetAppSettings("web.thirdparty-auth", "true"), "true");
|
||||
ThirdPartyBannerEnabled = string.Equals(GetAppSettings("web.thirdparty-banner", "false"), "true");
|
||||
NoTenantRedirectURL = GetAppSettings("web.notenant-url", "");
|
||||
|
@ -3,7 +3,9 @@
|
||||
"FileName": "File name",
|
||||
"FolderForSave": "Folder for save",
|
||||
"OpenSavedDocument": "Open saved document in new tab",
|
||||
"ImageFileType": "Select files of type: images",
|
||||
"SelectFilesType": "Select files of type: {{fileType}}",
|
||||
"ImageFileType": "images",
|
||||
"DocumentsFileType": "documents",
|
||||
"MailMergeFileType": "Select the file in XLSX format",
|
||||
"SelectFileTitle": "Select Data Source"
|
||||
}
|
||||
|
@ -3,7 +3,9 @@
|
||||
"FileName": "Имя файла",
|
||||
"FolderForSave": "Папка для сохранения",
|
||||
"OpenSavedDocument": "Открыть сохраненный документ в новой вкладке",
|
||||
"ImageFileType": "Выбрать файлы типа: изображения",
|
||||
"SelectFilesType": "Выбрать файлы типа: {{fileType}}",
|
||||
"ImageFileType": "изображения",
|
||||
"DocumentsFileType": "документы",
|
||||
"MailMergeFileType": "Выбрать файлы в формате XLSX",
|
||||
"SelectFileTitle": "Выбрать источник данных"
|
||||
}
|
||||
|
@ -3,7 +3,7 @@ import React, { useEffect, useState } from "react";
|
||||
import Toast from "@appserver/components/toast";
|
||||
import toastr from "studio/toastr";
|
||||
import { toast } from "react-toastify";
|
||||
|
||||
import { Trans } from "react-i18next";
|
||||
import Box from "@appserver/components/box";
|
||||
import { regDesktop } from "@appserver/common/desktop";
|
||||
import Loaders from "@appserver/common/components/Loaders";
|
||||
@ -54,8 +54,9 @@ let documentIsReady = false;
|
||||
const text = "text";
|
||||
const spreadSheet = "spreadsheet";
|
||||
const presentation = "presentation";
|
||||
const insertImageAction = "imageType";
|
||||
const mailMergeAction = "mailMergeType";
|
||||
const insertImageAction = "imageFileType";
|
||||
const mailMergeAction = "mailMergeFileType";
|
||||
const compareFilesAction = "documentsFileType";
|
||||
|
||||
let docTitle = null;
|
||||
let actionLink;
|
||||
@ -115,6 +116,13 @@ const Editor = () => {
|
||||
url: link.url,
|
||||
});
|
||||
};
|
||||
|
||||
const compareFiles = (link) => {
|
||||
docEditor.setRevisedFile({
|
||||
fileType: link.filetype,
|
||||
url: link.url,
|
||||
});
|
||||
};
|
||||
const updateFavorite = (favorite) => {
|
||||
docEditor.setFavorite(favorite);
|
||||
};
|
||||
@ -436,7 +444,8 @@ const Editor = () => {
|
||||
onRequestRename,
|
||||
onRequestSaveAs,
|
||||
onRequestInsertImage,
|
||||
onRequestMailMergeRecipients;
|
||||
onRequestMailMergeRecipients,
|
||||
onRequestCompareFile;
|
||||
|
||||
if (isSharingAccess) {
|
||||
onRequestSharingSettings = onSDKRequestSharingSettings;
|
||||
@ -450,6 +459,7 @@ const Editor = () => {
|
||||
onRequestSaveAs = onSDKRequestSaveAs;
|
||||
onRequestInsertImage = onSDKRequestInsertImage;
|
||||
onRequestMailMergeRecipients = onSDKRequestMailMergeRecipients;
|
||||
onRequestCompareFile = onSDKRequestCompareFile;
|
||||
}
|
||||
|
||||
const events = {
|
||||
@ -467,6 +477,7 @@ const Editor = () => {
|
||||
onRequestInsertImage,
|
||||
onRequestSaveAs,
|
||||
onRequestMailMergeRecipients,
|
||||
onRequestCompareFile,
|
||||
},
|
||||
};
|
||||
|
||||
@ -593,11 +604,20 @@ const Editor = () => {
|
||||
setIsFileDialogVisible(true);
|
||||
};
|
||||
|
||||
const onSDKRequestCompareFile = () => {
|
||||
setFilesType(compareFilesAction);
|
||||
setIsFileDialogVisible(true);
|
||||
};
|
||||
const onSelectFile = async (file) => {
|
||||
const link = await getPresignedUri(file.id);
|
||||
try {
|
||||
const link = await getPresignedUri(file.id);
|
||||
|
||||
if (filesType === insertImageAction) insertImage(link);
|
||||
if (filesType === mailMergeAction) mailMerge(link);
|
||||
if (filesType === insertImageAction) insertImage(link);
|
||||
if (filesType === mailMergeAction) mailMerge(link);
|
||||
if (filesType === compareFilesAction) compareFiles(link);
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
};
|
||||
|
||||
const onCloseFileDialog = () => {
|
||||
@ -636,6 +656,32 @@ const Editor = () => {
|
||||
setNewOpenTab(!openNewTab);
|
||||
};
|
||||
|
||||
const getFileTypeTranslation = () => {
|
||||
switch (filesType) {
|
||||
case mailMergeAction:
|
||||
return i18n.t("MailMergeFileType");
|
||||
case insertImageAction:
|
||||
return i18n.t("ImageFileType");
|
||||
case compareFilesAction:
|
||||
return i18n.t("DocumentsFileType");
|
||||
}
|
||||
};
|
||||
const SelectFileHeader = () => {
|
||||
return (
|
||||
<StyledSelectFile>
|
||||
<Text className="editor-select-file_text">
|
||||
{filesType === mailMergeAction ? (
|
||||
getFileTypeTranslation()
|
||||
) : (
|
||||
<Trans i18n={i18n} i18nKey="SelectFilesType" ns="Editor">
|
||||
Select files of type: {{ fileType: getFileTypeTranslation() }}
|
||||
</Trans>
|
||||
)}
|
||||
</Text>
|
||||
</StyledSelectFile>
|
||||
);
|
||||
};
|
||||
|
||||
const insertImageActionProps = {
|
||||
isImageOnly: true,
|
||||
};
|
||||
@ -644,16 +690,21 @@ const Editor = () => {
|
||||
isTablesOnly: true,
|
||||
searchParam: "xlsx",
|
||||
};
|
||||
const compareFilesActionProps = {
|
||||
isDocumentsOnly: true,
|
||||
};
|
||||
|
||||
const SelectFileHeader = () => (
|
||||
<StyledSelectFile>
|
||||
<Text className="editor-select-file_text">
|
||||
{filesType === insertImageAction
|
||||
? i18n.t("ImageFileType")
|
||||
: i18n.t("MailMergeFileType")}
|
||||
</Text>
|
||||
</StyledSelectFile>
|
||||
);
|
||||
const fileTypeDetection = () => {
|
||||
if (filesType === insertImageAction) {
|
||||
return insertImageActionProps;
|
||||
}
|
||||
if (filesType === mailMergeAction) {
|
||||
return mailMergeActionProps;
|
||||
}
|
||||
if (filesType === compareFilesAction) {
|
||||
return compareFilesActionProps;
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<Box
|
||||
@ -681,9 +732,7 @@ const Editor = () => {
|
||||
isPanelVisible={isFileDialogVisible}
|
||||
onClose={onCloseFileDialog}
|
||||
foldersType="exceptTrashFolder"
|
||||
{...(filesType === insertImageAction
|
||||
? insertImageActionProps
|
||||
: mailMergeActionProps)}
|
||||
{...fileTypeDetection()}
|
||||
header={<SelectFileHeader />}
|
||||
headerName={i18n.t("SelectFileTitle")}
|
||||
/>
|
||||
|
Loading…
Reference in New Issue
Block a user