diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml
index b246bbc33..40cd5ef51 100644
--- a/.github/workflows/check.yml
+++ b/.github/workflows/check.yml
@@ -1,12 +1,11 @@
-name: Spellcheck
+name: Spellcheck changelogs
on:
workflow_dispatch:
push:
branches:
- - '*'
+ - '**'
paths:
- - 'win-linux/package/windows/update/changes/**'
- 'macos/ONLYOFFICE/update/updates/ONLYOFFICE/changes/**'
- '.aspell.*.pws'
@@ -16,14 +15,16 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Setup aspell
- run: sudo apt-get -y update && sudo apt-get -y install aspell aspell-en aspell-ru
- - name: Run spellchecker for English Windows changelogs
+ run: |
+ sudo apt-get -y update && \
+ sudo apt-get -y install aspell aspell-en aspell-ru
+ - name: Run spellchecker for english changelogs
if: always()
run: |
- for d in win-linux/package/windows/update/changes/*/ ; do
- if [ -f ${d}en.html ]; then
- echo "Checking ${d}en.html"
- SPELLCHECK_OUT=$(cat ${d}en.html \
+ for d in macos/ONLYOFFICE/update/updates/ONLYOFFICE/changes/*/ ; do
+ if [ -f ${d}changes.html ]; then
+ echo "Checking ${d}changes.html"
+ SPELLCHECK_OUT=$(cat ${d}changes.html \
| aspell --lang=en --encoding=utf-8 \
--mode=html --personal=./.aspell.en.pws list)
if [ $(echo -n $SPELLCHECK_OUT | wc -c) -ne 0 ]; then
@@ -32,43 +33,13 @@ jobs:
fi
done
exit ${RC:-0}
- - name: Run spellchecker for Russian Windows changelogs
+ - name: Run spellchecker for russian changelogs
if: always()
run: |
- for d in win-linux/package/windows/update/changes/*/ ; do
- if [ -f ${d}ru.html ]; then
- echo "Checking ${d}ru.html"
- SPELLCHECK_OUT=$(cat ${d}ru.html \
- | aspell --lang=ru --encoding=utf-8 \
- --mode=html --personal=./.aspell.ru.pws list)
- if [ $(echo -n $SPELLCHECK_OUT | wc -c) -ne 0 ]; then
- echo $SPELLCHECK_OUT && RC=1
- fi
- fi
- done
- exit ${RC:-0}
- - name: Run spellchecker for English macOS changelogs
- if: always()
- run: |
- for d in macos/ONLYOFFICE/update/updates/ONLYOFFICE/changes/*/ ; do
- if [ -f ${d}ReleaseNotes.html ]; then
- echo "Checking ${d}ReleaseNotes.html"
- SPELLCHECK_OUT=$(cat ${d}ReleaseNotes.html \
- | aspell --lang=en --encoding=utf-8 \
- --mode=html --personal=./.aspell.en.pws list)
- if [ $(echo -n $SPELLCHECK_OUT | wc -c) -ne 0 ]; then
- echo $SPELLCHECK_OUT && RC=1
- fi
- fi
- done
- exit ${RC:-0}
- - name: Run spellchecker for Russian macOS changelogs
- if: always()
- run: |
- for d in macos/ONLYOFFICE/update/updates/ONLYOFFICE/changes/*/ ; do
- if [ -f ${d}ReleaseNotesRU.html ]; then
- echo "Checking ${d}ReleaseNotesRU.html"
- SPELLCHECK_OUT=$(cat ${d}ReleaseNotesRU.html \
+ for d in macos/ONLYOFFICE/update/updates/ONLYOFFICE/changes/*/ ; do
+ if [ -f ${d}changes.ru.html ]; then
+ echo "Checking ${d}changes.ru.html"
+ SPELLCHECK_OUT=$(cat ${d}changes.ru.html \
| aspell --lang=ru --encoding=utf-8 \
--mode=html --personal=./.aspell.ru.pws list)
if [ $(echo -n $SPELLCHECK_OUT | wc -c) -ne 0 ]; then
diff --git a/.github/workflows/init-changelogs.yaml b/.github/workflows/init-changelogs.yaml
deleted file mode 100644
index 80b44d60f..000000000
--- a/.github/workflows/init-changelogs.yaml
+++ /dev/null
@@ -1,43 +0,0 @@
-name: Initialize changelog files
-
-on: create
-
-jobs:
- changelogs:
- if: >-
- ${{ startsWith(github.ref, 'refs/heads/hotfix/v') ||
- startsWith(github.ref, 'refs/heads/release/v') }}
- runs-on: ubuntu-latest
- steps:
-
- - name: Checkout
- uses: actions/checkout@v3
- with:
- token: ${{ secrets.PUSH_TOKEN }}
-
- - name: Set version
- run: |
- REF="${{ github.ref }}"
- echo "VERSION=${REF#*/v}" >> $GITHUB_ENV
-
- - name: Create changelogs
- run: |
- CHANGES_WIN=win-linux/package/windows/update/changes
- CHANGES_MAC=macos/ONLYOFFICE/update/updates/ONLYOFFICE/changes
- CHANGES_LINUX=common/changes
-
- rm -rfv $CHANGES_WIN/$VERSION $CHANGES_MAC/$VERSION $CHANGES_LINUX/$VERSION
- cp -fRTv $CHANGES_WIN/0.0.0 $CHANGES_WIN/$VERSION
- cp -fRTv $CHANGES_MAC/0.0.0 $CHANGES_MAC/$VERSION
- cp -fRTv $CHANGES_LINUX/template $CHANGES_LINUX/$VERSION
- # for changelog files for win, mac and linux replace '0.0.0' with VERSION,
- # and replace '000' in the row included 'CHANGELOG' with VERSION without dots
- find $CHANGES_WIN/$VERSION $CHANGES_MAC/$VERSION $CHANGES_LINUX/$VERSION -name "*.html" -print \
- -exec sed -e 's/0.0.0/'${VERSION}'/g' -e '/CHANGELOG/s/000/'${VERSION//./}'/g' -i {} \;
-
- - name: Commit changes
- uses: EndBug/add-and-commit@v9
- with:
- author_name: github-actions[bot]
- author_email: github-actions[bot]@users.noreply.github.com
- message: Initialize changelogs for v${{ env.VERSION }}
diff --git a/common/loginpage/locale/id.js b/common/loginpage/locale/id.js
index f3197722c..fa4ec3243 100644
--- a/common/loginpage/locale/id.js
+++ b/common/loginpage/locale/id.js
@@ -112,4 +112,6 @@ l10n.id = {
settOptDescAUpdateAsk: "Anda akan mendapatkan notifikasi langkah untuk melakukan update",
settRtlMode: "RTL Interface",
settGpuUseMode: "Gunakan akselerasi grafik jika tersedia",
+ tplPanelLocal: "Lokal",
+ tplPanelCloud: "Cloud",
}
diff --git a/common/loginpage/locale/sq.js b/common/loginpage/locale/sq.js
new file mode 100644
index 000000000..d2bf2d503
--- /dev/null
+++ b/common/loginpage/locale/sq.js
@@ -0,0 +1,118 @@
+l10n.sq = {
+ welWelcome: 'Mirësevini në ONLYOFFICE Desktop Editors!',
+ welDescr: 'Punoni me dokumente jashtë linje ose lidhni paketën me renë tuaj kompjuterike: ONLYOFFICE, ownCloud, Nextcloud.',
+ btnConnect: 'Lidhuni tani',
+ textHavePortal: 'Tashmë përdor një re?',
+ btnCreatePortal: 'Krijoni një re ONLYOFFICE',
+ btnAddPortal: 'Shtoni një re',
+ btnLogin: 'Hyni',
+ btnBrowse: 'Shfletoni',
+ btnNext: 'Tjetri',
+ portalEmptyTitle: 'Lidhuni me renë tuaj',
+ portalEmptyDescr: 'Ruani dokumentet tuaja në renë kompjuterike dhe aksesojini ato në çdo kohë, nga kudo. Shpërndajeni dhe bashkëpunoni në to. Bisedoni në dokumentin tuaj, shtoni komente ose ndajeni atë për shqyrtim.',
+ portalEmptyAdv1: 'Nuk keni ende një llogari reje? Shkoni në linjë me servisin e resë së ONLYOFFICE dhe
provoni aftësitë e bashkëpunimit falas.',
+ portalListTitle: 'Retë e lidhura',
+ textNoFiles: 'Nuk ka skedarë',
+ listRecoveryTitle: 'Rikuperoni skedarët',
+ listRecentFileTitle: 'Skedarët e fundit',
+ listRecentDirTitle: 'Dosjet e fundit',
+ menuFileOpen: 'Hapni',
+ menuFileExplore: 'Shfaqni në dosje',
+ menuRemoveModel: 'Fshini nga lista',
+ menuClear: 'Qartë',
+ menuLogout: 'Dilni',
+ textMyComputer: 'Kompjuteri im',
+ textThrough: 'përmes',
+ linkForgotPass: 'Keni harruar fjalëkalimin?',
+ linkCreatePortal: 'Krijoni një re ONLYOFFICE',
+ linkResend: 'Dërgojeni këtë kod përsëri',
+ linkChangePhone: 'Ndryshoni numrin e telefonit',
+ loginTitleStart: 'Lidhuni me zyrën e resë',
+ loginTitleConnectTo: 'Hyni në $1',
+ loginTitleAssignPhone: 'Futni numrin e telefonit',
+ loginTitleApplyCode: 'Konfirmoni numrin e telefonit',
+ errLogin: 'Email ose fjalëkalim i gabuar',
+ errLoginPortal: 'Kontrolloni URL e zyrës së resë',
+ errLoginEmail: 'Kontrolloni adresën e email-it',
+ errLoginServer: 'Përgjigjja e gabuar e serverit gjatë hyrjes',
+ errLoginAuth: 'Gabim në pyetjen e informacionit të përdoruesit',
+ errLoginPass: 'Kontrolloni fjalëkalimin',
+ errLoginWrongPhone: 'Format i gabuar i numrit të telefonit',
+ pshPortal: 'URL e zyrës së resë',
+ pshEmail: 'email',
+ pshPass: 'fjalëkalim',
+ pshPhone: 'numër telefoni',
+ pshCode: 'kodi nga mesazhi me tekst',
+ loginNoteAssignPhone: 'Autentifikimi me dy faktorë aktivizohet për të foruar siguri shtesë në renë kompjuterike ONLYOFFICE. Futni numrin tuaj të telefonit për të vazhduar punën në zyrën e resë. NUmri i telefonit duhet të futet duke përdorur një format ndërkombëtar me kodin e shtetit.',
+ loginNoteApplyCode: 'Autentifikimi me dy faktorë është i aktivizuar. Kodi është dërguar me mesazh në numrin $1.',
+ newDoc: 'Dokument',
+ newXlsx: 'Fletëllogaritëse',
+ newPptx: 'Prezantim',
+ newForm: 'Form PDF',
+ actCreateNew: 'Krijoni një të re',
+ actRecentFiles: 'Skedarët e fundit',
+ actOpenLocal: 'Hapni skedarin lokal',
+ actConnectTo: 'Lidhuni me renë',
+ actActivate: 'Aktivizoni',
+ actAbout: 'Për',
+ actSettings: 'Cilësimet',
+ actTemplates: 'Shabllone',
+ licKeyHolder: 'futni çelësi i aktivizimit',
+ btnActivate: 'Aktivizoni',
+ licGetLicense: 'Merrni licensën tani',
+ licPanelTitle: 'Futni çelësin e produktit',
+ licPanelDescr: 'Çelësi juaj i produktit u dërgua në adresën e postës elektronike të specifikuar gjatë blerjes.',
+ checkUpdates: 'Kontrolloni për përditësime',
+ strVersion: 'versioni',
+ emptySlide1Title: 'Shpërndajeni & përshkruani',
+ emptySlide1Text: 'Zgjidhni midis bashkëpunimit në kohë reale të Shpejtë ose të Rreptë, bisedoni në dokumentin tuaj, shtoni komente ose shpërndajeni atë për shqyrtim.',
+ emptySlide2Title: 'Shikoni ose rivendosni versionet e mëparshme',
+ emptySlide2Text: 'Rivendosni ose thjesht shikoni versionet e mëparshme të dokumentit tuaj, ndiqni ndryshimet dhe autorët e tyre.',
+ emptySlide3Title: 'Ruani në re',
+ emptySlide3Text: 'Ruani dokumentet tuaja në re ONLYOFFICE dhe askesojini në çdo kohë, nga kudo.',
+ settUserName: 'Emri i përdoruesit',
+ settResetUserName: 'Rivendosni në parazgjedhje',
+ settOpenMode: 'Hapni dokumentin në modalitetin e shikimit paraprak',
+ setBtnApply: 'Aplikoni',
+ settLanguage: 'Gjuha e ndërfaqes',
+ settAfterRestart: 'Opsioni do të aplikohet pas rinisjes së aplikacionit',
+ settShowEncryptOpts: 'Testoni enkriptimin nga fundi në fund',
+ settCheckUpdates: 'Kontrolloni për përditësime automatikisht',
+ settOptCheckNever: 'Kurrë',
+ settOptCheckDay: 'Çdo ditë',
+ settOptCheckWeek: 'Çdo javë',
+ settScaling: 'Shkallëzimi i ndërfaqes',
+ settOptScalingAuto: 'Automatik',
+ aboutProFeaturesAvailable: 'Me akses në veçoritë profesionale',
+ settUITheme: 'Tema e ndërfaqes',
+ settOptThemeLight: 'Dritë',
+ settOptThemeClassicLight: 'Drita klasike',
+ settOptThemeDark: 'Errët',
+ settOptThemeGray: 'Gri',
+ settOptLaunchMode: 'Hapni skedarin',
+ settOptLaunchInTab: 'Në skedën e vet',
+ settOptLaunchInWindow: 'Në dritaren e vet',
+ settSpellcheckDetection: 'Dedektimi i gjuhës drejtshkrimore',
+ settOptDisabled: 'Çaktivizuar',
+ settOptEnabled: 'Aktivizuar',
+ aboutChangelog: 'Ditari i ndryshimeve',
+ updateNoUpdates: 'Aplikacioni është i përditësuar',
+ updateAvialable: 'Versioni $1 është i disponueshëm. Klikoni për ta shkarkuar.',
+ settOptThemeSystem: 'Njëlloj si sistemi',
+ settOptThemeAddLocal: 'Shtoni temë lokale',
+ settOptThemeContrastDark: 'Kontrast i errët',
+ settAUpdateMode: 'Përditësimet',
+ settOptAUpdateSilent: 'Automatik',
+ settOptAUpdateAsk: 'Njoftoj',
+ settOptAUpdateDisabled: 'Manual',
+ updateDownloadFinished: 'Shkarkimi përfundoj. Klikoni për ta instaluar',
+ updateDownloadCanceled: 'Shkarkimi u ndërpre',
+ updateDownloadProgress: 'Shkarkimi $1%. Klikoni për ta ndaluar',
+ settOptDescDisabled: "Përditësimet e kontrollit automatik do të çaktivizohen",
+ settOptDescAUpdateSilent: "Shkarkoni dhe instaloni përditësimet në sfond",
+ settOptDescAUpdateAsk: "Ju do të njëftoheni për të gjitha hapat e përditësimeve",
+ settRtlMode: "RTL Ndërfaqe",
+ settGpuUseMode: "Përdorni përshpejtimin grafik kur është i disponueshëm",
+ tplPanelLocal: "Lokal",
+ tplPanelCloud: "Re",
+}
diff --git a/common/loginpage/locale/zh-TW.js b/common/loginpage/locale/zh-TW.js
index 32d0d3e74..1172ca440 100644
--- a/common/loginpage/locale/zh-TW.js
+++ b/common/loginpage/locale/zh-TW.js
@@ -112,6 +112,7 @@ l10n.zh_TW = {
settOptDescAUpdateSilent: "於背景中下載並安裝更新檔",
settOptDescAUpdateAsk: "您將收到所有更新步驟的相關通知",
settRtlMode: "RTL介面",
+ settGpuUseMode: "當可用時使用圖形加速",
tplPanelLocal: "本地",
tplPanelCloud: "雲",
}
diff --git a/common/loginpage/res/img/formats-svg/hwp.svg b/common/loginpage/res/img/formats-svg/hwp.svg
new file mode 100644
index 000000000..837f67361
--- /dev/null
+++ b/common/loginpage/res/img/formats-svg/hwp.svg
@@ -0,0 +1,6 @@
+
diff --git a/common/loginpage/res/img/formats-svg/hwpx.svg b/common/loginpage/res/img/formats-svg/hwpx.svg
new file mode 100644
index 000000000..837f67361
--- /dev/null
+++ b/common/loginpage/res/img/formats-svg/hwpx.svg
@@ -0,0 +1,6 @@
+
diff --git a/common/loginpage/src/css/colors.less b/common/loginpage/src/css/colors.less
index e6ab0849d..87cb11b85 100644
--- a/common/loginpage/src/css/colors.less
+++ b/common/loginpage/src/css/colors.less
@@ -1,17 +1,8 @@
:root {
- --color-gray-3: #cbcbcb;
- --color-gray-4: #a5a5a5;
- --color-gray-light: #999;
- --color-gray: #666666;
-
- --color-blue-2: #5b9bea;
- --color-blue-3: #5293e2;
- --color-blue-light: #3a83db;
-
--background-normal: #fff;
--background-tabbar: #f7f7f7;
- --background-button: #fff;
+ /*--background-button: #fff;*/
--background-accent-button: #3483db;
--background-primary-button: #444;
--background-scrim: fade(#000, 20%);
@@ -50,18 +41,9 @@
--theme-inverted-image-filter: none;
}
-@color-gray-3: var(--color-gray-3);
-@color-gray-4: var(--color-gray-4);
-@color-gray-light: var(--color-gray-light);
-@color-gray: var(--color-gray);
-
-@color-blue-2: var(--color-blue-2);
-@color-blue-3: var(--color-blue-3);
-@color-blue-light: var(--color-blue-light);
-
@background-normal: var(--background-normal);
@background-tabbar: var(--background-tabbar);
-@background-button: var(--background-button);
+@background-button: var(--background-button,#fff);
@background-accent-button: var(--background-accent-button);
@background-primary-button: var(--background-primary-button);
@background-scrim: var(--background-scrim);
diff --git a/common/loginpage/src/css/colors_classic.less b/common/loginpage/src/css/colors_classic.less
index 608e40a27..103aeffdc 100644
--- a/common/loginpage/src/css/colors_classic.less
+++ b/common/loginpage/src/css/colors_classic.less
@@ -1,15 +1,6 @@
:root {
.theme-classic-light {
- /*--color-gray-3: #cbcbcb;*/
- /*--color-gray-4: #a5a5a5;*/
- /*--color-gray-light: #999;*/
- /*--color-gray: #666666;*/
-
- /*--color-blue-2: #5b9bea;*/
- /*--color-blue-3: #5293e2;*/
- /*--color-blue-light: #3a83db;*/
-
/*--background-normal: #fff;*/
/*--background-tabbar: #f7f7f7;*/
/*--background-button: #fff;*/
@@ -46,7 +37,6 @@
/*--icon-normal: fade(#000, 80%);*/
/*--icon-notification-badge: #000;*/
- --icon-success: #5b9f27;
/*--disabled-element-opacity: .4;*/
/*--theme-inverted-image-filter: none;*/
diff --git a/common/loginpage/src/css/component.less b/common/loginpage/src/css/component.less
index eff40cef5..f5451bf38 100644
--- a/common/loginpage/src/css/component.less
+++ b/common/loginpage/src/css/component.less
@@ -19,7 +19,7 @@ button {
&.btn {
border: 1px solid @border-regular-control;
- background-color: @background-button;
+ /*background-color: @background-button;*/
&.btn--landing {
background-color: @background-accent-button;
diff --git a/common/loginpage/src/css/window.less b/common/loginpage/src/css/window.less
index fcf97782d..609e7ea6b 100644
--- a/common/loginpage/src/css/window.less
+++ b/common/loginpage/src/css/window.less
@@ -106,10 +106,10 @@ dialog {
}
}
- .separator {
+ /*.separator {
border-top: @scaled-one-px solid @color-gray-3;
margin: 24px 0;
- }
+ }*/
.dlg--option {
margin: 12px 0;
@@ -148,7 +148,7 @@ dialog {
width: 100%;
}
- #box-btn-login-sso {
+ /*#box-btn-login-sso {
position: relative;
padding-top: 12px;
@@ -167,7 +167,7 @@ dialog {
font-size: 12px;
color: @color-gray-4;
}
- }
+ }*/
.combined {
margin-right: 15px;
diff --git a/common/loginpage/src/dialogconnect.js b/common/loginpage/src/dialogconnect.js
index b6c9637a9..0b7ea8670 100644
--- a/common/loginpage/src/dialogconnect.js
+++ b/common/loginpage/src/dialogconnect.js
@@ -276,8 +276,12 @@ window.DialogConnect = function(params) {
// A connection attempt was refused.
// NET_ERROR(CONNECTION_REFUSED, -102)
- if ( e.statusCode == -102 ) e.statusCode = 404;
- reject({status:status, response:e});
+ if ( e.responseStatus == 302)
+ resolve({status:'success', response:e});
+ else {
+ if ( e.statusCode == -102 ) e.statusCode = 404;
+ reject({status:status, response:e});
+ }
}
});
}
diff --git a/common/loginpage/src/panelrecent.js b/common/loginpage/src/panelrecent.js
index 4f9b17275..7c0699099 100644
--- a/common/loginpage/src/panelrecent.js
+++ b/common/loginpage/src/panelrecent.js
@@ -357,7 +357,7 @@
} else
if (/\:explore/.test(action)) {
if (menu.actionlist == 'recent') {
- sdk.execCommand('files:explore', JSON.stringify({path: data.path, id: data.fileid}));
+ sdk.execCommand('files:explore', JSON.stringify({path: data.path, id: data.fileid, hash: data.hash}));
}
}
};
diff --git a/common/loginpage/src/panels.js b/common/loginpage/src/panels.js
index 8097d3957..56ce47f54 100644
--- a/common/loginpage/src/panels.js
+++ b/common/loginpage/src/panels.js
@@ -262,6 +262,7 @@ function openFile(from, model) {
path: utils.fn.decodeHtml(model.path),
type: model.type,
cloud: model.cloud,
+ hash: model.hash,
recovery: from == OPEN_FILE_RECOVERY,
};
diff --git a/common/loginpage/src/panelsettings.js b/common/loginpage/src/panelsettings.js
index 9b5b2d9fc..913a64da5 100644
--- a/common/loginpage/src/panelsettings.js
+++ b/common/loginpage/src/panelsettings.js
@@ -822,10 +822,12 @@
}
for (const [key, value] of Object.entries(l10n)) {
- if ( !themes_map[key]['l10n'] )
- themes_map[key]['l10n'] = {};
+ if ( themes_map[key] ) {
+ if ( !themes_map[key]['l10n'] )
+ themes_map[key]['l10n'] = {};
- themes_map[key]['l10n'][nl] = value.text;
+ themes_map[key]['l10n'][nl] = value.text;
+ }
}
// for ( let k of Object.keys(themes_map) ) {
diff --git a/common/loginpage/src/paneltemplates.js b/common/loginpage/src/paneltemplates.js
index 02c32f0fc..0fe4c13e5 100644
--- a/common/loginpage/src/paneltemplates.js
+++ b/common/loginpage/src/paneltemplates.js
@@ -83,8 +83,8 @@