Merge branch 'develop' into feature/oauth2-client
This commit is contained in:
commit
31bf677340
@ -39,9 +39,11 @@ if (-not $ExistsNetwork) {
|
||||
Write-Host "Run MySQL" -ForegroundColor Green
|
||||
docker compose -f "$DockerDir\db.yml" up -d
|
||||
|
||||
Write-Host "Run local dns server" -ForegroundColor Green
|
||||
$Env:ROOT_DIR=$RootDir
|
||||
docker compose -f "$DockerDir\dnsmasq.yml" up -d
|
||||
if ($args[0] -eq "--dns" ) {
|
||||
Write-Host "Run local dns server" -ForegroundColor Green
|
||||
$Env:ROOT_DIR=$RootDir
|
||||
docker compose -f "$DockerDir\dnsmasq.yml" up -d
|
||||
}
|
||||
|
||||
Write-Host "Build backend services (to `publish/` folder)" -ForegroundColor Green
|
||||
& "$PSScriptRoot\install\common\build-services.ps1"
|
||||
|
@ -56,9 +56,11 @@ else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Run local dns server"
|
||||
ROOT_DIR=$dir \
|
||||
docker compose -f $dockerDir/dnsmasq.yml up -d
|
||||
if [ "$1" = "--dns" ]; then
|
||||
echo "Run local dns server"
|
||||
ROOT_DIR=$dir \
|
||||
docker compose -f $dockerDir/dnsmasq.yml up -d
|
||||
fi
|
||||
|
||||
echo "Clear publish folder"
|
||||
rm -rf $dir/publish
|
||||
|
@ -68,7 +68,7 @@ public class StorageFactoryConfig
|
||||
|
||||
public static class StorageFactoryExtenstion
|
||||
{
|
||||
public static void InitializeHttpHandlers(this IEndpointRouteBuilder builder, string config = null)
|
||||
public static void InitializeHttpHandlers(this IEndpointRouteBuilder builder, string module = null)
|
||||
{
|
||||
//TODO:
|
||||
//if (!HostingEnvironment.IsHosted)
|
||||
@ -82,7 +82,7 @@ public static class StorageFactoryExtenstion
|
||||
{
|
||||
if (section.Module != null)
|
||||
{
|
||||
foreach (var m in section.Module)
|
||||
foreach (var m in section.Module.Where(r => string.IsNullOrEmpty(module) || r.Name == module))
|
||||
{
|
||||
//todo: add path criterion
|
||||
if (m.Type == "disc" || !m.Public || m.Path.Contains(Constants.StorageRootParam))
|
||||
|
@ -276,11 +276,15 @@ server {
|
||||
rewrite sso/(.*) /$1 break;
|
||||
proxy_pass http://127.0.0.1:9834;
|
||||
}
|
||||
|
||||
location ~* /storage/files_template/ {
|
||||
proxy_pass http://127.0.0.1:5007;
|
||||
}
|
||||
|
||||
location ~* /(ssologin.ashx|login.ashx|storage) {
|
||||
proxy_pass http://127.0.0.1:5003;
|
||||
}
|
||||
|
||||
|
||||
location /socket.io/ {
|
||||
proxy_pass http://127.0.0.1:9899;
|
||||
proxy_redirect off;
|
||||
|
4822
i18next/client.babel
4822
i18next/client.babel
File diff suppressed because it is too large
Load Diff
@ -15502,6 +15502,246 @@
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
<concept_node>
|
||||
<name>Example</name>
|
||||
<description/>
|
||||
<comment/>
|
||||
<default_text/>
|
||||
<translations>
|
||||
<translation>
|
||||
<language>ar-SA</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>az-Latn-AZ</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>bg-BG</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>cs-CZ</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>de-DE</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>el-GR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>en-US</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>es-ES</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>fi-FI</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>fr-FR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>hy-AM</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>it-IT</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>ja-JP</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>ko-KR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>lo-LA</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>lv-LV</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>nl-NL</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>pl-PL</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>pt-BR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>pt-PT</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>ro-RO</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>ru-RU</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>sk-SK</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>sl-SI</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>tr-TR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>uk-UA</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>vi-VN</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>zh-CN</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
<concept_node>
|
||||
<name>ExpiredLink</name>
|
||||
<description/>
|
||||
<comment/>
|
||||
<default_text/>
|
||||
<translations>
|
||||
<translation>
|
||||
<language>ar-SA</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>az-Latn-AZ</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>bg-BG</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>cs-CZ</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>de-DE</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>el-GR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>en-US</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>es-ES</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>fi-FI</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>fr-FR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>hy-AM</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>it-IT</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>ja-JP</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>ko-KR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>lo-LA</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>lv-LV</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>nl-NL</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>pl-PL</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>pt-BR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>pt-PT</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>ro-RO</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>ru-RU</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>sk-SK</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>sl-SI</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>tr-TR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>uk-UA</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>vi-VN</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>zh-CN</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
<concept_node>
|
||||
<name>FEB</name>
|
||||
<description/>
|
||||
@ -24262,6 +24502,126 @@
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
<concept_node>
|
||||
<name>OkButton</name>
|
||||
<description/>
|
||||
<comment/>
|
||||
<default_text/>
|
||||
<translations>
|
||||
<translation>
|
||||
<language>ar-SA</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>az-Latn-AZ</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>bg-BG</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>cs-CZ</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>de-DE</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>el-GR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>en-US</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>es-ES</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>fi-FI</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>fr-FR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>hy-AM</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>it-IT</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>ja-JP</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>ko-KR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>lo-LA</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>lv-LV</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>nl-NL</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>pl-PL</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>pt-BR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>pt-PT</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>ro-RO</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>ru-RU</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>sk-SK</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>sl-SI</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>tr-TR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>uk-UA</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>vi-VN</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>zh-CN</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
<concept_node>
|
||||
<name>OKButton</name>
|
||||
<description/>
|
||||
@ -38663,7 +39023,7 @@
|
||||
</translations>
|
||||
</concept_node>
|
||||
<concept_node>
|
||||
<name>Yes</name>
|
||||
<name>Yesterday</name>
|
||||
<description/>
|
||||
<comment/>
|
||||
<default_text/>
|
||||
@ -38783,7 +39143,7 @@
|
||||
</translations>
|
||||
</concept_node>
|
||||
<concept_node>
|
||||
<name>Yesterday</name>
|
||||
<name>You</name>
|
||||
<description/>
|
||||
<comment/>
|
||||
<default_text/>
|
||||
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -1,5 +0,0 @@
|
||||
{
|
||||
"DeleteGroupUsersSuccessMessage": "تم حذف المستخدمين بنجاح.",
|
||||
"DeleteUsers": "حذف المستخدمين",
|
||||
"DeleteUsersMessage": "سيتم حذف المستخدمين الغير مفعلين المحددين من +. سيتم حذف المستندات الشخصية لهؤلاء المستخدمين والمتوفرة للآخرين."
|
||||
}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -84,6 +84,13 @@
|
||||
"DNSSettingsMobile": "Sorğunuzu dəstək komandamıza göndərin və mütəxəssislərimiz sizə parametrlərdə kömək edəcəklər.",
|
||||
"DNSSettingsTooltipMain": "DNS Parametrləri sizə {{ organizationName }} domeniniz üçün alternativ URL ünvanı təyin etməyə imkan verir.",
|
||||
"DNSSettingsTooltipStandalone": "Siz istədiyiniz ləqəbi 'Portal Ünvanı' sahəsinə daxil edə, və ya 'İstifadəçi domen adı' qutusunu yoxlaya və aşağı sahədə ONLYOFFICE üçün öz domen adınızı təyin edə bilərsiniz. Etdiyiniz dəyişiklikləri tətbiq etmək üçün, bölmənin aşağı tərəfində 'Qeyd et' düyməsini basın.",
|
||||
"DocumentService": "Sənəd Xidməti",
|
||||
"DocumentServiceLocationHeader": "Sənəd Xidməti Yeri",
|
||||
"DocumentServiceLocationHeaderHelp": "Document Service sənədin redaktəsini həyata keçirməyə və sənəd faylını müvafiq OfficeOpen XML formatına çevirməyə imkan verən server xidmətidir.",
|
||||
"DocumentServiceLocationHeaderInfo": "Sənəd xidmətinin yeri quraşdırılmış sənəd xidmətləri ilə serverin ünvanını müəyyən edir. ",
|
||||
"DocumentServiceLocationUrlApi": "Sənəd Redaktə Xidmətinin Ünvanı",
|
||||
"DocumentServiceLocationUrlInternal": "İcma Serverindən sorğular üçün DocSpace ünvanı",
|
||||
"DocumentServiceLocationUrlPortal": "Sənəd Xidmətindən sorğular üçün İcma Server ünvanı",
|
||||
"DownloadCopy": "Nüsxəni endirin",
|
||||
"DownloadReportBtnText": "Hesabatı yükləyin",
|
||||
"DownloadReportDescription": "Hesabat Sənədlərimdə saxlanacaq",
|
||||
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -84,6 +84,13 @@
|
||||
"DNSSettingsMobile": "Изпратете заявката си до нашия екип за обслужване на клиенти и специалистите ни ще Ви помогнат с настройките.",
|
||||
"DNSSettingsTooltipMain": "DNS настройките Ви позволяват да зададете алтернативен URL адрес за вашето {{ organizationName }} пространство.",
|
||||
"DNSSettingsTooltipStandalone": "Поставете отметка в полето „Име на домейн по избор“ и посочете името на собствения си домейн за ONLYOFFICE пространството в полето по-долу. За да влязат в сила зададените от вас параметри, щракнете върху бутона „Запазване“ в долната част на секцията.",
|
||||
"DocumentService": "Служба за документи",
|
||||
"DocumentServiceLocationHeader": "Местоположение на услугата за документи",
|
||||
"DocumentServiceLocationHeaderHelp": "Document Service е услуга на сървъра, която позволява извършването на редактиране на документа и позволява конвертиране на документа в съответния формат OfficeOpen XML.",
|
||||
"DocumentServiceLocationHeaderInfo": "Местоположението на услугата документ указва адреса на сървъра с инсталираните услуги за документи. ",
|
||||
"DocumentServiceLocationUrlApi": "Адрес на услугата за редактиране на документи",
|
||||
"DocumentServiceLocationUrlInternal": "Адрес на услугата за документи за заявки от DocSpace",
|
||||
"DocumentServiceLocationUrlPortal": "Адрес на DocSpace за заявки от услугата за документи",
|
||||
"DownloadCopy": "Изтеглете копието",
|
||||
"DownloadReportBtnText": "Изтегляне на доклад",
|
||||
"DownloadReportDescription": "Отчетът ще бъде записан в Моите документи",
|
||||
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -84,6 +84,10 @@
|
||||
"DNSSettingsMobile": "Pošlete svůj požadavek našemu týmu podpory a naši specialisté vám pomohou s nastavením.",
|
||||
"DNSSettingsTooltipMain": "Nastavení DNS umožňuje nastavit alternativní adresu URL pro váš prostor {{ organizationName }}.",
|
||||
"DNSSettingsTooltipStandalone": "Zaškrtněte'Vlastní název domény'a zadejte Váš vlastní název domény pro prostor ONLYOFFICE níže. Chcete-li nastavené parametry aktivovat, klikněte na tlačítko 'Uložit' v dolní části.",
|
||||
"DocumentService": "Dokumentační služba",
|
||||
"DocumentServiceLocationHeader": "Umístění služby Dokumentu",
|
||||
"DocumentServiceLocationHeaderInfo": "Umístění dokumentační služby specifikuje adresu serveru s nainstalovanou dokumentační službou. ",
|
||||
"DocumentServiceLocationUrlApi": "Adres editovací služby Dokumentu",
|
||||
"DownloadCopy": "Stáhnout kopii",
|
||||
"DownloadReportBtnText": "Stáhnout zprávu",
|
||||
"DownloadReportDescription": "Zpráva se uloží do složky Moje dokumenty",
|
||||
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -90,6 +90,13 @@
|
||||
"DNSSettingsMobile": "Senden Sie Ihre Anfrage an unser Support-Team, und unsere Spezialisten werden Ihnen bei den Einstellungen helfen.",
|
||||
"DNSSettingsTooltipMain": "Mit den DNS-Einstellungen können Sie eine alternative URL-Adresse für Ihren {{ organizationName }}-Bereich festlegen.",
|
||||
"DNSSettingsTooltipStandalone": "Markieren Sie das Kontrollkästchen 'Benutzerdefinierter Domain-Name' und geben Sie Ihren eigenen Domain-Namen für den ONLYOFFICE-Space im Feld unten ein. Um die Änderungen zu übernehmen, klicken Sie auf den Button 'Speichern' im unteren Bereich.",
|
||||
"DocumentService": "Dokumentenservice",
|
||||
"DocumentServiceLocationHeader": "Adressen des Dokumentendienstes",
|
||||
"DocumentServiceLocationHeaderHelp": " Der Dokumentendienst ist der Serverdienst, der die Dokumentbearbeitung ermöglicht und die Konvertierung der Dokumentdatei in das entsprechende OfficeOpen XML-Format ermöglicht.",
|
||||
"DocumentServiceLocationHeaderInfo": "Adressen des Dokumentendienstes gibt die Serveradresse mit den dazu installierten Dokumentendienstes. ",
|
||||
"DocumentServiceLocationUrlApi": "die Adresse des Dokumentenbearbeitungsservices",
|
||||
"DocumentServiceLocationUrlInternal": "Sie Adresse des Dokumenten Services für Anforderungen vom DocSpace",
|
||||
"DocumentServiceLocationUrlPortal": "Sie Adresse des Dokumenten Services für Anforderungen vom DocSpace",
|
||||
"DownloadCopy": "Die Sicherungskopie herunterladen",
|
||||
"DownloadReportBtnText": "Bericht herunterladen",
|
||||
"DownloadReportDescription": "Der Bericht wird unter Eigene Dateien gespeichert.",
|
||||
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"DeleteGroupUsersSuccessMessage": "Users have been successfully deleted.",
|
||||
"DeleteMyDocumentsUser": "All personal files and folders in My documents section of this user will be permanently deleted.",
|
||||
"DeleteReassignDescriptionUser": "{{warningMessageMyDocuments}} Rooms created by this user and documents stored in these rooms will be reassigned automatically to an admin performing the deletion: <strong>{{userPerformedDeletion}} ({{userYou}})</strong>. Reassign data manually to choose another destination user for reassignment.",
|
||||
"DeleteGroupUsersSuccessMessage": "Users have been successfully deleted.",
|
||||
"DeleteUser": "Delete user",
|
||||
"DeleteUserMessage": "{{userCaption}} <strong>{{user}}</strong> will be deleted. This action cannot be undone.",
|
||||
"ReassignDataToAnotherUser": "Reassign data to another user",
|
||||
|
@ -97,6 +97,13 @@
|
||||
"DNSSettingsNavDescription": "DNS Settings is a way to set an alternative URL for your portal.",
|
||||
"DNSSettingsTooltipMain": "DNS Settings allow you to set an alternative URL address for your {{ organizationName }} space.",
|
||||
"DNSSettingsTooltipStandalone": "Check the 'Custom domain name box' and specify your own domain name for the ONLYOFFICE space in the field below. To make the parameters you set take effect click the 'Save button' at the bottom of the section.",
|
||||
"DocumentService": "Document Service",
|
||||
"DocumentServiceLocationHeader": "Document Service Location",
|
||||
"DocumentServiceLocationHeaderHelp": "Document Service is the server service which allows to perform the document editing and allows to convert the document file into the appropriate OfficeOpen XML format.",
|
||||
"DocumentServiceLocationHeaderInfo": "Document service location specifies the address of the server with the document services installed. ",
|
||||
"DocumentServiceLocationUrlApi": "Document Editing Service Address",
|
||||
"DocumentServiceLocationUrlInternal": "Document Service address for requests from the DocSpace",
|
||||
"DocumentServiceLocationUrlPortal": "DocSpace address for requests from the Document Service",
|
||||
"DownloadCopy": "Download copy",
|
||||
"DownloadReportBtnText": "Download report",
|
||||
"DownloadReportDescription": "The report will be saved to My Documents",
|
||||
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -85,6 +85,13 @@
|
||||
"DNSSettingsMobile": "Envíe su solicitud a nuestro equipo de soporte y nuestros especialistas le ayudarán con la configuración.",
|
||||
"DNSSettingsTooltipMain": "La configuración DNS le permite establecer una dirección URL alternativa para su espacio {{ organizationName }}.",
|
||||
"DNSSettingsTooltipStandalone": "Marque la casilla 'Nombre de dominio personalizado' y especifique su propio nombre del espacio ONLYOFFICE en el campo debajo. Para aplicar los cambios hechos, use el botón 'Guardar' en la parte inferior de la sección.",
|
||||
"DocumentService": "Servicio de documentos",
|
||||
"DocumentServiceLocationHeader": "Ubicación de servicio de documentos",
|
||||
"DocumentServiceLocationHeaderHelp": "Document Service es el servicio del servidor que permite realizar ediciones a los documentos y convertir los archivos de documentos a los formatos OfficeOpen XML apropiados.",
|
||||
"DocumentServiceLocationHeaderInfo": "Ubicación de servicio de documentos especifica la dirección del servidor con servicios de documentos instalados. ",
|
||||
"DocumentServiceLocationUrlApi": "Dirección de servicio de edición de documentos",
|
||||
"DocumentServiceLocationUrlInternal": "Dirección del Servicio de Documentos para realizar peticiones desde el DocSpace",
|
||||
"DocumentServiceLocationUrlPortal": "Dirección del DocSpace para realizar peticiones desde el Servicio de Documentos",
|
||||
"DownloadCopy": "Descargar la copia",
|
||||
"DownloadReportBtnText": "Descargar informe",
|
||||
"DownloadReportDescription": "El informe se guardará en Mis Documentos",
|
||||
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -84,6 +84,10 @@
|
||||
"DNSSettingsMobile": "Lähetä pyyntösi tukitiimillemme ja asiantuntijamme auttavat sinua asetusten kanssa.",
|
||||
"DNSSettingsTooltipMain": "DNS-asetukset antavat mahdollisuuden asettaa {{organizationName }} tilallesi vaihtoehtoisen URL-osoitteen.",
|
||||
"DNSSettingsTooltipStandalone": "Voit joko syöttää halutun aliaksen 'sivuston osoite' -kenttään tai valita 'oman verkkotunnuksen' ONLYOFFICE-sivustolle. Ota tekemäsi asetukset käyttöön klikkaamalla 'Tallenna' painiketta.",
|
||||
"DocumentService": "Asiakirja palvelu",
|
||||
"DocumentServiceLocationHeader": "Asiakirja palvelun sijainti",
|
||||
"DocumentServiceLocationHeaderInfo": "Asiakirjan palvelun sijainti määrittelee palvelimen osoitteen, mihin asiakirjan palvelu on asennettu. ",
|
||||
"DocumentServiceLocationUrlApi": "Asiakirjan muokkauspalvelun osoite",
|
||||
"DownloadCopy": "Lataa kopio",
|
||||
"DownloadReportBtnText": "Lataa raportti",
|
||||
"DownloadReportDescription": "Raportti tallennetaan Minun dokumentteihin",
|
||||
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -85,6 +85,13 @@
|
||||
"DNSSettingsMobile": "Envoyez votre demande à notre équipe de support et nos spécialistes vous aideront à définir les paramètres.",
|
||||
"DNSSettingsTooltipMain": "Les paramètres DNS vous permettent de définir une adresse URL alternative pour votre espace {{ organizationName }}.",
|
||||
"DNSSettingsTooltipStandalone": "Cochez la case 'Nom de domaine personnalisé' et spécifiez votre propre nom de domaine pour l'espace ONLYOFFICE dans le champ ci-dessous. Pour appliquer les modifications effectuées utilisez le bouton 'Enregistrer' en bas de la section.",
|
||||
"DocumentService": "Service de documents",
|
||||
"DocumentServiceLocationHeader": "Emplacement du service de documents",
|
||||
"DocumentServiceLocationHeaderHelp": "Document Service est le service serveur qui permet d'effectuer l'édition du document et permet de convertir le fichier document au format OfficeOpen XML approprié.",
|
||||
"DocumentServiceLocationHeaderInfo": "L'emplacement du service de documents spécifie l'adresse du serveur avec les services de documents installés. ",
|
||||
"DocumentServiceLocationUrlApi": "Adresse du service de modification de documents",
|
||||
"DocumentServiceLocationUrlInternal": "Adresse du service de documents pour les demandes provenant du DocSpace",
|
||||
"DocumentServiceLocationUrlPortal": "Adresse du DocSpace pour les demandes provenant du service de documents",
|
||||
"DownloadCopy": "Télécharger la copie",
|
||||
"DownloadReportBtnText": "Télécharger le rapport",
|
||||
"DownloadReportDescription": "Le rapport sera enregistré dans Mes documents",
|
||||
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -90,6 +90,13 @@
|
||||
"DNSSettingsMobile": "Invia la tua richiesta al nostro team di supporto e i nostri specialisti ti aiuteranno con le impostazioni.",
|
||||
"DNSSettingsTooltipMain": "Le impostazioni DNS ti consentono di impostare un indirizzo URL alternativo per il tuo spazio {{ organizationName }}.",
|
||||
"DNSSettingsTooltipStandalone": "Spunta la casella 'Nome dominio personalizzato' e specifica il proprio nome a dominio per il spazio ONLYOFFICE nel campo di sotto. Per applicare i parametri impostati clicca su 'Salva' nella parte inferiore della sezione",
|
||||
"DocumentService": "Servizio documenti",
|
||||
"DocumentServiceLocationHeader": "Locazione del servizio documenti",
|
||||
"DocumentServiceLocationHeaderHelp": "Document Service è il servizio server che consente di eseguire l'editing dei documenti ed inoltre di convertire il file di documento nel formato XML appropriato di OfficeOpen.",
|
||||
"DocumentServiceLocationHeaderInfo": "La locazione del servizio documenti determina l'indirizzo del server con i servizi documenti installati. ",
|
||||
"DocumentServiceLocationUrlApi": "Indirizzo del servizio di modifica documenti",
|
||||
"DocumentServiceLocationUrlInternal": "Document Service Address per le richieste dal DocSpace",
|
||||
"DocumentServiceLocationUrlPortal": "DocSpace Address per le richieste dal Document Service",
|
||||
"DownloadCopy": "Scaricare la copia",
|
||||
"DownloadReportBtnText": "Scarica il report",
|
||||
"DownloadReportDescription": "Il report verrà salvato in Documenti",
|
||||
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -84,6 +84,13 @@
|
||||
"DNSSettingsMobile": "弊社サポートチームまでご連絡いただければ、専門スタッフが設定をお手伝いさせていただきます。",
|
||||
"DNSSettingsTooltipMain": "DNS設定により、{{ organizationName }}スペースの代替URLアドレスを設定することができます。",
|
||||
"DNSSettingsTooltipStandalone": "'カスタムドメイン名'ボックスを確認して、下のフィールドにONLYOFFICEポータル用に独自ドメイン名を入力してください。 変更を適用するように、セクションの下部に'保存'ボタンを押してください。",
|
||||
"DocumentService": "文書サービス",
|
||||
"DocumentServiceLocationHeader": "文書サービス位置",
|
||||
"DocumentServiceLocationHeaderHelp": "文書サービスは文書編集したり、適切なOfficeOpen XML形式に変換したりすることを可能にするサーバーサービスです。",
|
||||
"DocumentServiceLocationHeaderInfo": "文書サービス位置は文書サービスがインストルしたサーバアドレスを指定しています。",
|
||||
"DocumentServiceLocationUrlApi": "文書編集サービスアドレス",
|
||||
"DocumentServiceLocationUrlInternal": "コミュニティ・サーバーからの要求に対するのための文書サービスアドレス",
|
||||
"DocumentServiceLocationUrlPortal": "文書サービスからの要求に対するのためのコミュニティ・サーバー・アドレス",
|
||||
"DownloadCopy": "コピーを保存",
|
||||
"DownloadReportBtnText": "ダウンロードのレポート",
|
||||
"DownloadReportDescription": "レポートは「私の文書」に保存されます",
|
||||
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -83,6 +83,12 @@
|
||||
"DNSSettingsMobile": "Nosūtiet savu pieprasījumu mūsu atbalsta komandai, un mūsu speciālisti palīdzēs jums ar iestatījumiem.",
|
||||
"DNSSettingsTooltipMain": "DNS iestatījumi ļauj iestatīt alternatīvu vietrāža URL adresi jūsu {{ organizationName }} telpai.",
|
||||
"DNSSettingsTooltipStandalone": "Pārbaudiet'Pielāgotā domēna nosaukuma' lauku un precizējiet ONLYOFFICE nosaukumu zemāk esošajā laukā. Lai aktivizētu uzstādītos parametrus, nospiediet 'Saglabāt', kas atrodas sadaļas apakšā.",
|
||||
"DocumentService": "Dokumentu apkalpošana",
|
||||
"DocumentServiceLocationHeader": "Dokumentu apkalpošanas izvietojums",
|
||||
"DocumentServiceLocationHeaderInfo": "Dokumentu servisa atrašanās vieta norāda servera adresi ar instalētiem dokumenta pakalpojumiem. ",
|
||||
"DocumentServiceLocationUrlApi": "Dokumentu rediģēšanas servisa adrese",
|
||||
"DocumentServiceLocationUrlInternal": "Dokumentu apkalpošanas adrese pieprasījumiem no Kopējā darba servera",
|
||||
"DocumentServiceLocationUrlPortal": "Kopienas servera adrese Document Service pieprasījumiem",
|
||||
"DownloadCopy": "Lejupielādēt kopiju",
|
||||
"DownloadReportBtnText": "Lejupielādēt pārskatu",
|
||||
"DownloadReportDescription": "Atskaite tiks saglabāta mapē Mani dokumenti",
|
||||
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -84,6 +84,10 @@
|
||||
"DNSSettingsMobile": "Stuur uw verzoek naar ons ondersteuningsteam, en onze specialisten zullen u helpen met de instellingen.",
|
||||
"DNSSettingsTooltipMain": "Met DNS Instellingen kunt u een alternatief URL-adres instellen voor uw {{ organizationName }} ruimte.",
|
||||
"DNSSettingsTooltipStandalone": "Vink het vakje 'Aangepaste domeinnaam' aan en specificeer uw eigen domeinnaam voor het ONLYOFFICE-ruimte in het veld hieronder. Om de parameters die u heeft ingesteld door te voeren klik op de knop 'Opslaan' onderaan in dit onderdeel.",
|
||||
"DocumentService": "Documentservice",
|
||||
"DocumentServiceLocationHeader": "Documentservice Locatie",
|
||||
"DocumentServiceLocationHeaderInfo": "Documentservice locatie specificeert het adres van de server met de geïnstalleerde documentservices. ",
|
||||
"DocumentServiceLocationUrlApi": "Documentbewerking Serviceadres",
|
||||
"DownloadCopy": "Download de kopie",
|
||||
"DownloadReportBtnText": "Download verslag",
|
||||
"DownloadReportDescription": "Het verslag wordt opgeslagen in Mijn Documenten",
|
||||
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -84,6 +84,10 @@
|
||||
"DNSSettingsMobile": "Wyślij prośbę do naszego zespołu obsługi klienta, a nasi specjaliści pomogą Ci w konfiguracji.",
|
||||
"DNSSettingsTooltipMain": "Ustawienia DNS umożliwiają konfigurację alternatywnego adresu URL dla Twojego obszaru {{ organizationName }}.",
|
||||
"DNSSettingsTooltipStandalone": "Możesz wpisać wybrany alias w polu 'Adres portalu' lub zaznaczyć okienko 'Własna nazwa domeny' i wpisać własny adres przestrzeni ONLYOFFICE w polu poniżej. By zapisać wybrane ustawienia, kliknij na przycisku 'Zapisz' znajdującym się na dole sekcji.",
|
||||
"DocumentService": "Usługi dokumentacyjne",
|
||||
"DocumentServiceLocationHeader": "Lokalizacja usługi dokumentowej",
|
||||
"DocumentServiceLocationHeaderInfo": "Lokalizacja usługi dokumentów określa adres serwera z zainstalowanymi usługami dokumentacji. ",
|
||||
"DocumentServiceLocationUrlApi": "Adres usługi edycji dokumentu",
|
||||
"DownloadCopy": "Pobierz kopię",
|
||||
"DownloadReportBtnText": "Pobierz raport",
|
||||
"DownloadReportDescription": "Raport zostanie zapisany w Moich dokumentach",
|
||||
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -85,6 +85,13 @@
|
||||
"DNSSettingsMobile": "Envie sua solicitação para nossa equipe de suporte e nossos especialistas o ajudarão com as configurações.",
|
||||
"DNSSettingsTooltipMain": "As configurações de DNS permitem que você defina um endereço de URL alternativo para seu espaço {{ organizationName }}.",
|
||||
"DNSSettingsTooltipStandalone": "Marque a caixa 'Personalizar nome do domínio' e especifique seu próprio nome do domínio para o espaço ONLYOFFICE no campo abaixo. Para que os parâmetros que você definiu tenham efeito, clique no botão 'Salvar' na parte inferior da seção.",
|
||||
"DocumentService": "Serviço de documento",
|
||||
"DocumentServiceLocationHeader": "Localização de serviço de documento",
|
||||
"DocumentServiceLocationHeaderHelp": "Document Service é o serviço servidor que permite realizar a edição de documentos e permite converter o arquivo de documentos para o formato OfficeOpen XML apropriado.",
|
||||
"DocumentServiceLocationHeaderInfo": "Localização de serviço de documento especifica o endereço do servidor com os serviços de documentos instalados. ",
|
||||
"DocumentServiceLocationUrlApi": "Endereço de serviço de edição de documento",
|
||||
"DocumentServiceLocationUrlInternal": "Endereço de serviço de documentos para solicitações do DocSpace",
|
||||
"DocumentServiceLocationUrlPortal": "Endereço do DocSpace para solicitações do serviço de documentos",
|
||||
"DownloadCopy": "Baixe a cópia",
|
||||
"DownloadReportBtnText": "Baixar relatório",
|
||||
"DownloadReportDescription": "O relatório será salvo em Meus Documentos",
|
||||
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -90,6 +90,13 @@
|
||||
"DNSSettingsMobile": "Отправьте запрос в нашу службу поддержки, и наши специалисты помогут вам с настройками.",
|
||||
"DNSSettingsTooltipMain": "Настройки DNS позволяют задать альтернативный адрес URL для вашего {{ organizationName }} портала.",
|
||||
"DNSSettingsTooltipStandalone": "Установите флажок 'Пользовательское доменное имя' и укажите собственное доменное имя для пространства ONLYOFFICE в поле ниже. Чтобы применить внесенные изменения, используйте кнопку 'Сохранить' внизу раздела.",
|
||||
"DocumentService": "Служба документов",
|
||||
"DocumentServiceLocationHeader": "Расположение службы документов",
|
||||
"DocumentServiceLocationHeaderHelp": "Служба документов - это серверная служба, которая позволяет осуществлять редактирование документов и позволяет конвертировать файл документа в соответствующий формат OfficeOpen XML.",
|
||||
"DocumentServiceLocationHeaderInfo": "Расположение службы документов определяет адрес сервера с установленными службами документов. ",
|
||||
"DocumentServiceLocationUrlApi": "Адрес службы редактирования документов",
|
||||
"DocumentServiceLocationUrlInternal": "Адрес Службы документов для запросов от DocSpace",
|
||||
"DocumentServiceLocationUrlPortal": "Адрес DocSpace для запросов от Службы документов",
|
||||
"DownloadCopy": "Скачать копию",
|
||||
"DownloadReportBtnText": "Скачать отчет",
|
||||
"DownloadReportDescription": "Отчет будет сохранен в \"Мои документы\"",
|
||||
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -84,6 +84,10 @@
|
||||
"DNSSettingsMobile": "Pošlite svoju požiadavku nášmu tímu podpory a naši špecialisti vám pomôžu s nastavením.",
|
||||
"DNSSettingsTooltipMain": "Nastavenia DNS vám umožňujú nastaviť alternatívnu adresu URL pre váš priestor {{organizationName}}.",
|
||||
"DNSSettingsTooltipStandalone": "Zaškrtnite políčko 'Vlastné meno domény' a nižšie zadajte vlastný názov domény pre priestor ONLYOFFICE. Ak chcete nastavené parametre potvrdiť, kliknite na tlačidlo 'Uložiť' v dolnej časti sekcie.",
|
||||
"DocumentService": "Dokumentová služba",
|
||||
"DocumentServiceLocationHeader": "Umiestnenie Dokumentovej služby",
|
||||
"DocumentServiceLocationHeaderInfo": "Umiestnenie Dokumentovej služby určuje adresu servera s nainštalovanou dokumentovou službou. ",
|
||||
"DocumentServiceLocationUrlApi": "Adresa editovacej služby Dokumentu",
|
||||
"DownloadCopy": "Stiahnuť si kópiu",
|
||||
"DownloadReportBtnText": "Stiahnuť správu",
|
||||
"DownloadReportDescription": "Správa sa uloží do priečinka Moje dokumenty",
|
||||
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -84,6 +84,10 @@
|
||||
"DNSSettingsMobile": "İsteğinizi destek ekibimize gönderin, uzmanlarımız ayarlar konusunda size yardımcı olacaktır.",
|
||||
"DNSSettingsTooltipMain": "DNS Ayarları, {{ organizationName }} alanınız için alternatif bir URL adresi belirlemenizi sağlar.",
|
||||
"DNSSettingsTooltipStandalone": "'Özel alan adı'kutusunu kontrol edin ve aşağıdaki alana ONLYOFFICE portalınız için alan adınızı girin. Girdiğiniz parametrelerin çalışmaya başlaması için bölümün altındaki 'Kaydet' tuşuna tıklayın.",
|
||||
"DocumentService": "Belge Servisi",
|
||||
"DocumentServiceLocationHeader": "Belge Servis Konumu",
|
||||
"DocumentServiceLocationHeaderInfo": "Belge servis konumu belge servislerinin yüklü olduğu sunucunun adresini belirler. ",
|
||||
"DocumentServiceLocationUrlApi": "Belge Düzenleme Servisi Adresi",
|
||||
"DownloadCopy": "Kopyayı indir",
|
||||
"DownloadReportBtnText": "Raporu indir",
|
||||
"DownloadReportDescription": "Rapor Belgelerim'e kaydedilecek",
|
||||
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -84,6 +84,10 @@
|
||||
"DNSSettingsMobile": "Надішліть запит до нашої служби підтримки, і наші спеціалісти допоможуть вам із параметрами.",
|
||||
"DNSSettingsTooltipMain": "Параметри DNS дозволяють установити альтернативну URL-адресу для вашого простору {{ organizationName }}.",
|
||||
"DNSSettingsTooltipStandalone": "Установіть прапорець «Ім’я настроюваного домену» і вкажіть ім’я свого власного домену для простору ONLYOFFICE у полі нижче. Щоб активувати вибрані вами параметри, натисніть кнопку «Зберегти» внизу розділу.",
|
||||
"DocumentService": "Сервіс документів",
|
||||
"DocumentServiceLocationHeader": "Місцезнаходження служби документів",
|
||||
"DocumentServiceLocationHeaderInfo": "Місцезнаходження служби документа визначає адресу сервера за встановленими службами документа. ",
|
||||
"DocumentServiceLocationUrlApi": "Сервісна адреса редагування документів",
|
||||
"DownloadCopy": "Завантажити копію",
|
||||
"DownloadReportBtnText": "Завантажити звіт",
|
||||
"DownloadReportDescription": "Звіт буде збережено в розділі «Мої документи»",
|
||||
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -84,6 +84,10 @@
|
||||
"DNSSettingsMobile": "Gửi yêu cầu của bạn đến nhóm hỗ trợ của chúng tôi và các chuyên gia của chúng tôi sẽ giúp bạn cài đặt.",
|
||||
"DNSSettingsTooltipMain": "Thiết lập DNS cho phép bạn đặt địa chỉ URL thay thế cho không gian {{ organizationName }} của mình.",
|
||||
"DNSSettingsTooltipStandalone": "Bạn có thể hoặc nhập đường dẫn bạn muốn trong 'trường địa chỉ của trang thông tin' hoặc kiểm tra phần 'Chỉnh sửa tên miền' và chỉ định tên miền riêng của bạn cho trang thông tin ở mục dưới đây. Để áp dụng những thay đổi bạn đã sử dụng nút 'Lưu' ở dưới cùng.",
|
||||
"DocumentService": "Dịch vụ Tài liệu",
|
||||
"DocumentServiceLocationHeader": "Địa điểm Dịch vụ Tài liệu",
|
||||
"DocumentServiceLocationHeaderInfo": "Địa điểm dịch vụ tài liệu chỉ rõ địa chỉ server của dịch vụ tài liệu được cài đặt. ",
|
||||
"DocumentServiceLocationUrlApi": "Địa chỉ Dịch vụ Chỉnh sửa Tài liệu",
|
||||
"DownloadCopy": "Tải xuống bản sao",
|
||||
"DownloadReportBtnText": "Tải báo cáo xuống",
|
||||
"DownloadReportDescription": "Báo cáo sẽ được lưu vào Tài liệu Của tôi",
|
||||
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -84,6 +84,10 @@
|
||||
"DNSSettingsMobile": "您可向我们的支持团队发送请求,我们将有专员帮助您进行设置。",
|
||||
"DNSSettingsTooltipMain": "DNS 设置可用于为 {{ organizationName }} 空间设置替代 URL 地址。",
|
||||
"DNSSettingsTooltipStandalone": "选择'使用域名',并选择自己的域名门户ONLYOFFICE在下面的字段。要应用更改,使用'保存'以下部分。",
|
||||
"DocumentService": "文件服务",
|
||||
"DocumentServiceLocationHeader": "文件服务位置",
|
||||
"DocumentServiceLocationHeaderInfo": "文档服务位置指定安装了文档服务服务器的地址。 ",
|
||||
"DocumentServiceLocationUrlApi": "文件编辑服务地址",
|
||||
"DownloadCopy": "下载副本",
|
||||
"DownloadReportBtnText": "下载报告",
|
||||
"DownloadReportDescription": "报告将被保存至“我的文档”",
|
||||
|
@ -445,7 +445,7 @@ const CreateUserForm = (props) => {
|
||||
{roomName ? (
|
||||
<Trans
|
||||
t={t}
|
||||
i18nKey="WelcomeToRoomName"
|
||||
i18nKey="WelcomeToRoom"
|
||||
ns="Confirm"
|
||||
key={roomName}
|
||||
>
|
||||
|
@ -53,6 +53,8 @@ const getTreeItems = (data, path, t) => {
|
||||
return t("PortalDeletion");
|
||||
case "Common:PaymentsTitle":
|
||||
return t("Common:PaymentsTitle");
|
||||
case "DocumentService":
|
||||
return t("DocumentService");
|
||||
case "SingleSignOn":
|
||||
return t("SingleSignOn");
|
||||
case "SMTPSettings":
|
||||
|
@ -0,0 +1,280 @@
|
||||
import React, { useState, useEffect } from "react";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import * as Styled from "./index.styled";
|
||||
import {
|
||||
Link,
|
||||
Button,
|
||||
Heading,
|
||||
HelpButton,
|
||||
InputBlock,
|
||||
Label,
|
||||
Text,
|
||||
} from "@docspace/components";
|
||||
import toastr from "@docspace/components/toast/toastr";
|
||||
import Loaders from "@docspace/common/components/Loaders";
|
||||
|
||||
const URL_REGEX = /^https?:\/\/[-a-zA-Z0-9@:%._\+~#=]{1,256}\/?$/;
|
||||
const EDITOR_URL_PLACEHOLDER = `${window.location.protocol}//<editors-dns-name>/`;
|
||||
|
||||
const DocumentService = ({
|
||||
getDocumentServiceLocation,
|
||||
changeDocumentServiceLocation,
|
||||
currentColorScheme,
|
||||
integrationSettingsUrl,
|
||||
}) => {
|
||||
const { t, ready } = useTranslation(["Settings", "Common"]);
|
||||
|
||||
const [isLoading, setIsLoading] = useState(true);
|
||||
const [isSaveLoading, setSaveIsLoading] = useState(false);
|
||||
const [isResetLoading, setResetIsLoading] = useState(false);
|
||||
|
||||
const [isDefaultSettings, setIsDefaultSettiings] = useState(false);
|
||||
const [portalUrl, setPortalUrl] = useState("");
|
||||
const [portalUrlIsValid, setPortalUrlIsValid] = useState(true);
|
||||
const [docServiceUrl, setDocServiceUrl] = useState("");
|
||||
const [docServiceUrlIsValid, setDocServiceUrlIsValid] = useState(true);
|
||||
const [internalUrl, setInternalUrl] = useState("");
|
||||
const [internalUrlIsValid, setInternalUrlIsValid] = useState(true);
|
||||
|
||||
const [initPortalUrl, setInitPortalUrl] = useState("");
|
||||
const [initDocServiceUrl, setInitDocServiceUrl] = useState("");
|
||||
const [initInternalUrl, setInitInternalUrl] = useState("");
|
||||
|
||||
useEffect(() => {
|
||||
setIsLoading(true);
|
||||
getDocumentServiceLocation()
|
||||
.then((result) => {
|
||||
setIsDefaultSettiings(result?.isDefault || false);
|
||||
|
||||
setPortalUrl(result?.docServicePortalUrl);
|
||||
setInternalUrl(result?.docServiceUrlInternal);
|
||||
setDocServiceUrl(result?.docServiceUrl);
|
||||
|
||||
setInitPortalUrl(result?.docServicePortalUrl);
|
||||
setInitInternalUrl(result?.docServiceUrlInternal);
|
||||
setInitDocServiceUrl(result?.docServiceUrl);
|
||||
})
|
||||
.catch((error) => toastr.error(error))
|
||||
.finally(() => setIsLoading(false));
|
||||
}, []);
|
||||
|
||||
const onChangeDocServiceUrl = (e) => {
|
||||
setDocServiceUrl(e.target.value);
|
||||
if (!e.target.value) setDocServiceUrlIsValid(true);
|
||||
else setDocServiceUrlIsValid(URL_REGEX.test(e.target.value));
|
||||
};
|
||||
|
||||
const onChangeInternalUrl = (e) => {
|
||||
setInternalUrl(e.target.value);
|
||||
if (!e.target.value) setInternalUrlIsValid(true);
|
||||
else setInternalUrlIsValid(URL_REGEX.test(e.target.value));
|
||||
};
|
||||
|
||||
const onChangePortalUrl = (e) => {
|
||||
setPortalUrl(e.target.value);
|
||||
if (!e.target.value) setPortalUrlIsValid(true);
|
||||
else setPortalUrlIsValid(URL_REGEX.test(e.target.value));
|
||||
};
|
||||
|
||||
const onSubmit = (e) => {
|
||||
e.preventDefault();
|
||||
setSaveIsLoading(true);
|
||||
changeDocumentServiceLocation(docServiceUrl, internalUrl, portalUrl)
|
||||
.then((response) => {
|
||||
toastr.success(t("Common:ChangesSavedSuccessfully"));
|
||||
|
||||
setDocServiceUrl(response[0]);
|
||||
setInternalUrl(response[1]);
|
||||
setPortalUrl(response[2]);
|
||||
|
||||
setInitDocServiceUrl(response[0]);
|
||||
setInitInternalUrl(response[1]);
|
||||
setInitPortalUrl(response[2]);
|
||||
|
||||
setIsDefaultSettiings(false);
|
||||
})
|
||||
.catch((e) => toastr.error(e))
|
||||
.finally(() => setSaveIsLoading(false));
|
||||
};
|
||||
|
||||
const onReset = () => {
|
||||
setDocServiceUrlIsValid(true);
|
||||
setInternalUrlIsValid(true);
|
||||
setPortalUrlIsValid(true);
|
||||
|
||||
setResetIsLoading(true);
|
||||
changeDocumentServiceLocation(null, null, null)
|
||||
.then((response) => {
|
||||
toastr.success(t("Common:ChangesSavedSuccessfully"));
|
||||
|
||||
setDocServiceUrl(response[0]);
|
||||
setInternalUrl(response[1]);
|
||||
setPortalUrl(response[2]);
|
||||
|
||||
setInitDocServiceUrl(response[0]);
|
||||
setInitInternalUrl(response[1]);
|
||||
setInitPortalUrl(response[2]);
|
||||
|
||||
setIsDefaultSettiings(true);
|
||||
})
|
||||
.catch((e) => toastr.error(e))
|
||||
.finally(() => setResetIsLoading(false));
|
||||
};
|
||||
|
||||
const isFormEmpty = !docServiceUrl && !internalUrl && !portalUrl;
|
||||
const allInputsValid =
|
||||
docServiceUrlIsValid && internalUrlIsValid && portalUrlIsValid;
|
||||
|
||||
const isValuesInit =
|
||||
docServiceUrl == initDocServiceUrl &&
|
||||
internalUrl == initInternalUrl &&
|
||||
portalUrl == initPortalUrl;
|
||||
|
||||
if (isLoading || !ready) return <Loaders.SettingsDSConnect />;
|
||||
|
||||
return (
|
||||
<Styled.Location>
|
||||
<Styled.LocationHeader>
|
||||
<div className="main">
|
||||
<Heading className={"heading"} isInline level={3}>
|
||||
{t("Settings:DocumentServiceLocationHeader")}
|
||||
</Heading>
|
||||
<div className="help-button-wrapper">
|
||||
<HelpButton
|
||||
tooltipContent={t("Settings:DocumentServiceLocationHeaderHelp")}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="secondary">
|
||||
{t("Settings:DocumentServiceLocationHeaderInfo")}
|
||||
</div>
|
||||
<div>
|
||||
<Link
|
||||
className="third-party-link"
|
||||
color={currentColorScheme.main.accent}
|
||||
isHovered
|
||||
target="_blank"
|
||||
href={integrationSettingsUrl}
|
||||
>
|
||||
{t("Common:LearnMore")}
|
||||
</Link>
|
||||
</div>
|
||||
</Styled.LocationHeader>
|
||||
|
||||
<Styled.LocationForm onSubmit={onSubmit}>
|
||||
<div className="form-inputs">
|
||||
<div className="input-wrapper">
|
||||
<Label
|
||||
htmlFor="docServiceAdress"
|
||||
text={t("Settings:DocumentServiceLocationUrlApi")}
|
||||
/>
|
||||
<InputBlock
|
||||
id="docServiceAdress"
|
||||
type="text"
|
||||
autoComplete="off"
|
||||
tabIndex={1}
|
||||
scale
|
||||
iconButtonClassName={"icon-button"}
|
||||
value={docServiceUrl}
|
||||
onChange={onChangeDocServiceUrl}
|
||||
placeholder={EDITOR_URL_PLACEHOLDER}
|
||||
hasError={!docServiceUrlIsValid}
|
||||
isDisabled={isSaveLoading || isResetLoading}
|
||||
/>
|
||||
<Text className="subtitle">
|
||||
{t("Common:Example", {
|
||||
example: EDITOR_URL_PLACEHOLDER,
|
||||
})}
|
||||
</Text>
|
||||
</div>
|
||||
<div className="input-wrapper">
|
||||
<Label
|
||||
htmlFor="internalAdress"
|
||||
text={t("Settings:DocumentServiceLocationUrlInternal")}
|
||||
/>
|
||||
<InputBlock
|
||||
id="internalAdress"
|
||||
type="text"
|
||||
autoComplete="off"
|
||||
tabIndex={2}
|
||||
scale
|
||||
iconButtonClassName={"icon-button"}
|
||||
value={internalUrl}
|
||||
onChange={onChangeInternalUrl}
|
||||
placeholder={EDITOR_URL_PLACEHOLDER}
|
||||
hasError={!internalUrlIsValid}
|
||||
isDisabled={isSaveLoading || isResetLoading}
|
||||
/>
|
||||
<Text className="subtitle">
|
||||
{t("Common:Example", {
|
||||
example: EDITOR_URL_PLACEHOLDER,
|
||||
})}
|
||||
</Text>
|
||||
</div>
|
||||
<div className="input-wrapper">
|
||||
<Label
|
||||
htmlFor="portalAdress"
|
||||
text={t("Settings:DocumentServiceLocationUrlPortal")}
|
||||
/>
|
||||
<InputBlock
|
||||
id="portalAdress"
|
||||
type="text"
|
||||
autoComplete="off"
|
||||
tabIndex={3}
|
||||
scale
|
||||
iconButtonClassName={"icon-button"}
|
||||
value={portalUrl}
|
||||
onChange={onChangePortalUrl}
|
||||
placeholder={"http://<docspace-dns-name>/"}
|
||||
hasError={!portalUrlIsValid}
|
||||
isDisabled={isSaveLoading || isResetLoading}
|
||||
/>
|
||||
<Text className="subtitle">
|
||||
{t("Common:Example", {
|
||||
example: `${window.location.origin}`,
|
||||
})}
|
||||
</Text>
|
||||
</div>
|
||||
</div>
|
||||
<div className="form-buttons">
|
||||
<Button
|
||||
onClick={onSubmit}
|
||||
className="button"
|
||||
primary
|
||||
size={"small"}
|
||||
label={t("Common:SaveButton")}
|
||||
isDisabled={
|
||||
isFormEmpty ||
|
||||
isValuesInit ||
|
||||
!allInputsValid ||
|
||||
isSaveLoading ||
|
||||
isResetLoading
|
||||
}
|
||||
isLoading={isSaveLoading}
|
||||
/>
|
||||
<Button
|
||||
onClick={onReset}
|
||||
className="button"
|
||||
size={"small"}
|
||||
label={t("Settings:RestoreDefaultButton")}
|
||||
isDisabled={isDefaultSettings || isSaveLoading || isResetLoading}
|
||||
isLoading={isResetLoading}
|
||||
/>
|
||||
</div>
|
||||
</Styled.LocationForm>
|
||||
</Styled.Location>
|
||||
);
|
||||
};
|
||||
|
||||
export default inject(({ auth, settingsStore }) => {
|
||||
const { currentColorScheme, integrationSettingsUrl } = auth.settingsStore;
|
||||
const { getDocumentServiceLocation, changeDocumentServiceLocation } =
|
||||
settingsStore;
|
||||
return {
|
||||
getDocumentServiceLocation,
|
||||
changeDocumentServiceLocation,
|
||||
currentColorScheme,
|
||||
integrationSettingsUrl,
|
||||
};
|
||||
})(observer(DocumentService));
|
@ -0,0 +1,83 @@
|
||||
import { mobile } from "@docspace/components/utils/device";
|
||||
import styled from "styled-components";
|
||||
|
||||
export const Location = styled.div`
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
`;
|
||||
|
||||
export const LocationHeader = styled.div`
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
margin: 5px 0 2px 0;
|
||||
|
||||
.main {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
|
||||
.heading {
|
||||
margin: 0;
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.help-button-wrapper {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.secondary {
|
||||
width: 100%;
|
||||
max-width: 700px;
|
||||
font-size: 13px;
|
||||
font-weight: 400;
|
||||
line-height: 20px;
|
||||
}
|
||||
`;
|
||||
|
||||
export const LocationForm = styled.form`
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
|
||||
.form-inputs {
|
||||
width: 100%;
|
||||
max-width: 350px;
|
||||
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 16px;
|
||||
|
||||
.input-wrapper {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 4px;
|
||||
|
||||
.icon-button {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
color: ${(props) => props.theme.client.settings.common.descriptionColor};
|
||||
}
|
||||
}
|
||||
|
||||
.form-buttons {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: 8px;
|
||||
|
||||
@media ${mobile} {
|
||||
.button {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
@ -10,9 +10,11 @@ import SSO from "./SingleSignOn";
|
||||
import ThirdParty from "./ThirdPartyServicesSettings";
|
||||
|
||||
import SMTPSettings from "./SMTPSettings";
|
||||
import DocumentService from "./DocumentService";
|
||||
|
||||
const IntegrationWrapper = (props) => {
|
||||
const { t, tReady, enablePlugins, toDefault, isSSOAvailable } = props;
|
||||
const { t, tReady, enablePlugins, toDefault, isSSOAvailable, standalone } =
|
||||
props;
|
||||
const navigate = useNavigate();
|
||||
|
||||
useEffect(() => {
|
||||
@ -41,6 +43,16 @@ const IntegrationWrapper = (props) => {
|
||||
},
|
||||
];
|
||||
|
||||
if (standalone) {
|
||||
const documentServiceData = {
|
||||
id: "document-service",
|
||||
name: t("DocumentService"),
|
||||
content: <DocumentService />,
|
||||
};
|
||||
|
||||
data.push(documentServiceData);
|
||||
}
|
||||
|
||||
const getCurrentTab = () => {
|
||||
const path = location.pathname;
|
||||
const currentTab = data.findIndex((item) => path.includes(item.id));
|
||||
@ -63,6 +75,7 @@ const IntegrationWrapper = (props) => {
|
||||
};
|
||||
|
||||
export default inject(({ auth, ssoStore }) => {
|
||||
const { standalone } = auth.settingsStore;
|
||||
const { load: toDefault } = ssoStore;
|
||||
const { enablePlugins } = auth.settingsStore;
|
||||
const { isSSOAvailable } = auth.currentQuotaStore;
|
||||
@ -71,6 +84,7 @@ export default inject(({ auth, ssoStore }) => {
|
||||
enablePlugins,
|
||||
toDefault,
|
||||
isSSOAvailable,
|
||||
standalone,
|
||||
};
|
||||
})(
|
||||
withTranslation(["Settings", "SingleSignOn", "Translations"])(
|
||||
|
@ -302,9 +302,17 @@ export const settingsTree = [
|
||||
isCategory: true,
|
||||
},
|
||||
{
|
||||
id: "portal-settings_catalog-smtp-settings",
|
||||
id: "portal-settings_catalog-document-service",
|
||||
key: "4-3",
|
||||
icon: "",
|
||||
link: "document-service",
|
||||
tKey: "DocumentService",
|
||||
isCategory: true,
|
||||
},
|
||||
{
|
||||
id: "portal-settings_catalog-smtp-settings",
|
||||
key: "4-4",
|
||||
icon: "",
|
||||
link: "smtp-settings",
|
||||
tKey: "SMTPSettings",
|
||||
isCategory: true,
|
||||
|
@ -90,6 +90,11 @@ const ThirdParty = loadable(() =>
|
||||
"../pages/PortalSettings/categories/integration/ThirdPartyServicesSettings"
|
||||
)
|
||||
);
|
||||
|
||||
const DocumentService = loadable(() =>
|
||||
import("../pages/PortalSettings/categories/integration/DocumentService")
|
||||
);
|
||||
|
||||
const SingleSignOn = loadable(() =>
|
||||
import("../pages/PortalSettings/categories/integration/SingleSignOn")
|
||||
);
|
||||
@ -257,6 +262,10 @@ const PortalSettingsRoutes = {
|
||||
path: "integration/portal-integration",
|
||||
element: <Integration />,
|
||||
},
|
||||
{
|
||||
path: "integration/document-service",
|
||||
element: <Integration />,
|
||||
},
|
||||
{
|
||||
path: "integration/smtp-settings",
|
||||
element: <Integration />,
|
||||
|
@ -190,6 +190,15 @@ class SettingsStore {
|
||||
setForceSave = (data) =>
|
||||
api.files.forceSave(data).then((res) => this.setForcesave(res));
|
||||
|
||||
getDocumentServiceLocation = () => api.files.getDocumentServiceLocation();
|
||||
|
||||
changeDocumentServiceLocation = (docServiceUrl, internalUrl, portalUrl) =>
|
||||
api.files.changeDocumentServiceLocation(
|
||||
docServiceUrl,
|
||||
internalUrl,
|
||||
portalUrl
|
||||
);
|
||||
|
||||
setForcesave = (val) => (this.forcesave = val);
|
||||
|
||||
updateRootTreeFolders = () => {
|
||||
|
@ -830,10 +830,6 @@ export function removeFromFavorite(ids) {
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function getDocServiceUrl() {
|
||||
return request({ method: "get", url: `/files/docservice` });
|
||||
}
|
||||
|
||||
export function getIsEncryptionSupport() {
|
||||
return request({
|
||||
method: "get",
|
||||
@ -1010,3 +1006,27 @@ export function sendEditorNotify(fileId, actionLink, emails, message) {
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function getDocumentServiceLocation(version = true) {
|
||||
return request({
|
||||
method: "get",
|
||||
url: `/files/docservice`,
|
||||
params: { version },
|
||||
});
|
||||
}
|
||||
|
||||
export function changeDocumentServiceLocation(
|
||||
docServiceUrl,
|
||||
internalUrl,
|
||||
portalUrl
|
||||
) {
|
||||
return request({
|
||||
method: "put",
|
||||
url: `files/docservice`,
|
||||
data: {
|
||||
DocServiceUrl: docServiceUrl,
|
||||
DocServiceUrlInternal: internalUrl,
|
||||
DocServiceUrlPortal: portalUrl,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
@ -0,0 +1,190 @@
|
||||
import React from "react";
|
||||
import { LoaderStyle } from "../../../constants";
|
||||
import RectangleLoader from "../RectangleLoader";
|
||||
import { StyledSMTPContent } from "./StyledComponent";
|
||||
const speed = 2;
|
||||
|
||||
const SettingsDSConnect = () => {
|
||||
const firstComponent = (
|
||||
<div>
|
||||
<div>
|
||||
<RectangleLoader
|
||||
height="22"
|
||||
width="56"
|
||||
backgroundColor={LoaderStyle.backgroundColor}
|
||||
foregroundColor={LoaderStyle.foregroundColor}
|
||||
backgroundOpacity={LoaderStyle.backgroundOpacity}
|
||||
foregroundOpacity={LoaderStyle.foregroundOpacity}
|
||||
speed={speed}
|
||||
animate={true}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<RectangleLoader
|
||||
className="rectangle-loader-2"
|
||||
height="46"
|
||||
width="348"
|
||||
backgroundColor={LoaderStyle.backgroundColor}
|
||||
foregroundColor={LoaderStyle.foregroundColor}
|
||||
backgroundOpacity={LoaderStyle.backgroundOpacity}
|
||||
foregroundOpacity={LoaderStyle.foregroundOpacity}
|
||||
speed={speed}
|
||||
animate={true}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
|
||||
const secondComponent = (
|
||||
<div>
|
||||
<RectangleLoader
|
||||
height="20"
|
||||
width="101"
|
||||
backgroundColor={LoaderStyle.backgroundColor}
|
||||
foregroundColor={LoaderStyle.foregroundColor}
|
||||
backgroundOpacity={LoaderStyle.backgroundOpacity}
|
||||
foregroundOpacity={LoaderStyle.foregroundOpacity}
|
||||
speed={speed}
|
||||
animate={true}
|
||||
/>
|
||||
<RectangleLoader
|
||||
className="rectangle-loader-2"
|
||||
height="32"
|
||||
backgroundColor={LoaderStyle.backgroundColor}
|
||||
foregroundColor={LoaderStyle.foregroundColor}
|
||||
backgroundOpacity={LoaderStyle.backgroundOpacity}
|
||||
foregroundOpacity={LoaderStyle.foregroundOpacity}
|
||||
speed={speed}
|
||||
animate={true}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
const thirdComponent = (
|
||||
<div>
|
||||
<RectangleLoader
|
||||
height="20"
|
||||
width="138"
|
||||
backgroundColor={LoaderStyle.backgroundColor}
|
||||
foregroundColor={LoaderStyle.foregroundColor}
|
||||
backgroundOpacity={LoaderStyle.backgroundOpacity}
|
||||
foregroundOpacity={LoaderStyle.foregroundOpacity}
|
||||
speed={speed}
|
||||
animate={true}
|
||||
/>
|
||||
<RectangleLoader
|
||||
className="rectangle-loader-2"
|
||||
height="32"
|
||||
backgroundColor={LoaderStyle.backgroundColor}
|
||||
foregroundColor={LoaderStyle.foregroundColor}
|
||||
backgroundOpacity={LoaderStyle.backgroundOpacity}
|
||||
foregroundOpacity={LoaderStyle.foregroundOpacity}
|
||||
speed={speed}
|
||||
animate={true}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
|
||||
const checkboxComponent = (
|
||||
<div className="rectangle-loader_checkbox">
|
||||
<RectangleLoader
|
||||
height="16"
|
||||
width="16"
|
||||
backgroundColor={LoaderStyle.backgroundColor}
|
||||
foregroundColor={LoaderStyle.foregroundColor}
|
||||
backgroundOpacity={LoaderStyle.backgroundOpacity}
|
||||
foregroundOpacity={LoaderStyle.foregroundOpacity}
|
||||
speed={speed}
|
||||
animate={true}
|
||||
/>
|
||||
<RectangleLoader
|
||||
height="22"
|
||||
width="101"
|
||||
backgroundColor={LoaderStyle.backgroundColor}
|
||||
foregroundColor={LoaderStyle.foregroundColor}
|
||||
backgroundOpacity={LoaderStyle.backgroundOpacity}
|
||||
foregroundOpacity={LoaderStyle.foregroundOpacity}
|
||||
speed={speed}
|
||||
animate={true}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
const secondCheckboxComponent = (
|
||||
<div className="rectangle-loader_checkbox">
|
||||
<RectangleLoader
|
||||
height="16"
|
||||
width="16"
|
||||
backgroundColor={LoaderStyle.backgroundColor}
|
||||
foregroundColor={LoaderStyle.foregroundColor}
|
||||
backgroundOpacity={LoaderStyle.backgroundOpacity}
|
||||
foregroundOpacity={LoaderStyle.foregroundOpacity}
|
||||
speed={speed}
|
||||
animate={true}
|
||||
/>
|
||||
<RectangleLoader
|
||||
height="20"
|
||||
width="70"
|
||||
backgroundColor={LoaderStyle.backgroundColor}
|
||||
foregroundColor={LoaderStyle.foregroundColor}
|
||||
backgroundOpacity={LoaderStyle.backgroundOpacity}
|
||||
foregroundOpacity={LoaderStyle.foregroundOpacity}
|
||||
speed={speed}
|
||||
animate={true}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
const buttonsComponent = (
|
||||
<div className="rectangle-loader_buttons">
|
||||
<RectangleLoader
|
||||
height="32"
|
||||
backgroundColor={LoaderStyle.backgroundColor}
|
||||
foregroundColor={LoaderStyle.foregroundColor}
|
||||
backgroundOpacity={LoaderStyle.backgroundOpacity}
|
||||
foregroundOpacity={LoaderStyle.foregroundOpacity}
|
||||
speed={speed}
|
||||
animate={true}
|
||||
/>
|
||||
<RectangleLoader
|
||||
height="32"
|
||||
backgroundColor={LoaderStyle.backgroundColor}
|
||||
foregroundColor={LoaderStyle.foregroundColor}
|
||||
backgroundOpacity={LoaderStyle.backgroundOpacity}
|
||||
foregroundOpacity={LoaderStyle.foregroundOpacity}
|
||||
speed={speed}
|
||||
animate={true}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
return (
|
||||
<StyledSMTPContent>
|
||||
<RectangleLoader
|
||||
className="rectangle-loader_title"
|
||||
height="22"
|
||||
width="128"
|
||||
backgroundColor={LoaderStyle.backgroundColor}
|
||||
foregroundColor={LoaderStyle.foregroundColor}
|
||||
backgroundOpacity={LoaderStyle.backgroundOpacity}
|
||||
foregroundOpacity={LoaderStyle.foregroundOpacity}
|
||||
speed={speed}
|
||||
animate={true}
|
||||
/>
|
||||
|
||||
<RectangleLoader
|
||||
className="rectangle-loader_description"
|
||||
height="40"
|
||||
backgroundColor={LoaderStyle.backgroundColor}
|
||||
foregroundColor={LoaderStyle.foregroundColor}
|
||||
backgroundOpacity={LoaderStyle.backgroundOpacity}
|
||||
foregroundOpacity={LoaderStyle.foregroundOpacity}
|
||||
speed={speed}
|
||||
animate={true}
|
||||
/>
|
||||
|
||||
{firstComponent}
|
||||
{firstComponent}
|
||||
{firstComponent}
|
||||
|
||||
{buttonsComponent}
|
||||
</StyledSMTPContent>
|
||||
);
|
||||
};
|
||||
|
||||
export default SettingsDSConnect;
|
@ -49,6 +49,7 @@ import SettingsHeader from "./SettingsLoader/SettingsHeaderLoader";
|
||||
import SettingsAdmin from "./SettingsLoader/SettingsAdminLoader";
|
||||
import SettingsCommon from "./SettingsLoader/SettingsCommonLoader";
|
||||
import SettingsSMTP from "./SettingsLoader/SettingsSMTPLoader";
|
||||
import SettingsDSConnect from "./SettingsLoader/SettingsDSConnectLoader";
|
||||
import EmptyContainerLoader from "./EmptyContainerLoader/EmptyContainerLoader";
|
||||
import ContextMenuLoader from "./ContextMenuLoader";
|
||||
|
||||
@ -103,6 +104,7 @@ export default {
|
||||
SettingsAdmin,
|
||||
SettingsCommon,
|
||||
SettingsSMTP,
|
||||
SettingsDSConnect,
|
||||
|
||||
EmptyContainerLoader,
|
||||
Notifications,
|
||||
|
@ -62,6 +62,7 @@ class InputBlock extends React.Component {
|
||||
forwardedRef,
|
||||
iconButtonClassName,
|
||||
iconNode,
|
||||
...props
|
||||
} = this.props;
|
||||
|
||||
if (typeof iconSize == "number" && iconSize > 0) {
|
||||
@ -124,6 +125,7 @@ class InputBlock extends React.Component {
|
||||
mask={mask}
|
||||
keepCharPositions={keepCharPositions}
|
||||
forwardedRef={forwardedRef}
|
||||
{...props}
|
||||
/>
|
||||
{
|
||||
//iconNames.includes(iconName) && (
|
||||
|
@ -47,7 +47,7 @@ public class FilesLinkUtility
|
||||
CoreBaseSettings coreBaseSettings,
|
||||
CoreSettings coreSettings,
|
||||
IConfiguration configuration,
|
||||
InstanceCrypto instanceCrypto,
|
||||
InstanceCrypto instanceCrypto,
|
||||
ExternalShare externalShare)
|
||||
{
|
||||
_commonLinkUtility = commonLinkUtility;
|
||||
@ -85,11 +85,12 @@ public class FilesLinkUtility
|
||||
get { return FilesBaseAbsolutePath + "filehandler.ashx"; }
|
||||
}
|
||||
|
||||
private const string PublicUrlKey = "public";
|
||||
public string DocServiceUrl
|
||||
{
|
||||
get
|
||||
{
|
||||
var url = GetUrlSetting("public");
|
||||
var url = GetUrlSetting(PublicUrlKey, out _);
|
||||
if (!string.IsNullOrEmpty(url) && url != "/")
|
||||
{
|
||||
url = url.TrimEnd('/') + "/";
|
||||
@ -98,7 +99,7 @@ public class FilesLinkUtility
|
||||
}
|
||||
set
|
||||
{
|
||||
SetUrlSetting("api", null);
|
||||
SetUrlSetting(ApiUrlKey, null);
|
||||
|
||||
value = (value ?? "").Trim().ToLowerInvariant();
|
||||
if (!string.IsNullOrEmpty(value))
|
||||
@ -110,15 +111,16 @@ public class FilesLinkUtility
|
||||
}
|
||||
}
|
||||
|
||||
SetUrlSetting("public", value);
|
||||
SetUrlSetting(PublicUrlKey, value);
|
||||
}
|
||||
}
|
||||
|
||||
private const string InternalUrlKey = "internal";
|
||||
public string DocServiceUrlInternal
|
||||
{
|
||||
get
|
||||
{
|
||||
var url = GetUrlSetting("internal");
|
||||
var url = GetUrlSetting(InternalUrlKey, out _);
|
||||
if (string.IsNullOrEmpty(url))
|
||||
{
|
||||
url = DocServiceUrl;
|
||||
@ -146,15 +148,16 @@ public class FilesLinkUtility
|
||||
}
|
||||
}
|
||||
|
||||
SetUrlSetting("internal", value);
|
||||
SetUrlSetting(InternalUrlKey, value);
|
||||
}
|
||||
}
|
||||
|
||||
private const string ApiUrlKey = "api";
|
||||
public string DocServiceApiUrl
|
||||
{
|
||||
get
|
||||
{
|
||||
var url = GetUrlSetting("api");
|
||||
var url = GetUrlSetting(ApiUrlKey, out _);
|
||||
if (string.IsNullOrEmpty(url))
|
||||
{
|
||||
url = DocServiceUrl;
|
||||
@ -171,7 +174,7 @@ public class FilesLinkUtility
|
||||
{
|
||||
get
|
||||
{
|
||||
var url = GetUrlSetting("converter");
|
||||
var url = GetUrlSetting("converter", out _);
|
||||
if (string.IsNullOrEmpty(url))
|
||||
{
|
||||
url = DocServiceUrlInternal;
|
||||
@ -188,7 +191,7 @@ public class FilesLinkUtility
|
||||
{
|
||||
get
|
||||
{
|
||||
var url = GetUrlSetting("command");
|
||||
var url = GetUrlSetting("command", out _);
|
||||
if (string.IsNullOrEmpty(url))
|
||||
{
|
||||
url = DocServiceUrlInternal;
|
||||
@ -205,7 +208,7 @@ public class FilesLinkUtility
|
||||
{
|
||||
get
|
||||
{
|
||||
var url = GetUrlSetting("docbuilder");
|
||||
var url = GetUrlSetting("docbuilder", out _);
|
||||
if (string.IsNullOrEmpty(url))
|
||||
{
|
||||
url = DocServiceUrlInternal;
|
||||
@ -222,7 +225,7 @@ public class FilesLinkUtility
|
||||
{
|
||||
get
|
||||
{
|
||||
var url = GetUrlSetting("healthcheck");
|
||||
var url = GetUrlSetting("healthcheck", out _);
|
||||
if (string.IsNullOrEmpty(url))
|
||||
{
|
||||
url = DocServiceUrlInternal;
|
||||
@ -235,9 +238,10 @@ public class FilesLinkUtility
|
||||
}
|
||||
}
|
||||
|
||||
private const string PortalUrlKey = "portal";
|
||||
public string DocServicePortalUrl
|
||||
{
|
||||
get { return GetUrlSetting("portal"); }
|
||||
get { return GetUrlSetting(PortalUrlKey, out _); }
|
||||
set
|
||||
{
|
||||
value = (value ?? "").Trim().ToLowerInvariant();
|
||||
@ -250,7 +254,26 @@ public class FilesLinkUtility
|
||||
}
|
||||
}
|
||||
|
||||
SetUrlSetting("portal", value);
|
||||
SetUrlSetting(PortalUrlKey, value);
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsDefault
|
||||
{
|
||||
get
|
||||
{
|
||||
bool isDefault;
|
||||
|
||||
GetUrlSetting(PublicUrlKey, out isDefault);
|
||||
if (!isDefault) return false;
|
||||
|
||||
GetUrlSetting(InternalUrlKey, out isDefault);
|
||||
if (!isDefault) return false;
|
||||
|
||||
GetUrlSetting(PortalUrlKey, out isDefault);
|
||||
if (!isDefault) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -415,20 +438,30 @@ public class FilesLinkUtility
|
||||
return virtualPath.EndsWith(".ashx") ? virtualPath : virtualPath.TrimEnd('/') + "/ChunkedUploader.ashx";
|
||||
}
|
||||
|
||||
private string GetUrlSetting(string key, string appSettingsKey = null)
|
||||
private string GetUrlSetting(string key, out bool isDefault)
|
||||
{
|
||||
var value = string.Empty;
|
||||
isDefault = false;
|
||||
|
||||
if (_coreBaseSettings.Standalone)
|
||||
{
|
||||
value = _coreSettings.GetSetting(GetSettingsKey(key));
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(value))
|
||||
{
|
||||
value = _configuration["files:docservice:url:" + (appSettingsKey ?? key)];
|
||||
value = GetDefaultUrlSetting(key);
|
||||
isDefault = true;
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
private string GetDefaultUrlSetting(string key)
|
||||
{
|
||||
return _configuration[$"files:docservice:url:{key}"];
|
||||
}
|
||||
|
||||
private void SetUrlSetting(string key, string value)
|
||||
{
|
||||
if (!_coreBaseSettings.Standalone)
|
||||
@ -441,9 +474,18 @@ public class FilesLinkUtility
|
||||
value = null;
|
||||
}
|
||||
|
||||
if (GetUrlSetting(key) != value)
|
||||
if (value != null)
|
||||
{
|
||||
_coreSettings.SaveSetting(GetSettingsKey(key), value);
|
||||
var def = GetDefaultUrlSetting(key);
|
||||
if (def == value)
|
||||
{
|
||||
value = null;
|
||||
}
|
||||
}
|
||||
|
||||
if (GetUrlSetting(key, out _) != value)
|
||||
{
|
||||
_coreSettings.SaveSetting(GetSettingsKey(key), value);
|
||||
}
|
||||
}
|
||||
|
||||
@ -451,7 +493,7 @@ public class FilesLinkUtility
|
||||
{
|
||||
return "DocKey_" + key;
|
||||
}
|
||||
|
||||
|
||||
private string GetUrlWithShare(string url)
|
||||
{
|
||||
if (_externalShare.GetLinkId() == default)
|
||||
|
@ -406,7 +406,8 @@ public class EditorController : ApiControllerBase
|
||||
docServiceUrlApi = url,
|
||||
_filesLinkUtility.DocServiceUrl,
|
||||
_filesLinkUtility.DocServiceUrlInternal,
|
||||
_filesLinkUtility.DocServicePortalUrl
|
||||
_filesLinkUtility.DocServicePortalUrl,
|
||||
_filesLinkUtility.IsDefault
|
||||
};
|
||||
}
|
||||
}
|
@ -24,6 +24,8 @@
|
||||
// content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0
|
||||
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
|
||||
using ASC.Data.Storage;
|
||||
|
||||
namespace ASC.Files;
|
||||
|
||||
public class Startup : BaseStartup
|
||||
@ -99,5 +101,10 @@ public class Startup : BaseStartup
|
||||
{
|
||||
appBranch.UseDocuSignHandler();
|
||||
});
|
||||
|
||||
app.UseEndpoints(endpoints =>
|
||||
{
|
||||
endpoints.InitializeHttpHandlers("files_template");
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -113,6 +113,7 @@
|
||||
"EveryMonth": "كل شهر",
|
||||
"EveryWeek": "كل اسبوع",
|
||||
"Exabyte": "البايت",
|
||||
"Example": "مثال: {{example}}",
|
||||
"ExpiredLink": "رابط منتهي الصلاحية",
|
||||
"FeedbackAndSupport": "التقييم والدعم",
|
||||
"FillFormButton": "إملأ النموذج",
|
||||
|
@ -113,6 +113,7 @@
|
||||
"ErrorReportDescription": "Hansı məlumatın daxil olduğunu görmək üçün aşağıdakı hesabatı açın. Xəta hesabatlarında istifadəçilərin şəxsi məlumatları əks olunmur. Komandamızın problemi daha yaxşı başa düşməsi üçün şərh sahəsindən istifadə edərək məsələni aydın şəkildə təsvir edin.",
|
||||
"ErrorReportSuccess": "Xəta hesabatı uğurla göndərildi",
|
||||
"Exabyte": "EB",
|
||||
"Example": "Nümunə: {{example}}",
|
||||
"ExpiredLink": "İstifadə müddəti bitmiş keçid",
|
||||
"FeedbackAndSupport": "Rəy və Dəstək",
|
||||
"FillFormButton": "Formu doldurun",
|
||||
|
@ -113,6 +113,7 @@
|
||||
"ErrorReportDescription": "Отворете доклада по-долу, за да видите какви данни са включени. Докладите за грешки не съдържат лични данни на потребителите. За да помогнете на нашия екип да разбере по-добре проблема, опишете го в свободна форма, като използвате полето за коментар.",
|
||||
"ErrorReportSuccess": "Докладът за грешка беше изпратен успешно",
|
||||
"Exabyte": "EB",
|
||||
"Example": "Пример: {{example}}",
|
||||
"ExpiredLink": "Изтекъл линк",
|
||||
"FeedbackAndSupport": "Обратна връзка и поддръжка",
|
||||
"FillFormButton": "Попълнете формуляра",
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user