mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-01-19 14:13:34 +01:00
Merge branch 'develop'
This commit is contained in:
commit
293bd64522
28 changed files with 817 additions and 2565 deletions
8
.github/workflows/backend-tests.yml
vendored
8
.github/workflows/backend-tests.yml
vendored
|
@ -22,7 +22,7 @@ jobs:
|
|||
steps:
|
||||
-
|
||||
name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
-
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
|
@ -59,7 +59,7 @@ jobs:
|
|||
steps:
|
||||
-
|
||||
name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
-
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
|
@ -120,7 +120,7 @@ jobs:
|
|||
steps:
|
||||
-
|
||||
name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
-
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
|
@ -153,7 +153,7 @@ jobs:
|
|||
steps:
|
||||
-
|
||||
name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
-
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
|
|
2
.github/workflows/codeql-analysis.yml
vendored
2
.github/workflows/codeql-analysis.yml
vendored
|
@ -23,7 +23,7 @@ jobs:
|
|||
steps:
|
||||
-
|
||||
name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
# We must fetch at least the immediate parents so that if this is
|
||||
# a pull request then we can checkout the head.
|
||||
|
|
2
.github/workflows/dependency-review.yml
vendored
2
.github/workflows/dependency-review.yml
vendored
|
@ -15,6 +15,6 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: 'Checkout Repository'
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
- name: 'Dependency Review'
|
||||
uses: actions/dependency-review-action@v3
|
||||
|
|
14
.github/workflows/docker.yml
vendored
14
.github/workflows/docker.yml
vendored
|
@ -17,17 +17,17 @@ jobs:
|
|||
steps:
|
||||
-
|
||||
name: Check out
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
-
|
||||
name: Set up QEMU
|
||||
if: github.event_name == 'push'
|
||||
uses: docker/setup-qemu-action@v2
|
||||
uses: docker/setup-qemu-action@v3
|
||||
-
|
||||
name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
uses: docker/setup-buildx-action@v3
|
||||
-
|
||||
name: Build and export to Docker
|
||||
uses: docker/build-push-action@v4
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
load: true
|
||||
|
@ -64,7 +64,7 @@ jobs:
|
|||
name: Docker meta
|
||||
if: github.event_name == 'push'
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
images: etherpad/etherpad
|
||||
tags: |
|
||||
|
@ -75,14 +75,14 @@ jobs:
|
|||
-
|
||||
name: Log in to Docker Hub
|
||||
if: github.event_name == 'push'
|
||||
uses: docker/login-action@v2
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
-
|
||||
name: Build and push
|
||||
if: github.event_name == 'push'
|
||||
uses: docker/build-push-action@v4
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
platforms: linux/amd64,linux/arm64
|
||||
|
|
9
.github/workflows/frontend-admin-tests.yml
vendored
9
.github/workflows/frontend-admin-tests.yml
vendored
|
@ -12,10 +12,11 @@ jobs:
|
|||
name: with plugins
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
# node: [16, 19, 20] >> Disabled node 16 and 18 because they do not work
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
node: [16, 18, 20]
|
||||
node: [19, 20]
|
||||
|
||||
steps:
|
||||
-
|
||||
|
@ -26,7 +27,7 @@ jobs:
|
|||
printf %s\\n '::set-output name=tunnel_id::${{ github.run_id }}-${{ github.run_number }}-${{ github.job }}-node${{ matrix.node }}'
|
||||
-
|
||||
name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
-
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
|
@ -69,6 +70,10 @@ jobs:
|
|||
-
|
||||
name: increase maxHttpBufferSize
|
||||
run: "sed -i 's/\"maxHttpBufferSize\": 10000/\"maxHttpBufferSize\": 100000/' settings.json"
|
||||
-
|
||||
name: Disable import/export rate limiting
|
||||
run: |
|
||||
sed -e '/^ *"importExportRateLimiting":/,/^ *\}/ s/"max":.*/"max": 1000000/' -i settings.json
|
||||
-
|
||||
name: Remove standard frontend test files, so only admin tests are run
|
||||
run: mv src/tests/frontend/specs/* /tmp && mv /tmp/admin*.js src/tests/frontend/specs
|
||||
|
|
8
.github/workflows/frontend-tests.yml
vendored
8
.github/workflows/frontend-tests.yml
vendored
|
@ -21,7 +21,7 @@ jobs:
|
|||
printf %s\\n '::set-output name=tunnel_id::${{ github.run_id }}-${{ github.run_number }}-${{ github.job }}'
|
||||
-
|
||||
name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
-
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
|
@ -43,7 +43,7 @@ jobs:
|
|||
-
|
||||
name: Disable import/export rate limiting
|
||||
run: |
|
||||
sed -e '/^ *"importExportRateLimiting":/,/^ *\}/ s/"max":.*/"max": 0/' -i settings.json
|
||||
sed -e '/^ *"importExportRateLimiting":/,/^ *\}/ s/"max":.*/"max": 100000000/' -i settings.json
|
||||
-
|
||||
uses: saucelabs/sauce-connect-action@v2.3.4
|
||||
with:
|
||||
|
@ -76,7 +76,7 @@ jobs:
|
|||
printf %s\\n '::set-output name=tunnel_id::${{ github.run_id }}-${{ github.run_number }}-${{ github.job }}'
|
||||
-
|
||||
name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
-
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
|
@ -127,7 +127,7 @@ jobs:
|
|||
-
|
||||
name: Disable import/export rate limiting
|
||||
run: |
|
||||
sed -e '/^ *"importExportRateLimiting":/,/^ *\}/ s/"max":.*/"max": 0/' -i settings.json
|
||||
sed -e '/^ *"importExportRateLimiting":/,/^ *\}/ s/"max":.*/"max": 1000000/' -i settings.json
|
||||
# XXX we should probably run all tests, because plugins could effect their results
|
||||
-
|
||||
name: Remove standard frontend test files, so only plugin tests are run
|
||||
|
|
2
.github/workflows/lint-package-lock.yml
vendored
2
.github/workflows/lint-package-lock.yml
vendored
|
@ -18,7 +18,7 @@ jobs:
|
|||
steps:
|
||||
-
|
||||
name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
-
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
|
|
6
.github/workflows/load-test.yml
vendored
6
.github/workflows/load-test.yml
vendored
|
@ -18,7 +18,7 @@ jobs:
|
|||
steps:
|
||||
-
|
||||
name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
-
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
|
@ -48,7 +48,7 @@ jobs:
|
|||
steps:
|
||||
-
|
||||
name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
-
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
|
@ -105,7 +105,7 @@ jobs:
|
|||
steps:
|
||||
-
|
||||
name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
-
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
|
|
2
.github/workflows/rate-limit.yml
vendored
2
.github/workflows/rate-limit.yml
vendored
|
@ -18,7 +18,7 @@ jobs:
|
|||
steps:
|
||||
-
|
||||
name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
-
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
|
|
|
@ -22,7 +22,7 @@ jobs:
|
|||
steps:
|
||||
-
|
||||
name: Check out latest release
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: master
|
||||
-
|
||||
|
@ -67,7 +67,7 @@ jobs:
|
|||
-
|
||||
name: Run the backend tests
|
||||
run: cd src && npm test
|
||||
# Because actions/checkout@v3 is called with "ref: master" and without
|
||||
# Because actions/checkout@v4 is called with "ref: master" and without
|
||||
# "fetch-depth: 0", the local clone does not have the ${GITHUB_SHA}
|
||||
# commit. Fetch ${GITHUB_REF} to get the ${GITHUB_SHA} commit. Note that a
|
||||
# plain "git fetch" only fetches "normal" references (refs/heads/* and
|
||||
|
|
33
.github/workflows/windows.yml
vendored
33
.github/workflows/windows.yml
vendored
|
@ -15,22 +15,16 @@ jobs:
|
|||
|| (github.event.pull_request.head.repo.id != github.event.pull_request.base.repo.id)
|
||||
name: Build .zip
|
||||
runs-on: windows-latest
|
||||
defaults:
|
||||
run:
|
||||
shell: msys2 {0}
|
||||
steps:
|
||||
-
|
||||
uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
release: false
|
||||
update: false
|
||||
path-type: inherit
|
||||
install: >-
|
||||
zip
|
||||
rsync
|
||||
-
|
||||
name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
-
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
|
@ -41,17 +35,16 @@ jobs:
|
|||
src/bin/doc/package-lock.json
|
||||
-
|
||||
name: Install all dependencies and symlink for ep_etherpad-lite
|
||||
run: |
|
||||
set MSYSTEM=winsymlinks:lnk
|
||||
src/bin/installDeps.sh
|
||||
shell: msys2 {0}
|
||||
run: src/bin/installDeps.sh
|
||||
-
|
||||
name: Run the backend tests
|
||||
shell: msys2 {0}
|
||||
run: cd src && npm test
|
||||
-
|
||||
name: Build the .zip
|
||||
run: |
|
||||
set MSYSTEM=winsymlinks:lnk
|
||||
src/bin/buildForWindows.sh
|
||||
shell: msys2 {0}
|
||||
run: src/bin/buildForWindows.sh
|
||||
-
|
||||
name: Archive production artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
|
@ -69,7 +62,7 @@ jobs:
|
|||
steps:
|
||||
-
|
||||
name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
-
|
||||
name: Download .zip
|
||||
uses: actions/download-artifact@v3
|
||||
|
@ -96,7 +89,7 @@ jobs:
|
|||
# run on pushes to any branch
|
||||
# run on PRs from external forks
|
||||
permissions:
|
||||
contents: none
|
||||
contents: write
|
||||
if: |
|
||||
(github.event_name != 'pull_request')
|
||||
|| (github.event.pull_request.head.repo.id != github.event.pull_request.base.repo.id)
|
||||
|
@ -130,3 +123,13 @@ jobs:
|
|||
node node_modules\ep_etherpad-lite\node\server.js &
|
||||
curl --connect-timeout 10 --max-time 20 --retry 5 --retry-delay 10 --retry-max-time 60 --retry-connrefused http://127.0.0.1:9001/p/test
|
||||
src\node_modules\cypress\bin\cypress run --config-file src\tests\frontendcypress\cypress.config.js
|
||||
# On release, upload windows zip to GitHub release tab
|
||||
-
|
||||
name: Rename to etherpad-lite-win.zip
|
||||
shell: powershell
|
||||
run: mv etherpad-win.zip etherpad-lite-win.zip
|
||||
- name: upload binaries to release
|
||||
uses: softprops/action-gh-release@v1
|
||||
if: ${{startsWith(github.ref, 'refs/tags/') }}
|
||||
with:
|
||||
files: etherpad-lite-win.zip
|
||||
|
|
17
CHANGELOG.md
17
CHANGELOG.md
|
@ -1,3 +1,20 @@
|
|||
# 1.9.3
|
||||
|
||||
### Compability changes
|
||||
|
||||
* express-rate-limit has been bumped to 7.0.0: This involves the breaking change that "max: 0"
|
||||
in the importExportRateLimiting is set to always trigger. So set it to your desired value.
|
||||
If you haven't changed that value in the settings.json you are all set.
|
||||
|
||||
### Notable enhancements and fixes
|
||||
|
||||
* Bugfixes
|
||||
* Fix etherpad crashing with mongodb database
|
||||
|
||||
* Enhancements
|
||||
* Add surrealdb database support. You can find out more about this database [here](https://surrealdb.com).
|
||||
* Make sqlite faster: The sqlite library has been switched to better-sqlite3. This should lead to better performance.
|
||||
|
||||
# 1.9.2
|
||||
|
||||
### Notable enhancements and fixes
|
||||
|
|
|
@ -17,6 +17,9 @@ RUN \
|
|||
}
|
||||
ENV TIMEZONE=${TIMEZONE}
|
||||
|
||||
# Control the configuration file to be copied into the container.
|
||||
ARG SETTINGS=./settings.json.docker
|
||||
|
||||
# plugins to install while building the container. By default no plugins are
|
||||
# installed.
|
||||
# If given a value, it has to be a space-separated, quoted list of plugin names.
|
||||
|
@ -78,7 +81,7 @@ RUN \
|
|||
apk add \
|
||||
ca-certificates \
|
||||
git \
|
||||
${INSTALL_ABIWORD:+abiword} \
|
||||
${INSTALL_ABIWORD:+abiword abiword-plugin-command} \
|
||||
${INSTALL_SOFFICE:+libreoffice openjdk8-jre libreoffice-common}
|
||||
|
||||
USER etherpad
|
||||
|
@ -101,7 +104,7 @@ RUN { [ -z "${ETHERPAD_PLUGINS}" ] || \
|
|||
rm -rf ~/.npm
|
||||
|
||||
# Copy the configuration file.
|
||||
COPY --chown=etherpad:etherpad ./settings.json.docker "${EP_DIR}"/settings.json
|
||||
COPY --chown=etherpad:etherpad ${SETTINGS} "${EP_DIR}"/settings.json
|
||||
|
||||
# Fix group permissions
|
||||
RUN chmod -R g=u .
|
||||
|
|
|
@ -116,7 +116,7 @@ following:
|
|||
|
||||
### Docker container
|
||||
|
||||
Find [here](doc/docker.md) information on running Etherpad in a container.
|
||||
Find [here](doc/docker.adoc) information on running Etherpad in a container.
|
||||
|
||||
## Plugins
|
||||
|
||||
|
|
6
src/bin/doc/package-lock.json
generated
6
src/bin/doc/package-lock.json
generated
|
@ -5,9 +5,9 @@
|
|||
"requires": true,
|
||||
"dependencies": {
|
||||
"marked": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/marked/-/marked-7.0.3.tgz",
|
||||
"integrity": "sha512-ev2uM40p0zQ/GbvqotfKcSWEa59fJwluGZj5dcaUOwDRrB1F3dncdXy8NWUApk4fi8atU3kTBOwjyjZ0ud0dxw=="
|
||||
"version": "9.0.3",
|
||||
"resolved": "https://registry.npmjs.org/marked/-/marked-9.0.3.tgz",
|
||||
"integrity": "sha512-pI/k4nzBG1PEq1J3XFEHxVvjicfjl8rgaMaqclouGSMPhk7Q3Ejb2ZRxx/ZQOcQ1909HzVoWCFYq6oLgtL4BpQ=="
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
"node": ">=12.17.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"marked": "^7.0.3"
|
||||
"marked": "^9.0.3"
|
||||
},
|
||||
"devDependencies": {},
|
||||
"optionalDependencies": {},
|
||||
|
|
|
@ -182,8 +182,8 @@ try {
|
|||
console.log('Updating ether.github.com master branch...');
|
||||
run('git pull --ff-only', {cwd: '../ether.github.com/'});
|
||||
console.log('Committing documentation...');
|
||||
run(`cp -R out/doc/ ../ether.github.com/doc/v'${newVersion}'`);
|
||||
run(`rm -f latest && ln -s 'v${newVersion}' latest`, {cwd: '../ether.github.com/doc/'});
|
||||
run(`cp -R out/doc/ ../ether.github.com/public/doc/v'${newVersion}'`);
|
||||
run(`npm version ${newVersion}`, {cwd:'../ether.github.com'})
|
||||
run('git add .', {cwd: '../ether.github.com/'});
|
||||
run(`git commit -m '${newVersion} docs'`, {cwd: '../ether.github.com/'});
|
||||
} catch (err) {
|
||||
|
@ -203,12 +203,9 @@ console.log(' (cd ../ether.github.com && git show)');
|
|||
console.log('If everything looks good then push:');
|
||||
console.log(` git push origin master develop '${newVersion}'`);
|
||||
console.log(' (cd ../ether.github.com && git push)');
|
||||
console.log('Create a Windows build:');
|
||||
console.log(' bin/buildForWindows.sh');
|
||||
console.log('Creating a Windows build is not necessary anymore and will be created by GitHub action');
|
||||
console.log('Visit https://github.com/ether/etherpad-lite/releases/new and create a new release ' +
|
||||
`with 'master' as the target and the version is ${newVersion}. Include the windows ` +
|
||||
'zip as an asset');
|
||||
console.log('Once the new docs are uploaded then modify the download links (replace ' +
|
||||
`${currentVersion} with ${newVersion} on etherpad.org and then pull master onto ` +
|
||||
'develop)');
|
||||
`with 'master' as the target and the version is ${newVersion}. `);
|
||||
console.log('The docs are updated automatically with the new version. While the windows build' +
|
||||
' is generated people can still download the older versions.');
|
||||
console.log('Finally go public with an announcement via our comms channels :)');
|
||||
|
|
|
@ -2,13 +2,29 @@
|
|||
"@metadata": {
|
||||
"authors": [
|
||||
"Baloch Afghanistan",
|
||||
"Moshtank",
|
||||
"Sultanselim baloch"
|
||||
]
|
||||
},
|
||||
"admin.page-title": "کارمسترءِ کُرسی - اترپَد",
|
||||
"admin_plugins": "گݔشانکانءِ کار ءُ بار",
|
||||
"admin_plugins.available": "دسترسݔن گݔشانک",
|
||||
"admin_plugins.available_not-found": "گݔشانکے نݔست اَت۔",
|
||||
"admin_plugins.available_install.value": "پِررݔنَگ",
|
||||
"admin_plugins.available_search.placeholder": "گݔشانکان شۏھاز پہ پِررݔنَگا",
|
||||
"admin_plugins.description": "سرۏشتادی",
|
||||
"admin_plugins.installed": "گݔشانک پِررݔنگ بیت",
|
||||
"admin_plugins.installed_fetching": "پِررݔنتَگݔن گݔشانکانءِ پچ کنگ",
|
||||
"admin_plugins.installed_nothing": "شما ھنگت ھچ گݔشانکے نہ پِررݔنتَگ۔",
|
||||
"admin_plugins.installed_uninstall.value": "پِررݔنتَگݔنءِ بند کنگ",
|
||||
"admin_plugins.last-update": "گُڈی پہ رۏچان",
|
||||
"admin_plugins.name": "نام",
|
||||
"admin_plugins.page-title": "گݔشانکءِ کارمستری - اترپد",
|
||||
"admin_plugins.version": "ورژن",
|
||||
"index.newPad": "دفترچه یادداشت تازه",
|
||||
"index.createOpenPad": "یا ایجاد/بازکردن یک دفترچه یادداشت با نام:",
|
||||
"pad.toolbar.bold.title": "پررنگ (Ctrl-B)",
|
||||
"pad.toolbar.italic.title": "کج (Ctrl-I)",
|
||||
"pad.toolbar.italic.title": "کَش (Ctrl-I)",
|
||||
"pad.toolbar.underline.title": "زیرخط (Ctrl-U)",
|
||||
"pad.toolbar.strikethrough.title": "خط خورده",
|
||||
"pad.toolbar.ol.title": "فهرست مرتب شده",
|
||||
|
@ -21,12 +37,12 @@
|
|||
"pad.toolbar.import_export.title": "درونریزی/برونریزی از/به قالبهای مختلف",
|
||||
"pad.toolbar.timeslider.title": "لغزندهٔ زمان",
|
||||
"pad.toolbar.savedRevision.title": "ذخیرهسازی نسخه",
|
||||
"pad.toolbar.settings.title": "تنظیمات",
|
||||
"pad.toolbar.settings.title": "ردانکان",
|
||||
"pad.toolbar.embed.title": "اشتراک و جاسازی این دفترچه یادداشت",
|
||||
"pad.toolbar.showusers.title": "نمایش کاربران در این دفترچه یادداشت",
|
||||
"pad.colorpicker.save": "زاپاس کورتین",
|
||||
"pad.colorpicker.cancel": "کنسیل",
|
||||
"pad.loading": "...بار بیت",
|
||||
"pad.colorpicker.save": "سَپت",
|
||||
"pad.colorpicker.cancel": "بجَگ",
|
||||
"pad.loading": "بییگئن...",
|
||||
"pad.permissionDenied": "شرمنده، شما را اجازت په دسترسی ای صفحه نیست.",
|
||||
"pad.settings.padSettings": "تنظیمات دفترچه یادداشت",
|
||||
"pad.settings.myView": "منی سۏج",
|
||||
|
@ -39,7 +55,7 @@
|
|||
"pad.settings.language": "زبان:",
|
||||
"pad.importExport.import_export": "درونریزی/برونریزی",
|
||||
"pad.importExport.import": "بارگذاری پروندهی متنی یا سند",
|
||||
"pad.importExport.importSuccessful": "موفقیت آمیز بود!",
|
||||
"pad.importExport.importSuccessful": "سۏبݔن بیت!",
|
||||
"pad.importExport.export": "برونریزی این دفترچه یادداشت با قالب:",
|
||||
"pad.importExport.exporthtml": "HTML",
|
||||
"pad.importExport.exportplain": "سادگین متن",
|
||||
|
@ -66,21 +82,21 @@
|
|||
"pad.modals.badChangeset.cause": "این میتواند به دلیل پیکربندی اشتباه یا سایر رفتارهای غیرمنتظره باشد. اگر فکر میکنید این یک خطا است لطفاً با مدیر خدمت تماس بگیرید. برای ادامهٔ ویرایش سعی کنید که دوباره متصل شوید.",
|
||||
"pad.modals.corruptPad.explanation": "پدی که شما سعی دارید دسترسی پیدا کنید خراب است.",
|
||||
"pad.modals.corruptPad.cause": "این احتمالاً به دلیل تنظیمات اشتباه کارساز یا سایر رفتارهای غیرمنتظره است. لطفاً با مدیر خدمت تماس حاصل کنید.",
|
||||
"pad.modals.deleted": "پاک کورتین",
|
||||
"pad.modals.deleted.explanation": "این دفترچه یادداشت پاک شدهاست.",
|
||||
"pad.modals.deleted": "گار بیت۔",
|
||||
"pad.modals.deleted.explanation": "اے یادداشت پاک کنگ بیتگ۔",
|
||||
"pad.modals.disconnected": "شمئی سکّی کھت اِنت۔",
|
||||
"pad.modals.disconnected.explanation": "اتصال به سرور قطع شدهاست.",
|
||||
"pad.modals.disconnected.cause": "ممکن است سرور در دسترس نباشد. اگر این مشکل باز هم رخ داد مدیر حدمت را آگاه کنید.",
|
||||
"pad.share": "به اشتراکگذاری این دفترچه یادداشت",
|
||||
"pad.share.readonly": "فقط خواندنی",
|
||||
"pad.share.link": "پیوند",
|
||||
"pad.share.link": "لینک",
|
||||
"pad.share.emebdcode": "جاسازی نشانی",
|
||||
"pad.chat": "گفتگو",
|
||||
"pad.chat.title": "بازکردن گفتگو برای این دفترچه یادداشت",
|
||||
"pad.chat.loadmessages": "گݔشترݔں پیگامء چارگ",
|
||||
"timeslider.pageTitle": "لغزندهٔ زمان {{appTitle}}",
|
||||
"timeslider.toolbar.returnbutton": "بازگشت به دفترچه یادداشت",
|
||||
"timeslider.toolbar.authors": "نویسوک:",
|
||||
"timeslider.toolbar.returnbutton": "چَھر کنگ پہ یاددپترا",
|
||||
"timeslider.toolbar.authors": "لککۏک:",
|
||||
"timeslider.toolbar.authorsList": "بدون نویسنده",
|
||||
"timeslider.toolbar.exportlink.title": "درگیزگ",
|
||||
"timeslider.exportCurrent": "برونریزی نگارش کنونی به عنوان:",
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
"@metadata": {
|
||||
"authors": [
|
||||
"Armando-Martin",
|
||||
"Atzerritik",
|
||||
"DDPAT",
|
||||
"Dgstranz",
|
||||
"Fitoschido",
|
||||
|
@ -74,7 +75,7 @@
|
|||
"pad.colorpicker.save": "Guardar",
|
||||
"pad.colorpicker.cancel": "Cancelar",
|
||||
"pad.loading": "Cargando...",
|
||||
"pad.noCookie": "No se pudo encontrar la «cookie». Permite la utilización de «cookies» en el navegador.",
|
||||
"pad.noCookie": "No se pudo encontrar la galleta. ¡Por favor, permita las cookies en su navegador! Su sesión y configuración no se guardarán entre las visitas. Esto puede deberse a que Etherpad está incluido en un iFrame en algunos navegadores. Por favor asegúrese de que Etherpad está en el mismo subdominio/dominio que el iFrame padre",
|
||||
"pad.permissionDenied": "No tienes permiso para acceder a este pad",
|
||||
"pad.settings.padSettings": "Configuración del pad",
|
||||
"pad.settings.myView": "Preferencias personales",
|
||||
|
@ -98,7 +99,7 @@
|
|||
"pad.importExport.exportword": "Microsoft Word",
|
||||
"pad.importExport.exportpdf": "PDF",
|
||||
"pad.importExport.exportopen": "ODF (Open Document Format)",
|
||||
"pad.importExport.abiword.innerHTML": "Solo es posible importar texto sin formato o en HTML. Para obtener funciones de importación más avanzadas es necesario <a href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-with-AbiWord\">instalar AbiWord</a>.",
|
||||
"pad.importExport.abiword.innerHTML": "Solo se puede importar desde texto plano o formatos HTML. Para obtener funciones de importación más avanzadas, <a href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-with-AbiWord\">instale AbiWord o LibreOffice</a>.",
|
||||
"pad.modals.connected": "Conectado.",
|
||||
"pad.modals.reconnecting": "Reconectando a tu pad...",
|
||||
"pad.modals.forcereconnect": "Forzar reconexión",
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
"Xabier Armendaritz"
|
||||
]
|
||||
},
|
||||
"admin.page-title": "Admin Aginte-panela - Etherpad",
|
||||
"admin.page-title": "Kudeaketa panela - Etherpad",
|
||||
"admin_plugins": "Plugin-en kudeaketa",
|
||||
"admin_plugins.available": "Eskuragarri dauden plugin-ak",
|
||||
"admin_plugins.available_not-found": "Ez da plugin-ik aurkitu",
|
||||
|
|
|
@ -68,7 +68,7 @@
|
|||
"pad.settings.chatandusers": "Ammustra sa tzarrada e is utentes",
|
||||
"pad.settings.colorcheck": "Colores de autoria",
|
||||
"pad.settings.linenocheck": "Nùmeros de lìnia",
|
||||
"pad.settings.rtlcheck": "Cuntenutu dae manca a dereta",
|
||||
"pad.settings.rtlcheck": "Boles lèghere su cuntenutu dae dereta a manca?",
|
||||
"pad.settings.fontType": "Tipu de caràtere:",
|
||||
"pad.settings.fontType.normal": "Normale",
|
||||
"pad.settings.language": "Lìngua:",
|
||||
|
|
|
@ -9,7 +9,8 @@
|
|||
"Shangkuanlc",
|
||||
"Shirayuki",
|
||||
"Simon Shek",
|
||||
"Wehwei"
|
||||
"Wehwei",
|
||||
"Winston Sung"
|
||||
]
|
||||
},
|
||||
"admin.page-title": "管理員面板 - Etherpad",
|
||||
|
@ -134,7 +135,7 @@
|
|||
"pad.chat.writeMessage.placeholder": "在此編寫您的訊息",
|
||||
"timeslider.followContents": "關注記事本內容更新",
|
||||
"timeslider.pageTitle": "{{appTitle}}時間軸",
|
||||
"timeslider.toolbar.returnbutton": "返回到記事本",
|
||||
"timeslider.toolbar.returnbutton": "返回記事本",
|
||||
"timeslider.toolbar.authors": "協作者:",
|
||||
"timeslider.toolbar.authorsList": "無協作者",
|
||||
"timeslider.toolbar.exportlink.title": "匯出",
|
||||
|
|
3151
src/package-lock.json
generated
3151
src/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -31,7 +31,7 @@
|
|||
],
|
||||
"dependencies": {
|
||||
"async": "^3.2.4",
|
||||
"axios": "^1.4.0",
|
||||
"axios": "^1.5.0",
|
||||
"clean-css": "^5.3.2",
|
||||
"cookie-parser": "^1.4.6",
|
||||
"cross-spawn": "^7.0.3",
|
||||
|
@ -39,11 +39,11 @@
|
|||
"etherpad-require-kernel": "^1.0.15",
|
||||
"etherpad-yajsml": "0.0.12",
|
||||
"express": "4.18.2",
|
||||
"express-rate-limit": "^6.9.0",
|
||||
"express-rate-limit": "^7.0.1",
|
||||
"express-session": "npm:@etherpad/express-session@^1.18.2",
|
||||
"fast-deep-equal": "^3.1.3",
|
||||
"find-root": "1.1.0",
|
||||
"formidable": "^3.5.0",
|
||||
"formidable": "^3.5.1",
|
||||
"http-errors": "^2.0.0",
|
||||
"js-cookie": "^3.0.5",
|
||||
"jsdom": "^20.0.0",
|
||||
|
@ -56,18 +56,18 @@
|
|||
"npm": "^6.14.18",
|
||||
"openapi-backend": "^5.9.2",
|
||||
"proxy-addr": "^2.0.7",
|
||||
"rate-limiter-flexible": "^2.4.2",
|
||||
"rehype": "^12.0.1",
|
||||
"rehype-minify-whitespace": "^5.0.1",
|
||||
"resolve": "1.22.4",
|
||||
"rate-limiter-flexible": "^3.0.0",
|
||||
"rehype": "^13.0.1",
|
||||
"rehype-minify-whitespace": "^6.0.0",
|
||||
"resolve": "1.22.6",
|
||||
"security": "1.0.0",
|
||||
"semver": "^7.5.4",
|
||||
"socket.io": "^2.5.0",
|
||||
"superagent": "^8.1.1",
|
||||
"terser": "^5.19.2",
|
||||
"superagent": "^8.1.2",
|
||||
"terser": "^5.20.0",
|
||||
"threads": "^1.7.0",
|
||||
"tinycon": "0.6.8",
|
||||
"ueberdb2": "^4.1.20",
|
||||
"ueberdb2": "^4.2.11",
|
||||
"underscore": "1.13.6",
|
||||
"unorm": "1.6.0",
|
||||
"wtfnode": "^0.9.1"
|
||||
|
@ -78,16 +78,16 @@
|
|||
"etherpad-lite": "node/server.js"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "^8.47.0",
|
||||
"eslint-config-etherpad": "^3.0.21",
|
||||
"eslint": "^8.49.0",
|
||||
"eslint-config-etherpad": "^3.0.22",
|
||||
"etherpad-cli-client": "^2.0.2",
|
||||
"mocha": "^10.0.0",
|
||||
"mocha-froth": "^0.2.10",
|
||||
"nodeify": "^1.0.1",
|
||||
"openapi-schema-validation": "^0.4.2",
|
||||
"selenium-webdriver": "^4.11.1",
|
||||
"selenium-webdriver": "^4.12.0",
|
||||
"set-cookie-parser": "^2.6.0",
|
||||
"sinon": "^15.2.0",
|
||||
"sinon": "^16.0.0",
|
||||
"split-grid": "^1.0.11",
|
||||
"supertest": "^6.3.3",
|
||||
"typescript": "^4.9.5"
|
||||
|
@ -106,6 +106,6 @@
|
|||
"test-container": "mocha --timeout 5000 tests/container/specs/api",
|
||||
"dev": "bash ./bin/run.sh"
|
||||
},
|
||||
"version": "1.9.2",
|
||||
"version": "1.9.3",
|
||||
"license": "Apache-2.0"
|
||||
}
|
||||
|
|
|
@ -318,7 +318,7 @@ exports.padeditbar = new class {
|
|||
}
|
||||
} else {
|
||||
// Focus on the editbar :)
|
||||
const firstEditbarElement = parent.parent.$('#editbar button').first();
|
||||
const firstEditbarElement = $('#editbar button').first();
|
||||
|
||||
$(evt.currentTarget).trigger('blur');
|
||||
firstEditbarElement.trigger('focus');
|
||||
|
|
|
@ -51,7 +51,7 @@ exports.init = async function () {
|
|||
// Start the Etherpad server on a random unused port.
|
||||
settings.port = 0;
|
||||
settings.ip = 'localhost';
|
||||
settings.importExportRateLimiting = {max: 0};
|
||||
settings.importExportRateLimiting = {max: 999999};
|
||||
settings.commitRateLimiting = {duration: 0.001, points: 1e6};
|
||||
exports.httpServer = await server.start();
|
||||
exports.baseUrl = `http://localhost:${exports.httpServer.address().port}`;
|
||||
|
|
|
@ -15,6 +15,8 @@ try() { "$@" || fatal "'$@' failed"; }
|
|||
MY_DIR=$(try cd "${0%/*}" && try pwd -P) || exit 1
|
||||
try cd "${MY_DIR}/../../../.."
|
||||
|
||||
sed -e '/^ *"importExportRateLimiting":/,/^ *\}/ s/"max":.*/"max": 100000000/' -i settings.json.template
|
||||
|
||||
try sed -e '
|
||||
s!"loadTest":[^,]*!"loadTest": true!
|
||||
# Reduce rate limit aggressiveness
|
||||
|
|
Loading…
Reference in a new issue