Compare commits

..

117 Commits

Author SHA1 Message Date
a1486fd45c Merge remote-tracking branch 'remotes/origin/php-sdk-1.4' into develop
# Conflicts:
#	CHANGELOG.md
2026-03-19 11:22:42 +03:00
1512cc6858 Merge pull request 'build(java-spring): update docs-integration-sdk to 1.8.0' from java-sdk-1.8 into develop
Reviewed-on: https://git.onlyoffice.com/ONLYOFFICE/document-server-integration/pulls/103
2026-03-19 08:21:05 +00:00
a46cad979f build(php-laravel): update docs-integration-sdk to 1.4 2026-03-19 15:05:39 +07:00
99f5cc75a2 build(java-spring): update docs-integration-sdk to 1.8.0 2026-03-19 14:35:59 +07:00
8897042ebf Merge branch 'master' into develop 2026-03-17 13:33:32 +03:00
9fc7606a6b Merge remote-tracking branch 'remotes/origin/main' 2026-03-17 13:33:16 +03:00
2990d9fb68 main branch by default 2026-03-13 16:58:47 +03:00
7b9623ce6a Merge remote-tracking branch 'remotes/origin/release/v9.4.0' into develop
# Conflicts:
#	.gitmodules
#	CHANGELOG.md
#	web/documentserver-example/nodejs/public/assets/document-formats
#	web/documentserver-example/nodejs/public/assets/plugin-aiautofill
2026-03-11 15:08:39 +03:00
97c0952d0e Merge pull request 'release/1.15.0' from release/1.15.0 into master
Reviewed-on: https://git.onlyoffice.com/ONLYOFFICE/document-server-integration/pulls/99
2026-03-11 11:04:09 +00:00
b43af4a42b deps(php-laravel): bump laravel/pint to 1.28.0
# Conflicts:
#	web/documentserver-example/php-laravel/composer.lock
2026-03-11 13:51:04 +03:00
8778d492a1 Merge remote-tracking branch 'remotes/origin/release/1.15.0' into develop
# Conflicts:
#	web/documentserver-example/python/.check-licenses.yml
2026-03-11 13:48:38 +03:00
3c7aa7707c Merge pull request 'refactor(php-laravel): lint fix' from 1.15-lint-fix into release/1.15.0
Reviewed-on: https://git.onlyoffice.com/ONLYOFFICE/document-server-integration/pulls/100
2026-03-11 10:47:19 +00:00
b528be73d8 refactor(php-laravel): lint fix 2026-03-11 17:22:04 +07:00
dc9ff1ae4a ci: fix licenses-go.yml (added step Set up Go) 2026-03-11 13:14:19 +03:00
91551f4664 feat: update python/.check-licenses.yml 2026-03-11 13:07:25 +03:00
3fa078d3ef Merge pull request 'revert firebase/php-jwt from 7.0' from revert-php-jwt into develop
Reviewed-on: https://git.onlyoffice.com/ONLYOFFICE/document-server-integration/pulls/98
2026-03-06 13:05:26 +00:00
6076181db4 revert firebase/php-jwt from 7.0 2026-03-06 17:32:42 +07:00
9a76a3100f Merge pull request 'update-dependencies(java-spring, nodejs, php, php-laravel)' from update-dependencies into develop
Reviewed-on: https://git.onlyoffice.com/ONLYOFFICE/document-server-integration/pulls/97
2026-03-06 09:04:11 +00:00
f52ae4558e build(php-laravel): bump rollup to 4.59.0 2026-03-06 14:55:41 +07:00
26a5809bc7 build(php-laravel): bump firebase/php-jwt to 7.0 2026-03-06 14:45:26 +07:00
a080a156b0 build(php-laravel): onlyoffice/docs-integration-sdk 1.3.1 2026-03-06 14:43:23 +07:00
1dbca4aeb3 build(php): bump firebase/php-jwt to 7.0.0 2026-03-06 14:20:48 +07:00
0652ae6679 build(nodejs): audit fix high vulnerabilities 2026-03-06 14:14:58 +07:00
1574e2c550 build(java-spring): bump com.fasterxml.jackson.core:jackson-core to 2.18.6 2026-03-06 14:02:56 +07:00
9d7993ecba Merge remote-tracking branch 'remotes/origin/release/1.15.0' into develop 2026-03-04 18:32:45 +03:00
da663c951e Merge pull request 'feature/aiautofiller' from feature/aiautofiller into release/1.15.0
Reviewed-on: https://git.onlyoffice.com/ONLYOFFICE/document-server-integration/pulls/96
2026-03-04 15:32:02 +00:00
967287ab44 nodejs: ai-autofill v1.0.0 2026-03-04 18:30:10 +03:00
d236bc0bcc nodejs: update plugin ai-autofill guid (v0.1.3) 2026-03-04 18:03:31 +03:00
333da622b3 update autofill plugin 2026-03-04 18:03:31 +03:00
19967b0940 nodejs: autofill auto started on Fill mode only 2026-03-04 18:03:31 +03:00
b0224993a2 update autofill plugin 2026-03-04 18:03:31 +03:00
449c6b55e6 nodejs: fix lint 2026-03-04 18:03:31 +03:00
b39e5f4787 fix: disable autofill plugin for 'comment' mode 2026-03-04 18:03:30 +03:00
9d8bcda58b nodejs: update autofill plugin 2026-03-04 18:03:30 +03:00
f3a71ee26b nodejs: anonymous without ai autofill 2026-03-04 18:03:30 +03:00
480d68148d nodejs: plugin data update 2026-03-04 18:03:30 +03:00
8b32812744 nodejs: plugin for pdf only 2026-03-04 18:03:30 +03:00
edab397c98 fix: fallback to default plugins 2026-03-04 18:03:30 +03:00
ab90b3eb32 fix(plugins): merge configs with in-line plugin config 2026-03-04 18:03:29 +03:00
fdee619bb0 fix: use plugin path without build 2026-03-04 18:03:29 +03:00
15f3f531f0 chore: added additional data 2026-03-04 18:03:29 +03:00
02be0dd321 deps: bumped autofill plugin 2026-03-04 18:03:29 +03:00
f8fbf35244 chore: update plugin submodule 2026-03-04 18:03:29 +03:00
f6227c8bc9 chore: new sample data 2026-03-04 18:03:29 +03:00
8301c63826 refactor: move data to json, build path to the plugin from config 2026-03-04 18:03:28 +03:00
47c737c431 chore: strict check 2026-03-04 18:03:28 +03:00
d7b1a7f34f fix: do not autostart non edit mode 2026-03-04 18:03:28 +03:00
8e4dc58bf9 feat: initial aiautofiller example 2026-03-04 18:03:28 +03:00
09e41f4c3d Merge remote-tracking branch 'remotes/origin/fix-1.15' into release/1.15.0 2026-03-03 13:18:50 +03:00
4bc09870a8 fix(php): null optional arguments in convert method. Fix Bug 80425 2026-03-03 16:29:17 +07:00
04aae40b66 fix: enable edit converted button for editable exts. Fix Bug 80381 2026-03-03 14:55:51 +07:00
d13eb90f38 delete FileChoiceUrl 2026-03-02 17:58:07 +03:00
de2b2e0c59 Merge remote-tracking branch 'remotes/origin/release/1.15.0' into develop 2026-02-24 18:55:34 +03:00
67f453c4e0 formats v9.3 2026-02-24 18:48:44 +03:00
9878583600 nodejs: conversion to md 2026-02-24 18:46:32 +03:00
2fb6246f80 nodejs: support tsv 2026-02-24 18:46:06 +03:00
829f1b4226 update documentserver version to 9.3 in compose files 2026-02-24 18:44:45 +03:00
8271719817 Merge remote-tracking branch 'remotes/origin/feature/aiautofiller' into release/v9.3.0 2026-02-24 15:05:47 +03:00
395e2d1299 nodejs: update plugin ai-autofill guid (v0.1.3) 2026-02-24 14:59:41 +03:00
7d9d2fdf3d nodejs: conversion to md 2026-02-19 09:44:30 +03:00
3a0a713c5a Merge pull request 'update documentserver version to 9.3 in compose files' from 9.3.0-update-compose into release/v9.3.0
Reviewed-on: https://git.onlyoffice.com/ONLYOFFICE/document-server-integration/pulls/93
2026-02-18 06:08:08 +00:00
8d1e0ff63d nodejs: format json 2026-02-18 09:06:55 +03:00
496092c09f update documentserver version to 9.3 in compose files 2026-02-17 15:48:09 +07:00
c0a870458b Merge remote-tracking branch 'remotes/origin/feature/aiautofiller' into release/v9.3.0 2026-02-16 09:46:28 +03:00
35da4e1de1 update autofill plugin 2026-02-16 09:46:03 +03:00
238cf93a22 Merge pull request 'resolve release/1.15.0 to develop merge conflict' from 1.15-conflict into develop
Reviewed-on: https://git.onlyoffice.com/ONLYOFFICE/document-server-integration/pulls/92
2026-02-13 13:45:16 +00:00
10bc689f13 Merge remote-tracking branch 'remotes/origin/release/1.15.0' into 1.15-conflict 2026-02-13 16:02:58 +03:00
d532f3d8de nodejs: fix lint 2026-02-13 16:01:14 +03:00
59a8e2f63d fix(go): merge lossy-edit bugfix and new formats handling 2026-02-13 16:35:15 +07:00
0bdaa40036 Merge pull request 'bugfix-1.15' from bugfix-1.15 into release/1.15.0
Reviewed-on: https://git.onlyoffice.com/ONLYOFFICE/document-server-integration/pulls/91
2026-02-13 09:03:33 +00:00
a60fd14daf increase default upload file size to 100 MB. Fix Bug 79567 2026-02-12 13:49:42 +07:00
f55196a1b2 fix(ruby): resolve fillform urls with proxy. Fix Bug 79584 2026-02-12 13:01:28 +07:00
11974256a9 Merge remote-tracking branch 'remotes/origin/feature/aiautofiller' into release/v9.3.0 2026-02-11 13:21:25 +03:00
f69fabb44a nodejs: autofill auto started on Fill mode only 2026-02-11 13:21:05 +03:00
bc434dea55 fix(ruby): correct platforms in gemfile.lock 2026-02-11 16:08:37 +07:00
af895ee2e6 Merge pull request 'update-deps' from update-deps into develop
Reviewed-on: https://git.onlyoffice.com/ONLYOFFICE/document-server-integration/pulls/90
2026-02-11 06:51:53 +00:00
8c725214af fix: files list height. Fix Bug 71461 2026-02-10 17:35:30 +07:00
dd513194bb build(php-laravel): bump psy/psysh to 0.12.19 2026-02-10 14:41:15 +07:00
6069c017c0 build(php-laravel): bump phpunit/phpunit to 11.5.50 2026-02-10 14:27:34 +07:00
fbc3d47607 build(nodejs): bump fast-xml-parser to 5.3.4 2026-02-10 14:17:24 +07:00
f8222b1052 build(php): bump phpunit/phpunit to 10.5.62 2026-02-10 14:14:50 +07:00
4c331d56d7 Merge pull request 'bugfix-1.15' from bugfix-1.15 into release/1.15.0
Reviewed-on: https://git.onlyoffice.com/ONLYOFFICE/document-server-integration/pulls/89
2026-02-06 12:12:22 +00:00
ea3667174f fix(java-spring): correct roles for named users. Fix Bug 79808 2026-02-06 18:34:27 +07:00
ada17c99f7 fix(nodejs): use path module to get file basename. Fix Bug 79810 2026-02-06 17:39:09 +07:00
7a1cc7cbdc fix(go): move anonymous to the end of users list. Fix Bug 79785 2026-02-06 13:09:18 +07:00
976d7072a9 Merge remote-tracking branch 'remotes/origin/feature/aiautofiller' into release/v9.3.0 2026-02-04 13:33:42 +03:00
8272c83660 update autofill plugin 2026-02-04 13:33:12 +03:00
9a7350e169 Merge pull request 'bugfix-release-1.15' from bugfix-release-1.15 into release/1.15.0
Reviewed-on: https://git.onlyoffice.com/ONLYOFFICE/document-server-integration/pulls/88
2026-02-02 11:47:23 +00:00
0c33288120 fix(go): allow edit files with lossy-edit action. Fix Bug 79626 2026-02-02 16:26:18 +07:00
aff50cca4a fix(ruby): string forcesavetype check. Fix Bug 79584 2026-02-02 16:26:18 +07:00
7aca0edfed fix(php-laravel): correct conversion of uploaded files with password. Fix Bug 79569 2026-02-02 16:26:18 +07:00
2a3bcc0f67 fix(php-laravel): increase max upload file size and fix env variable. Fix Bug 79567 2026-02-02 16:26:18 +07:00
1da1dec76c fix(go): correct processing of document passwords 2026-02-02 16:25:45 +07:00
c73aae1c4b Merge pull request 'fix: disable autofill plugin for 'comment' mode' from feature/aiautofiller into release/v9.3.0
Reviewed-on: https://git.onlyoffice.com/ONLYOFFICE/document-server-integration/pulls/87
2026-01-30 08:39:00 +00:00
4340c34c23 nodejs: fix lint 2026-01-30 11:38:01 +03:00
3eff9b469b fix: disable autofill plugin for 'comment' mode 2026-01-30 11:37:20 +03:00
701d65dfaf Merge pull request 'build(nodejs): bump qs to 6.14.1' from nodejs-bump-qs into develop
Reviewed-on: https://git.onlyoffice.com/ONLYOFFICE/document-server-integration/pulls/86
2026-01-27 07:09:23 +00:00
5fa447b489 build(nodejs): bump qs to 6.14.1 2026-01-27 13:07:17 +07:00
eabda30bf7 Merge branch 'feature/aiautofiller' into release/v9.3.0
# Conflicts:
#	.gitmodules
2026-01-21 17:18:43 +03:00
548f24aaff nodejs: update autofill plugin 2026-01-21 17:16:24 +03:00
c1ec722b9f nodejs: anonymous without ai autofill 2026-01-21 17:16:24 +03:00
92a1aff932 nodejs: plugin data update 2026-01-21 17:16:23 +03:00
4fe6e961d3 nodejs: plugin for pdf only 2026-01-21 17:16:23 +03:00
e612717b0b fix: fallback to default plugins 2026-01-21 17:16:23 +03:00
e0e0bc96bf fix(plugins): merge configs with in-line plugin config 2026-01-21 17:16:23 +03:00
c3739fb08a fix: use plugin path without build 2026-01-21 17:16:23 +03:00
c22dbea9bf chore: added additional data 2026-01-21 17:16:23 +03:00
606a14ce8f deps: bumped autofill plugin 2026-01-21 17:16:22 +03:00
4cb50c752b chore: update plugin submodule 2026-01-21 17:16:22 +03:00
c304b5f526 chore: new sample data 2026-01-21 17:16:22 +03:00
f02726d138 refactor: move data to json, build path to the plugin from config 2026-01-21 17:16:22 +03:00
85b0fdc33f chore: strict check 2026-01-21 17:16:22 +03:00
0e8c99aaab fix: do not autostart non edit mode 2026-01-21 17:16:21 +03:00
5a4b47c4bd feat: initial aiautofiller example 2026-01-21 17:16:21 +03:00
9775c8e175 nodejs: support tsv 2026-01-21 17:02:57 +03:00
c092db2566 Merge pull request 'fix(java): correct dataInsertImage object' from java-fix-data-insert-image into develop
Reviewed-on: https://git.onlyoffice.com/ONLYOFFICE/document-server-integration/pulls/85
2026-01-20 12:34:35 +00:00
873692e038 fix(java): correct dataInsertImage object 2026-01-20 17:40:21 +07:00
115 changed files with 3049 additions and 1645 deletions

