Compare commits

..

31 Commits

Author SHA1 Message Date
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
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
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
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
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
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
69 changed files with 77 additions and 165 deletions

View File

@ -15,10 +15,6 @@ 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 }}

2
.gitmodules vendored
View File

@ -5,9 +5,11 @@
[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
branch = release/v9.3.0
[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
branch = develop
[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,9 +1,10 @@
# Change Log
- nodejs: support tsv
## 1.15.0
- nodejs: added AI Auto Fill Plugin
- php-laravel: fix custom jwt header
- formats for ds v9.3
- formats for ds v9.1
- user role
- start filling
- update demo files

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -103,7 +103,6 @@ func (cm DefaultConversionManager) GetConverterUri(
docKey string,
isAsync bool,
title string,
filePass string,
) (string, string, error) {
if fromExt == "" {
fromExt = utils.GetFileExt(docUri, true)
@ -116,7 +115,6 @@ 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

@ -30,6 +30,23 @@ 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",
@ -99,23 +116,6 @@ 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.GetUserById("uid-0")
return um.users[0], nil
}
func (um DefaultUserManager) GetUserInfoById(uid string, serverAddress string) models.UserInfo {

View File

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

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

View File

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

View File

@ -846,7 +846,6 @@ 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

@ -90,7 +90,7 @@ func (fm DefaultFormatManager) GetViewedExtensions() (viewed []string) {
func (fm DefaultFormatManager) GetEditedExtensions() (edited []string) {
for _, f := range fm.formats {
if slices.Contains(f.Actions, "edit") || slices.Contains(f.Actions, "lossy-edit") {
if slices.Contains(f.Actions, "edit") {
edited = append(edited, f.Name)
}
}

View File

@ -68,7 +68,7 @@ public class ExampleData {
"Can view chat",
"Has an avatar",
"Can submit forms",
"Has role 'Anyone'",
"Has no roles",
"Can start filling"
);
@ -85,7 +85,7 @@ public class ExampleData {
"Can view chat",
"Has an avatar",
"Can't submit forms",
"Has role 'role'",
"Has role 'Anyone'",
"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 no roles",
"Has role 'role'",
"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), List.of("Anyone"), true);
new Goback(null, false), new Close(null, false), null, 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("role"), false);
true, true, new Goback("Go to Documents", null), new Close(null, true), List.of("Anyone"), 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), null, false);
null, new Close(null, true), List.of("role"), 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=100MB
spring.servlet.multipart.max-request-size=100MB
spring.servlet.multipart.max-file-size=5MB
spring.servlet.multipart.max-request-size=5MB
url.index=/
url.converter=/converter

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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=104857600
DOCUMENT_STORAGE_MAXIMUM_FILE_SIZE=5242880
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->filePass,
password: $request->password,
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(Request): (Response) $next
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next): Response
{

View File

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

View File

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

View File

@ -12,7 +12,7 @@ class EnsureUserDirectoryExists
/**
* Handle an incoming request.
*
* @param Closure(Request): (Response) $next
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\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', 100 * 1024 * 1024),
'max_size' => env('DOCUMENT_STORAGE_MAXIMUM_FILE_SIZE', 5 * 1024 * 1024),
],
];
}

View File

@ -36,9 +36,6 @@ 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('DOCUMENT_STORAGE_MAXIMUM_FILE_SIZE', 100 * 1024 * 1024))) {
if ($fileSize && ($fileSize <= 0 || $fileSize > env('STORAGE_MAXIMUM_FILE_SIZE', 5 * 1024 * 1024))) {
throw new UnexpectedValueException("Incorrect file size: $fileSize");
}
}

View File

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

View File

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

View File

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

View File

@ -834,7 +834,6 @@ 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

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

View File

@ -421,11 +421,9 @@ 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") {
if (formatManager.isEditable(fileExt)) {
jq("#beginEditConverted").removeClass("disable");
}
jq("#hiddenFileName").attr("data",response.filename);
jq("#beginEditConverted").removeClass("disable");
jq("#beginViewConverted").removeClass("disable");
jq("#downloadConverted").attr("data","fromStorage");
} else {

View File

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

View File

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

View File

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

View File

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

View File

@ -47,15 +47,3 @@
:why: MIT
:versions: []
:when: 2025-11-07 10:13:51.477550000 Z
- - :approve
- msgspec
- :who:
:why: BSD-3-Clause
:versions: []
:when: 2025-11-07 10:13:51.477550000 Z
- - :approve
- pyjwt
- :who:
:why: MIT
:versions: []
:when: 2025-11-07 10:13:51.477550000 Z

View File

@ -116,7 +116,7 @@ class ConfigurationManager:
size = environ.get('MAXIMUM_FILE_SIZE')
if size:
return int(size)
return 100 * 1024 * 1024
return 5 * 1024 * 1024
def conversion_timeout(self) -> int:
timeout = environ.get('CONVERSION_TIMEOUT')

View File

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

View File

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

View File

@ -136,8 +136,6 @@ GEM
racc (~> 1.4)
nokogiri (1.18.9-x86_64-linux-gnu)
racc (~> 1.4)
nokogiri (1.18.9-x86_64-linux-musl)
racc (~> 1.4)
parallel (1.24.0)
parser (3.3.0.5)
ast (~> 2.4.1)
@ -288,9 +286,8 @@ GEM
zeitwerk (2.6.13)
PLATFORMS
arm64-darwin
arm64-darwin-22
x86_64-linux
x86_64-linux-musl
DEPENDENCIES
byebug (~> 11.1)

View File

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

View File

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

View File

@ -847,7 +847,6 @@ 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,7 +143,7 @@ class ConfigurationManager
env = ENV.fetch('MAXIMUM_FILE_SIZE', nil)
return Integer(env, 10) if env
100 * 1024 * 1024
5 * 1024 * 1024
end
sig { returns(Numeric) }

View File

@ -84,13 +84,6 @@ class TrackHelper
copied['changesurl'] = resolved_uri.to_s
end
formsdataurl = copied['formsdataurl']
if formsdataurl
uri = URI(formsdataurl)
resolved_uri = TrackHelper.proxy_manager.resolve_uri(uri)
copied['formsdataurl'] = resolved_uri.to_s
end
home = copied['home']
copied['home'] = resolve_process_save_body(home) if home
@ -187,9 +180,7 @@ class TrackHelper
end
# file force saving process
def self.process_force_save(raw_file_data, file_name, user_address)
file_data = resolve_process_save_body(raw_file_data)
def self.process_force_save(file_data, file_name, user_address)
download_uri = file_data['url']
if download_uri.eql?(nil)
saved = 1
@ -231,7 +222,7 @@ class TrackHelper
begin
# check if the forcesave type is equal to 3 (the form was submitted)
is_submit_form = file_data['forcesavetype'].to_s == '3'
is_submit_form = Integer(file_data['forcesavetype'], 10) == 3
if is_submit_form
file_name = if new_file_name