Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
16 changes: 16 additions & 0 deletions ATTRIBUTION
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
This software is modified office applications that are based on Euro-Office, itself based on the original ONLYOFFICE work. Modified versions must preserve notices sufficient to allow users to identify the original developer and the source of the original work.

Office apps with versions < 9 are based on OnlyOffice, versions >= 9 are based on Euro-Office

links
- The CryptPad modified code from Euro office and OnlyOffice are available at:
- https://github.com/cryptpad/onlyoffice-editor
- https://github.com/cryptpad/onlyoffice-x2t-wasm
- Euro office repositories:
- https://github.com/Euro-Office/web-apps
- https://github.com/Euro-Office/sdkjs
- https://github.com/Euro-Office/core
- Only office repositories:
- https://github.com/ONLYOFFICE/web-apps
- https://github.com/ONLYOFFICE/sdkjs
- https://github.com/ONLYOFFICE/core
13 changes: 12 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ COPY sdkjs /app/sdkjs
COPY web-apps /app/web-apps
COPY fonts/*.png /app/sdkjs/common/Images
COPY fonts/*.js /app/sdkjs/common
WORKDIR /app/web-apps/translation
RUN python3 merge_and_check.py
WORKDIR /app/sdkjs
RUN make
RUN mv deploy/web-apps/apps/api/documents/api.js deploy/web-apps/apps/api/documents/api-orig.js
Expand All @@ -51,14 +53,18 @@ COPY --from=onlyoffice-editor-build /app/dist/api.js /app/web-apps/apps/api/docu
WORKDIR /app


FROM files-build AS zip-build
FROM files-build AS brotli-build
RUN find . -name "*.wasm" \
-o -name "*.js" \
-o -name "*.html" \
-o -name "*.css" \
-o -name "*.aff" \
-o -name "*.dic" \
| xargs -P 8 -n 16 -- brotli



FROM brotli-build AS zip-build
RUN zip -r onlyoffice-editor.zip .
RUN sha512sum onlyoffice-editor.zip > onlyoffice-editor.zip.sha512

Expand All @@ -78,3 +84,8 @@ COPY --from=zip-build /app/onlyoffice-editor.zip.sha512 /

FROM scratch AS files
COPY --from=files-build /app/ /



FROM scratch AS files-brotli
COPY --from=brotli-build /app/ /
4 changes: 4 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ build:
files:
docker build --target files -o output-files .

.PHONY: files-brotli
files-brotli:
docker build --target files-brotli -o output-files .

.PHONY: onlyoffice-editor-test
onlyoffice-editor-test:
docker build --target onlyoffice-editor-test .
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,14 @@ make test
## sdkjs

```sh
git fetch --depth=1 https://github.com/ONLYOFFICE/sdkjs.git v9.3.0.140
git fetch --depth=1 https://github.com/Euro-Office/sdkjs.git v9.3.2
git diff FETCH_HEAD HEAD:sdkjs
```

## web-apps

```sh
git fetch --depth=1 https://github.com/ONLYOFFICE/web-apps.git v9.3.0.140
git fetch --depth=1 https://github.com/Euro-Office/web-apps.git v9.3.2
git diff FETCH_HEAD HEAD:web-apps
```

Expand All @@ -38,6 +38,6 @@ Instead of calling `git diff ...`, you can use `git difftool --dir-diff ...` wit

# Pull OnlyOffice upstream changes
```shell
git subtree pull --prefix sdkjs https://github.com/ONLYOFFICE/sdkjs.git <TAG> --squash
git subtree pull --prefix web-apps https://github.com/ONLYOFFICE/web-apps.git <TAG> --squash
git subtree pull --prefix sdkjs https://github.com/Euro-Office/sdkjs.git <TAG> --squash
git subtree pull --prefix web-apps https://github.com/Euro-Office/web-apps.git <TAG> --squash
```
57 changes: 57 additions & 0 deletions sdkjs/.docker/sdkjs.bake.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# ==============================================================================
# MODULE DOCKERFILE
# This file is not meant to be built standalone. It is consumed by the
# docker-bake.hcl files in the parent monorepos.
#
# REQUIRED CONTEXTS:
# - core-wasm: builds from core-wasm in core repository
# ==============================================================================

ARG PRODUCT_VERSION
ARG BUILD_ROOT

#### BASE ####
FROM ubuntu:24.04 AS web-base
RUN apt-get update && \
apt-get install -y ca-certificates curl gnupg openjdk-21-jdk wget zip brotli bzip2 && \
curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
apt-get install -y nodejs && \
npm install -g @yao-pkg/pkg grunt-cli && \
rm -rf /var/lib/apt/lists/*

#### SDKJS ####
FROM web-base AS sdkjs-base

ARG BUILD_ROOT=/package

ARG PRODUCT_VERSION

COPY sdkjs/build/package*.json /app/build/

RUN --mount=type=cache,target=/root/.npm \
cd app/build && \
npm install

COPY sdkjs/ /app
COPY sdkjs-forms/ /sdkjs-forms

ENV BUILD_ROOT=${BUILD_ROOT}

ENV PRODUCT_VERSION=${PRODUCT_VERSION}

## Copy core wasm builds
COPY --from=core-wasm ${BUILD_ROOT}/engine/ /app/pdf/src/engine/
COPY --from=core-wasm ${BUILD_ROOT}/zlib/ /app/common/zlib/
COPY --from=core-wasm ${BUILD_ROOT}/hash/ /app/common/hash/
COPY --from=core-wasm ${BUILD_ROOT}/spell/ /app/common/spell/
COPY --from=core-wasm ${BUILD_ROOT}/libfont/ /app/common/libfont/

FROM sdkjs-base AS sdkjs-desktop
ARG TARGETARCH
RUN cd app/build && \
CC_PLATFORM=$(if [ "$TARGETARCH" = "arm64" ]; then echo "java"; else echo "native,java"; fi) grunt --addon=sdkjs-forms --desktop=true

FROM sdkjs-base AS sdkjs
ARG TARGETARCH
RUN cd app/build && \
CC_PLATFORM=$(if [ "$TARGETARCH" = "arm64" ]; then echo "java"; else echo "native,java"; fi) grunt --addon=sdkjs-forms
1 change: 1 addition & 0 deletions sdkjs/.github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @euro-office/frontend
140 changes: 42 additions & 98 deletions sdkjs/.github/workflows/check-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,152 +2,103 @@ name: Check sdkjs
on:
push:
branches:
- fork
- develop
- 'release/**'
- 'hotfix/**'
pull_request:
branches:
- develop
- 'release/**'
- 'hotfix/**'
jobs:
code-style:
runs-on: ubuntu-latest
steps:
- name: check out repository
uses: actions/checkout@v3
uses: actions/checkout@v7

- name: setup python
uses: actions/setup-python@v4
uses: actions/setup-python@v6
with:
python-version: '3.10'
python-version: '3.14'

- name: execute check styles
run: python tests/code-style/check.py

unit-tests:
runs-on: ubuntu-latest
steps:
- name: Install dependencies
- name: Install system dependencies for headless Chromium
run: |
sudo apt-get update
sudo apt-get install -y libatk1.0-0 libcups2 libatk-bridge2.0-0 libdrm2 libxkbcommon0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libnss3 libgbm1 libasound2t64

- name: check out repository
uses: actions/checkout@v4
uses: actions/checkout@v7
with:
path: sdkjs

# The forms / oform tests need the sdkjs-forms addon. Prefer a matching
# branch in sdkjs-forms, fall back to master (mirrors the build-test job).
- name: check out repository sdkjs-forms current branch
id: sdkjs-forms
uses: actions/checkout@v7
continue-on-error: true
with:
repository: Euro-Office/sdkjs-forms
token: ${{ secrets.READ_PAT }}
path: sdkjs-forms
ref: ${{ github.ref }}
- name: check out repository sdkjs-forms master branch
if: steps.sdkjs-forms.outcome != 'success'
uses: actions/checkout@v7
with:
repository: Euro-Office/sdkjs-forms
token: ${{ secrets.READ_PAT }}
path: sdkjs-forms
ref: master

- name: Use Node.js 20
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: 20

- name: Run unit tests

- name: Build develop SDK
working-directory: sdkjs
run: |
npm install grunt-cli node-qunit-puppeteer
npm install --prefix build
node node_modules/grunt-cli/bin/grunt --gruntfile build/Gruntfile.js develop
node node_modules/node-qunit-puppeteer/cli.js tests/common/api/api.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/shortcuts/shortcuts.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/formula-tests/FormulaTests.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/formula-tests/databaseTests.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/formula-tests/dateTimeTests.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/formula-tests/financialTests.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/formula-tests/informationTests.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/formula-tests/engineeringTests.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/formula-tests/logicalTests.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/formula-tests/lookupAndReferenceTests.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/formula-tests/mathematicTests.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/formula-tests/statisticalTests.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/formula-tests/textAndDataTests.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/PivotTests.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/copy-paste-tests.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/SheetStructureTests.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/autoFilterTests.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/UserProtectedRangesTest.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/FormulaTrace.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/NumFormatParse.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/DataValidationTests.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/conditionalFormattingTests.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/ExternalReference.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/SheetMemoryTest.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/whatIfAnalysisTests.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/spreadsheet-calculation/DynamicArraysTests.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/cell/js-api/js-api.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/unit-tests/paragraphContentPos.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/unit-tests/deleted-text-recovery.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/content-control/block-level/cursorAndSelection.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/content-control/inline-level/checkbox.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/content-control/inline-level/cursorAndSelection.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/content-control/inline-level/date-time.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/custom-xml/custom-xml.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/document-calculation/floating-position/drawing.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/document-calculation/paragraph.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/document-calculation/table/correctBadTable.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/document-calculation/table/flowTablePosition.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/document-calculation/table/pageBreak.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/document-calculation/table/table-flow.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/document-calculation/table/table-grid.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/document-calculation/table/table-header.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/document-calculation/textShaper/textShaper.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/document-calculation/text-hyphenator/text-hyphenator.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/forms/forms.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/forms/complexForm.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/numbering/numberingApplicator.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/numbering/numberingCalculation.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/numbering/numberingAutocorrect.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/api/api.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/api/cross-ref.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/api/textInput.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/styles/displayStyle.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/styles/paraPr.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/styles/styleApplicator.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/text-autocorrection/as-you-type.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/plugins/pluginsApi.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/revisions/paragraph.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/merge-documents/mergeDocuments.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/math-autocorrection/math-autocorrection.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/math-ml/math-ml.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/change-case/change-case.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/js-api/js-api.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/shortcuts/shortcuts.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/word/copypaste/copy-paste-tests.html 30000 "--no-sandbox"
node node_modules/node-qunit-puppeteer/cli.js tests/slide/shortcuts/shortcuts.html 30000 "--no-sandbox"
node node_modules/grunt-cli/bin/grunt --gruntfile build/Gruntfile.js develop --addon=sdkjs-forms

- name: Send message to telegram if failure
if: failure()
uses: ./.github/actions/send-message
with:
token: ${{ secrets.TELEGRAM_TOKEN }}
chat: ${{ secrets.TELEGRAM_TO }}
- name: Run unit tests
working-directory: sdkjs
run: node tests/runAll.js

build-test:
runs-on: ubuntu-latest
steps:
- name: check out repository
uses: actions/checkout@v4
uses: actions/checkout@v7
with:
path: sdkjs

- name: check out repository sdkjs-forms current branch
id: sdkjs-forms
uses: actions/checkout@v4
uses: actions/checkout@v7
continue-on-error: true
with:
repository: ONLYOFFICE/sdkjs-forms
repository: Euro-Office/sdkjs-forms
token: ${{ secrets.READ_PAT }}
path: sdkjs-forms
ref: ${{ github.ref }}
- name: check out repository sdkjs-forms master branch
if: steps.sdkjs-forms.outcome != 'success'
uses: actions/checkout@v4
uses: actions/checkout@v7
with:
repository: ONLYOFFICE/sdkjs-forms
repository: Euro-Office/sdkjs-forms
token: ${{ secrets.READ_PAT }}
path: sdkjs-forms
ref: master

- name: Use Node.js 20
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: 20

Expand All @@ -157,10 +108,3 @@ jobs:
npm install grunt-cli
npm install --prefix build
node node_modules/grunt-cli/bin/grunt --gruntfile build/Gruntfile.js

- name: Send message to telegram if failure
if: failure()
uses: ./sdkjs/.github/actions/send-message
with:
token: ${{ secrets.TELEGRAM_TOKEN }}
chat: ${{ secrets.TELEGRAM_TO }}
8 changes: 4 additions & 4 deletions sdkjs/.github/workflows/codeql.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,21 +31,21 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v7

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
config-file: ./.github/codeql/codeql-config.yaml

# Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v3
uses: github/codeql-action/autobuild@v4

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
uses: github/codeql-action/analyze@v4
with:
category: "/language:${{matrix.language}}"
2 changes: 1 addition & 1 deletion sdkjs/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ PUBLISHER_NAME ?= Ascensio System SIA

APP_COPYRIGHT ?= Copyright (C) $(PUBLISHER_NAME) 2012-$(shell date +%Y). All rights reserved

PUBLISHER_URL ?= https://www.onlyoffice.com/
PUBLISHER_URL ?= https://github.com/Euro-Office

GRUNT_ENV += PRODUCT_VERSION=$(PRODUCT_VERSION)
GRUNT_ENV += BUILD_NUMBER=$(BUILD_NUMBER)
Expand Down
Loading
Loading