View File

@ -3,10 +3,10 @@ name: Artifact Csharp MVC
on:
workflow_dispatch:
push:
branches: [master]
branches: [main]
paths: ['web/documentserver-example/csharp-mvc/**']
pull_request:
branches: [master]
branches: [main]
paths: ['web/documentserver-example/csharp-mvc/**']
jobs:

View File

@ -3,10 +3,10 @@ name: Artifact Csharp
on:
workflow_dispatch:
push:
branches: [master]
branches: [main]
paths: ['web/documentserver-example/csharp/**']
pull_request:
branches: [master]
branches: [main]
paths: ['web/documentserver-example/csharp/**']
jobs:

View File

@ -3,10 +3,10 @@ name: Artifact Golang
on:
workflow_dispatch:
push:
branches: [master]
branches: [main]
paths: ['web/documentserver-example/go/**']
pull_request:
branches: [master]
branches: [main]
paths: ['web/documentserver-example/go/**']
jobs:

View File

@ -3,10 +3,10 @@ name: Artifact Java
on:
workflow_dispatch:
push:
branches: [master]
branches: [main]
paths: ['web/documentserver-example/java/**']
pull_request:
branches: [master]
branches: [main]
paths: ['web/documentserver-example/java/**']
jobs:

View File

@ -3,10 +3,10 @@ name: Artifact Nodejs
on:
workflow_dispatch:
push:
branches: [master]
branches: [main]
paths: ['web/documentserver-example/nodejs/**']
pull_request:
branches: [master]
branches: [main]
paths: ['web/documentserver-example/nodejs/**']
jobs:

View File

@ -3,10 +3,10 @@ name: Artifact PHP Laravel
on:
workflow_dispatch:
push:
branches: [master]
branches: [main]
paths: ['web/documentserver-example/php-laravel/**']
pull_request:
branches: [master]
branches: [main]
paths: ['web/documentserver-example/php-laravel/**']
jobs:

View File

@ -3,10 +3,10 @@ name: Artifact PHP
on:
workflow_dispatch:
push:
branches: [master]
branches: [main]
paths: ['web/documentserver-example/php/**']
pull_request:
branches: [master]
branches: [main]
paths: ['web/documentserver-example/php/**']
jobs:

View File

@ -3,10 +3,10 @@ name: Artifact Python
on:
workflow_dispatch:
push:
branches: [master]
branches: [main]
paths: ['web/documentserver-example/python/**']
pull_request:
branches: [master]
branches: [main]
paths: ['web/documentserver-example/python/**']
jobs:

View File

@ -3,10 +3,10 @@ name: Artifact Ruby
on:
workflow_dispatch:
push:
branches: [master]
branches: [main]
paths: ['web/documentserver-example/ruby/**']
pull_request:
branches: [master]
branches: [main]
paths: ['web/documentserver-example/ruby/**']
jobs:

View File

@ -3,10 +3,10 @@ name: Artifact Java Spring
on:
workflow_dispatch:
push:
branches: [master]
branches: [main]
paths: ['web/documentserver-example/java-spring/**']
pull_request:
branches: [master]
branches: [main]
paths: ['web/documentserver-example/java-spring/**']
jobs:

View File

@ -2,7 +2,7 @@ name: Create Tag
on:
push:
branches: [master]
branches: [main]
paths-ignore:
- '.github/**'
- '**/AUTHORS.md'

View File

