Merge pull request #738 from ONLYOFFICE/bugfix/doceditor-fix
Bugfix/doceditor fix
This commit is contained in:
commit
391822a8d3
@ -173,7 +173,11 @@ class SettingsStore {
|
||||
};
|
||||
|
||||
getSettings = async () => {
|
||||
const newSettings = await api.settings.getSettings();
|
||||
let newSettings = null;
|
||||
|
||||
if (window?.__ASC_INITIAL_EDITOR_STATE__?.portalSettings)
|
||||
newSettings = window.__ASC_INITIAL_EDITOR_STATE__.portalSettings;
|
||||
else newSettings = await api.settings.getSettings();
|
||||
|
||||
if (window["AscDesktopEditor"] !== undefined || this.personal) {
|
||||
const dp = combineUrl(proxyURL, "/products/files/");
|
||||
@ -213,7 +217,12 @@ class SettingsStore {
|
||||
};
|
||||
|
||||
getCurrentCustomSchema = async (id) => {
|
||||
this.customNames = await api.settings.getCurrentCustomSchema(id);
|
||||
let customNames = null;
|
||||
if (window?.__ASC_INITIAL_EDITOR_STATE__?.customNames) {
|
||||
customNames = window.__ASC_INITIAL_EDITOR_STATE__.customNames;
|
||||
window.__ASC_INITIAL_EDITOR_STATE__.customNames = null;
|
||||
} else customNames = await api.settings.getCurrentCustomSchema(id);
|
||||
this.customNames = customNames;
|
||||
};
|
||||
|
||||
getCustomSchemaList = async () => {
|
||||
@ -428,7 +437,10 @@ class SettingsStore {
|
||||
}
|
||||
|
||||
getBuildVersionInfo = async () => {
|
||||
const versionInfo = await api.settings.getBuildVersion();
|
||||
let versionInfo = null;
|
||||
if (window?.__ASC_INITIAL_EDITOR_STATE__?.versionInfo)
|
||||
versionInfo = window.__ASC_INITIAL_EDITOR_STATE__.versionInfo;
|
||||
else versionInfo = await api.settings.getBuildVersion();
|
||||
this.setBuildVersionInfo(versionInfo);
|
||||
};
|
||||
|
||||
|
@ -12,7 +12,11 @@ class UserStore {
|
||||
}
|
||||
|
||||
loadCurrentUser = async () => {
|
||||
const user = await api.people.getUser();
|
||||
let user = null;
|
||||
if (window?.__ASC_INITIAL_EDITOR_STATE__?.user)
|
||||
user = window.__ASC_INITIAL_EDITOR_STATE__.user;
|
||||
else user = await api.people.getUser();
|
||||
|
||||
this.setUser(user);
|
||||
};
|
||||
|
||||
|
@ -55,11 +55,13 @@ const SharingDialogWrapper = inject(({ dialogsStore, filesStore }) => {
|
||||
})(observer(SharingDialog));
|
||||
|
||||
class SharingModal extends React.Component {
|
||||
static getSharingSettings = (fileId) => {
|
||||
return getShareFiles([+fileId], []).then((users) =>
|
||||
SharingPanel.convertSharingUsers(users)
|
||||
static getSharingSettings = (fileId) =>
|
||||
getShareFiles([+fileId], []).then((users) =>
|
||||
this.convertSharingUsers(users)
|
||||
);
|
||||
};
|
||||
|
||||
static convertSharingUsers = (users) =>
|
||||
Promise.resolve(SharingPanel.convertSharingUsers(users));
|
||||
|
||||
componentDidMount() {
|
||||
authStore.init(true);
|
||||
|
@ -122,6 +122,7 @@
|
||||
"PasswordMinimumLength": "Minimal uzunluq",
|
||||
"People": "İnsanlar",
|
||||
"Phone": "Nömrə",
|
||||
"PreparationPortalTitle": "Portalın bərpası davam edir",
|
||||
"Previous": "Əvvəlki ",
|
||||
"Profile": "Profil",
|
||||
"ProjectsProduct": "Layihələr",
|
||||
@ -173,4 +174,4 @@
|
||||
"AboutCompanyTitle": "Proqram haqqında",
|
||||
"LogoutButton": "Çıxış edin",
|
||||
"HelpCenter": "Yardım Mərkəzi"
|
||||
}
|
||||
}
|
@ -122,6 +122,7 @@
|
||||
"PasswordMinimumLength": "Минимална дължина",
|
||||
"People": "Хора",
|
||||
"Phone": "Телефон",
|
||||
"PreparationPortalTitle": "Възстановяването на портала е в ход.",
|
||||
"Previous": "Предишен",
|
||||
"Profile": "Профил",
|
||||
"ProjectsProduct": "Проекти",
|
||||
@ -173,4 +174,4 @@
|
||||
"AboutCompanyTitle": "За тази програма",
|
||||
"LogoutButton": "Отписване",
|
||||
"HelpCenter": "Помощен център"
|
||||
}
|
||||
}
|
@ -122,6 +122,7 @@
|
||||
"PasswordMinimumLength": "Minimální délka",
|
||||
"People": "Lidé",
|
||||
"Phone": "Telefon",
|
||||
"PreparationPortalTitle": "Probíhá obnova portálu",
|
||||
"Previous": "Předchozí",
|
||||
"Profile": "Profil",
|
||||
"ProjectsProduct": "Projekty",
|
||||
@ -173,4 +174,4 @@
|
||||
"AboutCompanyTitle": "O tomto programu",
|
||||
"LogoutButton": "Odhlásit se",
|
||||
"HelpCenter": "Centrum nápovědy"
|
||||
}
|
||||
}
|
@ -122,6 +122,7 @@
|
||||
"PasswordMinimumLength": "Minimale Länge",
|
||||
"People": "Personen",
|
||||
"Phone": "Telefon",
|
||||
"PreparationPortalTitle": "Wiederherstellung des Portals ist im Gange",
|
||||
"Previous": "Zurück",
|
||||
"Profile": "Profil",
|
||||
"ProjectsProduct": "Projekte",
|
||||
@ -173,4 +174,4 @@
|
||||
"AboutCompanyTitle": "Über diese Software",
|
||||
"LogoutButton": "Ausloggen",
|
||||
"HelpCenter": "Hilfe-Center"
|
||||
}
|
||||
}
|
@ -121,6 +121,7 @@
|
||||
"PasswordMinimumLength": "Ελάχιστο μήκος",
|
||||
"People": "Άτομα",
|
||||
"Phone": "Τηλέφωνο",
|
||||
"PreparationPortalTitle": "Η αποκατάσταση της πύλης βρίσκεται σε εξέλιξη",
|
||||
"Previous": "Προηγούμενο",
|
||||
"Profile": "Προφίλ",
|
||||
"ProjectsProduct": "Έργα",
|
||||
@ -172,4 +173,4 @@
|
||||
"AboutCompanyTitle": "Σχετικά με αυτό το πρόγραμμα",
|
||||
"LogoutButton": "Αποσύνδεση",
|
||||
"HelpCenter": "Κέντρο Βοήθειας"
|
||||
}
|
||||
}
|
@ -123,6 +123,7 @@
|
||||
"PasswordMinimumLength": "Minimum length",
|
||||
"People": "People",
|
||||
"Phone": "Phone",
|
||||
"PreparationPortalTitle": "Portal restoring is underway",
|
||||
"Previous": "Previous",
|
||||
"Profile": "Profile",
|
||||
"ProjectsProduct": "Projects",
|
||||
@ -176,4 +177,4 @@
|
||||
"HelpCenter": "Help center",
|
||||
"FeedbackAndSupport": "Feedback & Support",
|
||||
"VideoGuides": "Video Guides"
|
||||
}
|
||||
}
|
@ -122,6 +122,7 @@
|
||||
"PasswordMinimumLength": "Longitud mínima",
|
||||
"People": "Personas",
|
||||
"Phone": "Teléfono",
|
||||
"PreparationPortalTitle": "Restauración de portal está en progreso",
|
||||
"Previous": "Anterior",
|
||||
"Profile": "Perfil",
|
||||
"ProjectsProduct": "Proyectos",
|
||||
@ -173,4 +174,4 @@
|
||||
"AboutCompanyTitle": "Acerca del programa",
|
||||
"LogoutButton": "Salir",
|
||||
"HelpCenter": "Centro de ayuda"
|
||||
}
|
||||
}
|
@ -122,6 +122,7 @@
|
||||
"PasswordMinimumLength": "Vähimmäispituus",
|
||||
"People": "Ihmiset",
|
||||
"Phone": "Puhelin",
|
||||
"PreparationPortalTitle": "Portaalin palautus on käynnissä.",
|
||||
"Previous": "Edellinen",
|
||||
"Profile": "Profiili",
|
||||
"ProjectsProduct": "Projektit",
|
||||
@ -173,4 +174,4 @@
|
||||
"AboutCompanyTitle": "Tietoja tästä ohjelmasta",
|
||||
"LogoutButton": "Kirjaudu ulos",
|
||||
"HelpCenter": "Ohjekeskus (englanniksi)"
|
||||
}
|
||||
}
|
@ -122,6 +122,7 @@
|
||||
"PasswordMinimumLength": "Longueur minimale",
|
||||
"People": "Personnes",
|
||||
"Phone": "Téléphone",
|
||||
"PreparationPortalTitle": "Restauration du portail est en cours.",
|
||||
"Previous": "Précédent",
|
||||
"Profile": "Profil",
|
||||
"ProjectsProduct": "Projets",
|
||||
@ -173,4 +174,4 @@
|
||||
"AboutCompanyTitle": "À propos de ce programme",
|
||||
"LogoutButton": "Déconnexion",
|
||||
"HelpCenter": "Centre d'aide"
|
||||
}
|
||||
}
|
@ -121,6 +121,7 @@
|
||||
"PasswordMinimumLength": "Նվազագույն երկարությունը",
|
||||
"People": "Մարդիկ",
|
||||
"Phone": "Հեռախոս",
|
||||
"PreparationPortalTitle": "Կայքէջի վերականգնումը ընթացքի մեջ է",
|
||||
"Previous": "Նախորդ",
|
||||
"Profile": "Պրոֆիլ",
|
||||
"ProjectsProduct": "Նախագծեր",
|
||||
@ -170,4 +171,4 @@
|
||||
"PaymentsTitle": "Վճարումներ",
|
||||
"AboutCompanyTitle": "Այս ծրագրի մասին",
|
||||
"LogoutButton": "Դուրս գալ"
|
||||
}
|
||||
}
|
@ -122,6 +122,7 @@
|
||||
"PasswordMinimumLength": "Lunghezza minima",
|
||||
"People": "Persone",
|
||||
"Phone": "Telefono",
|
||||
"PreparationPortalTitle": "Ripristino portale in corso.",
|
||||
"Previous": "Indietro",
|
||||
"Profile": "Profilo",
|
||||
"ProjectsProduct": "Progetti",
|
||||
@ -173,4 +174,4 @@
|
||||
"AboutCompanyTitle": "Informazioni sul programma",
|
||||
"LogoutButton": "Disconnetti",
|
||||
"HelpCenter": "Centro assistenza"
|
||||
}
|
||||
}
|
@ -121,6 +121,7 @@
|
||||
"PasswordMinimumLength": "最小の長さ",
|
||||
"People": "方々",
|
||||
"Phone": "電話",
|
||||
"PreparationPortalTitle": "ポータルの復元が実施中です。",
|
||||
"Previous": "前",
|
||||
"Profile": "プロフィール",
|
||||
"ProjectsProduct": "プロジェクト",
|
||||
@ -172,4 +173,4 @@
|
||||
"AboutCompanyTitle": "本プログラムについて",
|
||||
"LogoutButton": "サインアウト",
|
||||
"HelpCenter": "ヘルプセンター"
|
||||
}
|
||||
}
|
@ -121,6 +121,7 @@
|
||||
"PasswordMinimumLength": "최소 길이",
|
||||
"People": "사람들",
|
||||
"Phone": "휴대전화",
|
||||
"PreparationPortalTitle": "포털 복원이 진행 중입니다",
|
||||
"Previous": "이전",
|
||||
"Profile": "프로필",
|
||||
"ProjectsProduct": "프로젝트",
|
||||
@ -172,4 +173,4 @@
|
||||
"AboutCompanyTitle": "프로그램 소개",
|
||||
"LogoutButton": "로그아웃",
|
||||
"HelpCenter": "도움말 센터"
|
||||
}
|
||||
}
|
@ -120,6 +120,7 @@
|
||||
"PasswordMinimumLength": "ຄວາມຍາວຕໍ່າສຸດ",
|
||||
"People": "ຄົນ",
|
||||
"Phone": "ໂທລະສັບ",
|
||||
"PreparationPortalTitle": "ກໍາລັງດໍາເນີນການກູ້ຄືນພອດທັອນ",
|
||||
"Previous": "ທີ່ຜ່ານມາ",
|
||||
"Profile": "ຂໍ້ມູນສ່ວນໂຕ",
|
||||
"ProjectsProduct": "ໂຄງການ",
|
||||
@ -170,4 +171,4 @@
|
||||
"PaymentsTitle": "ການຊຳລະເງິນ",
|
||||
"AboutCompanyTitle": "ກ່ຽວກັບໂປແກລມນີ້",
|
||||
"LogoutButton": "ອອກຈາກລະບົບ"
|
||||
}
|
||||
}
|
@ -122,6 +122,7 @@
|
||||
"PasswordMinimumLength": "Minimālais garums",
|
||||
"People": "Cilvēki",
|
||||
"Phone": "Tālrunis",
|
||||
"PreparationPortalTitle": "Notiek portāla atjaunošana.",
|
||||
"Previous": "Iepriekšējais",
|
||||
"Profile": "Profils",
|
||||
"ProjectsProduct": "Projekti",
|
||||
@ -173,4 +174,4 @@
|
||||
"AboutCompanyTitle": "Par šo programmu",
|
||||
"LogoutButton": "Izrakstīties",
|
||||
"HelpCenter": "Palīdzības centrs"
|
||||
}
|
||||
}
|
@ -122,6 +122,7 @@
|
||||
"PasswordMinimumLength": "Minimum lengte",
|
||||
"People": "Mensen",
|
||||
"Phone": "Telefoon",
|
||||
"PreparationPortalTitle": "Portaal herstel is bezig.",
|
||||
"Previous": "Vorige",
|
||||
"Profile": "Profiel",
|
||||
"ProjectsProduct": "Projecten",
|
||||
@ -173,4 +174,4 @@
|
||||
"AboutCompanyTitle": "Over dit programma",
|
||||
"LogoutButton": "Uitloggen",
|
||||
"HelpCenter": "Help en ondersteuning"
|
||||
}
|
||||
}
|
@ -122,6 +122,7 @@
|
||||
"PasswordMinimumLength": "Minimalna długość",
|
||||
"People": "Ludzie",
|
||||
"Phone": "Telefon",
|
||||
"PreparationPortalTitle": "Odtwarzanie portalu jest w toku.",
|
||||
"Previous": "Poprzednia",
|
||||
"Profile": "Profil",
|
||||
"ProjectsProduct": "Projekty",
|
||||
@ -173,4 +174,4 @@
|
||||
"AboutCompanyTitle": "O tym programie",
|
||||
"LogoutButton": "Wyloguj",
|
||||
"HelpCenter": "Centrum pomocy"
|
||||
}
|
||||
}
|
@ -122,6 +122,7 @@
|
||||
"PasswordMinimumLength": "Comprimento mínimo",
|
||||
"People": "Pessoas",
|
||||
"Phone": "Telefone",
|
||||
"PreparationPortalTitle": "Restauração do portal está em andamento.",
|
||||
"Previous": "Anterior",
|
||||
"Profile": "Perfil",
|
||||
"ProjectsProduct": "Projetos",
|
||||
@ -173,4 +174,4 @@
|
||||
"AboutCompanyTitle": "Sobre este programa",
|
||||
"LogoutButton": "Sair",
|
||||
"HelpCenter": "Central de Ajuda"
|
||||
}
|
||||
}
|
@ -121,6 +121,7 @@
|
||||
"PasswordMinimumLength": "Comprimento mínimo",
|
||||
"People": "Pessoas",
|
||||
"Phone": "Telemóvel",
|
||||
"PreparationPortalTitle": "A restauração do Portal está em curso",
|
||||
"Previous": "Anterior",
|
||||
"Profile": "Perfil",
|
||||
"ProjectsProduct": "Projetos",
|
||||
@ -172,4 +173,4 @@
|
||||
"AboutCompanyTitle": "Sobre este programa",
|
||||
"LogoutButton": "Terminar Sessão",
|
||||
"HelpCenter": "Help Center"
|
||||
}
|
||||
}
|
@ -121,6 +121,7 @@
|
||||
"PasswordMinimumLength": "Lungimea minimă",
|
||||
"People": "Persoane",
|
||||
"Phone": "Telefon",
|
||||
"PreparationPortalTitle": "Restaurarea portalului este în curs de desfășurare",
|
||||
"Previous": "Anterior",
|
||||
"Profile": "Profil",
|
||||
"ProjectsProduct": "Proiecte",
|
||||
@ -171,4 +172,4 @@
|
||||
"PaymentsTitle": "Plăți",
|
||||
"AboutCompanyTitle": "Despre aplicația",
|
||||
"LogoutButton": "Deconectare"
|
||||
}
|
||||
}
|
@ -122,6 +122,7 @@
|
||||
"PasswordMinimumLength": "Минимальная длина",
|
||||
"People": "Люди",
|
||||
"Phone": "Телефон",
|
||||
"PreparationPortalTitle": "Выполняется восстановление портала",
|
||||
"Previous": "Предыдущая",
|
||||
"Profile": "Профиль",
|
||||
"ProjectsProduct": "Проекты",
|
||||
@ -173,4 +174,4 @@
|
||||
"AboutCompanyTitle": "О программе",
|
||||
"LogoutButton": "Выйти",
|
||||
"HelpCenter": "Справочный центр"
|
||||
}
|
||||
}
|
@ -122,6 +122,7 @@
|
||||
"PasswordMinimumLength": "Minimálna dĺžka",
|
||||
"People": "Ľudia",
|
||||
"Phone": "Telefón",
|
||||
"PreparationPortalTitle": "Prebieha obnova portálu.",
|
||||
"Previous": "Predchádzajúci",
|
||||
"Profile": "Profil",
|
||||
"ProjectsProduct": "Projekty",
|
||||
@ -173,4 +174,4 @@
|
||||
"AboutCompanyTitle": "O programe",
|
||||
"LogoutButton": "Odhlásiť Sa",
|
||||
"HelpCenter": "Centrum pomoci"
|
||||
}
|
||||
}
|
@ -122,6 +122,7 @@
|
||||
"PasswordMinimumLength": "Minimalna dolžina",
|
||||
"People": "Ljudje",
|
||||
"Phone": "Telefon",
|
||||
"PreparationPortalTitle": "Obnavljanje portala je v teku",
|
||||
"Previous": "Prejšnji",
|
||||
"Profile": "Profil",
|
||||
"ProjectsProduct": "Projekti",
|
||||
@ -173,4 +174,4 @@
|
||||
"AboutCompanyTitle": "O tem programu",
|
||||
"LogoutButton": "Odjava",
|
||||
"HelpCenter": "Center pomoči"
|
||||
}
|
||||
}
|
@ -122,6 +122,7 @@
|
||||
"PasswordMinimumLength": "Minimum uzunluk",
|
||||
"People": "Kişiler",
|
||||
"Phone": "Telefon",
|
||||
"PreparationPortalTitle": "Portal geri yükleme yapılıyor.",
|
||||
"Previous": "Önceki",
|
||||
"Profile": "Profil",
|
||||
"ProjectsProduct": "Projeler",
|
||||
@ -173,4 +174,4 @@
|
||||
"AboutCompanyTitle": "Bu program hakkında",
|
||||
"LogoutButton": "Çıkış",
|
||||
"HelpCenter": "Yardım Merkezi"
|
||||
}
|
||||
}
|
@ -122,6 +122,7 @@
|
||||
"PasswordMinimumLength": "Мінімальна довжина",
|
||||
"People": "Люди",
|
||||
"Phone": "Телефон",
|
||||
"PreparationPortalTitle": "Портал відновлюється.",
|
||||
"Previous": "Назад",
|
||||
"Profile": "Профіль",
|
||||
"ProjectsProduct": "Проекти",
|
||||
@ -173,4 +174,4 @@
|
||||
"AboutCompanyTitle": "Про цю програму",
|
||||
"LogoutButton": "Вихід",
|
||||
"HelpCenter": "Центр довідки"
|
||||
}
|
||||
}
|
@ -122,6 +122,7 @@
|
||||
"PasswordMinimumLength": "Chiều dài tối thiểu",
|
||||
"People": "Người",
|
||||
"Phone": "Điện thoại",
|
||||
"PreparationPortalTitle": "Đang tiến hành khôi phục cổng.",
|
||||
"Previous": "Trước",
|
||||
"Profile": "Hồ sơ",
|
||||
"ProjectsProduct": "Dự án",
|
||||
@ -173,4 +174,4 @@
|
||||
"AboutCompanyTitle": "Giới thiệu về chương trình này",
|
||||
"LogoutButton": "Đăng xuất",
|
||||
"HelpCenter": "Trung tâm Hỗ trợ"
|
||||
}
|
||||
}
|
@ -122,6 +122,7 @@
|
||||
"PasswordMinimumLength": "最小长度",
|
||||
"People": "人脉",
|
||||
"Phone": "电话",
|
||||
"PreparationPortalTitle": "门户恢复正在进行中。",
|
||||
"Previous": "上一个",
|
||||
"Profile": "档案",
|
||||
"ProjectsProduct": "项目",
|
||||
@ -173,4 +174,4 @@
|
||||
"AboutCompanyTitle": "关于本计划",
|
||||
"LogoutButton": "登出",
|
||||
"HelpCenter": "帮助中心"
|
||||
}
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "Portalın bərpası",
|
||||
"PreparationPortalDescription": "Bərpa prosesi başa çatdıqdan sonra siz avtomatik olaraq portalınıza yönləndiriləcəksiniz.",
|
||||
"PreparationPortalTitle": "Portalın bərpası davam edir"
|
||||
}
|
||||
"PreparationPortalDescription": "Bərpa prosesi başa çatdıqdan sonra siz avtomatik olaraq portalınıza yönləndiriləcəksiniz."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "Възстановяване на портала",
|
||||
"PreparationPortalDescription": "След като процесът на възстановяване приключи, ще бъдете автоматично пренасочени към портала си.",
|
||||
"PreparationPortalTitle": "Възстановяването на портала е в ход."
|
||||
}
|
||||
"PreparationPortalDescription": "След като процесът на възстановяване приключи, ще бъдете автоматично пренасочени към портала си."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "Obnovení portálu",
|
||||
"PreparationPortalDescription": "Po ukončení procesu obnovy, budete automaticky přesměrováni na Váš portál.",
|
||||
"PreparationPortalTitle": "Probíhá obnova portálu"
|
||||
}
|
||||
"PreparationPortalDescription": "Po ukončení procesu obnovy, budete automaticky přesměrováni na Váš portál."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "Wiederherstellung des Portals",
|
||||
"PreparationPortalDescription": "Nach Abschluss des Wiederherstellungsprozesses werden Sie automatisch an Ihr Portal umgeleitet.",
|
||||
"PreparationPortalTitle": "Wiederherstellung des Portals ist im Gange"
|
||||
}
|
||||
"PreparationPortalDescription": "Nach Abschluss des Wiederherstellungsprozesses werden Sie automatisch an Ihr Portal umgeleitet."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "Επαναφορά πύλης",
|
||||
"PreparationPortalDescription": "Μόλις ολοκληρωθεί η διαδικασία επαναφοράς, θα μεταφερθείτε αυτόματα στην πύλη σας.",
|
||||
"PreparationPortalTitle": "Η αποκατάσταση της πύλης βρίσκεται σε εξέλιξη"
|
||||
}
|
||||
"PreparationPortalDescription": "Μόλις ολοκληρωθεί η διαδικασία επαναφοράς, θα μεταφερθείτε αυτόματα στην πύλη σας."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "Portal restoring",
|
||||
"PreparationPortalDescription": "Once the restore process is over, you'll be automatically redirected to your portal.",
|
||||
"PreparationPortalTitle": "Portal restoring is underway"
|
||||
}
|
||||
"PreparationPortalDescription": "Once the restore process is over, you'll be automatically redirected to your portal."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "Restauración de portal",
|
||||
"PreparationPortalDescription": "Una vez terminado el proceso de restauración, usted será redirigido a su portal.",
|
||||
"PreparationPortalTitle": "Restauración de portal está en progreso"
|
||||
}
|
||||
"PreparationPortalDescription": "Una vez terminado el proceso de restauración, usted será redirigido a su portal."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "Portaalin palauttaminen",
|
||||
"PreparationPortalDescription": "Siinä vaiheessa kun palautuksen prosessi on ohi, sinut siirretään automaattisesti portaaliisi.",
|
||||
"PreparationPortalTitle": "Portaalin palautus on käynnissä."
|
||||
}
|
||||
"PreparationPortalDescription": "Siinä vaiheessa kun palautuksen prosessi on ohi, sinut siirretään automaattisesti portaaliisi."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "Restauration du portail",
|
||||
"PreparationPortalDescription": "Une fois le processus de restauration est terminé, vous serez automatiquement redirigé vers votre portail.",
|
||||
"PreparationPortalTitle": "Restauration du portail est en cours."
|
||||
}
|
||||
"PreparationPortalDescription": "Une fois le processus de restauration est terminé, vous serez automatiquement redirigé vers votre portail."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "Կայքէջի վերականգնում",
|
||||
"PreparationPortalDescription": "Վերականգնման գործընթացն ավարտվելուց հետո Դուք ավտոմատ կերպով կվերահղվեք Ձեր կայքէջ:",
|
||||
"PreparationPortalTitle": "Կայքէջի վերականգնումը ընթացքի մեջ է"
|
||||
}
|
||||
"PreparationPortalDescription": "Վերականգնման գործընթացն ավարտվելուց հետո Դուք ավտոմատ կերպով կվերահղվեք Ձեր կայքէջ:"
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "Ripristino portale",
|
||||
"PreparationPortalDescription": "Una volta completato il ripristino, sarai automaticamente reindirizzato al tuo portale.",
|
||||
"PreparationPortalTitle": "Ripristino portale in corso."
|
||||
}
|
||||
"PreparationPortalDescription": "Una volta completato il ripristino, sarai automaticamente reindirizzato al tuo portale."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "ポータルがリストア中",
|
||||
"PreparationPortalDescription": "復元過程が完了されると、自動的にポータルに移動されるようになります。",
|
||||
"PreparationPortalTitle": "ポータルの復元が実施中です。"
|
||||
}
|
||||
"PreparationPortalDescription": "復元過程が完了されると、自動的にポータルに移動されるようになります。"
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "포털 복원 중",
|
||||
"PreparationPortalDescription": "복원 과정이 끝나면 포털로 자동으로 리디렉션됩니다.",
|
||||
"PreparationPortalTitle": "포털 복원이 진행 중입니다"
|
||||
}
|
||||
"PreparationPortalDescription": "복원 과정이 끝나면 포털로 자동으로 리디렉션됩니다."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "ການກູ້ຄືນພອດທັອນ",
|
||||
"PreparationPortalDescription": "ເມື່ອຂະບວນການກູ້ຄືນສິ້ນສຸດລົງ, ທ່ານຈະຖືກໂອນໄປຫາພອດທັອນຂອງທ່ານໂດຍອັດຕະໂນມັດ.",
|
||||
"PreparationPortalTitle": "ກໍາລັງດໍາເນີນການກູ້ຄືນພອດທັອນ"
|
||||
}
|
||||
"PreparationPortalDescription": "ເມື່ອຂະບວນການກູ້ຄືນສິ້ນສຸດລົງ, ທ່ານຈະຖືກໂອນໄປຫາພອດທັອນຂອງທ່ານໂດຍອັດຕະໂນມັດ."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "Portāla atjaunošana",
|
||||
"PreparationPortalDescription": "Kad atjaunošanas process būs pabeigts, jūs automātiski pārsūtīs uz jūsu portālu.",
|
||||
"PreparationPortalTitle": "Notiek portāla atjaunošana."
|
||||
}
|
||||
"PreparationPortalDescription": "Kad atjaunošanas process būs pabeigts, jūs automātiski pārsūtīs uz jūsu portālu."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "Portaal herstellen",
|
||||
"PreparationPortalDescription": "Zodra het herstelproces voorbij is, wordt u automatisch doorgestuurd naar uw portaal.",
|
||||
"PreparationPortalTitle": "Portaal herstel is bezig."
|
||||
}
|
||||
"PreparationPortalDescription": "Zodra het herstelproces voorbij is, wordt u automatisch doorgestuurd naar uw portaal."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "Odzyskiwanie portalu",
|
||||
"PreparationPortalDescription": "Po zakończeniu procesu przywracania zostanie automatycznie przekierowany do portalu.",
|
||||
"PreparationPortalTitle": "Odtwarzanie portalu jest w toku."
|
||||
}
|
||||
"PreparationPortalDescription": "Po zakończeniu procesu przywracania zostanie automatycznie przekierowany do portalu."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "Restauração de portais",
|
||||
"PreparationPortalDescription": "Assim que o processo de restauração for concluído, você será automaticamente redirecionado para seu portal.",
|
||||
"PreparationPortalTitle": "Restauração do portal está em andamento."
|
||||
}
|
||||
"PreparationPortalDescription": "Assim que o processo de restauração for concluído, você será automaticamente redirecionado para seu portal."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "Portal em Restauração",
|
||||
"PreparationPortalDescription": "Uma vez que o processo de restauração tenha terminado, será automaticamente redirecionado para o seu portal.",
|
||||
"PreparationPortalTitle": "A restauração do Portal está em curso"
|
||||
}
|
||||
"PreparationPortalDescription": "Uma vez que o processo de restauração tenha terminado, será automaticamente redirecionado para o seu portal."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "Restaurarea portalului",
|
||||
"PreparationPortalDescription": "După finalizarea procesului de restaurare, veți fi redirecționat automat către portalul dvs.",
|
||||
"PreparationPortalTitle": "Restaurarea portalului este în curs de desfășurare"
|
||||
}
|
||||
"PreparationPortalDescription": "După finalizarea procesului de restaurare, veți fi redirecționat automat către portalul dvs."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "Восстановление портала",
|
||||
"PreparationPortalDescription": "Когда восстановление завершится, Вы будете автоматически перенаправлены на ваш портал.",
|
||||
"PreparationPortalTitle": "Выполняется восстановление портала"
|
||||
}
|
||||
"PreparationPortalDescription": "Когда восстановление завершится, Вы будете автоматически перенаправлены на ваш портал."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "Obnovenie portálu",
|
||||
"PreparationPortalDescription": "Po dokončení procesu obnovenia budete automaticky presmerovaný na Váš portál.",
|
||||
"PreparationPortalTitle": "Prebieha obnova portálu."
|
||||
}
|
||||
"PreparationPortalDescription": "Po dokončení procesu obnovenia budete automaticky presmerovaný na Váš portál."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "Obnavljanje portala",
|
||||
"PreparationPortalDescription": "Ko bo postopek obnavljanja končan, boste samodejno preusmerjeni na svoj portal.",
|
||||
"PreparationPortalTitle": "Obnavljanje portala je v teku"
|
||||
}
|
||||
"PreparationPortalDescription": "Ko bo postopek obnavljanja končan, boste samodejno preusmerjeni na svoj portal."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "Portal geri yükleme",
|
||||
"PreparationPortalDescription": "Geri yükleme süreci tamamlandığında, otomatik olarak portalınıza yönlendirileceksiniz.",
|
||||
"PreparationPortalTitle": "Portal geri yükleme yapılıyor."
|
||||
}
|
||||
"PreparationPortalDescription": "Geri yükleme süreci tamamlandığında, otomatik olarak portalınıza yönlendirileceksiniz."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "Відновлення порталу",
|
||||
"PreparationPortalDescription": "Після завершення процесу відновлення ви автоматично перейдете на ваш портал.",
|
||||
"PreparationPortalTitle": "Портал відновлюється."
|
||||
}
|
||||
"PreparationPortalDescription": "Після завершення процесу відновлення ви автоматично перейдете на ваш портал."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "Đang khôi phục cổng thông tin",
|
||||
"PreparationPortalDescription": "Khi quá trình khôi phục kết thúc, bạn sẽ tự động được chuyển hướng đến cổng thông tin của bạn.",
|
||||
"PreparationPortalTitle": "Đang tiến hành khôi phục cổng."
|
||||
}
|
||||
"PreparationPortalDescription": "Khi quá trình khôi phục kết thúc, bạn sẽ tự động được chuyển hướng đến cổng thông tin của bạn."
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
{
|
||||
"PortalRestoring": "门户恢复",
|
||||
"PreparationPortalDescription": "一旦恢复过程结束,您将自动重定向到您的门户。",
|
||||
"PreparationPortalTitle": "门户恢复正在进行中。"
|
||||
}
|
||||
"PreparationPortalDescription": "一旦恢复过程结束,您将自动重定向到您的门户。"
|
||||
}
|
@ -190,7 +190,7 @@ class PreparationPortal extends React.Component {
|
||||
return (
|
||||
<StyledPreparationPortal>
|
||||
<ErrorContainer
|
||||
headerText={withoutHeader ? "" : t("PreparationPortalTitle")}
|
||||
headerText={withoutHeader ? "" : t("Common:PreparationPortalTitle")}
|
||||
style={style}
|
||||
>
|
||||
<StyledBodyPreparationPortal
|
||||
@ -236,7 +236,9 @@ const PreparationPortalWrapper = inject(({ backup }) => {
|
||||
return {
|
||||
multiplicationFactor,
|
||||
};
|
||||
})(withTranslation("PreparationPortal")(observer(PreparationPortal)));
|
||||
})(
|
||||
withTranslation(["PreparationPortal", "Common"])(observer(PreparationPortal))
|
||||
);
|
||||
|
||||
PreparationPortal.propTypes = {
|
||||
withoutHeader: PropTypes.bool,
|
||||
|
@ -32,7 +32,8 @@ const App = ({ initialLanguage, initialI18nStoreASC, ...rest }) => {
|
||||
|
||||
useEffect(() => {
|
||||
const tempElm = document.getElementById("loader");
|
||||
if (tempElm && !rest.error && !rest.needLoader && rest.docApiUrl) {
|
||||
|
||||
if (tempElm && !rest.error && !rest.needLoader && rest?.config?.editorUrl) {
|
||||
tempElm.outerHTML = "";
|
||||
}
|
||||
|
||||
@ -42,7 +43,6 @@ const App = ({ initialLanguage, initialI18nStoreASC, ...rest }) => {
|
||||
}, []);
|
||||
|
||||
const onError = () => {
|
||||
console.log("Error");
|
||||
window.open(
|
||||
combineUrl(
|
||||
AppServerConfig.proxyURL,
|
||||
|
@ -1,8 +1,4 @@
|
||||
import React from "react";
|
||||
// import AppLoader from "@appserver/common/components/AppLoader";
|
||||
// import ErrorBoundary from "@appserver/common/components/ErrorBoundary";
|
||||
// import Error520 from "studio/Error520";
|
||||
// import Error404 from "studio/Error404";
|
||||
|
||||
export function loadComponent(scope, module) {
|
||||
return async () => {
|
||||
|
@ -14,11 +14,12 @@ import {
|
||||
getEditHistory,
|
||||
updateFile,
|
||||
checkFillFormDraft,
|
||||
convertFile,
|
||||
} from "@appserver/common/api/files";
|
||||
import { EditorWrapper } from "../components/StyledEditor";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import withDialogs from "../helpers/withDialogs";
|
||||
import { canConvert, convertDocumentUrl } from "../helpers/utils";
|
||||
import { canConvert } from "../helpers/utils";
|
||||
import { assign } from "@appserver/common/utils";
|
||||
|
||||
toast.configure();
|
||||
@ -73,20 +74,15 @@ function Editor({
|
||||
onSDKRequestCompareFile,
|
||||
selectFolderDialog,
|
||||
onSDKRequestSaveAs,
|
||||
isFileDialogVisible,
|
||||
isFolderDialogVisible,
|
||||
isDesktopEditor,
|
||||
initDesktop,
|
||||
view,
|
||||
preparationPortalDialog,
|
||||
mfReady,
|
||||
...rest
|
||||
fileId,
|
||||
url,
|
||||
filesSettings,
|
||||
}) {
|
||||
const [fileInfo, setFileInfo] = useState(rest.fileInfo);
|
||||
const [url, setUrl] = useState(rest.url);
|
||||
const [fileId, setFileId] = useState(rest.fileId);
|
||||
const [version, setVersion] = useState(rest.version);
|
||||
|
||||
const fileInfo = config?.file;
|
||||
const { t } = useTranslation(["Editor", "Common"]);
|
||||
|
||||
useEffect(() => {
|
||||
@ -147,7 +143,7 @@ function Editor({
|
||||
url.indexOf("#message/") > -1 &&
|
||||
fileInfo &&
|
||||
fileInfo?.fileExst &&
|
||||
canConvert(fileInfo.fileExst)
|
||||
canConvert(fileInfo.fileExst, filesSettings)
|
||||
) {
|
||||
showDocEditorMessage(url);
|
||||
}
|
||||
@ -163,6 +159,11 @@ function Editor({
|
||||
document.location.reload();
|
||||
};
|
||||
|
||||
const convertDocumentUrl = async () => {
|
||||
const convert = await convertFile(fileId, null, true);
|
||||
return convert && convert[0]?.result;
|
||||
};
|
||||
|
||||
const showDocEditorMessage = async (url) => {
|
||||
const result = await convertDocumentUrl();
|
||||
const splitUrl = url.split("#message/");
|
||||
@ -171,11 +172,6 @@ function Editor({
|
||||
const newUrl = `${result.webUrl}#message/${splitUrl[1]}`;
|
||||
|
||||
history.pushState({}, null, newUrl);
|
||||
|
||||
setFileInfo(result);
|
||||
setUrl(newUrl);
|
||||
setFileId(fileId);
|
||||
setVersion(version);
|
||||
}
|
||||
};
|
||||
|
||||
@ -207,7 +203,7 @@ function Editor({
|
||||
if (index) {
|
||||
let convertUrl = url.substring(0, index);
|
||||
|
||||
if (canConvert(fileInfo.fileExst)) {
|
||||
if (canConvert(fileInfo.fileExst, filesSettings)) {
|
||||
const newUrl = await convertDocumentUrl();
|
||||
if (newUrl) {
|
||||
convertUrl = newUrl.webUrl;
|
||||
@ -412,7 +408,7 @@ function Editor({
|
||||
|
||||
docSaved = !event.data;
|
||||
throttledChangeTitle();
|
||||
}; //+++
|
||||
};
|
||||
|
||||
const onSDKAppReady = () => {
|
||||
console.log("ONLYOFFICE Document Editor is ready");
|
||||
@ -567,7 +563,6 @@ function Editor({
|
||||
{sharingDialog}
|
||||
{selectFileDialog}
|
||||
{selectFolderDialog}
|
||||
{preparationPortalDialog}
|
||||
<Toast />
|
||||
</EditorWrapper>
|
||||
);
|
||||
|
37
web/ASC.Web.Editor/src/client/components/SelectFileDialog.js
Normal file
37
web/ASC.Web.Editor/src/client/components/SelectFileDialog.js
Normal file
@ -0,0 +1,37 @@
|
||||
import React from "react";
|
||||
import DynamicComponent from "./DynamicComponent";
|
||||
import { FILES_REMOTE_ENTRY_URL, FILES_SCOPE } from "../helpers/constants";
|
||||
|
||||
const SelectFileDialog = ({
|
||||
isVisible,
|
||||
mfReady,
|
||||
onCloseFileDialog,
|
||||
onSelectFile,
|
||||
filesListTitle,
|
||||
settings,
|
||||
successAuth,
|
||||
...rest
|
||||
}) => {
|
||||
return (
|
||||
(mfReady && isVisible && successAuth && (
|
||||
<DynamicComponent
|
||||
{...rest}
|
||||
system={{
|
||||
scope: FILES_SCOPE,
|
||||
url: FILES_REMOTE_ENTRY_URL,
|
||||
module: "./SelectFileDialog",
|
||||
}}
|
||||
resetTreeFolders
|
||||
foldersType="exceptPrivacyTrashFolders"
|
||||
isPanelVisible={isVisible}
|
||||
onClose={onCloseFileDialog}
|
||||
onSelectFile={onSelectFile}
|
||||
filesListTitle={filesListTitle}
|
||||
settings={settings}
|
||||
/>
|
||||
)) ||
|
||||
null
|
||||
);
|
||||
};
|
||||
|
||||
export default SelectFileDialog;
|
@ -0,0 +1,68 @@
|
||||
import React from "react";
|
||||
import DynamicComponent from "./DynamicComponent";
|
||||
import { FILES_REMOTE_ENTRY_URL, FILES_SCOPE } from "../helpers/constants";
|
||||
import Text from "@appserver/components/text";
|
||||
import TextInput from "@appserver/components/text-input";
|
||||
import Checkbox from "@appserver/components/checkbox";
|
||||
import { StyledSelectFolder } from "../components/StyledEditor";
|
||||
import { useTranslation } from "react-i18next";
|
||||
const SelectFolderDialog = ({
|
||||
successAuth,
|
||||
folderId,
|
||||
isVisible,
|
||||
onCloseFolderDialog,
|
||||
onClickSaveSelectFolder,
|
||||
titleSelectorFolder,
|
||||
onChangeInput,
|
||||
extension,
|
||||
onClickCheckbox,
|
||||
mfReady,
|
||||
openNewTab,
|
||||
}) => {
|
||||
const { t } = useTranslation(["Editor", "Common"]);
|
||||
|
||||
return (
|
||||
(mfReady && isVisible && successAuth && (
|
||||
<DynamicComponent
|
||||
system={{
|
||||
scope: FILES_SCOPE,
|
||||
url: FILES_REMOTE_ENTRY_URL,
|
||||
module: "./SelectFolderDialog",
|
||||
}}
|
||||
needProxy
|
||||
folderId={folderId}
|
||||
isPanelVisible={isVisible}
|
||||
onClose={onCloseFolderDialog}
|
||||
foldersType="exceptSortedByTags"
|
||||
onSave={onClickSaveSelectFolder}
|
||||
isDisableButton={!titleSelectorFolder.trim()}
|
||||
header={
|
||||
<StyledSelectFolder>
|
||||
<Text className="editor-select-folder_text">{t("FileName")}</Text>
|
||||
<TextInput
|
||||
className="editor-select-folder_text-input"
|
||||
scale
|
||||
onChange={onChangeInput}
|
||||
value={titleSelectorFolder}
|
||||
/>
|
||||
</StyledSelectFolder>
|
||||
}
|
||||
{...(extension !== "fb2" && {
|
||||
footer: (
|
||||
<StyledSelectFolder>
|
||||
<Checkbox
|
||||
className="editor-select-folder_checkbox"
|
||||
label={t("OpenSavedDocument")}
|
||||
onChange={onClickCheckbox}
|
||||
isChecked={openNewTab}
|
||||
/>
|
||||
</StyledSelectFolder>
|
||||
),
|
||||
})}
|
||||
/>
|
||||
)) ||
|
||||
null
|
||||
);
|
||||
};
|
||||
|
||||
export default SelectFolderDialog;
|
34
web/ASC.Web.Editor/src/client/components/SharingDialog.js
Normal file
34
web/ASC.Web.Editor/src/client/components/SharingDialog.js
Normal file
@ -0,0 +1,34 @@
|
||||
import React from "react";
|
||||
import DynamicComponent from "./DynamicComponent";
|
||||
import { FILES_REMOTE_ENTRY_URL, FILES_SCOPE } from "../helpers/constants";
|
||||
|
||||
const SharingDialog = ({
|
||||
isVisible,
|
||||
fileInfo,
|
||||
onCancel,
|
||||
loadUsersRightsList,
|
||||
filesSettings,
|
||||
mfReady,
|
||||
}) => {
|
||||
return (
|
||||
(mfReady && isVisible && (
|
||||
<DynamicComponent
|
||||
className="dynamic-sharing-dialog"
|
||||
system={{
|
||||
scope: FILES_SCOPE,
|
||||
url: FILES_REMOTE_ENTRY_URL,
|
||||
module: "./SharingDialog",
|
||||
name: "SharingDialog",
|
||||
}}
|
||||
isVisible={isVisible}
|
||||
sharingObject={fileInfo}
|
||||
onCancel={onCancel}
|
||||
onSuccess={loadUsersRightsList}
|
||||
settings={filesSettings}
|
||||
/>
|
||||
)) ||
|
||||
null
|
||||
);
|
||||
};
|
||||
|
||||
export default SharingDialog;
|
@ -1,4 +1,3 @@
|
||||
import { convertFile } from "@appserver/common/api/files";
|
||||
import pkg from "../../../package.json";
|
||||
|
||||
export const canConvert = (extension, filesSettings) => {
|
||||
@ -7,11 +6,6 @@ export const canConvert = (extension, filesSettings) => {
|
||||
return result === -1 ? false : true;
|
||||
};
|
||||
|
||||
export const convertDocumentUrl = async () => {
|
||||
const convert = await convertFile(fileId, null, true);
|
||||
return convert && convert[0]?.result;
|
||||
};
|
||||
|
||||
export const initI18n = (initialI18nStoreASC) => {
|
||||
if (!initialI18nStoreASC || window.i18n) return;
|
||||
|
||||
|
@ -1,17 +1,9 @@
|
||||
import React, { useState, useEffect } from "react";
|
||||
import DynamicComponent from "../components/DynamicComponent";
|
||||
import { getPresignedUri } from "@appserver/common/api/files";
|
||||
import {
|
||||
FILES_REMOTE_ENTRY_URL,
|
||||
FILES_SCOPE,
|
||||
STUDIO_SCOPE,
|
||||
STUDIO_REMOTE_ENTRY_URL,
|
||||
} from "./constants";
|
||||
import Text from "@appserver/components/text";
|
||||
import TextInput from "@appserver/components/text-input";
|
||||
import Checkbox from "@appserver/components/checkbox";
|
||||
import { StyledSelectFolder } from "../components/StyledEditor";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import SharingDialog from "../components/SharingDialog";
|
||||
import SelectFileDialog from "../components/SelectFileDialog";
|
||||
import SelectFolderDialog from "../components/SelectFolderDialog";
|
||||
|
||||
const insertImageAction = "imageFileType";
|
||||
const mailMergeAction = "mailMergeFileType";
|
||||
@ -28,14 +20,11 @@ const withDialogs = (WrappedComponent) => {
|
||||
const [urlSelectorFolder, setUrlSelectorFolder] = useState("");
|
||||
const [extension, setExtension] = useState();
|
||||
const [openNewTab, setNewOpenTab] = useState(false);
|
||||
const [
|
||||
preparationPortalDialogVisible,
|
||||
setPreparationPortalDialogVisible,
|
||||
] = useState(false);
|
||||
|
||||
const { t } = useTranslation(["Editor", "Common"]);
|
||||
|
||||
const { fileInfo, fileId, mfReady } = props;
|
||||
const { config, fileId, mfReady, sharingSettings } = props;
|
||||
const fileInfo = config?.file;
|
||||
|
||||
useEffect(() => {
|
||||
if (window.authStore) {
|
||||
@ -52,7 +41,8 @@ const withDialogs = (WrappedComponent) => {
|
||||
data: "backup-restore",
|
||||
});
|
||||
socketHelper.on("restore-backup", () => {
|
||||
setPreparationPortalDialogVisible(true);
|
||||
const message = t("Common:PreparationPortalTitle");
|
||||
window.docEditor.showMessage(message);
|
||||
});
|
||||
};
|
||||
|
||||
@ -65,7 +55,7 @@ const withDialogs = (WrappedComponent) => {
|
||||
};
|
||||
|
||||
const loadUsersRightsList = () => {
|
||||
window.SharingDialog.getSharingSettings(fileId).then(
|
||||
window.SharingDialog.convertSharingUsers(sharingSettings).then(
|
||||
(sharingSettings) => {
|
||||
window.docEditor.setSharingSettings({
|
||||
sharingSettings,
|
||||
@ -202,7 +192,7 @@ const withDialogs = (WrappedComponent) => {
|
||||
|
||||
if (savingInfo) {
|
||||
const convertedInfo = savingInfo.split(": ").pop();
|
||||
docEditor.showMessage(convertedInfo);
|
||||
window.docEditor.showMessage(convertedInfo);
|
||||
}
|
||||
};
|
||||
|
||||
@ -234,89 +224,42 @@ const withDialogs = (WrappedComponent) => {
|
||||
setTitleSelectorFolder(e.target.value);
|
||||
};
|
||||
|
||||
const sharingDialog = mfReady && (
|
||||
<DynamicComponent
|
||||
className="dynamic-sharing-dialog"
|
||||
system={{
|
||||
scope: FILES_SCOPE,
|
||||
url: FILES_REMOTE_ENTRY_URL,
|
||||
module: "./SharingDialog",
|
||||
name: "SharingDialog",
|
||||
}}
|
||||
const sharingDialog = (
|
||||
<SharingDialog
|
||||
mfReady={mfReady}
|
||||
isVisible={isVisible}
|
||||
sharingObject={fileInfo}
|
||||
fileInfo={fileInfo}
|
||||
onCancel={onCancel}
|
||||
onSuccess={loadUsersRightsList}
|
||||
settings={props.filesSettings}
|
||||
loadUsersRightsList={loadUsersRightsList}
|
||||
filesSettings={props.filesSettings}
|
||||
/>
|
||||
);
|
||||
|
||||
const selectFileDialog = mfReady && props.successAuth && (
|
||||
<DynamicComponent
|
||||
system={{
|
||||
scope: FILES_SCOPE,
|
||||
url: FILES_REMOTE_ENTRY_URL,
|
||||
module: "./SelectFileDialog",
|
||||
}}
|
||||
resetTreeFolders
|
||||
foldersType="exceptPrivacyTrashFolders"
|
||||
isPanelVisible={isFileDialogVisible}
|
||||
const selectFileDialog = (
|
||||
<SelectFileDialog
|
||||
isVisible={isFileDialogVisible}
|
||||
onSelectFile={onSelectFile}
|
||||
onClose={onCloseFileDialog}
|
||||
onCloseFileDialog={onCloseFileDialog}
|
||||
{...fileTypeDetection()}
|
||||
filesListTitle={selectFilesListTitle()}
|
||||
settings={props.filesSettings}
|
||||
mfReady={mfReady}
|
||||
successAuth={props.successAuth}
|
||||
/>
|
||||
);
|
||||
|
||||
const selectFolderDialog = mfReady && props.successAuth && (
|
||||
<DynamicComponent
|
||||
system={{
|
||||
scope: FILES_SCOPE,
|
||||
url: FILES_REMOTE_ENTRY_URL,
|
||||
module: "./SelectFolderDialog",
|
||||
}}
|
||||
needProxy
|
||||
const selectFolderDialog = (
|
||||
<SelectFolderDialog
|
||||
successAuth={props.successAuth}
|
||||
folderId={fileInfo?.folderId}
|
||||
isPanelVisible={isFolderDialogVisible}
|
||||
onClose={onCloseFolderDialog}
|
||||
foldersType="exceptSortedByTags"
|
||||
onSave={onClickSaveSelectFolder}
|
||||
isDisableButton={!titleSelectorFolder.trim()}
|
||||
header={
|
||||
<StyledSelectFolder>
|
||||
<Text className="editor-select-folder_text">{t("FileName")}</Text>
|
||||
<TextInput
|
||||
className="editor-select-folder_text-input"
|
||||
scale
|
||||
onChange={onChangeInput}
|
||||
value={titleSelectorFolder}
|
||||
/>
|
||||
</StyledSelectFolder>
|
||||
}
|
||||
{...(extension !== "fb2" && {
|
||||
footer: (
|
||||
<StyledSelectFolder>
|
||||
<Checkbox
|
||||
className="editor-select-folder_checkbox"
|
||||
label={t("OpenSavedDocument")}
|
||||
onChange={onClickCheckbox}
|
||||
isChecked={openNewTab}
|
||||
/>
|
||||
</StyledSelectFolder>
|
||||
),
|
||||
})}
|
||||
/>
|
||||
);
|
||||
|
||||
const preparationPortalDialog = mfReady && (
|
||||
<DynamicComponent
|
||||
system={{
|
||||
scope: STUDIO_SCOPE,
|
||||
url: STUDIO_REMOTE_ENTRY_URL,
|
||||
module: "./PreparationPortalDialog",
|
||||
}}
|
||||
visible={preparationPortalDialogVisible}
|
||||
isVisible={isFolderDialogVisible}
|
||||
onCloseFolderDialog={onCloseFolderDialog}
|
||||
onClickSaveSelectFolder={onClickSaveSelectFolder}
|
||||
titleSelectorFolder={titleSelectorFolder}
|
||||
onChangeInput={onChangeInput}
|
||||
onClickCheckbox={onClickCheckbox}
|
||||
openNewTab={openNewTab}
|
||||
mfReady={mfReady}
|
||||
/>
|
||||
);
|
||||
|
||||
@ -335,7 +278,6 @@ const withDialogs = (WrappedComponent) => {
|
||||
selectFolderDialog={selectFolderDialog}
|
||||
onSDKRequestSaveAs={onSDKRequestSaveAs}
|
||||
isFolderDialogVisible={isFolderDialogVisible}
|
||||
preparationPortalDialog={preparationPortalDialog}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
@ -2,14 +2,17 @@ import path from "path";
|
||||
import fs from "fs";
|
||||
import { initSSR } from "@appserver/common/api/client";
|
||||
import { getUser } from "@appserver/common/api/people";
|
||||
import { getSettings } from "@appserver/common/api/settings";
|
||||
import {
|
||||
getSettings,
|
||||
getBuildVersion,
|
||||
getCurrentCustomSchema,
|
||||
} from "@appserver/common/api/settings";
|
||||
import combineUrl from "@appserver/common/utils/combineUrl";
|
||||
import { AppServerConfig } from "@appserver/common/constants";
|
||||
import {
|
||||
getDocServiceUrl,
|
||||
getFileInfo,
|
||||
openEdit,
|
||||
getSettingsFiles,
|
||||
getShareFiles,
|
||||
} from "@appserver/common/api/files";
|
||||
import pkg from "../../../../package.json";
|
||||
|
||||
@ -60,10 +63,18 @@ export const initDocEditor = async (req) => {
|
||||
const view = url.indexOf("action=view") !== -1;
|
||||
const fileVersion = version || null;
|
||||
|
||||
const [user, settings, filesSettings] = await Promise.all([
|
||||
const [
|
||||
user,
|
||||
settings,
|
||||
filesSettings,
|
||||
versionInfo,
|
||||
customNames,
|
||||
] = await Promise.all([
|
||||
getUser(),
|
||||
getSettings(),
|
||||
getSettingsFiles(),
|
||||
getBuildVersion(),
|
||||
getCurrentCustomSchema("Common"),
|
||||
]);
|
||||
|
||||
const successAuth = !!user;
|
||||
@ -80,13 +91,11 @@ export const initDocEditor = async (req) => {
|
||||
return { error };
|
||||
}
|
||||
|
||||
let [config, docApiUrl, fileInfo] = await Promise.all([
|
||||
openEdit(fileId, fileVersion, doc, view),
|
||||
getDocServiceUrl(),
|
||||
getFileInfo(fileId),
|
||||
]);
|
||||
const config = await openEdit(fileId, fileVersion, doc, view);
|
||||
|
||||
const isSharingAccess = fileInfo && fileInfo.canShare;
|
||||
const sharingSettings = await getShareFiles([+fileId], []);
|
||||
|
||||
const isSharingAccess = config?.file && config?.file?.canShare;
|
||||
|
||||
if (view) {
|
||||
config.editorConfig.mode = "view";
|
||||
@ -95,8 +104,6 @@ export const initDocEditor = async (req) => {
|
||||
const actionLink = config?.editorConfig?.actionLink || null;
|
||||
|
||||
return {
|
||||
fileInfo,
|
||||
docApiUrl,
|
||||
config,
|
||||
personal,
|
||||
successAuth,
|
||||
@ -109,6 +116,10 @@ export const initDocEditor = async (req) => {
|
||||
fileId,
|
||||
view,
|
||||
filesSettings,
|
||||
sharingSettings,
|
||||
portalSettings: settings,
|
||||
versionInfo,
|
||||
customNames,
|
||||
};
|
||||
} catch (err) {
|
||||
error = { errorMessage: typeof err === "string" ? err : err.message };
|
||||
|
@ -10,8 +10,8 @@ export default function template(
|
||||
assets
|
||||
) {
|
||||
const { title } = pkg;
|
||||
const { docApiUrl, error } = initialEditorState;
|
||||
|
||||
const { error } = initialEditorState;
|
||||
const editorUrl = initialEditorState?.config?.editorUrl;
|
||||
const faviconHref = getFavicon(initialEditorState?.config?.documentType);
|
||||
|
||||
let clientScripts =
|
||||
@ -20,9 +20,9 @@ export default function template(
|
||||
: "";
|
||||
|
||||
const editorApiScript =
|
||||
error || !docApiUrl
|
||||
error || !editorUrl
|
||||
? ""
|
||||
: `<script type='text/javascript' id='scripDocServiceAddress' src="${docApiUrl}" async></script>`;
|
||||
: `<script type='text/javascript' id='scripDocServiceAddress' src="${editorUrl}" async></script>`;
|
||||
|
||||
if (!IS_DEVELOPMENT) {
|
||||
const productionBundleKeys = getScripts(assets);
|
||||
|
Loading…
Reference in New Issue
Block a user