@ -3,10 +3,10 @@ name: Licenses Csharp MVC
on:
workflow_dispatch:
push:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/csharp-mvc/**']
pull_request:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/csharp-mvc/**']
jobs:

View File

@ -3,10 +3,10 @@ name: Licenses Csharp
on:
workflow_dispatch:
push:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/csharp/**']
pull_request:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/csharp/**']
jobs:

View File

@ -3,10 +3,10 @@ name: Licenses Go
on:
workflow_dispatch:
push:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/go/**']
pull_request:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/go/**']
jobs:
@ -15,6 +15,10 @@ jobs:
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: '1.23'
- name: Submodule Update
run: |
cd ${{ github.workspace }}

View File

@ -3,10 +3,10 @@ name: Licenses Java
on:
workflow_dispatch:
push:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/java/**']
pull_request:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/java/**']
jobs:

View File

@ -3,10 +3,10 @@ name: Licenses Nodejs
on:
workflow_dispatch:
push:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/nodejs/**']
pull_request:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/nodejs/**']
env:

View File

@ -3,10 +3,10 @@ name: Licenses PHP Laravel
on:
workflow_dispatch:
push:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/php-laravel/**']
pull_request:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/php-laravel/**']
jobs:

View File

@ -3,10 +3,10 @@ name: Licenses PHP
on:
workflow_dispatch:
push:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/php/**']
pull_request:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/php/**']
jobs:

View File

@ -3,10 +3,10 @@ name: Licenses Python
on:
workflow_dispatch:
push:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/python/**']
pull_request:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/python/**']
jobs:

View File

@ -3,10 +3,10 @@ name: Licenses Ruby
on:
workflow_dispatch:
push:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/ruby/**']
pull_request:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/ruby/**']
jobs:

View File

@ -3,10 +3,10 @@ name: Licenses Java Spring
on:
workflow_dispatch:
push:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/java-spring/**']
pull_request:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/java-spring/**']
jobs:

View File

@ -3,10 +3,10 @@ name: Golangci
on:
workflow_dispatch:
push:
branches: [master]
branches: [main, develop]
paths: ['web/documentserver-example/go/**']
pull_request:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/go/**']
jobs:

View File

@ -3,10 +3,10 @@ name: Lint Java
on:
workflow_dispatch:
push:
branches: [master]
branches: [main, develop]
paths: ['web/documentserver-example/java/**']
pull_request:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/java/**']
jobs:

View File

@ -3,10 +3,10 @@ name: ESLint
on:
workflow_dispatch:
push:
branches: [master]
branches: [main, develop]
paths: ['web/documentserver-example/nodejs/**']
pull_request:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/nodejs/**']
env:

View File

@ -3,10 +3,10 @@ name: Laravel Pint
on:
workflow_dispatch:
push:
branches: [master]
branches: [main, develop]
paths: ['web/documentserver-example/php-laravel/**']
pull_request:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/php-laravel/**']
jobs:

View File

@ -3,10 +3,10 @@ name: PHPCs
on:
workflow_dispatch:
push:
branches: [master]
branches: [main, develop]
paths: ['web/documentserver-example/php/**']
pull_request:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/php/**']
jobs:

View File

@ -3,10 +3,10 @@ name: PyLint
on:
workflow_dispatch:
push:
branches: [master]
branches: [main, develop]
paths: ['web/documentserver-example/python/**']
pull_request:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/python/**']
jobs:

View File

@ -3,10 +3,10 @@ name: Rubocop
on:
workflow_dispatch:
push:
branches: [master]
branches: [main, develop]
paths: ['web/documentserver-example/ruby/**']
pull_request:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/ruby/**']
jobs:

View File

@ -3,10 +3,10 @@ name: Lint Spring
on:
workflow_dispatch:
push:
branches: [master]
branches: [main, develop]
paths: ['web/documentserver-example/java-spring/**']
pull_request:
branches: [master, develop]
branches: [main, develop]
paths: ['web/documentserver-example/java-spring/**']
jobs:

3
.gitmodules vendored
View File

@ -5,6 +5,9 @@
[submodule "web/documentserver-example/nodejs/public/assets/document-formats"]
path = web/documentserver-example/nodejs/public/assets/document-formats
url = https://github.com/ONLYOFFICE/document-formats
[submodule "web/documentserver-example/nodejs/public/assets/plugin-aiautofill"]
path = web/documentserver-example/nodejs/public/assets/plugin-aiautofill
url = https://github.com/ONLYOFFICE/plugin-aiautofill.git
[submodule "web/documentserver-example/csharp-mvc/assets/document-templates"]
path = web/documentserver-example/csharp-mvc/assets/document-templates
url = https://github.com/ONLYOFFICE/document-templates

View File

@ -1,5 +1,7 @@
# Change Log
- java-spring: docs-integration-sdk updated to 1.8
- php-laravel: update docs-integration-sdk to 1.4
- nodejs: wopi CopyPasteRestrictions for anonymous
- update insertImage formats
- new mobile index page view
@ -17,8 +19,9 @@
- nodejs: wopi UserCanOnlyComment
## 1.15.0
- nodejs: added AI Auto Fill Plugin
- php-laravel: fix custom jwt header
- formats for ds v9.1
- formats for ds v9.3
- user role
- start filling
- update demo files

View File

@ -8,16 +8,16 @@ These examples show the way to integrate [ONLYOFFICE Docs][2] into your own webs
The package contains examples written in .Net (C# MVC), .Net (C#), Go, Java, Java Spring, Node.js, PHP, PHP (Laravel), Python and Ruby.
You should change `http://documentserver` to your server address in these files:
* [.Net (C# MVC)](https://github.com/ONLYOFFICE/document-server-integration/tree/master/web/documentserver-example/csharp-mvc) - `web/documentserver-example/csharp-mvc/web.appsettings.config`
* [.Net (C#)](https://github.com/ONLYOFFICE/document-server-integration/tree/master/web/documentserver-example/csharp) - `web/documentserver-example/csharp/settings.config`
* [Go](https://github.com/ONLYOFFICE/document-server-integration/tree/master/web/documentserver-example/go) - `web\documentserver-example\go\config\configuration.json`
* [Java](https://github.com/ONLYOFFICE/document-server-integration/tree/master/web/documentserver-example/java) - `web/documentserver-example/java/src/main/resources/settings.properties`
* [Java Spring](https://github.com/ONLYOFFICE/document-server-integration/tree/master/web/documentserver-example/java-spring) - `web/documentserver-example/java-spring/src/main/resources/application.properties`
* [Node.js](https://github.com/ONLYOFFICE/document-server-integration/tree/master/web/documentserver-example/nodejs) - `web/documentserver-example/nodejs/config/default.json`
* [PHP](https://github.com/ONLYOFFICE/document-server-integration/tree/master/web/documentserver-example/php) - `web/documentserver-example/php/src/configuration/ConfigurationManager.php`
* [PHP (Laravel)](https://github.com/ONLYOFFICE/document-server-integration/tree/master/web/documentserver-example/php-laravel) - `web/documentserver-example/php-laravel/.env.example`
* [Python](https://github.com/ONLYOFFICE/document-server-integration/tree/master/web/documentserver-example/python) - `web/documentserver-example/python/src/configuration/configuration.py`
* [Ruby](https://github.com/ONLYOFFICE/document-server-integration/tree/master/web/documentserver-example/ruby) - `web/documentserver-example/ruby/app/configuration/configuration.rb`
* [.Net (C# MVC)](https://github.com/ONLYOFFICE/document-server-integration/tree/main/web/documentserver-example/csharp-mvc) - `web/documentserver-example/csharp-mvc/web.appsettings.config`
* [.Net (C#)](https://github.com/ONLYOFFICE/document-server-integration/tree/main/web/documentserver-example/csharp) - `web/documentserver-example/csharp/settings.config`
* [Go](https://github.com/ONLYOFFICE/document-server-integration/tree/main/web/documentserver-example/go) - `web\documentserver-example\go\config\configuration.json`
* [Java](https://github.com/ONLYOFFICE/document-server-integration/tree/main/web/documentserver-example/java) - `web/documentserver-example/java/src/main/resources/settings.properties`
* [Java Spring](https://github.com/ONLYOFFICE/document-server-integration/tree/main/web/documentserver-example/java-spring) - `web/documentserver-example/java-spring/src/main/resources/application.properties`
* [Node.js](https://github.com/ONLYOFFICE/document-server-integration/tree/main/web/documentserver-example/nodejs) - `web/documentserver-example/nodejs/config/default.json`
* [PHP](https://github.com/ONLYOFFICE/document-server-integration/tree/main/web/documentserver-example/php) - `web/documentserver-example/php/src/configuration/ConfigurationManager.php`
* [PHP (Laravel)](https://github.com/ONLYOFFICE/document-server-integration/tree/main/web/documentserver-example/php-laravel) - `web/documentserver-example/php-laravel/.env.example`
* [Python](https://github.com/ONLYOFFICE/document-server-integration/tree/main/web/documentserver-example/python) - `web/documentserver-example/python/src/configuration/configuration.py`
* [Ruby](https://github.com/ONLYOFFICE/document-server-integration/tree/main/web/documentserver-example/ruby) - `web/documentserver-example/ruby/app/configuration/configuration.rb`
More information on how to use these examples can be found here: [https://api.onlyoffice.com/docs/docs-api/samples/language-specific-examples/](https://api.onlyoffice.com/docs/docs-api/samples/language-specific-examples/)

View File

@ -143,6 +143,7 @@
.scroll-table-body {
top: 31px;
height: calc(100% - 34px);
}
footer {
@ -748,6 +749,7 @@
.scroll-table-body {
top: 36px;
height: calc(100% - 34px);
}
.scroll-table-body tr:first-child {

View File

@ -844,6 +844,7 @@ footer table tr td:first-child {
position: absolute;
right: 0;
top: 71px;
height: calc(100% - 130px);
scrollbar-color: #D0D5DA transparent;
scrollbar-width: thin;
}

View File

@ -398,7 +398,9 @@ if (typeof jQuery != "undefined") {
jq("#downloadConverted").removeClass("disable");
jq("#hiddenFileName").attr("data",response.filename);
if (response.error !== "FileTypeIsNotSupported") {
jq("#beginEditConverted").removeClass("disable");
if (formatManager.isEditable(fileExt)) {
jq("#beginEditConverted").removeClass("disable");
}
jq("#beginViewConverted").removeClass("disable");
jq("#downloadConverted").attr("data","fromStorage");
} else {

View File

@ -143,6 +143,7 @@
.scroll-table-body {
top: 31px;
height: calc(100% - 34px);
}
footer {
@ -748,6 +749,7 @@
.scroll-table-body {
top: 36px;
height: calc(100% - 34px);
}
.scroll-table-body tr:first-child {

View File

@ -848,6 +848,7 @@ footer a:hover {
position: absolute;
right: 0;
top: 71px;
height: calc(100% - 130px);
scrollbar-color: #D0D5DA transparent;
scrollbar-width: thin;
}

View File

@ -398,7 +398,9 @@ if (typeof jQuery != "undefined") {
jq("#downloadConverted").removeClass("disable");
jq("#hiddenFileName").attr("data",response.filename);
if (response.error !== "FileTypeIsNotSupported") {
jq("#beginEditConverted").removeClass("disable");
if (formatManager.isEditable(fileExt)) {
jq("#beginEditConverted").removeClass("disable");
}
jq("#beginViewConverted").removeClass("disable");
jq("#downloadConverted").attr("data","fromStorage");
} else {

View File

@ -79,7 +79,9 @@ func (srv *DefaultServerEndpointsHandler) Convert(w http.ResponseWriter, r *http
return
}
newUrl, newExt, err := srv.ConversionManager.GetConverterUri(fileUrl, fileExt, toExt, key, true, filename)
newUrl, newExt, err := srv.ConversionManager.GetConverterUri(
fileUrl, fileExt, toExt, key, true, filename, payload.Filepass,
)
if err != nil {
response.Error = err.Error()
srv.logger.Errorf("File conversion error: %s", err.Error())

View File

@ -74,7 +74,10 @@ type JwtManager interface {
type ConversionManager interface {
GetInternalExtension(fileType string) string
GetConverterUri(docUri, fromExt, toExt, docKey string, isAsync bool, title string) (string, string, error)
GetConverterUri(
docUri, fromExt, toExt, docKey string,
isAsync bool, title string, filePass string,
) (string, string, error)
}
type CommandManager interface {

View File

@ -69,6 +69,7 @@ func (cm DefaultConversionManager) GetConverterUri(
docKey string,
isAsync bool,
title string,
filePass string,
) (string, string, error) {
if fromExt == "" {
fromExt = utils.GetFileExt(docUri, true)
@ -81,6 +82,7 @@ func (cm DefaultConversionManager) GetConverterUri(
Title: title,
Key: docKey,
Async: isAsync,
Password: filePass,
RegisteredClaims: jwt.RegisteredClaims{
ExpiresAt: jwt.NewNumericDate(time.Now().Add(time.Minute * cm.config.JwtExpiresIn)),
IssuedAt: jwt.NewNumericDate(time.Now()),

View File

@ -78,7 +78,7 @@ func (dm DefaultDocumentManager) sanitizeEditorParameters(parameters *managers.E
}
actions := dm.FormatManager.GetActions(utils.GetFileExt(parameters.Filename, true))
parameters.CanEdit = slices.Contains(actions, "edit")
parameters.CanEdit = slices.Contains(actions, "edit") || slices.Contains(actions, "lossy-edit")
if parameters.CanEdit && parameters.PermissionsMode != "view" {
parameters.Mode = "edit"

View File

@ -30,23 +30,6 @@ type DefaultUserManager struct {
func NewDefaultUserManager(logger *zap.SugaredLogger) managers.UserManager {
users := []models.User{
{
Id: "uid-0",
Username: "",
Email: "",
Group: "",
ReviewGroups: nil,
CommentGroups: nil,
UserInfoGroups: nil,
Favorite: -1,
DeniedPermissions: []string{"protect"},
Description: descriptionUser0,
Templates: false,
Avatar: false,
Goback: nil,
Close: nil,
Roles: []string{},
},
{
Id: "uid-1",
Username: "John Smith",
@ -116,6 +99,23 @@ func NewDefaultUserManager(logger *zap.SugaredLogger) managers.UserManager {
},
Roles: []string{"role"},
},
{
Id: "uid-0",
Username: "",
Email: "",
Group: "",
ReviewGroups: nil,
CommentGroups: nil,
UserInfoGroups: nil,
Favorite: -1,
DeniedPermissions: []string{"protect"},
Description: descriptionUser0,
Templates: false,
Avatar: false,
Goback: nil,
Close: nil,
Roles: []string{},
},
}
return &DefaultUserManager{
users,
@ -197,7 +197,7 @@ func (um DefaultUserManager) GetUserById(uid string) (models.User, error) {
}
}
return um.users[0], nil
return um.GetUserById("uid-0")
}
func (um DefaultUserManager) GetUserInfoById(uid string, serverAddress string) models.UserInfo {

View File

@ -99,6 +99,7 @@ type ConvertRequestPayload struct {
Key string `json:"key"`
Async bool `json:"async"`
JwtToken string `json:"token,omitempty"`
Password string `json:"password"`
jwt.RegisteredClaims
}

View File

@ -58,7 +58,6 @@ type EditorConfig struct {
Mode string `json:"mode,omitempty"`
ActionLink string `json:"actionLink,omitempty"`
CreateUrl string `json:"createUrl,omitempty"`
FileChoiceUrl string `json:"fileChoiceUrl,omitempty"`
CoEditing map[string]interface{} `json:"coEditing,omitempty"`
Plugins map[string]interface{} `json:"plugins,omitempty"`
Templates []Template `json:"templates,omitempty"`

View File

@ -130,7 +130,7 @@ if (typeof jQuery !== "undefined") {
var responseText = data.responseText;
var response = jq.parseJSON(responseText);
if (response.error) {
if (response.error.includes("Incorrect password")) {
if (response.error.includes("-5")) {
jq(".current").removeClass("current");
jq("#step2").addClass("error");
jq("#blockPassword").show();
@ -385,7 +385,9 @@ if (typeof jQuery !== "undefined") {
jq("#downloadConverted").removeClass("disable");
jq("#hiddenFileName").attr("data",response.filename);
if (response.error !== "FileTypeIsNotSupported") {
jq("#beginEditConverted").removeClass("disable");
if (formatManager.isEditable(fileExt)) {
jq("#beginEditConverted").removeClass("disable");
}
jq("#beginViewConverted").removeClass("disable");
jq("#downloadConverted").attr("data","fromStorage");
} else {

View File

@ -143,6 +143,7 @@
.scroll-table-body {
top: 31px;
height: calc(100% - 34px);
}
footer {
@ -747,6 +748,7 @@
.scroll-table-body {
top: 36px;
height: calc(100% - 34px);
}
.scroll-table-body tr:first-child {

View File

@ -845,6 +845,7 @@ footer table tr td:first-child {
position: absolute;
right: 0;
top: 71px;
height: calc(100% - 130px);
scrollbar-color: #D0D5DA transparent;
scrollbar-width: thin;
}

View File

@ -59,7 +59,7 @@
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.15.0</version>
<version>2.18.6</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
@ -84,7 +84,7 @@
<dependency>
<groupId>com.onlyoffice</groupId>
<artifactId>docs-integration-sdk</artifactId>
<version>1.6.0</version>
<version>1.8.0</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents.core5</groupId>

View File

@ -68,7 +68,7 @@ public class ExampleData {
"Can view chat",
"Has an avatar",
"Can submit forms",
"Has no roles",
"Has role 'Anyone'",
"Can start filling"
);
@ -85,7 +85,7 @@ public class ExampleData {
"Can view chat",
"Has an avatar",
"Can't submit forms",
"Has role 'Anyone'",
"Has role 'role'",
"Can start filling"
);
@ -105,7 +105,7 @@ public class ExampleData {
"Can't close history",
"Can't restore the file version",
"Can't submit forms",
"Has role 'role'",
"Has no roles",
"Can start filling"
);
@ -114,19 +114,19 @@ public class ExampleData {
"", List.of(FilterState.NULL.toString()), List.of(FilterState.NULL.toString()),
List.of(FilterState.NULL.toString()), List.of(FilterState.NULL.toString()),
List.of(FilterState.NULL.toString()), false, true, true, true,
new Goback(null, false), new Close(null, false), null, true);
new Goback(null, false), new Close(null, false), List.of("Anyone"), true);
// create user 2 with the specified parameters
userService.createUser("Mark Pottato", "pottato@example.com", descriptionUserSecond,
"group-2", List.of("", "group-2"), List.of(FilterState.NULL.toString()),
List.of("group-2", ""), List.of("group-2"), List.of("group-2", ""), true, true,
true, true, new Goback("Go to Documents", null), new Close(null, true), List.of("Anyone"), false);
true, true, new Goback("Go to Documents", null), new Close(null, true), List.of("role"), false);
// create user 3 with the specified parameters
userService.createUser("Hamish Mitchell", null, descriptionUserThird,
"group-3", List.of("group-2"), List.of("group-2", "group-3"), List.of("group-2"),
new ArrayList<>(), List.of("group-2"), null, true, true, false,
null, new Close(null, true), List.of("role"), false);
null, new Close(null, true), null, false);
// create user 0 with the specified parameters
userService.createUser("Anonymous", null, descriptionUserZero, "",

View File

@ -33,8 +33,8 @@ spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
hibernate.ddl-auto
spring.h2.console.enabled=true
spring.h2.console.path=/h2
spring.servlet.multipart.max-file-size=5MB
spring.servlet.multipart.max-request-size=5MB
spring.servlet.multipart.max-file-size=100MB
spring.servlet.multipart.max-request-size=100MB
url.index=/
url.converter=/converter

View File

@ -130,6 +130,7 @@
.scroll-table-body {
top: 31px;
height: calc(100% - 34px);
}
footer {
@ -740,6 +741,7 @@
.scroll-table-body {
top: 36px;
height: calc(100% - 34px);
}
.scroll-table-body tr:first-child {

View File

@ -846,6 +846,7 @@ footer table tr td:first-child {
position: absolute;
right: 0;
top: 71px;
height: calc(100% - 130px);
scrollbar-color: #D0D5DA transparent;
scrollbar-width: thin;
}

View File

@ -390,7 +390,9 @@ if (typeof jQuery !== "undefined") {
jq("#downloadConverted").removeClass("disable");
jq("#hiddenFileName").attr("data",response.filename);
if (response.error !== "FileTypeIsNotSupported") {
jq("#beginEditConverted").removeClass("disable");
if (formatManager.isEditable(fileExt)) {
jq("#beginEditConverted").removeClass("disable");
}
jq("#beginViewConverted").removeClass("disable");
jq("#downloadConverted").attr("data","fromStorage");
} else {

View File

@ -79,6 +79,7 @@ public class EditorServlet extends HttpServlet {
// an image that will be inserted into the document
Map<String, Object> dataInsertImage = new HashMap<>();
Map<String, Object>[] images = new HashMap[1];
images[0] = new HashMap<>();
images[0].put("fileType", "svg");
images[0].put("url", DocumentManager.getServerUrl(true) + "/css/img/logo.svg");
if (isEnableDirectUrl) {

View File

@ -1,6 +1,6 @@
version=1.15.0
filesize-max=5242880
filesize-max=104857600
storage-folder=app_data
filename-max=50
enable-forgotten=TRUE

View File

@ -142,6 +142,7 @@
.scroll-table-body {
top: 31px;
height: calc(100% - 34px);
}
footer {
@ -734,6 +735,7 @@
.scroll-table-body {
top: 36px;
height: calc(100% - 34px);
}
.scroll-table-body tr:first-child {

View File

@ -851,6 +851,7 @@ footer table tr td:first-child {
position: absolute;
right: 0;
top: 71px;
height: calc(100% - 130px);
scrollbar-color: #D0D5DA transparent;
scrollbar-width: thin;
}

View File

@ -397,7 +397,9 @@ if (typeof jQuery !== "undefined") {
jq("#downloadConverted").removeClass("disable");
jq("#hiddenFileName").attr("data",response.filename);
if (response.error !== "FileTypeIsNotSupported") {
jq("#beginEditConverted").removeClass("disable");
if (formatManager.isEditable(fileExt)) {
jq("#beginEditConverted").removeClass("disable");
}
jq("#beginViewConverted").removeClass("disable");
jq("#downloadConverted").attr("data","fromStorage");
} else {

View File

@ -17,6 +17,7 @@
*/
// connect the necessary packages and modules
const crypto = require('crypto');
const express = require('express');
const path = require('path');
const favicon = require('serve-favicon');
@ -34,11 +35,11 @@ const documentService = require('./helpers/documentService');
const fileUtility = require('./helpers/fileUtility');
const wopiApp = require('./helpers/wopi/wopiRouting');
const users = require('./helpers/users');
const dataAutofill = require('./config/data.json');
const configServer = config.get('server');
const siteUrl = configServer.get('siteUrl');
const enableForgotten = configServer.get('enableForgotten');
const fileChoiceUrl = configServer.has('fileChoiceUrl') ? configServer.get('fileChoiceUrl') : '';
const cfgSignatureEnable = configServer.get('token.enable');
const cfgSignatureUseForRequest = configServer.get('token.useforrequest');
const cfgSignatureAuthorizationHeader = configServer.get('token.authorizationHeader');
@ -221,6 +222,18 @@ app.get('/download', (req, res) => { // define a handler for downloading files
filestream.pipe(res); // send file information to the response by streams
});
app.get('/data', (req, res) => { // define a handler for getting sample ai form data
if (!req.query.code) { // integration must validate incoming codes and generate new ones for each data request
res.sendStatus(403);
return;
}
res.send({
data: dataAutofill,
code: crypto.randomBytes(16).toString('hex'),
});
});
app.get('/history', (req, res) => {
req.DocManager = new DocManager(req, res);
if (cfgSignatureEnable && cfgSignatureUseForRequest) {
@ -283,7 +296,7 @@ app.post('/upload', (req, res) => { // define a handler for uploading files
if (err) { // if an error occurs
// DocManager.cleanFolderRecursive(uploadDirTmp, true); // clean the folder with temporary files
res.writeHead(200, { 'Content-Type': 'application/json' });
res.write(`{ "error": "${err.message}"}`);
res.write(`{ "error": "${err.message}" }`);
res.end();
return;
}
@ -292,7 +305,7 @@ app.post('/upload', (req, res) => { // define a handler for uploading files
if (file === undefined) { // if file parameter is undefined
res.writeHead(200, { 'Content-Type': 'application/json' });
res.write('{ "error": "Uploaded file not found"}');
res.write('{ "error": "Uploaded file not found" }');
res.end();
return;
}
@ -303,7 +316,7 @@ app.post('/upload', (req, res) => { // define a handler for uploading files
if (fileSizeLimit < file.size || file.size <= 0) {
// DocManager.cleanFolderRecursive(uploadDirTmp, true); // clean the folder with temporary files
res.writeHead(200, { 'Content-Type': 'application/json' });
res.write('{ "error": "File size is incorrect"}');
res.write('{ "error": "File size is incorrect" }');
res.end();
return;
}
@ -315,7 +328,7 @@ app.post('/upload', (req, res) => { // define a handler for uploading files
if (exts.indexOf(curExt) === -1 || fileUtility.getFormatActions(curExt).length === 0) {
// DocManager.cleanFolderRecursive(uploadDirTmp, true); // if not, clean the folder with temporary files
res.writeHead(200, { 'Content-Type': 'application/json' });
res.write('{ "error": "File type is not supported"}');
res.write('{ "error": "File type is not supported" }');
res.end();
return;
}
@ -324,7 +337,7 @@ app.post('/upload', (req, res) => { // define a handler for uploading files
// DocManager.cleanFolderRecursive(uploadDirTmp, true); // clean the folder with temporary files
res.writeHead(200, { 'Content-Type': 'application/json' });
if (error) { // if an error occurs
res.write(`{ "error": "${error}"}`); // write an error message to the response
res.write(`{ "error": "${error}" }`); // write an error message to the response
} else {
// otherwise, write a new file name to the response
res.write(`{ "filename": "${file.originalFilename}", "documentType": "${documentType}" }`);
@ -557,7 +570,7 @@ app.delete('/file', (req, res) => { // define a handler for removing file
}
res.writeHead(200, { 'Content-Type': 'application/json' });
res.write('{"success":true}');
res.write('{ "success":true }');
} catch (ex) {
console.log(ex);
res.writeHead(200, { 'Content-Type': 'text/plain' });
@ -729,7 +742,7 @@ app.post('/track', async (req, res) => { // define a handler for tracking file c
if (!req.DocManager.existsSync(req.DocManager.storagePath(fileName, userAddress))) {
console.log(`callbackProcessSave error: name = ${fileName} userAddress = ${userAddress} is not exist`);
response.setHeader('Content-Type', 'application/json');
response.write('{"error":1, "message":"file is not exist"}');
response.write('{ "error": 1, "message": "file is not exist" }');
response.end();
return;
}
@ -791,13 +804,13 @@ app.post('/track', async (req, res) => { // define a handler for tracking file c
} catch (ex) {
console.log(ex);
response.setHeader('Content-Type', 'application/json');
response.write(`{"error":1,"message":${JSON.stringify(ex)}}`);
response.write(`{ "error": 1, "message":${JSON.stringify(ex)} }`);
response.end();
return;
}
response.setHeader('Content-Type', 'application/json');
response.write('{"error":0}');
response.write('{ "error": 0 }');
response.end();
};
@ -805,7 +818,7 @@ app.post('/track', async (req, res) => { // define a handler for tracking file c
const processSave = async function processSave(downloadUri, body, fileName, userAddress) {
if (!downloadUri) {
response.setHeader('Content-Type', 'application/json');
response.write('{"error":1,"message":"save uri is empty"}');
response.write('{ "error": 1, "message": "save uri is empty" }');
response.end();
return;
}
@ -917,13 +930,13 @@ app.post('/track', async (req, res) => { // define a handler for tracking file c
}
} catch (ex) {
console.log(ex);
response.write(`{"error":1,"message":${JSON.stringify(ex)}}`);
response.write(`{ "error":1, "message":${JSON.stringify(ex)} }`);
response.end();
return;
}
response.setHeader('Content-Type', 'application/json');
response.write('{"error":0}');
response.write('{ "error": 0 }');
response.end();
};
@ -931,7 +944,7 @@ app.post('/track', async (req, res) => { // define a handler for tracking file c
const processForceSave = async function processForceSave(downloadUri, body, fileName, userAddress) {
if (!downloadUri) {
response.setHeader('Content-Type', 'application/json');
response.write('{"error":1,"message":"forcesave uri is empty"}');
response.write('{ "error":1, "message": "forcesave uri is empty" }');
response.end();
return;
}
@ -985,7 +998,7 @@ app.post('/track', async (req, res) => { // define a handler for tracking file c
}
response.setHeader('Content-Type', 'application/json');
response.write('{"error":0}');
response.write('{ "error":0 }');
response.end();
};
@ -1025,7 +1038,7 @@ app.post('/track', async (req, res) => { // define a handler for tracking file c
}
if (!body) {
res.writeHead(200, { 'Content-Type': 'application/json' });
res.write('{"error":1,"message":"body is empty"}');
res.write('{ "error": 1, "message": "body is empty" }');
res.end();
return;
}
@ -1203,6 +1216,38 @@ app.get('/editor', (req, res) => { // define a handler for editing document
user.goback.url = `${req.DocManager.getServerUrl()}/`;
}
let pluginsConfig;
if (fileType === fileUtility.fileType.pdf // pdf form only
&& userid !== 'uid-0' // users only
&& mode !== 'comment') { // form field must be editable
const baseUrl = configServer.has('exampleUrl') && configServer.get('exampleUrl')
? configServer.get('exampleUrl')
: req.DocManager.getServerUrl();
const pluginGuid = 'asc.{6A95DA5C-857E-4C26-B00B-34876F1EEAD8}';
const pluginCode = crypto.randomBytes(16).toString('hex');
pluginsConfig = {
autostart: [...new Set([
(mode === 'fillForms' ? pluginGuid : []),
...(plugins.autostart || []),
])],
options: {
[pluginGuid]: {
code: pluginCode,
callback: `${baseUrl}/data`,
},
...(plugins.options || {}),
},
pluginsData: [...new Set([
`${baseUrl}/assets/plugin-aiautofill/config.json`,
...(plugins.pluginsData || []),
])],
};
} else {
pluginsConfig = plugins;
}
// file config data
const argss = {
apiUrl: siteUrl + configServer.get('apiUrl'),
@ -1246,9 +1291,8 @@ app.get('/editor', (req, res) => { // define a handler for editing document
reviewGroups: JSON.stringify(reviewGroups),
commentGroups: JSON.stringify(commentGroups),
userInfoGroups: JSON.stringify(userInfoGroups),
fileChoiceUrl,
submitForm,
plugins: JSON.stringify(plugins),
plugins: JSON.stringify(pluginsConfig),
actionData,
fileKey: userid !== 'uid-0'
? JSON.stringify({ fileName, userAddress: req.DocManager.curUserHostAddress() }) : null,

View File

@ -0,0 +1,304 @@
{
"sellers": [
{
"name": "John Anderson",
"email": "john.anderson@example.com",
"phone": "+1-234-567-8900",
"mobile": "+1-234-567-8901",
"address": "123 Main St",
"city": "Chicago",
"state": "IL",
"zip": "60601",
"country": "USA",
"company": "Tech Solutions LLC"
},
{
"name": "Maria Garcia",
"email": "maria.garcia@ventas.es",
"phone": "+34-912-345-678",
"mobile": "+34-600-123-456",
"address": "Calle Mayor 45",
"city": "Madrid",
"state": "Madrid",
"zip": "28013",
"country": "Spain",
"company": "Soluciones Digitales SA"
}
],
"deals": [
{
"name": "Enterprise Software License",
"number": "DL-2025-001",
"date": "2025-01-15",
"closeDate": "2025-03-30",
"status": "pending",
"amount": 125000,
"currency": "USD",
"description": "Annual enterprise software license with premium support package"
},
{
"name": "Cloud Infrastructure Migration",
"number": "DL-2025-002",
"date": "2025-02-10",
"closeDate": "2025-06-15",
"status": "in_progress",
"amount": 450000,
"currency": "EUR",
"description": "Complete cloud migration service with training and support"
}
],
"buyers": [
{
"name": "Jane Mitchell",
"email": "jane.mitchell@techcorp.com",
"phone": "+1-987-654-3210",
"mobile": "+1-987-654-3211",
"address": "321 Park Avenue",
"city": "New York",
"state": "NY",
"zip": "10001",
"country": "USA",
"company": "TechCorp International",
"department": "IT"
},
{
"name": "Pierre Dubois",
"email": "p.dubois@innovatech.fr",
"phone": "+33-1-42-34-56-78",
"mobile": "+33-6-12-34-56-78",
"address": "15 Avenue des Champs-Élysées",
"city": "Paris",
"state": "Île-de-France",
"zip": "75008",
"country": "France",
"company": "InnovaTech France",
"department": "Procurement"
}
],
"companies": [
{
"name": "Acme Corporation",
"email": "info@acmecorp.com",
"phone": "+1-312-555-0100",
"website": "https://www.acmecorp.com",
"address": "456 Business Plaza",
"city": "Chicago",
"state": "IL",
"zip": "60602",
"country": "USA",
"industry": "Technology"
},
{
"name": "Global Innovations Ltd",
"email": "contact@globalinnov.co.uk",
"phone": "+44-20-7123-4567",
"website": "https://www.globalinnov.co.uk",
"address": "88 Piccadilly Street",
"city": "London",
"state": "England",
"zip": "W1J 9HF",
"country": "United Kingdom",
"industry": "Consulting"
}
],
"products": [
{
"name": "Premium Software Suite",
"sku": "SW-PREM-001",
"category": "Software",
"quantity": 100,
"price": 999.99,
"currency": "USD",
"description": "Comprehensive software package with all premium features"
},
{
"name": "Professional Laptop",
"sku": "HW-LAP-PRO-15",
"category": "Hardware",
"quantity": 50,
"price": 1499.99,
"currency": "USD",
"description": "15-inch professional laptop with high-performance specs"
},
{
"name": "Cloud Storage Plan - Business",
"sku": "CLD-STR-BIZ-1TB",
"category": "Services",
"quantity": 1,
"price": 29.99,
"currency": "USD",
"description": "1TB cloud storage with business features (monthly subscription)"
}
],
"persons": [
{
"name": "John Anderson",
"firstName": "John",
"middleName": "Michael",
"lastName": "Anderson",
"dateOfBirth": "1990-01-15",
"gender": "Male",
"title": "Senior Software Engineer",
"email": "john.anderson@example.com",
"phone": "+1-234-567-8900",
"mobile": "+1-234-567-8901",
"address": "123 Main Street, Apt 4B",
"city": "Chicago",
"state": "IL",
"zip": "60601",
"country": "USA",
"website": "johnanderson.dev"
},
{
"name": "Yuki Tanaka",
"firstName": "Yuki",
"lastName": "Tanaka",
"dateOfBirth": "1988-07-22",
"gender": "Female",
"title": "UX/UI Designer",
"email": "yuki.tanaka@design.jp",
"phone": "+81-3-1234-5678",
"mobile": "+81-90-1234-5678",
"address": "1-2-3 Shibuya",
"city": "Tokyo",
"state": "Tokyo",
"zip": "150-0002",
"country": "Japan",
"website": "yukitanaka.design"
},
{
"name": "Sarah Johnson",
"firstName": "Sarah",
"lastName": "Johnson",
"employeeId": "ACM-2019-1234",
"personalEmail": "sarah.j.personal@gmail.com",
"department": "Product Development",
"jobPosition": "Senior Product Manager",
"hireDate": "2019-03-15",
"salary": 120000,
"salaryCurrency": "USD"
},
{
"name": "Carlos Rodriguez",
"firstName": "Carlos",
"lastName": "Rodriguez",
"employeeId": "ACM-2020-5678",
"personalEmail": "carlos.rod.personal@gmail.com",
"department": "Engineering",
"jobPosition": "DevOps Engineer",
"hireDate": "2020-07-20",
"salary": 105000,
"salaryCurrency": "USD"
}
],
"invoices": [
{
"number": "INV-2025-0001",
"date": "2025-01-15",
"dueDate": "2025-02-15",
"status": "paid",
"subtotal": 10000,
"tax": 800,
"taxRate": 8,
"discount": 500,
"total": 10300,
"currency": "USD",
"notes": "Payment received on time. Thank you for your business!",
"items": [
{
"productId": "P001",
"description": "Premium Software Suite - 10 licenses",
"quantity": 10,
"unitPrice": 999.99,
"total": 9999.90
}
]
},
{
"number": "INV-2025-0002",
"date": "2025-02-01",
"dueDate": "2025-03-01",
"status": "pending",
"subtotal": 75000,
"tax": 6000,
"taxRate": 8,
"discount": 0,
"total": 81000,
"currency": "USD",
"notes": "Payment terms: Net 30 days",
"items": [
{
"productId": "P002",
"description": "Professional Laptop - 50 units",
"quantity": 50,
"unitPrice": 1499.99,
"total": 74999.50
}
]
}
],
"customers": [
{
"type": "individual",
"firstName": "Emily",
"lastName": "Chen",
"email": "emily.chen@email.com",
"phone": "+1-555-111-2222",
"dateOfBirth": "1985-09-14",
"registrationDate": "2023-01-10",
"totalOrders": 15,
"totalSpent": 4500.75,
"address": {
"street": "567 Oak Street",
"city": "Seattle",
"state": "WA",
"zip": "98101",
"country": "USA"
}
},
{
"type": "business",
"companyName": "TechStart Solutions",
"contactPerson": "Robert Kim",
"email": "robert.kim@techstart.com",
"phone": "+1-555-333-4444",
"registrationDate": "2022-06-20",
"totalOrders": 42,
"totalSpent": 125000.00,
"address": {
"street": "890 Enterprise Boulevard",
"city": "Austin",
"state": "TX",
"zip": "78701",
"country": "USA"
}
}
],
"events": [
{
"name": "Annual Tech Conference 2025",
"type": "conference",
"startDate": "2025-06-15",
"endDate": "2025-06-17",
"startTime": "09:00",
"endTime": "18:00",
"timezone": "America/New_York",
"location": {
"name": "Convention Center",
"address": "100 Convention Plaza",
"city": "New York",
"state": "NY",
"zip": "10001",
"country": "USA"
},
"capacity": 5000,
"registered": 3500,
"status": "upcoming",
"organizer": "Tech Events Inc",
"description": "Join us for the biggest tech conference of the year featuring keynotes from industry leaders.",
"ticketPrice": 299.00,
"currency": "USD",
"website": "https://techconf2025.com"
}
]
}

View File

@ -16,6 +16,7 @@
*
*/
const pathModule = require('path');
const supportedFormats = require('../public/assets/document-formats/onlyoffice-docs-formats.json'); // eslint-disable-line
const fileUtility = {};
@ -39,8 +40,7 @@ fileUtility.getFileNameFromUrl = function getFileNameFromUrl(url, withoutExtensi
fileUtility.getFileName = function getFileName(path, withoutExtension) {
if (!path) return '';
const parts = path.split('/');
const fileName = parts.pop(); // get the file name from the last part of the path
const fileName = pathModule.basename(path); // get the file name from the last part of the path
// get file name without extension
if (withoutExtension) {

View File

@ -116,6 +116,7 @@ const descrUser0 = [
'Has empty role',
'Can\'t submit forms',
'Tour of tips when opening a document',
'Without AI Auto Fill Plugin',
];
const users = [

File diff suppressed because it is too large Load Diff

View File

@ -20,7 +20,7 @@
"debug": "^4.3.4",
"ejs": "^3.1.10",
"express": "^4.21.1",
"fast-xml-parser": "^4.4.1",
"fast-xml-parser": "^5.3.4",
"formidable": "^3.5.4",
"he": "^1.2.0",
"jsonwebtoken": "^9.0.2",
@ -52,7 +52,7 @@
"word-wrap": "1.2.4",
"pac-resolver": "7.0.0",
"degenerator": "3.0.1",
"qs": "6.7.3",
"qs": "6.14.1",
"json5": "2.2.3"
}
}

View File

@ -442,7 +442,9 @@ if (typeof jQuery != "undefined") {
jq("#downloadConverted").removeClass("disable");
jq("#hiddenFileName").attr("data",response.filename);
if (response.error !== "FileTypeIsNotSupported") {
jq("#beginEditConverted").removeClass("disable");
if (formatManager.isEditable(fileExt)) {
jq("#beginEditConverted").removeClass("disable");
}
jq("#beginViewConverted").removeClass("disable");
jq("#downloadConverted").attr("data","fromStorage");
} else {

View File

@ -54,7 +54,6 @@
"shareUrl": "<%- file.uriUser %>",
"toolbarDocked": "top"
},
"fileChoiceUrl": "<%- editor.fileChoiceUrl %>",
"lang": "<%- editor.lang %>",
"mode": "<%- editor.mode %>",
"plugins": <%- editor.plugins %>,

View File

@ -10,7 +10,7 @@ DOCS_INTEGRATION_SDK_CONVERT_SERVICE_URL=/converter
DOCUMENT_STORAGE_PUBLIC_URL=http://localhost
DOCUMENT_STORAGE_PRIVATE_URL=http://proxy
DOCUMENT_STORAGE_MAXIMUM_FILE_SIZE=5242880
DOCUMENT_STORAGE_MAXIMUM_FILE_SIZE=104857600
DOCUMENT_STORAGE_DISPLAY_FORGOTTEN_PAGE=false

View File

@ -165,7 +165,7 @@ class FileController extends Controller
fileType: PathInfo::extension($request->filename),
outputType: $request->input('fileExt', 'ooxml'),
url: $request->fileUri,
password: $request->password,
password: $request->filePass,
user: $request->user,
userAddress: $request->ip(),
lang: cache('lang', default: 'en'),

View File

@ -14,7 +14,7 @@ class CheckAndDecodeJWTPayload
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
* @param Closure(Request): (Response) $next
*/
public function handle(Request $request, Closure $next): Response
{

View File

@ -11,7 +11,7 @@ class EnsureForgottenPageEnabled
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
* @param Closure(Request): (Response) $next
*/
public function handle(Request $request, Closure $next): Response
{

View File

@ -14,7 +14,7 @@ class EnsureJWTTokenIsPresent
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
* @param Closure(Request): (Response) $next
*/
public function handle(Request $request, Closure $next): Response
{

View File

@ -12,7 +12,7 @@ class EnsureUserDirectoryExists
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
* @param Closure(Request): (Response) $next
*/
public function handle(Request $request, Closure $next): Response
{

View File

@ -74,7 +74,7 @@ class SettingsManager extends OnlyOfficeSettingsManager
],
],
'file' => [
'max_size' => env('DOCUMENT_STORAGE_MAXIMUM_FILE_SIZE', 5 * 1024 * 1024),
'max_size' => env('DOCUMENT_STORAGE_MAXIMUM_FILE_SIZE', 100 * 1024 * 1024),
],
];
}

View File

@ -36,6 +36,9 @@ class ConvertRequest
false,
$data['lang'],
$data['filename'],
$data['codePage'] ?? null,
$data['delimiter'] ?? null,
$data['password'] ?? null,
);
if (property_exists($result, 'Error')) {

View File

@ -30,7 +30,7 @@ class CreateDocumentRequest
public mixed $fileContent,
public string $user,
) {
if ($fileSize && ($fileSize <= 0 || $fileSize > env('STORAGE_MAXIMUM_FILE_SIZE', 5 * 1024 * 1024))) {
if ($fileSize && ($fileSize <= 0 || $fileSize > env('DOCUMENT_STORAGE_MAXIMUM_FILE_SIZE', 100 * 1024 * 1024))) {
throw new UnexpectedValueException("Incorrect file size: $fileSize");
}
}

View File

@ -1,5 +1,7 @@
<?php
use App\Providers\AppServiceProvider;
return [
App\Providers\AppServiceProvider::class,
AppServiceProvider::class,
];

View File

@ -4,7 +4,7 @@
"firebase/php-jwt": "^6.10",
"laravel/framework": "^11.0",
"laravel/tinker": "^2.9",
"onlyoffice/docs-integration-sdk": "dev-feature/diagram"
"onlyoffice/docs-integration-sdk": "1.4"
},
"require-dev": {
"fakerphp/faker": "^1.23",

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,7 @@
<?php
use App\Models\User;
return [
/*
@ -62,7 +64,7 @@ return [
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => env('AUTH_MODEL', App\Models\User::class),
'model' => env('AUTH_MODEL', User::class),
],
// 'users' => [

View File

@ -2,12 +2,13 @@
namespace Database\Factories;
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\User>
* @extends Factory<User>
*/
class UserFactory extends Factory
{

View File

@ -11,7 +11,7 @@ services:
documentserver:
container_name: documentserver
image: onlyoffice/documentserver:8.2
image: onlyoffice/documentserver:9.3
expose:
- "80"
environment:

View File

@ -436,9 +436,9 @@
}
},
"node_modules/@rollup/rollup-android-arm-eabi": {
"version": "4.40.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.1.tgz",
"integrity": "sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw==",
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz",
"integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==",
"cpu": [
"arm"
],
@ -450,9 +450,9 @@
]
},
"node_modules/@rollup/rollup-android-arm64": {
"version": "4.40.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.1.tgz",
"integrity": "sha512-PPkxTOisoNC6TpnDKatjKkjRMsdaWIhyuMkA4UsBXT9WEZY4uHezBTjs6Vl4PbqQQeu6oION1w2voYZv9yquCw==",
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz",
"integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==",
"cpu": [
"arm64"
],
@ -464,9 +464,9 @@
]
},
"node_modules/@rollup/rollup-darwin-arm64": {
"version": "4.40.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.1.tgz",
"integrity": "sha512-VWXGISWFY18v/0JyNUy4A46KCFCb9NVsH+1100XP31lud+TzlezBbz24CYzbnA4x6w4hx+NYCXDfnvDVO6lcAA==",
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz",
"integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==",
"cpu": [
"arm64"
],
@ -478,9 +478,9 @@
]
},
"node_modules/@rollup/rollup-darwin-x64": {
"version": "4.40.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.1.tgz",
"integrity": "sha512-nIwkXafAI1/QCS7pxSpv/ZtFW6TXcNUEHAIA9EIyw5OzxJZQ1YDrX+CL6JAIQgZ33CInl1R6mHet9Y/UZTg2Bw==",
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz",
"integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==",
"cpu": [
"x64"
],
@ -492,9 +492,9 @@
]
},
"node_modules/@rollup/rollup-freebsd-arm64": {
"version": "4.40.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.1.tgz",
"integrity": "sha512-BdrLJ2mHTrIYdaS2I99mriyJfGGenSaP+UwGi1kB9BLOCu9SR8ZpbkmmalKIALnRw24kM7qCN0IOm6L0S44iWw==",
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz",
"integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==",
"cpu": [
"arm64"
],
@ -506,9 +506,9 @@
]
},
"node_modules/@rollup/rollup-freebsd-x64": {
"version": "4.40.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.1.tgz",
"integrity": "sha512-VXeo/puqvCG8JBPNZXZf5Dqq7BzElNJzHRRw3vjBE27WujdzuOPecDPc/+1DcdcTptNBep3861jNq0mYkT8Z6Q==",
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz",
"integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==",
"cpu": [
"x64"
],
@ -520,9 +520,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
"version": "4.40.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.1.tgz",
"integrity": "sha512-ehSKrewwsESPt1TgSE/na9nIhWCosfGSFqv7vwEtjyAqZcvbGIg4JAcV7ZEh2tfj/IlfBeZjgOXm35iOOjadcg==",
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz",
"integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==",
"cpu": [
"arm"
],
@ -534,9 +534,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
"version": "4.40.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.1.tgz",
"integrity": "sha512-m39iO/aaurh5FVIu/F4/Zsl8xppd76S4qoID8E+dSRQvTyZTOI2gVk3T4oqzfq1PtcvOfAVlwLMK3KRQMaR8lg==",
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz",
"integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==",
"cpu": [
"arm"
],
@ -548,9 +548,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
"version": "4.40.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.1.tgz",
"integrity": "sha512-Y+GHnGaku4aVLSgrT0uWe2o2Rq8te9hi+MwqGF9r9ORgXhmHK5Q71N757u0F8yU1OIwUIFy6YiJtKjtyktk5hg==",
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz",
"integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==",
"cpu": [
"arm64"
],
@ -562,9 +562,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
"version": "4.40.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.1.tgz",
"integrity": "sha512-jEwjn3jCA+tQGswK3aEWcD09/7M5wGwc6+flhva7dsQNRZZTe30vkalgIzV4tjkopsTS9Jd7Y1Bsj6a4lzz8gQ==",
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz",
"integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==",
"cpu": [
"arm64"
],
@ -575,10 +575,10 @@
"linux"
]
},
"node_modules/@rollup/rollup-linux-loongarch64-gnu": {
"version": "4.40.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.1.tgz",
"integrity": "sha512-ySyWikVhNzv+BV/IDCsrraOAZ3UaC8SZB67FZlqVwXwnFhPihOso9rPOxzZbjp81suB1O2Topw+6Ug3JNegejQ==",
"node_modules/@rollup/rollup-linux-loong64-gnu": {
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz",
"integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==",
"cpu": [
"loong64"
],
@ -589,10 +589,38 @@
"linux"
]
},
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
"version": "4.40.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.1.tgz",
"integrity": "sha512-BvvA64QxZlh7WZWqDPPdt0GH4bznuL6uOO1pmgPnnv86rpUpc8ZxgZwcEgXvo02GRIZX1hQ0j0pAnhwkhwPqWg==",
"node_modules/@rollup/rollup-linux-loong64-musl": {
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz",
"integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==",
"cpu": [
"loong64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-ppc64-gnu": {
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz",
"integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==",
"cpu": [
"ppc64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"linux"
]
},
"node_modules/@rollup/rollup-linux-ppc64-musl": {
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz",
"integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==",
"cpu": [
"ppc64"
],
@ -604,9 +632,9 @@
]
},
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
"version": "4.40.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.1.tgz",
"integrity": "sha512-EQSP+8+1VuSulm9RKSMKitTav89fKbHymTf25n5+Yr6gAPZxYWpj3DzAsQqoaHAk9YX2lwEyAf9S4W8F4l3VBQ==",
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz",
"integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==",
"cpu": [
"riscv64"
],
@ -618,9 +646,9 @@
]
},
"node_modules/@rollup/rollup-linux-riscv64-musl": {
"version": "4.40.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.1.tgz",
"integrity": "sha512-n/vQ4xRZXKuIpqukkMXZt9RWdl+2zgGNx7Uda8NtmLJ06NL8jiHxUawbwC+hdSq1rrw/9CghCpEONor+l1e2gA==",
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz",
"integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==",
"cpu": [
"riscv64"
],
@ -632,9 +660,9 @@
]
},
"node_modules/@rollup/rollup-linux-s390x-gnu": {
"version": "4.40.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.1.tgz",
"integrity": "sha512-h8d28xzYb98fMQKUz0w2fMc1XuGzLLjdyxVIbhbil4ELfk5/orZlSTpF/xdI9C8K0I8lCkq+1En2RJsawZekkg==",
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz",
"integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==",
"cpu": [
"s390x"
],
@ -646,9 +674,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
"version": "4.40.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.1.tgz",
"integrity": "sha512-XiK5z70PEFEFqcNj3/zRSz/qX4bp4QIraTy9QjwJAb/Z8GM7kVUsD0Uk8maIPeTyPCP03ChdI+VVmJriKYbRHQ==",
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz",
"integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==",
"cpu": [
"x64"
],
@ -660,9 +688,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
"version": "4.40.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.1.tgz",
"integrity": "sha512-2BRORitq5rQ4Da9blVovzNCMaUlyKrzMSvkVR0D4qPuOy/+pMCrh1d7o01RATwVy+6Fa1WBw+da7QPeLWU/1mQ==",
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz",
"integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==",
"cpu": [
"x64"
],
@ -673,10 +701,38 @@
"linux"
]
},
"node_modules/@rollup/rollup-openbsd-x64": {
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz",
"integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"openbsd"
]
},
"node_modules/@rollup/rollup-openharmony-arm64": {
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz",
"integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"openharmony"
]
},
"node_modules/@rollup/rollup-win32-arm64-msvc": {
"version": "4.40.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.1.tgz",
"integrity": "sha512-b2bcNm9Kbde03H+q+Jjw9tSfhYkzrDUf2d5MAd1bOJuVplXvFhWz7tRtWvD8/ORZi7qSCy0idW6tf2HgxSXQSg==",
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz",
"integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==",
"cpu": [
"arm64"
],
@ -688,9 +744,9 @@
]
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
"version": "4.40.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.1.tgz",
"integrity": "sha512-DfcogW8N7Zg7llVEfpqWMZcaErKfsj9VvmfSyRjCyo4BI3wPEfrzTtJkZG6gKP/Z92wFm6rz2aDO7/JfiR/whA==",
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz",
"integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==",
"cpu": [
"ia32"
],
@ -701,10 +757,24 @@
"win32"
]
},
"node_modules/@rollup/rollup-win32-x64-gnu": {
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz",
"integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"win32"
]
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
"version": "4.40.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.1.tgz",
"integrity": "sha512-ECyOuDeH3C1I8jH2MK1RtBJW+YPMvSfT0a5NN0nHfQYnDSJ6tUiZH3gzwVP5/Kfh/+Tt7tpWVF9LXNTnhTJ3kA==",
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz",
"integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==",
"cpu": [
"x64"
],
@ -716,9 +786,9 @@
]
},
"node_modules/@types/estree": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
"integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
"integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
"dev": true,
"license": "MIT"
},
@ -965,13 +1035,13 @@
"dev": true
},
"node_modules/rollup": {
"version": "4.40.1",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.1.tgz",
"integrity": "sha512-C5VvvgCCyfyotVITIAv+4efVytl5F7wt+/I2i9q9GZcEXW9BP52YYOXC58igUi+LFZVHukErIIqQSWwv/M3WRw==",
"version": "4.59.0",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz",
"integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/estree": "1.0.7"
"@types/estree": "1.0.8"
},
"bin": {
"rollup": "dist/bin/rollup"
@ -981,26 +1051,31 @@
"npm": ">=8.0.0"
},
"optionalDependencies": {
"@rollup/rollup-android-arm-eabi": "4.40.1",
"@rollup/rollup-android-arm64": "4.40.1",
"@rollup/rollup-darwin-arm64": "4.40.1",
"@rollup/rollup-darwin-x64": "4.40.1",
"@rollup/rollup-freebsd-arm64": "4.40.1",
"@rollup/rollup-freebsd-x64": "4.40.1",
"@rollup/rollup-linux-arm-gnueabihf": "4.40.1",
"@rollup/rollup-linux-arm-musleabihf": "4.40.1",
"@rollup/rollup-linux-arm64-gnu": "4.40.1",
"@rollup/rollup-linux-arm64-musl": "4.40.1",
"@rollup/rollup-linux-loongarch64-gnu": "4.40.1",
"@rollup/rollup-linux-powerpc64le-gnu": "4.40.1",
"@rollup/rollup-linux-riscv64-gnu": "4.40.1",
"@rollup/rollup-linux-riscv64-musl": "4.40.1",
"@rollup/rollup-linux-s390x-gnu": "4.40.1",
"@rollup/rollup-linux-x64-gnu": "4.40.1",
"@rollup/rollup-linux-x64-musl": "4.40.1",
"@rollup/rollup-win32-arm64-msvc": "4.40.1",
"@rollup/rollup-win32-ia32-msvc": "4.40.1",
"@rollup/rollup-win32-x64-msvc": "4.40.1",
"@rollup/rollup-android-arm-eabi": "4.59.0",
"@rollup/rollup-android-arm64": "4.59.0",
"@rollup/rollup-darwin-arm64": "4.59.0",
"@rollup/rollup-darwin-x64": "4.59.0",
"@rollup/rollup-freebsd-arm64": "4.59.0",
"@rollup/rollup-freebsd-x64": "4.59.0",
"@rollup/rollup-linux-arm-gnueabihf": "4.59.0",
"@rollup/rollup-linux-arm-musleabihf": "4.59.0",
"@rollup/rollup-linux-arm64-gnu": "4.59.0",
"@rollup/rollup-linux-arm64-musl": "4.59.0",
"@rollup/rollup-linux-loong64-gnu": "4.59.0",
"@rollup/rollup-linux-loong64-musl": "4.59.0",
"@rollup/rollup-linux-ppc64-gnu": "4.59.0",
"@rollup/rollup-linux-ppc64-musl": "4.59.0",
"@rollup/rollup-linux-riscv64-gnu": "4.59.0",
"@rollup/rollup-linux-riscv64-musl": "4.59.0",
"@rollup/rollup-linux-s390x-gnu": "4.59.0",
"@rollup/rollup-linux-x64-gnu": "4.59.0",
"@rollup/rollup-linux-x64-musl": "4.59.0",
"@rollup/rollup-openbsd-x64": "4.59.0",
"@rollup/rollup-openharmony-arm64": "4.59.0",
"@rollup/rollup-win32-arm64-msvc": "4.59.0",
"@rollup/rollup-win32-ia32-msvc": "4.59.0",
"@rollup/rollup-win32-x64-gnu": "4.59.0",
"@rollup/rollup-win32-x64-msvc": "4.59.0",
"fsevents": "~2.3.2"
}
},

View File

@ -841,6 +841,7 @@ footer table tr td:first-child {
position: absolute;
right: 0;
top: 71px;
height: calc(100% - 130px);
scrollbar-color: #D0D5DA transparent;
scrollbar-width: thin;
}

View File

@ -143,6 +143,7 @@
.scroll-table-body {
top: 31px;
height: calc(100% - 34px);
}
footer {
@ -414,6 +415,7 @@
.scroll-table-body {
top: 31px;
height: calc(100% - 34px);
}
footer table tr {

View File

@ -421,9 +421,11 @@ if (typeof jQuery != "undefined") {
jq("#convertStep2").removeClass("current").addClass("done");
jq("#convertStep2").text(`2. File conversion to ${fileExt}`);
jq("#downloadConverted").removeClass("disable");
jq("#hiddenFileName").attr("data",response.filename);
if (response.error !== "FileTypeIsNotSupported") {
jq("#hiddenFileName").attr("data",response.filename);
jq("#beginEditConverted").removeClass("disable");
if (formatManager.isEditable(fileExt)) {
jq("#beginEditConverted").removeClass("disable");
}
jq("#beginViewConverted").removeClass("disable");
jq("#downloadConverted").attr("data","fromStorage");
} else {

View File

@ -143,6 +143,7 @@
.scroll-table-body {
top: 31px;
height: calc(100% - 34px);
}
footer {
@ -748,6 +749,7 @@
.scroll-table-body {
top: 36px;
height: calc(100% - 34px);
}
.scroll-table-body tr:first-child {

View File

@ -846,6 +846,7 @@ footer table tr td:first-child {
position: absolute;
right: 0;
top: 71px;
height: calc(100% - 130px);
scrollbar-color: #D0D5DA transparent;
scrollbar-width: thin;
}

View File

@ -413,7 +413,9 @@ if (typeof jQuery != "undefined") {
jq("#downloadConverted").removeClass("disable");
jq("#hiddenFileName").attr("data",response.filename);
if (response.error !== "FileTypeIsNotSupported") {
jq("#beginEditConverted").removeClass("disable");
if (formatManager.isEditable(fileExt)) {
jq("#beginEditConverted").removeClass("disable");
}
jq("#beginViewConverted").removeClass("disable");
jq("#downloadConverted").attr("data","fromStorage");
} else {

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,7 @@ version: "3.8"
services:
documentserver:
container_name: documentserver
image: onlyoffice/documentserver:8.2
image: onlyoffice/documentserver:9.3
expose:
- "80"
environment:

View File

@ -152,7 +152,7 @@ class ConfigurationManager
{
$size = getenv('MAXIMUM_FILE_SIZE');
if (!$size) {
return 5 * 1024 * 1024;
return 100 * 1024 * 1024;
}
return intval($size);
}

View File

@ -757,8 +757,8 @@ function getConvertedData(
$documentRevisionID,
$async,
&$convertedDocumentURL,
$filePass,
$lang,
$filePass = null,
$lang = null,
$fileName = null
) {
$convertedDocumentURL = "";

Some files were not shown because too many files have changed in this diff Show More